var searchIndex = [
  {
    "title": "Eslint",
    "url": "https://www.ikemo3.com/tags/eslint/",
    "contents": ""
  }, 
  {
    "title": "ESLint v9 への移行",
    "url": "https://www.ikemo3.com/inverted/eslint/migrate-to-eslint-9/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eESLint v9のFlat Configに対応する。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eESLint v8を使用している(v8.57.0が望ましい)\u003c/li\u003e\n\u003cli\u003eESLintの設定ファイル名として \u003ccode\u003e.eslintrc.cjs\u003c/code\u003e を使用している\u003c/li\u003e\n\u003cli\u003e移行後はESMを使用する\u003c/li\u003e\n\u003cli\u003eパッケージマネージャはpnpmを使用している\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eESLint v9からはFlat Configが導入された。これにより、設定ファイルをArray形式で書くことができるようになったが、これに伴い多くのオプションが変更されている。\u003c/p\u003e\n\u003cp\u003e移行手順は基本的にガイドに従って進めれば問題ないと思われる。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://eslint.org/docs/latest/use/configure/migration-guide\"\u003eESLintのConfiguration Migration Guide\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://typescript-eslint.io/getting-started/\"\u003etypescript-eslintのGetting Started\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"eslint_use_flat_configtrueをつけて実行\"\u003eESLINT_USE_FLAT_CONFIG=trueをつけて実行\u003c/h3\u003e\n\u003cp\u003eまずはv8で \u003ccode\u003eESLINT_USE_FLAT_CONFIG=true\u003c/code\u003e をつけてESLintを実行する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# eslint以降は既存のオプションをそのまま使う\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eESLINT_USE_FLAT_CONFIG\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003etrue eslint . --ext .js --ext .ts --ext .tsx --ext .jsx --ext .cjs\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eエラーが出たら対応していく。\u003c/p\u003e\n\u003ch3 id=\"--ext-を外す\"\u003e\u003ccode\u003e--ext\u003c/code\u003e を外す\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003e--ext\u003c/code\u003e はFlat Configには対応していないため外す。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# --extを外す\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eESLINT_USE_FLAT_CONFIG\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003etrue eslint .\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"--format-を使っている場合\"\u003e\u003ccode\u003e--format\u003c/code\u003e を使っている場合\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003e--format\u003c/code\u003e でサポートされなくなったフォーマットがある。この場合はv9で動かなくなるため(\u003ccode\u003eESLINT_USE_FLAT_CONFIG=true\u003c/code\u003e だけでは検知できない)、適切なライブラリを追加する。例えば \u003ccode\u003e--format junit\u003c/code\u003e の場合、次のライブラリを追加する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003epnpm i -D eslint-formatter-junit\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"ファイル名の変更--esm形式に変更\"\u003eファイル名の変更 + ESM形式に変更\u003c/h3\u003e\n\u003cp\u003e以下のようなエラーが出る。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-plaintext\" data-lang=\"plaintext\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026gt; ESLINT_USE_FLAT_CONFIG=true eslint .\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eOops! Something went wrong! :(\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eESLint: 8.57.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eError: Could not find config file.\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eファイル名を \u003ccode\u003e.eslintrc.cjs\u003c/code\u003e から \u003ccode\u003eeslint.config.js\u003c/code\u003e (\u003ccode\u003e\u0026quot;type\u0026quot;: \u0026quot;module\u0026quot;\u003c/code\u003e の場合)あるいは \u003ccode\u003eeslint.config.mjs\u003c/code\u003e に変更する。\u003c/p\u003e\n\u003cp\u003e単にファイル名を変更しただけだと、以下のようなエラーが出る。ESMになっていないのが原因。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-plaintext\" data-lang=\"plaintext\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026gt; ESLINT_USE_FLAT_CONFIG=true eslint .\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eOops! Something went wrong! :(\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eESLint: 8.57.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eReferenceError: module is not defined in ES module scope\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eThis file is being treated as an ES module because it has a \u0026#39;.js\u0026#39; file extension and \u0026#39;/path/to/package.json\u0026#39; contains \u0026#34;type\u0026#34;: \u0026#34;module\u0026#34;. To treat it as a CommonJS script, rename it to use the \u0026#39;.cjs\u0026#39; file extension.\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこのようになっているのを\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-js\" data-lang=\"js\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003emodule\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eexports\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e// 中略\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e};\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこのように変更する。ESM形式に変更した上で、後々のことを考えてさらにArrayにする。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-js\" data-lang=\"js\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eexport\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edefault\u003c/span\u003e [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// 中略\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e];\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"env-を-globals-に変更\"\u003e\u0026ldquo;env\u0026rdquo; を \u0026ldquo;globals\u0026rdquo; に変更\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eenv\u003c/code\u003e はFlat Configには対応していないため、 \u003ccode\u003eglobals\u003c/code\u003e に変更する。\u003c/p\u003e\n\u003cp\u003eまず \u003ccode\u003eglobals\u003c/code\u003e をインストールする。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003epnpm i -D globals\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e変更前\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-js\" data-lang=\"js\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eexport\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edefault\u003c/span\u003e [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003eenv\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003ebrowser\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003ees2021\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003enode\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// 以下略\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e];\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e変更後\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-js\" data-lang=\"js\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efrom\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;globals\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eexport\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edefault\u003c/span\u003e [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003elanguageOptions\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ebrowser\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ees2021\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003enode\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// 以下略\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e];\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"globalsを修正\"\u003eglobalsを修正\u003c/h3\u003e\n\u003cp\u003eトップ直下にある \u003ccode\u003eglobals\u003c/code\u003e を \u003ccode\u003elanguageOptions\u003c/code\u003e の中に入れる。\u003c/p\u003e\n\u003ch3 id=\"extends-を修正\"\u003eextends を修正\u003c/h3\u003e\n\u003cp\u003e次は \u003ccode\u003eextends\u003c/code\u003e を修正する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-plaintext\" data-lang=\"plaintext\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026gt; ESLINT_USE_FLAT_CONFIG=true eslint .\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eOops! Something went wrong! :(\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eESLint: 8.57.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eA config object is using the \u0026#34;extends\u0026#34; key, which is not supported in flat config system.\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eInstead of \u0026#34;extends\u0026#34;, you can include config objects that you\u0026#39;d like to extend from directly in the flat config array.\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ePlease see the following page for more information:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ehttps://eslint.org/docs/latest/use/configure/migration-guide#predefined-and-shareable-configs\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e使っているライブラリによるが、今回は次の設定を前提。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-js\" data-lang=\"js\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eextends\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e [\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;eslint:recommended\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;plugin:@typescript-eslint/recommended\u0026#34;\u003c/span\u003e]\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eまずエラーのリンク先にあるように \u003ccode\u003eeslint:recommended\u003c/code\u003e の代わりとしては \u003ccode\u003e@eslint/js\u003c/code\u003e をインストールする。また型定義をインストールする。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003epnpm i -D @eslint/js @types/eslint__js\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e同様に、 \u003ccode\u003eplugin:@typescript-eslint/recommended\u003c/code\u003e の代わりとしては \u003ccode\u003etypescript-eslint\u003c/code\u003e をインストールする。また、 \u003ccode\u003e@typescript-eslint/eslint-plugin\u003c/code\u003e と \u003ccode\u003e@typescript-eslint/parser\u003c/code\u003e は不要になるため削除する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003epnpm i -D typescript-eslint\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003epnpm remove -D @typescript-eslint/eslint-plugin @typescript-eslint/parser\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eそして次のように修正する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-js\" data-lang=\"js\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eeslint\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efrom\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;@eslint/js\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efrom\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;globals\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003etseslint\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efrom\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;typescript-eslint\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eexport\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edefault\u003c/span\u003e [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eeslint\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003econfigs\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003erecommended\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ...\u003cspan style=\"color:#a6e22e\"\u003etseslint\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003econfigs\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003erecommended\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003elanguageOptions\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ebrowser\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ees2021\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003enode\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// 以下略\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e];\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"overrides-を修正\"\u003eoverrides を修正\u003c/h3\u003e\n\u003cp\u003e次はこのエラーを対応する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-plaintext\" data-lang=\"plaintext\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026gt; ESLINT_USE_FLAT_CONFIG=true eslint .\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eOops! Something went wrong! :(\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eESLint: 8.57.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eA config object is using the \u0026#34;overrides\u0026#34; key, which is not supported in flat config system.\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFlat config is an array that acts like the eslintrc \u0026#34;overrides\u0026#34; array.\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ePlease see the following page for information on how to convert your config object into the correct format:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ehttps://eslint.org/docs/latest/use/configure/migration-guide#glob-based-configs\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ccode\u003eoverrides\u003c/code\u003e はFlat Configには対応していないため、 \u003ccode\u003eoverrides\u003c/code\u003e を削除する。ただし自分は \u003ccode\u003eoverrides: []\u003c/code\u003e となっていて使っていないので、単に削除。\u003c/p\u003e\n\u003ch3 id=\"parser-を修正\"\u003eparser を修正\u003c/h3\u003e\n\u003cp\u003e次はこのエラーを対応する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-plaintext\" data-lang=\"plaintext\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026gt; ESLINT_USE_FLAT_CONFIG=true eslint .\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eOops! Something went wrong! :(\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eESLint: 8.57.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eA config object is using the \u0026#34;parser\u0026#34; key, which is not supported in flat config system.\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFlat config uses \u0026#34;languageOptions.parser\u0026#34; to override the default parser.\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ePlease see the following page for information on how to convert your config object into the correct format:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ehttps://eslint.org/docs/latest/use/configure/migration-guide#custom-parsers\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ccode\u003eparser: \u0026quot;@typescript-eslint/parser\u0026quot;\u003c/code\u003e となっているが、この記述は \u003ccode\u003etypescript-eslint\u003c/code\u003e によって不要になるため削除する。\u003c/p\u003e\n\u003ch3 id=\"parseroptions-を修正\"\u003eparserOptions を修正\u003c/h3\u003e\n\u003cp\u003e次はこのエラーを対応する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-plaintext\" data-lang=\"plaintext\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026gt; ESLINT_USE_FLAT_CONFIG=true eslint .\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eOops! Something went wrong! :(\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eESLint: 8.57.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eA config object is using the \u0026#34;parserOptions\u0026#34; key, which is not supported in flat config system.\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFlat config uses \u0026#34;languageOptions.parserOptions\u0026#34; to specify parser options.\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ePlease see the following page for information on how to convert your config object into the correct format:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ehttps://eslint.org/docs/latest/use/configure/migration-guide#configuring-language-options\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ccode\u003eparserOptions\u003c/code\u003e は \u003ccode\u003elanguageOptions\u003c/code\u003e の中に入れる。\u003c/p\u003e\n\u003cp\u003e変更前\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-js\" data-lang=\"js\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efrom\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;globals\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eexport\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edefault\u003c/span\u003e [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003elanguageOptions\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ebrowser\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ees2021\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003enode\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003eparserOptions\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003eecmaVersion\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;latest\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003esourceType\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;module\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// 以下略\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e];\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e変更後\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-js\" data-lang=\"js\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eeslint\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efrom\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;@eslint/js\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efrom\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;globals\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003etseslint\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efrom\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;typescript-eslint\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eexport\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edefault\u003c/span\u003e [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eeslint\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003econfigs\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003erecommended\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ...\u003cspan style=\"color:#a6e22e\"\u003etseslint\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003econfigs\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003erecommended\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003elanguageOptions\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003eecmaVersion\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;latest\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003esourceType\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;module\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ebrowser\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ees2021\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003enode\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// 以下略\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e];\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"plugins-を修正\"\u003eplugins を修正\u003c/h3\u003e\n\u003cp\u003e次はこのエラーを対応する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-plaintext\" data-lang=\"plaintext\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026gt; ESLINT_USE_FLAT_CONFIG=true eslint .\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eOops! Something went wrong! :(\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eESLint: 8.57.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eA config object has a \u0026#34;plugins\u0026#34; key defined as an array of strings.\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFlat config requires \u0026#34;plugins\u0026#34; to be an object in this form:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        plugins: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            @typescript-eslint: pluginObject\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ePlease see the following page for information on how to convert your config object into the correct format:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ehttps://eslint.org/docs/latest/use/configure/migration-guide#importing-plugins-and-custom-parsers\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eIf you\u0026#39;re using a shareable config that you cannot rewrite in flat config format, then use the compatibility utility:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ehttps://eslint.org/docs/latest/use/configure/migration-guide#using-eslintrc-configs-in-flat-config\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ccode\u003eplugins: [\u0026quot;@typescript-eslint\u0026quot;]\u003c/code\u003e となっているが、この記述は \u003ccode\u003eparsers\u003c/code\u003e と同様に、 \u003ccode\u003etypescript-eslint\u003c/code\u003e によって不要になるため削除する。\u003c/p\u003e\n\u003cp\u003eその他、 \u003ccode\u003eplugins\u003c/code\u003e はArrayではなくObjectに変更する必要がある。\u003c/p\u003e\n\u003ch3 id=\"eslint-plugin-simple-import-sort-の場合\"\u003e\u003ccode\u003eeslint-plugin-simple-import-sort\u003c/code\u003e の場合\u003c/h3\u003e\n\u003cp\u003e移行前は次のようになっている。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-js\" data-lang=\"js\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003emodule\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eexports\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e// 中略\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eplugins\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e [\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;simple-import-sort\u0026#34;\u003c/span\u003e], \u003cspan style=\"color:#75715e\"\u003e// その他のプラグインは省略\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003erules\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;simple-import-sort/imports\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;error\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;simple-import-sort/exports\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;error\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e};\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこれを次のように変更する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-js\" data-lang=\"js\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eeslint\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efrom\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;@eslint/js\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// プラグインのインポート\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003esimpleImportSort\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efrom\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;eslint-plugin-simple-import-sort\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efrom\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;globals\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003etseslint\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efrom\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;typescript-eslint\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eexport\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edefault\u003c/span\u003e [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eeslint\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003econfigs\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003erecommended\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ...\u003cspan style=\"color:#a6e22e\"\u003etseslint\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003econfigs\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003erecommended\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// その他の設定は省略\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// pluginsをObjectに変更\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003eplugins\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;simple-import-sort\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003esimpleImportSort\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// rulesはそのまま\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003erules\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;simple-import-sort/imports\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;error\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;simple-import-sort/exports\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;error\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e];\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"ignorepatterns-を修正\"\u003eignorePatterns を修正\u003c/h3\u003e\n\u003cp\u003e次はこのエラーを対応する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-plaintext\" data-lang=\"plaintext\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026gt; ESLINT_USE_FLAT_CONFIG=true eslint .\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eOops! Something went wrong! :(\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eESLint: 8.57.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eA config object is using the \u0026#34;ignorePatterns\u0026#34; key, which is not supported in flat config system.\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFlat config uses \u0026#34;ignores\u0026#34; to specify files to ignore.\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ePlease see the following page for information on how to convert your config object into the correct format:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ehttps://eslint.org/docs/latest/use/configure/migration-guide#ignoring-files\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ccode\u003eignorePatterns\u003c/code\u003e は \u003ccode\u003eignores\u003c/code\u003e に変更する。\u003c/p\u003e\n\u003cp\u003e変更前\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-js\" data-lang=\"js\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eexport\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edefault\u003c/span\u003e [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003eignorePatterns\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e [\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;dist\u0026#34;\u003c/span\u003e]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// 以下略\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e];\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e変更後\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-js\" data-lang=\"js\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eexport\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edefault\u003c/span\u003e [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// その他の設定は省略\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003eignores\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e [\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;dist\u0026#34;\u003c/span\u003e]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e];\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e注意点としては独立したオブジェクトとして指定しないといけない。\u003c/p\u003e\n\u003ch3 id=\"新しく出るようになったエラーをignoresで対応する\"\u003e新しく出るようになったエラーをignoresで対応する\u003c/h3\u003e\n\u003cp\u003eこれで \u003ccode\u003eESLINT_USE_FLAT_CONFIG=true eslint .\u003c/code\u003e が通るようになるが、新しくエラーが出るようになる。\u003c/p\u003e\n\u003cp\u003e原因は\u003ca href=\"https://eslint.org/docs/latest/use/configure/migration-guide#ignoring-files\"\u003eIgnoring Files\u003c/a\u003eによると、ドットで始まるファイル名 / ディレクトリ名がデフォルトで無視されなくなったため。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIn flat config , dotfiles (e.g. .dotfile.js) are no longer ignored by default. If you want to ignore dotfiles, add an ignore pattern of \u0026ldquo;**/.*\u0026rdquo;.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eその場合はエラーが出るファイル名を確認する。ドットで始まるファイル名 / ディレクトリ名がある場合は、 \u003ccode\u003eignores\u003c/code\u003e に追加する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-js\" data-lang=\"js\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eeslint\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efrom\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;@eslint/js\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efrom\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;globals\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003etseslint\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efrom\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;typescript-eslint\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eexport\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edefault\u003c/span\u003e [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eeslint\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003econfigs\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003erecommended\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ...\u003cspan style=\"color:#a6e22e\"\u003etseslint\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003econfigs\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003erecommended\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003elanguageOptions\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003eecmaVersion\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;latest\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003esourceType\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;module\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ebrowser\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ees2021\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\u003cspan style=\"color:#a6e22e\"\u003eglobals\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003enode\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003erules\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {},\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003eignores\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e [\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;.astro\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;dist\u0026#34;\u003c/span\u003e],\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e];\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"動作確認\"\u003e動作確認\u003c/h3\u003e\n\u003cp\u003e最後に \u003ccode\u003eESLINT_USE_FLAT_CONFIG=true eslint . --debug\u003c/code\u003e で動作確認を行い、問題がなければ移行完了。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eESLINT_USE_FLAT_CONFIG\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003etrue eslint . --debug\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"v9へのアップデートとeslint_use_flat_configの削除\"\u003ev9へのアップデートとESLINT_USE_FLAT_CONFIGの削除\u003c/h3\u003e\n\u003cp\u003e最後に eslint をアップデートし、 \u003ccode\u003eESLINT_USE_FLAT_CONFIG\u003c/code\u003e を削除する。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Rdbms",
    "url": "https://www.ikemo3.com/tags/rdbms/",
    "contents": ""
  }, 
  {
    "title": "RDBMSの選び方",
    "url": "https://www.ikemo3.com/theme/rdbms/",
    "contents": "\u003ch2 id=\"rdbmsの選び方\"\u003eRDBMSの選び方\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://db-engines.com/en/ranking\"\u003eDB-Engines Ranking - popularity ranking of database management systems\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分的にはPostgreSQL一択にしたい。\u003c/p\u003e\n\u003cp\u003ePostgreSQLは標準への準拠度が高く運用も楽。弱点としてはcount()が遅いくらいか。\u003c/p\u003e\n\u003cp\u003eMySQLはOracleの中の人の発言とかでいい印象がない。\n改善はされたが、以前はSQLのいい加減な解釈とか。\u003c/p\u003e\n\u003cp\u003eSQLiteは今後伸びるかもしれない。元々開発用とかでは重宝していた。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.publickey1.jp/blog/22/cloudflarecdnsqliterdbcloudflare_d1cdn.html\"\u003eCloudflare、CDNエッジで稼働するSQLiteベースのRDB「Cloudflare D1」発表。ユーザーの近接CDNエッジに自動でレプリカを分散配置、高速アクセスを実現 － Publickey\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://litestream.io/\"\u003eLitestream - Streaming SQLite Replication\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://zenn.dev/mattn/articles/fef682a8b204ac\"\u003eLiteStream をサイドカー構成にしたデータベース永続化\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "アーキテクチャについての考え",
    "url": "https://www.ikemo3.com/theme/architecture/",
    "contents": "\u003ch2 id=\"フロントエンド\"\u003eフロントエンド\u003c/h2\u003e\n\u003cp\u003e状態を3種類に分ける。この記事が分かりやすい。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://zenn.dev/yoshiko/articles/607ec0c9b0408d\"\u003e「3種類」で管理するReactのState戦略\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e逆にこの3つを分けずに1枚板のstateでReduxで対応するみたいなのは(やったことないけど)今後やめた方がいいイメージ。\u003c/p\u003e\n\u003ch2 id=\"api\"\u003eAPI\u003c/h2\u003e\n\u003cp\u003eCQRS、そしてGraphQLが基本になるイメージ。\u003c/p\u003e\n\u003cp\u003eこの記事に大体賛成。ただ、SoEがほとんどというのは違うと思う。\n「データモデル＝ビジネス構造」なので、SoR領域がアジャイルにならないと、ビジネスがアジャイルにならない。\u003c/p\u003e\n\u003cp\u003e「ドメインサービス」はおそらく必要。\n「アプリケーションサービス」はうまくいくイメージがない。レイヤーを増やしても解決しない。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://onk.hatenablog.jp/entry/2020/11/11/024531\"\u003eSmart UI パターンが再評価される世界 - id:onk のはてなブログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eHasuraを用いることでQueryの95%、Mutationの20%が不要になるのは何となく自分のイメージとも合っている。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://note.com/dinii/n/n9be778bd7da3#qmpMF\"\u003e【エンジニアブログ】ダイニーのエンジニアリング3カ条｜dinii（ダイニー）公式｜note\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"バックエンド\"\u003eバックエンド\u003c/h2\u003e\n\u003cp\u003eCRUDでなくイベントソーシングになるイメージはある。\n特に「履歴」を扱うならイベントソーシングが必要。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://speakerdeck.com/j5ik2o/chatworkdevday-riakuteibusisutemutoci-shi-dai-ji-pan-nituite-jia-teng\"\u003eChatworkDevDay_リアクティブシステムと次世代基盤について_加藤 - Speaker Deck\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eQuery側はHasuraをそのまま使うイメージでも問題ないが、Command側は基本はDDDになる。\nイベントソーシングは\u003ca href=\"https://akka.io/\"\u003eAkka\u003c/a\u003e一択らしい。\u003c/p\u003e\n\u003cp\u003eただ、まだ実装イメージは湧いていない。\u003c/p\u003e\n"
  }, 
  {
    "title": "3factor app",
    "url": "https://www.ikemo3.com/dic/3factor-app/",
    "contents": "\u003ch2 id=\"3factor-appとは\"\u003e3factor appとは\u003c/h2\u003e\n\u003cp\u003eHasuraが提唱しているアーキテクチャです。\u003c/p\u003e\n\u003ch2 id=\"原理は分かるけど悩ましい\"\u003e原理は分かるけど悩ましい\u003c/h2\u003e\n\u003cp\u003eこの3つからなります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eRealtime GraphQL\u003c/li\u003e\n\u003cli\u003eReliable eventing\u003c/li\u003e\n\u003cli\u003eAsync serverless\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eCQRSでイベントソーシングなので原理は分かります。\nただ実際に適用しようと思うと悩ましいところがあります。\n特に次の2つ。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eイベントの処理(同じイベントが複数きたとか、矛盾した時にどこでdropさせるかとか)\u003c/li\u003e\n\u003cli\u003e非同期の扱い(イベントの順序に依存しないとなっているが、同じレコードに対しては依存しないといけないのではとか)\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Android",
    "url": "https://www.ikemo3.com/tags/android/",
    "contents": ""
  }, 
  {
    "title": "Appliction Binary Interface(ABI)",
    "url": "https://www.ikemo3.com/tags/abi/",
    "contents": ""
  }, 
  {
    "title": "CentOS 7",
    "url": "https://www.ikemo3.com/tags/centos7/",
    "contents": ""
  }, 
  {
    "title": "DataGrip",
    "url": "https://www.ikemo3.com/tags/datagrip/",
    "contents": ""
  }, 
  {
    "title": "Laravel",
    "url": "https://www.ikemo3.com/manual/laravel/",
    "contents": "\u003ch2 id=\"config\"\u003econfig\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 設定を表示\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ephp artisan about\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 設定をキャッシュ、キャッシュクリア\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ephp artisan config:cache\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ephp artisan config:clear\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# その他をキャッシュ\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ephp artisan event:cache\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ephp artisan route:cache\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ephp artisan view:cache\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "PHP",
    "url": "https://www.ikemo3.com/tags/php/",
    "contents": ""
  }, 
  {
    "title": "PostgreSQL",
    "url": "https://www.ikemo3.com/tags/postgresql/",
    "contents": ""
  }, 
  {
    "title": "Skype",
    "url": "https://www.ikemo3.com/tags/skype/",
    "contents": ""
  }, 
  {
    "title": "Time Machine(macOS)",
    "url": "https://www.ikemo3.com/tags/time-machine/",
    "contents": ""
  }, 
  {
    "title": "Windows 10",
    "url": "https://www.ikemo3.com/tags/windows10/",
    "contents": ""
  }, 
  {
    "title": "サーバレス",
    "url": "https://www.ikemo3.com/tags/serverless/",
    "contents": ""
  }, 
  {
    "title": "マージ",
    "url": "https://www.ikemo3.com/tags/merge/",
    "contents": ""
  }, 
  {
    "title": "ジョーク",
    "url": "https://www.ikemo3.com/tags/joke/",
    "contents": ""
  }, 
  {
    "title": "ストレージ",
    "url": "https://www.ikemo3.com/tags/storage/",
    "contents": ""
  }, 
  {
    "title": "デプロイ",
    "url": "https://www.ikemo3.com/tags/deploy/",
    "contents": ""
  }, 
  {
    "title": "フレームワーク",
    "url": "https://www.ikemo3.com/tags/framework/",
    "contents": ""
  }, 
  {
    "title": "リモートデスクトップ",
    "url": "https://www.ikemo3.com/tags/remote-desktop/",
    "contents": ""
  }, 
  {
    "title": "夏",
    "url": "https://www.ikemo3.com/tags/summer/",
    "contents": ""
  }, 
  {
    "title": "会計",
    "url": "https://www.ikemo3.com/tags/finance/",
    "contents": ""
  }, 
  {
    "title": "学習",
    "url": "https://www.ikemo3.com/tags/learning/",
    "contents": ""
  }, 
  {
    "title": "政治",
    "url": "https://www.ikemo3.com/tags/politics/",
    "contents": ""
  }, 
  {
    "title": "動画",
    "url": "https://www.ikemo3.com/tags/movie/",
    "contents": ""
  }, 
  {
    "title": "配列(Array)",
    "url": "https://www.ikemo3.com/tags/array/",
    "contents": ""
  }, 
  {
    "title": "文字列(String)",
    "url": "https://www.ikemo3.com/tags/string/",
    "contents": ""
  }, 
  {
    "title": "例外(プログラミング)",
    "url": "https://www.ikemo3.com/tags/exception/",
    "contents": ""
  }, 
  {
    "title": "Terraform",
    "url": "https://www.ikemo3.com/manual/terraform/",
    "contents": "\u003ch2 id=\"センシティブな値を表示させる方法\"\u003eセンシティブな値を表示させる方法\u003c/h2\u003e\n\u003cp\u003eまず output を定義する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-tf\" data-lang=\"tf\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eoutput\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;access_key_secret\u0026#34;\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003evalue\u003c/span\u003e     \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eaws_iam_access_key\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003emain\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003esecret\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003esensitive\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eそれから次のコマンドで表示させる。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eterraform output -raw access_key_secret\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"destroy\"\u003edestroy\u003c/h2\u003e\n\u003ch3 id=\"削除するリソースを指定する方法\"\u003e削除するリソースを指定する方法\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eterraform destroy -target\u003cspan style=\"color:#f92672\"\u003e=[\u003c/span\u003eリソース名\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e -target\u003cspan style=\"color:#f92672\"\u003e=[\u003c/span\u003eリソース名\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://blog.adachin.me/archives/6698\"\u003e[AWS][Terraform]terraform destroyで特定のものだけ消したい場合 – ADACHIN SERVER LABO\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Command Query Responsibility Segregation(CQRS)",
    "url": "https://www.ikemo3.com/dic/cqrs/",
    "contents": "\u003ch2 id=\"command-query-responsibility-segregationcqrsとは\"\u003eCommand Query Responsibility Segregation(CQRS)とは\u003c/h2\u003e\n\u003cp\u003eコマンドクエリ責務分離のことです。\u003c/p\u003e\n\u003ch2 id=\"現時点での考え方\"\u003e現時点での考え方\u003c/h2\u003e\n\u003cp\u003eまだしっかり実行したことはないですが、こう考えています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e「履歴」を表すためには必須\u003c/li\u003e\n\u003cli\u003eGraphQLを使用する\u003c/li\u003e\n\u003cli\u003eCommand側\n\u003cul\u003e\n\u003cli\u003eNoSQL(KVS)を使用\u003c/li\u003e\n\u003cli\u003eDDDの考え方を採用する\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eQuery側\n\u003cul\u003e\n\u003cli\u003eRDBMSを使用する\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"まだ分かってないところ\"\u003eまだ分かってないところ\u003c/h2\u003e\n\u003cp\u003eまだ作ってない段階ですが、この辺りが自分の中では悩みどころです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCRUDからの移行方法\u003c/li\u003e\n\u003cli\u003eQuery側の外部キーによる結合はどうなるか\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Infrastructure as Code(IaC)",
    "url": "https://www.ikemo3.com/tags/iac/",
    "contents": ""
  }, 
  {
    "title": "チーム",
    "url": "https://www.ikemo3.com/tags/team/",
    "contents": ""
  }, 
  {
    "title": "スキルマップ",
    "url": "https://www.ikemo3.com/dic/skill-map/",
    "contents": "\u003ch2 id=\"スキルマップとは\"\u003eスキルマップとは\u003c/h2\u003e\n\u003cp\u003eチームメンバーのスキルを可視化したものです。「星取表」と呼ばれることもあります。\u003c/p\u003e\n\u003ch2 id=\"技術以外のスキルも含んで良い\"\u003e技術以外のスキルも含んで良い\u003c/h2\u003e\n\u003cp\u003eこの記事の「おまけ」を見て試したことがあるのですが、結構楽しかったです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://blog.studysapuri.jp/entry/2019/06/03/skill-map\"\u003e異動のおともにスキルマップ - スタディサプリ Product Team Blog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"スキルマップの難しさ\"\u003eスキルマップの難しさ\u003c/h2\u003e\n\u003cp\u003eスキルマップの難しさは、基準が分かりづらいところです。\n先ほどの記事でも「人によって◯のレベルが違う」と書かれている通り、人によって基準が異なります。\u003c/p\u003e\n\u003cp\u003e例えば\u003ca href=\"https://roadmap.sh/\"\u003eDeveloper Roadmaps\u003c/a\u003eを元にすればいいかなと思うのですが、これはこれで難しいですね。\u003c/p\u003e\n"
  }, 
  {
    "title": "レイヤードアーキテクチャ",
    "url": "https://www.ikemo3.com/dic/layered-architecture/",
    "contents": "\u003ch2 id=\"レイヤードアーキテクチャとは\"\u003eレイヤードアーキテクチャとは\u003c/h2\u003e\n\u003cp\u003eシンプルなアーキテクチャです。\u003c/p\u003e\n\u003ch2 id=\"あまり評価が高くない\"\u003eあまり評価が高くない\u003c/h2\u003e\n\u003cp\u003e「ソフトウェアアーキテクチャの基礎」では最初に紹介される、基本的なアーキテクチャですが、「コスト」と「シンプルさ」以外の評価は低いです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4873119820/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4873119820.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4873119820/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"評価が高くない理由\"\u003e評価が高くない理由\u003c/h2\u003e\n\u003cp\u003e自分も実感としてレイヤーを増やすのは意味がなく、「Djangoのようなフルスタックフレームワークを使っているなら、まずそのフレームワークに備わっている機能を最大限活かすのが近道」と書きました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://zenn.dev/ikemo/articles/django-keep-away-from-fat-model\"\u003e[Django]Fat Modelを避けるための戦略\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"1-まずドメインで区切るべき\"\u003e1. まずドメインで区切るべき\u003c/h3\u003e\n\u003cp\u003eコードの保守性を高めるためにまずやるべきことは、ドメインで区切ることです。\nDjangoなら「アプリケーション」という単位で区切ることができます。技術的にはPythonのモジュールです。\nそしてPythonのモジュール間の依存関係を一方向にすることで、保守しやすいコードになります。\u003c/p\u003e\n\u003cp\u003eまた、最近のチームは「機能横断型チーム」です。すなわち、レイヤーを跨って1つの機能を作り上げるチームです。\nなのでレイヤーで分けるのではなく、ドメインで分けた方が小さなチームにできます。\u003c/p\u003e\n\u003ch3 id=\"2-レイヤーを増やす目的が不明瞭\"\u003e2. レイヤーを増やす目的が不明瞭\u003c/h3\u003e\n\u003cp\u003eレイヤーを増やす目的は本来、下層レイヤーを取り替えられることです。\n例えばデータベースのインタフェースを抽象化すれば、データベースを取り替えることができます。\u003c/p\u003e\n\u003cp\u003eしかし実際、データベースを取り替える必要があるでしょうか。\nPostgreSQL←→MySQLレベルなら、ORMで抽象化されています。\n例えば最初はRDBMSで作って、それからNoSQLにしたいのであればレイヤーを増やす意味はあります。\nしかし単に「綺麗なコード」を実現するためにはレイヤーを作る必要はありません。\nDDDでも「サービス」はありますが、あくまで「ドメインサービス」です。レイヤーではありません。\u003c/p\u003e\n\u003ch3 id=\"3-linterで対応しないとレイヤーが安定しない\"\u003e3. linterで対応しないとレイヤーが安定しない\u003c/h3\u003e\n\u003cp\u003eまずレイヤードアーキテクチャを有効的にするためには、レイヤー間が片方に依存することを\u003cstrong\u003e強制\u003c/strong\u003eする必要があります。\n例えばMVCの場合、Viewはテンプレート言語という制限された環境、Controllerがまず処理を受け取る立場ということで、処理が逆転することはありません。\n例えばFat View, Fat Controllerのように正しくない形になることはありますが。\u003c/p\u003e\n\u003cp\u003eしかし、レイヤーを増やすとその強制がうまくいかなくなります。\nlinterで対応できたらいいのですが、もし相互参照してしまうと、レイヤーを増やすことは逆効果になります。\u003c/p\u003e\n\u003ch2 id=\"結論\"\u003e結論\u003c/h2\u003e\n\u003cp\u003e結論としては、まずドメインで分離して、それから必要に応じてレイヤーでの分離を試みることです。\n実際のところ、レイヤーで分離するよりは、CQRS、CommandとQueryで分割した方が分かりやすいかもしれません。\u003c/p\u003e\n"
  }, 
  {
    "title": "知識管理",
    "url": "https://www.ikemo3.com/tags/knowledge-management/",
    "contents": ""
  }, 
  {
    "title": "ユーザインタフェース(UI)",
    "url": "https://www.ikemo3.com/tags/ui/",
    "contents": ""
  }, 
  {
    "title": "フロントエンド",
    "url": "https://www.ikemo3.com/tags/frontend/",
    "contents": ""
  }, 
  {
    "title": "Agile",
    "url": "https://www.ikemo3.com/tags/agile/",
    "contents": ""
  }, 
  {
    "title": "ドラッカー風エクササイズ",
    "url": "https://www.ikemo3.com/dic/drucker-exercise/",
    "contents": "\u003ch2 id=\"ドラッカー風エクササイズとは\"\u003eドラッカー風エクササイズとは\u003c/h2\u003e\n\u003cp\u003e「アジャイルサムライ」に出てくる、チームビルディングの手法です。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00J1XKB6K/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00J1XKB6K.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00J1XKB6K/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nアジャイルサムライ――達人開発者への道\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e原典については以前調べてみました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://note.com/ikemo/n/n6be9fdf10d33\"\u003e「ドラッカー風エクササイズ」の原典を調べてみた｜ikemo｜note\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ドラッカー風エクササイズ-b面\"\u003eドラッカー風エクササイズ B面\u003c/h2\u003e\n\u003cp\u003e質問を全く逆にした、弱みを知るためのB面というのも提案されています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://note.com/papanda0806/n/naa2eceab37b3\"\u003eなりたい自分リスト vs できないことリスト｜市谷 聡啓 (papanda)｜note\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Task-Management",
    "url": "https://www.ikemo3.com/tags/task-management/",
    "contents": ""
  }, 
  {
    "title": "タスクシュート",
    "url": "https://www.ikemo3.com/manual/taskchute/",
    "contents": "\u003ch2 id=\"コツ\"\u003eコツ\u003c/h2\u003e\n\u003ch3 id=\"タスクを自分でコントロールできる単位にすること\"\u003eタスクを自分でコントロールできる単位にすること\u003c/h3\u003e\n\u003cp\u003e例えば「割り込み」は避けられないしコントロールできないので、「割り込み時間」というのを入れる。\nコントロールできないものを管理しようとするとストレスになるのでほどほどに。\u003c/p\u003e\n\u003ch3 id=\"作業の流れを考える\"\u003e作業の流れを考える\u003c/h3\u003e\n\u003cp\u003e例えば朝食後にすぐ薬を飲んでいるんですが、それは台所に薬が置いているからです。\nこれは簡単な例ですが、作業の流れを考えると配置しやすい。\u003c/p\u003e\n\u003ch3 id=\"タスクを分割する\"\u003eタスクを分割する\u003c/h3\u003e\n\u003cp\u003eこれも当たり前ですが、タスクを分割する。\n分割することによって見積もりのブレが少なくなる。\u003c/p\u003e\n\u003ch3 id=\"判断することを少なくする\"\u003e判断することを少なくする\u003c/h3\u003e\n\u003cp\u003eタスクシュートはあくまで「カーナビ」であって、その通りに実行する必要はない。\nただし、順番通りに実行した方が余計な迷いがなくなるし、そうなるように構築しておく方がいい。\nただしのただし、順番通りに実行したくない時は別にそれでも構わない。\u003c/p\u003e\n\u003ch3 id=\"備えに時間をかける\"\u003e「備え」に時間をかける\u003c/h3\u003e\n\u003cp\u003e不定期に実行するタスクがありますが、そういう場合は「備え」に時間をかけるといいです。\n例えば最近カモミールを常備しているのですが、「カモミールを作る」ではなく、\n「カモミールが足りてるか確認する」をタスクにするとうまくいきやすい。\u003c/p\u003e\n"
  }, 
  {
    "title": "Gadget",
    "url": "https://www.ikemo3.com/tags/gadget/",
    "contents": ""
  }, 
  {
    "title": "忘れ物防止タグ",
    "url": "https://www.ikemo3.com/manual/key-finder/",
    "contents": "\u003ch2 id=\"電池の残量確認方法\"\u003e電池の残量確認方法\u003c/h2\u003e\n\u003cp\u003eいずれもiPhoneアプリで確認しました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTile\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://thetileapp.jp/faq/\"\u003eFAQ\u003c/a\u003eには以下のように書かれている。\n\u003cul\u003e\n\u003cli\u003e「電池の残量は分かりませんが、初回アクティベーション日がアプリから確認できます。」\u003c/li\u003e\n\u003cli\u003e「約1年を目途に買い直しをお願いします。また、1年経過が近付きますとアプリ上で通知が出ます。」\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eアクティベーション日の表示方法は、アイテムの右上の「…」をタップして「追加オプション」を選ぶ。その画面の最後の方に記載されている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eTrackR\n\u003cul\u003e\n\u003cli\u003e右上の「アイテム設定」を押す\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "えらい人",
    "url": "https://www.ikemo3.com/dic/erai-hito/",
    "contents": "\u003ch2 id=\"えらい人とは\"\u003eえらい人とは\u003c/h2\u003e\n\u003cp\u003e無能のことです。\u003c/p\u003e\n\u003cp\u003e正確には以下の2つの特徴があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e役職を権威、特権と勘違いしている人\u003c/li\u003e\n\u003cli\u003e口だけで結果を出さない、動かない人\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"特徴\"\u003e特徴\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e「何を言ったか」よりも「誰が言ったか」を重視する\u003c/li\u003e\n\u003cli\u003e上から目線\u003c/li\u003e\n\u003cli\u003e他人に厳しく自分に甘い\u003c/li\u003e\n\u003cli\u003eそのくせ結果も出せない\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e特に自分は「行動しているか」「他人に厳しく自分に甘い」を重視しています。\n日本IBMのときの内永ゆか子、大歳卓麻も結局は何もせず、結果が出ていない、\nそしてそれを認めなかった、それに尽きます。\u003c/p\u003e\n\u003cp\u003e正直、「他人に厳しく自分に甘い」を見抜くのは難しいんですけどね。\nだから自分は「行動しているか」を最重要視しようかと。\u003c/p\u003e\n"
  }, 
  {
    "title": "Favicon",
    "url": "https://www.ikemo3.com/tags/favicon/",
    "contents": ""
  }, 
  {
    "title": "Google スプレッドシート: faviconをセットする方法",
    "url": "https://www.ikemo3.com/inverted/google-sheets/set-favicon/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/manual/google-sheets/\"\u003eGoogle スプレッドシート\u003c/a\u003eのfaviconは全部同じですが、\nこれを個別にセットする方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eGoogle Chromeで動作確認しています。\nFirefoxでも可能なはずです。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.tampermonkey.net/\"\u003eTampermonkey\u003c/a\u003eを使います。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下のように記載してください。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-js\" data-lang=\"js\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e(\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;use strict\u0026#39;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// 現在のアイコンを削除\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ecurrent_icon\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003equerySelector\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;[rel=\u0026#39;shortcut icon\u0026#39;]\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003ecurrent_icon\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eremove\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// 新しいアイコンを作成\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003enew_icon\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003ecreateElement\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;link\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003enew_icon\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003erel\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;icon\u0026#39;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003enew_icon\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;...\u0026#39;\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e// ここをfaviconの画像のURLにする\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003enew_icon\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003etype\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;image/png\u0026#39;\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e// PNGファイルの場合\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// 新しいアイコンを追加\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehead\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003equerySelector\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;head\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003ehead\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eappendChild\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003enew_icon\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e})();\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Google-Sheets",
    "url": "https://www.ikemo3.com/tags/google-sheets/",
    "contents": ""
  }, 
  {
    "title": "問題解決",
    "url": "https://www.ikemo3.com/manual/problem-solving/",
    "contents": "\u003ch2 id=\"問題解決の手順\"\u003e問題解決の手順\u003c/h2\u003e\n\u003cp\u003e元は某所に書いたもので、自分の場合はこんな感じで問題解決しているというのを載せてみます。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e状況の認識(再現性の確保)\u003c/li\u003e\n\u003cli\u003e原因の切り分け(どこまでは問題ないとか)\u003c/li\u003e\n\u003cli\u003e仮説を立てる(自分のコード、環境のどこにあるかとか)\u003c/li\u003e\n\u003cli\u003e確率が高そうな仮説を導き出す(大体は自分が悪いと考える)\u003c/li\u003e\n\u003cli\u003e仮説が正しいとして、エラーメッセージなどから適切なキーワードを抽出(プロジェクト固有、あるいはよく出るワードを外す)\u003c/li\u003e\n\u003cli\u003eググる(\u003ccode\u003e\u0026quot;\u003c/code\u003eで囲む、英語のみとかのテクニックを使う)\u003c/li\u003e\n\u003cli\u003eサイトの信頼性の判断(いかがでしたかサイト除外)\u003c/li\u003e\n\u003cli\u003e情報の信頼性の判断(著者の知識が十分かとか)\u003c/li\u003e\n\u003cli\u003e得た情報を仮説にして、整合性が合っているかかを考える(「何となくこうやったら動く」を避ける)\u003c/li\u003e\n\u003cli\u003e得た情報が正しいとして、どうやったら検証できるかを考える(問題が再現する最小のコード)\u003c/li\u003e\n\u003cli\u003e実際に検証して、得た情報が正しいか確認する\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Imagemagick",
    "url": "https://www.ikemo3.com/tags/imagemagick/",
    "contents": ""
  }, 
  {
    "title": "テキストを画像にする方法",
    "url": "https://www.ikemo3.com/inverted/image/text-to-image/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eテキストを画像にする方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/manual/imagemagick/\"\u003eImageMagick\u003c/a\u003eを入れていることが条件です。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003econvertコマンドを使います。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下のようにしてください(文字、サイズ、ファイル名は適宜変更\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eTEXT\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;MD\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eSIZE\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;16x16\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFILE\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;icon-16x16.png\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003econvert -size \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eSIZE\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e xc:White \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  -gravity Center \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  -weight \u003cspan style=\"color:#ae81ff\"\u003e700\u003c/span\u003e -pointsize \u003cspan style=\"color:#ae81ff\"\u003e10\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  -annotate \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eTEXT\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFILE\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Money",
    "url": "https://www.ikemo3.com/tags/money/",
    "contents": ""
  }, 
  {
    "title": "株式",
    "url": "https://www.ikemo3.com/manual/stock/",
    "contents": "\u003ch2 id=\"確定申告\"\u003e確定申告\u003c/h2\u003e\n\u003cp\u003eまず「総合課税」か「申告分離課税」かを選びます。\u003c/p\u003e\n\u003cp\u003e総合課税は所得が低い〜中くらいのときは税率で有利になりますが、損失が出ても合算できません。\n申告分離課税は固定税率ですが、損失の繰越ができます。\u003c/p\u003e\n\u003cp\u003e自分は所得は中くらいで、株式はほとんど売買しないので、総合課税を選んでいます。\u003c/p\u003e\n\u003ch2 id=\"損出し\"\u003e損出し\u003c/h2\u003e\n\u003cp\u003e含み損がある株式に対して、売買を行うことによって損失を確定すること。逆は益出し。\u003c/p\u003e\n\u003cp\u003eネットで検索すると以下の方法が書かれています。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e同じ日に「信用買い」と「現物売り」をする\u003c/li\u003e\n\u003cli\u003e翌営業日に「現引」をする\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e同じ日に「現物買い」と「現物売り」もできますが、それだと損出しできる学が半分になるんですね。\nまた、同時に現物買いと現物売りをするクロス取引はシステムで禁止されていたり、犯罪となる可能性があります。\u003c/p\u003e\n"
  }, 
  {
    "title": "Firefox",
    "url": "https://www.ikemo3.com/tags/firefox/",
    "contents": ""
  }, 
  {
    "title": "Google-Chrome-Extension",
    "url": "https://www.ikemo3.com/tags/google-chrome-extension/",
    "contents": ""
  }, 
  {
    "title": "ゴシップサイトブロッカー",
    "url": "https://www.ikemo3.com/dic/gossip-site-blocker/",
    "contents": "\u003ch2 id=\"ゴシップサイトブロッカーとは\"\u003eゴシップサイトブロッカーとは\u003c/h2\u003e\n\u003cp\u003e自分が開発している、Chrome / Firefox拡張です。\u003c/p\u003e\n\u003ch2 id=\"インセプションデッキ風\"\u003eインセプションデッキ風\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/bremen/items/ed491246ed83630bc84d\"\u003eスクラムで使う「インセプションデッキ」のmarkdown形式版テンプレート - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"プロジェクトの名前\"\u003eプロジェクトの名前\u003c/h3\u003e\n\u003cp\u003eゴシップサイトブロッカー\u003c/p\u003e\n\u003ch4 id=\"名前をつけた理由\"\u003e名前をつけた理由\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eコピペブログとニュースが嫌い\u003c/li\u003e\n\u003cli\u003eしかし「ニュースブロッカー」では理解されない\u003c/li\u003e\n\u003cli\u003eGawkerのゴシップによる訴訟をきっかけに付けた\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"1-我われはなぜここにいるのか\"\u003e1. 我われはなぜここにいるのか？\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e不安と煽りでアクセスを稼ぐサイトをなくしたい\u003c/li\u003e\n\u003cli\u003ePersonal Blocklistがなくなった\u003c/li\u003e\n\u003cli\u003e[大事な理由その3]\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch4 id=\"プロジェクトの根幹に関わる理由\"\u003eプロジェクトの根幹に関わる理由\u003c/h4\u003e\n\u003cp\u003e\u003cstrong\u003e何より自分がイライラしたくない\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3 id=\"2-エレベーターピッチ\"\u003e2. エレベーターピッチ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGoogle検索の結果から不快なものを削除したい\u003c/li\u003e\n\u003cli\u003eインターネットヘビーユーザー向けの、\u003c/li\u003e\n\u003cli\u003eゴシップサイトブロッカーというプロダクトは、\u003c/li\u003e\n\u003cli\u003eGoogle Chrome拡張です。\u003c/li\u003e\n\u003cli\u003eこれはGoogle検索から不快なサイトを消すことができ、\u003c/li\u003e\n\u003cli\u003ePersonal Blocklistとは違って、\u003c/li\u003e\n\u003cli\u003eブロックレベルを制御する機能が備わっています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3 id=\"3-パッケージデザイン\"\u003e3. パッケージデザイン\u003c/h3\u003e\n\u003cp\u003e省略\u003c/p\u003e\n\u003ch4 id=\"最高のキャッチコピー\"\u003e最高のキャッチコピー\u003c/h4\u003e\n\u003cp\u003e[最高のキャッチコピー]\u003c/p\u003e\n\u003ch4 id=\"ユーザーへのアピール\"\u003eユーザーへのアピール\u003c/h4\u003e\n\u003col\u003e\n\u003cli\u003e二度と見たくないサイトはハードブロック、そうでもないサイトはソフトブロックと使い分けができる\u003c/li\u003e\n\u003cli\u003eTwitterをユーザ単位でブロックできる\u003c/li\u003e\n\u003cli\u003e[ユーザーへのアピールその3]\u003c/li\u003e\n\u003c/ol\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3 id=\"4-やらないことリスト\"\u003e4. やらないことリスト\u003c/h3\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eカテゴリ\u003c/th\u003e\n          \u003cth\u003e項目\u003c/th\u003e\n          \u003cth\u003eやる / やらない / あとで決める\u003c/th\u003e\n          \u003cth\u003e理由\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e[カテゴリ]\u003c/td\u003e\n          \u003ctd\u003e[やること]\u003c/td\u003e\n          \u003ctd\u003eやる\u003c/td\u003e\n          \u003ctd\u003e[やると決めた理由]\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e[カテゴリ]\u003c/td\u003e\n          \u003ctd\u003e[やらないこと]\u003c/td\u003e\n          \u003ctd\u003eやらない\u003c/td\u003e\n          \u003ctd\u003e[やらないと決めた理由]\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e[カテゴリ]\u003c/td\u003e\n          \u003ctd\u003e[あとで決める]\u003c/td\u003e\n          \u003ctd\u003eあとで決める\u003c/td\u003e\n          \u003ctd\u003e[あとで決めると決めた理由]\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3 id=\"5-プロジェクトコミュニティは\"\u003e5. プロジェクトコミュニティは\u0026hellip;\u003c/h3\u003e\n\u003cp\u003e\u003cimg src=\"\" alt=\"プロジェクトコミュニティの画像\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e関係者全員を！\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u0026hellip;思っているよりもずっと大きい！\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3 id=\"6-技術的な解決策の概要\"\u003e6. 技術的な解決策の概要\u003c/h3\u003e\n\u003cp\u003e\u003cimg src=\"\" alt=\"概要レベルのアーキテクチャ設計図の画像\"\u003e\u003c/p\u003e\n\u003ch4 id=\"採用する技術\"\u003e採用する技術\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eTypeScript\u003c/li\u003e\n\u003cli\u003eなし(Vanilla JS)\u003c/li\u003e\n\u003cli\u003eWebStorm\u003c/li\u003e\n\u003cli\u003e[その他の要素技術]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3 id=\"7-夜も眠れなくなるような問題は何だろう\"\u003e7. 夜も眠れなくなるような問題は何だろう？\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e突然Google検索の結果が変わって動かなくなる\u003c/li\u003e\n\u003cli\u003e[もし起きたらこわーいこと、その2]\u003c/li\u003e\n\u003cli\u003e[もし起きたらこわーいこと、その3]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3 id=\"8-期間を見極める\"\u003e8. 期間を見極める\u003c/h3\u003e\n\u003cp\u003e\u003cimg src=\"\" alt=\"ざっくりしたタイムラインの画像\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eあくまで推測であって、確約するものではありません。\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3 id=\"9-トレードオフスライダー\"\u003e9. トレードオフ・スライダー\u003c/h3\u003e\n\u003ch4 id=\"典型的なフォース\"\u003e典型的なフォース\u003c/h4\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: center\"\u003emax\u003c/th\u003e\n          \u003cth style=\"text-align: center\"\u003e\u0026raquo;\u0026gt;\u003c/th\u003e\n          \u003cth style=\"text-align: center\"\u003e\u0026raquo;\u0026gt;\u003c/th\u003e\n          \u003cth style=\"text-align: center\"\u003e\u0026raquo;\u0026gt;\u003c/th\u003e\n          \u003cth style=\"text-align: center\"\u003emin\u003c/th\u003e\n          \u003cth style=\"text-align: left\"\u003e項目\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: center\"\u003eo\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: left\"\u003e機能をぜんぶ揃える（スコープ）\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003eo\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: left\"\u003e予算内に収める（予算）\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003eo\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: left\"\u003e期日を死守する（時間）\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003eo\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: left\"\u003e高い品質、少ない欠陥（品質）\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch4 id=\"上記以外で重要なこと\"\u003e上記以外で重要なこと\u003c/h4\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth style=\"text-align: center\"\u003emax\u003c/th\u003e\n          \u003cth style=\"text-align: center\"\u003e\u0026raquo;\u0026gt;\u003c/th\u003e\n          \u003cth style=\"text-align: center\"\u003e\u0026raquo;\u0026gt;\u003c/th\u003e\n          \u003cth style=\"text-align: center\"\u003e\u0026raquo;\u0026gt;\u003c/th\u003e\n          \u003cth style=\"text-align: center\"\u003emin\u003c/th\u003e\n          \u003cth style=\"text-align: left\"\u003e項目\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: center\"\u003eo\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: left\"\u003e使い勝手\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003eo\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: left\"\u003eとにかくシンプルに！\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003eo\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: left\"\u003e詳細な監査ログ\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003eo\u003c/td\u003e\n          \u003ctd style=\"text-align: center\"\u003e\u003c/td\u003e\n          \u003ctd style=\"text-align: left\"\u003e[などなど]\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3 id=\"10-何がどれだけ必要なのか\"\u003e10. 何がどれだけ必要なのか\u003c/h3\u003e\n\u003cp\u003e一人プロジェクトなので省略\u003c/p\u003e\n\u003ch4 id=\"俺たちのaチーム\"\u003e俺たちの\u0026quot;Aチーム\u0026quot;\u003c/h4\u003e\n\u003cp\u003e一人プロジェクトなので省略\u003c/p\u003e\n"
  }, 
  {
    "title": "プレゼンテーション",
    "url": "https://www.ikemo3.com/log/presentation/",
    "contents": "\u003ch2 id=\"過去のプレゼン\"\u003e過去のプレゼン\u003c/h2\u003e\n\u003ch3 id=\"20190901日\"\u003e2019/09/01(日)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e場所: \u003ca href=\"https://www.tech-commit.jp/\"\u003eTechCommit\u003c/a\u003eの発表会\u003c/li\u003e\n\u003cli\u003e内容: Hugoと作ったソフトの話\u003c/li\u003e\n\u003cli\u003e時間: 10分?(LT)\u003c/li\u003e\n\u003cli\u003e使用したソフト: Google スライド + Zoom\u003c/li\u003e\n\u003cli\u003eテーマ: モダンライター\u003c/li\u003e\n\u003cli\u003e枚数: 22枚\u003c/li\u003e\n\u003cli\u003eやったこと\n\u003cul\u003e\n\u003cli\u003e発表人数が少なそうなのと、Nuxt.jsの発表があったのでSSG繋がりで飛び入り参加\u003c/li\u003e\n\u003cli\u003e慣れてきたので資料は雑・・・というか順番間違えたスライドが\u003c/li\u003e\n\u003cli\u003e手書きで囲みを入れた\u003c/li\u003e\n\u003cli\u003eスクリーンショットを多用した\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eわかったこと\n\u003cul\u003e\n\u003cli\u003e順番間違えても割となんとかなる\u003c/li\u003e\n\u003cli\u003e手書きで囲みを入れてもなんとかなる\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eつぎやること\n\u003cul\u003e\n\u003cli\u003eブログ用とかに画像の置き場所を作りたい(Googleフォトでいい気がする)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"20190817土\"\u003e2019/08/17(土)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e場所: \u003ca href=\"https://www.tech-commit.jp/\"\u003eTechCommit\u003c/a\u003eのオフ会\u003c/li\u003e\n\u003cli\u003e内容: キャリアについて\u003c/li\u003e\n\u003cli\u003e時間: 10分(LT)\u003c/li\u003e\n\u003cli\u003e使用したソフト: Google スライド\u003c/li\u003e\n\u003cli\u003eテーマ: モダンライター\u003c/li\u003e\n\u003cli\u003e枚数: 48枚\u003c/li\u003e\n\u003cli\u003eやったこと\n\u003cul\u003e\n\u003cli\u003eテーマ選びに苦労した(ボツスライドが200枚近く・・・)\u003c/li\u003e\n\u003cli\u003e前回と同程度の枚数にした(発表時間は8分くらい)\u003c/li\u003e\n\u003cli\u003e「要点」で書いた文を次のページで使うようにした\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eわかったこと\n\u003cul\u003e\n\u003cli\u003e言いたいことが多すぎてテーマを絞るのに苦労した\u003c/li\u003e\n\u003cli\u003e軽い場だったので自分の経歴メインでもよかったかも\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eつぎやること\n\u003cul\u003e\n\u003cli\u003eKeynoteを使ってみたい\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cimg src=\"./2019-08-18.png\" alt=\"\"\u003e\u003c/p\u003e\n\u003ch3 id=\"20190804金\"\u003e2019/08/04(金)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e場所: \u003ca href=\"https://www.tech-commit.jp/\"\u003eTechCommit\u003c/a\u003eの発表会\u003c/li\u003e\n\u003cli\u003e内容: ゴシップサイトブロッカーについての話\u003c/li\u003e\n\u003cli\u003e時間: 10分(LT)\u003c/li\u003e\n\u003cli\u003e使用したソフト: Google スライド + Zoom\u003c/li\u003e\n\u003cli\u003eテーマ: モダンライター\u003c/li\u003e\n\u003cli\u003e枚数: 44枚\u003c/li\u003e\n\u003cli\u003eやったこと\n\u003cul\u003e\n\u003cli\u003e10分くらいなので少し多めにした。\u003c/li\u003e\n\u003cli\u003e左側に図、右側に大きい文字を使う\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eわかったこと\n\u003cul\u003e\n\u003cli\u003e近くに住んでいる人が結構いた\u003c/li\u003e\n\u003cli\u003e「いかがでしたかブログ」という表現がウケた\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eつぎやること\n\u003cul\u003e\n\u003cli\u003eプレゼン終わったときにそのままスライドを表示し続けた\n\u003cul\u003e\n\u003cli\u003e悪いわけではないが、Slackの反応を表示した方が動画みているひとには良かった\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e想定問答集を作っておくと良かった\n\u003cul\u003e\n\u003cli\u003e質問は普段から考えてたことなので話せたけど、何もないところで話すのは苦手なので。\u003c/li\u003e\n\u003cli\u003e参考資料として作っておくといいかも\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"20190705金\"\u003e2019/07/05(金)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e内容: 社内勉強会のプレゼン\u003c/li\u003e\n\u003cli\u003e時間: 5分(LT)\n\u003cul\u003e\n\u003cli\u003e実際は6分くらいかかった。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e使用したソフト: Google スライド\u003c/li\u003e\n\u003cli\u003eテーマ: モダンライター\n\u003cul\u003e\n\u003cli\u003eタイトルの後に \u003ccode\u003e---\u003c/code\u003e となってたり、フォントが \u003ccode\u003eSource Code Pro\u003c/code\u003e だったり、エンジニア向けっぽいテーマ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e枚数: 30枚ちょい\u003c/li\u003e\n\u003cli\u003eやったこと\n\u003cul\u003e\n\u003cli\u003e右下にスライド番号を付けた(テーマを編集)\u003c/li\u003e\n\u003cli\u003eフォントサイズの大きい「要点」レイアウトを多用\n\u003cul\u003e\n\u003cli\u003e高橋メソッドほどではないが、文字が大きいと話しやすいので発表する側としても楽\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e最後は「ご清聴ありがとうございました」で終わる\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "SDカード(microSDカードなど含む)",
    "url": "https://www.ikemo3.com/dic/sdcard/",
    "contents": "\u003ch2 id=\"sdカードとは\"\u003eSDカードとは\u003c/h2\u003e\n\u003cp\u003eちっちゃいメモリカードです。\u003c/p\u003e\n\u003ch2 id=\"用語\"\u003e用語\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eバスインタフェースの速度: UHS-I, UHS-II, UHS-III\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.sdcard.org/jp/developers/overview/bus_speed/index.html\"\u003eバスインターフェーススピード - SD Association\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUHS-Iの場合、最大104MB/s (SDR104)のようです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eスピードクラス: \u003cstrong\u003e書き込み速度\u003c/strong\u003eの規格。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.sdcard.org/jp/developers/overview/speed_class/index.html\"\u003eスピードクラス - SD Association\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eスピードクラス\n\u003cul\u003e\n\u003cli\u003e一番古い規格。最大10(10MB/sec)まで\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eC\u003c/code\u003e の中に入っている数字\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUHSスピードクラス\n\u003cul\u003e\n\u003cli\u003e少し新しい規格。1(10MB/sec)と3(30MB/sec)がある。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eU\u003c/code\u003e の中に入っている数字\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eビデオスピードクラス\n\u003cul\u003e\n\u003cli\u003e一番新しい規格。V6(6MB/sec)からV90(90MB/sec)まで。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eV\u003c/code\u003e と数字\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eアプリケーションパフォーマンスクラス: 読み書きのIOPSとシーケンシャルの最低処理速度\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.sdcard.org/jp/developers/overview/application/index.html\"\u003eアプリケーションパフォーマンスクラス - SD Association\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eA\u003c/code\u003e と数字\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e読み書き速度: 規格がないため、記載で判断する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"流通\"\u003e流通\u003c/h2\u003e\n\u003cp\u003e自分は基本的にSanDisk使ってるのですが、流通が微妙です。\nmicroSDカード128GBのやつだとこんな感じ。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e国内正規品: SanDisk: 5,980円(ヤマダ)\n\u003cul\u003e\n\u003cli\u003eちゃんと保証がある。しかしボッタクリと言っていいほど高い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eエコパッケージ: 2,980円(Amazon)\n\u003cul\u003e\n\u003cli\u003eなぜこれだけ安くなるか謎なもの。\u003c/li\u003e\n\u003cli\u003eAmazon.co.jpが販売しているものなのでたぶん大丈夫(最悪でも返品は可能)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e並行輸入品: 2,280円(Amazon)\n\u003cul\u003e\n\u003cli\u003eハズレもある。容量をごまかしている場合、途中でデータが破損する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.flashmemory.jp/\"\u003e風見鶏\u003c/a\u003e: 1,853円\n\u003cul\u003e\n\u003cli\u003e安くて信頼できるのでネットでは有名みたいです。\u003c/li\u003e\n\u003cli\u003eリアル店舗が元町(神戸)にあります。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.kobe-motomachi.or.jp/shop-search/294\"\u003e風見鶏｜お店を探す｜神戸元町商店街\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ロゴと選び方\"\u003eロゴと選び方\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eローマ数字(I, II, III): バススピード\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eC\u003c/code\u003e の中の数字: スピードクラス。10の場合\u003cstrong\u003e書き込み速度\u003c/strong\u003eが10MB/secになる。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eU\u003c/code\u003e の中の数字: UHSスピードクラス。1の場合\u003cstrong\u003e書き込み速度\u003c/strong\u003eが10MB/secになる。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eV\u003c/code\u003e と数字: ビデオスピードクラス: V30の場合\u003cstrong\u003e書き込み速度\u003c/strong\u003eが30MB/secになる。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eA\u003c/code\u003e と数字: アプリケーションパフォーマンスクラス\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e基本的には次のような感じかなと。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e使いたい機器のバスインタフェースにあったもの\u003c/li\u003e\n\u003cli\u003eスピードクラス、パフォーマンスクラスの指定がある場合は、その条件を満たすもの\u003c/li\u003e\n\u003cli\u003e1と2の条件を満たすもので、価格、スピード、信頼性のバランスを考える。\n\u003cul\u003e\n\u003cli\u003eSSDと同じくフラッシュメモリなので、余裕を持った容量の方がいいかもしれない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"nintendo-switchの場合\"\u003eNintendo Switchの場合\u003c/h3\u003e\n\u003cp\u003eNintendo Switchで使用するmicroSDカードの仕様については以下のサイトに書かれています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.nintendo.co.jp/support/switch/data_management/microsdcard/index.html\"\u003emicroSDカードについて｜Nintendo Switch サポート情報｜Nintendo\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこのページには以下のように書かれています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e高速なmicroSDカードの目安\n\u003cul\u003e\n\u003cli\u003eUHS-I（Ultra High Speed Phase I）対応\u003c/li\u003e\n\u003cli\u003e読み込み速度 60~95MB/秒（読み込み速度が速いほど、Nintendo Switchをより快適に遊んでいただけます）\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれは次のようなことかなと。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNintendo SwitchはUHS-Iバスに対応\n\u003cul\u003e\n\u003cli\u003e逆に言えばUHS-II以降は未対応なので買っても意味がない(速度は上がらない)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eスピードクラスの指定はない\n\u003cul\u003e\n\u003cli\u003eゲームという性質上、読み込みがほとんどなので。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e読み込み速度の指定がある\n\u003cul\u003e\n\u003cli\u003e当然読み込みが速いほうが起動が早い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "RDBMS",
    "url": "https://www.ikemo3.com/manual/rdbms/",
    "contents": "\u003ch2 id=\"sqlアンチパターン\"\u003eSQLアンチパターン\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.oreilly.co.jp/books/9784873115894/\"\u003eO\u0026rsquo;Reilly Japan - SQLアンチパターン\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e詳細に書くと良くないので、ざっくりと説明を自分の言葉で記載します。\n注意が必要なところは太字にしてます(EAVのような当たり前すぎるものには入れてません)。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eジェイウォーク(信号無視)\n\u003cul\u003e\n\u003cli\u003e1:nとかn:mの場合ににカンマ区切りで入れてしまう。サボらずにちゃんとテーブルを作ろう。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eナイーブツリー(素朴な木)\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003e階層がある場合に「親子関係」だけで管理するもの。\u003c/li\u003e\n\u003cli\u003e解決策がいろいろあってややこしい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eIDリクワイアド(とりあえずID)\n\u003cul\u003e\n\u003cli\u003eなんでもかんでもPKとしてIDをつける。\u003c/li\u003e\n\u003cli\u003e例外: フレームワークのORMを使っている場合\n\u003cul\u003e\n\u003cli\u003eフレームワークの便利さとのトレードオフになるが、\u003cstrong\u003e少なくともUNIQUE制約を付ける\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eキーレスエントリ(外部キー嫌い)\n\u003cul\u003e\n\u003cli\u003e外部キーはポカヨケ。\u003c/li\u003e\n\u003cli\u003e解決案としてカスケード更新が挙げられている\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEAV(エンティティ・アトリビュート・バリュー)\n\u003cul\u003e\n\u003cli\u003eありがち。\u003cstrong\u003eEAVを使う誘惑に負けないことが重要\u003c/strong\u003e。\u003c/li\u003e\n\u003cli\u003e例外: スキーマレスなもの→ただしJSON型とかを使ったほうがよい\u003c/li\u003e\n\u003cli\u003e解決案で挙げられているものは正直微妙感・・・\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eポリモーフィック関連\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003e親が2つあるときに「どれが親か」という列と「親のID」を格納する。\u003c/li\u003e\n\u003cli\u003e親が2つあるので\u003cstrong\u003e外部キーとして設定できない\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e解決案は書籍参照(いまいち読めてない)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eマルチカラムアトリビュート(複数列属性)\n\u003cul\u003e\n\u003cli\u003eジェイウォークと似たようなタイプで、複数列で対応するもの。\u003c/li\u003e\n\u003cli\u003e例外: 論理的に違う列の場合\n\u003cul\u003e\n\u003cli\u003eBTSでの作成者、担当者など。ただし複数人には対応できないので本当に1人なのか考える。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e解決案: 従属テーブルを作る\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eメタデータトリブル(メタデータ大増殖)\n\u003cul\u003e\n\u003cli\u003eテーブル名に情報を入れる(年月とか)。自分としては信じられないけど。\u003c/li\u003e\n\u003cli\u003e例外: 「アーカイブ用のテーブル」程度\u003c/li\u003e\n\u003cli\u003e解決案\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ePARTITION BY\u003c/code\u003e を使う(知らない・・・)\u003c/li\u003e\n\u003cli\u003eBLOBとかを使う場合はテーブルを分割\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eラウンディングエラー(丸め誤差)\n\u003cul\u003e\n\u003cli\u003e正確なデータが必要なときにFLOATを使う\u003c/li\u003e\n\u003cli\u003e解決策: NUMERIC\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eサーティワンフレーバー(31のフレーバー)\n\u003cul\u003e\n\u003cli\u003e特定の値しか入らないことを保証するためにCHECK制約を使う\u003c/li\u003e\n\u003cli\u003e例外: 値が変わらないとき(明らかにon/offしかないよとか)\n\u003cul\u003e\n\u003cli\u003eプログラミングでのbooleanとStringの扱いと同じだと思った。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e解決案: テーブルを分けてFKで制約を指定\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eファントムファイル(幻のファイル)\n\u003cul\u003e\n\u003cli\u003e画像ファイルを物理ファイルとして格納する\u003c/li\u003e\n\u003cli\u003e最近はS3に格納するので、アンチパターンとは言えないと思う(容量とのトレードオフ)。ただデメリットの考慮は必要。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eインデックスショットガン(闇雲インデックス)\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eなんでもかんでもインデックスを作成\u003c/li\u003e\n\u003cli\u003e闇雲でなくても「将来必要かも」で付けるのはありそう。。。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eフィア・オブ・ジ・アンノウン(恐怖のunknown)\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eNULLの扱い。NULL=わかりません。詳細はあとで見直す必要あり。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eアンビギュアスグループ(曖昧なグループ)\u003c/li\u003e\n\u003cli\u003eランダムセレクション\u003c/li\u003e\n\u003cli\u003eプアマンズ・サーチエンジン(貧者のサーチエンジン)\u003c/li\u003e\n\u003cli\u003eスパゲッティクエリ\u003c/li\u003e\n\u003cli\u003eインプリシットカラム(暗黙の列)\u003c/li\u003e\n\u003cli\u003eリーダブルパスワード(読み取り可能パスワード)\u003c/li\u003e\n\u003cli\u003eSQLインジェクション\u003c/li\u003e\n\u003cli\u003eシュードキー・ニートフリーク(疑似キー潔癖症)\u003c/li\u003e\n\u003cli\u003eシー・ノー・エビル(臭いものに蓋)\u003c/li\u003e\n\u003cli\u003eディプロマティック・イミュニティ(外交特権)\u003c/li\u003e\n\u003cli\u003eマジックビーンズ(魔法の豆)\u003c/li\u003e\n\u003cli\u003e砂の城\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Taskchute",
    "url": "https://www.ikemo3.com/tags/taskchute/",
    "contents": ""
  }, 
  {
    "title": "たすくま",
    "url": "https://www.ikemo3.com/manual/taskuma/",
    "contents": "\u003ch2 id=\"ヘルプ\"\u003eヘルプ\u003c/h2\u003e\n\u003cp\u003eアプリのURLと同じものはここにあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://taskuma.komadorist.com/help/top.html\"\u003eたすくまにゅある\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"url\"\u003eURL\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://taskuma.komadorist.com/help/other.html#url\"\u003eURLスキーム\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.k-cube.co.jp/wakaba/server/ascii_code.html\"\u003eASCIIコード表\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下のようにします。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e空白: \u003ccode\u003e%20\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eダブルクォーテーション: \u003ccode\u003e%22\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eアンパサンド: ??\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "マナー",
    "url": "https://www.ikemo3.com/manual/manner/",
    "contents": "\u003ch2 id=\"はじめに\"\u003eはじめに\u003c/h2\u003e\n\u003cp\u003e冠婚葬祭のような滅多にない事ならともかく、\nその場の状況を考えて判断しないといけないマナーは\u003cstrong\u003e脳のリソースの無駄\u003c/strong\u003eだと思ってます。\n条件分岐が1つか2つくらいならまあいいかなくらいですが。。。\u003c/p\u003e\n\u003cp\u003e実際のところそれで何か言われたり、何か困ったこともありませんし・・・\u003c/p\u003e\n\u003cp\u003eただ性分としてどうしても気になっちゃうことがあるので、メモとして残しておきます。\u003c/p\u003e\n\u003ch2 id=\"了解-vs-承知\"\u003e了解 vs 承知\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://liginc.co.jp/246919\"\u003e「了解しました」より「承知しました」が適切とされる理由と、その普及過程について | 東京上野のWeb制作会社LIG\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://type-100.hatenablog.com/entry/2015/05/09/062544\"\u003e了解と承知はどちらが丁寧か？　北原保雄VS中村明 - 月記\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e「身内なら了解」でOK。\u003c/p\u003e\n\u003ch2 id=\"敬称\"\u003e敬称\u003c/h2\u003e\n\u003cp\u003eソースなし。\u003c/p\u003e\n\u003cp\u003e自分は基本「さん」付け(IBMのときがそうだった)。\nただし組織などの「身内」を他人に話すときは呼び捨てするのはやってます。\u003c/p\u003e\n"
  }, 
  {
    "title": "電子マネー",
    "url": "https://www.ikemo3.com/dic/electronic-money/",
    "contents": "\u003ch2 id=\"電子マネーとは\"\u003e電子マネーとは\u003c/h2\u003e\n\u003cp\u003eお金を電子化したものです。\nざっくり言えば「現金いらず」のやつという認識なので、クレジットカードもここに入れときます。\u003c/p\u003e\n\u003ch2 id=\"個人的なおすすめ2019-06-22現在\"\u003e個人的なおすすめ(2019-06-22現在)\u003c/h2\u003e\n\u003cp\u003e自分がよく使っているのが、\u003ca href=\"https://kyash.co/\"\u003eKyash\u003c/a\u003eのリアルカードです。\nこれに楽天銀行デビットカード(VISA)を紐づけています。\u003c/p\u003e\n\u003cp\u003e一番の利点は\u003cstrong\u003e使いやすい\u003c/strong\u003eことです。\nクレジットカードを通して数秒後にはApple Watchに通知が来て金額が確認できる。\nこれが一番安心できるんですよね。\u003c/p\u003e\n\u003cp\u003eKyashは基本2％還元、楽天銀行デビットカードが1％のポイント、これで基本3％になりますが、\n3％というのは還元目的というよりは、\u003cstrong\u003e3%未満の還元率の電子マネーはいらない\u003c/strong\u003eという感じ。\u003c/p\u003e\n\u003cp\u003eSuicaとかの交通系(FeliCa)は反応が早くて便利なので使いますが。\u003c/p\u003e\n\u003ch2 id=\"qrコード決済は使う気がないpaypay除く\"\u003eQRコード決済は使う気がない(PayPay除く)\u003c/h2\u003e\n\u003cp\u003eいろいろキャンペーンが提供されているQRコード決済ですが、自分は全く興味ありません。\n理由は単純に\u003cstrong\u003e使いにくい\u003c/strong\u003eからです。\n逆にいえばキャンペーンをやらないと使ってもらえない程度のサービスなんですね。\u003c/p\u003e\n\u003cp\u003eただ今はやってませんが、PayPayは今後使う予定です。\nなぜかというと、\u003cstrong\u003e個人商店での採用が多い\u003c/strong\u003eからです。\nQRコード決済は使いやすさという意味では最悪なのですが、\nクレジットカードやFeliCaに比べて導入コストが低いという利点があります。\u003c/p\u003e\n\u003cp\u003eなので、現金のみだった店にも普及しつつあります。店頭でも結構見かけます。\nそしてダイソーに導入されるようです。なので使うのもアリかなと。\u003c/p\u003e\n\u003cp\u003eただ、入金方法が罠だらけでややこしいんですよねぇ・・・\n現金からならYahoo!マネーにコンビニで払えばいいみたいですが。\u003c/p\u003e\n"
  }, 
  {
    "title": "電子マネー",
    "url": "https://www.ikemo3.com/manual/electronic-money/",
    "contents": "\u003ch2 id=\"paypayへ現金でチャージする方法\"\u003ePayPayへ現金でチャージする方法\u003c/h2\u003e\n\u003cp\u003eまだ試してないです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eYahoo!マネーの口座を作る\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://wallet.yahoo.co.jp/promotion/cvs/\"\u003e近くのコンビニを探す\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eざっくりいうと「セブンイレブン以外の大手」\u003c/li\u003e\n\u003cli\u003e参考: \u003ca href=\"https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%93%E3%83%8B%E3%82%A8%E3%83%B3%E3%82%B9%E3%82%B9%E3%83%88%E3%82%A2%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3%E4%B8%80%E8%A6%A7\"\u003e日本のコンビニエンスストアチェーン一覧 - Wikipedia\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://money.wallet.yahoo.co.jp/charge/cvs/input\"\u003eコンビニ払いの申込み\u003c/a\u003eをする。\u003c/li\u003e\n\u003cli\u003eコンビニに行って払う。\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Safari",
    "url": "https://www.ikemo3.com/tags/safari/",
    "contents": ""
  }, 
  {
    "title": "たすくま: iOSでURLをたすくまに送信する方法",
    "url": "https://www.ikemo3.com/inverted/taskuma/transfer-url/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eSafariからURLをたすくまに送信する方法です。\nあるサイトをメモしたいときに、たすくまを使いたい、そんなときに有効です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e「ショートカット」アプリを使います。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eURLの仕様なのかiOSの問題なのかたすくまの問題なのかは分かってませんが、以下のようにする必要があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eタスク名にURLを含む場合、URLエンコードが必要\u003c/li\u003e\n\u003cli\u003eプロジェクト名を日本語のままにする(URLエンコードが必要)\u003c/li\u003e\n\u003cli\u003eタスク名に \u003ccode\u003e\u0026amp;\u003c/code\u003e が使えない(今は全角で回避)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003eショートカットの内容だけ書いておきます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e受け入れの種類: URL\u003c/li\u003e\n\u003cli\u003e1つ目のブロック(URL展開用)\n\u003cul\u003e\n\u003cli\u003eURLを展開\u003c/li\u003e\n\u003cli\u003e変数を設定: 「展開されたURL」\u003c/li\u003e\n\u003cli\u003eURLエンコード\u003c/li\u003e\n\u003cli\u003e変数を設定: 「エンコードされたURL」\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e2つ目のブロック(タイトル取得用)\n\u003cul\u003e\n\u003cli\u003e変数を取得: 「展開されたURL」\u003c/li\u003e\n\u003cli\u003e名前を取得\u003c/li\u003e\n\u003cli\u003eテキストを置き換える: \u003ccode\u003e\u0026amp;amp;\u003c/code\u003e → \u003ccode\u003e＆\u003c/code\u003e (\u003ccode\u003e\u0026amp;\u003c/code\u003eがうまく扱えないため全角に変換)\u003c/li\u003e\n\u003cli\u003eURLエンコード\u003c/li\u003e\n\u003cli\u003eテキストを置き換える: \u003ccode\u003e%26quot;\u003c/code\u003e → \u003ccode\u003e%22\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eテキストを置き換える: \u003ccode\u003e%26ndash;' → \u003c/code\u003e-\u003ccode\u003e(KyashのFAQで\u003c/code\u003e–` が使われていたものに対応)\u003c/li\u003e\n\u003cli\u003e変数を設定: 「記事のタイトル」\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e3つ目のブロック(変数設定だけ)\n\u003cul\u003e\n\u003cli\u003eテキスト: 任意\u003c/li\u003e\n\u003cli\u003e変数を設定: 「プロジェクト名」\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e4つ目のブロック(URL作成してオープン)\n\u003cul\u003e\n\u003cli\u003eテキスト: \u003ccode\u003etaskuma://start?new=yes\u0026amp;taskname=「記事のタイトル」%20「エンコードされたURL」\u0026amp;estimated=1\u0026amp;project=「プロジェクト名」\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eURLを開く\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれで、サイトを開いてショートカットを呼び出すと、たすくまに以下のように入ります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eタイトル: \u003ccode\u003e記事のタイトル 記事のURL\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eプロジェクト名: 設定したもの\u003c/li\u003e\n\u003cli\u003e見積もり時間: 1\u003c/li\u003e\n\u003cli\u003e開始された状態\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれであとはメモして終了すればOK。\nメール送信すればURLも有効になります。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003eまだ一部のサイトが対応していないようなので、改良中です。\u003c/p\u003e\n"
  }, 
  {
    "title": "Django",
    "url": "https://www.ikemo3.com/manual/django/",
    "contents": "\u003ch2 id=\"設定\"\u003e設定\u003c/h2\u003e\n\u003ch3 id=\"django-debug-toolbar\"\u003eDjango Debug Toolbar\u003c/h3\u003e\n\u003cp\u003eこれは便利で必須。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://hinoapp.com/django-debug-toolbar_usage/\"\u003edjango-debug-toolbarでデバッグ効率を上げる方法【Django】 - ヒノブログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ccode\u003e\u0026lt;body\u0026gt;\u003c/code\u003e がないと表示されないのに注意。\u003c/p\u003e\n\u003ch2 id=\"view\"\u003eView\u003c/h2\u003e\n\u003cp\u003e基本はクラスベースビューで。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://zenn.dev/ikemo/articles/django-class-based-view-or-function-based-view\"\u003e[Django]クラスベースビューと関数ベースビューの使い分けを考える\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"form\"\u003eForm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eformset: 普通のフォーム\u003c/li\u003e\n\u003cli\u003emodelformset: モデルに紐づいたフォーム\u003c/li\u003e\n\u003cli\u003einlineformset: 親と子複数をまとめて扱いたいとき\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"formpreviewは使わない方がいい\"\u003eFormPreviewは使わない方がいい\u003c/h3\u003e\n\u003cp\u003eformtoolsは元々はDjangoにあったが、コア機能としてあるのがふさわしくないということで、外されることになった。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://groups.google.com/g/django-developers/c/cJyL87v3BWw?pli=1\"\u003eRemoving formtools from contrib (and call for maintainers)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e特にFormPreviewは使わない方がいいと思う。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://zenn.dev/ikemo/articles/django-formpreview-is-not-recommended\"\u003e[Django]プレビューのためにFormPreviewを使って欲しくない理由\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"modelform\"\u003eModelForm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eラベルだけ変更したい: label_for_instanceを定義する\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.djangoproject.com/ja/3.0/ref/forms/fields/#modelchoicefield\"\u003ehttps://docs.djangoproject.com/ja/3.0/ref/forms/fields/#modelchoicefield\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"model\"\u003eModel\u003c/h2\u003e\n\u003ch3 id=\"モデルのnullとblank\"\u003eモデルのnullとblank\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://djangobrothers.com/blogs/django_null_blank/\"\u003eDjangoモデルフィールドのnullとblankの違いを理解する - Django2の実力をつけるチュートリアルサイトDjangoBrothers\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれを自分の経験と合わせると次のような感じかなと。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eblank\u003c/th\u003e\n          \u003cth\u003enull\u003c/th\u003e\n          \u003cth\u003e使う場面\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eFalse\u003c/td\u003e\n          \u003ctd\u003eFalse\u003c/td\u003e\n          \u003ctd\u003e必須項目\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eTrue\u003c/td\u003e\n          \u003ctd\u003eTrue\u003c/td\u003e\n          \u003ctd\u003e任意項目で、nullである意味が\u003cstrong\u003eある\u003c/strong\u003eもの\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eTrue\u003c/td\u003e\n          \u003ctd\u003eFalse\u003c/td\u003e\n          \u003ctd\u003e任意項目で、nullである意味が\u003cstrong\u003eない\u003c/strong\u003eもの\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eFalse\u003c/td\u003e\n          \u003ctd\u003eTrue\u003c/td\u003e\n          \u003ctd\u003eなし(使わない)\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003e任意項目について説明すると、例えばURLのクエリパラメータは\n\u003ccode\u003ehttps://example.com/?foo=\u003c/code\u003e と、 \u003ccode\u003ehttps://example.com/\u003c/code\u003e のように、\n「キーがセットされていない」と、「キーが空である」は明示的に区別されます。\u003c/p\u003e\n\u003cp\u003eこれを区別しないといけないものは、blank=True, null=Trueにします。\nしかしそれ以外の場合、具体的には「入力なし＝空文字列として問題がない」場合は、\nblank=True, null=Falseとするといいです(defaultも設定するといいかも)。\u003c/p\u003e\n\u003cp\u003eDB的には\u003cstrong\u003enullは悪\u003c/strong\u003eです。せいぜい\u003cstrong\u003e必要悪\u003c/strong\u003eです。\nなのでnull=Trueとするのは慎重にした方がいいです。\u003c/p\u003e\n\u003ch3 id=\"modelのクラス階層\"\u003eModelのクラス階層\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/tree/3.0/django/db/models\"\u003edjango.db.models\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/tree/3.0/django/db/models/fields\"\u003edjango.db.models.fields\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__init__.py\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/blob/3.0/django/db/models/fields/__init__.py#L89\"\u003eField\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/blob/3.0/django/db/models/query_utils.py#L154\"\u003eRegisterLookupMixin\u003c/a\u003eを継承している。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/blob/3.0/django/db/models/fields/__init__.py#L930\"\u003eBooleanField\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eその他基本的なモデルのフィールドの定義が格納されている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/blob/3.0/django/db/models/fields/files.py\"\u003edjango.db.models.fields.files\u003c/a\u003e: ファイル関連\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/blob/3.0/django/db/models/fields/related.py\"\u003edjango.db.models.fields.related\u003c/a\u003e: ForeignKey, OneToOneField, ManyToManyField\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/tree/3.0/django/db/models/functions\"\u003edjango.db.models.functions\u003c/a\u003e: SQLの関数\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/tree/3.0/django/db/models/sql\"\u003edjango.db.models.sql\u003c/a\u003e: SQL関連(サブクエリとか)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"n1問題\"\u003eN+1問題\u003c/h3\u003e\n\u003cp\u003e基本的には次の2つで解消できる。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e外部キーで結合している場合: select_related\u003c/li\u003e\n\u003cli\u003e逆参照の場合: prefetch_related\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eテストで検知するときはこんな感じで。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://zenn.dev/ikemo/articles/django-queryset-n-plusone\"\u003eDjango ORMでN+1問題を検知する方法\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"認証認可\"\u003e認証認可\u003c/h2\u003e\n\u003cp\u003eこの記事に書いている通りで良さげ。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://hironsan.hatenablog.com/entry/django-access-control\"\u003eDjangoにおけるアクセス制御の話 - Ahogrammer\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Python",
    "url": "https://www.ikemo3.com/tags/python/",
    "contents": ""
  }, 
  {
    "title": "Web-Application-Framework",
    "url": "https://www.ikemo3.com/tags/web-application-framework/",
    "contents": ""
  }, 
  {
    "title": "Industry",
    "url": "https://www.ikemo3.com/tags/industry/",
    "contents": ""
  }, 
  {
    "title": "Work",
    "url": "https://www.ikemo3.com/tags/work/",
    "contents": ""
  }, 
  {
    "title": "知識集約型産業",
    "url": "https://www.ikemo3.com/dic/knowledge-intensive/",
    "contents": "\u003ch2 id=\"知識集約型産業とは\"\u003e知識集約型産業とは\u003c/h2\u003e\n\u003cp\u003e人による知識労働が中心となる産業のことです。\u003c/p\u003e\n\u003ch2 id=\"知識集約型産業と労働集約型産業の違い\"\u003e知識集約型産業と労働集約型産業の違い\u003c/h2\u003e\n\u003cp\u003e知識集約型産業は、「人」が中心のため、大きなくくりでは労働集約型産業に属します。\nこの違いは「知識」をどれだけ重視しているかで違います。\u003c/p\u003e\n\u003cp\u003e自分の感覚的にはこんな感じです。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e\u003c/th\u003e\n          \u003cth\u003e労働集約型\u003c/th\u003e\n          \u003cth\u003e知識集約型\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e教育\u003c/td\u003e\n          \u003ctd\u003e最低限の研修のみで終わらせる\u003c/td\u003e\n          \u003ctd\u003e\u003ca href=\"/dic/continuous-learning/\"\u003e継続教育(リカレント教育)\u003c/a\u003eを重視している\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e個性\u003c/td\u003e\n          \u003ctd\u003e弱みとして削る\u003c/td\u003e\n          \u003ctd\u003e強みとして活かす\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e仕事の品質\u003c/td\u003e\n          \u003ctd\u003e最もスキルの低い人に合わせる\u003c/td\u003e\n          \u003ctd\u003e最適を基準とする\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e裁量\u003c/td\u003e\n          \u003ctd\u003eなし\u003c/td\u003e\n          \u003ctd\u003eあり\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n"
  }, 
  {
    "title": "Django",
    "url": "https://www.ikemo3.com/dic/django/",
    "contents": "\u003ch2 id=\"djangoとは\"\u003eDjangoとは\u003c/h2\u003e\n\u003cp\u003ePythonで書かれたWebフレームワークです。\nジャンゴと読みます(Dは発音しない)\u003c/p\u003e\n\u003ch2 id=\"特徴\"\u003e特徴\u003c/h2\u003e\n\u003cp\u003eRuby on Railsと比べると次のような特徴があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e暗黙的なルールが少ない\n\u003cul\u003e\n\u003cli\u003eコード量は増えますが、暗黙的なところが少なくて慣れてなくても安心感があります。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eCRUDについてはジェネリックビューという汎用的な仕組みがある\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/template-method/\"\u003eTemplate Methodパターン\u003c/a\u003e(ちょっと違うかも)ですが、よく使われるCRUDに限っているので、悪い印象はないですね。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eマイグレーションファイルが見づらい\n\u003cul\u003e\n\u003cli\u003eRailsのマイグレーションファイルはDSLっぽく見やすいのですが、Djangoのマイグレーションファイルは見てもよく分からないです。モデル定義も見づらいです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e全体的な印象では、モデルはRailsの方が書きやすいですが、ビューはDjangoの方が書きやすい感じです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Programming",
    "url": "https://www.ikemo3.com/tags/programming/",
    "contents": ""
  }, 
  {
    "title": "Python",
    "url": "https://www.ikemo3.com/dic/python/",
    "contents": "\u003ch2 id=\"pythonとは\"\u003ePythonとは\u003c/h2\u003e\n\u003cp\u003eプログラミング言語の1つです。\u003c/p\u003e\n\u003ch2 id=\"特徴\"\u003e特徴\u003c/h2\u003e\n\u003cp\u003eこんな感じですかね・・・\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eインデントが超重要\u003c/li\u003e\n\u003cli\u003e組み込み関数が多い\u003c/li\u003e\n\u003cli\u003e独特な記法がある(内包表記)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"3年やってきての感想\"\u003e3年やってきての感想\u003c/h2\u003e\n\u003ch3 id=\"良いところ悪くないところ\"\u003e良いところ、悪くないところ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eライブラリが多いのは強み\u003c/li\u003e\n\u003cli\u003etruthy/falsyはあるが、暗黙の型変換がないのは良い\u003c/li\u003e\n\u003cli\u003e多重継承も慣れれば使える(「多段継承」が問題)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"悪いところ\"\u003e悪いところ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e他の言語と比べると設計の古さを感じる\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "転職",
    "url": "https://www.ikemo3.com/log/change-job/",
    "contents": "\u003ch2 id=\"201905\"\u003e2019/05\u003c/h2\u003e\n\u003cp\u003e使ったサービスとか転職活動自体の話だけ書きます。\u003c/p\u003e\n\u003ch3 id=\"使った主なサービス\"\u003e使った主なサービス\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGreen\n\u003cul\u003e\n\u003cli\u003e最終的にはここ経由で決まった。\u003c/li\u003e\n\u003cli\u003e「気になる」レベルならかなりくる。ただし返したがその後音沙汰ないケースも。\u003c/li\u003e\n\u003cli\u003e会社のレベルは全体的に高い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eビズリーチ\n\u003cul\u003e\n\u003cli\u003e基本はエージェントのスカウト待ち。たまに企業から。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eミドルの転職\n\u003cul\u003e\n\u003cli\u003eここも基本はエージェントのスカウト。たまに企業からも来た。\u003c/li\u003e\n\u003cli\u003e英語でのスカウトも来て結構カオス。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eミイダス\n\u003cul\u003e\n\u003cli\u003eサービス自体は面白い。市場価値が測れたり、適性検査が受けられる。\u003c/li\u003e\n\u003cli\u003e求人はノイズが多すぎる。IT以外でもどんどん来るのでうんざり。\u003c/li\u003e\n\u003cli\u003eただたまに面白い求人が見つかる。意外性を求めるならアリかと。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eエージェント(いろいろ)\n\u003cul\u003e\n\u003cli\u003e自分が利用した中では「ジェイマックスリクルートメント」は素晴らしいと感じた。他は正直納得できなかった。\u003c/li\u003e\n\u003cli\u003e担当者やサービスによってピンキリなので、「合わないな」と感じたら止めたほうがいいかも。\u003c/li\u003e\n\u003cli\u003e職務経歴書の添削や、面接のアドバイスなどができるのは強み。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWantedly\n\u003cul\u003e\n\u003cli\u003e「使える」という評判が多いけど、自分には使えなかった。カジュアル面談なので地方からだと向いてない?\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e転職ドラフト\n\u003cul\u003e\n\u003cli\u003e箸にも棒にもかからず。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003epaiza\n\u003cul\u003e\n\u003cli\u003eBランクでは箸にも棒にもかからなかったが、Sランクになったら結構来た。その時点では転職先ほぼ決まってたけど・・・\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eダイレクト\n\u003cul\u003e\n\u003cli\u003eGoogle Formsで募集かけてたら1件面談。結果的にNGでしたが・・・\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://bosyu.me/\"\u003ebosyu\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eダメ元で登録してたら1件カジュアル面談の話が。結果的にNGでしたが・・・\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分としてはこんな感じかなぁと。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGreenはとりあえず登録しとけ\u003c/li\u003e\n\u003cli\u003eエージェントを利用するなら、大手よりも専門知識が豊富なところ\u003c/li\u003e\n\u003cli\u003eWantedlyの評価は保留\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"面接\"\u003e面接\u003c/h3\u003e\n\u003cp\u003e愛媛からだけどほとんどWeb面談で終わった。\n使ってるツールはだいたいこんな感じ。\nZoomとGoogleハングアウトが特に多かった。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eZoom\u003c/li\u003e\n\u003cli\u003eGoogleハングアウト\u003c/li\u003e\n\u003cli\u003eSkype\u003c/li\u003e\n\u003cli\u003eV-CUBE ミーティング\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eエージェントとは電話面談のみ。\n最終的に愛媛を離れたのは1回のみ(そこも行かなくてよかったけど・・・)\u003c/p\u003e\n"
  }, 
  {
    "title": "JetBrains",
    "url": "https://www.ikemo3.com/dic/jetbrains/",
    "contents": "\u003ch2 id=\"jetbrainsとは\"\u003eJetBrainsとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/intellij-idea/\"\u003eIntelliJ IDEA\u003c/a\u003eなどを開発・販売している会社です。\u003c/p\u003e\n\u003ch2 id=\"代理店\"\u003e代理店\u003c/h2\u003e\n\u003cp\u003e現在はサムライズムさんが総代理店となっています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://samuraism.com/jetbrains\"\u003eJetBrains – 株式会社サムライズム\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこちらに紹介コード付きのリンクがあります。\n200円〜1000円安くなるのでもし良かったらどうぞ。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://secure.samuraism.com/referral/5E3DE43A4B9377946FEB5F51CF93E582\"\u003e紹介用リンク\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ライセンス\"\u003eライセンス\u003c/h2\u003e\n\u003cp\u003e必ず最新の情報は自分で確認して下さい。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.jetbrains.com/store/terms/comparison.html\"\u003eCompare Subscription Options - JetBrains Toolbox\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"個人ライセンスは経費が使えない\"\u003e個人ライセンスは経費が使えない\u003c/h3\u003e\n\u003cp\u003e当然ですが個人ライセンスを会社のお金で買うのはダメです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://blog.jetbrains.com/jp/2019/02/25/1731\"\u003e「会社で買うなら」知っておきたいJetBrainsのライセンスとお金の話 | JetBrains ブログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e一方で、「\u003cstrong\u003e会社の経費で買うんだけど、安いから個人ライセンス」\u003cstrong\u003eという選択は\u003c/strong\u003eライセンス規約違反\u003c/strong\u003eとなりますのでご注意ください。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"個人ライセンスは業務でも使用可能\"\u003e個人ライセンスは業務でも使用可能\u003c/h3\u003e\n\u003cp\u003e個人ライセンスは業務でも使用可能です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://blog.jetbrains.com/jp/2019/02/25/1731\"\u003e「会社で買うなら」知っておきたいJetBrainsのライセンスとお金の話 | JetBrains ブログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e個人ライセンスについて補足すると、こちらにあるように\u003cstrong\u003e個人ライセンス\u003c/strong\u003eであっても\u003cstrong\u003e業務利用は可能\u003c/strong\u003eです。\nしたがって、「プロとして自分が使うツールは自腹を切って準備する」や\n「諸般の事情から会社ではJetBrainsのライセンスを買ってもらえないので自腹を切らざるを得ない」という方、\n個人事業主（フリーランス）の方が\u003cstrong\u003e個人ライセンス\u003c/strong\u003eを業務利用することは全く問題ありません。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"個人ライセンスは複数マシンにインストール可能同時利用可能\"\u003e個人ライセンスは複数マシンにインストール可能＆同時利用可能\u003c/h3\u003e\n\u003cp\u003e個人ライセンスは複数台インストール可能＆同時起動可能です。\n法人ライセンスは複数台同時起動ができないため注意してください。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://sales.jetbrains.com/hc/en-gb/articles/206544319-Can-I-use-my-personal-license-on-multiple-machines-\"\u003eCan I use my personal license on multiple machines? – Licensing and Purchasing FAQ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eUnder our current subscription model,\nyou may run multiple personal licensed copies of the IDE at the same time across multiple operating systems\n(like on laptop and desktop for remote debugging client/server apps).\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://support.samuraism.com/hc/ja/articles/360002205674-%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%9E%E3%82%B7%E3%83%B3%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E5%8F%AF%E8%83%BD%E3%81%A7%E3%81%99%E3%81%8B-\"\u003e複数のマシンにインストールすることは可能ですか？ – 株式会社サムライズム\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eはい。パーソナル、コマーシャルライセンスとも購入したユーザ、\nライセンス数以内の利用であれば複数のマシン(購入したライセンス数以上のマシン)にインストールすることができます。\n別のマシンにインストールする際、既存のマシンでアクティベーションを解除するといった操作は必要ありません。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eパーソナルライセンスはライセンス保有者が利用する場合に限り複数台同時に起動して頂けます。\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "家事",
    "url": "https://www.ikemo3.com/dic/housework/",
    "contents": "\u003ch2 id=\"家事とは\"\u003e家事とは\u003c/h2\u003e\n\u003cp\u003e家庭生活を営んでいくためのものです。\u003c/p\u003e\n\u003ch2 id=\"主な家事の間隔\"\u003e主な家事の間隔\u003c/h2\u003e\n\u003cp\u003e以下のデータはマンションの資料に書いてあったり、\nネットで書いてあったりしたものをざっくり書いたものです。\n正確さは保証しません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e洗濯\n\u003cul\u003e\n\u003cli\u003e洗濯機の糸くず取り: 毎日\u003c/li\u003e\n\u003cli\u003e洗濯槽の掃除: 4週間に1回(\u003ca href=\"https://yourmystar.jp/c0_1/c1_8/askmeister/224/\"\u003eソース\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e布団\n\u003cul\u003e\n\u003cli\u003eシーツの交換: 1週間に1回(\u003ca href=\"https://woman.mynavi.jp/article/130812-035/\"\u003eソース\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eお風呂\n\u003cul\u003e\n\u003cli\u003e排水口: 1週間に1回\u003c/li\u003e\n\u003cli\u003e浴室乾燥機の掃除: 1ヶ月に1回(5週間に1回)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e台所\n\u003cul\u003e\n\u003cli\u003eレンジフードの掃除: 1ヶ月に1回(5週間に1回)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eエアコン\n\u003cul\u003e\n\u003cli\u003e室内機のフィルターの掃除: 2週間に1回\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "郵便",
    "url": "https://www.ikemo3.com/manual/post/",
    "contents": "\u003ch2 id=\"ポスト一覧\"\u003eポスト一覧\u003c/h2\u003e\n\u003cp\u003eポストマップがいいようです。\n位置情報が使えるモバイル版(iPhone版)もあります。\nトップページからたどれますがちと分かりにくいです(自分は気づかなかった・・・)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.postmap.org/\"\u003eポストマップ(PC版)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.postmap.org/i\"\u003eポストマップ(モバイル版)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"オプションサービス\"\u003eオプションサービス\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e速達: 通常より早く送る\u003c/li\u003e\n\u003cli\u003e書留\n\u003cul\u003e\n\u003cli\u003e配達状況確認\u003c/li\u003e\n\u003cli\u003e届かなかったときの賠償\u003c/li\u003e\n\u003cli\u003e休日も配達\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e特定記録\n\u003cul\u003e\n\u003cli\u003e配達状況確認\u003c/li\u003e\n\u003cli\u003e配達の記録は行わない\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e速達と書留はGW中も配達対象です。\n「重要な書類＝書留」と考えておけばいいかなと。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.post.japanpost.jp/question/649.html\"\u003e重要な郵便物を送りたいのですがよい方法はありますか？ - 日本郵便\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Self-Management",
    "url": "https://www.ikemo3.com/tags/self-management/",
    "contents": ""
  }, 
  {
    "title": "習慣",
    "url": "https://www.ikemo3.com/dic/habit/",
    "contents": "\u003ch2 id=\"習慣とは\"\u003e習慣とは\u003c/h2\u003e\n\u003cp\u003eあることを繰り返し行うことで、それが無意識レベルになったものを指します。\u003c/p\u003e\n\u003ch2 id=\"習慣には報酬がある\"\u003e習慣には報酬がある\u003c/h2\u003e\n\u003cp\u003e「やめられなくなる、小さな習慣」のNo.686あたりによれば、以下のようなことが書かれています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e習慣は決まって「報酬」がある。\u003c/li\u003e\n\u003cli\u003e習慣を変えたければ、もともとの習慣に代わる新しい習慣を見つける。\u003c/li\u003e\n\u003cli\u003eそのためには、新しい習慣に伴う新しい報酬を見つける。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"悪い習慣を改善するためには記録が重要\"\u003e悪い習慣を改善するためには記録が重要\u003c/h2\u003e\n\u003cp\u003e「やめられなくなる、小さな習慣」のNo.722あたりにかかれている通り、習慣については記録も重要です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eついやってしまう悪い習慣を記録する。\u003c/li\u003e\n\u003cli\u003e悪い習慣の記録には感情や気持ちの記録を入れる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"リサーチスクリーニング利益確定\"\u003eリサーチ→スクリーニング→利益確定\u003c/h2\u003e\n\u003cp\u003e習慣ではなく時間管理の本ですが、「レバレッジ時間術」のNo.418に、\n応用できそうな方法が書かれています。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eまず事前リサーチをして、何が面倒なのか、何に時間がかかっているかを把握する\u003c/li\u003e\n\u003cli\u003e何について効率化を図るかを検討する(順位付け)\u003c/li\u003e\n\u003cli\u003e仕組みづくりのために時間を投資して効率化する\u003c/li\u003e\n\u003cli\u003e効果が上がればOK。思うように効果が上がらなければ無理に続けない\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07JNC1TWM/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B07JNC1TWM.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07JNC1TWM/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nやめられなくなる、小さな習慣\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B009CTUGIQ/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B009CTUGIQ.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B009CTUGIQ/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nレバレッジ時間術 ノーリスク・ハイリターンの成功原則 (幻冬舎新書)\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n"
  }, 
  {
    "title": "Hr",
    "url": "https://www.ikemo3.com/tags/hr/",
    "contents": ""
  }, 
  {
    "title": "リーダーシップ",
    "url": "https://www.ikemo3.com/dic/leadership/",
    "contents": "\u003ch2 id=\"リーダーシップとは\"\u003eリーダーシップとは\u003c/h2\u003e\n\u003cp\u003e人を率いる力です。たぶん\u003c/p\u003e\n\u003ch2 id=\"リーダーシップとリーダーは別\"\u003eリーダーシップとリーダーは別\u003c/h2\u003e\n\u003cp\u003eリーダーはリーダーシップが求められますが、その逆は言えません。\nリーダーでなくてもリーダーシップは必要です。\u003c/p\u003e\n\u003cp\u003e自主的に組織のことを考え、行動したことがあれば、それはリーダーシップだと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://matcher.jp/dictionary/articles/314\"\u003e面接でリーダーシップを発揮した経験を聞かれたら | MatcherDictionary\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e企業が見ているリーダーシップ。それはずばり、組織へ貢献するための思考や行動です。\n企業に入れば、組織内に目標が設定され、それを達成するために一丸となって仕事に取り組みます。\nその際に組織に働きかけて、全体のパフォーマンスを高めることができる人は非常に重宝されるのです。\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "引っ越し",
    "url": "https://www.ikemo3.com/manual/moving-house/",
    "contents": "\u003ch2 id=\"事前準備\"\u003e事前準備\u003c/h2\u003e\n\u003cp\u003eマンション契約前に調べておいたほうがいいこと\u003c/p\u003e\n\u003ch3 id=\"ゴミの分別方法\"\u003eゴミの分別方法\u003c/h3\u003e\n\u003cp\u003eこれは後でもいいかもしれませんが。\n以下の3点を調べておくと良さそうです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e粗大ゴミの回収方法(有料かどうか、事前申し込みの方法)\u003c/li\u003e\n\u003cli\u003eゴミを出すときに指定の袋が必要かどうか\u003c/li\u003e\n\u003cli\u003e小型家電、電池のゴミ出し方法\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eなぜ調べるのかというと、ゴミ箱や収納を買うときに、\nゴミに出しやすいかどうかが影響するからです。\u003c/p\u003e\n\u003ch2 id=\"買わなかった方が良かったもの\"\u003e買わなかった方が良かったもの\u003c/h2\u003e\n\u003cp\u003e後で買ったけど買わないほうが良かったもの。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eプラスチックのカードケース(ダイソー)\n\u003cul\u003e\n\u003cli\u003e収納しづらい形なので使わなくなった。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eプラスチックのポット(ダイソー)\n\u003cul\u003e\n\u003cli\u003e結局水筒に移すので、最初から水筒に入れた方がいいという結論。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e大きいサイズの醤油(スーパー)\n\u003cul\u003e\n\u003cli\u003e醤油は意外と使わない。小さいサイズで十分。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eカレールー(スーパー)\n\u003cul\u003e\n\u003cli\u003e料理する習慣と場所があればいいが、ない場合は使わなくなる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e水切りポケット(ダイソー)\n\u003cul\u003e\n\u003cli\u003e中身を入れると傾くので使わなくなった。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"必要なもの\"\u003e必要なもの\u003c/h2\u003e\n\u003cp\u003e自分の場合はこんな感じです。\nちょっと多いかな・・・\u003c/p\u003e\n\u003cp\u003eダイソーで\u003cstrong\u003e買えそうにない\u003c/strong\u003eものや、注意が必要なものに説明を入れてます。\u003c/p\u003e\n\u003ch3 id=\"手続き\"\u003e手続き\u003c/h3\u003e\n\u003cp\u003e電気とガスは自由化されているので業者を選ぶといいかも\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e転出届\n\u003cul\u003e\n\u003cli\u003e郵送可。マイナンバーカードがあると楽。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e転入届\n\u003cul\u003e\n\u003cli\u003e郵送不可。\u003c/li\u003e\n\u003cli\u003eマイナンバーカード、マイナンバー通知カード、住基カード\u003c/li\u003e\n\u003cli\u003eパスポートの住所は自分で書き換える。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e児童手当\n\u003cul\u003e\n\u003cli\u003e受付だけして足りない書類は後日提出可能。\u003c/li\u003e\n\u003cli\u003e郵送可だが事前問い合わせが必要\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e水道\u003c/li\u003e\n\u003cli\u003e電気\u003c/li\u003e\n\u003cli\u003eガス(立ち会いが必要)\u003c/li\u003e\n\u003cli\u003eインターネット\n\u003cul\u003e\n\u003cli\u003e一ヶ月以上かかることもある。真っ先に！\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e住所変更\n\u003cul\u003e\n\u003cli\u003e雑誌など\u003c/li\u003e\n\u003cli\u003e銀行など\u003c/li\u003e\n\u003cli\u003eECサイト\n\u003cul\u003e\n\u003cli\u003eAmazon\u003c/li\u003e\n\u003cli\u003eヨドバシ(お客様情報」と「お届け先情報」を両方更新)\u003c/li\u003e\n\u003cli\u003eなど・・・\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"お風呂\"\u003eお風呂\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eお風呂用の椅子\n\u003cul\u003e\n\u003cli\u003eダイソーでは売ってないことがある。売ってても400円。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e洗面器\n\u003cul\u003e\n\u003cli\u003e洗いものに使える。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e手桶\n\u003cul\u003e\n\u003cli\u003eかけるだけならこっちの方が楽。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eお風呂洗い用の洗剤\u003c/li\u003e\n\u003cli\u003eお風呂洗い用のスポンジ\u003c/li\u003e\n\u003cli\u003eシャンプー\u003c/li\u003e\n\u003cli\u003eシャンプー用ケース\n\u003cul\u003e\n\u003cli\u003eドラッグストアによっては詰替しか売ってないこともある。350mlくらい入ればOK\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eボディソープ\u003c/li\u003e\n\u003cli\u003eボディソープ用ケース\n\u003cul\u003e\n\u003cli\u003eドラッグストアによっては詰替しか売ってないこともある。350mlくらい入ればOK\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eボディタオル\u003c/li\u003e\n\u003cli\u003eバスタオル\u003c/li\u003e\n\u003cli\u003e足ふきマット\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"トイレ\"\u003eトイレ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eトイレットペーパー\n\u003cul\u003e\n\u003cli\u003eすぐに必要になるので1ロール持っていくとよい\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eトレイの洗浄剤(タンクに入れるもの)\u003c/li\u003e\n\u003cli\u003eトイレブラシ\n\u003cul\u003e\n\u003cli\u003eダイソーでも買えたはず・・・\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eトイレスリッパ\u003c/li\u003e\n\u003cli\u003e消臭スプレー\n\u003cul\u003e\n\u003cli\u003e1人の場合はなくてもよい\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e便器洗い用の洗剤\n\u003cul\u003e\n\u003cli\u003e例: \u003ca href=\"https://www.scrubbingbubbles.jp/products/kyouryoku\"\u003e超強力トイレクリーナー ｜ジョンソン株式会社\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eトイレ用掃除シート\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"台所\"\u003e台所\u003c/h3\u003e\n\u003ch4 id=\"食器類\"\u003e食器類\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eご飯茶碗\u003c/li\u003e\n\u003cli\u003eお椀(汁物など)\n\u003cul\u003e\n\u003cli\u003eヨーグルトやサラダを入れるのにも使える。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eお皿(平ら)\u003c/li\u003e\n\u003cli\u003eお皿(深皿、カレーなど)\u003c/li\u003e\n\u003cli\u003e小皿(醤油、焼肉のタレ入れ)\u003c/li\u003e\n\u003cli\u003e丼(ラーメンなど)\u003c/li\u003e\n\u003cli\u003e箸\u003c/li\u003e\n\u003cli\u003eコップ\u003c/li\u003e\n\u003cli\u003eスプーン\u003c/li\u003e\n\u003cli\u003eフォーク\u003c/li\u003e\n\u003cli\u003eナイフ\u003c/li\u003e\n\u003cli\u003e醤油差し\u003c/li\u003e\n\u003cli\u003e爪楊枝\u003c/li\u003e\n\u003cli\u003e食卓ふきん\u003c/li\u003e\n\u003cli\u003e箸とかを収納するケース\n\u003cul\u003e\n\u003cli\u003e横置きが望ましい。吸盤だと傾く。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"調理用具台所用品\"\u003e調理用具・台所用品\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e菜箸\u003c/li\u003e\n\u003cli\u003eターナー\u003c/li\u003e\n\u003cli\u003eお玉\u003c/li\u003e\n\u003cli\u003eフライパン(蓋つき)\u003c/li\u003e\n\u003cli\u003e鍋\u003c/li\u003e\n\u003cli\u003e包丁\u003c/li\u003e\n\u003cli\u003eまな板\u003c/li\u003e\n\u003cli\u003eラップ(小・大)\n\u003cul\u003e\n\u003cli\u003eダイソーにあるものなど、安いものは切りにくいのでオススメできない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eボウル\u003c/li\u003e\n\u003cli\u003e水切りボウル\u003c/li\u003e\n\u003cli\u003eクッキングスケール\u003c/li\u003e\n\u003cli\u003e食器拭き\u003c/li\u003e\n\u003cli\u003eしゃもじ\u003c/li\u003e\n\u003cli\u003eトング\u003c/li\u003e\n\u003cli\u003e鍋つかみ\u003c/li\u003e\n\u003cli\u003e袋止めクリップ\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.nitori-net.jp/store/ja/ec/8980703\"\u003eニトリのもの\u003c/a\u003e。便利。\u003c/li\u003e\n\u003cli\u003eダイソーにも同じようなものがありました(使ったことはない)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e包丁まな板スタンド\n\u003cul\u003e\n\u003cli\u003e包丁をしまう場所があるはずなので、単なるまな板置き場になってる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e米びつ\n\u003cul\u003e\n\u003cli\u003e一人暮らしなら5kgあれば十分。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e米の虫よけ\u003c/li\u003e\n\u003cli\u003e計量カップ\n\u003cul\u003e\n\u003cli\u003e大きくてもかさばるだけなので\u003cstrong\u003e250ml程度の小さいものを選ぶ\u003c/strong\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e温度計\n\u003cul\u003e\n\u003cli\u003eお湯の温度を測るのに使える。\u003c/li\u003e\n\u003cli\u003eダイソーだと400円+税。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"台所掃除\"\u003e台所掃除\u003c/h4\u003e\n\u003cp\u003e自分は三角コーナーを使わずに、毎日排水溝に溜まったゴミを掃除しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e台所用洗剤\u003c/li\u003e\n\u003cli\u003e台所用スポンジ\u003c/li\u003e\n\u003cli\u003e水切りネット\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"調味料\"\u003e調味料\u003c/h4\u003e\n\u003cp\u003eよく料理をする人でも、一人暮らしの場合は\u003cstrong\u003e小さいサイズ\u003c/strong\u003eにすること。\n油はよく使うので多めでも構わない。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e醤油\u003c/li\u003e\n\u003cli\u003eみりん\u003c/li\u003e\n\u003cli\u003e油(オリーブオイルがオススメ)\u003c/li\u003e\n\u003cli\u003eドレッシング\u003c/li\u003e\n\u003cli\u003e塩コショウ\u003c/li\u003e\n\u003cli\u003e焼肉のたれ\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"食料品\"\u003e食料品\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eコーヒー(カフェインあり、カフェインレス)\u003c/li\u003e\n\u003cli\u003e牛乳(低脂肪牛乳でも可)\u003c/li\u003e\n\u003cli\u003eバナナ\u003c/li\u003e\n\u003cli\u003eヨーグルト\u003c/li\u003e\n\u003cli\u003e米\n\u003cul\u003e\n\u003cli\u003e5kgか10kg。2kgは割高。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"洗濯用品\"\u003e洗濯用品\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e洗濯用洗剤\n\u003cul\u003e\n\u003cli\u003e洗剤とボトルは別々に買ったほうがいいかも\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e洗濯ハンガー(上着用)\u003c/li\u003e\n\u003cli\u003e洗濯ハンガー(ズボン用)\n\u003cul\u003e\n\u003cli\u003e干すのにも使える\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e洗濯ハンガー(下着、小物など)\u003c/li\u003e\n\u003cli\u003e洗濯ハンガー(バスタオル)\n\u003cul\u003e\n\u003cli\u003eダイソーで売ってる。バスタオルは場所を取るのであった方が楽。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e洗濯ばさみ\n\u003cul\u003e\n\u003cli\u003e大きめのものを干す程度で、あまり使わない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e洗濯ばさみ入れ\u003c/li\u003e\n\u003cli\u003e物干し竿\n\u003cul\u003e\n\u003cli\u003e事前に干す場所とサイズをチェックしておくこと。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e洗濯カゴ\u003c/li\u003e\n\u003cli\u003eベランダ用サンダル\n\u003cul\u003e\n\u003cli\u003e水に濡れてもいいタイプがいい\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"洗面台身だしなみ\"\u003e洗面台、身だしなみ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e爪切り\u003c/li\u003e\n\u003cli\u003e綿棒\u003c/li\u003e\n\u003cli\u003eシェービングフォーム、シェービングジェル\u003c/li\u003e\n\u003cli\u003eハンドソープ\u003c/li\u003e\n\u003cli\u003e歯ブラシ\u003c/li\u003e\n\u003cli\u003e歯磨き粉\u003c/li\u003e\n\u003cli\u003e歯磨き用のコップ\u003c/li\u003e\n\u003cli\u003e鼻毛カッター\u003c/li\u003e\n\u003cli\u003eシェーバー\u003c/li\u003e\n\u003cli\u003eシェーバー洗浄剤\u003c/li\u003e\n\u003cli\u003eフェイスタオル\u003c/li\u003e\n\u003cli\u003e体重計\u003c/li\u003e\n\u003cli\u003e血圧計\u003c/li\u003e\n\u003cli\u003eカミソリ\u003c/li\u003e\n\u003cli\u003eガラス拭き洗剤\n\u003cul\u003e\n\u003cli\u003eほとんど使わない。他の洗剤と兼用が良さそう。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"家具家電\"\u003e家具・家電\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e食卓テーブル\u003c/li\u003e\n\u003cli\u003e電気ケトル\u003c/li\u003e\n\u003cli\u003e布団\u003c/li\u003e\n\u003cli\u003e敷布団\u003c/li\u003e\n\u003cli\u003eマットレス\n\u003cul\u003e\n\u003cli\u003eフローリングに直接敷布団は腰を痛めるのでNG\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e枕\u003c/li\u003e\n\u003cli\u003eタオルケット\u003c/li\u003e\n\u003cli\u003eカーテン\n\u003cul\u003e\n\u003cli\u003e事前にサイズを測っておくこと。特に高さ。\n\u003cul\u003e\n\u003cli\u003e大体は180cmくらい?\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e買うのは\u003cstrong\u003e丈より数センチ短いもの\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e長すぎたものを買った場合は裁縫するのが確実(1時間かかった・・・)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eトースター\n\u003cul\u003e\n\u003cli\u003e場所を取るし不要かも?電子レンジの方が優先度高い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e掃除機\u003c/li\u003e\n\u003cli\u003e炊飯器\u003c/li\u003e\n\u003cli\u003e冷蔵庫\n\u003cul\u003e\n\u003cli\u003e事前に置き場所のサイズチェック\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e洗濯機\n\u003cul\u003e\n\u003cli\u003e事前に置き場所のサイズチェック\u003c/li\u003e\n\u003cli\u003e取り付けはプロに任せたほうがいいかも。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e電子レンジ\n\u003cul\u003e\n\u003cli\u003eアースを付けること。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e照明\n\u003cul\u003e\n\u003cli\u003e事前にタイプのチェック。\u003c/li\u003e\n\u003cli\u003e取り付けはプロに任せたほうがいいかも。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eお掃除ロボット\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"小物サプライ\"\u003e小物・サプライ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eドライバー\u003c/li\u003e\n\u003cli\u003eペンチ\u003c/li\u003e\n\u003cli\u003e電源タップ\n\u003cul\u003e\n\u003cli\u003eちなみにタコ足が危険なのではなく、容量が超えるのが危険\n\u003cul\u003e\n\u003cli\u003e参考: \u003ca href=\"https://mbp-japan.com/saga/pc-pro/column/4008618/\"\u003eたこ足配線は危険！でも何個も挿せる電源タップは大丈夫なの？危ない本当の理由とは\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e充電池、充電器(なければ買わなくていい)\u003c/li\u003e\n\u003cli\u003e乾電池(単3、単4)\n\u003cul\u003e\n\u003cli\u003eほとんど電気を使わないものが多いので、マンガンの方がいいと思います。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"生活小物\"\u003e生活小物\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eゴミ袋\n\u003cul\u003e\n\u003cli\u003e地域によってゴミの出し方が違うので事前チェック。特にゴミ袋が指定かどうか。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eゴミ箱\n\u003cul\u003e\n\u003cli\u003e可燃(大きめ)\u003c/li\u003e\n\u003cli\u003eプラ(大きめ)\u003c/li\u003e\n\u003cli\u003eリビング用ゴミ箱\u003c/li\u003e\n\u003cli\u003eその他住む地域に合わせて・・・\u003c/li\u003e\n\u003cli\u003e部屋が狭くて場所がない＆ゴミ袋が少し高くなるのを許容するなら、小さいゴミ箱で、ゴミを出すときは15LでOKです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eボックスティッシュ\n\u003cul\u003e\n\u003cli\u003eすぐに必要になるので1ボックス持っていくとよい\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eウェットティッシュ(卓上)\u003c/li\u003e\n\u003cli\u003e床掃除用(雑巾、クイックルワイパーなど)\u003c/li\u003e\n\u003cli\u003eホコリ取り(ウェーブハンディワイパーなど)\u003c/li\u003e\n\u003cli\u003eポケットティッシュ\u003c/li\u003e\n\u003cli\u003eシュレッダー(電動、手動、ハサミ型)\u003c/li\u003e\n\u003cli\u003e体温計\u003c/li\u003e\n\u003cli\u003e温湿度計\u003c/li\u003e\n\u003cli\u003eビニール袋\n\u003cul\u003e\n\u003cli\u003e食品ゴミをゴミ箱に入れる前にまとめるために使う\u003c/li\u003e\n\u003cli\u003e食品をまとめて冷凍庫に入れるのにも使える。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eチェアソックス、フェルトシール、押し入れ用シート\n\u003cul\u003e\n\u003cli\u003eフローリングを傷つけないために使う。\u003c/li\u003e\n\u003cli\u003eチェアソックスは予備もほしい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e荷造り紐\n\u003cul\u003e\n\u003cli\u003e引っ越しで出たダンボールをまとめるのに使う\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e布テープ\n\u003cul\u003e\n\u003cli\u003eダンボールの組み立てなど。ガムテープより高いけど汎用性が高い。\u003c/li\u003e\n\u003cli\u003e剥がすことが目的なら養生テープ。逆にダンボールの底に養生テープはNG。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e踏み台\n\u003cul\u003e\n\u003cli\u003eニトリで1000円程度。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"衣類\"\u003e衣類\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eハンカチ\u003c/li\u003e\n\u003cli\u003eパジャマ\u003c/li\u003e\n\u003cli\u003eシャツ(肌着)・Tシャツ\u003c/li\u003e\n\u003cli\u003eパンツ\u003c/li\u003e\n\u003cli\u003e靴下\u003c/li\u003e\n\u003cli\u003e上着\u003c/li\u003e\n\u003cli\u003eベルト\u003c/li\u003e\n\u003cli\u003eジーンズ\u003c/li\u003e\n\u003cli\u003e短パン\u003c/li\u003e\n\u003cli\u003eジャージ\u003c/li\u003e\n\u003cli\u003eメガネ\u003c/li\u003e\n\u003cli\u003e衣装ケース\u003c/li\u003e\n\u003cli\u003eアイマスク\u003c/li\u003e\n\u003cli\u003eハンガー(ベルト用)\u003c/li\u003e\n\u003cli\u003eハンガー(90度以上曲げられる)\n\u003cul\u003e\n\u003cli\u003eハンガーや小物をかけるのに便利。ドア収納でも良さそう。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e裁縫セット\n\u003cul\u003e\n\u003cli\u003e必要になってからでも良さそう\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eスーツが必要な会社の場合\n\u003cul\u003e\n\u003cli\u003eスーツ\u003c/li\u003e\n\u003cli\u003eカッターシャツ\u003c/li\u003e\n\u003cli\u003eネクタイ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e衣装ケースはニトリのこれ使っています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.nitori-net.jp/store/ja/ec/8430624?ptr=item\"\u003e収納ケース フラッテ 本体 | ニトリ公式通販　家具・インテリア・生活雑貨通販のニトリネット\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"靴外出用\"\u003e靴・外出用\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e靴(スニーカー、ウォーキングシューツなど)\u003c/li\u003e\n\u003cli\u003e革靴\u003c/li\u003e\n\u003cli\u003e折りたたみ傘\n\u003cul\u003e\n\u003cli\u003e優先度: 丈夫さ＞耐水性＞軽さ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e折りたたまない傘\u003c/li\u003e\n\u003cli\u003eバッグ\u003c/li\u003e\n\u003cli\u003eサンダル\n\u003cul\u003e\n\u003cli\u003eゴミ出しなどちょっとした外出で便利。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"文具\"\u003e文具\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eハサミ\n\u003cul\u003e\n\u003cli\u003eすぐに出せる場所に入れておくとよい\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e定規\u003c/li\u003e\n\u003cli\u003e巻き尺、メジャー\n\u003cul\u003e\n\u003cli\u003eすぐに出せる場所に入れておくとよい\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e印鑑(認印)\n\u003cul\u003e\n\u003cli\u003e宅配受取りはサインでもOK。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e印鑑(銀行印)\n\u003cul\u003e\n\u003cli\u003eできれば量販店で売ってるもの(三文判)は避けた方がよい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e印鑑(実印)\n\u003cul\u003e\n\u003cli\u003eほとんど使う機会はないが、必要ならちゃんとしたものを。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e名刺入れ\u003c/li\u003e\n\u003cli\u003eカードケース\n\u003cul\u003e\n\u003cli\u003eただしダイソーのプラケースはイマイチ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eボールペン\u003c/li\u003e\n\u003cli\u003eサインペン\u003c/li\u003e\n\u003cli\u003eセロテープ\u003c/li\u003e\n\u003cli\u003eクリップ\u003c/li\u003e\n\u003cli\u003eラベル\u003c/li\u003e\n\u003cli\u003eペン立て\u003c/li\u003e\n\u003cli\u003e書類入れ\u003c/li\u003e\n\u003cli\u003eトレー(A4型)\n\u003cul\u003e\n\u003cli\u003e小物や書類を一時的に入れるために便利\u003c/li\u003e\n\u003cli\u003e財布や鍵など毎日持っていくためのものと、一時的に入れる(Inbox)用の2つあると便利。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eペンケース\u003c/li\u003e\n\u003cli\u003e封筒\n\u003cul\u003e\n\u003cli\u003e長形3号(定形、84円)\u003c/li\u003e\n\u003cli\u003e角型2号(定形外、120円)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eクッションシール\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e書類入れは100円ショップのものはおすすめしません。\u003c/p\u003e\n\u003cp\u003e少し高めでもカラーベースがいいです。\n台紙があって扱いやすい。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B000IGUVB4/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B000IGUVB4.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B000IGUVB4/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nキングジム クリアーファイル カラーベース A4 (S型) 20枚 132C 青\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eあとは領収書ファイルもおすすめ。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B001ISY7H0/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B001ISY7H0.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B001ISY7H0/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nキングジム 領収書ファイル A4 48ポケット 2382 ライトグレー\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"貴重品\"\u003e貴重品\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e身分証明書\u003c/li\u003e\n\u003cli\u003eカード類(クレジットカードなど)\u003c/li\u003e\n\u003cli\u003eマイナンバーカード\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"pc類\"\u003ePC類\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePC本体 + 電源\u003c/li\u003e\n\u003cli\u003eiPad + 電源\u003c/li\u003e\n\u003cli\u003eApple Watch + 電源\u003c/li\u003e\n\u003cli\u003eKindle\u003c/li\u003e\n\u003cli\u003eWi-Fiルータ\u003c/li\u003e\n\u003cli\u003eイヤホン\u003c/li\u003e\n\u003cli\u003eディスプレイ\u003c/li\u003e\n\u003cli\u003eケーブル類\u003c/li\u003e\n\u003cli\u003eバッテリー\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"趣味など\"\u003e趣味など\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e本\u003c/li\u003e\n\u003cli\u003e本棚\u003c/li\u003e\n\u003cli\u003eゲーム機 + 電源\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"薬サプリメント\"\u003e薬・サプリメント\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e風邪薬\u003c/li\u003e\n\u003cli\u003e整腸薬\u003c/li\u003e\n\u003cli\u003e頭痛薬\u003c/li\u003e\n\u003cli\u003e病院でもらう薬\u003c/li\u003e\n\u003cli\u003eサプリメント\u003c/li\u003e\n\u003cli\u003eその他個人に合わせて・・・\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eサプリメントは一人暮らしなら\u003cstrong\u003eほぼ必須\u003c/strong\u003eだと思っています。\u003c/p\u003e\n\u003cp\u003eあと、おかずが欲しいなら夕食ネットの冷凍弁当(シンプルミール)がいいです。1食350円くらい。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.you-shoku.net/\"\u003e食材宅配ならヨシケイの夕食ネット\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"短期間の場合\"\u003e短期間の場合\u003c/h2\u003e\n\u003cp\u003e住むのが短期間の場合は、レンタルもアリだと思います。\n例えばヤマトホームコンビニエンスの家具・家電レンタル。\n特に設置が必要な洗濯機、冷蔵庫、照明あたりがオススメです(自分が利用したもの)。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.008008.jp/life/rental/\"\u003eヤマトホームコンビニエンス | 単身の方の家具・家電レンタル\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "他責",
    "url": "https://www.ikemo3.com/dic/extrapunitive/",
    "contents": "\u003ch2 id=\"他責とは\"\u003e他責とは\u003c/h2\u003e\n\u003cp\u003e他の人のせいにすることです。\u003c/p\u003e\n\u003ch2 id=\"他責よりも行動しない方が問題\"\u003e「他責」よりも「行動しない」方が問題\u003c/h2\u003e\n\u003cp\u003e自分としては「他責思考」よりも、「行動しない」というのが問題だと思っています。\nそれは以下の理由からです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e「自責」には「自分が悪い」というニュアンスを感じてしまう。\u003c/li\u003e\n\u003cli\u003e「変えられるのは自分だけ」というのは正しいが、それは原因とは関係ない。\u003c/li\u003e\n\u003cli\u003eどうしても愚痴りたくなることはある。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分としては「誰々が悪い」ではなく「システムが悪い」と考えるようにしています。\n例えば個人成績のみが評価の基準となっている場合は、\n他の人を助けるメリットがないので、横のつながりが悪くなります。\u003c/p\u003e\n\u003cp\u003e自分以外の記事では例えばこの記事に共感します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://axia.co.jp/2018-08-24\"\u003eいつまでもブラック企業のせいにしている社畜が救われることはない - 株式会社アクシア\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e自分が悪いのか、相手が悪いのか、それを冷静に考えてみると、\n確かに相手が悪いこともあるかもしれません。\nそれにどちらか一方が悪いとも限らず両方共何か問題があるかもしれません。\nしかし実を言うと「どちらが悪いのか」ということはたいして重要なことではなく、\n今の状況が嫌で変えたいと思うのであれば、\nそれを変えるために行動して変えていくしかないということが重要でした。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://diamond.jp/articles/-/132777\"\u003e優秀なプレイヤーは自責で考えるが、優秀なリーダーは「他責」で考える | チームの生産性をあげる。 | ダイヤモンド・オンライン\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e他責にする＝環境要因や仕組み、仕事のプロセスの問題点を指摘すること。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eなので、一方的過ぎなければ他責自体は悪くない(しょうがない)と思います。\u003c/p\u003e\n\u003cp\u003e問題は「行動しない」方です。\nTwitterでよく見かけるのが、ニュースを見てあれが悪いこれが悪いという人。\nはっきり言うと\u003cstrong\u003e不快感しか感じません\u003c/strong\u003e。\u003c/p\u003e\n"
  }, 
  {
    "title": "賃貸マンション契約",
    "url": "https://www.ikemo3.com/manual/rental-apartment/",
    "contents": "\u003ch2 id=\"譲れない条件を選ぶ\"\u003e譲れない条件を選ぶ\u003c/h2\u003e\n\u003cp\u003e自分の場合はこれ。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e周りがうるさくないこと(駅前や交差点近くは拡声器による騒音があるのでNG)\u003c/li\u003e\n\u003cli\u003e以下の店が近いこと(徒歩数分) ※全部は満たせなくてもよい\n\u003cul\u003e\n\u003cli\u003eスーパー\u003c/li\u003e\n\u003cli\u003eコンビニ\u003c/li\u003e\n\u003cli\u003e100円ショップ\u003c/li\u003e\n\u003cli\u003eドラッグストア\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e以下も近くにあるとよい\n\u003cul\u003e\n\u003cli\u003eホームセンター\u003c/li\u003e\n\u003cli\u003e家電量販店\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eその他条件についてのコメント。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eエアコン\n\u003cul\u003e\n\u003cli\u003eよっぽどお金に困ってない限りは選んだほうがいい。特に夏はつらい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eトイレ、バス別\n\u003cul\u003e\n\u003cli\u003e湯船に浸かれなくなるのでつらい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e独立洗面台\n\u003cul\u003e\n\u003cli\u003eモノが置けなくなるため工夫が必要。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e浴室乾燥機\n\u003cul\u003e\n\u003cli\u003eマイナーだけどあると便利。部屋干しすると洗濯物の臭いが気になる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eキッチン\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eまな板置場が確保できるかどうかが最重要\u003c/strong\u003e。対策はできるけど料理をするモチベーションが30%ダウンする。\u003c/li\u003e\n\u003cli\u003eコンロは1つでも何とかなるはず。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"物件を探すときの注意\"\u003e物件を探すときの注意\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e物件自体は大体どこでも同じ。理由は\u003ca href=\"http://www.reins.or.jp/\"\u003eREINS\u003c/a\u003eを使っているから。\u003c/li\u003e\n\u003cli\u003e同じ物件が違う名前で登録されてる可能性がある。\u003c/li\u003e\n\u003cli\u003e取引態様に注意(専任とかうんたら)。\u003c/li\u003e\n\u003cli\u003e近くに何があるかGoogleストリートビューを使って調べよう。\u003c/li\u003e\n\u003cli\u003e不動産業界は体質が古いので効率さはあまり期待できない。個人的には\u003cstrong\u003e信頼できる担当者かどうか\u003c/strong\u003eで判断するのがいいと思います。\n\u003cul\u003e\n\u003cli\u003e遠方だとネットで物件探し → 現地で内見＆契約 → 郵送でやり取りが基本的な流れ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e事前に情報を集めておく→\u003ca href=\"/manual/moving-house/\"\u003e引っ越し\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"内見のときに調べておいた方がいいもの\"\u003e内見のときに調べておいた方がいいもの\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e冷蔵庫置場のサイズ\u003c/li\u003e\n\u003cli\u003e洗濯機置場のサイズ\u003c/li\u003e\n\u003cli\u003eカーテンのサイズ\u003c/li\u003e\n\u003cli\u003e包丁の収納場所の有無\u003c/li\u003e\n\u003cli\u003eベランダに物干し竿は置けるか。またそのサイズ。\u003c/li\u003e\n\u003cli\u003e浴室乾燥がある場合、どれくらいのサイズか。\u003c/li\u003e\n\u003cli\u003e照明の種類\n\u003cul\u003e\n\u003cli\u003eシーリングでもいろいろ種類があるみたいです。設置はプロに任せた方がよい?\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"必要な書類情報\"\u003e必要な書類・情報\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e本人\n\u003cul\u003e\n\u003cli\u003e年収と収入を証明するもの(転職の場合は採用通知書)\u003c/li\u003e\n\u003cli\u003e身分証明書(保険証など)\u003c/li\u003e\n\u003cli\u003e住民票\u003c/li\u003e\n\u003cli\u003e連絡先\u003c/li\u003e\n\u003cli\u003e勤務先の連絡先\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e連帯保証人\n\u003cul\u003e\n\u003cli\u003e連帯保証人になれるのは基本は「同居してない」かつ「収入がある」こと。\u003c/li\u003e\n\u003cli\u003e概算の年収\u003c/li\u003e\n\u003cli\u003e実印＋印鑑証明書(審査後でOK)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eその他\n\u003cul\u003e\n\u003cli\u003eメジャー(洗濯機、冷蔵庫、カーテンの長さを測る)\u003c/li\u003e\n\u003cli\u003e申込金(家賃1ヶ月分程度)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"退去時\"\u003e退去時\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e退去日を決める\n\u003cul\u003e\n\u003cli\u003e退去日は月末に集中しやすい\u003c/li\u003e\n\u003cli\u003eゴミ捨ても考慮すること\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e退去日を伝える\u003c/li\u003e\n\u003cli\u003e解約手続きをする\n\u003cul\u003e\n\u003cli\u003e30日前: 電気、ガス、水道\u003c/li\u003e\n\u003cli\u003e2週間前: インターネット\u003c/li\u003e\n\u003cli\u003e10日前: \u003ca href=\"https://www.post.japanpost.jp/question/111.html\"\u003e転送届\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e最長7営業日なので10日前くらいがベストか。早くても問題ない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"ゴミ捨て\"\u003eゴミ捨て\u003c/h3\u003e\n\u003cp\u003e引越し先に持っていくのが一番楽だが、捨てる場合はゴミ捨てを\u003cstrong\u003e計画的に\u003c/strong\u003e行う。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e粗大ゴミ・燃えないゴミ\u003c/li\u003e\n\u003cli\u003eプラスチックゴミ\u003c/li\u003e\n\u003cli\u003eビン・缶ゴミ\u003c/li\u003e\n\u003cli\u003e燃えるゴミ\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "検索(β)",
    "url": "https://www.ikemo3.com/search/",
    "contents": ""
  }, 
  {
    "title": "Drucker",
    "url": "https://www.ikemo3.com/tags/drucker/",
    "contents": ""
  }, 
  {
    "title": "渋沢栄一",
    "url": "https://www.ikemo3.com/dic/eiichi-shibusawa/",
    "contents": "\u003ch2 id=\"渋沢栄一とは\"\u003e渋沢栄一とは\u003c/h2\u003e\n\u003cp\u003e主に明治時代に活躍した実業家です。\u003c/p\u003e\n\u003ch2 id=\"ドラッカーの著書によく出てくる\"\u003eドラッカーの著書によく出てくる\u003c/h2\u003e\n\u003cp\u003e渋沢栄一の名はドラッカーの著書によく出てきます。\u003c/p\u003e\n\u003cp\u003e探したところ以下の書籍にはなかったです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e「経済人」の終わり\u003c/li\u003e\n\u003cli\u003e産業人の未来\u003c/li\u003e\n\u003cli\u003e企業とは何か\u003c/li\u003e\n\u003cli\u003e現代の経営(上)(下)\u003c/li\u003e\n\u003cli\u003e創造する経営者\u003c/li\u003e\n\u003cli\u003e傍観者の時代\u003c/li\u003e\n\u003cli\u003e経営者の条件\u003c/li\u003e\n\u003cli\u003e非営利組織の経営\u003c/li\u003e\n\u003cli\u003eポスト資本主義社会\u003c/li\u003e\n\u003cli\u003e明日を支配するもの\u003c/li\u003e\n\u003cli\u003eネクスト・ソサエティ\u003c/li\u003e\n\u003cli\u003eプロフェッショナルの条件\u003c/li\u003e\n\u003cli\u003eチェンジ・リーダーの条件\u003c/li\u003e\n\u003cli\u003eイノベーターの条件\u003c/li\u003e\n\u003cli\u003e乱気流時代の経営\u003c/li\u003e\n\u003cli\u003e未来企業\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"断絶の時代1969\"\u003e断絶の時代(1969)\u003c/h3\u003e\n\u003cp\u003e「断絶の時代」p112には以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e日本では経済発展を巡って20年に及ぶ論争があった。\nそれは経済学者の間で行われたのではななかった。\n実際に産業をつくり上げた二人の企業家の間で行われた。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e岩崎弥太郎と渋沢栄一の名は、日本の外では、\nわずかの日本研究家が知るだけである。だが彼らの偉業は、\nロスチャイルド、モルガン、クルップ、ロックフェラーを凌ぐ。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e岩崎は日本最大、世界最大級の企業集団三菱をつくった。\n渋沢は90年の生涯において600を超える会社をつくった。\nこの二人が当時の製造業の過半をつくった。彼ら二人ほど大きな存在は他の国にはなかった。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eこの二人が、岩崎が51歳で早逝するまでの20年間、公の場で論じあった。\n岩崎は資金を説いた。渋沢は人材を説いた。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e今日では二人とも正しいことが明らかである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eあるとき渋沢は、設立発起人に学歴がないという理由で、製糖工場に融資しなかった。\n彼の間違いとしてよく知られた話である。\nこの製糖工場は渋沢以外の者から融資を受けて成功した。\nしかしこの話は、渋沢の時代における日本の教育重視を示していた。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e岩崎流の企業家精神が史上例のない資本形成をもたらし、\n渋沢流の人材重視が30年後には史上例のない識字率と人材の形成をもたらした。\n渋沢自身半世紀にわたって無給の指南役として活躍をつづけた。\n多くの実業家、官僚の相談に乗り指導した。経済団体をつくり、教育訓練に携わり、\nあらゆる種類の講座、セミナー、討論会を組織した。\n岩崎が企業群を遺したのに対し、渋沢は一流大学、一橋大学を遺した。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"マネジメント1974\"\u003eマネジメント(1974)\u003c/h3\u003e\n\u003cp\u003eマネジメント(上)には以下のような記述があります。\u003c/p\u003e\n\u003cp\u003eNo.523あたり\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eマネジメントの発展には大組織の出現が必要だった。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e日本では、官界から実業家へ転身した渋沢栄一(1840〜1931年)が、\n1870年代から80年代にかけて、企業と国益、企業と道徳について問題を提起した。\nのみならず、マネジメント教育に力を入れた。\nプロフェッショナルとしてのマネジメントの必要性を世界で最初に理解したのが渋沢だった。\n明治期の日本の経済的な躍進は、渋沢の経営思想と行動力によるところが大きかった。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eNo.4612あたり\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eむしろそのはるか前の時代のリーダーたちのほうが、\n企業の社会的責任を正面からとらえていた。\n日本の明治の渋沢栄一であり、第一次世界大戦前のドイツのヴァルター・ラーテナウだった。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"イノベーションと企業家精神1985\"\u003eイノベーションと企業家精神(1985)\u003c/h3\u003e\n\u003cp\u003eNo.1632あたり\u003c/p\u003e\n\u003cp\u003eこの「テクノロジストの条件」の第12章にも同様の記述があります。\n(もとは1985年に「ハーバード・ビジネス・レビュー」に載ったもの)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e1860年代にペレールの銀行が失敗した後、三人の若者がベンチャー・キャピタルの概念に商業銀行の知識を結合させた。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eそして三人目は、はるか遠くの東京の若者、日本人として初めてヨーロッパの銀行をその目で見、\nパリと、ロンドンのロンバート街で過ごしたことのある渋沢栄一だった。\n彼はいわば日本型のユニバーサル・バンクを設立し日本経済の基礎をつくった。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eNo.1686あたり\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e技術上の知識以外の知識によるイノベーションにおいても分析が必要である。\n近代銀行の設立についてJ・P・モーガンやゲオルク・ジーメンスは何も書き残していないが、\n渋沢栄一の書いたものによれば、彼が、利用できる知識と必要な知識を分析したうえで、\n政府におけるそれまでの経歴を捨てて銀行を設立したことがわかる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eNo.1751あたり\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eおよそ100年前、J・P・モーガンは重点を占拠する戦略を選び、\nアメリカの産業さらには資本不足国としてのアメリカそのものにヨーロッパ資本を\n投資させるためのパイプ役となった。同じ頃、ドイツのゲオルク・ジーメンスと\n日本の渋沢栄一はシステム全体を手に入れる戦略を選んだ。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eNo.1803あたり\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e銀行についても同様だった。モーガン、ジーメンス、渋沢など\n近代銀行の父たちに続いて、ヨーロッパと同じようにアメリカでも爆発的な銀行の設立ブームがあった。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAKIQ.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集7 断絶の時代\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAORS/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAORS.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAORS/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集13 マネジメント［上］\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAGLC/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAGLC.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAGLC/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集5 イノベーションと企業家精神\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n"
  }, 
  {
    "title": "Management",
    "url": "https://www.ikemo3.com/tags/management/",
    "contents": ""
  }, 
  {
    "title": "Statistics",
    "url": "https://www.ikemo3.com/tags/statistics/",
    "contents": ""
  }, 
  {
    "title": "リーダー",
    "url": "https://www.ikemo3.com/dic/leader/",
    "contents": "\u003ch2 id=\"リーダーとは\"\u003eリーダーとは\u003c/h2\u003e\n\u003cp\u003eついてくる人がいる人です。\u003c/p\u003e\n\u003ch2 id=\"リーダーは強力な部下を求める\"\u003eリーダーは強力な部下を求める\u003c/h2\u003e\n\u003cp\u003e未来企業 No.2121(Kindle)、\nあるいはプロフェッショナルの条件 p186より、\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eそして、効果的なリーダーは、他の誰でもなく、自分が最終的に責任を負うべきことを知っているからこそ、\n部下の力を恐れたりしない。ところが、間違ったリーダーは、恐れる。\nそして部下の追放に走る。これに対して、効果的なリーダーは、強力な部下を求める。\n部下を激励し、前進させ、自らの誇りとする。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e部下の失敗に最終的な責任をもつがゆえに、\n部下の成功を脅威ではなく、自らの成功と捉える。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B078HB6657/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B078HB6657.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B078HB6657/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n未来企業\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300593/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478300593.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300593/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nプロフェッショナルの条件――いかに成果をあげ、成長するか (はじめて読むドラッカー (自己実現編))\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n"
  }, 
  {
    "title": "ウィンストン・チャーチル",
    "url": "https://www.ikemo3.com/dic/winston-churchill/",
    "contents": "\u003ch2 id=\"ウィンストンチャーチルとは\"\u003eウィンストン・チャーチルとは\u003c/h2\u003e\n\u003cp\u003eイギリスの政治家です。\u003c/p\u003e\n\u003ch2 id=\"ドラッカーが絶賛する一人\"\u003eドラッカーが絶賛する一人\u003c/h2\u003e\n\u003cp\u003e非営利組織の経営p9より。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e20世紀最高のリーダーが、ウィンストン・チャーチルだった。\nしかし、1928年から1940年のダンケルクの撤退までの12年間、\n彼は閑職にあってほとんど無視されていた。\n時代が必要としていなかった。万事が平穏だった。\n少なくともそう思われた。そして危機が訪れたとき、ありがたいことに彼がいた。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478307059/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478307059.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478307059/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集4 非営利組織の経営\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "キャッシュフロー",
    "url": "https://www.ikemo3.com/dic/cash-flow/",
    "contents": "\u003ch2 id=\"キャッシュフローとは\"\u003eキャッシュフローとは\u003c/h2\u003e\n\u003cp\u003eお金の流れのことです。\n特に企業の活動において使われます。\u003c/p\u003e\n\u003ch2 id=\"利益よりキャッシュフロー\"\u003e利益よりキャッシュフロー\u003c/h2\u003e\n\u003cp\u003eドラッカーの著書では、利益よりもキャッシュフローという考え方が出てきます。\u003c/p\u003e\n\u003cp\u003eネクスト・ソサエティ p115において、以下のように書かれている。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e会計システムのどの部分が信用でき、どの部分が信用できないかは明らかである。\nわれわれがとうてい歩くべきでない薄氷の上にいることは明らかである。\n最近、キャッシュフローが重視されるようになったのも、\n会計学の二年生でさえ損益計算書は化粧できるからである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eネクスト・ソサエティ p125において、以下のように書かれている。\n(発言者については引用者明記)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eインタビュアー: きりもみ状態\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eから脱出するには手遅れか?\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eドラッカー: そうかもしれない。ネット企業の多くがベンチャー・キャピタルを手に入れにくくなっている。\n私は昔、年季の入った金融マンと仕事をしたことがある。五年以内に利益をあげると豪語するベンチャーや、\n逆に一年半でキャッシュフローをプラスにできないベンチャーは信用しないといっていた。\nなかなか利益があがらないのは仕方がない。アマゾン・ドット・コムがそうだった。\nしかし、キャッシュフローをプラスにできないでいるネット企業が多すぎる。それでは事業といえない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eネクスト・ソサエティ p155において、以下のように書かれている。\n(発言者については引用者明記)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eインタビュアー: どうして起業家は予期せぬ成功を拒否するのか?\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eドラッカー: 考えていたことと違うからである。\n起業家というものは自分が主人公だと思っている。ここから第二のわなが生まれる。\n\u003cstrong\u003e彼らは利益が第一だと考える。利益は第二である。キャッシュフローが第一である。\u003c/strong\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eよくあるのが「赤字でも成長している」ケースで、\nこれは投資キャッシュフローがマイナスになっていることが多いです。\u003c/p\u003e\n\u003ch2 id=\"こんな本も\"\u003eこんな本も\u003c/h2\u003e\n\u003cp\u003eこれも結構有名な本ですね。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01GT3V9OC/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B01GT3V9OC.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01GT3V9OC/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカーと会計の話をしよう (中経の文庫)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478190453/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478190453.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478190453/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nネクスト・ソサエティ ― 歴史が見たことのない未来がはじまる\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e「飛行機が失速したあと、機体が螺旋(らせん)を描きながらほとんど垂直に降下すること。スピン。」要は墜落寸前ですね。\u003ca href=\"https://kotobank.jp/word/%E9%8C%90%E6%8F%89%E3%81%BF-480433\"\u003e錐揉み(キリモミ)とは - コトバンク\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "意思決定",
    "url": "https://www.ikemo3.com/dic/decision-making/",
    "contents": "\u003ch2 id=\"意思決定とは\"\u003e意思決定とは\u003c/h2\u003e\n\u003cp\u003e物事を実現するために何をすべきかを考え、一つを選ぶことです。\u003c/p\u003e\n\u003ch2 id=\"意思決定の5つのステップ\"\u003e意思決定の5つのステップ\u003c/h2\u003e\n\u003cp\u003eドラッカーは「経営者の条件」において意思決定の5つのステップについて述べています。\n(Kindle No.2096)\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e問題の種類を知る。「一般的な問題か、例外的な問題か」「何度も起こることか個別に対処すべき特殊なことか」\n\u003col\u003e\n\u003cli\u003e基本的な問題の兆候にすぎない問題\n\u003cul\u003e\n\u003cli\u003e細かくは違うが分析すれば一般的な問題だとわかるもの。\u003c/li\u003e\n\u003cli\u003eプログラムで言えばパラメータだけ違う\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e当事者については例外だが一般的な問題\n\u003cul\u003e\n\u003cli\u003e個人的(?)は話だと例えば「出産」に関わる問題がそう。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e真に例外で特殊な問題\u003c/li\u003e\n\u003cli\u003e新しい種類の基本的、一般的な問題の最初の表れ\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"意見の不一致\"\u003e意見の不一致\u003c/h2\u003e\n\u003cp\u003e間違った結論に達している場合は、何か違う現実を見えていると考えられる。\n「経営者の条件」p204に以下の記述がある。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e明らかに間違った結論に達している人は、自分とは違う現実を見、\n違う問題に気づいているに違いないと考える必要がある。\n「もし彼の意見が、知的かつ合理的であると仮定するならば、\nいったい彼は、どのような現実を見ているのか」と考えるべきである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e数学的に言うと、何を公理にしているかによって、得られる結論が異なるようなもの。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7Z20/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081M7Z20.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7Z20/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集1 経営者の条件\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "試み",
    "url": "https://www.ikemo3.com/dic/try/",
    "contents": "\u003ch2 id=\"試みとは\"\u003e試みとは\u003c/h2\u003e\n\u003cp\u003e今までやってなかったことをやってみることです。\n「挑戦」も含みますが、どちらかといえば小さいことをイメージしています。\u003c/p\u003e\n\u003ch2 id=\"挑戦に罰を与えてはならない\"\u003e挑戦に罰を与えてはならない\u003c/h2\u003e\n\u003cp\u003eドラッカーはイノベーションと企業家精神以下のように書いています。\nNo.2528あたりより(Kindle)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eイノベーションを担当する人たちは、たとえ失敗しても元の仕事、\n元の報酬に戻れるようにしておくべきである。失敗をほめる必要はなくとも、\n挑戦に罰を与えてはならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"挑戦しない者は放っておく\"\u003e挑戦しない者は放っておく\u003c/h2\u003e\n\u003cp\u003eドラッカーは逆に、挑戦をしない人には厳しいです。\u003c/p\u003e\n\u003cp\u003e非営利組織の経営 p47より。\nハーマン・ミラー社などを率いたマックス・ドプリー氏との対話です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eドラッカー\u003c/strong\u003e 失敗は多くてもよい。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eドプリー\u003c/strong\u003e はい。組織としては失敗そのものは問題ではないでしょう。\nもっと失敗を許せなければならないと思います。\n失敗そのものはたいしたことはありません。教育の一環です。\n多くを要求すれば、仕事の質は向上し人間の質も向上します。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eドラッカー\u003c/strong\u003e ただし条件が二つあります。一つは失敗しても第二のチャンス、\n第三のチャンスを与えることです。挑戦してこない者は放っておきましょう。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこれ正直「えーっ」と思いました。\n対談とは言え、特定のタイプの人に対して冷たい言動をするのは見たことなかったので\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e同じく非営利組織の経営 p168より。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e挑戦する者には機会を与えることが原則である。挑戦しない者は放っておいてよい。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e同じく非営利組織の経営 p169より。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eミッションを感じることこそが非営利組織の活力の源泉である。\nしかし、そこには困った問題もついてくる。成果をあげられない者を抱え込むという問題である。\nできない者もまた戦友である。そのため、仕事ができなくとも辞めさせることには二の足を踏んでしまう。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eこの問題についてはここでもう一度シンプルな原則を繰り返させていただきたい。\n挑戦してくるならばチャンスを与えるべきである。\n挑戦してこないなら辞めてもらうべきである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"失敗したことのない人を昇進させてはいけない\"\u003e失敗したことのない人を昇進させてはいけない\u003c/h2\u003e\n\u003cp\u003eドラッカーはまた、失敗したことのない人を昇進させてはならないと書いています。\u003c/p\u003e\n\u003cp\u003e現代の経営(上)No.2755(Kindle)より\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e一度も間違いをしたことのない者、それも大きな間違いをしたことのない者を\nトップマネジメントの仕事につかせてはならない。\n間違いをしたことのない者は凡庸である。そのうえ、いかにして間違いを発見し、\nいかにしてそれを早く直すかを知らない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"こんな本も\"\u003eこんな本も\u003c/h2\u003e\n\u003cp\u003e自分はまだ読んでないですが、マックス・デプリーの著書で、\nドラッカーが絶賛している本を見つけたので載せておきます。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4903212114/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4903212114.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4903212114/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n響き合うリーダーシップ\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAGLC/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAGLC.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAGLC/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集5 イノベーションと企業家精神\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478307059/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478307059.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478307059/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集4 非営利組織の経営\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7YFS/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081M7YFS.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7YFS/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集2 現代の経営［上］\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e本の中では「マックス・ドプリー」となっていますが、通常は「マックス・デプリー」と書かれるようです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e「国」に対してなら「断絶の時代」にアルゼンチンについて冷たい態度を取ったことがあります。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "人事",
    "url": "https://www.ikemo3.com/dic/hr/",
    "contents": "\u003ch2 id=\"人事とは\"\u003e人事とは\u003c/h2\u003e\n\u003cp\u003e組織において、人の処遇や採用を担当する部署のことです。\u003c/p\u003e\n\u003ch2 id=\"人事の失敗は本人の問題ではない\"\u003e人事の失敗は本人の問題ではない\u003c/h2\u003e\n\u003cp\u003eチェンジ・リーダーの条件 No.2709あたり。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eこれらのプロセスをすべて踏んでも、人事の失敗はなくならない。\nしかも、決してリスクがなくならない種類の人事がある。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eある人間が、新しい環境に向いているかどうかを事前に知る方法はない。\n後知恵でしかわからない。したがって、昇進や異動がうまくいかなかったときは、\nただちに再異動させる必要がある。「私が間違った。直すのは私の責任である」\nと考えなければならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e間違った人事をされてしまった者を、そのままにしておくことは温情ではない。\n意地悪である。もちろん辞めさせる理由はない。一流の技術者、一流の分析専門家、\n一流の販売部長は、つねに必要である。もっとも妥当な解決案は、\n以前のポスト、あるいはそれに相当するポストに戻すことである。\nこの方法は、ほとんどうまくいく。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e人事に失敗したときに、その本人が「自分がダメだったから」と考えなくていいんですね。\n「人事が正しいプロセスを踏んで決定していない」か、\n「正しいプロセスを踏んで決定したが、たまたまその人に合わなかった」だけ。\u003c/p\u003e\n\u003ch2 id=\"解雇の条件\"\u003e解雇の条件\u003c/h2\u003e\n\u003cp\u003e「現代の経営(上)」No.2755(Kindle)より、\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eまた、常に二流の仕事ぶりしかできない者を異動させよということは、\n容赦なく解雇せよということではない。\n誠実につとめてきた者に対しては、企業の側に道義的な責務がある。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eしかもマネジメント自体が、意思決定をなすべき機関の常として、\n間違いを免れることができない。間違って昇進させ、\nその後昇進させるべきでなかったことがその仕事ぶりから明らかになった者を\n解雇することはできない。満足な仕事ができないのは、\nその者だけの罪ではないかもしれない。あるいは、\n時間の経過とともに、仕事に必要な能力がその者の能力を超えてしまったのかもしれない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e同じく「現代の経営(上)」No.2864(Kindle)より、\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e解雇の条件を厳しくしすぎて、ほとんど解雇できないようにしてもならない。\n逆に身の安全ばかり気にするようにさせてもならない。\nそれでは何も考えられなくなる。進取の気風は失われ、\nイノベーションは行えなくなり、新しいことに手を出せなくなる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e自分は解雇規制の緩和に賛成ですが、\nあくまでそれは「解雇の条件が厳しすぎる」のが原因で、\nいつ首にされるか分からないところで働きたくないですね。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0084065YS/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0084065YS.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0084065YS/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nチェンジ・リーダーの条件 はじめて読むドラッカー (マネジメント編)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7YFS/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081M7YFS.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7YFS/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集2 現代の経営［上］\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n"
  }, 
  {
    "title": "人事評価",
    "url": "https://www.ikemo3.com/dic/performance-review/",
    "contents": "\u003ch2 id=\"人事評価とは\"\u003e人事評価とは\u003c/h2\u003e\n\u003cp\u003e納得できないものです。\u003c/p\u003e\n\u003ch2 id=\"継続的改善にも報いる\"\u003e継続的改善にも報いる\u003c/h2\u003e\n\u003cp\u003e明日を支配するもの p105より。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eしかしわれわれは、継続性についても報いるべきことを知らなければならない。\nもっぱら継続的改善を行なう者に対しても、\n同じように価値ある者として評価し、報いていく必要がある。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eイノベーションだけではなく、継続的改善(カイゼン)も重要な仕事。\nそれに報いる必要がある。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478372632/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478372632.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478372632/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n明日を支配するもの―21世紀のマネジメント革命\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "成果",
    "url": "https://www.ikemo3.com/dic/result/",
    "contents": "\u003ch2 id=\"成果とは\"\u003e成果とは\u003c/h2\u003e\n\u003cp\u003e何かを行ったときに得られる結果のことです。\u003c/p\u003e\n\u003ch2 id=\"成果はスタート\"\u003e成果はスタート\u003c/h2\u003e\n\u003cp\u003e「経営者の条件」p84より(あるいは「プロフェッショナルの条件」p87)、\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e新任の病院長が最初の会議を開いたとき、\nある難しい問題について全員が満足できる答えがまとまったように見えた。\nそのとき一人の出席者が、「この答えに、ブライアン看護師は満足するだろうか」と発言した。\n再び議論が始まり、やがてはるかに野心的なまったく新しい解決策ができた。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eその病院長は、ブライアン看護師が古参看護師の一人であることを知った。\n特に優れた看護師でもなく、看護師長をつとめたこともなかった。\nだが彼女は、自分の病棟で何か新しいことが決まりそうになると、\n「それは患者さんにとっていちばんよいことでしょうか」と必ず聞くことで有名だった。\n事実、ブライアン看護師の病棟の患者は回復が早かった。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e何年か後には、病院全体に「ブライアン看護師の原則」なるものができあがった。\nみなが「目的とするものに最高の貢献をしているか」を常に考えるようになっていた。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e今日では、ブライアン看護師が引退して10年が経つ。\nしかし彼女が設定した基準は、彼女よりも教育や地位が上の人たちに対し、\nいまも高い要求を課している。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"出典\"\u003e出典\u003c/h2\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7Z20/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081M7Z20.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7Z20/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集1 経営者の条件\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300593/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478300593.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300593/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nプロフェッショナルの条件――いかに成果をあげ、成長するか (はじめて読むドラッカー (自己実現編))\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n"
  }, 
  {
    "title": "体系的廃棄",
    "url": "https://www.ikemo3.com/dic/systematic-abandonment/",
    "contents": "\u003ch2 id=\"体系的廃棄とは\"\u003e体系的廃棄とは\u003c/h2\u003e\n\u003cp\u003e古くて使えなくなった製品、使えなくなった方法などを体系的にやめる、捨てることです。\u003c/p\u003e\n\u003ch2 id=\"ドラッカーの著書での記述\"\u003eドラッカーの著書での記述\u003c/h2\u003e\n\u003cp\u003e経営者の条件 p142より\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e集中のための第一の原則は、生産的でなくなった過去のものを捨てることである。\nそのためには自らの仕事と部下の仕事を定期的に見直し、\n「まだ行っていなかったとして、いまこれに手をつけるか」を問うことである。\n答えが無条件のイエスでないかぎり、やめるか大幅に縮小すべきである。\nもはや生産的でなくなった過去のもののために資源を投じてはならない。\n第一級の資源、特に人の強みという稀少な資源を昨日の活動から引き揚げ、\n明日の機会に充てなければならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e乱気流時代の経営 No.697あたり(Kindle)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e長い航海を続けてきた船は、船体に付着した貝を洗い落とす。\nさもなければ、スピードは落ち、機動力は失われる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e長い間凪いだ海を航行してきた企業や公的サービス機関も、\n資源ばかり食う製品やサービスや事業を洗い落とす必要がある。\nすでに昨日のものとなった製品、サービス、事業を洗い落とさなければならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eあらゆる組織が、このような廃棄を計画的に行っていく必要がある。\nとくに乱気流の時代においてこのことがいえる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eあらゆる製品、内向け外向けのあらゆるサービス、あらゆるプロセス、あらゆる活動が、\n数年ごとに「まだ手がけていないと仮定して、その後明らかになった新しい知見をもってしても、\n手をつけることが得策と考えるか」という問いをもって裁かれなければならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eもし答えが「ノー」であれば、「調べてみよう」とはいわずに、\n「どうすれば手を引けるか。あるいは、どうすれば少なくともこれ以上資源を投入せずにすむか」を問わなければならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eドラッカーがよく言う体系的廃棄の説明。重要なのは\u003cstrong\u003eゼロベース\u003c/strong\u003eで考えること。\nすでに存在するサービスという現状を起点にしてはいけない。\u003c/p\u003e\n\u003cp\u003eただし、必ずしも廃棄が答えとは限らない。\u003c/p\u003e\n\u003cp\u003eイノベーションと企業家精神 No.2276あたり(Kindle)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e既存のものの廃棄が答えでないこともある。廃棄が不可能なこともある。\nしかしそのようなことでも、少なくともそれ以上の労力はかけないようにしなければならない。\n人材と資金という生産資源を、すでに過去となってしまったものに投じてはならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"組織が順調なときに行なう\"\u003e組織が順調なときに行なう\u003c/h2\u003e\n\u003cp\u003e乱気流時代の経営 No.708あたり(Kindle)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e実は、この問いを発し、その答えに基づいて行動すべきは、\n組織が苦境に立ったときではない。順調なときである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eなぜなら順調なときにこそ、資源を、昨日に、すでに成果を生み出してしまったものに、\nすでに挑戦してしまった目標に、すでに満たしてしまったニーズに振り向けているからである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7Z20/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081M7Z20.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7Z20/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集1 経営者の条件\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B078H56JGM/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B078H56JGM.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B078H56JGM/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n乱気流時代の経営\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAGLC/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAGLC.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAGLC/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集5 イノベーションと企業家精神\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n"
  }, 
  {
    "title": "転職",
    "url": "https://www.ikemo3.com/dic/change-job/",
    "contents": "\u003ch2 id=\"転職とは\"\u003e転職とは\u003c/h2\u003e\n\u003cp\u003eある会社をやめて別の会社に移ることです。\n(それって転社のような)\u003c/p\u003e\n\u003ch2 id=\"組織を辞めるとき\"\u003e組織を辞めるとき\u003c/h2\u003e\n\u003cp\u003eドラッカーの「非営利組織の経営」p213より、\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e得るべき所はどこかとの問いへの答えが、\nいま働いている所ではないということであるならば、次の問いは、それはなぜかである。\n組織の価値観に馴染めないからか。組織に緊張感がないからか。\nそのようなとき人は確実にだめになる。\n組織の価値観が自らの価値観に合っていないならば、人は自らを軽く見るようになる。\nあるいは上司が利己的なことがある。上司としての役目、部下を育て引き上げる役目を\n果たさないことがある。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e組織が腐っているとき、自分が所を得ていないとき、\nあるいは成果が認められないときには、辞めることが正しい道である。\n出世はたいした問題ではない。重要なことは公正であることであり公平であることである。\nさもなければ、やがて自らを二流の存在と見るようになる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e「自分がなんとかできる」と考えているうちはいいが、\nそうでなければ辞めるのが正解かと。\u003c/p\u003e\n\u003ch2 id=\"気になる記事\"\u003e気になる記事\u003c/h2\u003e\n\u003ch3 id=\"転職回数が多い退職理由がネガティブなど面接に自信ない人でも受かる5つの秘策\"\u003e転職回数が多い、退職理由がネガティブ…など面接に自信ない人でも受かる5つの秘策\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://paiza.hatenablog.com/entry/2019/02/05/%E8%BB%A2%E8%81%B7%E5%9B%9E%E6%95%B0%E3%81%8C%E5%A4%9A%E3%81%84%E3%80%81%E9%80%80%E8%81%B7%E7%90%86%E7%94%B1%E3%81%8C%E3%83%8D%E3%82%AC%E3%83%86%E3%82%A3%E3%83%96%E2%80%A6%E3%81%AA%E3%81%A9%E9%9D%A2\"\u003e転職回数が多い、退職理由がネガティブ…など面接に自信ない人でも受かる5つの秘策 - paiza開発日誌\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478307059/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478307059.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478307059/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集4 非営利組織の経営\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "匿名",
    "url": "https://www.ikemo3.com/dic/anonymous/",
    "contents": "\u003ch2 id=\"匿名とは\"\u003e匿名とは\u003c/h2\u003e\n\u003cp\u003e本名でないこと、あるいはそれによる活動です。\u003c/p\u003e\n\u003ch2 id=\"グラデーション\"\u003eグラデーション\u003c/h2\u003e\n\u003cp\u003e一部の人は「本名」と「匿名」による二択の対立構造を作り上げていますが、\n実際はそうではありません。少なくとも以下の3つはあります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e身元が保証されている本名\u003c/li\u003e\n\u003cli\u003eハンドルで長期間活動していて、本名ではないが同一性が確保されている。\u003c/li\u003e\n\u003cli\u003eIDが表示されないので他の人と区別が不可能。あるいはいわゆる「捨てハン」\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eあと「本名だが身元が保証されていないためなりすましでもある」というパターンもありますね。\n2番のように、実名を使っていないけれどハンドルを長期間使用している場合は結構あります。\u003c/p\u003e\n"
  }, 
  {
    "title": "独学",
    "url": "https://www.ikemo3.com/dic/self-learning/",
    "contents": "\u003ch2 id=\"独学とは\"\u003e独学とは\u003c/h2\u003e\n\u003cp\u003e自分一人で学ぶことです。\u003c/p\u003e\n\u003ch2 id=\"どんどん環境が整っている\"\u003eどんどん環境が整っている\u003c/h2\u003e\n\u003cp\u003e自分が学生の頃、1990年代は自分で学習しようと思っても使えるのは図書館くらいで、\nなかなか恵まれた環境はありませんでした。\u003c/p\u003e\n\u003cp\u003eしかし今はいろいろな環境が整っています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eオンライン教材\u003c/li\u003e\n\u003cli\u003eKindle Unlimitedのような定額制サービス\u003c/li\u003e\n\u003cli\u003eプログラミングの学習サイト\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e若い人は羨ましいなと思うと同時に、自分もそういう技術の恩恵を受けているので、便利だなと感じます。\u003c/p\u003e\n\u003ch2 id=\"若いうちに学習する習慣をつける\"\u003e若いうちに学習する習慣をつける\u003c/h2\u003e\n\u003cp\u003e自分はこれを書いているときは育児中で結構つらいです。\nでも他の人よりはまだ学ぶのは苦労していません。\u003c/p\u003e\n\u003cp\u003eたぶんこれは20代のうちに学習する習慣をつけておいたからだと思います。\n20代のうちに学習しておくと、30代のうちはだいぶ楽なんですよね。\u003c/p\u003e\n"
  }, 
  {
    "title": "平均寿命",
    "url": "https://www.ikemo3.com/dic/average-life-span/",
    "contents": "\u003ch2 id=\"平均寿命とは\"\u003e平均寿命とは\u003c/h2\u003e\n\u003cp\u003e現在0歳の人がどれくらい生きられるかを示す指標です。\u003c/p\u003e\n\u003ch2 id=\"平均寿命が伸びた理由\"\u003e平均寿命が伸びた理由\u003c/h2\u003e\n\u003cp\u003eドラッカーの著書ネクスト・ソサエティ p97より。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eここでちょっとショッキングな事実をご紹介しよう。\n抗生物質の発明などの医療の進歩は平均寿命にほとんど寄与していないという事実である。\nごくわずかの人たちにとっては福音だった。\n統計的にはほとんど意味がない。平均寿命に寄与したのは労働環境の改善のほうである。\n私が生まれたころは、\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003chr\u003e\n\u003cp\u003e軽くググってみたが、\u003ca href=\"http://www.ipss.go.jp/syoushika/bunken/data/pdf/19360404.pdf\"\u003e日本人の寿命伸長：要因と展望\u003c/a\u003eには「生活水準の向上や労働条件の改善などによる，身体衰弱（debilitation）の緩慢化」として紹介されている。\u003c/p\u003e\n\u003cp\u003e具体的なデータは見ていないが、病気を治すよりも、病気にならない環境を整える方が大事ということだろう。\nドラッカーは度々、公衆衛生にも触れている。\u003c/p\u003e\n\u003cp\u003eファクトフルネスには以下のように書かれている。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eまとめると、レベル1やレベル2の医療環境を改善したいのであれば、\nいきなり立派な病院を建てる必要はない。そんなおカネがあったら、\n真っ先に初等教育・看護師教育・予防接種を充実させるべきだ。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07LG7TG5N/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B07LG7TG5N.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07LG7TG5N/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nFACTFULNESS（ファクトフルネス）10の思い込みを乗り越え、データを基に世界を正しく見る習慣\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478190453/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478190453.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478190453/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nネクスト・ソサエティ ― 歴史が見たことのない未来がはじまる\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n"
  }, 
  {
    "title": "保守主義",
    "url": "https://www.ikemo3.com/dic/conservatism/",
    "contents": "\u003ch2 id=\"保守主義とは\"\u003e保守主義とは\u003c/h2\u003e\n\u003cp\u003e理想からではなく現実からスタートすることです。\u003c/p\u003e\n\u003ch2 id=\"保守主義でないもの\"\u003e保守主義でないもの\u003c/h2\u003e\n\u003cp\u003e例えば「過去が最も良いもの」と考えることは保守主義ではありません。\nドラッカーはこれを「保守反動」と呼んでいます。\u003c/p\u003e\n\u003ch2 id=\"現実からスタートせよ\"\u003e現実からスタートせよ\u003c/h2\u003e\n\u003cp\u003e「産業人の未来」p280より。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eわれわれは、未来を語る前にいまの現実を知らなければならない。なぜなら常に現実からスタートすることが不可欠だからである。\nしかもわれわれは、すでに手にしているものによって初めて必要とするものをつくりあげることができる。\n手にしていたいものを発明することからスタートすることはできない。\n現在われわれが手にしている制度をよりよくしかも多く使うことこそ、われわれに課せられた責務である。\nそれらのものが建設的な目的に役に立たないとき、\nさらにはそれらのものがいかに手直ししようとも役に立たないとき、新しい解決策を使うことが許される。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e産業人の未来の副題は「改革の原理としての保守主義」となっている。\nその保守主義とは何かという説明の1つ。\u003c/p\u003e\n\u003cp\u003eプログラミングで言えば、技術的負債を返済するためには、\n作り直しではなく、リファクタリングなどによる継続的改善が第一。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MA7YI/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MA7YI.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MA7YI/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集10 産業人の未来\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "目標による管理(MBO)",
    "url": "https://www.ikemo3.com/dic/mbo/",
    "contents": "\u003ch2 id=\"目標による管理mboとは\"\u003e目標による管理(MBO)とは\u003c/h2\u003e\n\u003cp\u003eドラッカーによるマネジメント手法です。\u003c/p\u003e\n\u003ch2 id=\"誤解が多い\"\u003e誤解が多い\u003c/h2\u003e\n\u003cp\u003eMBOは広く広まりましたが、一方で誤解が多く、間違って使われているのも事実です。\u003c/p\u003e\n\u003ch2 id=\"専門化した仕事にひそむ危険性\"\u003e専門化した仕事にひそむ危険性\u003c/h2\u003e\n\u003cp\u003e現代の経営(上) No.2297より。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eマネジメントのセミナーでよく取り上げられる話に、何をしているのかを聞かれた三人の石工の話がある。\n一人は「これで食べている」と答え、一人は「国で一番の仕事をしている」と答え、\n一人は「教会を建てている」と答えたという。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eもちろん、第三の男があるべき姿である。\n第一の男は、一応の仕事をする。報酬に見合った仕事をする。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e問題は第二の男である。職人気質は重要である。\nそれなくして立派な仕事はありえない。事実、いかなる組織も、\nそこに働く者に最高の腕を要求しないかぎり堕落する。しかし一流の職人や専門家には、\n単に石を磨いたり、瑣末な脚注を集めたりしているにすぎないにもかかわらず、\n何かを成し遂げていると思い込む危険がある。\n一流の腕は確かに重視しなければならないが、\nそれは常に全体のニーズとの関連においてでなければならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eここでは、専門家がそのスキル自体が価値があると思いこんでしまい、\nビジネスに役立っているかどうかを軽視することを諌めています。\u003c/p\u003e\n\u003cp\u003eただ逆に、ビジネスができればスキルは気にしないという人たちも諌めています。\u003c/p\u003e\n\u003cp\u003e重要なのは「共通の目標」、先程の例では「教会を立てる」ということです。\u003c/p\u003e\n\u003cp\u003e同じく、No.2360には以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eすなわち、高度のスキルを求めながら、\nスキルの獲得そのものを目的とさせることなく、\nそれを事業全体の目標に向けての手段とさせる必要がある。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"チームワークを重視する\"\u003eチームワークを重視する\u003c/h3\u003e\n\u003cblockquote\u003e\n\u003cp\u003e社長から工場の現場管理者や事務主任にいたる全員が、明確な目標をもつ必要がある。\nそれらの目標は、自らの部門が生み出すべき成果を明らかにする必要がある。\n他の部門の目標達成を助けるために、自らや自らの部門が期待されている貢献を明らかにする必要がある。\nそして、自らの目標を達成するうえで、\n他の部門からいかなる貢献を期待できるかを明らかにしなければならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e言い換えるならば、最初の段階から、チームワークとチームの成果を重視しなければならない。\nもちろん、そのような目標は企業全体の目標から導かなければならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e事業全体の目標を共通のものとしている以上、\n社員や部門間で争うのは間違っている。\nチームの成果を重視しなければならない。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7YFS/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081M7YFS.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7YFS/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集2 現代の経営［上］\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Reviews",
    "url": "https://www.ikemo3.com/review/",
    "contents": ""
  }, 
  {
    "title": "国民性",
    "url": "https://www.ikemo3.com/dic/national-character/",
    "contents": "\u003ch2 id=\"国民性とは\"\u003e国民性とは\u003c/h2\u003e\n\u003cp\u003e差別主義者が差別を正当化するときに使うものです。\u003c/p\u003e\n\u003ch2 id=\"大嫌いな考え方\"\u003e大嫌いな考え方\u003c/h2\u003e\n\u003cp\u003e自分は基本的にこの考え方が嫌いです。\u003c/p\u003e\n\u003cp\u003e自分の感覚で言えば、歴史や文化による違いは多少はあると思います。\n制度によるものもあると思います。\u003c/p\u003e\n\u003cp\u003eただ、国民性を持ち出す人は「●●は劣っている」「●●は優れている」という、\n\u003cstrong\u003e変えられないもの\u003c/strong\u003eとして持ち出していることがほとんどです。\nそれがものすごくイヤです。\nだから「差別主義者が持ち出すもの」と自分は捉えています。\u003c/p\u003e\n\u003ch2 id=\"ドラッカーは国民性による説明を嫌っていた\"\u003eドラッカーは国民性による説明を嫌っていた\u003c/h2\u003e\n\u003cp\u003eドラッカーは「国民性」による説明を徹底的に嫌っています。\nその原点は「産業人の未来」p10にある次の記述からです。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e国民性あるいは民族性なるものが存在することは確かである。\nしかし、それは主として物事の進め方に関わる特性である。\nすなわち、緩慢にか急激にか、慎重にか性急にか、感情によってか理性によってか、\n丁寧に行うかさっと行うかである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e国民的な気質というものは存在する。しかしそれは意思決定の内容には関係がない。\n物事を丁寧に行う人間と、さっと行う人間の、どちらが人殺しになりやすいかは分からない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e理想の人間像や行動についても、国民的あるいは民族的な違い、\n伝統や感性による違いがある。これもまた往々にして国民性と呼ばれる。\nしかし、この社会的理想像ほど、急速に、かつ予期せぬ形で変化するものはない。\nかつてヨーロッパでは、アメリカ人が理想とする人間像は銀行家であると思われていた。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eファシズム全体主義を国民性によるものとして理解することは、\nヒトラーの主張を認めるに等しい。必然かつ不変の国民性という概念と、\n恒久的かつ不変の人種的特性という概念の間には、ほとんど差がない。\nそこまでくれば、特定の国民や人種の優越性を認めたも同然である。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MA7YI/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MA7YI.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MA7YI/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集10 産業人の未来\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "辞書",
    "url": "https://www.ikemo3.com/review/dic/",
    "contents": "\n\u003cul\u003e\n\n\u003cli\u003e2017-06-29:\n\u003ca target=\"_blank\" href=\"/dic/strengthsfinder/\"\u003eストレングスファインダー\u003c/a\u003e\n\n\u003cli\u003e2017-07-31:\n\u003ca target=\"_blank\" href=\"/dic/\"\u003e辞書\u003c/a\u003e\n\n\u003cli\u003e2017-08-02:\n\u003ca target=\"_blank\" href=\"/dic/finnegans-wake/\"\u003eフィネガンズ・ウェイク\u003c/a\u003e\n\n\u003cli\u003e2017-08-04:\n\u003ca target=\"_blank\" href=\"/dic/fluent-interface/\"\u003e流れるようなインタフェース\u003c/a\u003e\n\n\u003cli\u003e2017-08-06:\n\u003ca target=\"_blank\" href=\"/dic/anti-pattern/\"\u003eアンチパターン\u003c/a\u003e\n\n\u003cli\u003e2017-08-06:\n\u003ca target=\"_blank\" href=\"/dic/unexpected-success/\"\u003e予期せぬ成功\u003c/a\u003e\n\n\u003cli\u003e2017-08-13:\n\u003ca target=\"_blank\" href=\"/dic/steve-jobs/\"\u003eスティーブ・ジョブズ\u003c/a\u003e\n\n\u003cli\u003e2017-08-13:\n\u003ca target=\"_blank\" href=\"/dic/feed-reader/\"\u003eフィードリーダー(RSSリーダー)\u003c/a\u003e\n\n\u003cli\u003e2017-08-15:\n\u003ca target=\"_blank\" href=\"/dic/pomodoro-technique/\"\u003eポモドーロ・テクニック\u003c/a\u003e\n\n\u003cli\u003e2017-08-15:\n\u003ca target=\"_blank\" href=\"/dic/omnifocus/\"\u003eOmniFocus\u003c/a\u003e\n\n\u003cli\u003e2017-08-16:\n\u003ca target=\"_blank\" href=\"/dic/grandmother-of-drucker/\"\u003eドラッカーのおばあちゃん\u003c/a\u003e\n\n\u003cli\u003e2017-08-17:\n\u003ca target=\"_blank\" href=\"/dic/do-it-tomorrow/\"\u003eマニャーナの法則\u003c/a\u003e\n\n\u003cli\u003e2017-08-18:\n\u003ca target=\"_blank\" href=\"/dic/soba/\"\u003e蕎麦\u003c/a\u003e\n\n\u003cli\u003e2017-08-18:\n\u003ca target=\"_blank\" href=\"/dic/people-who-throw-out-hometown/\"\u003e故郷を捨てた人\u003c/a\u003e\n\n\u003cli\u003e2017-08-18:\n\u003ca target=\"_blank\" href=\"/dic/crowded-train/\"\u003e満員電車\u003c/a\u003e\n\n\u003cli\u003e2017-08-19:\n\u003ca target=\"_blank\" href=\"/dic/adventures-of-a-bystander/\"\u003e傍観者の時代\u003c/a\u003e\n\n\u003cli\u003e2017-08-19:\n\u003ca target=\"_blank\" href=\"/dic/myokonin/\"\u003e妙好人\u003c/a\u003e\n\n\u003cli\u003e2017-08-20:\n\u003ca target=\"_blank\" href=\"/dic/bayes-theorem/\"\u003eベイズの定理\u003c/a\u003e\n\n\u003cli\u003e2017-08-21:\n\u003ca target=\"_blank\" href=\"/dic/imotaki/\"\u003eいもたき\u003c/a\u003e\n\n\u003cli\u003e2017-08-21:\n\u003ca target=\"_blank\" href=\"/dic/left-handed/\"\u003e左利き\u003c/a\u003e\n\n\u003cli\u003e2017-08-21:\n\u003ca target=\"_blank\" href=\"/dic/mathematics/\"\u003e数学\u003c/a\u003e\n\n\u003cli\u003e2017-08-21:\n\u003ca target=\"_blank\" href=\"/dic/youmeigaku/\"\u003e陽明学\u003c/a\u003e\n\n\u003cli\u003e2017-09-01:\n\u003ca target=\"_blank\" href=\"/dic/objective-c/\"\u003eObjective-C\u003c/a\u003e\n\n\u003cli\u003e2017-09-04:\n\u003ca target=\"_blank\" href=\"/dic/kanban-in-action/\"\u003eカンバン仕事術\u003c/a\u003e\n\n\u003cli\u003e2017-09-06:\n\u003ca target=\"_blank\" href=\"/dic/people-who-can-not-remove-ex/\"\u003eいつまで経っても「元」が取れない人\u003c/a\u003e\n\n\u003cli\u003e2017-09-06:\n\u003ca target=\"_blank\" href=\"/dic/the-internet-was-tokyoized/\"\u003eインターネットは東京化した\u003c/a\u003e\n\n\u003cli\u003e2017-09-11:\n\u003ca target=\"_blank\" href=\"/dic/ssl/\"\u003eSSL\u003c/a\u003e\n\n\u003cli\u003e2017-09-12:\n\u003ca target=\"_blank\" href=\"/dic/data-and-information/\"\u003eデータと情報\u003c/a\u003e\n\n\u003cli\u003e2017-09-14:\n\u003ca target=\"_blank\" href=\"/dic/microsoft-remote-desktop-for-mac/\"\u003eMicrosoft Remote Desktop for Mac\u003c/a\u003e\n\n\u003cli\u003e2017-09-15:\n\u003ca target=\"_blank\" href=\"/dic/kimowota/\"\u003eキモヲタ\u003c/a\u003e\n\n\u003cli\u003e2017-09-18:\n\u003ca target=\"_blank\" href=\"/dic/probability/\"\u003e確率\u003c/a\u003e\n\n\u003cli\u003e2017-09-18:\n\u003ca target=\"_blank\" href=\"/dic/next/\"\u003eNeXT\u003c/a\u003e\n\n\u003cli\u003e2017-09-19:\n\u003ca target=\"_blank\" href=\"/dic/i-ll-believe/\"\u003eI'll believe\u003c/a\u003e\n\n\u003cli\u003e2017-09-20:\n\u003ca target=\"_blank\" href=\"/dic/ig-nobel-prize/\"\u003eイグノーベル賞\u003c/a\u003e\n\n\u003cli\u003e2017-09-20:\n\u003ca target=\"_blank\" href=\"/dic/fear-of-heights/\"\u003e高所恐怖症\u003c/a\u003e\n\n\u003cli\u003e2017-09-20:\n\u003ca target=\"_blank\" href=\"/dic/peer-pressure/\"\u003e同調圧力\u003c/a\u003e\n\n\u003cli\u003e2017-09-21:\n\u003ca target=\"_blank\" href=\"/dic/project/\"\u003eプロジェクト(タスク管理)\u003c/a\u003e\n\n\u003cli\u003e2017-09-21:\n\u003ca target=\"_blank\" href=\"/dic/do-one-thing-at-a-time/\"\u003e一つのことに集中する\u003c/a\u003e\n\n\u003cli\u003e2017-09-23:\n\u003ca target=\"_blank\" href=\"/dic/blog/\"\u003eブログ\u003c/a\u003e\n\n\u003cli\u003e2017-09-24:\n\u003ca target=\"_blank\" href=\"/dic/the-end-of-economic-man/\"\u003e「経済人」の終わり\u003c/a\u003e\n\n\u003cli\u003e2017-09-24:\n\u003ca target=\"_blank\" href=\"/dic/ukai/\"\u003e鵜飼い\u003c/a\u003e\n\n\u003cli\u003e2017-09-24:\n\u003ca target=\"_blank\" href=\"/dic/ibm-japan/\"\u003e日本IBM\u003c/a\u003e\n\n\u003cli\u003e2017-09-27:\n\u003ca target=\"_blank\" href=\"/dic/basara/\"\u003eBASARA\u003c/a\u003e\n\n\u003cli\u003e2017-09-28:\n\u003ca target=\"_blank\" href=\"/dic/scholarship/\"\u003e奨学金\u003c/a\u003e\n\n\u003cli\u003e2017-09-29:\n\u003ca target=\"_blank\" href=\"/dic/chunked-transfer-encoding/\"\u003eChunked transfer encoding\u003c/a\u003e\n\n\u003cli\u003e2017-09-29:\n\u003ca target=\"_blank\" href=\"/dic/kakkonto/\"\u003e葛根湯\u003c/a\u003e\n\n\u003cli\u003e2017-10-07:\n\u003ca target=\"_blank\" href=\"/dic/matsuyama/\"\u003e松山市\u003c/a\u003e\n\n\u003cli\u003e2017-10-09:\n\u003ca target=\"_blank\" href=\"/dic/numbers/\"\u003eNumbers(Apple)\u003c/a\u003e\n\n\u003cli\u003e2017-10-09:\n\u003ca target=\"_blank\" href=\"/dic/effective-based/\"\u003e成果主義\u003c/a\u003e\n\n\u003cli\u003e2017-10-10:\n\u003ca target=\"_blank\" href=\"/dic/sake/\"\u003e日本酒\u003c/a\u003e\n\n\u003cli\u003e2017-10-16:\n\u003ca target=\"_blank\" href=\"/dic/decision-fatigue/\"\u003e決断疲れ\u003c/a\u003e\n\n\u003cli\u003e2017-10-21:\n\u003ca target=\"_blank\" href=\"/dic/intel/\"\u003eIntel\u003c/a\u003e\n\n\u003cli\u003e2017-10-21:\n\u003ca target=\"_blank\" href=\"/dic/macbook-pro/\"\u003eMacBook Pro\u003c/a\u003e\n\n\u003cli\u003e2017-10-21:\n\u003ca target=\"_blank\" href=\"/dic/vim/\"\u003eVim\u003c/a\u003e\n\n\u003cli\u003e2017-10-21:\n\u003ca target=\"_blank\" href=\"/dic/kakkonto-ka-senkyuusinni/\"\u003e葛根湯加川芎辛夷\u003c/a\u003e\n\n\u003cli\u003e2017-10-26:\n\u003ca target=\"_blank\" href=\"/dic/excel-grid-paper/\"\u003eExcel方眼紙\u003c/a\u003e\n\n\u003cli\u003e2017-10-30:\n\u003ca target=\"_blank\" href=\"/dic/excel/\"\u003eMicrosoft Excel\u003c/a\u003e\n\n\u003cli\u003e2017-10-31:\n\u003ca target=\"_blank\" href=\"/dic/online-game-phobia/\"\u003eネトゲ恐怖症\u003c/a\u003e\n\n\u003cli\u003e2017-11-04:\n\u003ca target=\"_blank\" href=\"/dic/7-sources-of-innovative-opportunity/\"\u003eイノベーションの七つの機会\u003c/a\u003e\n\n\u003cli\u003e2017-11-04:\n\u003ca target=\"_blank\" href=\"/dic/checklist/\"\u003eチェックリスト\u003c/a\u003e\n\n\u003cli\u003e2017-11-11:\n\u003ca target=\"_blank\" href=\"/dic/selinux/\"\u003eSELinux\u003c/a\u003e\n\n\u003cli\u003e2017-11-13:\n\u003ca target=\"_blank\" href=\"/dic/static-site-generator/\"\u003e静的サイトジェネレータ\u003c/a\u003e\n\n\u003cli\u003e2017-11-18:\n\u003ca target=\"_blank\" href=\"/dic/technologist/\"\u003eテクノロジスト\u003c/a\u003e\n\n\u003cli\u003e2017-11-23:\n\u003ca target=\"_blank\" href=\"/dic/hugo-template/\"\u003eHugoテンプレート\u003c/a\u003e\n\n\u003cli\u003e2017-11-23:\n\u003ca target=\"_blank\" href=\"/dic/dq11/\"\u003eドラゴンクエストXI 過ぎ去りし時を求めて\u003c/a\u003e\n\n\u003cli\u003e2017-11-23:\n\u003ca target=\"_blank\" href=\"/dic/gender-equality/\"\u003e男女共同参画\u003c/a\u003e\n\n\u003cli\u003e2017-11-23:\n\u003ca target=\"_blank\" href=\"/dic/people-who-prefer-destruction-to-innovation/\"\u003eイノベーションより破壊が好きな人\u003c/a\u003e\n\n\u003cli\u003e2017-11-26:\n\u003ca target=\"_blank\" href=\"/dic/pbr/\"\u003ePBR\u003c/a\u003e\n\n\u003cli\u003e2017-11-26:\n\u003ca target=\"_blank\" href=\"/dic/per/\"\u003ePER\u003c/a\u003e\n\n\u003cli\u003e2017-11-26:\n\u003ca target=\"_blank\" href=\"/dic/super-mario-odyssey/\"\u003eスーパーマリオ オデッセイ\u003c/a\u003e\n\n\u003cli\u003e2017-11-26:\n\u003ca target=\"_blank\" href=\"/dic/virtual-currency/\"\u003e仮想通貨\u003c/a\u003e\n\n\u003cli\u003e2017-11-26:\n\u003ca target=\"_blank\" href=\"/dic/stock/\"\u003e株式\u003c/a\u003e\n\n\u003cli\u003e2017-11-26:\n\u003ca target=\"_blank\" href=\"/dic/dq/\"\u003eドラゴンクエストシリーズ\u003c/a\u003e\n\n\u003cli\u003e2017-11-29:\n\u003ca target=\"_blank\" href=\"/dic/innovation/\"\u003eイノベーション\u003c/a\u003e\n\n\u003cli\u003e2017-11-29:\n\u003ca target=\"_blank\" href=\"/dic/tag-ha-amae/\"\u003eタグは甘え\u003c/a\u003e\n\n\u003cli\u003e2017-11-29:\n\u003ca target=\"_blank\" href=\"/dic/osaka-university/\"\u003e大阪大学\u003c/a\u003e\n\n\u003cli\u003e2017-11-30:\n\u003ca target=\"_blank\" href=\"/dic/soap/\"\u003eSOAP\u003c/a\u003e\n\n\u003cli\u003e2017-11-30:\n\u003ca target=\"_blank\" href=\"/dic/game/\"\u003eゲーム\u003c/a\u003e\n\n\u003cli\u003e2017-11-30:\n\u003ca target=\"_blank\" href=\"/dic/zen/\"\u003e禅\u003c/a\u003e\n\n\u003cli\u003e2017-11-30:\n\u003ca target=\"_blank\" href=\"/dic/zero-religion/\"\u003e無宗教\u003c/a\u003e\n\n\u003cli\u003e2017-12-02:\n\u003ca target=\"_blank\" href=\"/dic/lasik/\"\u003eレーシック\u003c/a\u003e\n\n\u003cli\u003e2017-12-02:\n\u003ca target=\"_blank\" href=\"/dic/technology-monitoring/\"\u003eテクノロジー・モニタリング\u003c/a\u003e\n\n\u003cli\u003e2017-12-03:\n\u003ca target=\"_blank\" href=\"/dic/metascore/\"\u003eMetascore\u003c/a\u003e\n\n\u003cli\u003e2017-12-04:\n\u003ca target=\"_blank\" href=\"/dic/base64/\"\u003eBase64\u003c/a\u003e\n\n\u003cli\u003e2017-12-04:\n\u003ca target=\"_blank\" href=\"/dic/redhat/\"\u003eRed Hat\u003c/a\u003e\n\n\u003cli\u003e2017-12-04:\n\u003ca target=\"_blank\" href=\"/dic/zero-to-one/\"\u003eZERO to ONE\u003c/a\u003e\n\n\u003cli\u003e2017-12-04:\n\u003ca target=\"_blank\" href=\"/dic/alpha-blogger/\"\u003eアルファブロガー\u003c/a\u003e\n\n\u003cli\u003e2017-12-04:\n\u003ca target=\"_blank\" href=\"/dic/all-happy-families-are-alike/\"\u003e幸せな家族はどれもみな似ているが、不幸な家族にはそれぞれの不幸の形がある\u003c/a\u003e\n\n\u003cli\u003e2017-12-04:\n\u003ca target=\"_blank\" href=\"/dic/new-vested-interests/\"\u003e新たな既得権層\u003c/a\u003e\n\n\u003cli\u003e2017-12-04:\n\u003ca target=\"_blank\" href=\"/dic/nextstep/\"\u003eNEXTSTEP\u003c/a\u003e\n\n\u003cli\u003e2017-12-05:\n\u003ca target=\"_blank\" href=\"/dic/long-term-support/\"\u003eLong Term Support(LTS)\u003c/a\u003e\n\n\u003cli\u003e2017-12-05:\n\u003ca target=\"_blank\" href=\"/dic/media-types/\"\u003eメディアタイプ\u003c/a\u003e\n\n\u003cli\u003e2017-12-05:\n\u003ca target=\"_blank\" href=\"/dic/sleep/\"\u003e睡眠\u003c/a\u003e\n\n\u003cli\u003e2017-12-07:\n\u003ca target=\"_blank\" href=\"/dic/togetter/\"\u003eTogetter\u003c/a\u003e\n\n\u003cli\u003e2017-12-07:\n\u003ca target=\"_blank\" href=\"/dic/empty-analyst/\"\u003e節穴リスト\u003c/a\u003e\n\n\u003cli\u003e2017-12-08:\n\u003ca target=\"_blank\" href=\"/dic/backup/\"\u003eバックアップ\u003c/a\u003e\n\n\u003cli\u003e2017-12-09:\n\u003ca target=\"_blank\" href=\"/dic/hobonichi-techo/\"\u003eほぼ日手帳\u003c/a\u003e\n\n\u003cli\u003e2017-12-09:\n\u003ca target=\"_blank\" href=\"/dic/gyutan/\"\u003e牛タン\u003c/a\u003e\n\n\u003cli\u003e2017-12-09:\n\u003ca target=\"_blank\" href=\"/dic/nintendo/\"\u003e任天堂\u003c/a\u003e\n\n\u003cli\u003e2017-12-10:\n\u003ca target=\"_blank\" href=\"/dic/intelligence-less-than-computer/\"\u003eコンピュータ未満の知能\u003c/a\u003e\n\n\u003cli\u003e2017-12-10:\n\u003ca target=\"_blank\" href=\"/dic/taiwan-ramen/\"\u003e台湾ラーメン\u003c/a\u003e\n\n\u003cli\u003e2017-12-10:\n\u003ca target=\"_blank\" href=\"/dic/artificial-intelligence/\"\u003e人工知能\u003c/a\u003e\n\n\u003cli\u003e2017-12-12:\n\u003ca target=\"_blank\" href=\"/dic/libertarianism/\"\u003eリバタリアニズム\u003c/a\u003e\n\n\u003cli\u003e2017-12-13:\n\u003ca target=\"_blank\" href=\"/dic/ktt/\"\u003eKTT\u003c/a\u003e\n\n\u003cli\u003e2017-12-13:\n\u003ca target=\"_blank\" href=\"/dic/xml/\"\u003eXML\u003c/a\u003e\n\n\u003cli\u003e2017-12-13:\n\u003ca target=\"_blank\" href=\"/dic/iphone/\"\u003eiPhone\u003c/a\u003e\n\n\u003cli\u003e2017-12-14:\n\u003ca target=\"_blank\" href=\"/dic/yaml/\"\u003eYAML\u003c/a\u003e\n\n\u003cli\u003e2017-12-14:\n\u003ca target=\"_blank\" href=\"/dic/frixion/\"\u003eフリクション\u003c/a\u003e\n\n\u003cli\u003e2017-12-14:\n\u003ca target=\"_blank\" href=\"/dic/bohemian-vs-aristocratic/\"\u003eボヘミアンと貴族\u003c/a\u003e\n\n\u003cli\u003e2017-12-14:\n\u003ca target=\"_blank\" href=\"/dic/knowledge-society/\"\u003e知識社会\u003c/a\u003e\n\n\u003cli\u003e2017-12-15:\n\u003ca target=\"_blank\" href=\"/dic/satoru-iwata/\"\u003e岩田聡\u003c/a\u003e\n\n\u003cli\u003e2017-12-16:\n\u003ca target=\"_blank\" href=\"/dic/sweet-words/\"\u003e甘言\u003c/a\u003e\n\n\u003cli\u003e2017-12-17:\n\u003ca target=\"_blank\" href=\"/dic/tsumitate-nisa/\"\u003eつみたてNISA\u003c/a\u003e\n\n\u003cli\u003e2017-12-19:\n\u003ca target=\"_blank\" href=\"/dic/creative-commons/\"\u003eCreative Commons\u003c/a\u003e\n\n\u003cli\u003e2017-12-19:\n\u003ca target=\"_blank\" href=\"/dic/godiva/\"\u003eゴディバ\u003c/a\u003e\n\n\u003cli\u003e2017-12-19:\n\u003ca target=\"_blank\" href=\"/dic/takaaki-yoshimoto/\"\u003e吉本隆明\u003c/a\u003e\n\n\u003cli\u003e2017-12-20:\n\u003ca target=\"_blank\" href=\"/dic/json5/\"\u003eJSON5\u003c/a\u003e\n\n\u003cli\u003e2017-12-20:\n\u003ca target=\"_blank\" href=\"/dic/mother2/\"\u003eMOTHER2\u003c/a\u003e\n\n\u003cli\u003e2017-12-20:\n\u003ca target=\"_blank\" href=\"/dic/white-working-class/\"\u003eアメリカを動かす『ホワイト・ワーキング・クラス』という人々\u003c/a\u003e\n\n\u003cli\u003e2017-12-20:\n\u003ca target=\"_blank\" href=\"/dic/data-compression/\"\u003eデータ圧縮\u003c/a\u003e\n\n\u003cli\u003e2017-12-20:\n\u003ca target=\"_blank\" href=\"/dic/degassing/\"\u003eガス抜き\u003c/a\u003e\n\n\u003cli\u003e2017-12-20:\n\u003ca target=\"_blank\" href=\"/dic/nendore-nandore/\"\u003eねんどれナンドレラッツの跡じまん\u003c/a\u003e\n\n\u003cli\u003e2017-12-20:\n\u003ca target=\"_blank\" href=\"/dic/edokko/\"\u003e江戸っ子\u003c/a\u003e\n\n\u003cli\u003e2017-12-20:\n\u003ca target=\"_blank\" href=\"/dic/juso/\"\u003e十三\u003c/a\u003e\n\n\u003cli\u003e2017-12-20:\n\u003ca target=\"_blank\" href=\"/dic/tokyoite/\"\u003e東京人\u003c/a\u003e\n\n\u003cli\u003e2017-12-20:\n\u003ca target=\"_blank\" href=\"/dic/degradation/\"\u003e劣化なんとか\u003c/a\u003e\n\n\u003cli\u003e2017-12-21:\n\u003ca target=\"_blank\" href=\"/dic/small-government/\"\u003e小さな政府\u003c/a\u003e\n\n\u003cli\u003e2017-12-21:\n\u003ca target=\"_blank\" href=\"/dic/artificial-sweeteners/\"\u003e人工甘味料\u003c/a\u003e\n\n\u003cli\u003e2017-12-21:\n\u003ca target=\"_blank\" href=\"/dic/reprivatization/\"\u003e再民間化\u003c/a\u003e\n\n\u003cli\u003e2017-12-23:\n\u003ca target=\"_blank\" href=\"/dic/hatahata/\"\u003eハタハタ\u003c/a\u003e\n\n\u003cli\u003e2017-12-23:\n\u003ca target=\"_blank\" href=\"/dic/ipo-goal/\"\u003e上場ゴール\u003c/a\u003e\n\n\u003cli\u003e2017-12-23:\n\u003ca target=\"_blank\" href=\"/dic/daicho-kensa/\"\u003e大腸検査\u003c/a\u003e\n\n\u003cli\u003e2017-12-23:\n\u003ca target=\"_blank\" href=\"/dic/underestimate/\"\u003e過小評価\u003c/a\u003e\n\n\u003cli\u003e2017-12-25:\n\u003ca target=\"_blank\" href=\"/dic/enjoh/\"\u003e炎上\u003c/a\u003e\n\n\u003cli\u003e2017-12-25:\n\u003ca target=\"_blank\" href=\"/dic/crane-game/\"\u003eクレーンゲーム\u003c/a\u003e\n\n\u003cli\u003e2017-12-26:\n\u003ca target=\"_blank\" href=\"/dic/stack/\"\u003eスタック\u003c/a\u003e\n\n\u003cli\u003e2017-12-26:\n\u003ca target=\"_blank\" href=\"/dic/evangelion/\"\u003e新世紀エヴァンゲリオン\u003c/a\u003e\n\n\u003cli\u003e2017-12-27:\n\u003ca target=\"_blank\" href=\"/dic/shellscript/\"\u003eシェルスクリプト\u003c/a\u003e\n\n\u003cli\u003e2017-12-27:\n\u003ca target=\"_blank\" href=\"/dic/nengan-no-ice-sword/\"\u003eねんがんの アイスソードをてにいれたぞ!\u003c/a\u003e\n\n\u003cli\u003e2017-12-27:\n\u003ca target=\"_blank\" href=\"/dic/information-literacy/\"\u003e情報リテラシー\u003c/a\u003e\n\n\u003cli\u003e2017-12-27:\n\u003ca target=\"_blank\" href=\"/dic/rosanjin/\"\u003e北大路魯山人\u003c/a\u003e\n\n\u003cli\u003e2017-12-27:\n\u003ca target=\"_blank\" href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003e\n\n\u003cli\u003e2017-12-28:\n\u003ca target=\"_blank\" href=\"/dic/idempotence/\"\u003e冪等性\u003c/a\u003e\n\n\u003cli\u003e2017-12-29:\n\u003ca target=\"_blank\" href=\"/dic/patient-registration-card/\"\u003e診察券\u003c/a\u003e\n\n\u003cli\u003e2017-12-31:\n\u003ca target=\"_blank\" href=\"/dic/toyoko-inn/\"\u003e東横イン\u003c/a\u003e\n\n\u003cli\u003e2017-12-31:\n\u003ca target=\"_blank\" href=\"/dic/markdown/\"\u003eMarkdown\u003c/a\u003e\n\n\u003cli\u003e2018-01-01:\n\u003ca target=\"_blank\" href=\"/dic/ius/\"\u003eIUS\u003c/a\u003e\n\n\u003cli\u003e2018-01-01:\n\u003ca target=\"_blank\" href=\"/dic/mii/\"\u003eMii\u003c/a\u003e\n\n\u003cli\u003e2018-01-01:\n\u003ca target=\"_blank\" href=\"/dic/indiancurry/\"\u003eインデアンカレー\u003c/a\u003e\n\n\u003cli\u003e2018-01-01:\n\u003ca target=\"_blank\" href=\"/dic/scandal/\"\u003e不祥事\u003c/a\u003e\n\n\u003cli\u003e2018-01-01:\n\u003ca target=\"_blank\" href=\"/dic/ana/\"\u003eANA\u003c/a\u003e\n\n\u003cli\u003e2018-01-02:\n\u003ca target=\"_blank\" href=\"/dic/programming/\"\u003eプログラミング\u003c/a\u003e\n\n\u003cli\u003e2018-01-02:\n\u003ca target=\"_blank\" href=\"/dic/anonymous-function/\"\u003e無名関数\u003c/a\u003e\n\n\u003cli\u003e2018-01-02:\n\u003ca target=\"_blank\" href=\"/dic/mp/\"\u003eMP\u003c/a\u003e\n\n\u003cli\u003e2018-01-03:\n\u003ca target=\"_blank\" href=\"/dic/html/\"\u003eHTML\u003c/a\u003e\n\n\u003cli\u003e2018-01-03:\n\u003ca target=\"_blank\" href=\"/dic/nofollow/\"\u003enofollow\u003c/a\u003e\n\n\u003cli\u003e2018-01-03:\n\u003ca target=\"_blank\" href=\"/dic/bisection-method/\"\u003e二等分法\u003c/a\u003e\n\n\u003cli\u003e2018-01-03:\n\u003ca target=\"_blank\" href=\"/dic/first-they-came/\"\u003e彼らが最初共産主義者を攻撃したとき\u003c/a\u003e\n\n\u003cli\u003e2018-01-03:\n\u003ca target=\"_blank\" href=\"/dic/ibm/\"\u003eIBM\u003c/a\u003e\n\n\u003cli\u003e2018-01-03:\n\u003ca target=\"_blank\" href=\"/dic/ansible/\"\u003eAnsible\u003c/a\u003e\n\n\u003cli\u003e2018-01-05:\n\u003ca target=\"_blank\" href=\"/dic/html-a/\"\u003ea要素\u003c/a\u003e\n\n\u003cli\u003e2018-01-05:\n\u003ca target=\"_blank\" href=\"/dic/xulcalc/\"\u003eXUL電卓\u003c/a\u003e\n\n\u003cli\u003e2018-01-05:\n\u003ca target=\"_blank\" href=\"/dic/mozilla-gr-jp/\"\u003eもじら組\u003c/a\u003e\n\n\u003cli\u003e2018-01-06:\n\u003ca target=\"_blank\" href=\"/dic/zelda-kamitora/\"\u003eゼルダの伝説 神々のトライフォース\u003c/a\u003e\n\n\u003cli\u003e2018-01-06:\n\u003ca target=\"_blank\" href=\"/dic/lex-in-the-brain/\"\u003e脳内lex\u003c/a\u003e\n\n\u003cli\u003e2018-01-06:\n\u003ca target=\"_blank\" href=\"/dic/gacha/\"\u003eガチャ\u003c/a\u003e\n\n\u003cli\u003e2018-01-06:\n\u003ca target=\"_blank\" href=\"/dic/cache-busting/\"\u003eCache Busting\u003c/a\u003e\n\n\u003cli\u003e2018-01-06:\n\u003ca target=\"_blank\" href=\"/dic/dq10/\"\u003eドラゴンクエストX 目覚めし五つの種族 オンライン\u003c/a\u003e\n\n\u003cli\u003e2018-01-06:\n\u003ca target=\"_blank\" href=\"/dic/kotlin/\"\u003eKotlin\u003c/a\u003e\n\n\u003cli\u003e2018-01-06:\n\u003ca target=\"_blank\" href=\"/dic/zelda-botw/\"\u003eゼルダの伝説 ブレス オブ ザ ワイルド\u003c/a\u003e\n\n\u003cli\u003e2018-01-06:\n\u003ca target=\"_blank\" href=\"/dic/ruby/\"\u003eRuby\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/esa/\"\u003eesa\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/jax-rs/\"\u003eJAX-RS\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/wikipedia/\"\u003eWikipedia\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/nomikai/\"\u003e飲み会\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/self-catering/\"\u003e自炊\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/ohsho/\"\u003e王将\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/taikyokukan/\"\u003e大局観\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/learning-highway/\"\u003e学習の高速道路\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/backblaze/\"\u003eBackblaze\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/genius/\"\u003e天才\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/jmockit/\"\u003eJMockit\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/static-architecture/\"\u003e静的アーキテクチャ\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/smalltalk/\"\u003eSmalltalk\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/jenkins/\"\u003eJenkins\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/inspec/\"\u003eInSpec\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/yoshiharu-habu/\"\u003e羽生善治\u003c/a\u003e\n\n\u003cli\u003e2018-01-07:\n\u003ca target=\"_blank\" href=\"/dic/yonenaga-kunio/\"\u003e米長邦雄永世棋聖\u003c/a\u003e\n\n\u003cli\u003e2018-01-08:\n\u003ca target=\"_blank\" href=\"/dic/referer/\"\u003eReferer\u003c/a\u003e\n\n\u003cli\u003e2018-01-08:\n\u003ca target=\"_blank\" href=\"/dic/online-storage/\"\u003eオンラインストレージ\u003c/a\u003e\n\n\u003cli\u003e2018-01-08:\n\u003ca target=\"_blank\" href=\"/dic/linux/\"\u003eLinux\u003c/a\u003e\n\n\u003cli\u003e2018-01-09:\n\u003ca target=\"_blank\" href=\"/dic/html5/\"\u003eHTML5\u003c/a\u003e\n\n\u003cli\u003e2018-01-09:\n\u003ca target=\"_blank\" href=\"/dic/gradle/\"\u003eGradle\u003c/a\u003e\n\n\u003cli\u003e2018-01-09:\n\u003ca target=\"_blank\" href=\"/dic/551/\"\u003e551蓬莱\u003c/a\u003e\n\n\u003cli\u003e2018-01-09:\n\u003ca target=\"_blank\" href=\"/dic/nengajo/\"\u003e年賀状\u003c/a\u003e\n\n\u003cli\u003e2018-01-09:\n\u003ca target=\"_blank\" href=\"/dic/pileup-theory/\"\u003e玉突き理論\u003c/a\u003e\n\n\u003cli\u003e2018-01-09:\n\u003ca target=\"_blank\" href=\"/dic/god-of-shogi/\"\u003e将棋の神様\u003c/a\u003e\n\n\u003cli\u003e2018-01-11:\n\u003ca target=\"_blank\" href=\"/dic/bakatter/\"\u003eバカッター\u003c/a\u003e\n\n\u003cli\u003e2018-01-12:\n\u003ca target=\"_blank\" href=\"/dic/stub/\"\u003eスタブ\u003c/a\u003e\n\n\u003cli\u003e2018-01-13:\n\u003ca target=\"_blank\" href=\"/dic/furusato-nouzei/\"\u003eふるさと納税\u003c/a\u003e\n\n\u003cli\u003e2018-01-13:\n\u003ca target=\"_blank\" href=\"/dic/motivation/\"\u003eモチベーション\u003c/a\u003e\n\n\u003cli\u003e2018-01-13:\n\u003ca target=\"_blank\" href=\"/dic/tax-return/\"\u003e確定申告\u003c/a\u003e\n\n\u003cli\u003e2018-01-15:\n\u003ca target=\"_blank\" href=\"/dic/random/\"\u003e乱数\u003c/a\u003e\n\n\u003cli\u003e2018-01-16:\n\u003ca target=\"_blank\" href=\"/dic/bootstrap/\"\u003eBootstrap\u003c/a\u003e\n\n\u003cli\u003e2018-01-16:\n\u003ca target=\"_blank\" href=\"/dic/hash/\"\u003eハッシュ\u003c/a\u003e\n\n\u003cli\u003e2018-01-16:\n\u003ca target=\"_blank\" href=\"/dic/lip-service/\"\u003eリップサービス\u003c/a\u003e\n\n\u003cli\u003e2018-01-16:\n\u003ca target=\"_blank\" href=\"/dic/sudahanp/\"\u003e須田帆布\u003c/a\u003e\n\n\u003cli\u003e2018-01-17:\n\u003ca target=\"_blank\" href=\"/dic/openjdk/\"\u003eOpenJDK\u003c/a\u003e\n\n\u003cli\u003e2018-01-17:\n\u003ca target=\"_blank\" href=\"/dic/server-side-rendering/\"\u003eサーバサイドレンダリング\u003c/a\u003e\n\n\u003cli\u003e2018-01-17:\n\u003ca target=\"_blank\" href=\"/dic/basic-income/\"\u003eベーシックインカム\u003c/a\u003e\n\n\u003cli\u003e2018-01-18:\n\u003ca target=\"_blank\" href=\"/dic/homebrew/\"\u003eHomebrew\u003c/a\u003e\n\n\u003cli\u003e2018-01-18:\n\u003ca target=\"_blank\" href=\"/dic/hugo/\"\u003eHugo\u003c/a\u003e\n\n\u003cli\u003e2018-01-19:\n\u003ca target=\"_blank\" href=\"/dic/software-design/\"\u003eSoftware Design\u003c/a\u003e\n\n\u003cli\u003e2018-01-19:\n\u003ca target=\"_blank\" href=\"/dic/osc/\"\u003eオープンソースカンファレンス\u003c/a\u003e\n\n\u003cli\u003e2018-01-19:\n\u003ca target=\"_blank\" href=\"/dic/usukifugu-yamadaya/\"\u003e料亭 山田屋\u003c/a\u003e\n\n\u003cli\u003e2018-01-19:\n\u003ca target=\"_blank\" href=\"/dic/inbox/\"\u003eインボックス\u003c/a\u003e\n\n\u003cli\u003e2018-01-20:\n\u003ca target=\"_blank\" href=\"/dic/nintendo-labo/\"\u003eNintendo Labo\u003c/a\u003e\n\n\u003cli\u003e2018-01-22:\n\u003ca target=\"_blank\" href=\"/dic/tax/\"\u003e税金\u003c/a\u003e\n\n\u003cli\u003e2018-01-23:\n\u003ca target=\"_blank\" href=\"/dic/evernote/\"\u003eEvernote\u003c/a\u003e\n\n\u003cli\u003e2018-01-24:\n\u003ca target=\"_blank\" href=\"/dic/76-generation/\"\u003eナナロク世代\u003c/a\u003e\n\n\u003cli\u003e2018-01-24:\n\u003ca target=\"_blank\" href=\"/dic/bubble-era/\"\u003eバブル時代\u003c/a\u003e\n\n\u003cli\u003e2018-01-25:\n\u003ca target=\"_blank\" href=\"/dic/nintendo-3ds/\"\u003eニンテンドー3DS\u003c/a\u003e\n\n\u003cli\u003e2018-01-26:\n\u003ca target=\"_blank\" href=\"/dic/kindle/\"\u003eKindle\u003c/a\u003e\n\n\u003cli\u003e2018-01-27:\n\u003ca target=\"_blank\" href=\"/dic/safari/\"\u003eSafari\u003c/a\u003e\n\n\u003cli\u003e2018-01-27:\n\u003ca target=\"_blank\" href=\"/dic/google-chrome/\"\u003eGoogle Chrome\u003c/a\u003e\n\n\u003cli\u003e2018-01-27:\n\u003ca target=\"_blank\" href=\"/dic/ie/\"\u003eInternet Explorer\u003c/a\u003e\n\n\u003cli\u003e2018-01-27:\n\u003ca target=\"_blank\" href=\"/dic/macos/\"\u003emacOS\u003c/a\u003e\n\n\u003cli\u003e2018-02-02:\n\u003ca target=\"_blank\" href=\"/dic/privacy/\"\u003eプライバシー\u003c/a\u003e\n\n\u003cli\u003e2018-02-03:\n\u003ca target=\"_blank\" href=\"/dic/systemd/\"\u003esystemd\u003c/a\u003e\n\n\u003cli\u003e2018-02-03:\n\u003ca target=\"_blank\" href=\"/dic/inaiinai/\"\u003eいないいないばあっ!\u003c/a\u003e\n\n\u003cli\u003e2018-02-03:\n\u003ca target=\"_blank\" href=\"/dic/engels-law/\"\u003eエンゲル係数\u003c/a\u003e\n\n\u003cli\u003e2018-02-03:\n\u003ca target=\"_blank\" href=\"/dic/otaku/\"\u003eオタク\u003c/a\u003e\n\n\u003cli\u003e2018-02-03:\n\u003ca target=\"_blank\" href=\"/dic/to-kyo-jin/\"\u003eトーキョー人\u003c/a\u003e\n\n\u003cli\u003e2018-02-04:\n\u003ca target=\"_blank\" href=\"/dic/habit-3-put-first-things-first/\"\u003e第3の習慣 最優先事項を優先する\u003c/a\u003e\n\n\u003cli\u003e2018-02-07:\n\u003ca target=\"_blank\" href=\"/dic/java.util.optional/\"\u003ejava.util.Optional\u003c/a\u003e\n\n\u003cli\u003e2018-02-07:\n\u003ca target=\"_blank\" href=\"/dic/java.time/\"\u003ejava.time\u003c/a\u003e\n\n\u003cli\u003e2018-02-13:\n\u003ca target=\"_blank\" href=\"/dic/population-density/\"\u003e人口密度\u003c/a\u003e\n\n\u003cli\u003e2018-02-16:\n\u003ca target=\"_blank\" href=\"/dic/vcs/\"\u003eバージョン管理システム\u003c/a\u003e\n\n\u003cli\u003e2018-02-16:\n\u003ca target=\"_blank\" href=\"/dic/branch/\"\u003eブランチ\u003c/a\u003e\n\n\u003cli\u003e2018-02-16:\n\u003ca target=\"_blank\" href=\"/dic/password/\"\u003eパスワード\u003c/a\u003e\n\n\u003cli\u003e2018-02-17:\n\u003ca target=\"_blank\" href=\"/dic/factory/\"\u003eファクトリ\u003c/a\u003e\n\n\u003cli\u003e2018-02-17:\n\u003ca target=\"_blank\" href=\"/dic/design-by-contract/\"\u003e契約による設計\u003c/a\u003e\n\n\u003cli\u003e2018-02-17:\n\u003ca target=\"_blank\" href=\"/dic/fear-properly/\"\u003e正当にこわがる\u003c/a\u003e\n\n\u003cli\u003e2018-02-17:\n\u003ca target=\"_blank\" href=\"/dic/standard-type/\"\u003e標準型\u003c/a\u003e\n\n\u003cli\u003e2018-02-18:\n\u003ca target=\"_blank\" href=\"/dic/mit-license/\"\u003eMITライセンス\u003c/a\u003e\n\n\u003cli\u003e2018-02-20:\n\u003ca target=\"_blank\" href=\"/dic/twitter/\"\u003eTwitter\u003c/a\u003e\n\n\u003cli\u003e2018-02-28:\n\u003ca target=\"_blank\" href=\"/dic/ec2-instance-store/\"\u003eAmazon EC2 インスタンスストア\u003c/a\u003e\n\n\u003cli\u003e2018-03-03:\n\u003ca target=\"_blank\" href=\"/dic/moshi/\"\u003eMoshi\u003c/a\u003e\n\n\u003cli\u003e2018-03-04:\n\u003ca target=\"_blank\" href=\"/dic/bicycle/\"\u003e自転車\u003c/a\u003e\n\n\u003cli\u003e2018-03-04:\n\u003ca target=\"_blank\" href=\"/dic/7-year-cycle/\"\u003e7年周期説\u003c/a\u003e\n\n\u003cli\u003e2018-03-04:\n\u003ca target=\"_blank\" href=\"/dic/maven/\"\u003eMaven\u003c/a\u003e\n\n\u003cli\u003e2018-03-08:\n\u003ca target=\"_blank\" href=\"/dic/effective-java/\"\u003eEffective Java\u003c/a\u003e\n\n\u003cli\u003e2018-03-14:\n\u003ca target=\"_blank\" href=\"/dic/system-development/\"\u003eシステム開発\u003c/a\u003e\n\n\u003cli\u003e2018-03-14:\n\u003ca target=\"_blank\" href=\"/dic/builder/\"\u003eBuilderパターン\u003c/a\u003e\n\n\u003cli\u003e2018-03-15:\n\u003ca target=\"_blank\" href=\"/dic/amazon-linux/\"\u003eAmazon Linux\u003c/a\u003e\n\n\u003cli\u003e2018-03-15:\n\u003ca target=\"_blank\" href=\"/dic/rds/\"\u003eAmazon RDS\u003c/a\u003e\n\n\u003cli\u003e2018-03-23:\n\u003ca target=\"_blank\" href=\"/dic/apache/\"\u003eApache HTTP Server\u003c/a\u003e\n\n\u003cli\u003e2018-03-25:\n\u003ca target=\"_blank\" href=\"/dic/soft-delete/\"\u003e論理削除\u003c/a\u003e\n\n\u003cli\u003e2018-03-27:\n\u003ca target=\"_blank\" href=\"/dic/cloudwatch/\"\u003eCloudWatch\u003c/a\u003e\n\n\u003cli\u003e2018-03-28:\n\u003ca target=\"_blank\" href=\"/dic/general-purpose/\"\u003e汎用\u003c/a\u003e\n\n\u003cli\u003e2018-04-04:\n\u003ca target=\"_blank\" href=\"/dic/yoda-notation/\"\u003eヨーダ記法\u003c/a\u003e\n\n\u003cli\u003e2018-04-05:\n\u003ca target=\"_blank\" href=\"/dic/mac/\"\u003eMac\u003c/a\u003e\n\n\u003cli\u003e2018-04-08:\n\u003ca target=\"_blank\" href=\"/dic/netlify/\"\u003eNetlify\u003c/a\u003e\n\n\u003cli\u003e2018-04-08:\n\u003ca target=\"_blank\" href=\"/dic/nosql/\"\u003eNoSQL\u003c/a\u003e\n\n\u003cli\u003e2018-04-08:\n\u003ca target=\"_blank\" href=\"/dic/usb-type-c/\"\u003eUSB Type-C\u003c/a\u003e\n\n\u003cli\u003e2018-04-10:\n\u003ca target=\"_blank\" href=\"/dic/bluetooth/\"\u003eBluetooth\u003c/a\u003e\n\n\u003cli\u003e2018-04-11:\n\u003ca target=\"_blank\" href=\"/dic/qi/\"\u003eQi\u003c/a\u003e\n\n\u003cli\u003e2018-04-11:\n\u003ca target=\"_blank\" href=\"/dic/what-shall-i-do-with-myself/\"\u003e自分を使って何をしたいか\u003c/a\u003e\n\n\u003cli\u003e2018-04-12:\n\u003ca target=\"_blank\" href=\"/dic/apple-pencil/\"\u003eApple Pencil\u003c/a\u003e\n\n\u003cli\u003e2018-04-13:\n\u003ca target=\"_blank\" href=\"/dic/windows/\"\u003eWindows\u003c/a\u003e\n\n\u003cli\u003e2018-04-15:\n\u003ca target=\"_blank\" href=\"/dic/route53/\"\u003eAmazon Route 53\u003c/a\u003e\n\n\u003cli\u003e2018-04-15:\n\u003ca target=\"_blank\" href=\"/dic/s3/\"\u003eAmazon S3\u003c/a\u003e\n\n\u003cli\u003e2018-04-17:\n\u003ca target=\"_blank\" href=\"/dic/sql-injection/\"\u003eSQLインジェクション\u003c/a\u003e\n\n\u003cli\u003e2018-04-17:\n\u003ca target=\"_blank\" href=\"/dic/troubleshooting/\"\u003eトラブルシューティング\u003c/a\u003e\n\n\u003cli\u003e2018-04-17:\n\u003ca target=\"_blank\" href=\"/dic/security/\"\u003eセキュリティ\u003c/a\u003e\n\n\u003cli\u003e2018-04-19:\n\u003ca target=\"_blank\" href=\"/dic/iot/\"\u003eIoT\u003c/a\u003e\n\n\u003cli\u003e2018-04-20:\n\u003ca target=\"_blank\" href=\"/dic/automatic-ticket-gate/\"\u003e自動改札機\u003c/a\u003e\n\n\u003cli\u003e2018-04-20:\n\u003ca target=\"_blank\" href=\"/dic/diary/\"\u003e日記\u003c/a\u003e\n\n\u003cli\u003e2018-04-21:\n\u003ca target=\"_blank\" href=\"/dic/iac/\"\u003eInfrastructure as Code(IaC)\u003c/a\u003e\n\n\u003cli\u003e2018-04-22:\n\u003ca target=\"_blank\" href=\"/dic/idea/\"\u003eアイデア\u003c/a\u003e\n\n\u003cli\u003e2018-04-22:\n\u003ca target=\"_blank\" href=\"/dic/fortune/\"\u003e運\u003c/a\u003e\n\n\u003cli\u003e2018-04-22:\n\u003ca target=\"_blank\" href=\"/dic/paradox/\"\u003e逆説\u003c/a\u003e\n\n\u003cli\u003e2018-04-22:\n\u003ca target=\"_blank\" href=\"/dic/job-offer-cancellation/\"\u003e内定取消\u003c/a\u003e\n\n\u003cli\u003e2018-04-23:\n\u003ca target=\"_blank\" href=\"/dic/tarot3/\"\u003eたろっとさん\u003c/a\u003e\n\n\u003cli\u003e2018-04-23:\n\u003ca target=\"_blank\" href=\"/dic/splatoon/\"\u003eSplatoon\u003c/a\u003e\n\n\u003cli\u003e2018-04-24:\n\u003ca target=\"_blank\" href=\"/dic/freedom/\"\u003e自由\u003c/a\u003e\n\n\u003cli\u003e2018-04-24:\n\u003ca target=\"_blank\" href=\"/dic/web-in-japan-is-disappointment/\"\u003e日本のWebは残念\u003c/a\u003e\n\n\u003cli\u003e2018-04-25:\n\u003ca target=\"_blank\" href=\"/dic/encoding/\"\u003eエンコーディング\u003c/a\u003e\n\n\u003cli\u003e2018-04-27:\n\u003ca target=\"_blank\" href=\"/dic/kariju/\"\u003eカリッジュ\u003c/a\u003e\n\n\u003cli\u003e2018-04-27:\n\u003ca target=\"_blank\" href=\"/dic/commitment/\"\u003eコミットメント\u003c/a\u003e\n\n\u003cli\u003e2018-04-27:\n\u003ca target=\"_blank\" href=\"/dic/no-news/\"\u003eニュース嫌い\u003c/a\u003e\n\n\u003cli\u003e2018-04-27:\n\u003ca target=\"_blank\" href=\"/dic/chicken/\"\u003e鶏肉\u003c/a\u003e\n\n\u003cli\u003e2018-04-27:\n\u003ca target=\"_blank\" href=\"/dic/task-management/\"\u003eタスク管理\u003c/a\u003e\n\n\u003cli\u003e2018-04-28:\n\u003ca target=\"_blank\" href=\"/dic/concentric-plug/\"\u003eコンセント\u003c/a\u003e\n\n\u003cli\u003e2018-04-28:\n\u003ca target=\"_blank\" href=\"/dic/negation-is-the-basis/\"\u003e否定こそが綱領\u003c/a\u003e\n\n\u003cli\u003e2018-04-29:\n\u003ca target=\"_blank\" href=\"/dic/refactoring/\"\u003eリファクタリング\u003c/a\u003e\n\n\u003cli\u003e2018-04-30:\n\u003ca target=\"_blank\" href=\"/dic/machine-learning/\"\u003e機械学習\u003c/a\u003e\n\n\u003cli\u003e2018-04-30:\n\u003ca target=\"_blank\" href=\"/dic/census/\"\u003e国勢調査\u003c/a\u003e\n\n\u003cli\u003e2018-04-30:\n\u003ca target=\"_blank\" href=\"/dic/sakanouenokumo/\"\u003e坂の上の雲\u003c/a\u003e\n\n\u003cli\u003e2018-04-30:\n\u003ca target=\"_blank\" href=\"/dic/collapse/\"\u003e崩壊\u003c/a\u003e\n\n\u003cli\u003e2018-04-30:\n\u003ca target=\"_blank\" href=\"/dic/osaka-airport/\"\u003e大阪国際空港(伊丹空港)\u003c/a\u003e\n\n\u003cli\u003e2018-05-01:\n\u003ca target=\"_blank\" href=\"/dic/inheritance/\"\u003e継承(プログラミング)\u003c/a\u003e\n\n\u003cli\u003e2018-05-01:\n\u003ca target=\"_blank\" href=\"/dic/self-regulatory/\"\u003e自主規制\u003c/a\u003e\n\n\u003cli\u003e2018-05-02:\n\u003ca target=\"_blank\" href=\"/dic/relaxed/\"\u003eReLaXed\u003c/a\u003e\n\n\u003cli\u003e2018-05-03:\n\u003ca target=\"_blank\" href=\"/dic/bsd-license/\"\u003eBSDライセンス\u003c/a\u003e\n\n\u003cli\u003e2018-05-03:\n\u003ca target=\"_blank\" href=\"/dic/kiss-principle/\"\u003eKISSの原則\u003c/a\u003e\n\n\u003cli\u003e2018-05-03:\n\u003ca target=\"_blank\" href=\"/dic/death-crimson/\"\u003eデスクリムゾン\u003c/a\u003e\n\n\u003cli\u003e2018-05-04:\n\u003ca target=\"_blank\" href=\"/dic/influenza/\"\u003eインフルエンザ\u003c/a\u003e\n\n\u003cli\u003e2018-05-04:\n\u003ca target=\"_blank\" href=\"/dic/killing-time/\"\u003e暇つぶし\u003c/a\u003e\n\n\u003cli\u003e2018-05-04:\n\u003ca target=\"_blank\" href=\"/dic/sudoku/\"\u003e数独\u003c/a\u003e\n\n\u003cli\u003e2018-05-04:\n\u003ca target=\"_blank\" href=\"/dic/hobby/\"\u003e趣味\u003c/a\u003e\n\n\u003cli\u003e2018-05-04:\n\u003ca target=\"_blank\" href=\"/dic/kaze/\"\u003e風邪\u003c/a\u003e\n\n\u003cli\u003e2018-05-04:\n\u003ca target=\"_blank\" href=\"/dic/reliable-sources/\"\u003e信頼できる情報源\u003c/a\u003e\n\n\u003cli\u003e2018-05-06:\n\u003ca target=\"_blank\" href=\"/dic/banana/\"\u003eバナナ\u003c/a\u003e\n\n\u003cli\u003e2018-05-07:\n\u003ca target=\"_blank\" href=\"/dic/cross-platform/\"\u003eクロスプラットフォーム\u003c/a\u003e\n\n\u003cli\u003e2018-05-07:\n\u003ca target=\"_blank\" href=\"/dic/gvisor/\"\u003egVisor\u003c/a\u003e\n\n\u003cli\u003e2018-05-07:\n\u003ca target=\"_blank\" href=\"/dic/neo-atlas-1469/\"\u003eNeo ATLAS 1469\u003c/a\u003e\n\n\u003cli\u003e2018-05-07:\n\u003ca target=\"_blank\" href=\"/dic/npm/\"\u003enpm\u003c/a\u003e\n\n\u003cli\u003e2018-05-10:\n\u003ca target=\"_blank\" href=\"/dic/karaage/\"\u003e唐揚げ\u003c/a\u003e\n\n\u003cli\u003e2018-05-10:\n\u003ca target=\"_blank\" href=\"/dic/ipad/\"\u003eiPad\u003c/a\u003e\n\n\u003cli\u003e2018-05-11:\n\u003ca target=\"_blank\" href=\"/dic/man/\"\u003eman\u003c/a\u003e\n\n\u003cli\u003e2018-05-11:\n\u003ca target=\"_blank\" href=\"/dic/drink/\"\u003e飲み物\u003c/a\u003e\n\n\u003cli\u003e2018-05-11:\n\u003ca target=\"_blank\" href=\"/dic/memo/\"\u003eメモ\u003c/a\u003e\n\n\u003cli\u003e2018-05-12:\n\u003ca target=\"_blank\" href=\"/dic/vuepress/\"\u003eVuePress\u003c/a\u003e\n\n\u003cli\u003e2018-05-12:\n\u003ca target=\"_blank\" href=\"/dic/news/\"\u003eニュース\u003c/a\u003e\n\n\u003cli\u003e2018-05-12:\n\u003ca target=\"_blank\" href=\"/dic/openid-connect/\"\u003eOpenID Connect\u003c/a\u003e\n\n\u003cli\u003e2018-05-13:\n\u003ca target=\"_blank\" href=\"/dic/bootswatch/\"\u003eBootswatch\u003c/a\u003e\n\n\u003cli\u003e2018-05-13:\n\u003ca target=\"_blank\" href=\"/dic/web-components/\"\u003eWeb Components\u003c/a\u003e\n\n\u003cli\u003e2018-05-14:\n\u003ca target=\"_blank\" href=\"/dic/miru-sho/\"\u003e観る将\u003c/a\u003e\n\n\u003cli\u003e2018-05-14:\n\u003ca target=\"_blank\" href=\"/dic/docker/\"\u003eDocker\u003c/a\u003e\n\n\u003cli\u003e2018-05-14:\n\u003ca target=\"_blank\" href=\"/dic/letsencrypt/\"\u003eLet's Encrypt\u003c/a\u003e\n\n\u003cli\u003e2018-05-15:\n\u003ca target=\"_blank\" href=\"/dic/last-mover-advantage/\"\u003eラストムーバー・アドバンテージ\u003c/a\u003e\n\n\u003cli\u003e2018-05-16:\n\u003ca target=\"_blank\" href=\"/dic/glasses/\"\u003eメガネ\u003c/a\u003e\n\n\u003cli\u003e2018-05-17:\n\u003ca target=\"_blank\" href=\"/dic/git/\"\u003eGit\u003c/a\u003e\n\n\u003cli\u003e2018-05-18:\n\u003ca target=\"_blank\" href=\"/dic/fake-news/\"\u003eフェイクニュース\u003c/a\u003e\n\n\u003cli\u003e2018-05-18:\n\u003ca target=\"_blank\" href=\"/dic/bookmarklet/\"\u003eブックマークレット\u003c/a\u003e\n\n\u003cli\u003e2018-05-19:\n\u003ca target=\"_blank\" href=\"/dic/automation/\"\u003e自動化\u003c/a\u003e\n\n\u003cli\u003e2018-05-20:\n\u003ca target=\"_blank\" href=\"/dic/freebsd/\"\u003eFreeBSD\u003c/a\u003e\n\n\u003cli\u003e2018-05-20:\n\u003ca target=\"_blank\" href=\"/dic/pdf/\"\u003ePDF\u003c/a\u003e\n\n\u003cli\u003e2018-05-20:\n\u003ca target=\"_blank\" href=\"/dic/postscript/\"\u003ePostScript\u003c/a\u003e\n\n\u003cli\u003e2018-05-20:\n\u003ca target=\"_blank\" href=\"/dic/www/\"\u003eWWW\u003c/a\u003e\n\n\u003cli\u003e2018-05-20:\n\u003ca target=\"_blank\" href=\"/dic/okonomiyaki/\"\u003eお好み焼き\u003c/a\u003e\n\n\u003cli\u003e2018-05-20:\n\u003ca target=\"_blank\" href=\"/dic/fruit/\"\u003e果物\u003c/a\u003e\n\n\u003cli\u003e2018-05-20:\n\u003ca target=\"_blank\" href=\"/dic/i18n/\"\u003e国際化(i18n)\u003c/a\u003e\n\n\u003cli\u003e2018-05-21:\n\u003ca target=\"_blank\" href=\"/dic/copy-on-write/\"\u003eコピー・オン・ライト(Copy-on-Write)\u003c/a\u003e\n\n\u003cli\u003e2018-05-21:\n\u003ca target=\"_blank\" href=\"/dic/tsundere/\"\u003eツンデレ\u003c/a\u003e\n\n\u003cli\u003e2018-05-22:\n\u003ca target=\"_blank\" href=\"/dic/0655/\"\u003e0655\u003c/a\u003e\n\n\u003cli\u003e2018-05-22:\n\u003ca target=\"_blank\" href=\"/dic/battery/\"\u003e電池\u003c/a\u003e\n\n\u003cli\u003e2018-05-23:\n\u003ca target=\"_blank\" href=\"/dic/hyperapp/\"\u003eHyperapp\u003c/a\u003e\n\n\u003cli\u003e2018-05-23:\n\u003ca target=\"_blank\" href=\"/dic/winny/\"\u003eWinny\u003c/a\u003e\n\n\u003cli\u003e2018-05-23:\n\u003ca target=\"_blank\" href=\"/dic/tired-old-man/\"\u003eくたびれたおっさん\u003c/a\u003e\n\n\u003cli\u003e2018-05-23:\n\u003ca target=\"_blank\" href=\"/dic/mycom-basic-magazine/\"\u003eマイコンBASICマガジン\u003c/a\u003e\n\n\u003cli\u003e2018-05-23:\n\u003ca target=\"_blank\" href=\"/dic/individualization/\"\u003e個別化\u003c/a\u003e\n\n\u003cli\u003e2018-05-23:\n\u003ca target=\"_blank\" href=\"/dic/design-document/\"\u003e設計書\u003c/a\u003e\n\n\u003cli\u003e2018-05-23:\n\u003ca target=\"_blank\" href=\"/dic/inclusiveness/\"\u003e包含\u003c/a\u003e\n\n\u003cli\u003e2018-05-23:\n\u003ca target=\"_blank\" href=\"/dic/virtual-dom/\"\u003e仮想DOM\u003c/a\u003e\n\n\u003cli\u003e2018-05-23:\n\u003ca target=\"_blank\" href=\"/dic/nintendo-switch/\"\u003eNintendo Switch\u003c/a\u003e\n\n\u003cli\u003e2018-05-25:\n\u003ca target=\"_blank\" href=\"/dic/http/\"\u003eHTTP\u003c/a\u003e\n\n\u003cli\u003e2018-05-26:\n\u003ca target=\"_blank\" href=\"/dic/asakusa/\"\u003e浅草\u003c/a\u003e\n\n\u003cli\u003e2018-05-26:\n\u003ca target=\"_blank\" href=\"/dic/cite/\"\u003e引用\u003c/a\u003e\n\n\u003cli\u003e2018-05-27:\n\u003ca target=\"_blank\" href=\"/dic/bash/\"\u003eBash\u003c/a\u003e\n\n\u003cli\u003e2018-05-27:\n\u003ca target=\"_blank\" href=\"/dic/gdp/\"\u003eGDP\u003c/a\u003e\n\n\u003cli\u003e2018-05-27:\n\u003ca target=\"_blank\" href=\"/dic/w3c/\"\u003eWorld Wide Web Consortium(W3C)\u003c/a\u003e\n\n\u003cli\u003e2018-05-27:\n\u003ca target=\"_blank\" href=\"/dic/tight-financing/\"\u003e緊縮財政\u003c/a\u003e\n\n\u003cli\u003e2018-05-27:\n\u003ca target=\"_blank\" href=\"/dic/chocolate/\"\u003eチョコレート\u003c/a\u003e\n\n\u003cli\u003e2018-05-28:\n\u003ca target=\"_blank\" href=\"/dic/cplusplus/\"\u003eC++\u003c/a\u003e\n\n\u003cli\u003e2018-05-28:\n\u003ca target=\"_blank\" href=\"/dic/kita/\"\u003eKita\u003c/a\u003e\n\n\u003cli\u003e2018-05-28:\n\u003ca target=\"_blank\" href=\"/dic/qiita/\"\u003eQiita\u003c/a\u003e\n\n\u003cli\u003e2018-05-28:\n\u003ca target=\"_blank\" href=\"/dic/aa/\"\u003eアスキーアート\u003c/a\u003e\n\n\u003cli\u003e2018-05-28:\n\u003ca target=\"_blank\" href=\"/dic/extremist/\"\u003e過激派\u003c/a\u003e\n\n\u003cli\u003e2018-05-29:\n\u003ca target=\"_blank\" href=\"/dic/blueberry/\"\u003eブルーベリー\u003c/a\u003e\n\n\u003cli\u003e2018-05-29:\n\u003ca target=\"_blank\" href=\"/dic/region-availability-zone/\"\u003eリージョンとアベイラビリティゾーン\u003c/a\u003e\n\n\u003cli\u003e2018-05-29:\n\u003ca target=\"_blank\" href=\"/dic/warning/\"\u003e警告\u003c/a\u003e\n\n\u003cli\u003e2018-05-30:\n\u003ca target=\"_blank\" href=\"/dic/mixi/\"\u003emixi\u003c/a\u003e\n\n\u003cli\u003e2018-05-30:\n\u003ca target=\"_blank\" href=\"/dic/churuya-san/\"\u003eちゅるやさん\u003c/a\u003e\n\n\u003cli\u003e2018-05-30:\n\u003ca target=\"_blank\" href=\"/dic/datetime/\"\u003e日時\u003c/a\u003e\n\n\u003cli\u003e2018-05-30:\n\u003ca target=\"_blank\" href=\"/dic/routine/\"\u003eルーチン\u003c/a\u003e\n\n\u003cli\u003e2018-05-31:\n\u003ca target=\"_blank\" href=\"/dic/facebook/\"\u003eFacebook\u003c/a\u003e\n\n\u003cli\u003e2018-05-31:\n\u003ca target=\"_blank\" href=\"/dic/enemy-of-mankind/\"\u003e人類の敵\u003c/a\u003e\n\n\u003cli\u003e2018-06-01:\n\u003ca target=\"_blank\" href=\"/dic/fargate/\"\u003eAWS Fargate\u003c/a\u003e\n\n\u003cli\u003e2018-06-01:\n\u003ca target=\"_blank\" href=\"/dic/loudspeaker/\"\u003e拡声器\u003c/a\u003e\n\n\u003cli\u003e2018-06-01:\n\u003ca target=\"_blank\" href=\"/dic/ssd/\"\u003eSSD\u003c/a\u003e\n\n\u003cli\u003e2018-06-02:\n\u003ca target=\"_blank\" href=\"/dic/amazon-workspaces/\"\u003eAmazon Workspaces\u003c/a\u003e\n\n\u003cli\u003e2018-06-04:\n\u003ca target=\"_blank\" href=\"/dic/knyacki/\"\u003eニャッキ!\u003c/a\u003e\n\n\u003cli\u003e2018-06-04:\n\u003ca target=\"_blank\" href=\"/dic/statistics/\"\u003e統計\u003c/a\u003e\n\n\u003cli\u003e2018-06-04:\n\u003ca target=\"_blank\" href=\"/dic/cli/\"\u003eコマンドラインインタフェース\u003c/a\u003e\n\n\u003cli\u003e2018-06-05:\n\u003ca target=\"_blank\" href=\"/dic/annin-tofu/\"\u003e杏仁豆腐\u003c/a\u003e\n\n\u003cli\u003e2018-06-05:\n\u003ca target=\"_blank\" href=\"/dic/clean-up/\"\u003e掃除\u003c/a\u003e\n\n\u003cli\u003e2018-06-05:\n\u003ca target=\"_blank\" href=\"/dic/shogi/\"\u003e将棋\u003c/a\u003e\n\n\u003cli\u003e2018-06-06:\n\u003ca target=\"_blank\" href=\"/dic/browser-automation/\"\u003eブラウザ自動操作\u003c/a\u003e\n\n\u003cli\u003e2018-06-06:\n\u003ca target=\"_blank\" href=\"/dic/diagram/\"\u003eダイアグラム\u003c/a\u003e\n\n\u003cli\u003e2018-06-06:\n\u003ca target=\"_blank\" href=\"/dic/annual-general-meeting/\"\u003e株主総会\u003c/a\u003e\n\n\u003cli\u003e2018-06-06:\n\u003ca target=\"_blank\" href=\"/dic/github/\"\u003eGitHub\u003c/a\u003e\n\n\u003cli\u003e2018-06-07:\n\u003ca target=\"_blank\" href=\"/dic/back-to-the-mac/\"\u003eBack to the Mac\u003c/a\u003e\n\n\u003cli\u003e2018-06-07:\n\u003ca target=\"_blank\" href=\"/dic/kickstarter/\"\u003eKickstarter\u003c/a\u003e\n\n\u003cli\u003e2018-06-07:\n\u003ca target=\"_blank\" href=\"/dic/self-management/\"\u003e自己管理\u003c/a\u003e\n\n\u003cli\u003e2018-06-08:\n\u003ca target=\"_blank\" href=\"/dic/vliw/\"\u003eVLIW\u003c/a\u003e\n\n\u003cli\u003e2018-06-08:\n\u003ca target=\"_blank\" href=\"/dic/itanium/\"\u003eItanium\u003c/a\u003e\n\n\u003cli\u003e2018-06-10:\n\u003ca target=\"_blank\" href=\"/dic/smtp/\"\u003eSMTP\u003c/a\u003e\n\n\u003cli\u003e2018-06-10:\n\u003ca target=\"_blank\" href=\"/dic/json/\"\u003eJSON\u003c/a\u003e\n\n\u003cli\u003e2018-06-11:\n\u003ca target=\"_blank\" href=\"/dic/tpp/\"\u003e環太平洋パートナーシップ(TPP)\u003c/a\u003e\n\n\u003cli\u003e2018-06-11:\n\u003ca target=\"_blank\" href=\"/dic/ken-akamatsu/\"\u003e赤松健\u003c/a\u003e\n\n\u003cli\u003e2018-06-12:\n\u003ca target=\"_blank\" href=\"/dic/penrose-stairs/\"\u003eペンローズの階段\u003c/a\u003e\n\n\u003cli\u003e2018-06-12:\n\u003ca target=\"_blank\" href=\"/dic/fugouteki-programming/\"\u003e富豪的プログラミング\u003c/a\u003e\n\n\u003cli\u003e2018-06-12:\n\u003ca target=\"_blank\" href=\"/dic/premature-optimization/\"\u003e早すぎる最適化\u003c/a\u003e\n\n\u003cli\u003e2018-06-13:\n\u003ca target=\"_blank\" href=\"/dic/ldap/\"\u003eLDAP\u003c/a\u003e\n\n\u003cli\u003e2018-06-13:\n\u003ca target=\"_blank\" href=\"/dic/jakoten/\"\u003eじゃこ天\u003c/a\u003e\n\n\u003cli\u003e2018-06-14:\n\u003ca target=\"_blank\" href=\"/dic/virus-buster/\"\u003eウイルスバスター\u003c/a\u003e\n\n\u003cli\u003e2018-06-15:\n\u003ca target=\"_blank\" href=\"/dic/tokimemo-puzzle-dama/\"\u003eときめきメモリアル対戦ぱずるだま\u003c/a\u003e\n\n\u003cli\u003e2018-06-15:\n\u003ca target=\"_blank\" href=\"/dic/ferrari/\"\u003eフェラーリ\u003c/a\u003e\n\n\u003cli\u003e2018-06-15:\n\u003ca target=\"_blank\" href=\"/dic/hiroyuki-miura/\"\u003e三浦弘行\u003c/a\u003e\n\n\u003cli\u003e2018-06-16:\n\u003ca target=\"_blank\" href=\"/dic/roger-penrose/\"\u003eロジャー・ペンローズ\u003c/a\u003e\n\n\u003cli\u003e2018-06-18:\n\u003ca target=\"_blank\" href=\"/dic/scrapbox/\"\u003eScrapbox\u003c/a\u003e\n\n\u003cli\u003e2018-06-19:\n\u003ca target=\"_blank\" href=\"/dic/test/\"\u003eテスト(プログラミング)\u003c/a\u003e\n\n\u003cli\u003e2018-06-20:\n\u003ca target=\"_blank\" href=\"/dic/mahjong/\"\u003e麻雀\u003c/a\u003e\n\n\u003cli\u003e2018-06-20:\n\u003ca target=\"_blank\" href=\"/dic/value-object/\"\u003eValue Object\u003c/a\u003e\n\n\u003cli\u003e2018-06-21:\n\u003ca target=\"_blank\" href=\"/dic/ip-address/\"\u003eIPアドレス\u003c/a\u003e\n\n\u003cli\u003e2018-06-21:\n\u003ca target=\"_blank\" href=\"/dic/multipart-form-data/\"\u003emultipart/form-data\u003c/a\u003e\n\n\u003cli\u003e2018-06-21:\n\u003ca target=\"_blank\" href=\"/dic/the-omni-group/\"\u003eThe Omni Group\u003c/a\u003e\n\n\u003cli\u003e2018-06-22:\n\u003ca target=\"_blank\" href=\"/dic/punycode/\"\u003ePunycode\u003c/a\u003e\n\n\u003cli\u003e2018-06-22:\n\u003ca target=\"_blank\" href=\"/dic/unicode/\"\u003eUnicode\u003c/a\u003e\n\n\u003cli\u003e2018-06-24:\n\u003ca target=\"_blank\" href=\"/dic/immutables/\"\u003eImmutables\u003c/a\u003e\n\n\u003cli\u003e2018-06-24:\n\u003ca target=\"_blank\" href=\"/dic/beer/\"\u003eビール\u003c/a\u003e\n\n\u003cli\u003e2018-06-25:\n\u003ca target=\"_blank\" href=\"/dic/apache-license/\"\u003eApache License\u003c/a\u003e\n\n\u003cli\u003e2018-06-25:\n\u003ca target=\"_blank\" href=\"/dic/ramen/\"\u003eラーメン\u003c/a\u003e\n\n\u003cli\u003e2018-06-25:\n\u003ca target=\"_blank\" href=\"/dic/apple-watch/\"\u003eApple Watch\u003c/a\u003e\n\n\u003cli\u003e2018-06-25:\n\u003ca target=\"_blank\" href=\"/dic/kampo/\"\u003e漢方\u003c/a\u003e\n\n\u003cli\u003e2018-06-26:\n\u003ca target=\"_blank\" href=\"/dic/bdd/\"\u003e振る舞い駆動開発(BDD)\u003c/a\u003e\n\n\u003cli\u003e2018-06-27:\n\u003ca target=\"_blank\" href=\"/dic/popn/\"\u003epop'n music\u003c/a\u003e\n\n\u003cli\u003e2018-06-28:\n\u003ca target=\"_blank\" href=\"/dic/selenide/\"\u003eSelenide\u003c/a\u003e\n\n\u003cli\u003e2018-06-30:\n\u003ca target=\"_blank\" href=\"/dic/white-beer/\"\u003e白ビール\u003c/a\u003e\n\n\u003cli\u003e2018-07-01:\n\u003ca target=\"_blank\" href=\"/dic/nhk/\"\u003eNHK\u003c/a\u003e\n\n\u003cli\u003e2018-07-03:\n\u003ca target=\"_blank\" href=\"/dic/the-cathedral-and-bazaar/\"\u003e伽藍とバザール\u003c/a\u003e\n\n\u003cli\u003e2018-07-03:\n\u003ca target=\"_blank\" href=\"/dic/magic-number/\"\u003eマジックナンバー\u003c/a\u003e\n\n\u003cli\u003e2018-07-05:\n\u003ca target=\"_blank\" href=\"/dic/navidial/\"\u003eナビダイヤル\u003c/a\u003e\n\n\u003cli\u003e2018-07-05:\n\u003ca target=\"_blank\" href=\"/dic/nitori/\"\u003eニトリ\u003c/a\u003e\n\n\u003cli\u003e2018-07-06:\n\u003ca target=\"_blank\" href=\"/dic/square-inc/\"\u003eSquare\u003c/a\u003e\n\n\u003cli\u003e2018-07-06:\n\u003ca target=\"_blank\" href=\"/dic/template-method/\"\u003eTemplate Method\u003c/a\u003e\n\n\u003cli\u003e2018-07-06:\n\u003ca target=\"_blank\" href=\"/dic/font/\"\u003eフォント\u003c/a\u003e\n\n\u003cli\u003e2018-07-07:\n\u003ca target=\"_blank\" href=\"/dic/guard-clause/\"\u003eガード節\u003c/a\u003e\n\n\u003cli\u003e2018-07-11:\n\u003ca target=\"_blank\" href=\"/dic/ecss/\"\u003eEnduring CSS(ECSS)\u003c/a\u003e\n\n\u003cli\u003e2018-07-11:\n\u003ca target=\"_blank\" href=\"/dic/wine/\"\u003eワイン\u003c/a\u003e\n\n\u003cli\u003e2018-07-11:\n\u003ca target=\"_blank\" href=\"/dic/css/\"\u003eCSS\u003c/a\u003e\n\n\u003cli\u003e2018-07-12:\n\u003ca target=\"_blank\" href=\"/dic/rule-of-three/\"\u003e3度目の法則\u003c/a\u003e\n\n\u003cli\u003e2018-07-12:\n\u003ca target=\"_blank\" href=\"/dic/cola/\"\u003eコーラ\u003c/a\u003e\n\n\u003cli\u003e2018-07-13:\n\u003ca target=\"_blank\" href=\"/dic/ozu/\"\u003e大洲市\u003c/a\u003e\n\n\u003cli\u003e2018-07-14:\n\u003ca target=\"_blank\" href=\"/dic/mediator/\"\u003eMediator\u003c/a\u003e\n\n\u003cli\u003e2018-07-28:\n\u003ca target=\"_blank\" href=\"/dic/bnf/\"\u003eBNF\u003c/a\u003e\n\n\u003cli\u003e2018-07-28:\n\u003ca target=\"_blank\" href=\"/dic/tarot/\"\u003eタロット\u003c/a\u003e\n\n\u003cli\u003e2018-07-29:\n\u003ca target=\"_blank\" href=\"/dic/uri/\"\u003eURI\u003c/a\u003e\n\n\u003cli\u003e2018-08-05:\n\u003ca target=\"_blank\" href=\"/dic/tsume-shogi/\"\u003e詰将棋\u003c/a\u003e\n\n\u003cli\u003e2018-08-05:\n\u003ca target=\"_blank\" href=\"/dic/tomcat/\"\u003eApache Tomcat\u003c/a\u003e\n\n\u003cli\u003e2018-08-07:\n\u003ca target=\"_blank\" href=\"/dic/pythagora-switch/\"\u003eピタゴラスイッチ\u003c/a\u003e\n\n\u003cli\u003e2018-08-12:\n\u003ca target=\"_blank\" href=\"/dic/teratail/\"\u003eteratail\u003c/a\u003e\n\n\u003cli\u003e2018-08-12:\n\u003ca target=\"_blank\" href=\"/dic/port-number/\"\u003eポート番号\u003c/a\u003e\n\n\u003cli\u003e2018-08-13:\n\u003ca target=\"_blank\" href=\"/dic/ecmascript/\"\u003eECMAScript\u003c/a\u003e\n\n\u003cli\u003e2018-08-16:\n\u003ca target=\"_blank\" href=\"/dic/jackson/\"\u003eJackson\u003c/a\u003e\n\n\u003cli\u003e2018-08-17:\n\u003ca target=\"_blank\" href=\"/dic/gns3/\"\u003eGNS3\u003c/a\u003e\n\n\u003cli\u003e2018-08-30:\n\u003ca target=\"_blank\" href=\"/dic/dom/\"\u003eDocument Object Model(DOM)\u003c/a\u003e\n\n\u003cli\u003e2018-09-03:\n\u003ca target=\"_blank\" href=\"/dic/mail/\"\u003eメール\u003c/a\u003e\n\n\u003cli\u003e2018-09-16:\n\u003ca target=\"_blank\" href=\"/dic/poeme/\"\u003e母恵夢\u003c/a\u003e\n\n\u003cli\u003e2018-09-16:\n\u003ca target=\"_blank\" href=\"/dic/liberalism/\"\u003eリベラリズム\u003c/a\u003e\n\n\u003cli\u003e2018-09-20:\n\u003ca target=\"_blank\" href=\"/dic/java/\"\u003eJava\u003c/a\u003e\n\n\u003cli\u003e2018-09-28:\n\u003ca target=\"_blank\" href=\"/dic/obutsu-ha-syoudoku-da/\"\u003e汚物は消毒だー!\u003c/a\u003e\n\n\u003cli\u003e2018-09-28:\n\u003ca target=\"_blank\" href=\"/dic/can-you-help-the-person-who-fell-down/\"\u003e目の前で倒れている人を助けられるか\u003c/a\u003e\n\n\u003cli\u003e2018-10-04:\n\u003ca target=\"_blank\" href=\"/dic/copipe-blog/\"\u003eコピペブログ\u003c/a\u003e\n\n\u003cli\u003e2018-10-30:\n\u003ca target=\"_blank\" href=\"/dic/d/\"\u003ed\u003c/a\u003e\n\n\u003cli\u003e2018-11-21:\n\u003ca target=\"_blank\" href=\"/dic/portfolio-site/\"\u003eポートフォリオサイト\u003c/a\u003e\n\n\u003cli\u003e2018-12-06:\n\u003ca target=\"_blank\" href=\"/dic/separate-of-governance-and-execution/\"\u003e統治と実行の分離\u003c/a\u003e\n\n\u003cli\u003e2018-12-09:\n\u003ca target=\"_blank\" href=\"/dic/golang/\"\u003eGo(言語)\u003c/a\u003e\n\n\u003cli\u003e2018-12-10:\n\u003ca target=\"_blank\" href=\"/dic/elastic-ip-address/\"\u003eElastic IPアドレス\u003c/a\u003e\n\n\u003cli\u003e2018-12-13:\n\u003ca target=\"_blank\" href=\"/dic/jamstack/\"\u003eJAMstack\u003c/a\u003e\n\n\u003cli\u003e2018-12-18:\n\u003ca target=\"_blank\" href=\"/dic/legacy-system/\"\u003eレガシーシステム\u003c/a\u003e\n\n\u003cli\u003e2018-12-20:\n\u003ca target=\"_blank\" href=\"/dic/cmmi/\"\u003eCMMI\u003c/a\u003e\n\n\u003cli\u003e2018-12-20:\n\u003ca target=\"_blank\" href=\"/dic/hrt/\"\u003eHRT\u003c/a\u003e\n\n\u003cli\u003e2018-12-20:\n\u003ca target=\"_blank\" href=\"/dic/wip/\"\u003eWIP\u003c/a\u003e\n\n\u003cli\u003e2018-12-21:\n\u003ca target=\"_blank\" href=\"/dic/productivity/\"\u003e生産性\u003c/a\u003e\n\n\u003cli\u003e2019-01-10:\n\u003ca target=\"_blank\" href=\"/dic/continuous-learning/\"\u003eリカレント教育\u003c/a\u003e\n\n\u003cli\u003e2019-01-22:\n\u003ca target=\"_blank\" href=\"/dic/continuous-delivery/\"\u003e継続的デリバリー\u003c/a\u003e\n\n\u003cli\u003e2019-02-01:\n\u003ca target=\"_blank\" href=\"/dic/medical-expenses-deduction/\"\u003e医療費控除\u003c/a\u003e\n\n\u003cli\u003e2019-02-12:\n\u003ca target=\"_blank\" href=\"/dic/hope-is-not-a-strategy/\"\u003e願いは戦略でない\u003c/a\u003e\n\n\u003cli\u003e2019-02-19:\n\u003ca target=\"_blank\" href=\"/dic/browser/\"\u003eWebブラウザ\u003c/a\u003e\n\n\u003cli\u003e2019-03-11:\n\u003ca target=\"_blank\" href=\"/dic/internal-control/\"\u003e内部統制\u003c/a\u003e\n\n\u003cli\u003e2019-03-31:\n\u003ca target=\"_blank\" href=\"/dic/elastic-beanstalk/\"\u003eAWS Elastic Beanstalk\u003c/a\u003e\n\n\u003cli\u003e2019-04-01:\n\u003ca target=\"_blank\" href=\"/dic/reflection/\"\u003eリフレクション\u003c/a\u003e\n\n\u003cli\u003e2019-04-02:\n\u003ca target=\"_blank\" href=\"/dic/ruby-on-rails/\"\u003eRuby on Rails\u003c/a\u003e\n\n\u003cli\u003e2019-04-03:\n\u003ca target=\"_blank\" href=\"/dic/okr/\"\u003eOKR\u003c/a\u003e\n\n\u003cli\u003e2019-04-03:\n\u003ca target=\"_blank\" href=\"/dic/technical-dept/\"\u003e技術的負債\u003c/a\u003e\n\n\u003cli\u003e2019-04-04:\n\u003ca target=\"_blank\" href=\"/dic/amazon-aurora/\"\u003eAmazon Aurora\u003c/a\u003e\n\n\u003cli\u003e2019-04-04:\n\u003ca target=\"_blank\" href=\"/dic/team/\"\u003eチーム\u003c/a\u003e\n\n\u003cli\u003e2019-04-04:\n\u003ca target=\"_blank\" href=\"/dic/sqs/\"\u003eAmazon SQS\u003c/a\u003e\n\n\u003cli\u003e2019-04-04:\n\u003ca target=\"_blank\" href=\"/dic/rfc/\"\u003eRFC\u003c/a\u003e\n\n\u003cli\u003e2019-04-04:\n\u003ca target=\"_blank\" href=\"/dic/psychological-safety/\"\u003e心理的安全性\u003c/a\u003e\n\n\u003cli\u003e2019-04-04:\n\u003ca target=\"_blank\" href=\"/dic/api-gateway/\"\u003eAmazon API Gateway\u003c/a\u003e\n\n\u003cli\u003e2019-04-04:\n\u003ca target=\"_blank\" href=\"/dic/ecs/\"\u003eAmazon Elastic Container Service(Amazon ECS)\u003c/a\u003e\n\n\u003cli\u003e2019-04-04:\n\u003ca target=\"_blank\" href=\"/dic/example.com/\"\u003eexample.com\u003c/a\u003e\n\n\u003cli\u003e2019-04-04:\n\u003ca target=\"_blank\" href=\"/dic/aws-lambda/\"\u003eAWS Lambda\u003c/a\u003e\n\n\u003cli\u003e2019-04-04:\n\u003ca target=\"_blank\" href=\"/dic/ami/\"\u003eAmazon Machine Image(AMI)\u003c/a\u003e\n\n\u003cli\u003e2019-04-04:\n\u003ca target=\"_blank\" href=\"/dic/vpc/\"\u003eAmazon Virtual Private Cloud(VPC)\u003c/a\u003e\n\n\u003cli\u003e2019-04-04:\n\u003ca target=\"_blank\" href=\"/dic/ebs/\"\u003eAmazon EBS\u003c/a\u003e\n\n\u003cli\u003e2019-04-04:\n\u003ca target=\"_blank\" href=\"/dic/aws/\"\u003eAmazon Web Services(AWS)\u003c/a\u003e\n\n\u003cli\u003e2019-04-04:\n\u003ca target=\"_blank\" href=\"/dic/ec2/\"\u003eAmazon EC2\u003c/a\u003e\n\n\u003cli\u003e2019-04-04:\n\u003ca target=\"_blank\" href=\"/dic/goal/\"\u003e目標\u003c/a\u003e\n\n\u003cli\u003e2019-04-04:\n\u003ca target=\"_blank\" href=\"/dic/english/\"\u003e英語\u003c/a\u003e\n\n\u003cli\u003e2019-04-05:\n\u003ca target=\"_blank\" href=\"/dic/vscode/\"\u003eVisual Studio Code\u003c/a\u003e\n\n\u003cli\u003e2019-04-05:\n\u003ca target=\"_blank\" href=\"/dic/commonize/\"\u003e共通化\u003c/a\u003e\n\n\u003cli\u003e2019-04-07:\n\u003ca target=\"_blank\" href=\"/dic/national-character/\"\u003e国民性\u003c/a\u003e\n\n\u003cli\u003e2019-04-07:\n\u003ca target=\"_blank\" href=\"/dic/communication/\"\u003eコミュニケーション\u003c/a\u003e\n\n\u003cli\u003e2019-04-07:\n\u003ca target=\"_blank\" href=\"/dic/ddd/\"\u003eドメイン駆動設計\u003c/a\u003e\n\n\u003cli\u003e2019-04-08:\n\u003ca target=\"_blank\" href=\"/dic/leader/\"\u003eリーダー\u003c/a\u003e\n\n\u003cli\u003e2019-04-08:\n\u003ca target=\"_blank\" href=\"/dic/winston-churchill/\"\u003eウィンストン・チャーチル\u003c/a\u003e\n\n\u003cli\u003e2019-04-08:\n\u003ca target=\"_blank\" href=\"/dic/cash-flow/\"\u003eキャッシュフロー\u003c/a\u003e\n\n\u003cli\u003e2019-04-08:\n\u003ca target=\"_blank\" href=\"/dic/try/\"\u003e試み\u003c/a\u003e\n\n\u003cli\u003e2019-04-08:\n\u003ca target=\"_blank\" href=\"/dic/hr/\"\u003e人事\u003c/a\u003e\n\n\u003cli\u003e2019-04-08:\n\u003ca target=\"_blank\" href=\"/dic/performance-review/\"\u003e人事評価\u003c/a\u003e\n\n\u003cli\u003e2019-04-08:\n\u003ca target=\"_blank\" href=\"/dic/result/\"\u003e成果\u003c/a\u003e\n\n\u003cli\u003e2019-04-08:\n\u003ca target=\"_blank\" href=\"/dic/systematic-abandonment/\"\u003e体系的廃棄\u003c/a\u003e\n\n\u003cli\u003e2019-04-08:\n\u003ca target=\"_blank\" href=\"/dic/anonymous/\"\u003e匿名\u003c/a\u003e\n\n\u003cli\u003e2019-04-08:\n\u003ca target=\"_blank\" href=\"/dic/self-learning/\"\u003e独学\u003c/a\u003e\n\n\u003cli\u003e2019-04-08:\n\u003ca target=\"_blank\" href=\"/dic/average-life-span/\"\u003e平均寿命\u003c/a\u003e\n\n\u003cli\u003e2019-04-08:\n\u003ca target=\"_blank\" href=\"/dic/conservatism/\"\u003e保守主義\u003c/a\u003e\n\n\u003cli\u003e2019-04-08:\n\u003ca target=\"_blank\" href=\"/dic/mbo/\"\u003e目標による管理(MBO)\u003c/a\u003e\n\n\u003cli\u003e2019-04-08:\n\u003ca target=\"_blank\" href=\"/dic/tdd/\"\u003eテスト駆動開発(TDD)\u003c/a\u003e\n\n\u003cli\u003e2019-04-08:\n\u003ca target=\"_blank\" href=\"/dic/investment/\"\u003e投資\u003c/a\u003e\n\n\u003cli\u003e2019-04-08:\n\u003ca target=\"_blank\" href=\"/dic/strength/\"\u003e強み\u003c/a\u003e\n\n\u003cli\u003e2019-04-09:\n\u003ca target=\"_blank\" href=\"/dic/eiichi-shibusawa/\"\u003e渋沢栄一\u003c/a\u003e\n\n\u003cli\u003e2019-04-14:\n\u003ca target=\"_blank\" href=\"/dic/decision-making/\"\u003e意思決定\u003c/a\u003e\n\n\u003cli\u003e2019-04-16:\n\u003ca target=\"_blank\" href=\"/dic/extrapunitive/\"\u003e他責\u003c/a\u003e\n\n\u003cli\u003e2019-04-16:\n\u003ca target=\"_blank\" href=\"/dic/boss/\"\u003eボス\u003c/a\u003e\n\n\u003cli\u003e2019-04-16:\n\u003ca target=\"_blank\" href=\"/dic/kaizen/\"\u003e改善\u003c/a\u003e\n\n\u003cli\u003e2019-04-17:\n\u003ca target=\"_blank\" href=\"/dic/leadership/\"\u003eリーダーシップ\u003c/a\u003e\n\n\u003cli\u003e2019-04-29:\n\u003ca target=\"_blank\" href=\"/dic/habit/\"\u003e習慣\u003c/a\u003e\n\n\u003cli\u003e2019-04-30:\n\u003ca target=\"_blank\" href=\"/dic/yoruho/\"\u003eよるほー\u003c/a\u003e\n\n\u003cli\u003e2019-05-06:\n\u003ca target=\"_blank\" href=\"/dic/housework/\"\u003e家事\u003c/a\u003e\n\n\u003cli\u003e2019-05-06:\n\u003ca target=\"_blank\" href=\"/dic/katsujin/\"\u003e活蔘\u003c/a\u003e\n\n\u003cli\u003e2019-05-10:\n\u003ca target=\"_blank\" href=\"/dic/jetbrains/\"\u003eJetBrains\u003c/a\u003e\n\n\u003cli\u003e2019-05-13:\n\u003ca target=\"_blank\" href=\"/dic/household-accounts/\"\u003e家計簿\u003c/a\u003e\n\n\u003cli\u003e2019-05-31:\n\u003ca target=\"_blank\" href=\"/dic/django/\"\u003eDjango\u003c/a\u003e\n\n\u003cli\u003e2019-06-06:\n\u003ca target=\"_blank\" href=\"/dic/knowledge-intensive/\"\u003e知識集約型産業\u003c/a\u003e\n\n\u003cli\u003e2019-06-08:\n\u003ca target=\"_blank\" href=\"/dic/deflation/\"\u003eデフレ\u003c/a\u003e\n\n\u003cli\u003e2019-06-13:\n\u003ca target=\"_blank\" href=\"/dic/change-job/\"\u003e転職\u003c/a\u003e\n\n\u003cli\u003e2019-06-22:\n\u003ca target=\"_blank\" href=\"/dic/electronic-money/\"\u003e電子マネー\u003c/a\u003e\n\n\u003cli\u003e2019-07-01:\n\u003ca target=\"_blank\" href=\"/dic/work-on-clients-office/\"\u003e客先常駐\u003c/a\u003e\n\n\u003cli\u003e2019-07-07:\n\u003ca target=\"_blank\" href=\"/dic/sdcard/\"\u003eSDカード(microSDカードなど含む)\u003c/a\u003e\n\n\u003cli\u003e2019-07-08:\n\u003ca target=\"_blank\" href=\"/dic/gossip-site-blocker/\"\u003eゴシップサイトブロッカー\u003c/a\u003e\n\n\u003cli\u003e2019-08-18:\n\u003ca target=\"_blank\" href=\"/dic/nodejs/\"\u003eNode.js\u003c/a\u003e\n\n\u003cli\u003e2019-08-22:\n\u003ca target=\"_blank\" href=\"/dic/kamille/\"\u003eカモミール\u003c/a\u003e\n\n\u003cli\u003e2019-09-09:\n\u003ca target=\"_blank\" href=\"/dic/agile/\"\u003eアジャイル\u003c/a\u003e\n\n\u003cli\u003e2019-09-09:\n\u003ca target=\"_blank\" href=\"/dic/scrum/\"\u003eスクラム\u003c/a\u003e\n\n\u003cli\u003e2019-09-17:\n\u003ca target=\"_blank\" href=\"/dic/erai-hito/\"\u003eえらい人\u003c/a\u003e\n\n\u003cli\u003e2020-05-31:\n\u003ca target=\"_blank\" href=\"/dic/consumption-tax/\"\u003e消費税\u003c/a\u003e\n\n\u003cli\u003e2022-04-30:\n\u003ca target=\"_blank\" href=\"/dic/drucker-exercise/\"\u003eドラッカー風エクササイズ\u003c/a\u003e\n\n\u003cli\u003e2022-05-03:\n\u003ca target=\"_blank\" href=\"/dic/skill-map/\"\u003eスキルマップ\u003c/a\u003e\n\n\u003cli\u003e2022-05-03:\n\u003ca target=\"_blank\" href=\"/dic/layered-architecture/\"\u003eレイヤードアーキテクチャ\u003c/a\u003e\n\n\u003cli\u003e2022-05-03:\n\u003ca target=\"_blank\" href=\"/dic/python/\"\u003ePython\u003c/a\u003e\n\n\u003cli\u003e2022-05-03:\n\u003ca target=\"_blank\" href=\"/dic/react/\"\u003eReact\u003c/a\u003e\n\n\u003cli\u003e2022-05-03:\n\u003ca target=\"_blank\" href=\"/dic/gtd/\"\u003eGTD\u003c/a\u003e\n\n\u003cli\u003e2022-05-03:\n\u003ca target=\"_blank\" href=\"/dic/post-modern/\"\u003eポストモダン\u003c/a\u003e\n\n\u003cli\u003e2022-05-05:\n\u003ca target=\"_blank\" href=\"/dic/cqrs/\"\u003eCommand Query Responsibility Segregation(CQRS)\u003c/a\u003e\n\n\u003cli\u003e2022-05-21:\n\u003ca target=\"_blank\" href=\"/dic/3factor-app/\"\u003e3factor app\u003c/a\u003e\n\n\u003cli\u003e2022-05-21:\n\u003ca target=\"_blank\" href=\"/dic/javascript/\"\u003eJavaScript\u003c/a\u003e\n\n\u003cli\u003e2022-05-21:\n\u003ca target=\"_blank\" href=\"/dic/diversity/\"\u003e一元多様性\u003c/a\u003e\n\n\u003cli\u003e2022-05-21:\n\u003ca target=\"_blank\" href=\"/dic/pluralism/\"\u003e多元性\u003c/a\u003e\n\n\u003cli\u003e2022-08-26:\n\u003ca target=\"_blank\" href=\"/dic/has-selector/\"\u003e:has() セレクタ\u003c/a\u003e\n\n\u003c/ul\u003e\n\n"
  }, 
  {
    "title": "Anti-Pattern",
    "url": "https://www.ikemo3.com/tags/anti-pattern/",
    "contents": ""
  }, 
  {
    "title": "AWS Cloud9の初期設定",
    "url": "https://www.ikemo3.com/inverted/cloud9/initial-setting/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eAWS Cloud9の初期設定です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAWSが使えること\u003c/li\u003e\n\u003cli\u003eCloud9の基本的な使い方を理解していること\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eCloud9のセットアップ\u003c/li\u003e\n\u003cli\u003eGitの設定\u003c/li\u003e\n\u003cli\u003eGitHubへ公開鍵登録\u003c/li\u003e\n\u003cli\u003eエイリアス他設定\u003c/li\u003e\n\u003cli\u003eCodeCommitへのアクセス設定\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"1-cloud9のセットアップ\"\u003e1. Cloud9のセットアップ\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://ap-northeast-1.console.aws.amazon.com/cloud9/home/product\"\u003ehttps://ap-northeast-1.console.aws.amazon.com/cloud9/home/product\u003c/a\u003e に移動\n\u003cul\u003e\n\u003cli\u003e東京リージョンを使います(2019-04-05から有効)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCreate environment\u003c/code\u003e ボタンをクリック\u003c/li\u003e\n\u003cli\u003eNameにワークスペースの名前を入れて次へ。\u003c/li\u003e\n\u003cli\u003eオプション設定\n\u003cul\u003e\n\u003cli\u003eEnvironment type: Create a new instance for environment (EC2)\u003c/li\u003e\n\u003cli\u003eInstance type: t3.nanoを選択(無料期間切れている \u0026amp; 安いので)。無料期間内の場合はt2.microでいいと思います。\u003c/li\u003e\n\u003cli\u003ePlatform: Amazon Linux (好みでUbuntu 18.04 LTSでもOK)\u003c/li\u003e\n\u003cli\u003eCost-saving setting: 30分 (30分使ってないと自動で電源が落ちる)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e作成が完了したらしばらく待ちます。\u003c/p\u003e\n\u003ch3 id=\"2-gitの設定\"\u003e2. Gitの設定\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 名前\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit config --global user.name \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;...\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# メールアドレス\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit config --global user.email \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;...\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 日本語ファイル名をそのまま表示\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit config --global core.quotepath false\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"3-github--gitlabへ公開鍵登録\"\u003e3. GitHub / GitLabへ公開鍵登録\u003c/h3\u003e\n\u003cp\u003eまず、公開鍵を登録します。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003essh-keygen\u003c/code\u003e でキーペアを作成\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecat ~/.ssh/id_rsa.pub\u003c/code\u003e の内容をGitHub / GitLabに登録\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"4-nodejsアップデート\"\u003e4. Node.jsアップデート\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://nodejs.org/ja/download/\"\u003ehttps://nodejs.org/ja/download/\u003c/a\u003e を参照して、推奨版を入れること。\u003c/p\u003e\n\u003cp\u003e参考: \u003ca href=\"https://qiita.com/memorow/items/932548e41bddcda1f62a\"\u003ecloud9 (node)でnode.jsとnpmを最新にする - Qiita\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003envm install v10.15.3\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003envm alias default v10.15.3\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm update -g npm\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"5-エイリアス設定openコマンド\"\u003e5. エイリアス設定(openコマンド)\u003c/h3\u003e\n\u003cp\u003eCloud9のツールをインストールして、macOSのopenコマンドのように\n\u003ccode\u003eopen ファイル名\u003c/code\u003e で開けるようにします。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003enpm install -g c9\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~/.bashrc\u003c/code\u003e を開いて、18行目あたりに \u003ccode\u003ealias open='c9 open'\u003c/code\u003e という設定を追加\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e新規ターミナルより有効になります。\u003c/p\u003e\n\u003ch3 id=\"6-デフォルトエディタをvimに変更\"\u003e6. デフォルトエディタをvimに変更\u003c/h3\u003e\n\u003cp\u003eデフォルトだとnanoですが、慣れていないのでvimに変更します。\u003c/p\u003e\n\u003cp\u003e~/.bashrc を開いて、23行目あたりを以下のように変更してください。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e変更前: \u003ccode\u003egit config --global core.editor /usr/bin/nano\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e変更後: \u003ccode\u003egit config --global core.editor /usr/bin/vim\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"7-codecommitへのアクセス設定\"\u003e7. CodeCommitへのアクセス設定\u003c/h3\u003e\n\u003cp\u003eこの記事のステップ2の作業が必要です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/setting-up-ide-c9.html\"\u003eAWS Cloud9 と CodeCommit を統合する - CodeCommit\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e実際に必要なのは以下の2つのコマンドです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit config --global credential.helper \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;!aws codecommit credential-helper $@\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit config --global credential.UseHttpPath true\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Cloud9",
    "url": "https://www.ikemo3.com/tags/cloud9/",
    "contents": ""
  }, 
  {
    "title": "Microsoft",
    "url": "https://www.ikemo3.com/tags/microsoft/",
    "contents": ""
  }, 
  {
    "title": "Oss",
    "url": "https://www.ikemo3.com/tags/oss/",
    "contents": ""
  }, 
  {
    "title": "Visual Studio Code",
    "url": "https://www.ikemo3.com/dic/vscode/",
    "contents": "\u003ch2 id=\"visual-studio-codeとは\"\u003eVisual Studio Codeとは\u003c/h2\u003e\n\u003cp\u003eMicrosoftを中心に開発されている、オープンソースのエディタです。\u003c/p\u003e\n\u003cp\u003e正確には製品としてのVisual Studio Codeと、GitHubのvscodeはライセンスが違うようですが、\nGoogle ChromeとChromiumの関係と同様らしいです。\nまあ、普通に使う人は意識しなくて良さそうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://code.visualstudio.com/docs/supporting/faq#_licensing\"\u003eVisual Studio Code Frequently Asked Questions\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/vscode/issues/60#issuecomment-161792005\"\u003eMenu license links to non Open Source license · Issue #60 · Microsoft/vscode\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIDEかどうかも微妙なところですが、かなり高機能なのでIDEタグをつけておきます。\u003c/p\u003e\n"
  }, 
  {
    "title": "Visual Studio Code",
    "url": "https://www.ikemo3.com/manual/vscode/",
    "contents": "\u003ch2 id=\"よく使うコマンド\"\u003eよく使うコマンド\u003c/h2\u003e\n\u003cp\u003eMac準拠です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCmd + P: ファイル名を検索して開く\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e?\u003c/code\u003e: ヘルプ\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026gt;\u003c/code\u003e: コマンドパレットを開く\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@\u003c/code\u003e: シンボル(見出しなど)に移動\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e#\u003c/code\u003e: シンボル(見出しなど)を検索\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eCmd + Shift + F: ファイルの中身を検索\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"プラグイン\"\u003eプラグイン\u003c/h2\u003e\n\u003cp\u003e使ってみたものを適当に並べてみます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DavidAnson/vscode-markdownlint\"\u003evscode-markdownlint\u003c/a\u003e: MarkdownのLint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redhat-developer/vscode-yaml\"\u003evscode-yaml\u003c/a\u003e: YAMLのLint\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "アジャイル",
    "url": "https://www.ikemo3.com/dic/agile/",
    "contents": "\u003ch2 id=\"アジャイルとは\"\u003eアジャイルとは\u003c/h2\u003e\n\u003cp\u003e機敏なことです。\nここでは主にアジャイルな開発について書く予定です。\u003c/p\u003e\n\u003ch2 id=\"アジャイルソフトウェア開発宣言を見て感じたこと\"\u003eアジャイルソフトウェア開発宣言を見て感じたこと\u003c/h2\u003e\n\u003cp\u003eいろいろ書かれていますが、一番大きいのは「信頼を前提」だと思います。\n日本IBMのときにいろいろ嫌なことがあったのですが、\nあのときは「不信を前提」として動いていたのが一番つらかったです。\u003c/p\u003e\n\u003ch2 id=\"アジャイル開発野戦築城\"\u003eアジャイル開発＝野戦築城\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/hibikikudo/items/7a31c7e8bc5b71d585c5\"\u003eアジャイル開発に関する質疑応答 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eQ. アジャイル開発を築城に例えると\nA. アジャイル開発を城造りに例えることは可能だが、誤解してはいけない点がある。\n「初週に石垣を作って、2週目に二の丸を作って、3週目に天守閣を作って姫路城のような立派なお城を建てる」というプロジェクトの進め方はアジャイルではない。\nアジャイルは「初週に柵を立てて最低限の防御力（MVP）を確保し、2週目には壕を作り、\n3週目には曲輪を広げ徐々に防御力を高めていく」ような野戦築城に例えられるだろう。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e2018年にドラゴンクエストビルダーズやってたのですが、そんな感じが体験できます。\nまず簡単な土壁で寝るところを作って、それから石壁にして、罠を付けていく。\u003c/p\u003e\n\u003ch2 id=\"lesslarge-scale-scrummixiの例\"\u003eLeSS(Large-Scale Scrum)、mixiの例\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://kakkablog.hatenadiary.jp/entry/2019/04/05/085657\"\u003e組織の拡大に伴うアジャイルなプロダクト組織構築 - KAKKA is not 閣下\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eLarge-Scale Scrumという考え方(知りませんでした)や、feature teamの方がいい、\nそして成功例としてmixiの組織改編と面白い記事です。\u003c/p\u003e\n\u003ch2 id=\"スクラムかカンバンか\"\u003eスクラムかカンバンか\u003c/h2\u003e\n\u003cp\u003eアジャイルソフトェア開発で広く使われる手法として、スクラムとカンバンがあります。\u003c/p\u003e\n\u003cp\u003e自分の印象ですが、タスク管理で言えばこんな感じかなと。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eスクラム: GTD(レビュー重視)\u003c/li\u003e\n\u003cli\u003eカンバン: タスクシュート(流れ重視)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eあとメンバーに求められるものもやや違いますね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eスクラム: 役割を分けない(フラット)\u003c/li\u003e\n\u003cli\u003eカンバン: 役割を分ける(スペシャリスト)\u003c/li\u003e\n\u003cli\u003eただしどちらも1つだけでなく複数のことをこなせる、多能工的な人材が要求されます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eあと特徴としてはスタートです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eスクラムはチーム結成から入るので、新規プロダクト向き。\u003c/li\u003e\n\u003cli\u003eカンバンは現状から入るので、既存プロダクト向き。\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "スクラム",
    "url": "https://www.ikemo3.com/dic/scrum/",
    "contents": "\u003ch2 id=\"スクラムとは\"\u003eスクラムとは\u003c/h2\u003e\n\u003cp\u003eアジャイルソフトウェア開発で広く使われている開発手法です。\u003c/p\u003e\n\u003ch2 id=\"自分の印象\"\u003e自分の印象\u003c/h2\u003e\n\u003cp\u003eまだスクラムで開発したことはなくて、本による知識のみですが、\n自分はこの点が良くできていると思いました。\u003c/p\u003e\n\u003ch3 id=\"偉い人がいない\"\u003e「偉い人」がいない\u003c/h3\u003e\n\u003cp\u003eこれまでのプロセスは「プロジェクトマネージャー」という「偉い人」が取り仕切ることが多いです。\u003c/p\u003e\n\u003cp\u003eしかしスクラムでは「偉い人」はいないようです。\n「プロダクトオーナー」が一番近いですが、\n権限はあくまで「製品に対する責任」に限られており、開発には口出しできません。\n逆に「スクラムマスター」はチームの下支えに徹しています。\u003c/p\u003e\n\u003ch3 id=\"コミュニケーションや成長を仕組みで確保\"\u003e「コミュニケーション」や「成長」を仕組みで確保\u003c/h3\u003e\n\u003cp\u003e自分の経験上一番つらいのは「コミュニケーションが取れない」という点ですが、\n「朝会」や「振り返り」が明確に設けられています。\u003c/p\u003e\n\u003ch2 id=\"自分が読んだ本\"\u003e自分が読んだ本\u003c/h2\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00DIM66P0/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00DIM66P0.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00DIM66P0/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nアジャイル開発とスクラム 顧客・技術・経営をつなぐ協調的ソフトウェア開発マネジメント\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00J1XKB6K/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00J1XKB6K.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00J1XKB6K/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nアジャイルサムライ――達人開発者への道\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n"
  }, 
  {
    "title": "共通化",
    "url": "https://www.ikemo3.com/dic/commonize/",
    "contents": "\u003ch2 id=\"共通化とは\"\u003e共通化とは\u003c/h2\u003e\n\u003cp\u003e最も深刻なアンチパターンです。\u003c/p\u003e\n\u003ch2 id=\"アンチパターンである理由\"\u003eアンチパターンである理由\u003c/h2\u003e\n\u003cp\u003eもちろんコードのコピペは避けたほうがいいです。\nしかし、それを避けるために共通化を使うことは、もっと深刻な問題を引き起こすことが多いです。\u003c/p\u003e\n\u003cp\u003e例えば、継承を使ってスーパークラスに実装を共有するのは以下の問題があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eそのメソッドが使えないサブクラスがある場合、無駄になる。また、スーパークラスに別々の実装を作らないといけない。\u003c/li\u003e\n\u003cli\u003e実装の共有をすると、コードが追いづらくなり、保守性に悪影響がある。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eよく考えられたフレームワークを継承するのはまあ問題ないですが、\n基本的に継承はアンチパターンと言ってもいいでしょう。\nあと「ユーティリティクラス」も気をつけるべきです。\u003c/p\u003e\n\u003cp\u003eデータベースではEAVというアンチパターンがありますが、\nこれも共通化によるアンチパターンの例です。\u003c/p\u003e\n\u003ch2 id=\"代わりに作るべきもの\"\u003e代わりに作るべきもの\u003c/h2\u003e\n\u003cp\u003eオブジェクト指向ならまず取り入れるのはValue Objectですね。\nその他DDDに書いてあるようなAggregatesとかいろいろ作ると、\nユーティリティクラスを作る例はかなり少なくなります。\u003c/p\u003e\n\u003ch2 id=\"例外\"\u003e例外\u003c/h2\u003e\n\u003cp\u003e例えば以下の場合は例外だと思っています。\n(他にあったかもしれませんが)\u003c/p\u003e\n\u003ch3 id=\"本来は元のクラスに加えるべきだが言語の制限により不可能なもの\"\u003e本来は元のクラスに加えるべきだが、言語の制限により不可能なもの\u003c/h3\u003e\n\u003cp\u003e例えばJavaでStringクラスにメソッドを追加したいケースがあったとしても、これは不可能です。\nなのでこういうときは、StringUtilsみたいなクラスを作っても問題ありません。\n(「リファクタリング」にこの例の記載あり)\u003c/p\u003e\n"
  }, 
  {
    "title": "Amazon Aurora",
    "url": "https://www.ikemo3.com/dic/amazon-aurora/",
    "contents": "\u003ch2 id=\"amazon-aurora\"\u003eAmazon Aurora\u003c/h2\u003e\n\u003cp\u003eRDSで提供されているサービスです。\u003c/p\u003e\n\u003ch2 id=\"amazon-auroraのメリットとデメリット制限\"\u003eAmazon Auroraのメリットとデメリット(制限)\u003c/h2\u003e\n\u003cp\u003eその他にもいろいろありそうですが・・・\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eメリット\n\u003cul\u003e\n\u003cli\u003eパフォーマンスが高い\u003c/li\u003e\n\u003cli\u003eストレージの自動拡張\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eデメリット(制限)\n\u003cul\u003e\n\u003cli\u003e対応するDBが少ない。MySQLとPostgreSQLのみで、サポートされているバージョンも少ない。\u003c/li\u003e\n\u003cli\u003e値段が高め\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Aws",
    "url": "https://www.ikemo3.com/tags/aws/",
    "contents": ""
  }, 
  {
    "title": "Mysql",
    "url": "https://www.ikemo3.com/tags/mysql/",
    "contents": ""
  }, 
  {
    "title": "チーム",
    "url": "https://www.ikemo3.com/dic/team/",
    "contents": "\u003ch2 id=\"チームとは\"\u003eチームとは\u003c/h2\u003e\n\u003cp\u003e複数人の集まりで、互いに影響し合うことによって大きなことを成し遂げるためのものです。\u003c/p\u003e\n\u003ch2 id=\"チームとグループ\"\u003eチームとグループ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://rework.withgoogle.com/jp/guides/understanding-team-effectiveness/steps/define-team/\"\u003eGoogle re:Work - ガイド: 「効果的なチームとは何か」を知る\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれによれば、「チーム」とチームでない「ワークグループ」には以下の違いがあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eワークグループ: 相互依存性が最小限という特徴があり、組織または管理上の階層関係に基づいています。ワークグループのメンバーは、情報交換のために定期的に集まる場合があります。\u003c/li\u003e\n\u003cli\u003eチーム: メンバーは相互に強く依存しながら、特定のプロジェクトを遂行するために、作業内容を計画し、問題を解決し、意思決定を下し、進捗状況を確認します。チームのメンバーは、作業を行うために互いを必要とします。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"チームワークと馴れ合いは違う\"\u003eチームワークと馴れ合いは違う\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://medium.com/teppeinomori/%E3%83%81%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%8C%E8%8B%A6%E6%89%8B-%E3%81%A8%E3%81%84%E3%81%86%E4%BA%BA%E3%81%8C%E6%9C%AC%E5%BD%93%E3%81%AB%E8%8B%A6%E6%89%8B%E3%81%AA%E3%82%82%E3%81%AE-89e6f0eb64df\"\u003e「チームワークが苦手」という人が本当に苦手なもの。 – テッペイの森 – Medium\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "OKR",
    "url": "https://www.ikemo3.com/dic/okr/",
    "contents": "\u003ch2 id=\"okrとは\"\u003eOKRとは\u003c/h2\u003e\n\u003cp\u003e目標管理ツール。\u003c/p\u003e\n\u003ch2 id=\"mboとの関係\"\u003eMBOとの関係\u003c/h2\u003e\n\u003cp\u003e元々はMBOという\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eが考えたものがありますが、\nその運用上に問題があるため、改良されたもののようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMBOは目標が報酬と結びつくので、低い目標になりがち。なのでOKRでは明確に分離。\u003c/li\u003e\n\u003cli\u003eMBOは上司との関係で作るため、個人主義になりがち(ただしドラッカーはチームとしての働きを目標に含めよと言ってたはず)。OKRは全体に共有することを前提。\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Python",
    "url": "https://www.ikemo3.com/manual/python/",
    "contents": "\u003ch2 id=\"基本構文\"\u003e基本構文\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e演算子: \u003ca href=\"https://docs.python.org/ja/3/reference/expressions.html\"\u003e6. 式 (expression) — Python 3.7.4 ドキュメント\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e//\u003c/code\u003e: 切り捨て除算。例えば \u003ccode\u003e21 // 4 = 5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e条件式(三項演算子): \u003ca href=\"https://docs.python.org/ja/3/reference/expressions.html?highlight=%E6%9D%A1%E4%BB%B6%E5%BC%8F#conditional-expressions\"\u003e6.12. 条件式 (Conditional Expressions)\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ex if C else y\u003c/code\u003e という形式。独特で分かりづらかったけど慣れた。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"内包表記\"\u003e内包表記\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/reference/expressions.html#displays-for-lists-sets-and-dictionaries\"\u003e6.2.4. リスト、集合、辞書の表示\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eリスト: \u003ca href=\"https://docs.python.org/ja/3/tutorial/datastructures.html#list-comprehensions\"\u003e5.1.3. リストの内包表記\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[x**2 for x in range(10)]\u003c/code\u003e という形式。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"条件式内包表記の覚え方\"\u003e条件式、内包表記の覚え方\u003c/h3\u003e\n\u003cp\u003eまだ習いたてなのでこれで合っているかどうかは分からん。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e条件式: \u003ccode\u003ex if C else y\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e内包表記(リスト): \u003ccode\u003e[x**2 for x in range(10)]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e内包表記(辞書): \u003ccode\u003e{x: x**2 for x in (2, 4, 6)}\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下のような特徴があるかなと。\u003c/p\u003e\n\u003cp\u003e条件式は「一番知りたい」のがtrueのときの値でこれが左に来ている。\nRubyなら \u003ccode\u003eif C then x else y end\u003c/code\u003e となるが、\n一番知りたいxが左に来て、then, endを削除すると\u003ccode\u003ex if C else y\u003c/code\u003e になる。\u003c/p\u003e\n\u003cp\u003e内包表記(リスト)は「一番知りたい」のが各リストの計算式で、これが左に来ている。\n残りはループの条件で \u003ccode\u003efor x in range(10)\u003c/code\u003e 。これはbashやJavaScriptなどで使われる構文なので違和感はない。\n最後にリストなので \u003ccode\u003e[]\u003c/code\u003e で囲めばOK。\u003c/p\u003e\n\u003cp\u003e内包表記(辞書)は値がリストの構文と同じで、あとは辞書らしく \u003ccode\u003ex:\u003c/code\u003e でキーを指定して、全体を \u003ccode\u003e{}\u003c/code\u003e で囲む。\u003c/p\u003e\n\u003ch2 id=\"組み込み関数\"\u003e組み込み関数\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/library/functions.html#dir\"\u003edir\u003c/a\u003e: そのオブジェクトなどで定義されている名前、属性のリストを返す。\n\u003cul\u003e\n\u003cli\u003eRubyでいう \u003ccode\u003emethods\u003c/code\u003e みたいなもの。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/library/functions.html#id\"\u003eid\u003c/a\u003e: オブジェクトの識別子を返す。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/library/functions.html#repr\"\u003erepr\u003c/a\u003e: オブジェクトの文字列表現(evalして元に戻すことを想定)\n\u003cul\u003e\n\u003cli\u003eRubyでいう \u003ccode\u003einspect\u003c/code\u003e みたいなもの。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/library/functions.html?highlight=round#round\"\u003eround\u003c/a\u003e: \u003ccode\u003eround(num, i)\u003c/code\u003e で、numの小数部をi桁に丸める。\n\u003cul\u003e\n\u003cli\u003enumが0の場合は \u003ccode\u003eround(3.14, 0)\u003c/code\u003e → 3.0のようになる\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/library/functions.html#zip\"\u003ezip\u003c/a\u003e: それぞれの要素の最初から順番にとってくるiteratorを作成する。\n\u003cul\u003e\n\u003cli\u003e分かりにくいので例:\n\u003cul\u003e\n\u003cli\u003e入力: \u003ccode\u003eprint(list(zip((1, 2, 3), (4, 5, 6), (7, 8, 9))))\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e結果: \u003ccode\u003e[(1, 4, 7), (2, 5, 8), (3, 6, 9)]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"組み込み型\"\u003e組み込み型\u003c/h2\u003e\n\u003ch3 id=\"文字列型\"\u003e文字列型\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/tutorial/introduction.html#strings\"\u003e3.1.2. 文字列型 (string)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/reference/lexical_analysis.html#string-and-bytes-literals\"\u003e2.4.1. 文字列およびバイト列リテラル\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/library/stdtypes.html#text-sequence-type-str\"\u003eテキストシーケンス型 \u0026mdash; str\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePythonでの文字列の特徴\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eシングルクォート(\u003ccode\u003e'\u003c/code\u003e)とダブルクォート(\u003ccode\u003e\u0026quot;\u003c/code\u003e)で機能的な違いはない\u003c/li\u003e\n\u003cli\u003e文字列を並べると結合される\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/reference/lexical_analysis.html#string-literal-concatenation\"\u003e2.4.2. 文字列リテラルの結合 (concatenation)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E5%88%97%E7%B5%90%E5%90%88\"\u003e文字列結合\u003c/a\u003eはC, C++にある機能で、最近の言語らしくない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e文字型(char)は存在しない\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/library/functions.html#ord\"\u003eord\u003c/a\u003eで「文字 → Unicodeコードポイント」に変換可能\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/library/functions.html#chr\"\u003echr\u003c/a\u003eで「Unicodeコードポイント → 文字」に変換可能\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eフォーマット文字列\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/whatsnew/3.6.html#pep-498-formatted-string-literals\"\u003eフォーマット済み文字列リテラル\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ef'...'\u003c/code\u003e の文字列。 \u003ccode\u003e{sum}\u003c/code\u003e　のように \u003ccode\u003e{}\u003c/code\u003e で置換文字列を指定。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/library/stdtypes.html#str.format\"\u003estr.format\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e生文字列: \u003ccode\u003er'...'\u003c/code\u003e の文字列。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/library/stdtypes.html#str.replace\"\u003estr.replace\u003c/a\u003e: 文字列の置換\n\u003cul\u003e\n\u003cli\u003e引数はold, new, count(オプション)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"シーケンス型リストタプルrange\"\u003eシーケンス型(リスト、タプル、range)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/library/stdtypes.html#sequence-types-list-tuple-range\"\u003eシーケンス型 \u0026mdash; list, tuple, range\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/tutorial/datastructures.html#tuples-and-sequences\"\u003e5.3. タプルとシーケンス\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eまた、文字列もシーケンス型の一つとなっている。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/library/stdtypes.html#text-sequence-type-str\"\u003eテキストシーケンス型 \u0026mdash; str\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eリストとタプルとの違いは、リストが\u003cstrong\u003emutable\u003c/strong\u003eで、タプルが\u003cstrong\u003eimmutable\u003c/strong\u003eであること。\u003c/p\u003e\n\u003cp\u003e主なメソッド。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e末尾に追加: \u003ccode\u003elist.append(x)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e一致する\u003cstrong\u003e最初の要素\u003c/strong\u003eを削除: \u003ccode\u003elist.remove(x)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e末尾から削除: \u003ccode\u003elist.pop()\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elist.pop(i)\u003c/code\u003e のように引数指定でその位置から削除\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"アンパック\"\u003eアンパック\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/tutorial/controlflow.html#tut-unpacking-arguments\"\u003e4.7.4. 引数リストのアンパック\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e1つカッコを取る。例えば以下のようになる。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-python\" data-lang=\"python\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003efoo \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e [[\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e], [\u003cspan style=\"color:#ae81ff\"\u003e4\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e5\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e6\u003c/span\u003e], [\u003cspan style=\"color:#ae81ff\"\u003e7\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e8\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e9\u003c/span\u003e]]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eprint(foo)  \u003cspan style=\"color:#75715e\"\u003e# [[1, 2, 3], [4, 5, 6], [7, 8, 9]]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eprint(\u003cspan style=\"color:#f92672\"\u003e*\u003c/span\u003efoo)  \u003cspan style=\"color:#75715e\"\u003e# [1, 2, 3] [4, 5, 6] [7, 8, 9]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch4 id=\"スライス\"\u003eスライス\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003es[start:stop:step]\u003c/code\u003e のような形式を使うと、シーケンスの一部分だけアクセスできる。\nこれをスライスと言う。スライスの終端は含まないため、 \u003ccode\u003ea[:i] + a[i:] = a\u003c/code\u003e が成り立つ。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-python\" data-lang=\"python\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ea \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e [\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e4\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e5\u003c/span\u003e]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ea[\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e:\u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e] \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt;[2, 3]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ea[\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e:]  \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt;[2, 3, 4, 5]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ea[:\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e]  \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; [1]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ea[::\u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e] \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; [1, 3, 5]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ea[:\u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e] \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e a[\u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e:] \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; [1, 2, 3, 4, 5]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e代入もできる。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-python\" data-lang=\"python\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ea \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e [\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e4\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e5\u003c/span\u003e]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ea[\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e:\u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e] \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e [\u003cspan style=\"color:#ae81ff\"\u003e6\u003c/span\u003e]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ea \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; [1, 6, 4, 5]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e当然immutableなtupleやstrには代入できない。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-python\" data-lang=\"python\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ea \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e4\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e5\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ea[\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e:\u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e] \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e [\u003cspan style=\"color:#ae81ff\"\u003e6\u003c/span\u003e] \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; TypeError: \u0026#39;tuple\u0026#39; object does not support item assignment\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003es \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;12345\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003es[\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e:\u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e] \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;6\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; TypeError: \u0026#39;str\u0026#39; object does not support item assignment\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"辞書型\"\u003e辞書型\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/tutorial/datastructures.html#dictionaries\"\u003e5.5. 辞書型 (dictionary)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/library/stdtypes.html#mapping-types-dict\"\u003eマッピング型 \u0026mdash; dict\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePythonでの特徴\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e{'jack': 4098, 'sape': 4139}\u003c/code\u003eのように書く(JSONっぽい)\u003c/li\u003e\n\u003cli\u003eキーはほぼ任意の型が使える\u003c/li\u003e\n\u003cli\u003e値の取得: d[key]\u003c/li\u003e\n\u003cli\u003e同様に \u003ccode\u003e**\u003c/code\u003e でアンパックできる\u003c/li\u003e\n\u003cli\u003elist(d): キーのリスト(挿入順)\u003c/li\u003e\n\u003cli\u003esorted(d): キーのリスト(ソート済み)\u003c/li\u003e\n\u003cli\u003ekey in d: キーが辞書に含まれているか\u003c/li\u003e\n\u003cli\u003ekey not in d: キーが辞書に含まれていないか\u003c/li\u003e\n\u003cli\u003efor key, value in dict.items(): キーと値をループ\u003c/li\u003e\n\u003cli\u003e作成方法はリンク先参照\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"例外処理\"\u003e例外処理\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/tutorial/errors.html\"\u003e8. エラーと例外 — Python 3.7.5 ドキュメント\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/library/exceptions.html\"\u003e組み込み例外 — Python 3.7.5 ドキュメント\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eポイントは次の通り。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003etry, except, else(オプション), finally(オプション)の4つの節からなる。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eexcept (RuntimeError, TypeError, NameError):\u003c/code\u003e のようにまとめて書くことができる。\u003c/li\u003e\n\u003cli\u003e例外を変数に割り当てたいときは、 \u003ccode\u003eexcept OSError as err:\u003c/code\u003e のように書く。\u003c/li\u003e\n\u003cli\u003eraiseで例外を投げる\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"例外クラス\"\u003e例外クラス\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eルート: BaseException(JavaでのThrowable)\u003c/li\u003e\n\u003cli\u003e新しい例外の継承元: Exception(JavaでのException)\n\u003cul\u003e\n\u003cli\u003eExceptionとなっているが、例外クラス名は通常 \u003ccode\u003eError\u003c/code\u003e で終わる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"モジュール\"\u003eモジュール\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/library/sys.html#sys.argv\"\u003esys.argv\u003c/a\u003e: コマンドライン引数\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/tutorial/modules.html#the-module-search-path\"\u003esys.path\u003c/a\u003e: モジュール検索パス\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"クラス\"\u003eクラス\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/tutorial/classes.html#class-and-instance-variables\"\u003e9. クラス — Python 3.7.4 ドキュメント\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ccode\u003eclass\u003c/code\u003e の直下で変数定義をすると、クラス変数になる。\u003c/p\u003e\n\u003cp\u003eちなみに\u003ca href=\"/manual/django/\"\u003eDjango\u003c/a\u003eでクラス変数を使っても問題ないのは、Djangoが頑張って退避している模様。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/tell-k/items/616133d94fc36ad8ba97\"\u003eDjangoモデルのフィールドがクラスから消える話 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"特殊メソッド\"\u003e特殊メソッド\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3.6/reference/datamodel.html#special-method-names\"\u003e3.3. 特殊メソッド名\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e演算子オーバロードなどで使われる。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__init__\u003c/code\u003e: インスタンスの初期化\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e__repr__\u003c/code\u003e: オブジェクトを表す「公式」文字列\n\u003cul\u003e\n\u003cli\u003eRubyで言えばinspectかなぁ・・・\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e__format__\u003c/code\u003e: フォーマット文字列\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e__lt__\u003c/code\u003e, \u003ccode\u003e__le__\u003c/code\u003e, \u003ccode\u003e__eq__\u003c/code\u003e, \u003ccode\u003e__ne__\u003c/code\u003e, \u003ccode\u003e__gt__\u003c/code\u003e, \u003ccode\u003e__ge__\u003c/code\u003e, : 比較メソッド\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__ne__\u003c/code\u003e が未実装のときは \u003ccode\u003e__eq__\u003c/code\u003e を呼び出して反転する\u003c/li\u003e\n\u003cli\u003eそれ以外は個々に実装する必要があるが、面倒なときは \u003ca href=\"https://docs.python.org/ja/3.6/library/functools.html#functools.total_ordering\"\u003efunctools.total_ordering\u003c/a\u003eで簡略可能。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e__hash__\u003c/code\u003e: ハッシュ値\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e__bool__\u003c/code\u003e: ブール値\u003c/li\u003e\n\u003cli\u003ewithで使われるもの\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__enter__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ロギング\"\u003eロギング\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/howto/logging.html\"\u003eLogging HOWTO — Python 3.7.4 ドキュメント\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003elogging自体でも使えますが、以下のようにloggerを使うのが良さげ。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-python\" data-lang=\"python\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003elogger \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e logging\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003egetLogger(__name__)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"コーディング規約pep-8\"\u003eコーディング規約(PEP 8)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://legacy.python.org/dev/peps/pep-0008/\"\u003ePEP 8 \u0026ndash; Style Guide for Python Code\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pep8-ja.readthedocs.io/ja/latest/\"\u003eはじめに — pep8-ja 1.0 ドキュメント\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e気になったところから少しずつまとめていきます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eインデント: スペース4つ。タブは禁止(Python 3)\u003c/li\u003e\n\u003cli\u003e1行79文字以下\n\u003cul\u003e\n\u003cli\u003e標準ライブラリでは必須だが、実際には守られない(プロジェクトでこの条件を外す)ことが多い模様。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e関数やクラスの定義の前には改行が\u003cstrong\u003e2つ\u003c/strong\u003e必要。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"デコレータ\"\u003eデコレータ\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e@\u003c/code\u003e + デコレータ名 で修飾します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.python.org/dev/peps/pep-0318/\"\u003ePEP 318 \u0026ndash; Decorators for Functions and Methods | Python.org\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://wiki.python.org/moin/PythonDecorators\"\u003ePythonDecorators - Python Wiki\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e関数をラップしていろいろ処理を加えたりするものです。\n記号はJavaのアノテーションみたいですが、どちらかといえばAOP(アスペクト指向プログラミング)に近いですね。\u003c/p\u003e\n\u003ch2 id=\"型ヒント\"\u003e型ヒント\u003c/h2\u003e\n\u003cp\u003ePython 3.5から採用されたもの。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.python.org/ja/3/library/typing.html\"\u003etyping \u0026mdash; 型ヒントのサポート — Python 3.7.4 ドキュメント\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eだいたいこんな感じ。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e引数は \u003ccode\u003ename: str\u003c/code\u003e のような形式\u003c/li\u003e\n\u003cli\u003e関数、メソッドは \u003ccode\u003edef geeting(name: str) -\u0026gt; str\u003c/code\u003e のような形式\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e# type: int\u003c/code\u003e のようにコメントをつける方法もある。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ccode\u003etyping\u003c/code\u003e モジュールで型ヒントをサポートするサポートが追加されている。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eList: listに対応するもの(JavaではArrayListに相当?)\u003c/li\u003e\n\u003cli\u003eSequence: JavaではListに相当?\u003c/li\u003e\n\u003cli\u003eIterable\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"モック方法\"\u003eモック方法\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eクラスをモックする場合: \u003ccode\u003emock.patch(クラス名の文字列, ...)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eメソッドをモックする場合: \u003ccode\u003emock.patch.object(クラスオブジェクト, メソッド名の文字列, ...)\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"venv\"\u003evenv\u003c/h2\u003e\n\u003cp\u003e仮想環境を提供するもの。\nPython自体に組み込まれているため、Pythonのバージョンは管理できない。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/fiftystorm36/items/b2fd47cf32c7694adc2e\"\u003evenv: Python 仮想環境管理 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 環境作成。最後のvenvは環境名\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003epython -m venv venv\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# アクティベート\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e. venv/bin/activate\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# アクティベート状態から抜ける\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edeactivate \n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "rbenv",
    "url": "https://www.ikemo3.com/manual/rbenv/",
    "contents": "\u003cp\u003eOSによっては最初から入っていることもありますが、\n開発で使うならrbenvを入れるのがよいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rbenv/rbenv#command-reference\"\u003erbenv/rbenv: Groom your app’s Ruby environment\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003cp\u003emacOSの場合は以下のようにする。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ebrew install rbenv\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"初期設定\"\u003e初期設定\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erbenv init\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e.bash_profileに入れるという指示が出るので、そのとおりにする。\u003c/p\u003e\n\u003ch2 id=\"インストール可能なバージョンの表示\"\u003eインストール可能なバージョンの表示\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erbenv install -l\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"インストール-1\"\u003eインストール\u003c/h2\u003e\n\u003cp\u003e2.5.3を入れる場合は以下のようにする。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erbenv install 2.5.3\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"インストールされたバージョンの表示\"\u003eインストールされたバージョンの表示\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erbenv versions\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003cstrong\u003esystem\u003c/strong\u003eというのはデフォルトで入っているもの。\u003c/p\u003e\n\u003ch2 id=\"グローバルローカル\"\u003eグローバル・ローカル\u003c/h2\u003e\n\u003cp\u003eローカルで使用するバージョンを指定する場合は、以下のようにする。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erbenv local 2.5.3\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこのときに、カレントディレクトリに \u003ccode\u003e.ruby-version\u003c/code\u003e というファイルができる。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erbenv global 2.5.3\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこのときに、 \u003ccode\u003e~/.rbenv/version\u003c/code\u003e というファイルができる。\u003c/p\u003e\n\u003cp\u003eこのファイルはコミットしておくと良さそう。\n(例: \u003ca href=\"https://github.com/tootsuite/mastodon\"\u003eマストドン\u003c/a\u003e)\u003c/p\u003e\n"
  }, 
  {
    "title": "Ruby",
    "url": "https://www.ikemo3.com/tags/ruby/",
    "contents": ""
  }, 
  {
    "title": "Scala",
    "url": "https://www.ikemo3.com/manual/scala/",
    "contents": "\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003ch3 id=\"ide\"\u003eIDE\u003c/h3\u003e\n\u003cp\u003eIntelliJ IDEAにScalaプラグインがあります。以下の記事に説明あり。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dwango.github.io/scala_text/IDE.html\"\u003eIDE(Intellij IDEA) · Scala研修テキスト\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"sbt\"\u003esbt\u003c/h3\u003e\n\u003cp\u003eJavaにおけるMaven / Gradleに相当するビルドツール。\u003c/p\u003e\n\u003cp\u003emac(Homebrew)では \u003ccode\u003ebrew install sbt\u003c/code\u003e でインストール可能\u003c/p\u003e\n\u003ch2 id=\"buildsbt\"\u003ebuild.sbt\u003c/h2\u003e\n\u003ch3 id=\"注意点\"\u003e注意点\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eコンパイラのオプションは \u003ccode\u003escalacOptions\u003c/code\u003e で設定\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003escalaOptions\u003c/code\u003e ではない(1度間違えた)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "技術的負債",
    "url": "https://www.ikemo3.com/dic/technical-dept/",
    "contents": "\u003ch2 id=\"技術的負債とは\"\u003e技術的負債とは\u003c/h2\u003e\n\u003cp\u003eソフトウェアをやっつけ仕事で開発したときにでる問題点を、\n借金を使った例えにしたものです。\u003c/p\u003e\n\u003ch2 id=\"負債が問題なのではなく返せないのが問題\"\u003e負債が問題なのではなく、返せないのが問題\u003c/h2\u003e\n\u003cp\u003e負債自体は問題ではありません。\n例えば年率3%で銀行からお金を借りていても、\nそのお金で年率7%の利益が出る商売をしていれば問題ありません。\u003c/p\u003e\n\u003cp\u003e返済の見込みがない借金をし続けることが問題です。\u003c/p\u003e\n"
  }, 
  {
    "title": "Ansible",
    "url": "https://www.ikemo3.com/tags/ansible/",
    "contents": ""
  }, 
  {
    "title": "Ansible: tarファイルをディレクトリ指定で展開する方法",
    "url": "https://www.ikemo3.com/inverted/ansible/extract-tar-with-directory/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eAnsibleでtarファイルを展開するときに、ディレクトリを指定する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eゲストOSがLinuxの場合、すなわちGNU Tarを使うことを想定しています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e以下の2通りがあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--transform\u003c/code\u003e オプションを使う方法\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--strip-components\u003c/code\u003e オプションを使う方法\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e後者の方が良さそうです。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"--transform-オプションを使う方法\"\u003e\u003ccode\u003e--transform\u003c/code\u003e オプションを使う方法\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003etar --transform\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003es/^apache-tomcat-8.5.24/tomcat/ -xvf apache-tomcat-8.5.24.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eAnsibleの場合は以下のようになります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eunarchive\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003esrc\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eapache-tomcat-8.5.24.tar.gz\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003edest\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e/opt/tomcat/\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003eextra_opts\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;--transform=s/^apache-tomcat-8.5.24/tomcat/\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"--strip-components-オプションを使う方法\"\u003e\u003ccode\u003e--strip-components\u003c/code\u003e オプションを使う方法\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://unix.stackexchange.com/questions/346346/ansible-extract-without-first-directory\"\u003etar - ansible extract without first directory - Unix \u0026amp; Linux Stack Exchange\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eunarchive\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003esrc\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eapache-tomcat-8.5.24.tar.gz\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003edest\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e/opt/tomcat/\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003eextra_opts\u003c/span\u003e: [--\u003cspan style=\"color:#ae81ff\"\u003estrip-components=1]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこちらの場合、あらかじめディレクトリを作る必要はありますが、\nextra_optsにディレクトリを含めなくていいというメリットがあります。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Ruby on Rails",
    "url": "https://www.ikemo3.com/dic/ruby-on-rails/",
    "contents": "\u003ch2 id=\"ruby-on-railsとは\"\u003eRuby on Railsとは\u003c/h2\u003e\n\u003cp\u003eRubyで書かれたWebアプリケーションフレームワークです。\u003c/p\u003e\n\u003ch2 id=\"スタートアップ向け\"\u003eスタートアップ向け\u003c/h2\u003e\n\u003cp\u003e触ってみた感じですが、Ruby on Railsはスタートアップ向けだと思います。\nだいたいこんな感じかなと。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e「設定より規約」によって、考えないといけないことが減る。その代わり柔軟性は犠牲になる。\u003c/li\u003e\n\u003cli\u003eRailsは定番のGemが多く、枯れている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eそう感じたのはこの記事にも書かれています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://twop.agile.esm.co.jp/tdd-was-broken-by-mania-cb5a6e94b021\"\u003eマニアが潰したテスト駆動開発〜『健全なビジネスの継続的成長のためには健全なコードが必要だ』対談 （５）\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eRuby on Rails自身は疎結合の設計に対してNoを言っている。\n密結合にすることによって疎結合な設計以上の開発スピードが生まれる。\n少なくともスタートアップ企業にとってスピードは本当にクリティカルな力なので、\n\u003cstrong\u003eもし密結合の状態でも速く走れるソフトウェアの構造があるのであれば、\nそれはゆっくり安定して継続的に歩いていく疎結合のソフトウェア設計より強いということをRailsはある程度証明していた\u003c/strong\u003eわけですね。\nそしていま、その構造のまま大きくなるとすごく大変になるということも証明している。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e逆にRailsの弱みは以下の2つかなと。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRDBMSを使うことが前提になっている。\n\u003cul\u003e\n\u003cli\u003e個人開発だとRDBMSは高いので、最初からNoSQLを使える場面が増えてくるかなぁと。ただスタートアップだとそこまでは気にしなくていいかも。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eVIEWが弱い\n\u003cul\u003e\n\u003cli\u003eERBはめんどい。Reactと併用することもできるが・・・\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Tar",
    "url": "https://www.ikemo3.com/tags/tar/",
    "contents": ""
  }, 
  {
    "title": "ボス",
    "url": "https://www.ikemo3.com/dic/boss/",
    "contents": "\u003ch2 id=\"ボスとは\"\u003eボスとは\u003c/h2\u003e\n\u003cp\u003e「偉い人」のことです。\u003c/p\u003e\n\u003ch2 id=\"権限委譲\"\u003e権限委譲\u003c/h2\u003e\n\u003cp\u003eまずドラッカーは権限委譲について説きました。\u003c/p\u003e\n\u003cp\u003e経営者の条件 p59より。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e第二に、他の人間でもやれることは何かを考えることである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e権限委譲が、自らの仕事をほかの人間にやらせることを意味しているとすれば、\nそれはそもそも正しいことではない。誰もが自らなすべき仕事をするために\n報酬を払われている。あるいはまたよく説かれているように、\n何もしないエグゼクティブこそ裁量のエグゼクティブであるから権限委譲が必要であるというならば、\nそれは意味がないというだけにとどまらない。不真面目である。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e通常使われている意味での権限委譲は間違いであって人を誤らせる。\nしかし自らが行うべき仕事を委譲するのではなく、\n自らが行うべき仕事に取り組むために他の人にできることを任せることは、\n成果をあげるうえで必要なことである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"情報型組織\"\u003e情報型組織\u003c/h2\u003e\n\u003cp\u003eドラッカーは最後期の著書「ネクスト・ソサエティ」において、\n情報型組織について語っています。\np109より、\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e情報理論の第一法則によれば、あらゆる中継機が雑音を倍増しメッセージを半減させる。\n同じことが、人のマネジメントをせず事業上の意思決定もしないマネジメント階層についていえる。\nそれらの階層は情報の中継機にすぎない。したがって、そのような階層は必要ないということになる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e昔はピラミッド組織で、報酬を減らさずに昇進させて「偉い人」になることが報酬でしたが、\n今後はそれは意味ないよということです。\u003c/p\u003e\n\u003ch2 id=\"ティール組織\"\u003eティール組織\u003c/h2\u003e\n\u003cp\u003e「ティール組織」という本を読みましたが、\nその組織形態として特徴的なのが、「偉い人」を作らないということです。\u003c/p\u003e\n\u003cp\u003eティール組織における助言システムは、以下のようになってます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e意思決定の前に、関係者や専門家に助言を求める義務がある。\u003c/li\u003e\n\u003cli\u003eその助言は真剣に検討しなければならない。\u003c/li\u003e\n\u003cli\u003eしかしその助言を取り入れる義務はない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eそして、スタッフ組織は最小限にし、現場に尽くすことを求められています。\nこれらは全て「偉い人」を作らないためと考えると自分の中ではしっくりきます。\u003c/p\u003e\n\u003ch2 id=\"偉い人が組織をダメにする\"\u003e「偉い人」が組織をダメにする\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/inouetakuya/items/58e5fc12a8015882cfad\"\u003e「賢い大人」たちが発するメッセージは「一緒に考えよう」だけでいいじゃないか - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれ「助言」自体が問題になってるけど、\n自分としては「助言」のつもりが「相手を納得させる＝承認が必要なもの」となっているのがマズいのかなと思いました。\n先程の記事だと、知らず知らずのうちに、エンジニアが「偉い人」になって「承認する」という状況だったのかなと。\u003c/p\u003e\n\u003ch2 id=\"mixiの組織改編\"\u003emixiの組織改編\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://kakkablog.hatenadiary.jp/entry/2019/04/05/085657\"\u003e組織の拡大に伴うアジャイルなプロダクト組織構築 - KAKKA is not 閣下\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこの記事で挙げられているmixiの組織改編の話が面白いです。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eミクシィでは2012年に全社的に大規模な組織改編がされました。\n従来のcomponent team-マネージャー構造のプロジェクト思考組織から、\nfeature teamでプロダクト思考な組織になったのです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eこれにより、従来の社内受託開発的な構造が一掃され、\nマネージャーというポジションはほとんどなくなりました。\nそして一気にプロダクト開発のスピード感が増し、オーナーシップが形成されていきました。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこれだけの組織改編は劇薬だと思います。\nただ、それだけの価値はあると思っています。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B078YJV9ZW/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B078YJV9ZW.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B078YJV9ZW/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nティール組織 ― マネジメントの常識を覆す次世代型組織の出現\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7Z20/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081M7Z20.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7Z20/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集1 経営者の条件\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478190453/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478190453.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478190453/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nネクスト・ソサエティ ― 歴史が見たことのない未来がはじまる\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n"
  }, 
  {
    "title": "リフレクション",
    "url": "https://www.ikemo3.com/dic/reflection/",
    "contents": "\u003ch2 id=\"リフレクションとは\"\u003eリフレクションとは\u003c/h2\u003e\n\u003cp\u003e振り返りのことです。\u003c/p\u003e\n\u003cp\u003eリフレクションには、内省、熟考のような意味もあります。\u003c/p\u003e\n\u003ch2 id=\"いろいろ\"\u003eいろいろ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/otktko/items/d1904cb8db3ed3446019\"\u003e積極性と強い問題意識を要求する「振り返り」は、もうたくさん - Qiita\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e「積極性」と「問題意識」があることを前提にしているが、そうでない人にも参加してもらえないか?という話。\u003c/li\u003e\n\u003cli\u003e「消極的」→「心理的安全性がない」\u003c/li\u003e\n\u003cli\u003e「問題意識がない」\n\u003cul\u003e\n\u003cli\u003e「振り返りは価値がある」という論理的な切り口\u003c/li\u003e\n\u003cli\u003e「振り返りは面白そう」という感情的な切り口\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "AWS Elastic Beanstalk",
    "url": "https://www.ikemo3.com/dic/elastic-beanstalk/",
    "contents": "\u003ch2 id=\"aws-elastic-beanstalkとは\"\u003eAWS Elastic Beanstalkとは\u003c/h2\u003e\n\u003cp\u003eAWSが提供している、いわゆるPaaSです。\u003c/p\u003e\n\u003ch2 id=\"特徴\"\u003e特徴\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eJava, Ruby, Goなど、主要な言語のテンプレートがある\n\u003cul\u003e\n\u003cli\u003e汎用的なものはDockerを使えば良さそう\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e1ノードから、高可用性の設定も可能\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eざっくり触ってみた感じ、Herokuほとではないですが、だいぶ楽そうです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Paas",
    "url": "https://www.ikemo3.com/tags/paas/",
    "contents": ""
  }, 
  {
    "title": "Cloud9でHugoを使う方法",
    "url": "https://www.ikemo3.com/inverted/cloud9/use-hugo/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eAWS Cloud9でHugoを使うための方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAWSが使えること\u003c/li\u003e\n\u003cli\u003eCloud9の基本的な使い方を理解していること\u003c/li\u003e\n\u003cli\u003eHugoを使ったサイトのリポジトリがGitHubにあること\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/inverted/cloud9/initial-setting/\"\u003e初期設定\u003c/a\u003eが完了していること\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eHugoのextendedバージョンのインストール\u003c/li\u003e\n\u003cli\u003eHugoの起動\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"1-hugoのインストール\"\u003e1. Hugoのインストール\u003c/h3\u003e\n\u003cp\u003eHugoのextendedバージョンを入れる必要がありますが、他の方法では対応してなかったので、GitHubのバイナリを直接入れます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecurl -OL https://github.com/gohugoio/hugo/releases/download/v0.54.0/hugo_extended_0.54.0_Linux-64bit.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003etarで展開したバイナリをPATHが通っている場所に移します。\n(例: ~/.local/bin)\u003c/p\u003e\n\u003ch3 id=\"2-hugoの起動\"\u003e2. Hugoの起動\u003c/h3\u003e\n\u003cp\u003eクローンするURLを \u003ccode\u003egit@\u003c/code\u003e にしているのは二段階認証にしているからです(httpsだとめんどい)。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# プライベートリポジトリをクローン\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit clone git@github.com:ikemo3/www.ikemo3.com.git\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd www.ikemo3.com\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# ビルド\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ehugo serve -D -p \u003cspan style=\"color:#ae81ff\"\u003e8080\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eポートは8080〜8082番である必要があります。\nまた、接続する際はhttpsにします。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Hugo",
    "url": "https://www.ikemo3.com/tags/hugo/",
    "contents": ""
  }, 
  {
    "title": "Auth0",
    "url": "https://www.ikemo3.com/manual/auth0/",
    "contents": "\u003ch2 id=\"アプリケーションの作成\"\u003eアプリケーションの作成\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://manage.auth0.com/\"\u003eダッシュボード\u003c/a\u003eを開く。\u003c/li\u003e\n\u003cli\u003e「NEW APPLICATION」ボタンをクリック\u003c/li\u003e\n\u003cli\u003eアプリ名とアプリのタイプを選択\n\u003cul\u003e\n\u003cli\u003eアプリ名: 任意(後で変更可能)\u003c/li\u003e\n\u003cli\u003eアプリのタイプ: 以下の4つから選択\n\u003cul\u003e\n\u003cli\u003e(モバイル、デスクトップ)ネイティブアプリ(例: iOS SDK)\u003c/li\u003e\n\u003cli\u003eシングルページアプリケーション\u003c/li\u003e\n\u003cli\u003e旧来のWebアプリ(画面遷移を伴う)\u003c/li\u003e\n\u003cli\u003eCLIなど\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e今回は旧来のWebアプリを選択\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e使っている技術を選択\n\u003cul\u003e\n\u003cli\u003e今回はRuby on Railsを選択\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"外部ログインのみ使用\"\u003e外部ログインのみ使用\u003c/h2\u003e\n\u003cp\u003eデフォルトではAuth0を使ったサインアップも対応しているが、\n外部ログインのみ(例: Google)を使用する場合は以下のようにする。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003edashboardからConnections → Databaseを選択\u003c/li\u003e\n\u003cli\u003eギアのアイコン(Settings)を選択\u003c/li\u003e\n\u003cli\u003eApplicationsタブを選択\u003c/li\u003e\n\u003cli\u003e使わないアプリケーションをオフにする\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e参考: \u003ca href=\"https://community.auth0.com/t/google-account-only/8551/2\"\u003egoogle account only - Auth0 Community\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eただしデフォルトのGoogleのクライアントIDは突然使えなくなるようなので\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、自前で作成する必要がある。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://support.google.com/googleapi/answer/6158849\"\u003eSetting up OAuth 2.0 - API Console Help\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"メールアドレスを取得する場合rails\"\u003eメールアドレスを取得する場合(Rails)\u003c/h2\u003e\n\u003cp\u003eRailsで設定するには以下のクイックスタートのドキュメント通りにする。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://auth0.com/docs/quickstart/webapp/rails\"\u003eAuth0 Ruby On Rails SDK Quickstarts: Login\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eしかしこの設定ではメールアドレスは取得できない。\nメールアドレスを取得するためには、authorize_paramsにemailを追加\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRails\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eapplication\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003econfig\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003emiddleware\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003euse \u003cspan style=\"color:#66d9ef\"\u003eOmniAuth\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eBuilder\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  provider(\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e:auth0\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;NwtsE4txyWd0HbpkF6Xh47Cis5wwndVi\u0026#39;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;YOUR_CLIENT_SECRET\u0026#39;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;ikemo.auth0.com\u0026#39;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003ecallback_path\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;/auth/oauth2/callback\u0026#39;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003eauthorize_params\u003c/span\u003e: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#e6db74\"\u003escope\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;openid profile\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# ここに\u0026#39;email\u0026#39;を追加\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  )\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e理由は不明。。。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Heroku",
    "url": "https://www.ikemo3.com/tags/heroku/",
    "contents": ""
  }, 
  {
    "title": "Oauth2",
    "url": "https://www.ikemo3.com/tags/oauth2/",
    "contents": ""
  }, 
  {
    "title": "Openid-Connect",
    "url": "https://www.ikemo3.com/tags/openid-connect/",
    "contents": ""
  }, 
  {
    "title": "Ruby on Rails + Heroku + PostgreSQLの初期設定",
    "url": "https://www.ikemo3.com/inverted/ruby-on-rails/rails-heroku-postgresql/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e以下の組み合わせでHerokuにアプリを作成するまでの手順です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRuby on Rails\u003c/li\u003e\n\u003cli\u003ePostgreSQL\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHerokuのアカウントを持っていること\u003c/li\u003e\n\u003cli\u003erails gemがインストールされていること\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下の手順ではgitへのコミットは除外しています。\n適宜コミットしてください。\u003c/p\u003e\n\u003cp\u003eまずはプロジェクト作成。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ePROJECT_NAME\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003eproject\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erails new \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003ePROJECT_NAME\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003ePROJECT_NAME\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e次にGemfileを変更します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003esqliteをdevelopment/testのみに\u003c/li\u003e\n\u003cli\u003epgをproductionに追加(デフォルトではproductionのみのグループはないので追加)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egroup \u003cspan style=\"color:#e6db74\"\u003e:production\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  gem \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;pg\u0026#39;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;~\u0026gt; 1.1.4\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003esqlite3の問題があるため、Gemfileのsqlite3の設定を変更してください。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/Kta-M/items/254a1ba141827a989cb7\"\u003eRailsを始めてsqlite3まわりのエラーで躓いている人たちへ - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e終わったらbundle install。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ebundle install\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e次に、heroku側でアプリ + DBを作成します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eheroku create \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003ePROJECT_NAME\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# ここは別の名前でもOK\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eheroku addons:create heroku-postgresql:hobby-dev\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eあとはHeroku側へpush\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit push heroku master\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Ruby-on-Rails",
    "url": "https://www.ikemo3.com/tags/ruby-on-rails/",
    "contents": ""
  }, 
  {
    "title": "Ruby on Rails",
    "url": "https://www.ikemo3.com/manual/ruby-on-rails/",
    "contents": "\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://railstutorial.jp/\"\u003eRuby on Rails チュートリアル：実例を使って Rails を学ぼう\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"サーバを起動\"\u003eサーバを起動\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erails server\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e他のツールでは \u003ccode\u003ehugo serve\u003c/code\u003e のように \u003ccode\u003eserver\u003c/code\u003e でなく \u003ccode\u003eserve\u003c/code\u003e を使うことがおおい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"コンソールを起動\"\u003eコンソールを起動\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erails console\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erails console --sandbox\u003c/code\u003e でDBへの書き込みを行わない(ロールバック)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"gemfileのバージョン指定\"\u003eGemfileのバージョン指定\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026gt;= 1.3.0\u003c/code\u003e: 1.3.0以上\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~\u0026gt; 4.0.0\u003c/code\u003e: 4.0.0以上、4.1以下\u003c/li\u003e\n\u003cli\u003eただしバージョンはガッチリ固定した方が良いことが多い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cloud9での起動\"\u003eCloud9での起動\u003c/h2\u003e\n\u003cp\u003eCloud9で起動する場合はPreview → Preview Running Application で出る小ウィンドウの右上のボタンを押して別ウィンドウで開く。\u003c/p\u003e\n\u003ch2 id=\"ルーティング\"\u003eルーティング\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econfig/routes.rb\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eルート: \u003ccode\u003eroot application#hello\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"scaffold\"\u003eScaffold\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e登録、編集画面などを一括作成\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erails generate scaffold User name:string email:string\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eリソース名(User)は\u003cstrong\u003e単数形\u003c/strong\u003eを使う。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003econfig/routes.rbには \u003ccode\u003eresources :users\u003c/code\u003e のように設定\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"モデル\"\u003eモデル\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e検証: \u003ccode\u003evalidates\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003elength: 長さ(maximum)\u003c/li\u003e\n\u003cli\u003epresence: 存在\u003c/li\u003e\n\u003cli\u003eformat: 書式\u003c/li\u003e\n\u003cli\u003euniqueness: 一意性\n\u003cul\u003e\n\u003cli\u003ecase_sensitive: 大文字小文字を区別するかどうか\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e関連付け\n\u003cul\u003e\n\u003cli\u003e1:n → has_many / belongs_to\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e更新\n\u003cul\u003e\n\u003cli\u003esave: 妥当性チェックがされる\n\u003cul\u003e\n\u003cli\u003eこれを避ける場合は update_attribute を使う\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eその他\n\u003cul\u003e\n\u003cli\u003ebefore_save: save前に変換\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"データベース\"\u003eデータベース\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erun rails db:migrate\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e疑問: データベースの列のサイズはどうなる?\u003c/li\u003e\n\u003cli\u003ePostgreSQLでは \u003ccode\u003echaracter varying\u003c/code\u003e となる(制限なし)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efind(1)\u003c/code\u003e は存在しないときに例外を出す。 \u003ccode\u003efind_by(id: 1)\u003c/code\u003eならnil。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"コントローラ\"\u003eコントローラ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erender: 他のアクションのViewを呼び出す。例: 登録失敗時に再度入力フォームを出す\u003c/li\u003e\n\u003cli\u003edebugger: ここに来た時点でデバッガを出す(byebug)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ビュー\"\u003eビュー\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eprovide\u003c/code\u003e でページ固有変数定義\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elink_to\u003c/code\u003e: リンクを作成\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elink_to パス パラメータ(Hash)\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"テスト\"\u003eテスト\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eコントローラのテストも容易。\u003c/li\u003e\n\u003cli\u003eRED/GREEN表示には minitest-reportersを使う(3.6.1参照)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ヘルパー\"\u003eヘルパー\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eいわゆるユーティリティクラス\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"スタイルシート\"\u003eスタイルシート\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eapplication.cssにかかれている \u003ccode\u003erequire_tree\u003c/code\u003e はただのコメントではなく、アセットパイプライン。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://guides.rubyonrails.org/asset_pipeline.html\"\u003eThe Asset Pipeline — Ruby on Rails Guides\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"セキュリティ\"\u003eセキュリティ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehas_secure_password\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eDB上のpassword_digestに保存\u003c/li\u003e\n\u003cli\u003e属性 password, password_confirmationが追加\u003c/li\u003e\n\u003cli\u003eauthenticateメソッドが追加\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eパラメータ\n\u003cul\u003e\n\u003cli\u003e以前はフォームの値をそのまま入れてたらしい(びっくり)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://edgeguides.rubyonrails.org/action_controller_overview.html#strong-parameters\"\u003eStrong Parameters\u003c/a\u003eという仕組みで、明示的に許可された属性だけ入れるようにする。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"アプリを作って感じたこと\"\u003eアプリを作って感じたこと\u003c/h2\u003e\n\u003cp\u003eRailsで高速に開発するには以下のものが必要かなと感じました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eセキュリティ\n\u003cul\u003e\n\u003cli\u003eチュートリアルでは自前で実装したが、自前で実装するのは避け、ライブラリか外部サービスを使う。\u003c/li\u003e\n\u003cli\u003e外部サービスの例: \u003ca href=\"https://auth0.com/\"\u003eAuth0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eライブラリの例: \u003ca href=\"https://github.com/plataformatec/devise\"\u003edevise\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eセッション情報\n\u003cul\u003e\n\u003cli\u003eチュートリアルではCookieに暗号化して全情報を入れている。\u003c/li\u003e\n\u003cli\u003eしかしこれは以下の問題がある。\n\u003cul\u003e\n\u003cli\u003eCookieのサイズ制限に引っかかる可能性がある\u003c/li\u003e\n\u003cli\u003eセッション再生攻撃をされる危険性がある。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e自分としてはまず\u003ca href=\"https://github.com/rails/activerecord-session_store\"\u003eactiverecord-session_store\u003c/a\u003eでDBに保存して、アクセスが増えてきたらインメモリDBを使うのがいいと思う。\n\u003cul\u003e\n\u003cli\u003eこの場合の問題点はセッション情報が期限切れにならず残る可能性。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eCSSフレームワーク\n\u003cul\u003e\n\u003cli\u003eチュートリアルは\u003ca href=\"https://getbootstrap.com/\"\u003eBootstrap\u003c/a\u003eを使っている。\u003c/li\u003e\n\u003cli\u003e個人的には\u003ca href=\"https://bulma.io\"\u003eBulma\u003c/a\u003eが好き。IE11対応が不要ならBulmaで良さそう。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eコードが汚くなる問題\n\u003cul\u003e\n\u003cli\u003eまず\u003ca href=\"https://github.com/drapergem/draper\"\u003edraper\u003c/a\u003eを入れて、モデルからViewに関わる箇所を分離。\u003c/li\u003e\n\u003cli\u003eヘルパーはユーティリティクラスと同じなのでなるべく避ける。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eビュー\n\u003cul\u003e\n\u003cli\u003eページネーションはチュートリアルは\u003ca href=\"https://github.com/mislav/will_paginate\"\u003ewill_paginate\u003c/a\u003eを使っているが、\u003ca href=\"https://github.com/kaminari/kaminari\"\u003ekaminari\u003c/a\u003eの方がスタンダードらしい(GitHubのスターも多い)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e認可\n\u003cul\u003e\n\u003cli\u003eCanCanCan, Pundit, bankenのいずれかから選ぶ。\u003c/li\u003e\n\u003cli\u003eシンプルなものならチュートリアルでやったbefore_actionを使うのでもOK。\u003c/li\u003e\n\u003cli\u003e認可系テストはしっかりやろう。「未ログイン」「ログイン済」「他のユーザでログイン済」の3パターン。あと「管理者」も。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eエラー処理\n\u003cul\u003e\n\u003cli\u003e処理をまとめるには、 \u003ccode\u003eActionController::ActionControllerError\u003c/code\u003e を継承した例外クラスを作って、raiseする。rescue_fromでリカバリーして、例外発生時の処理を行う。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eテスト\n\u003cul\u003e\n\u003cli\u003eモデルのValidationなど、宣言的にかける場所やっても効果が薄そう?\u003c/li\u003e\n\u003cli\u003eチュートリアルにもあった\u003ca href=\"https://github.com/stympy/faker\"\u003efaker\u003c/a\u003eは定番。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e監視\n\u003cul\u003e\n\u003cli\u003eメモリ: \u003ca href=\"https://devcenter.heroku.com/articles/log-runtime-metrics\"\u003elog-runtime-metrics\u003c/a\u003eをオンにする。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "願いは戦略でない",
    "url": "https://www.ikemo3.com/dic/hope-is-not-a-strategy/",
    "contents": "\u003ch2 id=\"願いは戦略でないとは\"\u003e願いは戦略でないとは\u003c/h2\u003e\n\u003cp\u003eTeam Geek p71に出てくる言葉です。\n(これが原典ではなさそう)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eGoogleのあらゆるサービスの運営に責任を持つチームは、\n「願いは戦略ではない」をモットーにしている。\nだが、パフォーマンスの低い人を扱うところでは、願いが戦略として使われている。\n多くのチームリーダーは、歯を食いしばって目を背け、\nパフォーマンスの低い人が奇跡的に成長するか、\nどこかへ行くことを願っているだけだ。\nいずれの可能性も極端に低い。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4873116309/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4873116309.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4873116309/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nTeam Geek ―Googleのギークたちはいかにしてチームを作るのか\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "技能と知識の違い",
    "url": "https://www.ikemo3.com/theme/knowledge-management/difference-between-skills-and-knowledge/",
    "contents": "\u003ch2 id=\"技能と知識の違い\"\u003e技能と知識の違い\u003c/h2\u003e\n\u003cp\u003e「断絶の時代」p307より、\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e技能そのものも変化した。これまでは見習いとして習得した技能は、\nその後ずっと使い続けられるものとされていた。\n仕事の中身や方法が定まっていた。経験によって習熟すべきものであって、\n青二才ごときでは身につけられない聖なるものとされていた。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eこれに対して知識は、その本質からして革新的たらざるをえない。\n知識は究め尽くそうとする。すでに知られているものはすでに陳腐化しており、\n今日のものではありえないとする。しかも知識は縄張りを無視する。\n金槌が大工の道具であって、レーザーが物理学者の道具であるなどということには頓着しない。\n知識を基盤とする技能は、縄張りに関わりなく変化していく。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e例えばある技術を学ぶ場合、以前は経験によって学ぶしかありませんでした。\nある熟練労働者が10年かけて身につけたものを新人が身につける場合、\n10年かけて経験から学ぶしかありませんでした。\u003c/p\u003e\n\u003cp\u003eしかし知識社会では、新人でも知識と訓練によって60点の技能を身につける事が可能です。\n知識と訓練だけで100点を取ることはできないとしても、10年かけずに学ぶことができます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://blog.tinect.jp/?p=55791\"\u003e「ノウハウを囲い込むベテラン社員問題」について。 | Books\u0026amp;Apps\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e2015年11月に堀江貴文が、「寿司職人になるのに8年もかかるってバカか」とブログで発言し叩かれ炎上したことがあったが、これなどはまさに、作業の標準化と組織としてのパフォーマンスの最大化を理解しない人が多いことの証左だ。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e教育だけでは100点や95点の人材を育てることはできないが、少なくとも65点の、プロとして最低限通用する人材を速やかに育てることはできる。彼が言っていることは、まさにこのことだ。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eドラッカーが言っているのはこれと同じです。\u003c/p\u003e\n\u003ch2 id=\"出典\"\u003e出典\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAKIQ.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集7 断絶の時代\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "WebExtension",
    "url": "https://www.ikemo3.com/manual/webextension/",
    "contents": "\u003ch2 id=\"firefoxでの開発\"\u003eFirefoxでの開発\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Temporary_Installation_in_Firefox\"\u003eTemporary installation in Firefox - Mozilla | MDN\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003eabout:debugging\u003c/code\u003e とURLバーに打つ\u003c/li\u003e\n\u003cli\u003e「一時的なアドオンを読み込む」をクリック\u003c/li\u003e\n\u003cli\u003eダイアログから、アドオンのディレクトリにある\u003cstrong\u003e任意のファイル\u003c/strong\u003eを選択。\n\u003cul\u003e\n\u003cli\u003eディレクトリを選択ではないのに注意\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"firefoxとchromeの互換性\"\u003eFirefoxとChromeの互換性\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFirefoxにはmanifest.jsonの\u0026quot;version_name\u0026quot;が未サポート。\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "継続的デリバリー",
    "url": "https://www.ikemo3.com/dic/continuous-delivery/",
    "contents": "\u003ch2 id=\"継続的デリバリーとは\"\u003e継続的デリバリーとは\u003c/h2\u003e\n\u003cp\u003eコードを変更すると、自動的に本番管渠へのリリース\u003cstrong\u003e準備\u003c/strong\u003eまで行われることです。\u003c/p\u003e\n\u003ch2 id=\"継続的インテグレーションと継続的デリバリーと継続的デプロイ\"\u003e継続的インテグレーションと継続的デリバリーと継続的デプロイ\u003c/h2\u003e\n\u003cp\u003e「継続的デリバリー」「継続的デプロイ」は似たような単語なので間違いやすいでｓが、\n以下の関係にあるようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e継続的インテグレーション: ビルド \u0026amp; テストまで自動実行\u003c/li\u003e\n\u003cli\u003e継続的デリバリー: 継続的インテグレーション + テスト環境 or ステージング環境まで自動デプロイ\u003c/li\u003e\n\u003cli\u003e継続的デプロイ: 継続的デリバリー + 本番環境まで自動デプロイ\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eポイントとしてはいくつか。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e継続的デリバリーは「承認」されればすぐデプロイ可能になっていること。\n\u003cul\u003e\n\u003cli\u003e逆に言えば、本番環境へのデプロイが大変な場合は継続的デリバリーできているとは言えない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e継続的デプロイを採用するかどうかは技術ではなくビジネス要件。\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "他の人のソースコードを読もう",
    "url": "https://www.ikemo3.com/theme/programming/code-reading/",
    "contents": "\u003ch2 id=\"身につけて欲しい習慣\"\u003e身につけて欲しい習慣\u003c/h2\u003e\n\u003cp\u003eエンジニアが身につけて欲しい習慣の1つが、「ソースコードを読む習慣」を付けることです。\nこの習慣はプログラミングスキルを上げるためにも有効ですが、仕事でも役立ちます。\u003c/p\u003e\n\u003ch2 id=\"問題解決力が上がる\"\u003e問題解決力が上がる\u003c/h2\u003e\n\u003cp\u003e自分は今の会社\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eで、社内で使うためのライブラリを開発しています。\nソースコードは社内なら誰でも読むことができます。\n他の開発者はそのライブラリを使ってアプリケーションを開発しています。\u003c/p\u003e\n\u003cp\u003e仮に、そのライブラリを使ったアプリケーションの開発中に、問題が出たとします。\n考えられる原因は主に以下の3つです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e自分の書いたプログラムに問題がある\u003c/li\u003e\n\u003cli\u003e自分が書いたプログラムが使っているライブラリに問題がある\u003c/li\u003e\n\u003cli\u003e自分が書いたプログラムが使っているライブラリの\u003cstrong\u003e使い方\u003c/strong\u003eが間違っている\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eもし他人のソースコードを読む習慣がない場合、この3つの区別ができません。\n延々とソースとにらめっこするか、ライブラリの作者(自分)に丸投げしてきます。\u003c/p\u003e\n\u003cp\u003eもし他人のソースコードを読む習慣があれば、原因調査を自分で行うことができます。\u003c/p\u003e\n\u003cp\u003e上の例は「自分が楽をしたい」からに見えますが、\n自分がライブラリ開発を任せられるようになったのも、この他人のソースを読む習慣のおかげです。\n他の人のコードを読んでいるうちに、「自分が開発したほうがいい」となったんですね。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e2019-01-17現在。退社予定。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Serverless Framework",
    "url": "https://www.ikemo3.com/manual/serverless-framework/",
    "contents": "\u003ch2 id=\"環境の切り替え\"\u003e環境の切り替え\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eアカウントを2つ持たせるのが常套手段\u003c/li\u003e\n\u003cli\u003e同アカウントでやろうとするとめんどいことがある\n\u003cul\u003e\n\u003cli\u003eresourcesにIAMのロールを書けるが、名前が衝突しないようにする必要がある。\u003c/li\u003e\n\u003cli\u003efunctionsなどはよきにはからえしてくれる\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"カスタムドメイン名\"\u003eカスタムドメイン名\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://serverless.com/blog/serverless-api-gateway-domain/\"\u003eHow to set up a custom domain name for Lambda \u0026amp; API Gateway with Serverless\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amplify-education/serverless-domain-manager\"\u003eamplify-education/serverless-domain-manager: Serverless plugin for managing custom domains with API Gateways.\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCertificateの作成は手動で行う必要がありそう。\u003c/p\u003e\n"
  }, 
  {
    "title": "初心者向けの学び方",
    "url": "https://www.ikemo3.com/theme/programming/newbie/",
    "contents": "\u003ch2 id=\"自分の学び方を知ろう\"\u003e自分の学び方を知ろう\u003c/h2\u003e\n\u003cp\u003e学ぶ前に意識しておいて欲しいことが1つあります。\u003c/p\u003e\n\u003cp\u003eそれは「自分の学び方」です。\n特に「聞いて学ぶ」タイプか、「読んで学ぶ」タイプかということです。\nもちろんコンピュータは「動かして学ぶ」ことが必要ですが。\u003c/p\u003e\n\u003cp\u003e例えば自分は「読んで学ぶ」タイプで、「聞いて学ぶ」のは苦手です。\nなので、下で挙げているドットインストールは自分に合いませんでした。\u003c/p\u003e\n\u003cp\u003e自分に合った教材を選ぶときには、自分が「聞いて学ぶ」タイプか\n「読んで学ぶ」タイプかを意識するといいでしょう。\u003c/p\u003e\n\u003ch2 id=\"オンラインサービス\"\u003eオンラインサービス\u003c/h2\u003e\n\u003cp\u003eまずは無料で始められる以下のサービスが良いと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://prog-8.com/\"\u003eProgate | プログラミングの入門なら基礎から学べるProgate[プロゲート]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://dotinstall.com/\"\u003eドットインストール - 3分動画でマスターする初心者向けプログラミング学習サイト\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただし注意が必要なのは、あくまで初心者がプログラミングを学ぶためのもので、これだけで仕事ができるようにはなりません。\n自分で実際にプログラムを作ってみることが大切です。\u003c/p\u003e\n\u003ch2 id=\"専門学校とプログラミングスクールは\"\u003e専門学校とプログラミングスクールは?\u003c/h2\u003e\n\u003cp\u003e専門学校やプログラミングスクールは中には良いものもありますが、評判が悪いものもあります。\u003c/p\u003e\n\u003cp\u003e専門学校は公的な認可がされているため学校としての信頼度は高いですが、\n教えていることが古いケースもあります。\u003c/p\u003e\n\u003cp\u003eプログラミングスクールはプロが教える良いものもありますが、詐欺まがいのものもあります。\u003c/p\u003e\n\u003cp\u003e評判を知りたければ、現役エンジニアに聞いてみるのがいいでしょう。\nただし飯1回分くらいはおごりましょう。\u003c/p\u003e\n"
  }, 
  {
    "title": "Amazon SQS",
    "url": "https://www.ikemo3.com/dic/sqs/",
    "contents": "\u003ch2 id=\"amazon-sqsとは\"\u003eAmazon SQSとは\u003c/h2\u003e\n\u003cp\u003eメッセージキューのサービスです。\nAmazon SNSとの違いは、SNSが\u003cstrong\u003eプッシュ型\u003c/strong\u003eサービスなのに対し、\nSQSは\u003cstrong\u003eプル型\u003c/strong\u003eサービスという点です。\u003c/p\u003e\n\u003ch2 id=\"キューの種類\"\u003eキューの種類\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e標準キュー\n\u003cul\u003e\n\u003cli\u003eほぼ無制限に利用可能\u003c/li\u003e\n\u003cli\u003e複数回配信される場合がある\u003c/li\u003e\n\u003cli\u003e順序は保証されない\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFIFOキュー\n\u003cul\u003e\n\u003cli\u003eFIFOが保証される\u003c/li\u003e\n\u003cli\u003e1回しか配信されないことが保証される\u003c/li\u003e\n\u003cli\u003e1秒間あたり300と少なめ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"注意点\"\u003e注意点\u003c/h2\u003e\n\u003cp\u003e2019/01/14現在LambdaのソースにはFIFOキューは使えません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dev.classmethod.jp/etc/aws-lambda-support-sqs-event-source/\"\u003eAWS LambdaがSQSをイベントソースとしてサポートしました！ ｜ DevelopersIO\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Amazon SQS",
    "url": "https://www.ikemo3.com/manual/sqs/",
    "contents": "\u003ch2 id=\"fifoキュー使用時の注意点\"\u003eFIFOキュー使用時の注意点\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eキュー名の最後に \u003ccode\u003e.fifo\u003c/code\u003e が必要\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"重複排除\"\u003e重複排除\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagededuplicationid-property.html\"\u003eAmazon SQS メッセージ重複排除 ID の使用 - Amazon Simple Queue Service\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下のどちらかの方法で重複排除をするための方式を指定する必要がある\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMessageDeduplicationIdにキーを指定\u003c/li\u003e\n\u003cli\u003eコンテンツの中身(SHA-256)で判別\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"メッセージグループid\"\u003eメッセージグループID\u003c/h3\u003e\n\u003cp\u003eFIFOキューではメッセージグループIDを指定することで、その中での順序が維持される。\u003c/p\u003e\n\u003ch2 id=\"rubyでの実装例\"\u003eRubyでの実装例\u003c/h2\u003e\n\u003cp\u003eFIFOキューの場合\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esqs \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eAws\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eSQS\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eClient\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003enew(\u003cspan style=\"color:#e6db74\"\u003eregion\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;ap-northeast-1\u0026#39;\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esqs\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003esend_message({\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003equeue_url\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eQUEUE_URL\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003emessage_body\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eJSON\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003egenerate(params),\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003emessage_deduplication_id\u003c/span\u003e: params\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;event_id\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e, \u003cspan style=\"color:#75715e\"\u003e# メッセージ重複排除ID\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003emessage_group_id\u003c/span\u003e: params\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;team_id\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e, \u003cspan style=\"color:#75715e\"\u003e# メッセージグループID\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e})\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Queue",
    "url": "https://www.ikemo3.com/tags/queue/",
    "contents": ""
  }, 
  {
    "title": "AWS Lambda",
    "url": "https://www.ikemo3.com/manual/aws-lambda/",
    "contents": "\u003ch2 id=\"api-gatewayから呼び出されるときのパラメータ\"\u003eAPI Gatewayから呼び出されるときのパラメータ\u003c/h2\u003e\n\u003ch3 id=\"getの場合\"\u003eGETの場合\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eevent\u003c/code\u003e に \u003ccode\u003equeryStringParameters\u003c/code\u003e という名前で入っている。\nRubyの場合以下のようにして取得可能。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003elambda_handler\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003eevent\u003c/span\u003e:, \u003cspan style=\"color:#e6db74\"\u003econtext\u003c/span\u003e:)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    params \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e event\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;queryStringParameters\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    puts \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;params:\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e params\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eto_s\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e params \u003cspan style=\"color:#f92672\"\u003e!=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enil\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        challenge \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e params\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;challenge\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        puts \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;challenge:\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e challenge\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e# 省略\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/nemochu33/items/c9f624c62bf2c85cf26f\"\u003eAPI GatewayからLambdaFunction呼び出し時のHTTP GETパラメータ - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"postの場合\"\u003ePOSTの場合\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eevent\u003c/code\u003e に \u003ccode\u003ebody\u003c/code\u003e という名前で入っている。\nRubyの場合以下のようにして取得可能。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003elambda_handler\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003eevent\u003c/span\u003e:, \u003cspan style=\"color:#e6db74\"\u003econtext\u003c/span\u003e:)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    body \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e event\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;body\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e body \u003cspan style=\"color:#f92672\"\u003e!=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enil\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e body \u003cspan style=\"color:#f92672\"\u003e!=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        params \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eURI\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003edecode_www_form(body)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#75715e\"\u003e# [[\u0026#34;challenge\u0026#34;, \u0026#34;abc\u0026#34;]] のような配列の配列として入る\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e# 省略\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e配列の配列にアクセスするためには\u003ca href=\"https://docs.ruby-lang.org/ja/latest/method/Array/i/assoc.html\"\u003eArray#assoc\u003c/a\u003eというメソッドが便利です。\u003c/p\u003e\n"
  }, 
  {
    "title": "AppCode",
    "url": "https://www.ikemo3.com/manual/appcode/",
    "contents": "\u003ch2 id=\"初期設定自分の場合\"\u003e初期設定(自分の場合)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSelect theme and behavior\n\u003cul\u003e\n\u003cli\u003eLight/Darcula/Xcodeから選択。自分はDarculaを選んだ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault plugins\n\u003cul\u003e\n\u003cli\u003eVersion Controls\n\u003cul\u003e\n\u003cli\u003eGit, GitHub, Subversion以外はオフ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWeb Development\n\u003cul\u003e\n\u003cli\u003e全てオン\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eOther Tools\n\u003cul\u003e\n\u003cli\u003eRevealは開発ツールみたい。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://revealapp.com/\"\u003ehttps://revealapp.com/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eとりあえず全部オンにする。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDownload featured plugins: 以下をインストール\n\u003cul\u003e\n\u003cli\u003eMarkdown\u003c/li\u003e\n\u003cli\u003eAppleScript\u003c/li\u003e\n\u003cli\u003eInjection for AppCode\n\u003cul\u003e\n\u003cli\u003eリビルドなしに変更を反映させるツールっぽい \u003ca href=\"http://tech.aainc.co.jp/archives/7501\"\u003ehttp://tech.aainc.co.jp/archives/7501\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Curl",
    "url": "https://www.ikemo3.com/tags/curl/",
    "contents": ""
  }, 
  {
    "title": "curl: JSONをPOSTする方法",
    "url": "https://www.ikemo3.com/inverted/curl/post-json/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003ecurlコマンドでJSONをポストする方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e以下のオプションを使います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-X method\u003c/code\u003e: リクエストメソッドの指定\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-H header\u003c/code\u003e: ヘッダの指定\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下のようにします。\nもちろんContent-Typeとボディを変更すれば、XMLなども可能です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecurl -X POST -H \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;Content-Type: application/json\u0026#39;\u003c/span\u003e -d \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;{\u0026#34;key\u0026#34;:\u0026#34;value\u0026#34;}\u0026#39;\u003c/span\u003e URL\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Ansible: ドキュメントをローカルで表示する方法",
    "url": "https://www.ikemo3.com/inverted/ansible/create-docs-locally/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eAnsibleのドキュメントの表示確認をローカルで行う方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e今回はDockerを使用します。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eDocker環境を作成\u003c/li\u003e\n\u003cli\u003eDocker内でドキュメント生成\u003c/li\u003e\n\u003cli\u003eブラウザで表示確認\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"1-docker環境の作成\"\u003e1. Docker環境の作成\u003c/h3\u003e\n\u003cp\u003e以下のDockerfileを使用します。\npythonは2.7を使用しています(3にしたい)。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Dockerfile\" data-lang=\"Dockerfile\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eFROM\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003ehttpd:2.4-alpine\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRUN\u003c/span\u003e apk add --update \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    git \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    make \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    python \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    py-pip\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRUN\u003c/span\u003e pip install \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    jinja2 \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    PyYAML \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    six \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    sphinx\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eポイントは以下の通り。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehttp:2.4-alpine\u003c/code\u003e をベースにする\n\u003cul\u003e\n\u003cli\u003eDocker内で構築するため、HTTPサーバが必要\u003c/li\u003e\n\u003cli\u003e後からHTTPサーバを構築するのは面倒なのでベースを \u003ccode\u003ehttp:*\u003c/code\u003e にする。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePythonのモジュールはpipで入れる\n\u003cul\u003e\n\u003cli\u003erpmやdebで入れるとsphinxのバージョンが古くて動かなかった\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"2-docker内でドキュメント生成\"\u003e2. Docker内でドキュメント生成\u003c/h3\u003e\n\u003cp\u003eまずDocker環境を起動します。ポートを8000番に割り当てています。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# ビルド\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker build -t ansible-docs .\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 実行(httpdが動くので別タブで作業)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker run -it --rm \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  --name ansible-docs \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  -p 8000:80 \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ansible-docs\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eそれから、Docker内に入ります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker exec -it ansible-docs /bin/bash\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eビルドを行います。手順は以下の公式ドキュメントを参考にしました。\n\u003ccode\u003emake webdocs\u003c/code\u003e は結構長いです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ansible.com/ansible/latest/dev_guide/testing_documentation.html#testing-module-documentation\"\u003eTesting module documentation — Ansible Documentation\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eMODULE_NAME\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003eモジュール名\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd /usr/local/apache2/htdocs\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit clone --depth \u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e https://github.com/ansible/ansible.git\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd ansible/docs/docsite\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eMODULES\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eMODULE_NAME\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e make webdocs\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"3-ブラウザで動作確認\"\u003e3. ブラウザで動作確認\u003c/h3\u003e\n\u003cp\u003e以下のURLでアクセス可能です。\u003c/p\u003e\n\u003cp\u003ehttp://localhost:8000/ansible/docs/docsite/_build/html/modules/\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Book",
    "url": "https://www.ikemo3.com/tags/book/",
    "contents": ""
  }, 
  {
    "title": "RFC",
    "url": "https://www.ikemo3.com/dic/rfc/",
    "contents": "\u003ch2 id=\"rfcとは\"\u003eRFCとは\u003c/h2\u003e\n\u003cp\u003eIETFが管理している技術文書です。\n内容によっては「標準規格」のものもあります。\nRequest for Commentsの略で、元々は「コメント求む」です。\u003c/p\u003e\n\u003ch2 id=\"rfcの読み方\"\u003eRFCの読み方\u003c/h2\u003e\n\u003cp\u003e概要をつかむためにはググって出た日本語訳でもいいと思いますが、\n正式なRFCの読み方のポイントを書いておきます。\u003c/p\u003e\n\u003ch3 id=\"正式なrfcの場所\"\u003e正式なRFCの場所\u003c/h3\u003e\n\u003cp\u003eまずそもそも正式なRFCはどこにあるか、それは以下にあります。\nIETFのサイトにあるものが正式なものです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://tools.ietf.org/rfc/index\"\u003eRFC Index\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"重要なヘッダ\"\u003e重要なヘッダ\u003c/h3\u003e\n\u003cp\u003e例えばRFC 822を取り上げます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://tools.ietf.org/html/rfc822\"\u003eRFC 822 - STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e上部に以下の記述があります。それぞれ以下のような意味です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eObsoleted by: 「〜によって廃止された」\u003c/li\u003e\n\u003cli\u003eUpdated by: 「〜によって更新された」\u003c/li\u003e\n\u003cli\u003eINTERNET STANDARD: ステータスが「インターネット標準」\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e他にも以下のような記述があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eObsoletes: 「〜を廃止する」\u003c/li\u003e\n\u003cli\u003eUpdates: 「〜を更新する」\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"obsoleted-updated\"\u003eObsoleted, Updated\u003c/h3\u003e\n\u003cp\u003eまずこれが重要です。\n現在メールのメッセージフォーマットで「RFC 822を参照」と書いてあるサイトがあったらそれは間違いです。\nリンクをたどっていくと、RFC 5322がメールのメッセージフォーマットの規格の最新で、\nRFC 6854で更新されています。この2つを見れば十分だと分かります。\u003c/p\u003e\n\u003ch3 id=\"ステータス\"\u003eステータス\u003c/h3\u003e\n\u003cp\u003e詳しくは以下のサイトのとおりですが、基本的には「STANDARD」かそれ以外が重要です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.nic.ad.jp/ja/rfc-jp/RFC-Category.html\"\u003eRFCの分類 - JPNIC\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"must-should-mayなど\"\u003eMUST, SHOULD, MAYなど\u003c/h3\u003e\n\u003cp\u003e本文を読むときの重要なキーワードはMUST, SHOULD, MAYなどの大文字で書かれたものです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://www.ipa.go.jp/security/rfc/RFC2119JA.html\"\u003eKey words for use in RFCs to Indicate Requirement Levels\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMUST: 絶対しなければいけない\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSHOULD: できる限りすべき\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMAY: してもよい(しなくてもよい)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"abnf\"\u003eABNF\u003c/h3\u003e\n\u003cp\u003e文法を表現するための仕様です。\nこれもよく使われるため、覚えておくといいでしょう。\u003c/p\u003e\n"
  }, 
  {
    "title": "Self-Learning",
    "url": "https://www.ikemo3.com/tags/self-learning/",
    "contents": ""
  }, 
  {
    "title": "ファクトフルネス",
    "url": "https://www.ikemo3.com/log/factfulness/",
    "contents": "\u003ch2 id=\"なぜこの本を読もうと思ったのか\"\u003eなぜこの本を読もうと思ったのか\u003c/h2\u003e\n\u003cp\u003eTwitterで某氏がこの本を褒めてたので。\nただ正直最初は読む気はあまりありませんでした。\u003c/p\u003e\n\u003ch2 id=\"感想\"\u003e感想\u003c/h2\u003e\n\u003cp\u003e世界が想像以上に良くなっているのはほとんど当たりませんでした。\nただ内容自体はある程度想像ができてたかなと。\u003c/p\u003e\n\u003cp\u003eなぜなら、自分は以下の2点があるからです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eニュース嫌い\u003c/li\u003e\n\u003cli\u003e確率的思考、あるいは「なめらか」思考が身についている\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例えば「分断本能」「宿命本能」という考え方は、\n確率的思考を元にすると否定されるからです。\nほとんどの事象はもっと「なめらか」だからです。\u003c/p\u003e\n\u003cp\u003e「ネガティブ本能」とかは、ニュースを見なければある程度解決します。\u003c/p\u003e\n\u003cp\u003e逆に自分が気をつけないといけないのは「焦り思考」です。\n「今すぐ○○をやらないと手遅れになる」、そういう考え方にとらわれてしまうケースが結構あります。\nこれが\u003cstrong\u003e自分だけに向いているとき\u003c/strong\u003eはまだいいです。何かを作り上げる原動力になるので。\nでも他の人に向いてしまうと、イライラの元です。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07LG7TG5N/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B07LG7TG5N.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07LG7TG5N/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nFACTFULNESS（ファクトフルネス）10の思い込みを乗り越え、データを基に世界を正しく見る習慣\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "独学用教材",
    "url": "https://www.ikemo3.com/theme/programming/self-learning-materials/",
    "contents": "\u003ch2 id=\"問題集\"\u003e問題集\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://vipprog.net/wiki/exercise.html\"\u003e練習問題 - プログラミングスレまとめ in VIP\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://tech-drill.in/\"\u003eあなたのプログラミングを次のレベルへ | 実践型プログラミング問題集 TechDRILL\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.minituku.net/\"\u003eミニツク - Rubyのe-ラーニング研修システム\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://judge.u-aizu.ac.jp/onlinejudge/index.jsp\"\u003eAIZU ONLINE JUDGE: Programming Challenge\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"azure\"\u003eAzure\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.microsoft.com/ja-jp/learn/browse/\"\u003e学習内容の閲覧 | Microsoft Docs\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"画像処理\"\u003e画像処理\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/yoyoyo_/items/2ef53f47f87dcf5d1e14\"\u003e画像処理100本ノックを作ったった - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yoyoyo-yo/Gasyori100knock\"\u003eyoyoyo-yo/Gasyori100knock\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"言語処理\"\u003e言語処理\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.cl.ecei.tohoku.ac.jp/nlp100/\"\u003e言語処理100本ノック 2015\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"サービス\"\u003eサービス\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dotinstall.com/\"\u003eドットインストール - 3分動画でマスターする初心者向けプログラミング学習サイト\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://paiza.jp/\"\u003eITエンジニア・プログラマ向けの転職・就活・学習サービス【paiza（パイザ）】\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Git",
    "url": "https://www.ikemo3.com/tags/git/",
    "contents": ""
  }, 
  {
    "title": "Git: ルートコミットの著者を変更する方法",
    "url": "https://www.ikemo3.com/inverted/git/change-root-commit/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e最初のコミットの著者(名前・メールアドレス)を更新する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eこれでうまくいくはずだけどちゃんとは試していません。。。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003erebaseに \u003ccode\u003e--root\u003c/code\u003e オプションを付ける\n\u003cul\u003e\n\u003cli\u003e例: \u003ccode\u003egit rebase -i --root HEAD~5\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e著者を変更する\n\u003cul\u003e\n\u003cli\u003e例: \u003ccode\u003egit commit --amend --reset-author --allow-empty\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eブランチを作成\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egit branch tmp\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emasterブランチに戻って、tmpにリベース\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egit checkout master\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egit rebase tmp\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Netlify",
    "url": "https://www.ikemo3.com/tags/netlify/",
    "contents": ""
  }, 
  {
    "title": "Netlify: リポジトリの場所を変更する方法",
    "url": "https://www.ikemo3.com/inverted/netlify/change-repository/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eGitHubのプライベートリポジトリが個人利用で無料になったので、\nGitLabにあるリポジトリをGitHubに移動してみました。\u003c/p\u003e\n\u003cp\u003eその時の手順です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eリポジトリを移動\u003c/li\u003e\n\u003cli\u003eNetlifyの設定変更\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"1-リポジトリの移行\"\u003e1. リポジトリの移行\u003c/h3\u003e\n\u003cp\u003eこれは概要だけ。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e移行先にリポジトリ作成\u003c/li\u003e\n\u003cli\u003eローカルの \u003ccode\u003e.git/config\u003c/code\u003e ファイルの \u003ccode\u003e[remote \u0026quot;origin\u0026quot;]\u003c/code\u003e セクションの \u003ccode\u003eurl\u003c/code\u003e を書き換える\u003c/li\u003e\n\u003cli\u003eプッシュ \u003ccode\u003egit push\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"2-netlifyの設定変更\"\u003e2. Netlifyの設定変更\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eNetlifyのサイトを開く\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSite Settings\u003c/code\u003e をクリック(実際はどれでもよい)\u003c/li\u003e\n\u003cli\u003e左のメニューから \u003ccode\u003eBuild \u0026amp; deploy\u003c/code\u003e をクリック\u003c/li\u003e\n\u003cli\u003e右側の \u003ccode\u003eBuild settings\u003c/code\u003e から \u003ccode\u003eEdit settings\u003c/code\u003e をクリック\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRepository:\u003c/code\u003e の右に \u003ccode\u003eLink to a different repository →\u003c/code\u003e というリンクがあるのでクリック\u003c/li\u003e\n\u003cli\u003e移行先のリポジトリを選択\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "会議",
    "url": "https://www.ikemo3.com/manual/meeting/",
    "contents": "\u003ch2 id=\"目的を明らかにする\"\u003e目的を明らかにする\u003c/h2\u003e\n\u003cp\u003eドラッカーの経営者の条件 p13より\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e会議の生産性をあげるには、事前に目的を明らかにすることが必要である。目的が違えばそのための準備もその後の成果も違うはずだからである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e目的がない会議は無駄だが、その理由は、目的が明らかでないことが多い。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7Z20/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081M7Z20.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7Z20/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集1 経営者の条件\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "アイデア",
    "url": "https://www.ikemo3.com/manual/idea/",
    "contents": "\u003ch2 id=\"アイデアを出す方法いろいろ\"\u003eアイデアを出す方法いろいろ\u003c/h2\u003e\n\u003ch3 id=\"仕事は楽しいかね\"\u003e仕事は楽しいかね?\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e仕事上でやったミスのリスト\u003c/li\u003e\n\u003cli\u003e仕事の問題点のリスト。仕事に関してイライラすることを残らず書き出す。他の人の不満も書き出す。\u003c/li\u003e\n\u003cli\u003e仕事に関してやっていること全てのことのリスト\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00SIM19YS/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00SIM19YS.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00SIM19YS/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n仕事は楽しいかね？ (きこ書房)\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Json",
    "url": "https://www.ikemo3.com/tags/json/",
    "contents": ""
  }, 
  {
    "title": "JSON Schema",
    "url": "https://www.ikemo3.com/manual/json-schema/",
    "contents": "\u003ch2 id=\"バリデーション\"\u003eバリデーション\u003c/h2\u003e\n\u003cp\u003eajvが簡単で良い。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/epoberezkin/ajv\"\u003eepoberezkin/ajv: The fastest JSON Schema Validator. Supports draft-04/06/07\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm install -g ajv-cli\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eajv validate -s スキーマ -d データ\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"簡単なjson-schemaの作り方\"\u003e簡単なJSON Schemaの作り方\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://www.jsonschema.net/\"\u003ehttps://www.jsonschema.net/\u003c/a\u003e に行く\u003c/li\u003e\n\u003cli\u003eギアアイコンをクリックして設定\n\u003cul\u003e\n\u003cli\u003eAnnotationsの「Infer Title」「Infer Default」「Infej Example」を削除(どうせ使わない)\n\u003cul\u003e\n\u003cli\u003eこれらはそれぞれtitle, default, exampleに該当する。\u003c/li\u003e\n\u003cli\u003eidも基本的には不要。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eJSONを貼り付ける\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eINFER SCHEMA\u003c/code\u003eボタンを押す\n\u003cul\u003e\n\u003cli\u003einferは推論という意味。よって「スキーマを推論」になる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eこれでそれっぽいものができるので、カスタマイズしていくのもいいかも。\u003c/p\u003e\n\u003cp\u003eただしこれで作成したものは以下の点に注意する必要がある。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e改行が入っているとダメ。正規表現を \u003ccode\u003e\u0026quot;^(\\n|.)*$\u0026quot;\u003c/code\u003e にするとOK。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"書き方\"\u003e書き方\u003c/h2\u003e\n\u003ch3 id=\"type-型\"\u003etype: 型\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://json-schema.org/understanding-json-schema/reference/type.html\"\u003eType-specific keywords — Understanding JSON Schema 6.0 documentation\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u0026ldquo;null\u0026rdquo;\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u0026ldquo;object\u0026rdquo;\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u0026ldquo;string\u0026rdquo;\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u0026ldquo;array\u0026rdquo;\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u0026ldquo;boolean\u0026rdquo;\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u0026ldquo;integer\u0026rdquo;\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u0026ldquo;number\u0026rdquo;\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eまたは [\u0026ldquo;number\u0026rdquo;, \u0026ldquo;string\u0026rdquo;] のように配列で指定\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"items-arrayの中の定義\"\u003eitems: arrayの中の定義\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://json-schema.org/understanding-json-schema/reference/array.html\"\u003earray — Understanding JSON Schema 6.0 documentation\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例えばstringのarrayを表す書き方は以下の通り。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-json\" data-lang=\"json\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;type\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;array\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;items\u0026#34;\u003c/span\u003e: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003e\u0026#34;type\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;string\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"enum-許容する値の一覧\"\u003eenum: 許容する値の一覧\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://json-schema.org/understanding-json-schema/reference/generic.html\"\u003eGeneric keywords — Understanding JSON Schema 6.0 documentation\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例えば \u0026ldquo;red\u0026rdquo;, \u0026ldquo;green\u0026rdquo; のみを許容する書き方は以下の通り。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-json\" data-lang=\"json\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;type\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;string\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;enum\u0026#34;\u003c/span\u003e: [\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;red\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;green\u0026#34;\u003c/span\u003e]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"properties-オブジェクトのプロパティ\"\u003eproperties: オブジェクトのプロパティ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://json-schema.org/understanding-json-schema/reference/object.html\"\u003eobject — Understanding JSON Schema 6.0 documentation\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eオブジェクトに対して、文字列の値を持つ\u0026quot;key\u0026quot;プロパティを定義する場合。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-json\" data-lang=\"json\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;type\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;object\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;properties\u0026#34;\u003c/span\u003e: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003e\u0026#34;key\u0026#34;\u003c/span\u003e: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#f92672\"\u003e\u0026#34;type\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;string\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e必須項目は\u0026quot;required\u0026quot;を定義する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-json\" data-lang=\"json\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;type\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;object\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;properties\u0026#34;\u003c/span\u003e: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003e\u0026#34;key\u0026#34;\u003c/span\u003e: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#f92672\"\u003e\u0026#34;type\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;string\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;required\u0026#34;\u003c/span\u003e: [\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;key\u0026#34;\u003c/span\u003e]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"不明なプロパティをエラーにしたい\"\u003e不明なプロパティをエラーにしたい\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eadditionalProperties: false\u003c/code\u003e を追加\u003c/p\u003e\n\u003ch3 id=\"oneof-anyof-allof\"\u003eoneOf, anyOf, allOf\u003c/h3\u003e\n\u003cp\u003e配列のいずれか1つ、任意のもの、全てを表す\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://json-schema.org/understanding-json-schema/reference/combining.html\"\u003eCombining schemas — Understanding JSON Schema 6.0 documentation\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "育児",
    "url": "https://www.ikemo3.com/tags/parenting/",
    "contents": ""
  }, 
  {
    "title": "育児: 乳幼児への薬を飲ませ方(何に混ぜたらいいか)",
    "url": "https://www.ikemo3.com/inverted/parenting/how-to-give-medication-to-infants/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e乳幼児が薬を嫌がるときに、どのような飲ませ方をしたらいいかという話です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e以下のツイートとリンクにある先が参考になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://twitter.com/booklovermd/status/1079614391551545344\"\u003eいちはさんのツイート: \u0026ldquo;小児科に来たら、メチャクチャ参考になりそうなものが掲示してあった。 コメント、ちょいちょい面白い。… \u0026ldquo;\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.kurumi-ph.com/newpage1.html\"\u003e乳幼児のお薬の飲ませ方\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cp\u003e基本的には乳酸菌飲料がダメで、アイスクリームやペースト類(シロップなど)が良いみたいです。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Amazon ECR: untaggedを定期的にクリーンアップする方法",
    "url": "https://www.ikemo3.com/inverted/aws/cleanup-ecr/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e新しいイメージをアップロードしてuntaggedになったものを定期的にクリーンアップする方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e以下の記事を参考にしました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://aws.amazon.com/jp/blogs/news/clean-up-your-container-images-with-amazon-ecr-lifecycle-policies/\"\u003eAmazon ECRのライフサイクルポリシーでコンテナイメージのクリーンアップ | Amazon Web Services ブログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下の手順でOKのようです(動作は未確認)\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eAmazon ECRのサービスを選択\u003c/li\u003e\n\u003cli\u003eリポジトリを選択\u003c/li\u003e\n\u003cli\u003e左側の「Lifecycle Policy」メニューを選択\u003c/li\u003e\n\u003cli\u003e右側の「ルールの作成」ボタンを選択\u003c/li\u003e\n\u003cli\u003e設定を行う\n\u003cul\u003e\n\u003cli\u003e優先度: 任意\u003c/li\u003e\n\u003cli\u003eルールの説明: 任意(\u003cstrong\u003e日本語可\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003eイメージのステータス: 「タグ付けなし」\u003c/li\u003e\n\u003cli\u003e一致条件: イメージをプッシュしてからx日\u003c/li\u003e\n\u003cli\u003eルールアクション: expire(設定不可)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "CircleCI",
    "url": "https://www.ikemo3.com/manual/circleci/",
    "contents": "\u003ch2 id=\"circleci-20のポイント\"\u003eCircleCI 2.0のポイント\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e設定ファイルはYAML形式。パスは \u003ccode\u003e.circleci/config.yml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eワークフローは複数のジョブから定義される。\u003c/li\u003e\n\u003cli\u003eジョブごとにDockerイメージが使われる。\u003c/li\u003e\n\u003cli\u003eジョブ間でファイルを受け渡したい場合は以下のような機能を使う。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epersist_to_workspace\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eattach_workspace\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"circleciに依存しすぎない\"\u003eCircleCIに依存しすぎない\u003c/h2\u003e\n\u003cp\u003eCIツールは便利ですが、依存しすぎない方がいいという意見もあります。\n手間はかかりますが開発環境と実行環境の違いをなくすメリットも大きいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/sonatard/items/93ca46fdd51e4f17ad98\"\u003eCircle CI 2.0を(過度に)使わない - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"デバッグ方法\"\u003eデバッグ方法\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/mokuo/items/1f6e35abe3845c82253b\"\u003eCircleCI のデバッグ方法3つ - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emacOSでの手順は以下になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eインストール: \u003ccode\u003ebrew install circleci\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e検証: \u003ccode\u003ecircleci config validate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eローカルビルド: \u003ccode\u003ecircleci local execute\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Ecr",
    "url": "https://www.ikemo3.com/tags/ecr/",
    "contents": ""
  }, 
  {
    "title": "Google Chrome拡張: CLIでパッケージ化する方法",
    "url": "https://www.ikemo3.com/inverted/google-chrome-extension/create-extension-by-cli/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eGoogle Chrome拡張をCLIでパッケージ化する方法です。\nGUIでは「拡張機能をパッケージ化」に相当するものです。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e秘密鍵はリポジトリに含められないため、\n環境変数 \u003ccode\u003ePEM_UUENCODE\u003c/code\u003e に含まれているものとします(実際はbase64なので環境変数名がおかしいですが)\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003ecrxというNode.jsのパッケージを使います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oncletom/crx\"\u003eoncletom/crx: A node.js command line app for packing Google Chrome extensions.\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003eまずcrxをインストールします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm install --save-dev crx\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eそれから以下のようにします。\n1行目で秘密鍵をファイルに落として、3行目でパッケージ化します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecrx pack\u003c/code\u003e: パッケージ化するコマンド\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-o /tmp/workspace/gossip-site-blocker.crx\u003c/code\u003e: 出力するパッケージのパス\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eapps\u003c/code\u003e: パッケージ化するアプリの場所\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-p /tmp/gossip-site-blocker.pem\u003c/code\u003e: 秘密鍵の場所(1行目で作成)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003ePEM_UUENCODE\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e | base64 -d \u0026gt; /tmp/gossip-site-blocker.pem\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003emkdir -p /tmp/workspace\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e./node_modules/.bin/crx pack -o /tmp/workspace/gossip-site-blocker.crx apps -p /tmp/gossip-site-blocker.pem\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "進捗",
    "url": "https://www.ikemo3.com/manual/progress/",
    "contents": "\u003ch2 id=\"進捗の聞き方\"\u003e進捗の聞き方\u003c/h2\u003e\n\u003cp\u003e「進捗どうですか?」でなく\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e困っていますか?\u003c/li\u003e\n\u003cli\u003e何か困っていることありませんか?\u003c/li\u003e\n\u003cli\u003e気になってる事はありますか?\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eのように聞く。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/tatesuke/items/fd5483be1b72727d3d34\"\u003e「進捗どうですか？」より2015倍捗る「困ってますか？」 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"進捗が遅れているときは原因の聞き取りが必要\"\u003e進捗が遅れているときは原因の聞き取りが必要\u003c/h2\u003e\n\u003cp\u003eどこか忘れましたが、進捗が遅れているときは「パーセント」ではなく、\n「残りの日数」が重要だというのを見た覚えがあります。\u003c/p\u003e\n\u003cp\u003e例えば元々5日で見積もっていた仕事が4日経ったときには80%完了していれば問題ありません。\nしかし60%しか進んでいないときは、2つの可能性があります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e1日分何か別の作業で取られていて進められなかった\u003c/li\u003e\n\u003cli\u003e見積りに問題があり、想定以上に作業があったため遅れている\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e前者の場合は作業したのが3日なので、残り2日必要です。\n後者の場合はそもそも 4 / 0.6 = 6.67日必要な作業なので、残り2.67日必要です。\u003c/p\u003e\n"
  }, 
  {
    "title": "コミュニケーション",
    "url": "https://www.ikemo3.com/dic/communication/",
    "contents": "\u003ch2 id=\"コミュニケーション\"\u003eコミュニケーション\u003c/h2\u003e\n\u003cp\u003e必要と言っているくせにみんな省略したがるものです。\u003c/p\u003e\n\u003ch2 id=\"コミュニケーションは省略できない\"\u003eコミュニケーションは省略できない\u003c/h2\u003e\n\u003cp\u003eこの記事が面白いと思いました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.infoq.com/jp/articles/agile-implementation-manager\"\u003eマネージャの視点からのアジャイルの実践\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eマネージャに、スクラムマスターになるために別途時間（少なくとも50%）が必要だと説得し、アドバンテージを見せること\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eこれには驚きました。スクラムの原則に従う人は時間の半分、\nすなわち2週間のスプリントではおよそ5人日がスクラムマスターの仕事に必要ということが判明したのです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e「少なくとも50%」です。\u003c/p\u003e\n\u003ch2 id=\"仕事をするためのコミュニケーションと信頼づくりのためのコミュニケーション\"\u003e仕事をするためのコミュニケーションと信頼づくりのためのコミュニケーション\u003c/h2\u003e\n\u003cp\u003eTHE TEAMという本のNo.1201(Kindle)に、以下のような記述がありました。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eまずは適切にルールを設計し、無駄なコミュニケーションをできる限り減らし、\n効率化を図って下さい。その上で、一見無駄に思えるかもしれない\n「お互いを理解するコミュニケーション」や「安心して意見を言える場づくりのためのコミュニケーション」に投資して下さい。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこの本は最初「コミュニケーションを減らす」と書いていたので疑問符が湧いたのですが、\nこの記述を見てしっくり来ました。\u003c/p\u003e\n\u003ch2 id=\"人間関係を築くためには時間がかかる\"\u003e人間関係を築くためには時間がかかる\u003c/h2\u003e\n\u003cp\u003eドラッカーは、経営者の条件 p51において、\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e人のために時間を数分使うことはまったく非生産的である。\n何かを伝えるにはまとまった時間が必要である。\n方向づけや計画や仕事の仕方について一五分で話せると思っている者は、\n単にそう思い込んでいるだけである。\n肝心なことをわからせ何かを変えたいのであれば一時間はかかる。\n何らかの人間関係を築くには、はるかに多くの時間を必要とする。\u003c/p\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003cp\u003eそのうえ知識労働は肉体労働のようには測定できない。\nそのため、正しい仕事をしているか、どのくらいよく行っているかについて、\n簡単な言葉で伝えることができない。\u003c/p\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003cp\u003e知識労働者については、満足すべき仕事をしているかどうかを知ることさえ容易でない。\n知識労働者とは、何をなぜ行わなければならないかについて腰を据えて一緒に考えなければならない。\nここでもまた時間が必要となる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003ep52にも以下のような記述があります。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e組織内の話し合いはくつろいで行われなければならないだけに、膨大な時間を必要とする。\nゆとりがあると感じられなければならない。それが結局は近道である。\nそのためには、中断のないまとまった時間を用意しなければならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"人間関係のあるべき姿\"\u003e人間関係のあるべき姿\u003c/h2\u003e\n\u003cp\u003e「経営者の条件」p91より。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e対人関係の能力をもつことによってよい人間関係がもてるわけではない。\n自らの仕事や他との関係において、貢献に焦点を合わせることによってよい人間関係がもてる。\nそうして人間関係が生産的となる。生産的であることが、よい人間関係の唯一の定義である。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e仕事上の関係において成果がなければ、温かな会話や感情も無意味である。\n貧しい関係のとりつくろいにすぎない。\n逆に関係者全員に成果をもたらす関係であれば、失礼な言葉があっても人間関係を壊すことはない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e「非営利組織の経営」p163より。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e人事は第一に、なされるべき仕事からスタートする。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e第三に、成果の実績を見る。性格を見るのではない。\n「人とうまくやっていけるか」「イニシアチブをとれるか」などのくだらないことで評価してはならない。\nそれらのことは、人を描写するには役立つだろうが、いかなる成果をあげるかは教えない。\n正しい問いは、「最近の三つの仕事をどうこなしたか。やり遂げたか」である。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e自分は「馴れ合い」というのがものすごく嫌いです。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07PZB9DTK/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B07PZB9DTK.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07PZB9DTK/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nTHE TEAM 5つの法則 (NewsPicks Book)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7Z20/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081M7Z20.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7Z20/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集1 経営者の条件\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478307059/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478307059.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478307059/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集4 非営利組織の経営\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n"
  }, 
  {
    "title": "CMMI",
    "url": "https://www.ikemo3.com/dic/cmmi/",
    "contents": "\u003ch2 id=\"cmmiとは\"\u003eCMMIとは\u003c/h2\u003e\n\u003cp\u003e組織がどれだけまともかを表すための指標のようです。\u003c/p\u003e\n\u003ch2 id=\"組織の成熟度\"\u003e組織の成熟度\u003c/h2\u003e\n\u003cp\u003eCMMIについて考える切っ掛けとなったのは以下のスライドです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://speakerdeck.com/kensuketanaka/modannaxian-chang-nisurutamenishi-jian-sitakoto?slide=45\"\u003eモダンな現場にするために実践したこと - Speaker Deck\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCMMIとかこういうものは個人的には懐疑的だったので、ちょっと気になりました。\u003c/p\u003e\n\u003cp\u003eWikipediaの説明はちょっと分かりにくいのですが、この記事の方がいいかなと。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.itmedia.co.jp/im/articles/1202/29/news142_2.html\"\u003eCMMIなら、どんなチームも開発効率を改善できる (2/2) - ITmedia エンタープライズ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e要はレベル5の継続的改善ができる組織に至るまでの組織の成熟度かなと。\n標準化はあくまでそのための手法にすぎないのですが、\nそのプロセスこそが本質だと勘違いしているからうまくいかないんじゃないかと。\u003c/p\u003e\n"
  }, 
  {
    "title": "HRT",
    "url": "https://www.ikemo3.com/dic/hrt/",
    "contents": "\u003ch2 id=\"hrtとは\"\u003eHRTとは\u003c/h2\u003e\n\u003cp\u003e以下の3つの頭文字を取ったものです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e謙虚(Humility)\u003c/li\u003e\n\u003cli\u003e尊敬(Respect)\u003c/li\u003e\n\u003cli\u003e信頼(Trust)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"原典\"\u003e原典\u003c/h2\u003e\n\u003cp\u003eTeam Geekという本です。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4873116309/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4873116309.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4873116309/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nTeam Geek ―Googleのギークたちはいかにしてチームを作るのか\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e電子版はオライリーのサイトで入手できます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.oreilly.co.jp/books/9784873116303/\"\u003eO\u0026rsquo;Reilly Japan - Team Geek\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"いろいろ\"\u003eいろいろ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.creators-station.jp/column/38517\"\u003eまず、「そうですね」って言え。 | クリエイターズ ステーション(クリステ)\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e否定から入らない\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Kaizen",
    "url": "https://www.ikemo3.com/tags/kaizen/",
    "contents": ""
  }, 
  {
    "title": "生産性",
    "url": "https://www.ikemo3.com/dic/productivity/",
    "contents": "\u003ch2 id=\"生産性とは\"\u003e生産性とは\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e時間\u003c/strong\u003eあたりの成果です。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e時間\u003c/strong\u003eあたりです。人あたりではありません。\u003c/p\u003e\n\u003ch2 id=\"いろいろ\"\u003eいろいろ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/advent-calendar/2018/em2\"\u003eEngineering Manager vol.2 Advent Calendar 2018 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://sugimori.hateblo.jp/entry/2018/12/19/222854\"\u003e組織のベースラインを引く - 元エンジニアリングマネージャsugimoriの日記\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e求める基準を作って共有する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://masartz.hatenablog.jp/entry/2018/12/06/060831\"\u003e研修中に爆睡して学んだ 1on1 で「待つ」ことの大事さ(How I learned the importance of patience in one-on-one MTGs from sleeping) - masartz-\u0026gt;log(type=\u0026gt;\u0026lsquo;hatenablog\u0026rsquo;)\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eとにかく相手の立場に立つ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "レガシーシステム",
    "url": "https://www.ikemo3.com/dic/legacy-system/",
    "contents": "\u003ch2 id=\"レガシーシステムとは\"\u003eレガシーシステムとは\u003c/h2\u003e\n\u003cp\u003e触りたくないものですが、触らないと腐ってさらに触りたくなくなるものです。\u003c/p\u003e\n\u003ch2 id=\"ボーイスカウトルール\"\u003eボーイスカウト・ルール\u003c/h2\u003e\n\u003cp\u003e「ちょっと古くてイヤなものがある」程度なら、ボーイスカウト・ルールを適用するのがいいと思います。\u003c/p\u003e\n\u003cp\u003eボーイスカウト・ルールとは、「来た時よりも美しく」というのをプログラミングに例えて、\n「変更が入ったときに元のコードよりもきれいにする」方法です。\nローカル変数名を変えるとか、コメントを追加削除するとか、簡単なことでもやることが大事です。\u003c/p\u003e\n\u003ch2 id=\"ひどいものは今すぐ取り組む\"\u003eひどいものは今すぐ取り組む\u003c/h2\u003e\n\u003cp\u003eレガシーシステムについてはいろいろありますが、\nひどいものにういては最適解は間違いなく「今すぐ取り組む」です。\nなぜなら、放置すればするほど酷くなるのと、技術者のモチベーションが低下して、退職する原因になるからです。\u003c/p\u003e\n\u003ch2 id=\"対処例\"\u003e対処例\u003c/h2\u003e\n\u003cp\u003e見つけたら書きます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://buildersbox.corp-sansan.com/entry/2018/12/11/110000\"\u003eレガシーシステムのおそうじ - Sansan Builders Box\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://speakerdeck.com/naoya/ji-shu-de-fu-zhai-toxiang-kihe-u\"\u003e技術的負債と向き合う - Speaker Deck\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://speakerdeck.com/kensuketanaka/modannaxian-chang-nisurutamenishi-jian-sitakoto\"\u003eモダンな現場にするために実践したこと - Speaker Deck\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "心理的安全性",
    "url": "https://www.ikemo3.com/dic/psychological-safety/",
    "contents": "\u003ch2 id=\"心理的安全性とは\"\u003e心理的安全性とは\u003c/h2\u003e\n\u003cp\u003eリスクをとっても安全だと確信できる状態のことです。\u003c/p\u003e\n\u003cp\u003eGoogleによる研究はこれですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://rework.withgoogle.com/jp/guides/understanding-team-effectiveness/steps/introduction/\"\u003eGoogle re:Work - ガイド: 「効果的なチームとは何か」を知る\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"いろいろ\"\u003eいろいろ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/nh321/items/c090e4b34d5bb8767a01\"\u003e【Google研究結果】生産性の高いチームに共通する要素【心理的安全性】 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.slideshare.net/yusukehisatsu/080-120640059\"\u003e心理的安全性を 0から80ぐらいに上げた話\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eメンバーに期待、信頼\u003c/li\u003e\n\u003cli\u003eビジョン。「こうしたいんだ。だから協力してくれ」\u003c/li\u003e\n\u003cli\u003e口を出さない(根気が必要)\u003c/li\u003e\n\u003cli\u003e明るく\u003c/li\u003e\n\u003cli\u003eしっかり聞く\u003c/li\u003e\n\u003cli\u003eみんなで解決\u003c/li\u003e\n\u003cli\u003e即レス\u003c/li\u003e\n\u003cli\u003e意見を大切に(※絶対に放っておかない)\u003c/li\u003e\n\u003cli\u003eライトな1on1\u003c/li\u003e\n\u003cli\u003eブログ: \u003ca href=\"https://productmanager55.hatenablog.com/entry/2018/12/15/012008\"\u003eボロボロのチームを立て直したエンジニアリングマネージャーのお話 - めざせプロダクトマネージャー( @Nunerm )\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://note.mu/kc320/n/n2b109f599b06\"\u003e実践 心理的安全性のつくりかた（導入ならびに留意点）｜Kazuhiro Chida｜note\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ryosukeishii.hatenablog.com/entry/2018/11/02/083918\"\u003eいま話題の「心理的安全性」について、本気出して科学的に分かりやすく説明してみた - R\u0026amp;D: りょうえんダイアリー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://corp.teambox.co.jp/blog/269\"\u003eなぜ強いチームには「心理的安全性」が必要なのか？──及川卓也×國友尚【後編】 | お知らせ | Teambox\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/PruneMazui/items/e460df2865de8522a10b\"\u003e自立自走型チームの構築と心理的安全性を高める施策 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "JAMstack",
    "url": "https://www.ikemo3.com/dic/jamstack/",
    "contents": "\u003ch2 id=\"jamstackとは\"\u003eJAMstackとは\u003c/h2\u003e\n\u003cp\u003e以下の3つの頭文字を取った技術スタックのことです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJavaScript\u003c/li\u003e\n\u003cli\u003eAPIs(複数形)\u003c/li\u003e\n\u003cli\u003eMarkup\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"いろいろなサービス\"\u003eいろいろなサービス\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAuth0: 認証\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://auth0.com/\"\u003eNever Compromise on Identity. - Auth0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Javascript",
    "url": "https://www.ikemo3.com/tags/javascript/",
    "contents": ""
  }, 
  {
    "title": "Static-Site-Generator",
    "url": "https://www.ikemo3.com/tags/static-site-generator/",
    "contents": ""
  }, 
  {
    "title": "Mac",
    "url": "https://www.ikemo3.com/tags/mac/",
    "contents": ""
  }, 
  {
    "title": "MacでSkypeが起動しない場合の修正方法",
    "url": "https://www.ikemo3.com/inverted/skype/cannot-start-in-mac/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eMacでSkypeの最新版が起動しない場合の修正方法です。\n起動してもメニューにQuitのみ表示されている状態でした。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eSkype 8.34.078で動作確認しています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e以下の回答が参考になりました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://answers.microsoft.com/ja-jp/skype/forum/skype_mac-skype_callms-skype_audioms/macos-high-sierra/783ef4d2-414c-4054-b719-23fd2a12d7c8\"\u003eMacOS High Sierra からSkypeが正常に起動しない - マイクロソフト コミュニティ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下のコマンドを打って、ディレクトリのオーナーがrootになってないか確認します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003els -ld ~/Library/Application\u003cspan style=\"color:#ae81ff\"\u003e\\ \u003c/span\u003eSupport/Microsoft\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eそれから以下のコマンドで、ディレクトリのオーナーを変更します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esudo chown -R \u003cspan style=\"color:#e6db74\"\u003e`\u003c/span\u003ewhoami\u003cspan style=\"color:#e6db74\"\u003e`\u003c/span\u003e ~/Library/Application\u003cspan style=\"color:#ae81ff\"\u003e\\ \u003c/span\u003eSupport/Microsoft\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Amazon API Gateway",
    "url": "https://www.ikemo3.com/dic/api-gateway/",
    "contents": "\u003ch2 id=\"料金\"\u003e料金\u003c/h2\u003e\n\u003cp\u003e以下は全て、2018/12/10現在の東京リージョンでの料金です。\u003c/p\u003e\n\u003ch3 id=\"apiコール\"\u003eAPIコール\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e無料枠: 100万回 / 月\u003c/li\u003e\n\u003cli\u003eそれ以上\n\u003cul\u003e\n\u003cli\u003e100万回 / $4.25 (最初の3億3,300万リクエスト)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"キャッシュ\"\u003eキャッシュ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e0.5GB: $0.02 / 時間(30日で $14.4)\u003c/li\u003e\n\u003cli\u003e1.6GB: $0.038 / 時間(30日で $27.36)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"その他\"\u003eその他\u003c/h3\u003e\n\u003cp\u003eデータ転送料金などがかかる可能性があります。\u003c/p\u003e\n"
  }, 
  {
    "title": "Dash",
    "url": "https://www.ikemo3.com/manual/dash/",
    "contents": "\u003ch2 id=\"スニペット\"\u003eスニペット\u003c/h2\u003e\n\u003cp\u003e自分は \u003ccode\u003e;\u003c/code\u003e + 文字列にしています。\n\u003ccode\u003e;ama\u003c/code\u003e でHugoのAmazonショートコードを出したり。\u003c/p\u003e\n\u003ch3 id=\"日付時刻を入れる方法\"\u003e日付、時刻を入れる方法\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://kapeli.com/dash_guide#snippets\"\u003e4. Snippets\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eスニペットに \u003ccode\u003e@date\u003c/code\u003e と入れることで、現在の日付が入ります。\u003c/li\u003e\n\u003cli\u003eスニペットに \u003ccode\u003e@time\u003c/code\u003e と入れることで、現在の時刻が入ります。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれらの書式はPreferences → Snippets → Special placeholder で指定します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e年月日: \u003ccode\u003eyyyy-MM-dd\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e時分(24時間): \u003ccode\u003eHH:mm\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"変数を使う方法\"\u003e変数を使う方法\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003e__var__\u003c/code\u003e のように入れると(Pythonっぽい)、スニペット挿入時に変数の中に何を入れるかを聞いてくれます。\n\u003ccode\u003evar\u003c/code\u003e のところには日本語も使えるので、説明を入れると良さそうです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Ec2",
    "url": "https://www.ikemo3.com/tags/ec2/",
    "contents": ""
  }, 
  {
    "title": "Elastic IPアドレス",
    "url": "https://www.ikemo3.com/dic/elastic-ip-address/",
    "contents": "\u003ch2 id=\"elastic-ipアドレスとは\"\u003eElastic IPアドレスとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/ec2/\"\u003eEC2\u003c/a\u003eインスタンスに紐付ける、固定IPアドレスです。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/dic/ec2/\"\u003eEC2\u003c/a\u003e実行中のインスタンスに関連付けられたIPアドレスは無料で、\n停止されたインスタンスに関連付け、もしくは関連付けられていない場合は料金がかかるようになっています。\u003c/p\u003e\n\u003cp\u003e2018/12/10現在の価格。\nIPv4のアドレスが枯渇しているため、結構高めですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e東京リージョン: $0.005 / 1時間(30日あたり $3.6)\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Macos",
    "url": "https://www.ikemo3.com/tags/macos/",
    "contents": ""
  }, 
  {
    "title": "ikemo memo",
    "url": "https://www.ikemo3.com/",
    "contents": "\u003ch2 id=\"サイト一覧\"\u003eサイト一覧\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eikemo memo(このサイト): 技術記事や、その他雑記\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://nextstep.shogizuki.com/\"\u003eFrom NeXT To Mac\u003c/a\u003e: いわゆる普通のブログ\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gsb.ikemo3.com/\"\u003eゴシップサイトブロッカー\u003c/a\u003e: Google Chrome拡張機能\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Amazon Elastic Container Service(Amazon ECS)",
    "url": "https://www.ikemo3.com/dic/ecs/",
    "contents": "\u003ch2 id=\"amazon-ecsとは\"\u003eAmazon ECSとは\u003c/h2\u003e\n\u003cp\u003eDockerコンテナを管理するためのサービスです。\u003c/p\u003e\n\u003ch2 id=\"料金\"\u003e料金\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/fargate/\"\u003eAWS Fargate\u003c/a\u003e起動タイプモデル: 使用したvCPUやメモリに対して料金が発生する。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/ec2/\"\u003eAmazon EC2\u003c/a\u003e起動タイプモデル: 使用したEC2のリソースに対して料金が発生する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFargateでメモリ2GBで1vCPUの場合、1時間あたり $0.0158 * 2 + $0.0632 = $0.0948かかる。\nEC2のt2.smallの場合、1時間あたり$0.0304かかる。\u003c/p\u003e\n\u003cp\u003eパッと見てFargateが高そうに見えますが、それなりの理由がありそうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/sudoyu/items/cde059bf98f3d32cfa61\"\u003e新しいマネージドコンテナサービスAWS Fargateの価格は高いか安いか？ECS/Fargateのコスト最適化を考えてみよう - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/nabeken/items/69b47e2d346a61d34176\"\u003eFargateのvCPU性能と価格感等雑感 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "AWS: クーポンの適用方法",
    "url": "https://www.ikemo3.com/inverted/aws/coupon/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eイベントなどでクーポンを貰ったときに適用するための方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eAWSにログイン\u003c/li\u003e\n\u003cli\u003e請求ダッシュボードを選択\u003c/li\u003e\n\u003cli\u003e左側から「クレジット」を選択\u003c/li\u003e\n\u003cli\u003eプロモーションコードにもらったクーポンの番号を入力する\u003c/li\u003e\n\u003cli\u003e適用ボタンを押す\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003eどのサービスが使えるかは「適用可能な製品」のリンクをクリックしてください。\u003c/p\u003e\n"
  }, 
  {
    "title": "Billing",
    "url": "https://www.ikemo3.com/tags/billing/",
    "contents": ""
  }, 
  {
    "title": "Compute",
    "url": "https://www.ikemo3.com/tags/compute/",
    "contents": ""
  }, 
  {
    "title": "Docker",
    "url": "https://www.ikemo3.com/tags/docker/",
    "contents": ""
  }, 
  {
    "title": "Git: パスワード変更後にPushするとAuthentication Failedとなる件の対応",
    "url": "https://www.ikemo3.com/inverted/git/auth-failed-after-password-change/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eGitサーバ(GitBucketとか)パスワード変更後に、git pushすると\nAuhentication Failedとエラーになる件の対応方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003egit push\u003c/code\u003eではなく、以下のようにpushを最初からやり直します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit push -u origin master\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Heroku: java-getting-startedアプリでローカルDBを使いたい場合の設定",
    "url": "https://www.ikemo3.com/inverted/heroku/java-datasource/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eHerokuでJavaのサンプルアプリを動かす方法です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://devcenter.heroku.com/articles/getting-started-with-java\"\u003eGetting Started on Heroku with Java | Heroku Dev Center\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e以下の作業が必要です。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003ePostgreSQLのインストール\u003c/li\u003e\n\u003cli\u003eデータベースの作成\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.pgadmin.org/\"\u003epgAdmin\u003c/a\u003eを使うと楽です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e環境変数 \u003ccode\u003eJDBC_DATABASE_URL\u003c/code\u003e の設定\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e環境変数は以下のような形式で設定します。\u003c/p\u003e\n\u003cp\u003eこの場合は、\u003ccode\u003eheroku_test\u003c/code\u003eというデータベースを使います。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eexport JDBC_DATABASE_URL\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003ejdbc:postgresql://localhost:5432/heroku_test\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003eこの情報は、以下のチケットで見つけました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heroku/java-getting-started/issues/53\"\u003eDatasource not being recognized when running heroku local · Issue #53 · heroku/java-getting-started\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Java",
    "url": "https://www.ikemo3.com/tags/java/",
    "contents": ""
  }, 
  {
    "title": "Google",
    "url": "https://www.ikemo3.com/tags/google/",
    "contents": ""
  }, 
  {
    "title": "Googleのカスタム検索を作る方法",
    "url": "https://www.ikemo3.com/inverted/google/create-custom-search-engine/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eGoogleのカスタム検索を作る方法です。\niPhoneでは拡張機能が使えないので、有害なサイトを除去する方法としていいと思います。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e以下のサイトを使います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://cse.google.com/cse/\"\u003eカスタム検索エンジン\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://cse.google.com/cse/\"\u003eカスタム検索エンジン\u003c/a\u003eに移動\u003c/li\u003e\n\u003cli\u003eAddボタンを押す\u003c/li\u003e\n\u003cli\u003eダミーの設定を入れる\n\u003cul\u003e\n\u003cli\u003e検索するサイト: \u003ccode\u003ewww.example.com\u003c/code\u003e (※ダミー)\u003c/li\u003e\n\u003cli\u003e言語: 日本語\u003c/li\u003e\n\u003cli\u003eタイトルを設定\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e設定変更\n\u003cul\u003e\n\u003cli\u003e「検索するサイト」から \u003ccode\u003ewww.example.com\u003c/code\u003e を削除(ダミーを削除)\u003c/li\u003e\n\u003cli\u003e「ウェブ全体を検索」をオン\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e除外サイトを追加\n\u003cul\u003e\n\u003cli\u003e「検索するサイト」の詳細設定をクリックすると「除外するサイト」が表示される\u003c/li\u003e\n\u003cli\u003e有害サイトのホスト名を追加していく\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "ポートフォリオサイト",
    "url": "https://www.ikemo3.com/dic/portfolio-site/",
    "contents": "\u003ch2 id=\"ポートフォリオサイトとは\"\u003eポートフォリオサイトとは\u003c/h2\u003e\n\u003cp\u003e自分がどれだけのことができるかを示したサイトです。\u003c/p\u003e\n\u003ch2 id=\"ポートフォリオサイトの例\"\u003eポートフォリオサイトの例\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://nsuzuki7713.github.io/portfolio/\"\u003enaoto portfolio\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://hodalab.com/portfolio/\"\u003eHoda\u0026rsquo;s Portfolio\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.yoheim.net/portfolio/\"\u003eYohei Munesada\u0026rsquo;s Portfolio\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ポートフォリオサイトの説明\"\u003eポートフォリオサイトの説明\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://style.potepan.com/articles/491.html\"\u003eあると差がつく！プログラマーのポートフォリオを作ってみよう！ | 「ポテパンスタイル」\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/turmericN/items/76559f0b70983469e7c7\"\u003eエンジニアでポートフォリオ作りました - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Git: インデントを無視して比較",
    "url": "https://www.ikemo3.com/inverted/git/ignore-indent/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eGitでインデントを無視して比較する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e-w\u003c/code\u003e または \u003ccode\u003e--ignore-all-space\u003c/code\u003e オプションを使います。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003ediffの場合\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit diff -w\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003elogの場合\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit log -w -p\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Go: 静的ファイルを埋め込む方法",
    "url": "https://www.ikemo3.com/inverted/golang/embed-file/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eGoで静的ファイルを埋め込む方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eGo 1.11.1で確認しています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003estatikを使います。\n他にもいろいろあったみたいですが、現在活発にメンテナンスされているのはこれくらいのようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rakyll/statik\"\u003erakyll/statik: Embed files into a Go executable\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"埋め込み\"\u003e埋め込み\u003c/h3\u003e\n\u003cp\u003e以下のようにコマンドを実行します。\nすると、 \u003ccode\u003estatik/statik.go\u003c/code\u003e というファイルが作られます。\nこのファイルを見ると、データが埋め込まれているようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e-f: 強制的に上書き\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003estatik -src ソースディレクトリ -f\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"利用\"\u003e利用\u003c/h3\u003e\n\u003cp\u003e以下のようにします(抜粋なのでそのままでは動きません)\u003c/p\u003e\n\u003cp\u003eつまづいた点としては、 \u003ccode\u003efileSystem.Open\u003c/code\u003e の引数は \u003ccode\u003e/\u003c/code\u003e から始まることです。\nファイルシステムなので、まあ当然かもしれませんが。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e (\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003e_\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;./statik\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;github.com/rakyll/statik/fs\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efunc\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efoo\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// ファイルシステム読み込み\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003efileSystem\u003c/span\u003e, \u003cspan style=\"color:#a6e22e\"\u003eerr\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efs\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eNew\u003c/span\u003e()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eerr\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e!=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enil\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#75715e\"\u003e// エラー処理\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// ファイルオープン\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003ef\u003c/span\u003e, \u003cspan style=\"color:#a6e22e\"\u003eerr\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efileSystem\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eOpen\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;/index.json\u0026#34;\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eerr\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e!=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enil\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#75715e\"\u003e// エラー処理\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003edefer\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ef\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eClose\u003c/span\u003e()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Golang",
    "url": "https://www.ikemo3.com/tags/golang/",
    "contents": ""
  }, 
  {
    "title": "ぎんなん",
    "url": "https://www.ikemo3.com/manual/ginkgo/",
    "contents": "\u003ch2 id=\"煮る方法\"\u003e煮る方法\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e銀杏割り機で殻を破る\u003c/li\u003e\n\u003cli\u003eガムテープで薄皮を少し取る\u003c/li\u003e\n\u003cli\u003e塩を少し入れた鍋で5分ほど煮る\u003c/li\u003e\n\u003cli\u003e薄皮を剥く\u003c/li\u003e\n\u003cli\u003e小分けにしてラップかジップロックに入れる\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"封筒を使う方法\"\u003e封筒を使う方法\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e銀杏割り機で殻を破る\u003c/li\u003e\n\u003cli\u003e厚めの封筒に入れて念入りに折る\n\u003cul\u003e\n\u003cli\u003e(ダイソーの薄めのはダメだった)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e電子レンジで1分(30秒x2回の方が安心)\u003c/li\u003e\n\u003cli\u003e薄皮をむいて塩をつけて食べる\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"課題\"\u003e課題\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e封筒を使っても電子レンジで途中で開いてしまう\n\u003cul\u003e\n\u003cli\u003e水切りネットを使う方法があるらしい。\u003c/li\u003e\n\u003cli\u003eケースを使う方法も書かれていた。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e薄皮が剥けない\n\u003cul\u003e\n\u003cli\u003e泡立て器でゴシゴシするといいらしい。おたまやターナーだとイマイチだった。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Ansible 2.7でyum + with_itemsを使うと出る警告の直し方",
    "url": "https://www.ikemo3.com/inverted/ansible/2.7-yum/",
    "contents": "\u003cp\u003eこの記事はQiitaに書いたもののコピーです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/ikemo/items/9b563db81bba1a2fdc94\"\u003eAnsible 2.7でyum + with_itemsを使うと出る警告の直し方 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"警告の内容\"\u003e警告の内容\u003c/h2\u003e\n\u003cp\u003eAnsible 2.7でyumモジュールを使っていたところ、以下の警告が出ました。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e[DEPRECATION WARNING]: Invoking \u0026#34;yum\u0026#34; only once while using a loop via \nsquash_actions is deprecated. Instead of using a loop to supply multiple items \nand specifying `name: {{ item }}`, please use `name: [\u0026#39;git\u0026#39;, \u0026#39;gcc\u0026#39;]` and remove\n the loop. This feature will be removed in version 2.11. Deprecation warnings \ncan be disabled by setting deprecation_warnings=False in ansible.cfg.\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e要はループを使うなと言うわけですが、squash_actionsって何か知らなかったので調べてみました。\u003c/p\u003e\n\u003ch2 id=\"squash_actionsとは\"\u003esquash_actionsとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.ansible.com/ansible/2.7/reference_appendices/config.html#envvar-ANSIBLE_SQUASH_ACTIONS\"\u003eANSIBLE_SQUASH_ACTIONS\u003c/a\u003eに以下のように記載されています。\u003c/p\u003e\n\u003cp\u003eざっくり言うと、with_によるループを使っているときに、リストで渡すように最適化する機能です。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eAnsible can optimise actions that call modules that support list parameters when using with_ looping. Instead of calling the module once for each item, the module is called once with the full list.The default value for this setting is only for certain package managers, but it can be used for any module.Currently, this is only supported for modules that have a name or pkg parameter, and only when the item is the only thing being passed to the parameter.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e具体的には、以下のように書かれているときに、\nyumモジュールを2回実行するのではなく、\u003ccode\u003e['git', 'gcc']\u003c/code\u003eのように自動的にリストにして、1回で実行してくれます。便利ですね。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003eyum\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ename={{ item }}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003ewith_items\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    - \u003cspan style=\"color:#ae81ff\"\u003egit\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    - \u003cspan style=\"color:#ae81ff\"\u003egcc\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ca href=\"https://docs.ansible.com/ansible/2.7/reference_appendices/config.html#default-squash-actions\"\u003eDEFAULT_SQUASH_ACTIONS\u003c/a\u003eによれば、yumの他に、apt、homebrewなどパッケージマネージャがデフォルトで定義されています。\u003c/p\u003e\n\u003ch2 id=\"修正方法\"\u003e修正方法\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_2.7.html#using-a-loop-on-a-package-module-via-squash-actions\"\u003eAnsible 2.7 Porting Guide\u003c/a\u003eや\u003ca href=\"https://docs.ansible.com/ansible/latest/modules/yum_module.html\"\u003eyum\u003c/a\u003eに書かれているように、以下のようにします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003eyum\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;{{ packages }}\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003estate\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003epresent\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003evars\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003epackages\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    - \u003cspan style=\"color:#ae81ff\"\u003egit\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    - \u003cspan style=\"color:#ae81ff\"\u003egcc\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eまた、yumモジュールに関しては、以下のようにも書けます。こちらの方がシンプルですね。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003eyum\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      - \u003cspan style=\"color:#ae81ff\"\u003egit\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      - \u003cspan style=\"color:#ae81ff\"\u003egcc\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Yum",
    "url": "https://www.ikemo3.com/tags/yum/",
    "contents": ""
  }, 
  {
    "title": "JavaScriptでValueObjectは難しい?",
    "url": "https://www.ikemo3.com/theme/javascript/value-object/",
    "contents": "\u003ch2 id=\"martin-fowler氏のblikiより\"\u003eMartin Fowler氏のBlikiより\u003c/h2\u003e\n\u003cp\u003eこの記事を読みました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://martinfowler.com/bliki/ValueObject.html\"\u003eValueObject\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e斜め読みなんですが、JavaScriptは\u003ccode\u003e===\u003c/code\u003e, \u003ccode\u003e!==\u003c/code\u003eの定義ができなく、\nsome, includeなどのメソッドはその\u003ccode\u003e===\u003c/code\u003eに依存している(はず)なので、\n標準ライブラリだけでValue Objectを作るのは難しそうかなと読み取りました。\u003c/p\u003e\n\u003cp\u003eとなると自前でCollectionなどのライブラリを作る必要がありますが、\nたぶんそれが\u003ca href=\"https://facebook.github.io/immutable-js/\"\u003eimmutable.js\u003c/a\u003eかなと。\u003c/p\u003e\n\u003ch2 id=\"scrapboxのメモより\"\u003eScrapboxのメモより\u003c/h2\u003e\n\u003cp\u003eなぜかこのメモが残ってたので・・・\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://crushlovely.com/journal/7-patterns-to-refactor-javascript-applications-value-objects/\"\u003e7 Patterns to Refactor JavaScript Applications: Value Objects | Crush \u0026amp; Lovely - Think beyond the screen\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf\"\u003eObject.prototype.valueOf() - JavaScript | MDN\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/toString\"\u003eObject.prototype.toString() - JavaScript | MDN\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Value-Object",
    "url": "https://www.ikemo3.com/tags/value-object/",
    "contents": ""
  }, 
  {
    "title": "d",
    "url": "https://www.ikemo3.com/dic/d/",
    "contents": "\u003ch2 id=\"dとは\"\u003edとは\u003c/h2\u003e\n\u003cp\u003eアルファベットの4番目の文字です。\u003c/p\u003e\n\u003ch2 id=\"unixlinuxでのd\"\u003eUnix/Linuxでのd\u003c/h2\u003e\n\u003ch3 id=\"etcconfd-とかのd\"\u003e/etc/conf.d とかの\u003ccode\u003ed\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eこれはディレクトリのことです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://unix.stackexchange.com/questions/4029/what-does-the-d-stand-for-in-directory-names\"\u003efhs - What does the .d stand for in directory names? - Unix \u0026amp; Linux Stack Exchange\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"systemdとかのd\"\u003esystemdとかの\u003ccode\u003ed\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eこれはdaemonのことです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.freedesktop.org/wiki/Software/systemd/\"\u003esystemd\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eWhy? Because it\u0026rsquo;s a system daemon, and under Unix/Linux those are in lower case, and get suffixed with a lower case d.\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "Api-Gateway",
    "url": "https://www.ikemo3.com/tags/api-gateway/",
    "contents": ""
  }, 
  {
    "title": "AWSで独自ドメインからアクセスできるServerless APIを作ってみた",
    "url": "https://www.ikemo3.com/inverted/serverless/create-api/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eAWS Lambdaを使ったサーバレスAPIを実装し、\nそれを独自ドメインに割り当てる方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAWS CLIがインストールされていること\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e以下のサービスを使います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAWS Lambda\u003c/li\u003e\n\u003cli\u003eAmazon API Gateway\u003c/li\u003e\n\u003cli\u003eAWS Certificate Manager\u003c/li\u003e\n\u003cli\u003eAmazon Route 53\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eまた、フレームワークにServerless Frameworkを使います。\u003c/p\u003e\n\u003ch2 id=\"手順サービスの作成\"\u003e手順(サービスの作成)\u003c/h2\u003e\n\u003cp\u003eもしCAAレコードを設定していて、値にamazon.comがない場合、\nキャッシュが切れるまで時間がかかるため、先に設定した方がいいです。\u003c/p\u003e\n\u003ch3 id=\"serverless-frameworkのインストール\"\u003eServerless Frameworkのインストール\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm install -g serverless\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e以下のコマンドでバージョンが確認できます。\n今回は\u003cstrong\u003e1.32.0\u003c/strong\u003eでした。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eserverless -v\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esls -v\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下では打つのが簡単な、slsコマンドを使用します。\u003c/p\u003e\n\u003ch3 id=\"アクセスキーの作成\"\u003eアクセスキーの作成\u003c/h3\u003e\n\u003cp\u003eこちらの記事を参考にしてください。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dev.classmethod.jp/cloud/aws/easy-deploy-of-lambda-with-serverless-framework/\"\u003e今から始めるServerless Frameworkで簡単Lambda開発環境の構築 ｜ DevelopersIO\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただし自分は、profileを明示的に指定しました。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eaws configure --profile sls\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"サービスの作成\"\u003eサービスの作成\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esls create -t aws-python -p slstest\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eオプションは以下になります。その他のオプションは\u003ccode\u003esls create --help\u003c/code\u003eで。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-t\u003c/code\u003e: テンプレート\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-p\u003c/code\u003e: パス\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"serverlessymlの編集\"\u003eserverless.ymlの編集\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd slstest\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003evi serverless.yml\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e以下のようにprofileとregionを設定してください。\nただし環境に依存するので、\u003ccode\u003e--aws-profile\u003c/code\u003eオプションの方がいいかもしれません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://serverless.com/framework/docs/providers/aws/guide/credentials/#using-the-aws-profile-option\"\u003eUsing the aws-profile option\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eprovider\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eaws\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003eruntime\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003epython2.7\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003eprofile\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003esls\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003eregion\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eap-northeast-1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"デプロイ\"\u003eデプロイ\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esls deploy\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esls deploy --aws-profile sls \u003cspan style=\"color:#75715e\"\u003e# 明示的にprofileを指定する場合\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこの時に、以下のリソースが作成されます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eS3: バケット。中身はjsonとzipの模様。\u003c/li\u003e\n\u003cli\u003eCloudFormation: スタック。\u003c/li\u003e\n\u003cli\u003eLambda: 関数。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eあとIAMやログ関連の設定もされるようです。\u003c/p\u003e\n\u003cp\u003eもし見つからない場合は、リージョン指定が漏れている可能性があります。\n\u0026lsquo;us-east-1\u0026rsquo; リージョンに作成されていないか確認してください。\u003c/p\u003e\n\u003ch3 id=\"テスト\"\u003eテスト\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esls invoke -f hello\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"削除\"\u003e削除\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esls remove\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"手順サービスのapi化\"\u003e手順(サービスのAPI化)\u003c/h2\u003e\n\u003cp\u003eserverless.ymlを編集し、以下のようにeventsを追加します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003efunctions\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003ehello\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003ehandler\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ehandler.hello\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003eevents\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      - \u003cspan style=\"color:#f92672\"\u003ehttp\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e          \u003cspan style=\"color:#f92672\"\u003epath\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ehello\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e          \u003cspan style=\"color:#f92672\"\u003emethod\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eget\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e編集したらデプロイします。\u003c/p\u003e\n\u003cp\u003eコンソールに以下のように書かれるので、このURLにアクセスすることで、サービスが使えます。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eendpoints:\n  GET - https://xxx.execute-api.ap-northeast-1.amazonaws.com/dev/hello\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"手順apiの独自ドメインへの割り当て\"\u003e手順(APIの独自ドメインへの割り当て)\u003c/h2\u003e\n\u003cp\u003eこのURLを直接使うことも可能ですが、以下の2つの問題があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAWSが勝手に割り当てたドメインであること\u003c/li\u003e\n\u003cli\u003eパスにステージ名(\u003ccode\u003edev\u003c/code\u003e)が含まれていること\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eそのため、使いやすくするように、独自ドメインに割り当てます。\u003c/p\u003e\n\u003cp\u003e今回は \u003ccode\u003eapi-dev.ikemo3.com\u003c/code\u003e に割り当てます。\u003c/p\u003e\n\u003ch3 id=\"証明書の作成\"\u003e証明書の作成\u003c/h3\u003e\n\u003cp\u003eこちらの記事を参考にしました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dev.classmethod.jp/cloud/api-gateway-custom-domain-ssl/\"\u003eAPI GatewayをカスタムドメインでHTTPS化する ｜ DevelopersIO\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eドメイン名の追加画面で入力するドメイン名に \u003ccode\u003eapi-dev.ikemo3.com\u003c/code\u003e を入れます。\u003c/p\u003e\n\u003cp\u003eそれからRoute 53にCNAMEレコードを追加し、しばらく待ちます。\n最大30分ですが、数分でOKでした。\u003c/p\u003e\n\u003ch3 id=\"api-gatewayでカスタムドメイン名の設定\"\u003eAPI Gatewayでカスタムドメイン名の設定\u003c/h3\u003e\n\u003cp\u003eこれも以下の記事が参考になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dev.classmethod.jp/cloud/api-gateway-custom-domain-ssl/\"\u003eAPI GatewayをカスタムドメインでHTTPS化する ｜ DevelopersIO\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e設定は以下になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eドメイン名: \u003ccode\u003eapi-dev.ikemo3.com\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eエンドポイントの設定: \u003ccode\u003eRegional\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eACM証明書: 作成した証明書\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e作成したら、「編集」リンクをクリックして、\nパスマッピングを追加します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eパス: /\u003c/li\u003e\n\u003cli\u003e送信先\n\u003cul\u003e\n\u003cli\u003eAPI: 作成したAPI\u003c/li\u003e\n\u003cli\u003eステージ: dev\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e最後に、Route 53に登録します。\nAnsibleでは以下になります。\nvalueにはターゲットドメイン名を入れてください。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eapi-dev.ikemo3.com\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003eroute53\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003estate\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003epresent\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003ezone\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eikemo3.com\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003erecord\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eapi-dev.ikemo3.com\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003etype\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eCNAME\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003eoverwrite\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003evalue\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003exxx.execute-api.ap-northeast-1.amazonaws.com\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこれで \u003ca href=\"https://api-dev.ikemo3.com/hello\"\u003ehttps://api-dev.ikemo3.com/hello\u003c/a\u003e にアクセスすると、サービスが実行されます。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003e応答が返ってくるまでの時間は200ms〜800ms程度でした。\u003c/p\u003e\n"
  }, 
  {
    "title": "Route53",
    "url": "https://www.ikemo3.com/tags/route53/",
    "contents": ""
  }, 
  {
    "title": "Serverless-Framework",
    "url": "https://www.ikemo3.com/tags/serverless-framework/",
    "contents": ""
  }, 
  {
    "title": "Redmine",
    "url": "https://www.ikemo3.com/tags/redmine/",
    "contents": ""
  }, 
  {
    "title": "Redmine: 祝祭日をカレンダーに表示する方法",
    "url": "https://www.ikemo3.com/inverted/redmine/holiday-calendar/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eRedmineで、休日をカレンダーに表示する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e以下のプラグインを使います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/onozaty/redmine-view-customize\"\u003eonozaty/redmine-view-customize: View customize plugin for Redmine\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003eこちらの記事で書かれている方法そのままでOKです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/kn5/items/4f0d5f2b86527f5f3a1d\"\u003eRedmineのView Customize pluginでカレンダーに祝日表示 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Dqb",
    "url": "https://www.ikemo3.com/tags/dqb/",
    "contents": ""
  }, 
  {
    "title": "ドラゴンクエストビルダーズ: きれいな水の入手方法",
    "url": "https://www.ikemo3.com/inverted/dqb/clear-water/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e浄化のふんすいがあるにも関わらず、きれいな水が入手できないときに確認する項目です。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eきれいな噴水は\u003cstrong\u003e水の中に設置する\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eきれいな噴水の周り1マスで水を汲む\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e設置場所間違えて失敗しました(´･ω･`)\u003c/p\u003e\n"
  }, 
  {
    "title": "Data PumpによるインポートでORA-39001が出る場合の確認項目",
    "url": "https://www.ikemo3.com/inverted/oracle/data-pump-39001/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eData Pumpによるインポート時に、ORA-39001が出る場合の確認項目です。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eORA-39001 引数値が無効です\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"確認項目\"\u003e確認項目\u003c/h2\u003e\n\u003cp\u003e以下の場合に発生します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eディレクトリ・オブジェクトやファイル名が間違っている\u003c/li\u003e\n\u003cli\u003eData Pumpを使ってエクスポートしていない(従来のexpコマンドによるエクスポートによるダンプファイルを使用)\u003c/li\u003e\n\u003cli\u003eData Pumpのバージョン違い\n\u003cul\u003e\n\u003cli\u003eエクスポート時にversionパラメータを指定してください。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Oracle",
    "url": "https://www.ikemo3.com/tags/oracle/",
    "contents": ""
  }, 
  {
    "title": "コピペブログ",
    "url": "https://www.ikemo3.com/dic/copipe-blog/",
    "contents": "\u003ch2 id=\"コピペブログとは\"\u003eコピペブログとは\u003c/h2\u003e\n\u003cp\u003e寄生虫です。\u003c/p\u003e\n\u003ch2 id=\"企業運営のコピペブログ\"\u003e企業運営のコピペブログ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://nlab.itmedia.co.jp/nl/articles/1807/27/news114.html\"\u003eイラスト無断転載、まとめサイトに30万円の賠償命じる判決　「VIPPER速報」「ガールズVIPまとめ」など訴えた注目裁判が決着 - ねとらぼ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこの件がなかなか面白いのは、裁判で争った結果、会社名がバレたということですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e株式会社スタークラウン: 代表 与那嶺 亘\u003c/li\u003e\n\u003cli\u003e株式会社デザート: 代表 溝口 匠\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Bulma",
    "url": "https://www.ikemo3.com/tags/bulma/",
    "contents": ""
  }, 
  {
    "title": "Bulma: iPadの縦向きをtabletとして扱う方法",
    "url": "https://www.ikemo3.com/inverted/bulma/ipad-as-tablet/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eBulmaのデフォルトでは、iPadの縦向きはmobileとして扱われます。\nこれをtabletとして扱う方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eBulma 0.7.1で確認しています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003emobileとして扱われるのは、以下の理由からです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e縦向きのiPadの幅は768px\u003c/li\u003e\n\u003cli\u003eBulmaのデフォルトは、mobileは〜768px\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://bulma.io/documentation/overview/responsiveness/\"\u003eResponsiveness | Bulma: a modern CSS framework based on Flexbox\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eよって、Bulmaのデフォルトのmobileを〜767pxにすればOKです。\u003c/p\u003e\n\u003cp\u003eこの定義は \u003ccode\u003enode_modules/bulma/sass/utilities/initial-variables.sass\u003c/code\u003e に以下のように定義されています。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sass\" data-lang=\"sass\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e$tablet\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e769\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e !default\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e何で769なのかというと、 \u003ccode\u003enode_modules/bulma/sass/utilities/mixins.sass\u003c/code\u003e に書かれているように、\nmobileのmax-widthには-1した値が使われているからです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sass\" data-lang=\"sass\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003e=mobile\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e  \u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003e@media\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e \u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003escreen\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e \u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003eand\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e \u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003e(max-width\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e $tablet \u003cspan style=\"color:#f92672\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e@\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003econtent\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下のように上書きすればOKです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sass\" data-lang=\"sass\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e@charset\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;utf-8\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e$tablet\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e768\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e@import\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;../../node_modules/bulma/bulma.sass\u0026#34;;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eここではiPadだけ考えているので1pxだけ小さくしていますが、\n他の値でもOKです。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003eBulmaプロジェクトでのIssueは以下になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jgthms/bulma/issues/1672\"\u003eTablet breakpoints are strange · Issue #1672 · jgthms/bulma\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Html",
    "url": "https://www.ikemo3.com/tags/html/",
    "contents": ""
  }, 
  {
    "title": "HTML5",
    "url": "https://www.ikemo3.com/manual/html5/",
    "contents": "\u003ch2 id=\"html5から追加された要素\"\u003eHTML5から追加された要素\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/HTML/Element/article\"\u003earticle\u003c/a\u003e: 独立した記事\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/HTML/Element/nav\"\u003enav\u003c/a\u003e: ナビゲーション。メニューや目次など。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/HTML/Element/header\"\u003eheader\u003c/a\u003e: ヘッダ。サイト名とかを入れる?\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/HTML/Element/section\"\u003esection\u003c/a\u003e: セクション\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Ipad",
    "url": "https://www.ikemo3.com/tags/ipad/",
    "contents": ""
  }, 
  {
    "title": "Openjdk",
    "url": "https://www.ikemo3.com/tags/openjdk/",
    "contents": ""
  }, 
  {
    "title": "OpenJDKの互換性について",
    "url": "https://www.ikemo3.com/theme/openjdk-compatibility/",
    "contents": "\u003ch2 id=\"このページについて\"\u003eこのページについて\u003c/h2\u003e\n\u003cp\u003eOracle JDKがJava 11以降は開発・テスト目的のみとなり、本番環境での使用は有償になりました。\nそこで、無料で使える代替のOpenJDKに注目が集まっています。\u003c/p\u003e\n\u003cp\u003eその互換性について調べてみました。\u003c/p\u003e\n\u003ch2 id=\"jdk-6の頃にopenjdkは評価済\"\u003eJDK 6の頃にOpenJDKは評価済\u003c/h2\u003e\n\u003cp\u003e日本の情報処理推進機構(IPA)によってOpenJDK 6と、Sun JDKの比較が行われています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ossipedia.ipa.go.jp/doc/208/\"\u003ehttps://ossipedia.ipa.go.jp/doc/208/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.slideshare.net/hadoopxnttdata/openjdk-nttdata-oss-day-2015-autumn\"\u003eOpenJDKは使い物になるか？OpenJDKの実際と今後 （NTTデータ オープンソースDAY 2015 Autumn 講演資料）\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただJDKがオープンソースになったのはJDK 7の途中で、OpenJDK 6はその逆移植です。\nそのため、今は当時より互換性が増しているのは間違いありません。\u003c/p\u003e\n\u003cp\u003e気になるのがWikipediaにもありますが、SNMPですね。\nおそらくSNMP agentのとこかと思いますが。OpenJDK 11で消えてますね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://bugs.openjdk.java.net/browse/JDK-8071367\"\u003e[JDK-8071367] Remove SNMP agent - Java Bug System\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"oracleの見解\"\u003eOracleの見解\u003c/h2\u003e\n\u003cp\u003e公式見解と言えるのは、以下のブログの情報です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://web.archive.org/web/20150629214653/https://blogs.oracle.com/henrik/entry/java_7_questions_answers\"\u003eJava 7 Questions \u0026amp; Answers (Henrik on Java)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIt is very close - our build process for Oracle JDK releases builds on OpenJDK 7 by adding just a couple of pieces, like the deployment code, which includes Oracle\u0026rsquo;s implementation of the Java Plugin and Java WebStart, as well as some closed source third party components like a graphics rasterizer, some open source third party components, like Rhino, and a few bits and pieces here and there, like additional documentation or third party fonts. Moving forward, our intent is to open source all pieces of the Oracle JDK except those that we consider commercial features such as JRockit Mission Control (not yet available in Oracle JDK), and replace encumbered third party components with open source alternatives to achieve closer parity between the code bases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e違う点として、Javaプラグイン、Java Web Start、クローズドなサードパーティコンポーネント、\nオープンソースなサードパーティコンポーネント(Rhinoなど)が挙げられているようです。\u003c/p\u003e\n\u003cp\u003eこの記述でピンときたのですが、Javaプラグイン、Java Web Start、\nJavaScriptエンジン(Rhino →　Nashorn)は全て最近消えた機能ですね。\u003c/p\u003e\n\u003ch2 id=\"評価は必要だがほぼ問題なさそう\"\u003e評価は必要だが、ほぼ問題なさそう\u003c/h2\u003e\n\u003cp\u003e最初のIPAの評価はJDK 6の頃で、現状は違う可能性が高いです(主に良い意味で)。\nまたどちらにしても、本番環境で動かすには評価は必要でしょう。\u003c/p\u003e\n\u003cp\u003eただ、問題が出る可能性は低いと思います。\nOracle Java 8の無料サポートの終了も近いので、さっさと動かした方が良さそうです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Bulma",
    "url": "https://www.ikemo3.com/manual/bulma/",
    "contents": "\u003ch2 id=\"コンポーネント\"\u003eコンポーネント\u003c/h2\u003e\n\u003ch3 id=\"ナビゲーションバーnavbar\"\u003eナビゲーションバー(Navbar)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://bulma.io/documentation/components/navbar/\"\u003eNavbar\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://bulma.io/documentation/components/navbar/#colors\"\u003e色の指定\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Bulma: カスタマイズ方法(node-sass使用)",
    "url": "https://www.ikemo3.com/inverted/bulma/customize/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/manual/bulma/\"\u003eBulma\u003c/a\u003eのカスタマイズ方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e以下で確認しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enpm 6.4.1\u003c/li\u003e\n\u003cli\u003enode-sass 4.9.3\u003c/li\u003e\n\u003cli\u003eBulma 0.7.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e以下の方法を使います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://bulma.io/documentation/customize/with-node-sass/\"\u003eWith node-sass | Bulma: a modern CSS framework based on Flexbox\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e詳細は公式サイトを確認してください。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm init\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm install node-sass --save-dev\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm install bulma --save-dev\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e次に最低限の \u003ccode\u003e.scss\u003c/code\u003e ファイルを作成します。\nHugoの場合はパスは \u003ccode\u003eassets/sass/main.scss\u003c/code\u003e　あたりがいいかと。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-scss\" data-lang=\"scss\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e@charset\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;utf-8\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e@import\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;../../node_modules/bulma/bulma.sass\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eビルドは以下のように。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 開発用に監視\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm start\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# ビルド\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm run css-build\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Cli",
    "url": "https://www.ikemo3.com/tags/cli/",
    "contents": ""
  }, 
  {
    "title": "Css",
    "url": "https://www.ikemo3.com/tags/css/",
    "contents": ""
  }, 
  {
    "title": "Game",
    "url": "https://www.ikemo3.com/tags/game/",
    "contents": ""
  }, 
  {
    "title": "HugoでSass/SCSSを使う方法",
    "url": "https://www.ikemo3.com/inverted/hugo/use-scss/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/manual/hugo/\"\u003eHugo\u003c/a\u003eでSass/SCSSを使う方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eHugo 0.43以上が必要です。0.48で確認しています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHugo Pipesの機能を使います。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/hugo-pipes/scss-sass/\"\u003eSASS / SCSS | Hugo\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eただし、\u003ccode\u003eextended\u003c/code\u003eバージョンが必要です。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e現在は\u003ca href=\"/manual/netlify/\"\u003eNetlify\u003c/a\u003eでは動きません\u003c/strong\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eextendedバージョンが必要なのは、以下に記載されています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gohugoio/hugo/releases/tag/v0.43\"\u003eRelease v0.43 · gohugoio/hugo\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHugo is now released with two binary version: One with and one without SCSS/SASS support. At the time of writing, this is only available in the binaries on the GitHub release page. Brew, Snap builds etc. will come. But note that you only need the extended version if you want to edit SCSS. For your CI server, or if you don\u0026rsquo;t use SCSS, you will most likely want the non-extended version.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"extendedバージョンを取得\"\u003eextendedバージョンを取得\u003c/h3\u003e\n\u003cp\u003eまず、そもそも普通に入れたらextendedバージョンになる場合があるため、\n\u003ccode\u003ehugo version\u003c/code\u003eコマンドで確認します。\u003ccode\u003ev0.48/extended\u003c/code\u003eのように出ればOKです。\u003c/p\u003e\n\u003cp\u003eGitHubから取得する場合は、\u003ca href=\"https://github.com/gohugoio/hugo/releases\"\u003eHugoのリリースページ\u003c/a\u003eより、\u003ccode\u003eextended\u003c/code\u003eがついたアーカイブを取得します。\u003c/p\u003e\n\u003ch3 id=\"テンプレートへの組み込み\"\u003eテンプレートへの組み込み\u003c/h3\u003e\n\u003cp\u003e他のHugo Pipesの機能と同じなので、概要だけ。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003e.sass\u003c/code\u003eファイルの作成\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eresources.ToCSS\u003c/code\u003eを使う。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003eNetlifyで動かない理由は、以下のIssueに記載されています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/build-image/issues/183\"\u003einstall necessary packages for using a CGO-extension compiled version of Hugo · Issue #183 · netlify/build-image\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIssueの内容を見ると、Ubuntu 14.04を使っているのが原因のようです。\nUbuntu 14.04は2019/04にサポートが切れるので、遅くともそれまでにはなんとかなりそうですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://wiki.ubuntu.com/Releases\"\u003eReleases - Ubuntu Wiki\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"netlifyでsassscssを使うには\"\u003eNetlifyでSass/SCSSを使うには\u003c/h3\u003e\n\u003cp\u003e手元でビルドして、結果をコミットするのが良いみたいです。\nIssueにはHugoでビルドする方法が書かれていますが、自分はnode-sassを使いました。\n(Hugoの方が楽かも・・・)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://bulma.io/documentation/customize/with-node-sass/\"\u003eWith node-sass | Bulma: a modern CSS framework based on Flexbox\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Meigen",
    "url": "https://www.ikemo3.com/tags/meigen/",
    "contents": ""
  }, 
  {
    "title": "Nintendo",
    "url": "https://www.ikemo3.com/tags/nintendo/",
    "contents": ""
  }, 
  {
    "title": "Sass",
    "url": "https://www.ikemo3.com/manual/sass/",
    "contents": "\u003ch2 id=\"文法の拡張\"\u003e文法の拡張\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://sass-lang.com/documentation/file.SASS_REFERENCE.html#css_extensions\"\u003eルールのネスト\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://sass-lang.com/documentation/file.SASS_REFERENCE.html#parent-selector\"\u003e\u0026rsquo;\u0026amp;\u0026lsquo;で親を指す\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://sass-lang.com/documentation/file.SASS_REFERENCE.html#nested_properties\"\u003eプロパティのネスト\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ccode\u003ePlaceholder Selectors: %foo\u003c/code\u003eというのがあるらしいです。これはよくわかってません・・・\u003c/p\u003e\n\u003ch2 id=\"sassscript\"\u003eSassScript\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://sass-lang.com/documentation/file.SASS_REFERENCE.html#variables_\"\u003e変数\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e区切り文字として \u003ccode\u003e-\u003c/code\u003e　と　\u003ccode\u003e_\u003c/code\u003e　が使えますが、これらは同じものとして見なされます\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://sass-lang.com/documentation/file.SASS_REFERENCE.html#data_types\"\u003eデータ型\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://sass-lang.com/documentation/file.SASS_REFERENCE.html#operations\"\u003e演算子\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://sass-lang.com/documentation/file.SASS_REFERENCE.html#parentheses\"\u003eカッコ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://sass-lang.com/documentation/file.SASS_REFERENCE.html#functions\"\u003e関数\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://sass-lang.com/documentation/file.SASS_REFERENCE.html#interpolation_\"\u003e変数置換\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e#{変数名}\u003c/code\u003e とRuby形式ですね。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://sass-lang.com/documentation/file.SASS_REFERENCE.html#parent-script\"\u003e\u0026amp;\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eよくわかってない\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://sass-lang.com/documentation/file.SASS_REFERENCE.html#variable_defaults_default\"\u003e!default\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e未指定時のみ有効になるデフォルト値\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"/manual/mysql/\"\u003eMySQL\u003c/a\u003eと同じですね。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Sass",
    "url": "https://www.ikemo3.com/tags/sass/",
    "contents": ""
  }, 
  {
    "title": "tmux",
    "url": "https://www.ikemo3.com/manual/tmux/",
    "contents": "\u003ch2 id=\"software-design-2018年10月号に特集あり\"\u003eSoftware Design 2018年10月号に特集あり\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07G1XX455/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B07G1XX455.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07G1XX455/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nソフトウェアデザイン 2018年10月号\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"基本操作\"\u003e基本操作\u003c/h2\u003e\n\u003cp\u003eまだ全然使えないですが、とりあえずこれくらいは使えるといいかなと。。。\u003c/p\u003e\n\u003ch3 id=\"コマンド\"\u003eコマンド\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e起動: \u003ccode\u003etmux\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eアタッチ: \u003ccode\u003etmux attach [-t セッション名]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eセッション作成: \u003ccode\u003etmux new-session [-s セッション名]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eセッションのリスト: \u003ccode\u003etmux ls\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"tmux嬢の操作\"\u003etmux嬢の操作\u003c/h3\u003e\n\u003cp\u003eプレフィックスキー(デフォルトは\u003ccode\u003eCtrl + B\u003c/code\u003e)のあとに操作\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e作成: \u003ccode\u003eC\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eデタッチ: \u003ccode\u003eD\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e移動\n\u003cul\u003e\n\u003cli\u003e次へ: \u003ccode\u003eN\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e前へ: \u003ccode\u003eP\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "ゼルダの伝説シリーズの歴代売上をまとめてみた",
    "url": "https://www.ikemo3.com/theme/game/the-legend-of-zelda/",
    "contents": "\u003ch2 id=\"まとめるにあたっての基準\"\u003eまとめるにあたっての基準\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eリメイクおよびBSは除いています。\u003c/li\u003e\n\u003cli\u003e複数プラットフォームの同時発売は合算しています。\u003c/li\u003e\n\u003cli\u003e出典が怪しい(特にVGChartz\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e)、あるいはWikipediaで「要出典」となっているところがありますが、そのまま載せています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e要は\u003ca href=\"/dic/zelda-botw\"\u003eBotW\u003c/a\u003eが1000万超えたやったー!と言いたいだけのページです。\u003c/p\u003e\n\u003ch2 id=\"結果\"\u003e結果\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eタイトル\u003c/th\u003e\n          \u003cth\u003eプラットフォーム\u003c/th\u003e\n          \u003cth\u003e売上(世界, 万本)\u003c/th\u003e\n          \u003cth\u003e売上(日本, 万本)\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC\"\u003eゼルダの伝説\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eファミリーコンピュータ ディスクシステム\u003c/td\u003e\n          \u003ctd\u003e651\u003c/td\u003e\n          \u003ctd\u003e169\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%AE%E5%86%92%E9%99%BA\"\u003eリンクの冒険\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eファミリーコンピュータ ディスクシステム\u003c/td\u003e\n          \u003ctd\u003e438\u003c/td\u003e\n          \u003ctd\u003e161\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC_%E7%A5%9E%E3%80%85%E3%81%AE%E3%83%88%E3%83%A9%E3%82%A4%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B9\"\u003eゼルダの伝説 神々のトライフォース\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eスーパーファミコン\u003c/td\u003e\n          \u003ctd\u003e461\u003c/td\u003e\n          \u003ctd\u003e115\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC_%E5%A4%A2%E3%82%92%E3%81%BF%E3%82%8B%E5%B3%B6\"\u003eゼルダの伝説 夢をみる島\u003c/a\u003e\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003eゲームボーイ\u003c/td\u003e\n          \u003ctd\u003e383\u003c/td\u003e\n          \u003ctd\u003e54\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC_%E6%99%82%E3%81%AE%E3%82%AA%E3%82%AB%E3%83%AA%E3%83%8A\"\u003eゼルダの伝説 時のオカリナ\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eNINTENDO64\u003c/td\u003e\n          \u003ctd\u003e760\u003c/td\u003e\n          \u003ctd\u003e145\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC_%E3%83%A0%E3%82%B8%E3%83%A5%E3%83%A9%E3%81%AE%E4%BB%AE%E9%9D%A2\"\u003eゼルダの伝説 ムジュラの仮面\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eNINTENDO64\u003c/td\u003e\n          \u003ctd\u003e336\u003c/td\u003e\n          \u003ctd\u003e60\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC_%E3%81%B5%E3%81%97%E3%81%8E%E3%81%AE%E6%9C%A8%E3%81%AE%E5%AE%9F\"\u003eゼルダの伝説 ふしぎの木の実\u003c/a\u003e\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003eゲームボーイカラー\u003c/td\u003e\n          \u003ctd\u003e378\u003c/td\u003e\n          \u003ctd\u003e82\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC_%E9%A2%A8%E3%81%AE%E3%82%BF%E3%82%AF%E3%83%88\"\u003eゼルダの伝説 風のタクト\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eニンテンドーゲームキューブ\u003c/td\u003e\n          \u003ctd\u003e435\u003c/td\u003e\n          \u003ctd\u003e74\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC_4%E3%81%A4%E3%81%AE%E5%89%A3%2B\"\u003eゼルダの伝説 4つの剣+\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eニンテンドーゲームキューブ\u003c/td\u003e\n          \u003ctd\u003e?\u003c/td\u003e\n          \u003ctd\u003e12?\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC_%E3%81%B5%E3%81%97%E3%81%8E%E3%81%AE%E3%81%BC%E3%81%86%E3%81%97\"\u003eゼルダの伝説 ふしぎのぼうし\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eゲームボーイアドバンス\u003c/td\u003e\n          \u003ctd\u003e100+\u003c/td\u003e\n          \u003ctd\u003e23\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC_%E3%83%88%E3%83%AF%E3%82%A4%E3%83%A9%E3%82%A4%E3%83%88%E3%83%97%E3%83%AA%E3%83%B3%E3%82%BB%E3%82%B9\"\u003eゼルダの伝説 トワイライトプリンセス\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eWii・ニンテンドーゲームキューブ\u003c/td\u003e\n          \u003ctd\u003e885\u003c/td\u003e\n          \u003ctd\u003e64\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC_%E5%A4%A2%E5%B9%BB%E3%81%AE%E7%A0%82%E6%99%82%E8%A8%88\"\u003eゼルダの伝説 夢幻の砂時計\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eニンテンドーDS\u003c/td\u003e\n          \u003ctd\u003e413\u003c/td\u003e\n          \u003ctd\u003e91\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%AE%E3%83%9C%E3%82%A6%E3%82%AC%E3%83%B3%E3%83%88%E3%83%AC%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0\"\u003eリンクのボウガントレーニング\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eWii\u003c/td\u003e\n          \u003ctd\u003e480\u003c/td\u003e\n          \u003ctd\u003e25\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC_%E5%A4%A7%E5%9C%B0%E3%81%AE%E6%B1%BD%E7%AC%9B\"\u003eゼルダの伝説 大地の汽笛\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eニンテンドーDS\u003c/td\u003e\n          \u003ctd\u003e261\u003c/td\u003e\n          \u003ctd\u003e76\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC_%E3%82%B9%E3%82%AB%E3%82%A4%E3%82%A6%E3%82%A9%E3%83%BC%E3%83%89%E3%82%BD%E3%83%BC%E3%83%89\"\u003eゼルダの伝説 スカイウォードソード\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eWii\u003c/td\u003e\n          \u003ctd\u003e352\u003c/td\u003e\n          \u003ctd\u003e36\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC_%E7%A5%9E%E3%80%85%E3%81%AE%E3%83%88%E3%83%A9%E3%82%A4%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B92\"\u003eゼルダの伝説 神々のトライフォース2\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eニンテンドー3DS\u003c/td\u003e\n          \u003ctd\u003e251\u003c/td\u003e\n          \u003ctd\u003e47\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E7%84%A1%E5%8F%8C\"\u003eゼルダ無双\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eWii U\u003c/td\u003e\n          \u003ctd\u003e?\u003c/td\u003e\n          \u003ctd\u003e?\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC_%E3%83%88%E3%83%A9%E3%82%A4%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B93%E9%8A%83%E5%A3%AB\"\u003eゼルダの伝説 トライフォース3銃士\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eニンテンドー3DS\u003c/td\u003e\n          \u003ctd\u003e114\u003c/td\u003e\n          \u003ctd\u003e19\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC_%E3%83%96%E3%83%AC%E3%82%B9_%E3%82%AA%E3%83%96_%E3%82%B6_%E3%83%AF%E3%82%A4%E3%83%AB%E3%83%89\"\u003eゼルダの伝説 ブレス オブ ザ ワイルド\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eWii U・Nintendo Switch\u003c/td\u003e\n          \u003ctd\u003e3069\u003c/td\u003e\n          \u003ctd\u003e354\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e「VG占い」と呼ばれるくらいなので・・・\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eゲームボーイカラー版除く\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e2作品を合算\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "汚物は消毒だー!",
    "url": "https://www.ikemo3.com/dic/obutsu-ha-syoudoku-da/",
    "contents": "\u003ch2 id=\"汚物は消毒だーとは\"\u003e汚物は消毒だー!とは\u003c/h2\u003e\n\u003cp\u003e綺麗好きな人の一言です。\u003c/p\u003e\n\u003ch2 id=\"元ネタ\"\u003e元ネタ\u003c/h2\u003e\n\u003cp\u003eもちろん北斗の拳ですが、正確には、北斗の拳 10巻の「南斗の帝王！の巻」からです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00YV3ZYAS/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00YV3ZYAS.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00YV3ZYAS/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n北斗の拳 １０巻\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eただ、ネットでは「聖帝様の御視察だ〰〰っ!!」のセリフが\nこの「汚物は消毒だ〰!!」に改変されているのも見かけます\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://dic.nicovideo.jp/b/a/%E6%B1%9A%E7%89%A9%E3%81%AF%E6%B6%88%E6%AF%92%E3%81%A0%E3%83%BC%21/31-#37\"\u003eニコニコ大百科で手書きされた37版のレス\u003c/a\u003eが正確です。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e画像検索すると、有害ブログが引っかかりますね・・・\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Oracle Data Pumpによるエクスポート",
    "url": "https://www.ikemo3.com/inverted/oracle/data-pump-export/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eOracle Data Pumpエクスポートの使い方です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003ch3 id=\"cliの場合\"\u003eCLIの場合\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eNLS_LANGの設定\n\u003cul\u003e\n\u003cli\u003eコマンドラインの場合、以下の仕様により、NLS_LANGをデータベースに合わせる必要があります。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://support.oracle.com/knowledge/Oracle%20Database%20Products/1321034_1.html\"\u003eError ORA-39064 Might Be Encountered By DataPump Export (EXPDP) When NLS_LANG Is Different From Database Character Set\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eexpdpの実行\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"plsqlの場合\"\u003ePL/SQLの場合\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eディレクトリ・オブジェクトの作成\u003c/li\u003e\n\u003cli\u003eエクスポートの実行\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"手順cliの場合\"\u003e手順(CLIの場合)\u003c/h2\u003e\n\u003ch3 id=\"nls_langの設定\"\u003eNLS_LANGの設定\u003c/h3\u003e\n\u003cp\u003e以下のSQLで地域と言語を取得します。\n最低でもcharsetだけ指定すれば動きますが・・・\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sql\" data-lang=\"sql\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eSELECT\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003ePARAMETER\u003c/span\u003e, VALUE \u003cspan style=\"color:#66d9ef\"\u003eFROM\u003c/span\u003e NLS_DATABASE_PARAMETERS \u003cspan style=\"color:#66d9ef\"\u003eWHERE\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003ePARAMETER\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eIN\u003c/span\u003e (\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;NLS_TERRITORY\u0026#39;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;NLS_LANGUAGE\u0026#39;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;NLS_CHARACTERSET\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/REFRN/GUID-161ABCAF-6095-4991-929A-B991A3642782.htm\"\u003eNLS_TERRITORY\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/REFRN/GUID-0DD64F19-BEF2-4B4B-A232-3BA3F8494949.htm\"\u003eNLS_LANGUAGE\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eそれから、NLS_LANGを適切に設定します。\u003c/p\u003e\n\u003cp\u003echarsetのみ指定する場合は \u003ccode\u003eexport NLS_LANG=.JA16EUC\u003c/code\u003e のようにドット始まりで指定してください。\n(以下の「注意」参照)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/NLSPG/ch3globenv.htm\"\u003eグローバリゼーション・サポート環境の設定\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"expdpコマンドの実行\"\u003eexpdpコマンドの実行\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/SUTIL/toc.htm\"\u003eOracle® Databaseユーティリティ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例えば以下のようにします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eexpdp \u0026lt;ユーザ\u0026gt;/\u0026lt;パスワード\u0026gt;@\u0026lt;接続文字列\u0026gt; directory\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u0026lt;ディレクトリ\u0026gt; dumpfile\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u0026lt;ファイル名\u0026gt; logfile\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u0026lt;ログファイル名\u0026gt; full\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003ey\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/SUTIL/GUID-D7F1C0E8-E3CF-495E-9596-E08AEE36BB6B.htm\"\u003eDIRECTORY\u003c/a\u003e: ディレクトリ・オブジェクトの名前\n\u003cul\u003e\n\u003cli\u003eプロシージャの場合は大文字で指定する必要がありますが、こちらは小文字でもOKです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/SUTIL/GUID-A6300021-419F-4C1D-AFF1-38FE1123326B.htm\"\u003eDUMPFILE\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/SUTIL/GUID-BA07401C-6261-4B07-AD2C-06CD0A6E0BE9.htm\"\u003eFULL\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/SUTIL/GUID-3536160E-68D8-4455-8A64-F1A44032EABD.htm\"\u003eLOGFILE\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/SUTIL/GUID-7A045C82-5993-44EB-AFAD-B7D39C34BCCD.htm\"\u003ePARFILE\u003c/a\u003e: パラメータファイル\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順plsqlの場合\"\u003e手順(PL/SQLの場合)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e11gR2: \u003ca href=\"https://docs.oracle.com/cd/E16338_01/appdev.112/b56262/d_datpmp.htm\"\u003eDBMS_DATAPUMP\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e12cR1: \u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/ARPLS/d_datpmp.htm\"\u003eDBMS_DATAPUMP\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ディレクトリオブジェクトの作成\"\u003eディレクトリ・オブジェクトの作成\u003c/h3\u003e\n\u003cp\u003e例えば \u003ccode\u003e/home/oracle\u003c/code\u003e に作成する場合は以下のようにします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sql\" data-lang=\"sql\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003ecreate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eor\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003ereplace\u003c/span\u003e directory DATA_PUMP_DIR \u003cspan style=\"color:#66d9ef\"\u003eas\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;/home/oracle\u0026#39;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"エクスポート\"\u003eエクスポート\u003c/h3\u003e\n\u003cp\u003e日付付きでエクスポートする例は以下になります。\nversionをつけているのは、\u003ca href=\"/manual/rds/\"\u003eRDS\u003c/a\u003eへのインポートを考慮したため。\nreusefileは不要かな・・・\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e-- データのエクスポート\nDECLARE\n    hdnl NUMBER;\n    today VARCHAR2(8);\nBEGIN\n    hdnl := DBMS_DATAPUMP.open( operation =\u0026gt; \u0026#39;EXPORT\u0026#39;, job_mode =\u0026gt; \u0026#39;FULL\u0026#39;, job_name =\u0026gt; null, version =\u0026gt; \u0026#39;12.0.0\u0026#39;);\n    select to_char(sysdate, \u0026#39;YYYYMMDD\u0026#39;) into today from dual;\n\n    DBMS_DATAPUMP.ADD_FILE( handle =\u0026gt; hdnl, filename =\u0026gt; \u0026#39;exp_\u0026#39; || today || \u0026#39;.dmp\u0026#39;, directory =\u0026gt; \u0026#39;DATA_PUMP_DIR\u0026#39;, filetype =\u0026gt; dbms_datapump.ku$_file_type_dump_file, reusefile =\u0026gt; 1);\n    DBMS_DATAPUMP.add_file( handle =\u0026gt; hdnl, filename =\u0026gt; \u0026#39;exp_\u0026#39; || today || \u0026#39;.log\u0026#39;, directory =\u0026gt; \u0026#39;DATA_PUMP_DIR\u0026#39;, filetype =\u0026gt; dbms_datapump.ku$_file_type_log_file, reusefile =\u0026gt; 1);\n    DBMS_DATAPUMP.start_job(hdnl);\nEND;\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e状況確認は以下のSQLで。\n(From: \u003ca href=\"http://matsu.jugem.cc/?eid=41\"\u003eDATAPUMP実行中のチェックSQLなど | RDBMS memo\u003c/a\u003e)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sql\" data-lang=\"sql\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eSELECT\u003c/span\u003e OPNAME, (SOFAR\u003cspan style=\"color:#f92672\"\u003e/\u003c/span\u003eTOTALWORK)\u003cspan style=\"color:#f92672\"\u003e*\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e100\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eAS\u003c/span\u003e PCT\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eFROM\u003c/span\u003e V$SESSION_LONGOPS\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eWHERE\u003c/span\u003e OPNAME \u003cspan style=\"color:#66d9ef\"\u003eLIKE\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;%EXPORT%\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003eDIRECTORYが未指定の場合、デフォルトの場所に作られます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/SUTIL/GUID-D7F1C0E8-E3CF-495E-9596-E08AEE36BB6B.htm\"\u003eDIRECTORY\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/SUTIL/GUID-EEB32B50-8A00-40B0-8787-CC2C8BA05DC5.htm#GUID-EEB32B50-8A00-40B0-8787-CC2C8BA05DC5\"\u003eダンプ・ファイル、ログ・ファイルおよびSQLファイルのデフォルトの位置\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e環境変数 \u003ccode\u003eDATA_PUMP_DIR\u003c/code\u003e が設定されている場合はそのパス、\n未指定の場合は以下のSQLを\u003cstrong\u003e特権ユーザ\u003c/strong\u003eで実行した値が使用されるようです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sql\" data-lang=\"sql\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eSELECT\u003c/span\u003e directory_name, directory_path \u003cspan style=\"color:#66d9ef\"\u003eFROM\u003c/span\u003e dba_directories \u003cspan style=\"color:#66d9ef\"\u003eWHERE\u003c/span\u003e directory_name\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;DATA_PUMP_DIR\u0026#39;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Event",
    "url": "https://www.ikemo3.com/tags/event/",
    "contents": ""
  }, 
  {
    "title": "JAWS-UG愛媛第18回勉強会(2018-09-22)に行ってきました",
    "url": "https://www.ikemo3.com/log/2018-09-22-jaws-ug-ehime/",
    "contents": "\u003ch2 id=\"数年ぶりのイベント\"\u003e数年ぶりのイベント\u003c/h2\u003e\n\u003cp\u003e以下のイベント(勉強会)に行ってきました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://jawsug-ehime.doorkeeper.jp/events/79864\"\u003eJAWS-UG愛媛 (日本 Amazon Web Serviceユーザ会愛媛）第18回勉強会 - JAWS-UG愛媛 | Doorkeeper\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分がIT関連のイベントに行くのはものすごく久しぶりです。\u003c/p\u003e\n\u003cp\u003e前回いつ行ったか記憶にありません。確実に行った記憶があるのは2012年の\u003ca href=\"http://www.ospn.jp/osc2012-ehime/\"\u003eOSC愛媛\u003c/a\u003eまでです。\n少なくとも3年は行っていません。\u003c/p\u003e\n\u003cp\u003eイベントに行けなかった理由は、育児中だからです。何せ乳飲み子がいるので・・・\u003c/p\u003e\n\u003ch2 id=\"手を動かすのはやっぱり楽しい\"\u003e手を動かすのはやっぱり楽しい\u003c/h2\u003e\n\u003cp\u003e今回のイベントは以下のオンラインカンファレンスに公開されている、\nWordPressサイトを構築するハンズオンを実際にやってみるものでした。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://aws.amazon.com/jp/about-aws/events/aws-innovate/\"\u003eAWS Innovate Japan 2018 - 初心者から上級者まで学べる！日本初の大規模な AWS オンラインカンファレンス | AWS\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分はAWSをRoute 53のためにつかっているのですが、\nEC2やRDSは個人的に使う機会がなかったので\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、これまでなかなかやる気が出ませんでした。\nELBもやってみると簡単でした。\u003c/p\u003e\n\u003cp\u003eこのイベントは\u003cdel\u003eクーポンがもらえる\u003c/del\u003e実際に手を動かせるのでちょうどよかったです。\u003c/p\u003e\n\u003ch2 id=\"もっとイベントに行ってみたい\"\u003eもっとイベントに行ってみたい\u003c/h2\u003e\n\u003cp\u003eAWSは仕事で使うため今勉強していますが、個人的にもいろいろやってみたいので、\n次回も時間が合えばぜひ参加したいです。\u003c/p\u003e\n\u003cp\u003e今日は残念ながら懇親会は欠席しましたが、次回は懇親会行けるかもしれません。\u003c/p\u003e\n\u003cp\u003eこれに限らずもっとイベント行ってみたいですね。\nやっぱりいろんな人と合わないと視野が狭くなっちゃうので。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eどうせやるならコンテナとかサーバレスとか背伸びしがちなんですよね・・・\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Centos",
    "url": "https://www.ikemo3.com/tags/centos/",
    "contents": ""
  }, 
  {
    "title": "Rhel",
    "url": "https://www.ikemo3.com/tags/rhel/",
    "contents": ""
  }, 
  {
    "title": "RHEL/CentOSのGitをアップデートする方法",
    "url": "https://www.ikemo3.com/inverted/centos/update-git/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eRed Hat Enterprise Linux(RHEL)や、\nそのクローンOSであるCentOSでは、\nデフォルトでインストール可能なバージョンは以下のようになっています。\nさすがに古すぎますね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRHEL/CentOS 6: 1.7.1\u003c/li\u003e\n\u003cli\u003eRHEL/CentOS 7: 1.8.3.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e新しいバージョンをパッケージで入れたいときの方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eCentOS 6および7で確認しています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/ius/\"\u003eIUS\u003c/a\u003eのパッケージを使用します。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下では、CentOS 6の手順を書きますが、\nius-releaseのURL以外は全く同じです。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://ius.io/GettingStarted/\"\u003eGetting Started - IUS\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003erpm -e\u003c/code\u003eをしているのは、すでにGitを入れている場合に、\n依存関係でエラーになるためです。\nもし他にgitに依存しているパッケージがある場合、\nそれを削除する必要があるかもしれません。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eyum install https://centos6.iuscommunity.org/ius-release.rpm\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erpm -e git perl-Git\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit install git2u\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Google Chrome拡張機能: アクティブなタブを取得する",
    "url": "https://www.ikemo3.com/inverted/google-chrome-extension/get-active-tab/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/manual/google-chrome-extension/\"\u003eGoogle Chrome拡張\u003c/a\u003eで、アクティブなタブを取得する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://developer.chrome.com/extensions/tabs#method-query\"\u003echrome.tabs.query\u003c/a\u003eを使います。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下のようにすればOKです(TypeScript)。\nreject()の動作は正しいか自信ないですが・・・\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ecurrentWindow: true\u003c/code\u003eを付けないと、複数ウィンドウのときに別のウィンドウが使われます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-typescript\" data-lang=\"typescript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003egetCurrentTab\u003c/span\u003e()\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ePromise\u003c/span\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003echrome.tabs.Tab\u003c/span\u003e\u0026gt; {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ePromise\u003c/span\u003e((\u003cspan style=\"color:#a6e22e\"\u003eresolve\u003c/span\u003e, \u003cspan style=\"color:#a6e22e\"\u003ereject\u003c/span\u003e) \u003cspan style=\"color:#f92672\"\u003e=\u0026gt;\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#a6e22e\"\u003echrome\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003etabs\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003equery\u003c/span\u003e({\u003cspan style=\"color:#a6e22e\"\u003eactive\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e, \u003cspan style=\"color:#a6e22e\"\u003ecurrentWindow\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e}, ((\u003cspan style=\"color:#a6e22e\"\u003etabs\u003c/span\u003e) \u003cspan style=\"color:#f92672\"\u003e=\u0026gt;\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (\u003cspan style=\"color:#a6e22e\"\u003etabs\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003elength\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e===\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#a6e22e\"\u003ereject\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ecurrentTab\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003etabs\u003c/span\u003e[\u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e];\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#a6e22e\"\u003eresolve\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003ecurrentTab\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }));\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    });\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://developer.chrome.com/extensions/tabs\"\u003echrome.tabs\u003c/a\u003eの先頭にあるように、アクティブなタブ自体はパーミッションなしで取得可能ですが、\nタブのURLなどを取得するには \u003ccode\u003etabs\u003c/code\u003e パーミッションが必要です。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThe majority of the chrome.tabs API can be used without declaring any permission.\nHowever, the \u0026ldquo;tabs\u0026rdquo; permission is required in order to populate the url, title,\nand favIconUrl properties of Tab.\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "Icon",
    "url": "https://www.ikemo3.com/tags/icon/",
    "contents": ""
  }, 
  {
    "title": "最速でアイコンを作成する方法",
    "url": "https://www.ikemo3.com/inverted/icon/create-at-the-fastest/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e雑でいいので最速でアイコンを作成する方法です。\nアプリの開発時に使うことを想定しています。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e画像の変換にImageMagickを使います(別のツールでもOKです)。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://www.xiconeditor.com/\"\u003eX-Icon Editor\u003c/a\u003eで愛kンを作成し、ダウンロードする。\n\u003cul\u003e\n\u003cli\u003e作成したファイルは \u003ccode\u003efavicon.ico\u003c/code\u003e 固定です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e必要なサイズに変換します。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e例えば、256x256のPNGファイルに変換するときは以下のようにします(ImageMagickを使用)。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003econvert favicon.ico -resize \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;256x256\u0026#39;\u003c/span\u003e icon.png \n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003eもう少し高機能なものなら、以下のサイトがいいかもしれません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.iconfinder.com/icon-editor\"\u003eIconfinder Icon Editor\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれがめっちゃ良さそうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://zk-phi.github.io/MEGAMOJI/\"\u003eMEGAMOJI\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Eclipse",
    "url": "https://www.ikemo3.com/manual/eclipse/",
    "contents": "\u003ch2 id=\"設定はリポジトリ管理すべきか\"\u003e設定はリポジトリ管理すべきか?\u003c/h2\u003e\n\u003ch3 id=\"classpath-project\"\u003e.classpath, .project\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://wiki.eclipse.org/FAQ_How_do_I_set_up_a_Java_project_to_share_in_a_repository%3F\"\u003eFAQ How do I set up a Java project to share in a repository? - Eclipsepedia\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e公式には.classpath, .projectは共有すべきと書かれている。\u003c/li\u003e\n\u003cli\u003eただし、絶対パスは含まないこと。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/github/gitignore\"\u003egithub/gitignore: A collection of useful .gitignore templates\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e.classpath, .projectは入っていない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eよって、リポジトリ管理すべき。\u003c/p\u003e\n\u003ch3 id=\"settings\"\u003e.settings\u003c/h3\u003e\n\u003cp\u003eこちらは何ともいえない。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/github/gitignore\"\u003egithub/gitignore: A collection of useful .gitignore templates\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e.settingsは入っている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/337304/which-eclipse-files-belong-under-version-control\"\u003eWhich Eclipse files belong under version control? - Stack Overflow\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eコメントで、.settingsについてはグレーと書かれている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eたぶん、設定によるんだと思う。絶対パスならNG。\u003c/p\u003e\n"
  }, 
  {
    "title": "JavaMail: STARTTLSの設定",
    "url": "https://www.ikemo3.com/inverted/java/enable-starttls/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eJavaMailでSTARTTLSを使用する方法です。\u003c/p\u003e\n\u003cp\u003eだいぶ昔に書いたドラフトをそのまま公開するので、おかしいかもしれません。。。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eSTARTTLS対応は以下の設定が必要な模様\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003email.smtp.starttls.enable=true\u003c/li\u003e\n\u003cli\u003email.smtp.ssl.protocols=TLSv1.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://stackoverflow.com/questions/47166425/how-to-force-javamailsenderimpl-to-use-tls1-2\"\u003ejava - How to force JavaMailSenderImpl to use TLS1.2? - Stack Overflow\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Mail",
    "url": "https://www.ikemo3.com/tags/mail/",
    "contents": ""
  }, 
  {
    "title": "母恵夢",
    "url": "https://www.ikemo3.com/dic/poeme/",
    "contents": "\u003ch2 id=\"母恵夢とは\"\u003e母恵夢とは\u003c/h2\u003e\n\u003cp\u003e愛媛県のお菓子です。\u003c/p\u003e\n\u003ch2 id=\"2社が製造\"\u003e2社が製造\u003c/h2\u003e\n\u003cp\u003e母恵夢は2社が製造しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://poemehonpo.co.jp/company/index.html\"\u003e会社案内 | 株式会社母恵夢本舗 | 瀬戸内銘菓　ポエム・うずしおパイ・お菓子・お土産製造販売 | 愛媛県今治市\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.poeme.co.jp/\"\u003e瀬戸内名菓「母恵夢」 | ポエムのホームページへようこそ！\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e後者の株式会社母恵夢は、母恵夢本舗の松山店が独立した会社らしいです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E6%AF%8D%E6%81%B5%E5%A4%A2%E6%9C%AC%E8%88%97\"\u003e母恵夢本舗 - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Netlify CMS",
    "url": "https://www.ikemo3.com/manual/netlify-cms/",
    "contents": "\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n\u003ch3 id=\"ファイル名\"\u003eファイル名\u003c/h3\u003e\n\u003cp\u003eタイトルとファイル名が同じでないといけません。\n日本語ファイル名はOKのように見えます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/netlify-cms/issues/445\"\u003eMake sluggification visible, customizable, and fail-safe · Issue #445 · netlify/netlify-cms\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eまた、画像をアップロードしたときはそのファイル名が使われます。\u003c/p\u003e\n\u003ch3 id=\"ワークフロー\"\u003eワークフロー\u003c/h3\u003e\n\u003cp\u003e現時点ではワークフローが使えるのはGitHubのみです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netlify/netlify-cms/issues/568\"\u003eAdd Editorial Workflow support for GitLab and BitBucket backends · Issue #568 · netlify/netlify-cms\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"設定\"\u003e設定\u003c/h2\u003e\n\u003ch3 id=\"adminindexhtml\"\u003e/admin/index.html\u003c/h3\u003e\n\u003cp\u003eこれでいいと思います。\n以下のページの上部にある説明に加えて、\nNetlify Identity Widgetの設定を加えました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.netlifycms.org/docs/add-to-your-site/\"\u003eAdd to Your Site | Netlify CMS | Open-Source Content Management System\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-html\" data-lang=\"html\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e\u0026lt;!doctype html\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003ehtml\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003ehead\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003emeta\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003echarset\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;utf-8\u0026#34;\u003c/span\u003e /\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003emeta\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ename\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;viewport\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003econtent\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;width=device-width, initial-scale=1.0\u0026#34;\u003c/span\u003e /\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003etitle\u003c/span\u003e\u0026gt;Content Manager\u0026lt;/\u003cspan style=\"color:#f92672\"\u003etitle\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003escript\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003esrc\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;https://identity.netlify.com/v1/netlify-identity-widget.js\u0026#34;\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003escript\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ehead\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003ebody\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e\u0026lt;!-- Include the script that builds the page and powers Netlify CMS --\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003escript\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003esrc\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;https://unpkg.com/netlify-cms@^2.0.0/dist/netlify-cms.js\u0026#34;\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003escript\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ebody\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ehtml\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"netlify側の設定\"\u003eNetlify側の設定\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIdentity: オン\u003c/li\u003e\n\u003cli\u003eSettings: \u003ca href=\"/inverted/netlify/deploy-hugo-starter/\"\u003eNetlify CMS + Hugo + GitLabの導入方法\u003c/a\u003eで書いたものと同じ\u003c/li\u003e\n\u003cli\u003eメールアドレスを指定して自分を招待する\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"設定ファイルは公開される\"\u003e設定ファイルは公開される\u003c/h3\u003e\n\u003cp\u003eデフォルトでは\u003ca href=\"/admin/config.yml\"\u003e/admin/config.yml\u003c/a\u003eに格納されます。\nこのファイルの中身はログインしなくても見れます。\nアクセス制限がかけられるかもしれませんが、\nそもそも変なことは書かないほうがいいです。\u003c/p\u003e\n\u003ch3 id=\"yaml-front-matterは全て定義しておく\"\u003eYAML Front Matterは全て定義しておく\u003c/h3\u003e\n\u003cp\u003eWidgetという機能でYAML Front Matterの内容を定義できるのですが、\nもしMarkdown側に定義があって、Netlify CMS側にない場合は削除されてしまいます。\nちょっと注意が必要です。\u003c/p\u003e\n\u003ch3 id=\"の後にはスペースが使えない\"\u003e\u003ccode\u003e{{\u003c/code\u003eの後にはスペースが使えない\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003e{{\u003c/code\u003eで囲む記法が一部ありますが、\u003ccode\u003e{{ slug }}\u003c/code\u003eのようには\u003cstrong\u003e書けません\u003c/strong\u003e。\n\u003ccode\u003e{{slug}}\u003c/code\u003eのようにスペースを入れずに書いてください。\u003c/p\u003e\n"
  }, 
  {
    "title": "Excel",
    "url": "https://www.ikemo3.com/tags/excel/",
    "contents": ""
  }, 
  {
    "title": "Windows",
    "url": "https://www.ikemo3.com/tags/windows/",
    "contents": ""
  }, 
  {
    "title": "Windows: 書式なしでペーストする方法",
    "url": "https://www.ikemo3.com/inverted/windows/copy-as-plain-text/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e例えばExcelでペーストをすると、書式付きでペーストされます。\nしかし書式なしでペーストがしづらいので、これを改善する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eWindows 10で確認しています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003ePureTextというソフトを使います。\nWindows Storeでも配布されています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.stevemiller.net/puretext/\"\u003ePureText\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003eデフォルトでは「Windowsキー + V」でテキストとしてペーストされます。\nまた、タスクトレイに常駐しているアイコンをクリックすると、\nペーストボードの内容がプレーンテキストに置き換わります。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003eParallels上で動かしたWindows 10では\nWindowsキーボードを使っても「Win + V」が使えませんでした。\n設定の問題だと思いますが未調査です。\nとりあえずParallels側で別のキーに割り当てて使いました。\u003c/p\u003e\n"
  }, 
  {
    "title": "【未完了】Excelバイナリをgit diffで見る方法",
    "url": "https://www.ikemo3.com/inverted/excel/git-diff/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eExcelファイル(.xls, .xlsx)をgit diffで見る方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e候補となるプログラムは以下の通り。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.wagner.pp.ru/~vitus/software/catdoc/\"\u003ecatdoc \u0026amp; xls2csv\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eHomebrewで入らないので未確認\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/na-ka-na/ExcelCompare\"\u003eExcelCompare\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eApache POIを使っている。試してみたが挿入に弱い。。。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Dom",
    "url": "https://www.ikemo3.com/tags/dom/",
    "contents": ""
  }, 
  {
    "title": "JavaScript: 特定のキーを無効にする方法",
    "url": "https://www.ikemo3.com/inverted/javascript/disable-key/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eWebサービスによっては有効なショートカットが割り当てられていることがありますが、\nそれを無効化する方法です。\u003c/p\u003e\n\u003cp\u003e例えばesa.ioではCtrl + Eは編集モードに移動するショートカットですが、\nあるページだけこのショートカットをオフにしたいと思いました。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eGoogle Chromeで確認しています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eキーを無効にしたい要素に適切なイベントリスナーを追加\u003c/li\u003e\n\u003cli\u003eイベントリスナーの中で\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/Event/stopPropagation\"\u003estopPropagation\u003c/a\u003eを呼ぶ\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e例えばCtrl + Eを無効にする場合は以下のようにします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003etasknameFilter\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003ee\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (\u003cspan style=\"color:#a6e22e\"\u003ee\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ectrlKey\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ee\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ekey\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e===\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;e\u0026#34;\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003ee\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003estopPropagation\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocument.\u003cspan style=\"color:#a6e22e\"\u003egetElementById\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;taskname\u0026#34;\u003c/span\u003e).\u003cspan style=\"color:#a6e22e\"\u003eaddEventListener\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;keydown\u0026#39;\u003c/span\u003e, \u003cspan style=\"color:#a6e22e\"\u003etasknameFilter\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Libvirt",
    "url": "https://www.ikemo3.com/tags/libvirt/",
    "contents": ""
  }, 
  {
    "title": "Vagrant",
    "url": "https://www.ikemo3.com/tags/vagrant/",
    "contents": ""
  }, 
  {
    "title": "Vagrant: libvirtプロバイダでVMの名前を変更する方法",
    "url": "https://www.ikemo3.com/inverted/vagrant/set-name-of-libvirt/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eVagrantにlibvirtプロバイダを使ったときに、\nVMの名前はどう決まるか、またVMの名前を変更する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/vagrant-libvirt/vagrant-libvirt\"\u003evagrant-libvirt\u003c/a\u003e 0.0.43で確認しています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e以下のようになっています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eプレフィックス\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edefault_prefix\u003c/code\u003eがあるときはその名前 + \u0026ldquo;_\u0026rdquo;\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edefault_prefix\u003c/code\u003eが空のときはから文字列\u003c/li\u003e\n\u003cli\u003e未指定のときは\u003ccode\u003eroot_path\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.rubydoc.info/github/hashicorp/vagrant/Vagrant%2FEnvironment:root_path\"\u003ehttps://www.rubydoc.info/github/hashicorp/vagrant/Vagrant%2FEnvironment:root_path\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVagrantfileがあるディレクトリ名のようです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eマシン名\n\u003cul\u003e\n\u003cli\u003eデフォルトは\u003ccode\u003edefault\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eサフィックス\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erandom_hostname = true\u003c/code\u003eのときは、ランダムで生成した文字列が割り当てられる\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e基本は\u003ccode\u003edefault_prefix\u003c/code\u003eを付けておけばOKのようです。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003e詳細は以下のコードを参照してください。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/vagrant-libvirt/vagrant-libvirt/blob/master/lib/vagrant-libvirt/action/set_name_of_domain.rb#L45\"\u003ehttps://github.com/vagrant-libvirt/vagrant-libvirt/blob/master/lib/vagrant-libvirt/action/set_name_of_domain.rb#L45\u003c/a\u003e\u003c/p\u003e\n"
  }, 
  {
    "title": "Bakatter",
    "url": "https://www.ikemo3.com/tags/bakatter/",
    "contents": ""
  }, 
  {
    "title": "JavaScript/DOMで子要素を全て削除する方法",
    "url": "https://www.ikemo3.com/inverted/javascript/remove-child-elements/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eJavaScriptでDOM(Document Object Model)を操作して、\nある要素の子要素を全て削除する方法です。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e手っ取り早いのが、\u003ccode\u003einnerHTML\u003c/code\u003eに空文字列を代入する方法です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eelement\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003einnerHTML\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eもう一つは、removeChildを使って削除する方法です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/3955229/remove-all-child-elements-of-a-dom-node-in-javascript\"\u003eRemove all child elements of a DOM node in JavaScript - Stack Overflow\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emyNode\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003egetElementById\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;foo\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (\u003cspan style=\"color:#a6e22e\"\u003emyNode\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003efirstChild\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003emyNode\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eremoveChild\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003emyNode\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003efirstChild\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003einnerHTML\u003c/code\u003eは元々はIE独自仕様で、規格は決まっていない(Draft段階)のですが、\n他のブラウザでも実装されており、互換性は問題ないと思います。\nただ、パフォーマンスは劣るようです。\n自分のマシンだと5倍くらい遅かったです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://jsperf.com/innerhtml-vs-removechild\"\u003einnerHTML vs removeChild\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "JavaScriptからTypeScriptへの変換方法(コンパイルを通すまで)",
    "url": "https://www.ikemo3.com/inverted/typescript/javascript-to-typescript/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eJavaScriptで書かれたコードをTypeScript化する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eWebStorm 2018.2で確認しています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eまずはコンパイルできるようにすることが最優先です。\nそれから、TypeScriptらしく変えていくといいと思います。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e次に、tsconfig.jsonを作成します。\nWebStormではデフォルトで以下のように作成されます。\n自分が使っているのはGoogle Chrome拡張なので、\nとりあえず\u003ccode\u003ees2017\u003c/code\u003eにしています(2018でもいいかも)。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-json\" data-lang=\"json\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;compilerOptions\u0026#34;\u003c/span\u003e: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;module\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;commonjs\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;target\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;es5\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;sourceMap\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;exclude\u0026#34;\u003c/span\u003e: [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;node_modules\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e(補足)後から知りましたが、allowJs(最後のSは小文字)を使うと、混在した環境でも問題ないみたいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://efcl.info/2017/07/17/javascript-to-typescript/\"\u003eJavaScriptのライブラリを徐々にTypeScriptに移行する | Web Scratch\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e次に、拡張子を\u003ccode\u003e.js\u003c/code\u003eから\u003ccode\u003e.ts\u003c/code\u003eに変えます。\nWebStormではRefactor→Renameを選択します。\nリファクタリングできないという警告が出ますが、Yesを押して進めます。\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eCompile TypeScript to JavaScript?\u003c/code\u003eと聞かれるのでYesを選択します。\nそれからエラーを潰していきます。\u003c/p\u003e\n\u003ch3 id=\"ts2304-cannot-find-name-xxx\"\u003eTS2304: Cannot find name \u0026lsquo;xxx\u0026rsquo;\u003c/h3\u003e\n\u003cp\u003e変数が見つからないときに発生します。\n\u003ccode\u003e*.js\u003c/code\u003eからは検索しないようなので、他のファイルを\u003ccode\u003e*.ts\u003c/code\u003eに変更してみます。\u003c/p\u003e\n\u003ch3 id=\"ts2339-property-xxx-does-not-exist-on-type-yyy\"\u003eTS2339: Property \u0026lsquo;xxx\u0026rsquo; does not exist on type \u0026lsquo;yyy\u0026rsquo;\u003c/h3\u003e\n\u003ch4 id=\"型の違いによるエラー\"\u003e型の違いによるエラー\u003c/h4\u003e\n\u003cp\u003e例えば以下のコードでエラーが出ます。\nエラーメッセージは\u003ccode\u003eProperty 'value' does not exist on type 'HTMLElement'\u003c/code\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eexportTextArea\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003egetElementById\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;exportTextArea\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eexportTextArea\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003evalue\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003elines\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ejoin\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこれは、\u003ccode\u003edocument.getElementById('exportTextArea')\u003c/code\u003eで取得できるのが\n\u003ccode\u003eHTMLTextAreaElement\u003c/code\u003eなのに対し、\nTypeScriptは\u003ccode\u003eHTMLElement\u003c/code\u003eとしか解決できないために発生したエラーです。\n(HTMLで定義されているので分からないですよね)\u003c/p\u003e\n\u003cp\u003eこういうときはまず、\u003ccode\u003eas\u003c/code\u003eを使ってキャストを行います。\n(コンパイルを通すのが最優先)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-typescript\" data-lang=\"typescript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eexportTextArea\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003egetElementById\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;exportTextArea\u0026#39;\u003c/span\u003e) \u003cspan style=\"color:#66d9ef\"\u003eas\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eHTMLTextAreaElement\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch4 id=\"インスタンス変数未定義によるエラー\"\u003eインスタンス変数未定義によるエラー\u003c/h4\u003e\n\u003cp\u003e例えば以下のようなコードです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eBlockedSite\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003econstructor\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eitem\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eurl\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eitem\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eurl\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e// ここでエラーになる\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこういうときは、明示的にインスタンス変数を定義します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-typescript\" data-lang=\"typescript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eBlockedSite\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eurl\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003estring\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003econstructor\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eitem\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eurl\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eitem\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eurl\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e// ここでエラーになる\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003ehandlerの場合はややこしいので、一旦anyにしておきます。\u003c/p\u003e\n\u003ch4 id=\"jsonによるエラー\"\u003eJSONによるエラー\u003c/h4\u003e\n\u003cp\u003eJSONの値を参照するときにコンパイルエラーになります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eBlockedSitesRepository\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003eloadData\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003easync\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e () {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eitems\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eawait\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eChromeStorage\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eget\u003c/span\u003e({\u003cspan style=\"color:#a6e22e\"\u003eblocked\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e []});\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003efor\u003c/span\u003e (\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eitem\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eof\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eitems\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eblocked\u003c/span\u003e) { \u003cspan style=\"color:#75715e\"\u003e// ここでエラー\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこういうときは、interfaceを定義します。\n\u003cstrong\u003eanyは手抜きです\u003c/strong\u003e。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-typescript\" data-lang=\"typescript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003einterface\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eBlockedSitesList\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003eblocked\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eany\u003c/span\u003e[];\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eBlockedSitesRepository\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003eloadData\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003easync\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e () {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eitems\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eawait\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eChromeStorage\u003c/span\u003e.\u003cspan style=\"color:#66d9ef\"\u003eget\u003c/span\u003e({\u003cspan style=\"color:#a6e22e\"\u003eblocked\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e []}) \u003cspan style=\"color:#66d9ef\"\u003eas\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eBlockedSitesList\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"ts2451-cannot-redeclare-block-scoped-variable-xxx\"\u003eTS2451: Cannot redeclare block-scoped variable \u0026lsquo;xxx\u0026rsquo;\u003c/h3\u003e\n\u003cp\u003e組み込みの変数とかぶっている場合に発生します。\n自分は\u003ccode\u003eStorage\u003c/code\u003eという変数名がエラーになりました。\nおそらく、Web Storage APIのStorageインタフェースと 競合していたと思われます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/Storage\"\u003eStorage - Web API インターフェイス | MDN\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eStorage → ChromeStorageに変更しました。\u003c/p\u003e\n\u003ch3 id=\"ts2554-expected-1-arguments-but-got-0\"\u003eTS2554: Expected 1 arguments, but got 0.\u003c/h3\u003e\n\u003cp\u003e引数の数が合わない場合です。\n例えば以下のようにハンドラとしても使う関数に対し、\n使わないパラメータをignoreとしてたのですが、これがまずかったようです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003emediator\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eeditUrl\u003c/span\u003e()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// 定義\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eeditUrl\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eignore\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこれは定義側を直すのがいいと思います。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Twitter",
    "url": "https://www.ikemo3.com/tags/twitter/",
    "contents": ""
  }, 
  {
    "title": "Twitterでデマを広める方法",
    "url": "https://www.ikemo3.com/inverted/twitter/how-to-false-rumor/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eTwitterでデマを流す方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e「デマは良くないこと」という良識を捨ててください。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eデマを広めるためのアカウントを作る\u003c/li\u003e\n\u003cli\u003eデマを書くためのアカウントを作る\u003c/li\u003e\n\u003cli\u003eデマを広める\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"デマを広めるためのアカウントを作る\"\u003eデマを広めるためのアカウントを作る\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eターゲットを決める\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e過激なことを言っている人たち\u003c/strong\u003eがおすすめです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eアカウントを作る\n\u003cul\u003e\n\u003cli\u003eアイコンは草花など、ありきたりのものがいいでしょう。\u003c/li\u003e\n\u003cli\u003eIDは何でもいいですが、ランダムで選んだ文字列は避けましょう。適当な名前 + 数字が楽です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eそのデマを広めてくれそうな人のためのプロフィールを書く\n\u003cul\u003e\n\u003cli\u003e過激な人たち相手なので、\u003cstrong\u003eプロフィールも過激なのがいいでしょう\u003c/strong\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eデマを広めてくれそうな人をフォローする。\n\u003cul\u003e\n\u003cli\u003eツイートを見て、\u003cstrong\u003e公式RTをたくさんしている人がおすすめ\u003c/strong\u003eです。\u003c/li\u003e\n\u003cli\u003eフォローしている人繋がりでフォローをするといいでしょう。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e重要なのは「アカウントをコツコツ育てること」です。\nフォロー数がフォロワー数の2倍を超えるとフォロー返しされにくくなるので、\nツイートしながらコツコツアカウントを育てましょう。\n最低100、できれば500くらいフォロワーがいるとよいです。\u003c/p\u003e\n\u003ch3 id=\"デマを書くためのアカウントを作る\"\u003eデマを書くためのアカウントを作る\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eアカウントを作る\n\u003cul\u003e\n\u003cli\u003eプロフィールは何でもよいです。\u003cstrong\u003eどうせ見ません\u003c/strong\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eデマツイートをする\n\u003cul\u003e\n\u003cli\u003eカモフラージュのためのツイートは不要です。\u003cstrong\u003eどうせ見ません\u003c/strong\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"デマを広める\"\u003eデマを広める\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eデマツイートを元のアカウントで公式RTします。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e運が良ければデマが広がるでしょう。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003e言うまでもありませんが、この記事は皮肉です。\n\u003cstrong\u003e犯罪です。やらないでください\u003c/strong\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.itmedia.co.jp/news/articles/1607/21/news087.html\"\u003e「熊本地震でライオン脱走」Twitterにデマ拡散の男を逮捕 - ITmedia NEWS\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eいくらカモフラージュしてもダメです。\n個人でも誹謗中傷に対して裁判を起こしている人がいますからね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://terakoya-affiliate.com/bengoshi/\"\u003e【拡散希望】ネットの誹謗中傷を弁護士さんに相談してみました（ツイッター編） | 寺子屋アフィリエイトblog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00H992KT4/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00H992KT4.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00H992KT4/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nネットのバカ（新潮新書）\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Typescript",
    "url": "https://www.ikemo3.com/tags/typescript/",
    "contents": ""
  }, 
  {
    "title": "Kaze",
    "url": "https://www.ikemo3.com/tags/kaze/",
    "contents": ""
  }, 
  {
    "title": "Twitter",
    "url": "https://www.ikemo3.com/manual/twitter/",
    "contents": "\u003ch2 id=\"twurl\"\u003etwurl\u003c/h2\u003e\n\u003cp\u003eこんな便利なものがあるみたいですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twitter/twurl\"\u003etwitter/twurl: OAuth-enabled curl for the Twitter API\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"retweeters-apiが壊れてて使えない\"\u003eretweeters APIが壊れてて使えない\u003c/h2\u003e\n\u003cp\u003e最初にリツイートした人を洗い出すために\u003ca href=\"https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-statuses-retweeters-ids\"\u003eretweeters\u003c/a\u003e APIを使おうとしたのですが、カーソルに対応していなくて、使えないようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://teratail.com/questions/42107\"\u003eTwitter - statuses/retweeters/idsの「cursor」パラメータについて(42107)｜teratail\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://twittercommunity.com/t/how-can-i-get-all-retweets-of-a-specific-tweet/11602\"\u003eHow can i get all retweets of a specific tweet? - REST API / REST API v1.1 - Twitter Developers\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eまあ、直す気はないでしょうね。デマッター発見に使おうと思ってたので。\u003c/p\u003e\n"
  }, 
  {
    "title": "夏に生姜湯を買うのは難しい",
    "url": "https://www.ikemo3.com/theme/summar-ginger-tea/",
    "contents": "\u003ch2 id=\"夏でも生姜湯が飲みたくなることがある\"\u003e夏でも生姜湯が飲みたくなることがある\u003c/h2\u003e\n\u003cp\u003e生姜湯は冬に飲むものですが、夏でも飲みたくなることがあります。\u003c/p\u003e\n\u003cp\u003e先日風邪をひいて喉が痛いときに、生姜湯が欲しくなりました。\nしかし、スーパーやドラッグストアに行ってもありません。\u003c/p\u003e\n\u003cp\u003e運が良ければ冬の残りが売っているかもしれません。\nしかし、\u003cstrong\u003e探すのは無駄\u003c/strong\u003eという結論です。\u003c/p\u003e\n\u003ch2 id=\"しょうがゆず\"\u003eしょうが＆ゆず\u003c/h2\u003e\n\u003cp\u003eもちろんネットなら見つかります。\nただ、ちょっと高めなんですよね(いいものもありますが)。\u003c/p\u003e\n\u003cp\u003eスーパーやドラッグストアで買うならこれです。一年中売っています。\n「どうしても生姜湯でないといけない」のでなければおすすめです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00DH8NRHK/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00DH8NRHK.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00DH8NRHK/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n日東紅茶 しょうが\u0026amp;ゆず スティック 10本入り ×6個\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"生姜湯は備蓄が良さそう\"\u003e生姜湯は備蓄が良さそう\u003c/h2\u003e\n\u003cp\u003e生姜湯は賞味期限が長いです。なので次の冬からはもっと備蓄しておこうとおもいます。\u003c/p\u003e\n"
  }, 
  {
    "title": "Git: Subversion連携",
    "url": "https://www.ikemo3.com/inverted/git/use-subversion-repository/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eGitでSubversionリポジトリと連携するときの手順です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"リビジョンを指定したクローン\"\u003eリビジョンを指定したクローン\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eREVISION\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e100\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eURL\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003ehttp://svn.example.com/\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit svn clone -s -r\u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eREVISION\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e:HEAD \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eURL\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"リモートへコミット\"\u003eリモートへコミット\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit svn dcommit -n \u003cspan style=\"color:#75715e\"\u003e# dry-run\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit svn dcommit\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"特定のリビジョン番号まで戻す\"\u003e特定のリビジョン番号まで戻す\u003c/h3\u003e\n\u003cp\u003e途中でログが書き換えられたときに有効です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eREVISION\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e100\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit svn reset -r \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eREVISION\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"subversionリポジトリのgitリポジトリへの変換\"\u003eSubversionリポジトリのGitリポジトリへの変換\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nirvdrum/svn2git\"\u003esvn2git\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eGit標準の\u003ccode\u003egit svn\u003c/code\u003eでは、SubversionのタグがGitではブランチになっている。これを修正して、SubversionのタグをGitのタグに変換してくれる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e(未確認)メッセージが空のコミットを修正する方法: \u003ca href=\"https://stackoverflow.com/questions/8542304/rebasing-a-git-history-with-empty-commit-messages\"\u003eRebasing a git history with empty commit messages - Stack Overflow\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eSubversion側でメッセージが空でコミットした場合、Gitでめんどくさくなる(\u003ccode\u003e--allow-empty-message\u003c/code\u003eオプションが必要)。フィルタで自動的にメッセージを追加する。\u003c/li\u003e\n\u003cli\u003e履歴を改変するため、\u003ccode\u003epush -f\u003c/code\u003eが必要になるのに注意。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Subversion",
    "url": "https://www.ikemo3.com/tags/subversion/",
    "contents": ""
  }, 
  {
    "title": "Bicycle",
    "url": "https://www.ikemo3.com/tags/bicycle/",
    "contents": ""
  }, 
  {
    "title": "自転車のハンドルはやっぱりアップハンドルがいいという結論",
    "url": "https://www.ikemo3.com/theme/bicycle/handle/",
    "contents": "\u003ch2 id=\"自転車のハンドルの種類がわからない\"\u003e自転車のハンドルの種類がわからない\u003c/h2\u003e\n\u003cp\u003e自転車のハンドルの種類ってイマイチ分かりにくいんですよね。\nちゃんと説明しているページが少ないです。\n以下の3つくらいでした。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://theonecycle.com/bike-parts/types-of-bicycle-handlebar/\"\u003e自転車ハンドルの種類をもっと知りたい！\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://cyclemarket.jp/static/special_basicKnowledge\"\u003eココは知っておきたい！自転車の基礎知識\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://best-bicycle.net/citycycle-handle\"\u003eママチャリの走りやすさに影響！3つのハンドル種類と選び方\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただ、セミアップハンドルとアップハンドルの違いがよくわかりませんでした。\u003c/p\u003e\n\u003ch2 id=\"ハンドルによって安定感が全然違う\"\u003eハンドルによって安定感が全然違う\u003c/h2\u003e\n\u003cp\u003e自分が使っている自転車はパナソニックのジャンボリーWという機種です。\n型番がB-MWJW738(B)。\nこれはどうやらセミアップハンドル／アップハンドルというタイプみたいです。\u003c/p\u003e\n\u003cp\u003e以前はフラットバータイプの自転車を使っていましたが、\nものすごく安定感が悪くて、時々コケていました。\nこの機種に変えてからはほとんどコケていません。\n松山市は坂も少ないので、平地での安定感がある方がいいようです。\u003c/p\u003e\n\u003cp\u003eただ、この機種はちょっと重いです。25.6kgあります。\nあと、くるピタというハンドル固定機構がありますが、\n使う機会はあまりないです。存在を忘れてしまいそうです。\u003c/p\u003e\n\u003cp\u003e次買うなら同じようなタイプで、下位機種でもいいかなぁという感じです。\n状況によっては電動アシスト自転車になるかもしれませんが。\u003c/p\u003e\n"
  }, 
  {
    "title": "Awk",
    "url": "https://www.ikemo3.com/tags/awk/",
    "contents": ""
  }, 
  {
    "title": "Banana",
    "url": "https://www.ikemo3.com/tags/banana/",
    "contents": ""
  }, 
  {
    "title": "Netlify CMS + Hugo + GitLabの導入方法",
    "url": "https://www.ikemo3.com/inverted/netlify/deploy-hugo-starter/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/netlify-templates/one-click-hugo-cms\"\u003eone-click-hugo-cms\u003c/a\u003eを使った、Netlify CMSの導入方法です。\n静的サイトジェネレータはHugo、リポジトリはGitLabを使用しています。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e以下で確認しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNetlifyへのログインにはGitHubアカウントを使用\u003c/li\u003e\n\u003cli\u003eリポジトリにはGitLabを使用\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eNetlify CMSの導入には、\u003ca href=\"https://www.netlify.com/docs/identity/\"\u003eNetlify Identity\u003c/a\u003eのセットアップが必要です。\n公式のドキュメントにはこの方法が載ってませんでした・・・\u003c/p\u003e\n\u003cp\u003eあと、GitHubを使った例は多いですが、GitLabを使った例がなかなかありませんでした。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下の流れで行います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eサイトの作成\u003c/li\u003e\n\u003cli\u003eNetlify Identityの設定\u003c/li\u003e\n\u003cli\u003eユーザの追加\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"サイトの作成\"\u003eサイトの作成\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://headlesscms.org/projects/netlify-cms/\"\u003ehttps://headlesscms.org/projects/netlify-cms/\u003c/a\u003e に移動\u003c/li\u003e\n\u003cli\u003e一番下の\u003ccode\u003eDeploy to netlify\u003c/code\u003eのボタンを押す。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnect to GitHub\u003c/code\u003e を選択\n\u003cul\u003e\n\u003cli\u003eGitLabの場合は \u003ccode\u003econnect to GitLab.\u003c/code\u003e リンクをクリックする(自分はこちらを選択)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eリポジトリ名を入力(デフォルトは \u003ccode\u003eone-click-hugo-cms\u003c/code\u003e)して、\u003ccode\u003eSave \u0026amp; Deploy\u003c/code\u003eボタンをクリック。\n\u003cul\u003e\n\u003cli\u003eこの時点でGitHub or GitLabにリポジトリが作られ、Netlifyでビルドが始まります。もしビルドに失敗したときは何度かリトライしてください\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"netlify-identityの設定\"\u003eNetlify Identityの設定\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e上部から \u003ccode\u003eIdentity\u003c/code\u003e タブを選択し、\u003ccode\u003eEnable Identity\u003c/code\u003e ボタンを押す。\n\u003cul\u003e\n\u003cli\u003eメインのメールアドレスに \u003ccode\u003e[Netlify] You’ve started using Identity on サイト名\u003c/code\u003e というメールが来ます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSettings and usage\u003c/code\u003e ボタンをクリックする。設定画面に移動する。\u003c/li\u003e\n\u003cli\u003e以下の設定をする。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRegistration preferences\u003c/code\u003e: Invite Only\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eExternal providers\u003c/code\u003e: GitHub\n\u003cul\u003e\n\u003cli\u003e自分はNetlifyのログインにGitHubを使っているため。\u003c/li\u003e\n\u003cli\u003e選択画面では\u003ccode\u003eUse default configuration\u003c/code\u003eで構わない(下の方はProフィーチャー)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eServices\u003c/code\u003e: \u003ccode\u003eEnable Git Gateway\u003c/code\u003e ボタンを押す。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"ユーザの追加\"\u003eユーザの追加\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003eIdentity\u003c/code\u003eタブを選択し、\u003ccode\u003eInvite users\u003c/code\u003e ボタンをクリックし、自分のメールアドレスを入れ、\u003ccode\u003eSend\u003c/code\u003e ボタンを押す。\u003c/li\u003e\n\u003cli\u003e自分のメールアドレスにメールが来るので、メール中の \u003ccode\u003eAccept the invite\u003c/code\u003e リンクをクリックする。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContinue with GitHub\u003c/code\u003eを選択してログイン\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003e設定ファイルは \u003ccode\u003esite/static/admin/config.yml\u003c/code\u003e のようです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e自分はネットワークエラーで2度失敗したことがあります。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Netlify-Cms",
    "url": "https://www.ikemo3.com/tags/netlify-cms/",
    "contents": ""
  }, 
  {
    "title": "スーパーで買えるバナナの一房あたりの重さを調べてみた",
    "url": "https://www.ikemo3.com/theme/banana/weight/",
    "contents": "\u003ch2 id=\"バナナ100gあたり29円と言われても分からない\"\u003eバナナ100gあたり29円と言われても分からない\u003c/h2\u003e\n\u003cp\u003eバナナはスーパーによっては100gあたりの値段が付けられています。\nでも、自分は安いのかどうか分かりません。\nなので、実際に計測してみました。\u003c/p\u003e\n\u003ch2 id=\"計測結果\"\u003e計測結果\u003c/h2\u003e\n\u003cp\u003e2回以上買ったものについて平均を出して、重い順に並べています。\n\u003ca href=\"/log/banana/\"\u003e生データはこちら\u003c/a\u003eです。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e商品名\u003c/th\u003e\n          \u003cth\u003e回数\u003c/th\u003e\n          \u003cth\u003e平均\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e天空のバナナ\u003c/td\u003e\n          \u003ctd\u003e3\u003c/td\u003e\n          \u003ctd\u003e697\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e元気バナナ(コープ)\u003c/td\u003e\n          \u003ctd\u003e5\u003c/td\u003e\n          \u003ctd\u003e692\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eミディオ\u003c/td\u003e\n          \u003ctd\u003e13\u003c/td\u003e\n          \u003ctd\u003e650.692\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e極王\u003c/td\u003e\n          \u003ctd\u003e3\u003c/td\u003e\n          \u003ctd\u003e628.333\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eデルモンテ\u003c/td\u003e\n          \u003ctd\u003e2\u003c/td\u003e\n          \u003ctd\u003e569.5\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eボビーバナナ\u003c/td\u003e\n          \u003ctd\u003e5\u003c/td\u003e\n          \u003ctd\u003e519.6\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e朝のしあわせバナナ\u003c/td\u003e\n          \u003ctd\u003e2\u003c/td\u003e\n          \u003ctd\u003e519.5\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eチキータ\u003c/td\u003e\n          \u003ctd\u003e2\u003c/td\u003e\n          \u003ctd\u003e484\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eブランドによってだいたいの重さは決まっており、ばらつきはあまりありません。\n大きめのものは650gくらい、小さめのものは500gくらいです。\u003c/p\u003e\n"
  }, 
  {
    "title": "標準入力に渡された数字の合計を取る方法",
    "url": "https://www.ikemo3.com/inverted/cli/calc-sum/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e標準入力で以下のように1行ごとに1つの数字がある場合に、その合計を取る方法です。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e650\n642\n618\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eawkを使います。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下のようにしてください(パイプから後)。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecat data.txt | awk \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;{total+=$1;count++}END{print total/count}\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e応用として、件数も出したい場合は、以下のようにできます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecat data.txt | awk \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;{total+=$1;count++}END{print count, total/count}\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "AttrはNodeを継承している",
    "url": "https://www.ikemo3.com/theme/attr-and-node/",
    "contents": "\u003ch2 id=\"attrとnodeの関係\"\u003eAttrとNodeの関係\u003c/h2\u003e\n\u003cp\u003eDOMにはNodeとAttrというインタフェースがあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/Node\"\u003eNode\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/Attr\"\u003eAttr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMDNの記事を見てて、何でAttrがないのと思って英語版に追加したのですが、\n実は結構ややこしいことになってたそうです。\u003c/p\u003e\n\u003cp\u003eまず、W3CのDOM 4ではAttrはNodeを継承していません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.w3.org/TR/dom/#interface-attr\"\u003e4.8.1 Interface Attr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eしかし、DOMの策定は実質的には\u003ca href=\"https://dom.spec.whatwg.org/\"\u003eWHATWG\u003c/a\u003eが担っています。\nこちらでは、AttrはNodeを継承しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dom.spec.whatwg.org/#interface-attr\"\u003e4.9.2. Interface Attr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eしかし、Node treeには記載がありません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dom.spec.whatwg.org/#node-trees\"\u003e4.2. Node tree\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eややこしいことになっています。\u003c/p\u003e\n\u003ch2 id=\"一度はattrはnodeを継承しなくなったらしい\"\u003e一度はAttrはNodeを継承しなくなったらしい\u003c/h2\u003e\n\u003cp\u003e自分が見たのが、以下のIssueです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/whatwg/dom/pull/299\"\u003eMake Attr inherit from Node again by annevk · Pull Request #299 · whatwg/dom\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eここでは最後に\u0026rsquo;againt\u0026rsquo;と書かれています。\nということはすなわち、一度は継承しなくなったらしいです。\nここからは推測ですが、以下のようになったと思われます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2015/11以前: WHATWGでAttrはNodeを継承しなくなった。\u003c/li\u003e\n\u003cli\u003e2015/11: W3CのDOM 4でWHATWGの仕様通りにAttrはNodeを継承しなくなった。\u003c/li\u003e\n\u003cli\u003e2016/8: しかし問題があるので、AttrがNodeを継承するように戻った。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eじゃあ、Node treeにないのは何でかというと、\nそれは以下のように、Issueとして上げられています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/whatwg/dom/issues/457\"\u003eNode Tree section should probably include Attr · Issue #457 · whatwg/dom\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eなので、仕様上は残っているのが正しいようです。\nもっとも、残ってるのは互換性のためだけで、使う理由はないと思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "Xml",
    "url": "https://www.ikemo3.com/tags/xml/",
    "contents": ""
  }, 
  {
    "title": "『デザインあ』で出てきたゲームコントローラをまとめてみた",
    "url": "https://www.ikemo3.com/theme/design-ah/game-controller/",
    "contents": "\u003cp\u003e『デザインあ』で出てきたゲーム・ゲームコントローラを\n分かる範囲でまとめてみました。\n可能な限り正確に記載していますが、\n細かい型番など間違っている可能性については、ご容赦ください。\u003c/p\u003e\n\u003cp\u003e特に、PlayStationのアナログコントローラ、DUALSHOCK、DUALSHOCK 2については\n区別がつかないため、DUALSHOCK 2でまとめています。\u003c/p\u003e\n\u003cp\u003eまた、本体付属と思われるコントローラについては、\n本体名のみ記載することがあります。\u003c/p\u003e\n\u003ch2 id=\"atariのポン\"\u003eATARIの『ポン』\u003c/h2\u003e\n\u003cp\u003e世界で初めてヒットしたテレビゲームと呼ばれる、\nアタリの『\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%B3_(%E3%82%B2%E3%83%BC%E3%83%A0)\"\u003eポン\u003c/a\u003e』の映像から始まります。\u003c/p\u003e\n\u003ch2 id=\"コントローラがズラッと並ぶ\"\u003eコントローラがズラッと並ぶ\u003c/h2\u003e\n\u003cp\u003eコントローラがズラッと並んだ映像です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e左上\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B000CSSW8W/?tag=ikemo3-22\"\u003eドラムマニア専用コントローラ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B000CSSW8C/?tag=ikemo3-22\"\u003eギターフリークス専用コントローラ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0017KIBAI/?tag=ikemo3-22\"\u003eニンテンドー ゲームキューブ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBIK8/?tag=ikemo3-22\"\u003eNintendo 64\u003c/a\u003e(グレー、スケルトン)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B01NARTIBI/?tag=ikemo3-22\"\u003eDUALSHOCK 4\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B00005OUPK/?tag=ikemo3-22\"\u003eDUALSHOCK 2\u003c/a\u003eか\u003ca href=\"https://www.amazon.co.jp/dp/B000X1YEU8/?tag=ikemo3-22\"\u003eDUALSHOCK 3\u003c/a\u003e?\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBPN8/?tag=ikemo3-22\"\u003e電車でGO!コントローラー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B075MK6THW/?tag=ikemo3-22\"\u003eスーパーファミコン\u003c/a\u003e ※リンク先はクラシックミニ、以下同様\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBMIQ/?tag=ikemo3-22\"\u003eセガマルチコントローラ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B00TPINVI6/?tag=ikemo3-22\"\u003eジョイボール\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e右上\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%AF%E3%83%BC%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%96\"\u003eパワーグローブ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBMA4/?tag=ikemo3-22\"\u003eセガサターンコントロールパッド\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJRU/?tag=ikemo3-22\"\u003eセガサターン プロコマンダー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBL5U/?tag=ikemo3-22\"\u003eホリコマンダーPC\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBNUI/?tag=ikemo3-22\"\u003eメガドライブ コントロールパッド\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E9%89%84%E9%A8%8E\"\u003e鉄騎専用コントローラー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B00165RA0G/?tag=ikemo3-22\"\u003eギターヒーロー3専用コントローラー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001PWJ26/?tag=ikemo3-22\"\u003e3DO REAL II\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0000648TM/?tag=ikemo3-22\"\u003eニューファミコン\u003c/a\u003e?\n\u003cul\u003e\n\u003cli\u003e十字ボタンが赤なのが気になります・・・\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e左下\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B01MZYWXI3/?tag=ikemo3-22\"\u003eXbox One ワイヤレス コントローラー\u003c/a\u003e(ブラック)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/Atari_2600\"\u003eATARI 2600\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B018V4EB7E/?tag=ikemo3-22\"\u003eリアルアーケードPro.V サイレントHAYABUSA\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0777KZJLY/?tag=ikemo3-22\"\u003ePlayStation Move\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0046EC9ZU/?tag=ikemo3-22\"\u003eWii リモコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e不明(ゲームボーイみたいな外見だが、十字がPS系みたいに割れてる)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e右下\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B01M1VMFUA/?tag=ikemo3-22\"\u003eファミコン\u003c/a\u003e(1P, 2P) ※リンク先はクラシックミニ、以下同様\u003c/li\u003e\n\u003cli\u003eMD COMPACT\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B00D3GQC7S/?tag=ikemo3-22\"\u003eWii U\u003c/a\u003e GamePad\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e右下(スクロール後)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJ9I/?tag=ikemo3-22\"\u003eネジコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B005LFI61E/?tag=ikemo3-22\"\u003eXbox 360 ワイヤレスコントローラー SE\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e後でまた出ますが、スティックの上下左右にポチがない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBN1W/?tag=ikemo3-22\"\u003eドリームキャスト\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBOJI/?tag=ikemo3-22\"\u003eビートマニアDJステーションPRO\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"デザインの観察\"\u003e「デザインの観察」\u003c/h2\u003e\n\u003cp\u003e中央に「デザインの観察」と出て、下に3つのコントローラがおいてあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e左: \u003ca href=\"https://ja.wikipedia.org/wiki/Atari_2600\"\u003eATARI 2600\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e中: \u003ca href=\"https://www.amazon.co.jp/dp/B075MK6THW/?tag=ikemo3-22\"\u003eスーパーファミコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e右: DUALSHOCK系(詳細不明)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"十字ボタンキー\"\u003e十字ボタン・キー\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/Atari_2600\"\u003eATARI 2600\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B01M1VMFUA/?tag=ikemo3-22\"\u003eファミコン\u003c/a\u003e(2P)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B075MK6THW/?tag=ikemo3-22\"\u003eスーパーファミコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBL5U/?tag=ikemo3-22\"\u003eホリコマンダーPC\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBIK8/?tag=ikemo3-22\"\u003eNintendo 64\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBN1W/?tag=ikemo3-22\"\u003eドリームキャスト\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJAM/?tag=ikemo3-22\"\u003eジョグコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBMA4/?tag=ikemo3-22\"\u003eセガサターンコントロールパッド\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJ9I/?tag=ikemo3-22\"\u003eネジコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBLGE/?tag=ikemo3-22\"\u003eファイティングコマンダーSS\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B00005OUOA/?tag=ikemo3-22\"\u003eファイティングコマンダー10B\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBNUI/?tag=ikemo3-22\"\u003eメガドライブ コントロールパッド\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJDY/?tag=ikemo3-22\"\u003eサンサターンパッド\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B005LFI61E/?tag=ikemo3-22\"\u003eXbox 360 ワイヤレスコントローラー SE\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B01NARTIBI/?tag=ikemo3-22\"\u003eDUALSHOCK 4\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ボタン\"\u003eボタン\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B01M1VMFUA/?tag=ikemo3-22\"\u003eファミコン\u003c/a\u003e(1P)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBN1W/?tag=ikemo3-22\"\u003eドリームキャスト\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJ9I/?tag=ikemo3-22\"\u003eネジコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B009AP2518/?tag=ikemo3-22\"\u003eWii U PROコントローラー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJRU/?tag=ikemo3-22\"\u003eセガサターン プロコマンダー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBMA4/?tag=ikemo3-22\"\u003eセガサターンコントロールパッド\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBLGE/?tag=ikemo3-22\"\u003eファイティングコマンダーSS\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B075MK6THW/?tag=ikemo3-22\"\u003eスーパーファミコン\u003c/a\u003e?\n\u003cul\u003e\n\u003cli\u003eボタンが赤なのが気になります。。。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001PWJ26/?tag=ikemo3-22\"\u003e3DO REAL II\u003c/a\u003e(FZ-10)\n\u003cul\u003e\n\u003cli\u003e3DOのマークがボタンの上にあるため。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMD COMPACT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBNUI/?tag=ikemo3-22\"\u003eメガドライブ コントロールパッド\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B005LFI61E/?tag=ikemo3-22\"\u003eXbox 360 ワイヤレスコントローラー SE\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://k-tai.watch.impress.co.jp/img/ktw/docs/565/781/html/360-3.jpg.html\"\u003eこの写真\u003c/a\u003eにあるように、Xだけ色が違う。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B01MZYWXI3/?tag=ikemo3-22\"\u003eXbox One ワイヤレス コントローラー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0017KIBAI/?tag=ikemo3-22\"\u003eニンテンドー ゲームキューブ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJDY/?tag=ikemo3-22\"\u003eサンサターンパッド\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0000648TM/?tag=ikemo3-22\"\u003eニューファミコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B075MK6THW/?tag=ikemo3-22\"\u003eスーパーファミコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBMIQ/?tag=ikemo3-22\"\u003eセガマルチコントローラ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBIK8/?tag=ikemo3-22\"\u003eNintendo 64\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0046EC9ZU/?tag=ikemo3-22\"\u003eWii リモコン\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"アナログデバイス\"\u003eアナログデバイス\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%B3_(%E3%82%B2%E3%83%BC%E3%83%A0)\"\u003eポン\u003c/a\u003e?\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJAM/?tag=ikemo3-22\"\u003eジョグコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B00111NUJA/?tag=ikemo3-22\"\u003eXbox 360 ワイヤレス レーシング ホイール\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJ9I/?tag=ikemo3-22\"\u003eネジコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%AF%E3%83%BC%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%96\"\u003eパワーグローブ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBIK8/?tag=ikemo3-22\"\u003eNintendo 64\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B018V4EB7E/?tag=ikemo3-22\"\u003eリアルアーケードPro.V サイレントHAYABUSA\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B000X1YEU8/?tag=ikemo3-22\"\u003eDUALSHOCK 3\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dic.pixiv.net/a/%E3%83%A2%E3%83%B3%E3%83%8F%E3%83%B3%E6%8C%81%E3%81%A1\"\u003eモンハン持ち\u003c/a\u003e、\u003ca href=\"http://dic.nicovideo.jp/a/ac%E6%8C%81%E3%81%A1\"\u003eAC持ち\u003c/a\u003eらしき映像あり\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBPN8/?tag=ikemo3-22\"\u003e電車でGO!コントローラー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBOJI/?tag=ikemo3-22\"\u003eビートマニアDJステーションPRO\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B001IBHTIG/?tag=ikemo3-22\"\u003e太鼓の達人\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e最下部にコードのみ出ていることから、Wii / Wii U向けと思われる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBP42/?tag=ikemo3-22\"\u003eつりコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0046EC9ZU/?tag=ikemo3-22\"\u003eWii リモコン\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"コントローラが並んで振動している\"\u003eコントローラが並んで振動している\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e左上: \u003ca href=\"https://www.amazon.co.jp/dp/B0001RBIK8/?tag=ikemo3-22\"\u003eNintendo 64\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e上: \u003ca href=\"https://www.amazon.co.jp/dp/B009AP2518/?tag=ikemo3-22\"\u003eWii U PROコントローラー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e右上: \u003ca href=\"https://www.amazon.co.jp/dp/B0017KIBAI/?tag=ikemo3-22\"\u003eニンテンドー ゲームキューブ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e左下: \u003ca href=\"https://www.amazon.co.jp/dp/B000X1YEU8/?tag=ikemo3-22\"\u003eDUALSHOCK 3\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e右下: \u003ca href=\"https://www.amazon.co.jp/dp/B01MZYWXI3/?tag=ikemo3-22\"\u003eXbox One ワイヤレス コントローラー\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ボタンのシルエット\"\u003eボタンのシルエット\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/Atari_2600\"\u003eATARI 2600\u003c/a\u003e?\u003c/li\u003e\n\u003cli\u003e不明\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B01M1VMFUA/?tag=ikemo3-22\"\u003eファミコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B075MK6THW/?tag=ikemo3-22\"\u003eスーパーファミコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBMA4/?tag=ikemo3-22\"\u003eセガサターンコントロールパッド\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e左右に2つ並ぶ\n\u003cul\u003e\n\u003cli\u003e左: \u003ca href=\"https://www.amazon.co.jp/dp/B0001RBLGE/?tag=ikemo3-22\"\u003eファイティングコマンダーSS\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e右: \u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJDY/?tag=ikemo3-22\"\u003eサンサターンパッド\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e左右に2つ並ぶ\n\u003cul\u003e\n\u003cli\u003e左: \u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJ9I/?tag=ikemo3-22\"\u003eネジコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e右: \u003ca href=\"https://www.amazon.co.jp/dp/B0017KIBAI/?tag=ikemo3-22\"\u003eニンテンドー ゲームキューブ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e左右に2つ並ぶ\n\u003cul\u003e\n\u003cli\u003e左: \u003ca href=\"https://www.amazon.co.jp/dp/B0001RBNUI/?tag=ikemo3-22\"\u003eメガドライブ コントロールパッド\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e右: \u003ca href=\"https://www.amazon.co.jp/dp/B000X1YEU8/?tag=ikemo3-22\"\u003eDUALSHOCK 3\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e左右に2つ並ぶ\n\u003cul\u003e\n\u003cli\u003e左: \u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJRU/?tag=ikemo3-22\"\u003eセガサターン プロコマンダー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e右: \u003ca href=\"https://www.amazon.co.jp/dp/B005LFI61E/?tag=ikemo3-22\"\u003eXbox 360 ワイヤレスコントローラー SE\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e左右に2つ並ぶ\n\u003cul\u003e\n\u003cli\u003e左: \u003ca href=\"https://www.amazon.co.jp/dp/B01MZYWXI3/?tag=ikemo3-22\"\u003eXbox One ワイヤレス コントローラー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e右: \u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJAM/?tag=ikemo3-22\"\u003eジョグコン\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e4つ並ぶ\n\u003cul\u003e\n\u003cli\u003e左上: \u003ca href=\"https://www.amazon.co.jp/dp/B0058OIU96/?tag=ikemo3-22\"\u003eN64 Tomee Controller\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e右上: \u003ca href=\"https://www.amazon.co.jp/dp/B0001RBN1W/?tag=ikemo3-22\"\u003eドリームキャスト\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e左下: \u003ca href=\"https://www.amazon.co.jp/dp/B0001RBOW0/?tag=ikemo3-22\"\u003eバイオハザード専用コントローラ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e右下: \u003ca href=\"https://www.amazon.co.jp/dp/B0001RBMIQ/?tag=ikemo3-22\"\u003eセガマルチコントローラ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e4つ並ぶ\n\u003cul\u003e\n\u003cli\u003e左上: \u003ca href=\"https://www.amazon.co.jp/dp/B00TPINVI6/?tag=ikemo3-22\"\u003eジョイボール\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e右上: \u003ca href=\"https://www.amazon.co.jp/dp/B0046EC9ZU/?tag=ikemo3-22\"\u003eWii リモコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e左下: \u003ca href=\"https://www.amazon.co.jp/dp/B0777KZJLY/?tag=ikemo3-22\"\u003ePlayStation Move\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e右下: \u003ca href=\"https://www.amazon.co.jp/dp/B009AP2518/?tag=ikemo3-22\"\u003eWii U PROコントローラー\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e4つ並ぶ\n\u003cul\u003e\n\u003cli\u003e左上: \u003ca href=\"https://www.amazon.co.jp/dp/B0001PWJ26/?tag=ikemo3-22\"\u003e3DO REAL II\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e右上: \u003ca href=\"https://www.amazon.co.jp/dp/B0000648TM/?tag=ikemo3-22\"\u003eニューファミコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e左下: \u003ca href=\"https://www.amazon.co.jp/dp/B0001RBL5A/?tag=ikemo3-22\"\u003eホリコマンダー\u003c/a\u003e?\n\u003cul\u003e\n\u003cli\u003e似たようなコントローラは他にもありますが、これが一番近い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e右下: MD COMPACT\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e4つ並ぶ\n\u003cul\u003e\n\u003cli\u003e左上: \u003ca href=\"https://www.amazon.co.jp/dp/B000FO600A/?tag=ikemo3-22\"\u003eエレコム JC-U2410T\u003c/a\u003e?\u003c/li\u003e\n\u003cli\u003e右上: \u003ca href=\"https://www.amazon.co.jp/dp/B000031KAG/?tag=ikemo3-22\"\u003eホリパッドミニN64\u003c/a\u003e?\n\u003cul\u003e\n\u003cli\u003e1つだけボタンの位置がずれているので、違うかもしれません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e左下: \u003ca href=\"https://www.amazon.co.jp/dp/B00005OUPK/?tag=ikemo3-22\"\u003eDUALSHOCK 2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e右下: \u003ca href=\"https://www.amazon.co.jp/dp/B01NARTIBI/?tag=ikemo3-22\"\u003eDUALSHOCK 4\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e4つ並ぶ\n\u003cul\u003e\n\u003cli\u003e左上: \u003ca href=\"https://www.amazon.co.jp/dp/B0001RBOPW/?tag=ikemo3-22\"\u003eアスキーグリップ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e右上: \u003ca href=\"https://www.amazon.co.jp/dp/B00KVZ77UK/?tag=ikemo3-22\"\u003eメガブラスター\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e左下: \u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%94%E3%83%94%E3%83%B3%E3%82%A2%E3%83%83%E3%83%88%E3%83%9E%E3%83%BC%E3%82%AF\"\u003eピピンアットマーク\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e右下: \u003ca href=\"https://www.amazon.co.jp/dp/B06XR8RDLH/?tag=ikemo3-22\"\u003eSteamコントローラ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"モックアップ\"\u003eモックアップ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B01M1VMFUA/?tag=ikemo3-22\"\u003eファミコン\u003c/a\u003e(1P)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B075MK6THW/?tag=ikemo3-22\"\u003eスーパーファミコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBMA4/?tag=ikemo3-22\"\u003eセガサターンコントロールパッド\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBIK8/?tag=ikemo3-22\"\u003eNintendo 64\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B00005OUPK/?tag=ikemo3-22\"\u003eDUALSHOCK 2\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"メーカー別にまとめてみた\"\u003eメーカー別にまとめてみた\u003c/h2\u003e\n\u003cp\u003e合併した会社もありますが、できるだけ当時の社名で記載しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eアタリ\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%B3_(%E3%82%B2%E3%83%BC%E3%83%A0)\"\u003eポン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/Atari_2600\"\u003eATARI 2600\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e任天堂\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B01M1VMFUA/?tag=ikemo3-22\"\u003eファミコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B075MK6THW/?tag=ikemo3-22\"\u003eスーパーファミコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0000648TM/?tag=ikemo3-22\"\u003eニューファミコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBIK8/?tag=ikemo3-22\"\u003eNintendo 64\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0017KIBAI/?tag=ikemo3-22\"\u003eニンテンドー ゲームキューブ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0046EC9ZU/?tag=ikemo3-22\"\u003eWii リモコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B00D3GQC7S/?tag=ikemo3-22\"\u003eWii U\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B009AP2518/?tag=ikemo3-22\"\u003eWii U PROコントローラー\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eセガ\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBNUI/?tag=ikemo3-22\"\u003eメガドライブ コントロールパッド\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBMIQ/?tag=ikemo3-22\"\u003eセガマルチコントローラ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBMA4/?tag=ikemo3-22\"\u003eセガサターンコントロールパッド\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJRU/?tag=ikemo3-22\"\u003eセガサターン プロコマンダー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBN1W/?tag=ikemo3-22\"\u003eドリームキャスト\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eソニー(SCE, SIE)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B00005OUPK/?tag=ikemo3-22\"\u003eDUALSHOCK 2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B000X1YEU8/?tag=ikemo3-22\"\u003eDUALSHOCK 3\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0777KZJLY/?tag=ikemo3-22\"\u003ePlayStation Move\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B01NARTIBI/?tag=ikemo3-22\"\u003eDUALSHOCK 4\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMicrosoft\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B01MZYWXI3/?tag=ikemo3-22\"\u003eXbox One ワイヤレス コントローラー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B005LFI61E/?tag=ikemo3-22\"\u003eXbox 360 ワイヤレスコントローラー SE\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B00111NUJA/?tag=ikemo3-22\"\u003eXbox 360 ワイヤレス レーシング ホイール\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eナムコ\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJ9I/?tag=ikemo3-22\"\u003eネジコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJAM/?tag=ikemo3-22\"\u003eジョグコン\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B001IBHTIG/?tag=ikemo3-22\"\u003e太鼓の達人\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eコナミ\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBOJI/?tag=ikemo3-22\"\u003eビートマニアDJステーションPRO\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B000CSSW8W/?tag=ikemo3-22\"\u003eドラムマニア専用コントローラ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B000CSSW8C/?tag=ikemo3-22\"\u003eギターフリークス専用コントローラ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eホリ\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBL5A/?tag=ikemo3-22\"\u003eホリコマンダー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBL5U/?tag=ikemo3-22\"\u003eホリコマンダーPC\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B000031KAG/?tag=ikemo3-22\"\u003eホリパッドミニN64\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B00005OUOA/?tag=ikemo3-22\"\u003eファイティングコマンダー10B\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBLGE/?tag=ikemo3-22\"\u003eファイティングコマンダーSS\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B018V4EB7E/?tag=ikemo3-22\"\u003eリアルアーケードPro.V サイレントHAYABUSA\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eアスキー\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBOPW/?tag=ikemo3-22\"\u003eアスキーグリップ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBOW0/?tag=ikemo3-22\"\u003eバイオハザード専用コントローラ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/dp/B0001RBP42/?tag=ikemo3-22\"\u003eつりコン\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eその他\n\u003cul\u003e\n\u003cli\u003eアクティビジョン: \u003ca href=\"https://www.amazon.co.jp/dp/B00165RA0G/?tag=ikemo3-22\"\u003eギターヒーロー3専用コントローラー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eエース電子: \u003ca href=\"https://www.amazon.co.jp/dp/B00KVZ77UK/?tag=ikemo3-22\"\u003eメガブラスター\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eエレコム: \u003ca href=\"https://www.amazon.co.jp/dp/B000FO600A/?tag=ikemo3-22\"\u003eエレコム JC-U2410T\u003c/a\u003e?\u003c/li\u003e\n\u003cli\u003eカプコン: \u003ca href=\"https://ja.wikipedia.org/wiki/%E9%89%84%E9%A8%8E\"\u003e鉄騎専用コントローラー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eサン電子: \u003ca href=\"https://www.amazon.co.jp/dp/B0001RBJDY/?tag=ikemo3-22\"\u003eサンサターンパッド\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eタイトー: \u003ca href=\"https://www.amazon.co.jp/dp/B0001RBPN8/?tag=ikemo3-22\"\u003e電車でGO!コントローラー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eパックス: \u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%AF%E3%83%BC%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%96\"\u003eパワーグローブ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eパナソニック: \u003ca href=\"https://www.amazon.co.jp/dp/B0001PWJ26/?tag=ikemo3-22\"\u003e3DO REAL II\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eバンダイ: \u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%94%E3%83%94%E3%83%B3%E3%82%A2%E3%83%83%E3%83%88%E3%83%9E%E3%83%BC%E3%82%AF\"\u003eピピンアットマーク\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHAL研究所: \u003ca href=\"https://www.amazon.co.jp/dp/B00TPINVI6/?tag=ikemo3-22\"\u003eジョイボール\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTomee: \u003ca href=\"https://www.amazon.co.jp/dp/B0058OIU96/?tag=ikemo3-22\"\u003eN64 Tomee Controller\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValve: \u003ca href=\"https://www.amazon.co.jp/dp/B06XR8RDLH/?tag=ikemo3-22\"\u003eSteamコントローラ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eメガドライブ互換機。非ライセンス品なのでリンクは貼りません・・・\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Design-Ah",
    "url": "https://www.ikemo3.com/tags/design-ah/",
    "contents": ""
  }, 
  {
    "title": "【継続調査】JavaScriptでのIMEハンドリング",
    "url": "https://www.ikemo3.com/inverted/javascript/ime-handling/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e日本語入力のハンドリングをJavaScriptでどう扱うかという話です。\n可能なら、変換中は処理せず、変換が完了した時点で処理したい。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChrome 68\u003c/li\u003e\n\u003cli\u003eFirefox 61.0.2\u003c/li\u003e\n\u003cli\u003eSafari 11.1.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e以下の2つが使えそうな候補です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/Reference/Events/compositionend\"\u003ecompositionend\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/isComposing\"\u003eisComposing\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eJSFiddleで検証用の簡単なコードを書いています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://jsfiddle.net/ikemo/r20ke6c4/9/\"\u003eEdit fiddle - JSFiddle\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cp\u003e実際の結果は以下のようになりました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChrome\n\u003cul\u003e\n\u003cli\u003eIMEオフで入力: inputイベントが発生。isComposingはfalse\u003c/li\u003e\n\u003cli\u003eIMEオン、入力中: inputイベントが発生。isComposingはtrue\u003c/li\u003e\n\u003cli\u003eIMEオン、入力完了: compositionendイベントが発生\u003c/li\u003e\n\u003cli\u003eペースト: inputイベントが発生、isComposingはfalse\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFirefox\n\u003cul\u003e\n\u003cli\u003eIMEオフで入力: inputイベントが発生。isComposingはfalse\u003c/li\u003e\n\u003cli\u003eIMEオン、入力中: inputイベントが発生。isComposingはtrue\u003c/li\u003e\n\u003cli\u003eIMEオン、入力完了:\n\u003cul\u003e\n\u003cli\u003ecompositionendイベントが発生\u003c/li\u003e\n\u003cli\u003einputイベントが発生、isComposingはfalse\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eペースト: inputイベントが発生、isComposingはfalse\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSafari\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eisComposingは未対応(undefined)\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eIMEオフ: 入力時にinputイベントが発生。\u003c/li\u003e\n\u003cli\u003eIMEオン、入力中: inputイベントが発生。\u003c/li\u003e\n\u003cli\u003eIMEオン、入力完了:\n\u003cul\u003e\n\u003cli\u003einputイベントが2回発生\u003c/li\u003e\n\u003cli\u003ecompositionendイベントが発生\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこの時点でちょっとやる気なくしました(´・ω・｀)\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "I18n",
    "url": "https://www.ikemo3.com/tags/i18n/",
    "contents": ""
  }, 
  {
    "title": "ghq",
    "url": "https://www.ikemo3.com/manual/ghq/",
    "contents": "\u003ch2 id=\"入れておいたほうがいいもの\"\u003e入れておいたほうがいいもの\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/peco/peco\"\u003epeco\u003c/a\u003e/\u003ca href=\"https://github.com/junegunn/fzf\"\u003efzf\u003c/a\u003e: 標準出力をインタラクティブに検索\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/github/hub\"\u003ehub\u003c/a\u003e: githubをコマンドラインから扱うためのラッパー\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/motemen/github-list-starred\"\u003egithub-list-starred\u003c/a\u003e: スターを付けたリポジトリをリスト\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emacOSの場合、どちらもbrewコマンドで入れられます。\n以下の記事を参考にしました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/itkrt2y/items/0671d1f48e66f21241e2\"\u003eghq, peco, hubで快適Gitライフを手に入れよう！ - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/kmszk/items/aa9920f07487559c0c7e\"\u003efzfを活用してTerminalの作業効率を高める - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"初期設定\"\u003e初期設定\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGHQ_ROOT: ghqがcloneするパス。\n\u003cul\u003e\n\u003cli\u003e自分は\u003ccode\u003e~/src\u003c/code\u003eにセットしました。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eGITHUB_USER: GitHubのユーザID\n\u003cul\u003e\n\u003cli\u003eデフォルトではOSのユーザIDとなるので、違う場合のみ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003egithub-list-starredの設定\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit config --global ghq.import.starred github-list-starred\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"基本的な使い方\"\u003e基本的な使い方\u003c/h2\u003e\n\u003ch3 id=\"リポジトリの追加\"\u003eリポジトリの追加\u003c/h3\u003e\n\u003cp\u003egetコマンドでclone/syncします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eghq get https://github.com/motemen/ghq\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eimportコマンドでまとめて取得します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eghq import starred ikemo3\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"リポジトリの表示\"\u003eリポジトリの表示\u003c/h3\u003e\n\u003cp\u003elistコマンドでローカルリポジトリの一覧を表示します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eghq list\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"リポジトリの検索\"\u003eリポジトリの検索\u003c/h3\u003e\n\u003cp\u003eリポジトリにcdして、シェルを起動します。\nヘルプは\u003ccode\u003eghq look --help\u003c/code\u003eで出ます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eghq look \u0026lt;project\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eghq look \u0026lt;user\u0026gt;/\u0026lt;project\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eghq look \u0026lt;host\u0026gt;/\u0026lt;user\u0026gt;/\u0026lt;project\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Github",
    "url": "https://www.ikemo3.com/tags/github/",
    "contents": ""
  }, 
  {
    "title": "GNS3",
    "url": "https://www.ikemo3.com/dic/gns3/",
    "contents": "\u003ch2 id=\"gns3とは\"\u003eGNS3とは\u003c/h2\u003e\n\u003cp\u003eネットワーク機器をエミュレートするソフトウェアです。\nいろんなベンダーをサポートしているらしいです。\u003c/p\u003e\n\u003ch2 id=\"ansibleとの相性が良さそう\"\u003eAnsibleとの相性が良さそう\u003c/h2\u003e\n\u003cp\u003eまだ試したことはないのですが、\nAnsibleにはネットワーク機器のサポートがあるので、\nその練習にちょうどいいらしいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/ken5owata/items/999b84939bf3c99736d5\"\u003eGNS3 on AWS で始めるAnsible×Cisco学習環境構築 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/ken5owata/items/e0d4f53e5b36a01308d2#_reference-ecd62482f963b936c44b\"\u003eAWSでいろんなAnsible Network modulesを試してみるまとめ - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Javaのクラスとインタフェースはバイナリ互換性がない",
    "url": "https://www.ikemo3.com/theme/java/class-and-interface-is-incompatible/",
    "contents": "\u003ch2 id=\"サンプルコード\"\u003eサンプルコード\u003c/h2\u003e\n\u003cp\u003e例えば以下のようなコードがあります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eFoo\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eexec\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    System.\u003cspan style=\"color:#a6e22e\"\u003eout\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eprintln\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;foo\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eFooFactory\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003estatic\u003c/span\u003e Foo \u003cspan style=\"color:#a6e22e\"\u003ecreateFoo\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Foo();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eMain\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003estatic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emain\u003c/span\u003e(String\u003cspan style=\"color:#f92672\"\u003e[]\u003c/span\u003e args) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    Foo foo \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e FooFactory.\u003cspan style=\"color:#a6e22e\"\u003ecreateFoo\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    foo.\u003cspan style=\"color:#a6e22e\"\u003eexec\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e実行結果は以下のとおりです。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e$ java Main\nfoo\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eこのFooをインタフェースにします。\nMainクラスはそのままです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003einterface\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eFoo\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eexec\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eBar\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eimplements\u003c/span\u003e Foo {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eexec\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    System.\u003cspan style=\"color:#a6e22e\"\u003eout\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eprintln\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;bar\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eFooFactory\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003estatic\u003c/span\u003e Foo \u003cspan style=\"color:#a6e22e\"\u003ecreateFoo\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Bar();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこのMainクラスを再コンパイルせずに実行すると、以下のようなエラーが出ます。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e$ java Main\nException in thread \u0026#34;main\u0026#34; java.lang.IncompatibleClassChangeError: Found interface Foo, but class was expected\n    at Main.main(Main.java:4)\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eMainクラスを再コンパイルすると、以下のようになります。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e$ java Main\nbar\n\u003c/code\u003e\u003c/pre\u003e"
  }, 
  {
    "title": "Network",
    "url": "https://www.ikemo3.com/tags/network/",
    "contents": ""
  }, 
  {
    "title": "Apple",
    "url": "https://www.ikemo3.com/tags/apple/",
    "contents": ""
  }, 
  {
    "title": "Ios",
    "url": "https://www.ikemo3.com/tags/ios/",
    "contents": ""
  }, 
  {
    "title": "iOSデバイス(iPhone, iPadなど)のリカバリー",
    "url": "https://www.ikemo3.com/inverted/ios/recovery/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eiPhone, iPadなどのiOSデバイスをリカバリーする方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eリカバリーモードを試す。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://support.apple.com/ja-jp/HT201263\"\u003eiPhone、iPad、iPod touch をアップデート／復元できない場合 - Apple サポート\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eエラーが出たときは以下の手順を試す。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://support.apple.com/ja-jp/HT201444\"\u003eiOS デバイスの復元時にエラー 9、4005、4013、または 4014 が表示される場合 - Apple サポート\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://support.apple.com/ja-jp/HT204770\"\u003eiOS のアップデート時や復元時のエラーの解決方法 - Apple サポート\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eそれでもダメなときは、DFUモードを試す。\n\u003cul\u003e\n\u003cli\u003eDFUモードは公式にアナウンスしていない機能のため、最終手段として使用してください\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://weekly.ascii.jp/elem/000/000/205/205944/\"\u003eiPhoneやiPadの調子が悪いときは、DFUモードを試してみましょう｜Mac - 週刊アスキー\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e1度だけリカバリーモードでも起動しなかったときに使用しました。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Iphone",
    "url": "https://www.ikemo3.com/tags/iphone/",
    "contents": ""
  }, 
  {
    "title": "Jar",
    "url": "https://www.ikemo3.com/tags/jar/",
    "contents": ""
  }, 
  {
    "title": "jarファイルの互換性をチェックする方法",
    "url": "https://www.ikemo3.com/inverted/jar/check-compatibility/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003ejarファイルのバイナリ互換性、ソース互換性をチェックする方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/lvc/japi-compliance-checker/blob/master/INSTALL\"\u003eINSTALL\u003c/a\u003e参照。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePerl 5.8以上\u003c/li\u003e\n\u003cli\u003eJDK(javap, javac, jar, jmodコマンドを使うようです)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e以下のツールを使います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lvc.github.io/japi-compliance-checker/\"\u003eJava API Compliance Checker\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"インストール\"\u003eインストール\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/lvc/japi-compliance-checker#install\"\u003eInstall\u003c/a\u003e参照。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esudo make install prefix\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e/usr\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e自分はDocker環境に閉じ込めました。\u003c/p\u003e\n\u003ch3 id=\"実行\"\u003e実行\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/lvc/japi-compliance-checker#usage\"\u003eUsage\u003c/a\u003e参照。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ejapi-compliance-checker OLD.jar NEW.jar\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e実行すると、以下のように出力されます。\nレポートがHTMLで出力されるので、これを開くと、詳細が表示されます。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ePreparing, please wait ...\nUsing Java 1.8.0_xx\nReading classes OLD ...\nReading classes NEW ...\nComparing classes ...\nCreating compatibility report ...\nBinary compatibility: 100%\nSource compatibility: 100%\nTotal binary compatibility problems: 0, warnings: 0\nTotal source compatibility problems: 0, warnings: 0\nReport: compat_reports/CM/OLD_to_NEW/compat_report.html\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://abi-laboratory.pro/\"\u003eABI Laboratory\u003c/a\u003eでは、\n有名なライブラリについてチェックした結果も掲載されています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://abi-laboratory.pro/java/tracker/\"\u003eAPI Tracker: Tested Java libraries\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e面白いのが、Apache Commons Collections 3.2と4.0の比較で、\nこれは互換性が0%と表示されています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://abi-laboratory.pro/?view=timeline\u0026amp;lang=java\u0026amp;l=commons-collections\"\u003eAPI/ABI changes review for Commons Collections\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eその理由は、Apache Commons Collections 4.0はパッケージ名を変更したため、\n互換性が無くなっているからです(逆に言えば、併用が可能)。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://commons.apache.org/proper/commons-collections/release_4_0.html\"\u003eCollections – Release notes for version 4.0\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eTo help with the migration to this new version, the package has changed to \u0026ldquo;org.apache.commons.collections4\u0026rdquo;, thus it is possible to have both commons-collections versions in the classpath.\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "Scalable Vector Graphics(SVG)",
    "url": "https://www.ikemo3.com/manual/svg/",
    "contents": "\u003ch2 id=\"基本要素\"\u003e基本要素\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/SVG/Element/g\"\u003eg\u003c/a\u003e: コンテナ\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/SVG/Element/title\"\u003etitle\u003c/a\u003e: タイトル\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/SVG/Element/rect\"\u003erect\u003c/a\u003e: 四角形\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/SVG/Element/a\"\u003ea\u003c/a\u003e: リンク\n\u003cul\u003e\n\u003cli\u003ehrefは \u003ccode\u003exlink:href\u003c/code\u003e のようにXLinkのネームスペースを使って表現することになっていたが、SVG2からはこれはdeprecatedになっている[^xlink:href]。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"pngに変換する方法\"\u003epngに変換する方法\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/shakiba/svgexport\"\u003esvgexport\u003c/a\u003eを使うのが楽。\u003c/p\u003e\n\u003cp\u003e例えば、input.svgを16x16のpngにするには、以下のようにする。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esvgexport input.svg output.png 16:16\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Javadoc",
    "url": "https://www.ikemo3.com/manual/javadoc/",
    "contents": "\u003ch2 id=\"javadocはhtml\"\u003eJavadocはHTML\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/technotes/tools/unix/javadoc.html#CHDGDJAH\"\u003e概要コメント・ファイル\u003c/a\u003eより。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e概要コメント・ファイルの内容は、HTMLで記述された1つの大きなドキュメンテーション・コメントです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"javadocタグ\"\u003eJavadocタグ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/technotes/tools/unix/javadoc.html#CHDFHHBB\"\u003e{@code text}\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;\u003c/code\u003eや\u003ccode\u003e\u0026gt;\u003c/code\u003eがそのまま使える。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/HTML/Element/code\"\u003ecode要素\u003c/a\u003eが出力される。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ソースコードの埋め込み方\"\u003eソースコードの埋め込み方\u003c/h2\u003e\n\u003cp\u003e以下のように、\u003ccode\u003e\u0026lt;pre\u0026gt;\u003c/code\u003eと\u003ccode\u003e{@code text}\u003c/code\u003eを使う。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e/** \n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e * \u0026lt;pre\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e * {@code\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e     // ここにソースコードを書く\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e * }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e * \u0026lt;/pre\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "ECMAScript",
    "url": "https://www.ikemo3.com/dic/ecmascript/",
    "contents": "\u003ch2 id=\"ecmascriptとは\"\u003eECMAScriptとは\u003c/h2\u003e\n\u003cp\u003eJavaScriptの標準化された仕様です。\n「エクマスクリプト」と呼びます。\u003c/p\u003e\n\u003ch2 id=\"サポート状況\"\u003eサポート状況\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://kangax.github.io/compat-table/es6/\"\u003eECMAScript 6 compatibility table\u003c/a\u003eによれば、以下のようになっています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eApple Safari 11.1.2: ES2017までサポート\n\u003cul\u003e\n\u003cli\u003eただし古い機能でいくつかサポートされてないものがある。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eGoogle Chrome 68: ES2018までサポート\u003c/li\u003e\n\u003cli\u003eMicrosoft Edge 17: ES2016までサポート\n\u003cul\u003e\n\u003cli\u003eただしES6で問題あり\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMicrosoft Internet Explorer: ES5までサポート\u003c/li\u003e\n\u003cli\u003eMozilla Firefox 61: ES2016までサポート済み(ES2017は1つNoがあった)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただし以下は例外扱いにしています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e末尾再帰の最適化: 機能上は影響ないため。\u003c/li\u003e\n\u003cli\u003eSharedArrayBuffer: Spectre脆弱性対策のため。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eというわけなので、基本的には以下のようにするのがいいかなと。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIE11対応: ES5まで\n\u003cul\u003e\n\u003cli\u003eただキツいので、コンパイル + polyfill使うのが良さげ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eIE11以外: ES2016 + α\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "TypeScript",
    "url": "https://www.ikemo3.com/manual/typescript/",
    "contents": "\u003ch2 id=\"公式\"\u003e公式\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.typescriptlang.org/\"\u003eTypeScript - JavaScript that scales.\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"webstormの場合\"\u003eWebStormの場合\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.jetbrains.com/webstorm/\"\u003eWebStorm\u003c/a\u003eの場合は、\n単に\u003ccode\u003e.js\u003c/code\u003eを\u003ccode\u003e.ts\u003c/code\u003eに変えればコンパイルしてくれるようです。\nそれから、コンパイルエラーになった箇所を修正すると良いでしょう。\u003c/p\u003e\n\u003ch2 id=\"tsconfigjson\"\u003etsconfig.json\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.typescriptlang.org/docs/handbook/tsconfig-json.html\"\u003etsconfig.json · TypeScript\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこんなのがあるらしい。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://zenn.dev/yuta_ura/articles/introduce-tsconfig-bases\"\u003etsconfig/bases の紹介！\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cp\u003e特に気をつけないといけないのは、compilerOptionsのtargetです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.typescriptlang.org/docs/handbook/compiler-options.html\"\u003eCompiler Options · TypeScript\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChrome拡張の場合はGoogle Chromeのサポートのみ考えればいいので、\u0026ldquo;es2018\u0026quot;で良さそうです\n(参考: \u003ca href=\"/dic/ecmascript/\"\u003eECMAScript\u003c/a\u003e)。\u003c/p\u003e\n\u003ch3 id=\"型の読み込み元\"\u003e型の読み込み元\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#types-typeroots-and-types\"\u003e@types, typeRoots and types\u003c/a\u003eより。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e./node_modules/@types/\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e../node_modules/@types/\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e../../node_modules/@types/\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下同様に親ディレクトリの\u003ccode\u003enode_modules/@types/\u003c/code\u003eが呼ばれます。\nカスタマイズもできるようです(使う機会があるかどうかは不明)。\u003c/p\u003e\n\u003ch2 id=\"基本文法\"\u003e基本文法\u003c/h2\u003e\n\u003cp\u003eJavaScriptと違う、TypeScript独自の点だけ。\u003c/p\u003e\n\u003ch3 id=\"型の割り当て\"\u003e型の割り当て\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html\"\u003eTypeScript in 5 minutes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e変数名: 型\u003c/code\u003e で、型を割り当てます。\u003c/p\u003e\n\u003cp\u003e例: \u003ccode\u003elet person: string = \u0026quot;abc\u0026quot;\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e注意すべき点としては、\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/arrow_functions\"\u003eアロー関数\u003c/a\u003eの引数のカッコを省略している場合です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocument.\u003cspan style=\"color:#a6e22e\"\u003equerySelectorAll\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;...\u0026#34;\u003c/span\u003e).\u003cspan style=\"color:#a6e22e\"\u003eforEach\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eitem\u003c/span\u003e =\u0026gt; {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e});\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこれに型をつけるとカッコが必要になります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-typescript\" data-lang=\"typescript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocument.\u003cspan style=\"color:#a6e22e\"\u003equerySelectorAll\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;...\u0026#34;\u003c/span\u003e).\u003cspan style=\"color:#a6e22e\"\u003eforEach\u003c/span\u003e((\u003cspan style=\"color:#a6e22e\"\u003eitem\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eHTMLSpanElement\u003c/span\u003e) \u003cspan style=\"color:#f92672\"\u003e=\u0026gt;\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e});\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"インタフェース\"\u003eインタフェース\u003c/h3\u003e\n\u003cp\u003eオブジェクトのプロパティなどを定義できます。\n互換性がある場合、implementsは省略可能です(後述の「クラス」で説明)。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-typescript\" data-lang=\"typescript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003einterface\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ePerson\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003efirstNae\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003estring\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003elastName\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003estring\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"クラス\"\u003eクラス\u003c/h3\u003e\n\u003cp\u003eコンストラクタに\u003ccode\u003epublic\u003c/code\u003eをつけると、\n自動的に対応するプロパティを作成します。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html\"\u003eTypeScript in 5 minutes\u003c/a\u003eを簡単に解説すると、以下のようになります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003euserはStudentクラスのインスタンス\u003c/li\u003e\n\u003cli\u003eStudentクラスはコンストラクタのpublicキーワードにより、firstName, middleInitial, lastNameをプロパティに持つ。\u003c/li\u003e\n\u003cli\u003eよって、StudentクラスはPersonインタフェースと互換性がある(implementsされたものとして扱う)\u003c/li\u003e\n\u003cli\u003eよって、greeter()関数に渡してもエラーにならない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-typescript\" data-lang=\"typescript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eStudent\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003efullName\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003estring\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003econstructor\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efirstName\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003estring\u003c/span\u003e, \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emiddleInitial\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003estring\u003c/span\u003e, \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003elastName\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003estring\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003efullName\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efirstName\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34; \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emiddleInitial\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34; \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003elastName\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003einterface\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ePerson\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003efirstName\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003estring\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003elastName\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003estring\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003egreeter\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eperson\u003c/span\u003e : \u003cspan style=\"color:#66d9ef\"\u003ePerson\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Hello, \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eperson\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003efirstName\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34; \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eperson\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003elastName\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003elet\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003euser\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eStudent\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Jane\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;M.\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;User\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocument.\u003cspan style=\"color:#a6e22e\"\u003ebody\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003einnerHTML\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003egreeter\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003euser\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"readonly\"\u003ereadonly\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.typescriptlang.org/docs/handbook/classes.html#readonly-modifier\"\u003eReadonly modifier\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eプロパティに付け、以下のような効果があります。\nJavaでのfinalと同じです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e書き換え不可\u003c/li\u003e\n\u003cli\u003eコンストラクタで初期化しないといけない\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"キャストtype-assertion\"\u003eキャスト(Type Assertion)\u003c/h3\u003e\n\u003cp\u003eキャストではなくAssertionなのは、コンパイラがチェックするだけで、\n実際には何もしないからのようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.typescriptlang.org/docs/handbook/basic-types.html#type-assertions\"\u003eBasic Types \u0026gt; Type assertions\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例えば\u003ccode\u003edocument.getElementById()\u003c/code\u003eはHTMLElementを返すが、\n実際はHTMLSpanElementの場合、\n以下のようにキャストします。\u003c/p\u003e\n\u003cp\u003e2つとも同じですが、後者はTSLintでエラーが出るため、\n前者の方がよさそうです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-typescript\" data-lang=\"typescript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efoo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003egetElementById\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;foo\u0026#34;\u003c/span\u003e) \u003cspan style=\"color:#66d9ef\"\u003eas\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eHTMLSpanElement\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efoo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u0026lt;\u003cspan style=\"color:#f92672\"\u003eHTMLSpanElement\u003c/span\u003e\u0026gt; document.\u003cspan style=\"color:#a6e22e\"\u003egetElementById\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;foo\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eただ、キャストは型チェックをしないため基本的にはよくないです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://typescript-jp.gitbook.io/deep-dive/type-system/type-assertion\"\u003eType Assertion - TypeScript Deep Dive 日本語版\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eType Guardという仕組みを使うのが良さそうです(未検証)。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/propella/items/33433278497f290ceadb\"\u003eTypeScript の Type Guard を使ってキャストいらず - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"javascriptとの互換性\"\u003eJavaScriptとの互換性\u003c/h2\u003e\n\u003ch3 id=\"storageが定義できない\"\u003eStorageが定義できない\u003c/h3\u003e\n\u003cp\u003eStorageという名前の定数を定義していたのですが、\nこれがコンパイルエラーになりました。\u003c/p\u003e\n\u003cp\u003eおそらく、Web Storage APIのStorageインタフェースと\n競合していたと思われます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/Storage\"\u003eStorage - Web API インターフェイス | MDN\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "teratail",
    "url": "https://www.ikemo3.com/dic/teratail/",
    "contents": "\u003ch2 id=\"teratailとは\"\u003eteratailとは\u003c/h2\u003e\n\u003cp\u003eエンジニアのためのQAサイトです。\n自分も参加しました。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://teratail.com/users/ikemo\"\u003ehttps://teratail.com/users/ikemo\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"利用規約\"\u003e利用規約\u003c/h2\u003e\n\u003cp\u003e参加するまで気にしてなかったのですが(悪い評判もなかったので)、\nそういや利用規約どうだったけと思ったので、\n気になる点を簡単にまとめておきます。\n特に、自分の投稿に対する著作権の扱いが重要なので。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://teratail.com/legal\"\u003e利用規約｜teratail（テラテイル）\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"自分が投稿したものの権利\"\u003e自分が投稿したものの権利\u003c/h3\u003e\n\u003cp\u003e第9条3に以下のように書かれています。\nポイントは「ライセンス付与」「非独占的」です。\nなので、自分の投稿を自分で使う分には問題ありません。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e登録ユーザーは、投稿データについて、当社に対し、世界的、非独占的、無償、サブライセンス可能かつ譲渡可能な使用、複製、編集、改編、掲載、転載、公衆送信、上映、展示、提供、販売、譲渡、貸与、翻訳、翻案、配布などができる権利および二次的著作物に関する現著作権者の権利（著作権法２１条ないし２８条の権利をいい、商用利用を含む）に関するライセンスを付与します。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"禁止事項\"\u003e禁止事項\u003c/h3\u003e\n\u003cp\u003e第7条の(20)が気になりました。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e本サービスを利用することにより知り得たサイト運営上の情報や技術情報等をもとに、本サービスと同様のサービスを提供する行為\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e明らかにアウトなのは、teratailのコピペサイトですね。\nあとは通常の著作権の範囲かなと。\u003c/p\u003e\n"
  }, 
  {
    "title": "ポート番号",
    "url": "https://www.ikemo3.com/dic/port-number/",
    "contents": "\u003ch2 id=\"ポート番号とは\"\u003eポート番号とは\u003c/h2\u003e\n\u003cp\u003e接続先サービスを識別するための番号です。\u003c/p\u003e\n\u003ch2 id=\"ウェルノウンポート番号の割り当て\"\u003eウェルノウンポート番号の割り当て\u003c/h2\u003e\n\u003cp\u003eteratailでちょっと面白い質問があったのと、\n先に調べてくれていた人がいたので、調べてみました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://teratail.com/questions/140687\"\u003eTCP - ウェルノウンポートの割り当て規則について教えてください(140687)｜teratail\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e回答はリンク先にあるので、\n自分が調べた、より生のデータを書いてみます。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://tools.ietf.org/html/rfc33\"\u003eRFC 33\u003c/a\u003eのAENにも\u003ccode\u003e(0 = receive, 1 = send)\u003c/code\u003eという記述があったので、\nこれがポートかと思ったんですが、\n例を見ると、portは別にあり、Initが1、Listenが9なので、ちょっと微妙でした。\nなので、これは除外しました。\u003c/p\u003e\n\u003cp\u003e次に\u003ca href=\"https://tools.ietf.org/html/rfc147\"\u003eRFC 147\u003c/a\u003eを採用したのは、以下の3点からです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRFC 147はいろんなところで参照されている。\u003c/li\u003e\n\u003cli\u003eRFC 147にはNCPの記述もある。\u003c/li\u003e\n\u003cli\u003eRFC 147には\u003ccode\u003eodd\u003c/code\u003eと\u003ccode\u003eeven\u003c/code\u003eの記述がある。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただ、このRFCでは\u0026quot;tag\u0026quot;という言い方をしているので、\nもしかしたら、正しくないのかもしれません。\nただ、この時点では「奇数＝送信」「偶数＝受信」の組で扱われていたのを\n表すには十分かなと。\u003c/p\u003e\n\u003cp\u003e最後に、RFC 147を見つけた方法ですが、RFCを最初から順番に調べました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://tools.ietf.org/rfc/index\"\u003eRFC Index\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "macOS: 音声入り動画をキャプチャする方法",
    "url": "https://www.ikemo3.com/inverted/macos/capture-movie-with-sound/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003emacOSで音声入りの動画をキャプチャして、mp4ファイルに落とす方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eMac App StoreにあるLadioCastというアプリを使います。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eLadioCastを起動する。\u003c/li\u003e\n\u003cli\u003e環境設定→サウンド\u003cstrong\u003e出力\u003c/strong\u003eに「Soundflower(2ch)」を選択する。\n\u003cul\u003e\n\u003cli\u003eこのときに、主音量を\u003cstrong\u003e最大\u003c/strong\u003eにする。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eQuickTime Playerを起動して録画する。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "割り込みタスクをネストさせない",
    "url": "https://www.ikemo3.com/theme/task-management/do-not-nest-interrupt/",
    "contents": "\u003ch2 id=\"割り込みは避けるのは難しい\"\u003e割り込みは避けるのは難しい\u003c/h2\u003e\n\u003cp\u003eタスク管理の一番の悩みどころは、「割り込みタスク」です。\n他の人から急用を頼まれることもあれば、\n今やっている作業とは別のことをやってしまう、\nいわゆる「脱線」も、割り込みの一つです。\u003c/p\u003e\n\u003cp\u003eここでは、その割り込みタスクを避ける方法については書きません。\nただ、割り込みタスクがしょうがないとしても、\n割り込みのネスト、別の言い方をすると、\n「割り込みの割り込み」はなんとでも避けるべきです。\u003c/p\u003e\n\u003ch2 id=\"脳が疲労する\"\u003e脳が疲労する\u003c/h2\u003e\n\u003cp\u003eなぜ避けるべきかというと、ものすごく疲労するからです。\n作業中に割り込まれると、割り込まれる前の状態を脳が覚えようとします。\n割り込みに割り込みが入ると、覚える状態が2つに増えます。\n割り込みが増えるほど、覚える状態が増え、脳が疲労します。\u003c/p\u003e\n\u003ch2 id=\"ネストさせないための対策\"\u003eネストさせないための対策\u003c/h2\u003e\n\u003cp\u003e以下の2つがあります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e「割り込みの割り込み」をメモだけにして、「元の割り込み」を完成させる\u003c/li\u003e\n\u003cli\u003e「元の割り込み」を含め、やることを洗い出し、整理する。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e最初の方法は、「割り込みの割り込み」を一旦棚上げにし、\n「元の割り込み」を終わらせることを優先させます。\nただ、忘れてしまっても意味がないため、「割り込みの割り込み」は、\nメモしておきます。\u003c/p\u003e\n\u003cp\u003eしかし、「割り込みの割り込み」がいくつも出てきて、\n頭が混乱してくることもあります。\nそういうときは、まずやるべきことを洗い出し、\n割り込みが入らないように整理します。\u003c/p\u003e\n\u003cp\u003eどちらを選ぶかは、脳の疲労状態で決めます。\n作業に支障がなければメモするだけ、\n混乱しているなら整理します。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003eタスク管理の本ではないですが、「テスト駆動開発」にも記載されています。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B077D2L69C/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B077D2L69C.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B077D2L69C/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nテスト駆動開発\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eNo.1097あたり\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eこの修正をいま行うべきだろうか。それとも待つべきだろうか。\n教科書的な答えは「いま行っている作業を止めないために、修正は待つべき」\nとなる。ただ、個人的な回答をするなら「ちょっとした割り込みを楽しもう。\nただし、ちょっとしたものに限る」と言いたい。\nそこに「割り込みにさらに割り込むことはしない」というルールも加えておこう\n(Jim Coplienがこのルールを教えてくれた)。\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "Browser",
    "url": "https://www.ikemo3.com/tags/browser/",
    "contents": ""
  }, 
  {
    "title": "Browser-Automation",
    "url": "https://www.ikemo3.com/tags/browser-automation/",
    "contents": ""
  }, 
  {
    "title": "Geb",
    "url": "https://www.ikemo3.com/manual/geb/",
    "contents": "\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.gebish.org/manual/current/#installation-usage\"\u003e1.5. Installation \u0026amp; usage\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下の3つが必要。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003egeb-core\u003c/li\u003e\n\u003cli\u003eブラウザごとのドライバ(selenium-xxx-driver)\u003c/li\u003e\n\u003cli\u003eselenium-support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"gebconfiggroovy\"\u003eGebConfig.groovy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.gebish.org/manual/current/#the-config-script\"\u003e7.1.1. The config script\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eデフォルトパッケージ(クラスパスのルート)に\u003ccode\u003eGebConfig.groovy\u003c/code\u003eファイルがあれば、それを読み込む。\nこのファイルにドライバの情報を書き込む。\u003c/p\u003e\n\u003cp\u003eドライバを選択するには、\u0026ldquo;geb.env\u0026quot;システムプロパティにドライバの名前(例: \u0026ldquo;firefox\u0026rdquo;)を書けばよい。\u003c/p\u003e\n\u003ch2 id=\"ajax\"\u003eAjax\u003c/h2\u003e\n\u003cp\u003eAjaxを使ってページを更新する場合、完了するまで待つ必要がある。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.gebish.org/manual/current/#waiting\"\u003e9.2. Waiting\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例えば、Scrapboxのダウンロードボタンは以下のようにして操作できる。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-main.groovy\" data-lang=\"main.groovy\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eBrowser\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003edrive\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    go\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;https://scrapbox.io/projects/project-name/settings/page-data\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    waitFor \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e button \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e $\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003eBy\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003expath\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;//button[text()=\u0026#39;Export Pages\u0026#39;]\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        button\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003eclick\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    waitFor \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e downloadLink \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e $\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003eBy\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003expath\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;//a[text()=\u0026#39;Click to Download \u0026#39;]\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        downloadLink\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003eclick\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Groovy",
    "url": "https://www.ikemo3.com/tags/groovy/",
    "contents": ""
  }, 
  {
    "title": "Selenium-Webdriver",
    "url": "https://www.ikemo3.com/tags/selenium-webdriver/",
    "contents": ""
  }, 
  {
    "title": ":has() セレクタ",
    "url": "https://www.ikemo3.com/dic/has-selector/",
    "contents": "\u003ch2 id=\"has-セレクタとは\"\u003e:has() セレクタとは\u003c/h2\u003e\n\u003cp\u003eCSS Selectors Level 4の一部で採用されるかもしれない擬似クラスです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/yassh/items/bf3c341e53c0f86a384a\"\u003e夢の疑似クラス:has() - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ブラウザの対応状況\"\u003eブラウザの対応状況\u003c/h2\u003e\n\u003cp\u003eまだドラフト段階ですが、試験的に実装が進められているようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://caniuse.com/css-has\"\u003eCan I use\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "App Store: 画像のURLをhttpsに対応する方法",
    "url": "https://www.ikemo3.com/inverted/app-store/use-https/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eAppleのApp Store(Mac, iOS)の画像は\u003ccode\u003emzstatic.com\u003c/code\u003e以下のドメインにありますが、\nこのURLをhttps対応する方法です。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eプロトコルをhttpsにして、ドメイン名の先頭に\u003ccode\u003e-ssl\u003c/code\u003eを付けます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e変更元: \u003ca href=\"http://is2.mzstatic.com/path/to/image\"\u003ehttp://is2.mzstatic.com/path/to/image\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e変更後: \u003ca href=\"https://is2-ssl.mzstatic.com/path/to/image\"\u003ehttps://is2-ssl.mzstatic.com/path/to/image\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Netlify: Mixed insecure content detectedの修正方法",
    "url": "https://www.ikemo3.com/inverted/netlify/mixed-insecure-content-detected/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eNetlifyから以下のようなタイトルでアラートが来たときの対処方法です。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[Netlify] Alert: Mixed insecure content detected in XXX\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eこのアラートは、\nhttpとhttpsのコンテンツが混在しているときに送られることがあります。\nhttpsに統一してください。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eメールの\u003ccode\u003eSee full deploy logs\u003c/code\u003eボタンを押す\u003c/li\u003e\n\u003cli\u003eログの最後の方に\u003ccode\u003eMixed content detected in:\u003c/code\u003eと書かれている場所を見つける。\u003c/li\u003e\n\u003cli\u003eそのページを開いて、問題となっている箇所を調べる。\u003c/li\u003e\n\u003cli\u003e問題を修正する。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003e自分の場合はiTunesやApp Storeの画像が引っかかりました。\nその場合の対処は以下に記載しました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/inverted/app-store/use-https/\"\u003e逆引きマニュアル: App Store: 画像のURLをhttpsに対応する方法\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "URI",
    "url": "https://www.ikemo3.com/dic/uri/",
    "contents": "\u003ch2 id=\"uriとは\"\u003eURIとは\u003c/h2\u003e\n\u003cp\u003eUniform Resource Identifierの頭文字で、\nリソースを一意に識別するための文字列です。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://tools.ietf.org/html/rfc3986\"\u003eRFC 3986\u003c/a\u003eで規定されています。\n更新が入っていますが、この仕様書には\u003ccode\u003eObsoleted by\u003c/code\u003eが入っていないので、\n現在でも有効です。\u003c/p\u003e\n\u003ch2 id=\"urlとの関係\"\u003eURLとの関係\u003c/h2\u003e\n\u003cp\u003eURI = URL + URNです。\u003c/p\u003e\n\u003cp\u003eURLはUniform Resource Locatorの頭文字で、\nリソースの「場所」を一意に識別するための文字列です。\u003c/p\u003e\n\u003cp\u003eURNはUniform Resource Nameの頭文字で、\nリソースの「名前」を一意に識別するための文字列です。\n例えば書籍を識別するには、ISBNを使って、\u003ccode\u003eurn:isbn:4478000646\u003c/code\u003eみたいに書けます。\u003c/p\u003e\n\u003ch2 id=\"uriの書式\"\u003eURIの書式\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://tools.ietf.org/html/rfc3986#appendix-A\"\u003eRFC 3986 Appendix-A\u003c/a\u003e少しずつ読み進めたものを書いてみます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003escheme\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e定義: \u003ccode\u003eALPHA *( ALPHA / DIGIT / \u0026quot;+\u0026quot; / \u0026quot;-\u0026quot; / \u0026quot;.\u0026quot; )\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e+\u003c/code\u003eは、例えば\u003ccode\u003esvn+ssh://\u003c/code\u003eで使われます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただ、URIに空白は不可(パーセントエンコーディングしない限り)いうのは確実です。\n\u003ccode\u003eSP \u003c/code\u003eで検索しても、Appendix A.では見つからなかったので。\u003c/p\u003e\n"
  }, 
  {
    "title": "Hugo: 0.45以降でビルドできない",
    "url": "https://www.ikemo3.com/inverted/hugo/0.45-compatibility/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eHugo 0.44まではビルドできたが、Hugo 0.45でビルドできない場合の修正方法です。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eHugo 0.45から、.Site.GetPageの仕様が変わって、以下の制限が加わっています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.Site.GetPage with more than 2 arguments will not work anymore.\nThis means that {{ .Site.GetPage \u0026ldquo;page\u0026rdquo; \u0026ldquo;blog\u0026rdquo; \u0026ldquo;my-post.md\u0026rdquo; }} will fail.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e{{ .Site.GetPage \u0026quot;page\u0026quot; \u0026quot;blog\u0026quot; \u0026quot;my-post.md\u0026quot; }}\u003c/code\u003eの場合は以下のようにして\n書き換えられます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e0.44でも動く書き方: \u003ccode\u003e{{ .Site.GetPage \u0026quot;page\u0026quot; \u0026quot;blog/my-post.md\u0026quot; }}\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e0.45以降のシンプルな書き方: \u003ccode\u003e{{ .Site.GetPage \u0026quot;/blog/my-post.md\u0026quot; }}\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e変数を使う場合は、以下のような書き方でもいいと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e{{ .Site.GetPage \u0026quot;page\u0026quot; (print \u0026quot;blog\u0026quot; \u0026quot;/\u0026quot; $page) }}\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e{{ .Site.GetPage \u0026quot;page\u0026quot; (printf \u0026quot;blog/%s\u0026quot; $page) }}\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Intellij-Idea",
    "url": "https://www.ikemo3.com/tags/intellij-idea/",
    "contents": ""
  }, 
  {
    "title": "Refactoring",
    "url": "https://www.ikemo3.com/tags/refactoring/",
    "contents": ""
  }, 
  {
    "title": "リファクタリング: ループの中を分割する",
    "url": "https://www.ikemo3.com/inverted/refactoring/extract-with-loop/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eリファクタリングp26に「一時変数の削除」という項目で、\n以下のような記述があります。\nこれをなるだけ安全にIDEの機能を使って行う方法です。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etotalAmount はループの中で代入されているので、\n単純に「問い合せによる一時変数の置き換え(p.120)」を行うだけではなく、\n問い合せメソッド内部にループをコピーする必要があります。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/427405019X/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/427405019X.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/427405019X/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eIntelliJ IDEA 2018.1.6で確認しています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e手順は長いですが、ポイントは2つ。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eできるだけIDEの機能を使う。\u003c/li\u003e\n\u003cli\u003e手作業で変更する場合は、「間違い＝コンパイルエラー」になるように工夫する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e元のコードは以下になります。\nこのtotalAmountを別メソッドにする方法です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Enumeration;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Vector;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e String _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e Vector _rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Vector();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e(String name) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _name \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eaddRental\u003c/span\u003e(Rental arg) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _rentals.\u003cspan style=\"color:#a6e22e\"\u003eaddElement\u003c/span\u003e(arg);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003egetName\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003estatement\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003edouble\u003c/span\u003e totalAmount \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Enumeration rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e _rentals.\u003cspan style=\"color:#a6e22e\"\u003eelements\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        String result \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Rental Record for \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e getName() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetFrequentRentalPoints\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#75715e\"\u003e// この貸し出しに関する数値の表示\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetMovie\u003c/span\u003e().\u003cspan style=\"color:#a6e22e\"\u003egetTitle\u003c/span\u003e() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                    String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e()) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            totalAmount \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#75715e\"\u003e// フッタ部分の追加\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Amount owed is \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(totalAmount) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;You earned \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(frequentRenterPoints) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34; frequent renter points\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e result;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eまず、whileループを丸々コピーします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Enumeration;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Vector;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e String _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e Vector _rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Vector();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e(String name) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _name \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eaddRental\u003c/span\u003e(Rental arg) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _rentals.\u003cspan style=\"color:#a6e22e\"\u003eaddElement\u003c/span\u003e(arg);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003egetName\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003estatement\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003edouble\u003c/span\u003e totalAmount \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Enumeration rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e _rentals.\u003cspan style=\"color:#a6e22e\"\u003eelements\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        String result \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Rental Record for \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e getName() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetFrequentRentalPoints\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#75715e\"\u003e// この貸し出しに関する数値の表示\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetMovie\u003c/span\u003e().\u003cspan style=\"color:#a6e22e\"\u003egetTitle\u003c/span\u003e() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                    String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e()) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            totalAmount \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetFrequentRentalPoints\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#75715e\"\u003e// この貸し出しに関する数値の表示\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetMovie\u003c/span\u003e().\u003cspan style=\"color:#a6e22e\"\u003egetTitle\u003c/span\u003e() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                    String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e()) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            totalAmount \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#75715e\"\u003e// フッタ部分の追加\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Amount owed is \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(totalAmount) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;You earned \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(frequentRenterPoints) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34; frequent renter points\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e result;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e次に、whileループの処理を分けます。\n前半からtotalAmountを消して、後半は逆にtotalAmountのみ残します。\u003c/p\u003e\n\u003cp\u003eただし、\u003ccode\u003eRental each\u003c/code\u003eは両方とも必要なので残します。\nもし消してしまってもコンパイルエラーになるので気付くはず。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Enumeration;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Vector;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e String _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e Vector _rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Vector();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e(String name) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _name \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eaddRental\u003c/span\u003e(Rental arg) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _rentals.\u003cspan style=\"color:#a6e22e\"\u003eaddElement\u003c/span\u003e(arg);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003egetName\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003estatement\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003edouble\u003c/span\u003e totalAmount \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Enumeration rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e _rentals.\u003cspan style=\"color:#a6e22e\"\u003eelements\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        String result \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Rental Record for \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e getName() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetFrequentRentalPoints\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#75715e\"\u003e// この貸し出しに関する数値の表示\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetMovie\u003c/span\u003e().\u003cspan style=\"color:#a6e22e\"\u003egetTitle\u003c/span\u003e() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                    String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e()) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            totalAmount \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#75715e\"\u003e// フッタ部分の追加\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Amount owed is \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(totalAmount) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;You earned \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(frequentRenterPoints) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34; frequent renter points\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e result;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e次に、totalAmountの定義を後半のwhileループの近くに移動します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Enumeration;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Vector;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e String _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e Vector _rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Vector();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e(String name) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _name \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eaddRental\u003c/span\u003e(Rental arg) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _rentals.\u003cspan style=\"color:#a6e22e\"\u003eaddElement\u003c/span\u003e(arg);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003egetName\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003estatement\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Enumeration rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e _rentals.\u003cspan style=\"color:#a6e22e\"\u003eelements\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        String result \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Rental Record for \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e getName() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetFrequentRentalPoints\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#75715e\"\u003e// この貸し出しに関する数値の表示\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetMovie\u003c/span\u003e().\u003cspan style=\"color:#a6e22e\"\u003egetTitle\u003c/span\u003e() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                    String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e()) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003edouble\u003c/span\u003e totalAmount \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            totalAmount \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#75715e\"\u003e// フッタ部分の追加\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Amount owed is \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(totalAmount) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;You earned \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(frequentRenterPoints) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34; frequent renter points\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e result;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこのままメソッドの抽出を行ってもいいのですが、\nrentalsが2箇所で使用されているので、これを分割します。\n今回は2度使用されている場所の分割ですが、\n再代入している箇所のリファクタリングにも有効です。\u003c/p\u003e\n\u003cp\u003eまず、rentalsをrentals2(なんでもいいです)にリネームします。\nIntelliJ IDEAでは「Refactor → Rename」で可能です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Enumeration;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Vector;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e String _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e Vector _rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Vector();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e(String name) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _name \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eaddRental\u003c/span\u003e(Rental arg) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _rentals.\u003cspan style=\"color:#a6e22e\"\u003eaddElement\u003c/span\u003e(arg);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003egetName\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003estatement\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Enumeration rentals2 \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e _rentals.\u003cspan style=\"color:#a6e22e\"\u003eelements\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        String result \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Rental Record for \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e getName() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals2.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals2.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetFrequentRentalPoints\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#75715e\"\u003e// この貸し出しに関する数値の表示\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetMovie\u003c/span\u003e().\u003cspan style=\"color:#a6e22e\"\u003egetTitle\u003c/span\u003e() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                    String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e()) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003edouble\u003c/span\u003e totalAmount \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals2.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals2.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            totalAmount \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#75715e\"\u003e// フッタ部分の追加\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Amount owed is \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(totalAmount) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;You earned \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(frequentRenterPoints) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34; frequent renter points\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e result;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eその後、\u003ccode\u003eEnumeration rentals2 =\u003c/code\u003eの行をエディタで\n\u003ccode\u003eEnumeration rentals =\u003c/code\u003eに変更します。\u003c/p\u003e\n\u003cp\u003eもちろんコンパイルエラーになるので、最初のwhileループのrentals2を\nエディタでrentalに変更します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Enumeration;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Vector;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e String _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e Vector _rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Vector();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e(String name) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _name \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eaddRental\u003c/span\u003e(Rental arg) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _rentals.\u003cspan style=\"color:#a6e22e\"\u003eaddElement\u003c/span\u003e(arg);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003egetName\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003estatement\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Enumeration rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e _rentals.\u003cspan style=\"color:#a6e22e\"\u003eelements\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        String result \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Rental Record for \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e getName() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetFrequentRentalPoints\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#75715e\"\u003e// この貸し出しに関する数値の表示\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetMovie\u003c/span\u003e().\u003cspan style=\"color:#a6e22e\"\u003egetTitle\u003c/span\u003e() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                    String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e()) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003edouble\u003c/span\u003e totalAmount \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals2.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals2.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            totalAmount \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#75715e\"\u003e// フッタ部分の追加\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Amount owed is \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(totalAmount) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;You earned \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(frequentRenterPoints) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34; frequent renter points\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e result;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e2つ目のwhileのrentals2がコンパイルエラーになるため、\nrentalsの定義をコピーして、rentals2として定義します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Enumeration;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Vector;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e String _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e Vector _rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Vector();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e(String name) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _name \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eaddRental\u003c/span\u003e(Rental arg) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _rentals.\u003cspan style=\"color:#a6e22e\"\u003eaddElement\u003c/span\u003e(arg);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003egetName\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003estatement\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Enumeration rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e _rentals.\u003cspan style=\"color:#a6e22e\"\u003eelements\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        String result \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Rental Record for \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e getName() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetFrequentRentalPoints\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#75715e\"\u003e// この貸し出しに関する数値の表示\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetMovie\u003c/span\u003e().\u003cspan style=\"color:#a6e22e\"\u003egetTitle\u003c/span\u003e() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                    String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e()) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Enumeration rentals2 \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e _rentals.\u003cspan style=\"color:#a6e22e\"\u003eelements\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003edouble\u003c/span\u003e totalAmount \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals2.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals2.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            totalAmount \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#75715e\"\u003e// フッタ部分の追加\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Amount owed is \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(totalAmount) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;You earned \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(frequentRenterPoints) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34; frequent renter points\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e result;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eそして、メソッドの抽出を行います。\n\u003ccode\u003eEnumeration rentals2\u003c/code\u003eの行から、whileの終わりまでの6行を選択し、\nIntelliJ IDEAでは、「Refactor→Extract→Method\u0026hellip;」を選択します。\nメソッド名をgetTotalChargeに変更し、OKを押します。\u003c/p\u003e\n\u003cp\u003egetTotalChargeのローカル変数名をリネームします。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erentals2 → rental\u003c/li\u003e\n\u003cli\u003etotalAmount → result\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Enumeration;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Vector;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e String _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e Vector _rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Vector();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e(String name) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _name \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eaddRental\u003c/span\u003e(Rental arg) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _rentals.\u003cspan style=\"color:#a6e22e\"\u003eaddElement\u003c/span\u003e(arg);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003egetName\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003estatement\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Enumeration rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e _rentals.\u003cspan style=\"color:#a6e22e\"\u003eelements\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        String result \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Rental Record for \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e getName() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetFrequentRentalPoints\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#75715e\"\u003e// この貸し出しに関する数値の表示\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetMovie\u003c/span\u003e().\u003cspan style=\"color:#a6e22e\"\u003egetTitle\u003c/span\u003e() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                    String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e()) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003edouble\u003c/span\u003e totalAmount \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e getTotalCharge();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#75715e\"\u003e// フッタ部分の追加\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Amount owed is \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(totalAmount) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;You earned \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(frequentRenterPoints) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34; frequent renter points\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e result;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edouble\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003egetTotalCharge\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003edouble\u003c/span\u003e result \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Enumeration rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e _rentals.\u003cspan style=\"color:#a6e22e\"\u003eelements\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e result;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e最後に、totalAmountをインライン化することで、完了します。\nIntelliJ IDEAでは、「Refactor→Inline\u0026hellip;」です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Enumeration;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Vector;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e String _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e Vector _rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Vector();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eCustomer\u003c/span\u003e(String name) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _name \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eaddRental\u003c/span\u003e(Rental arg) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        _rentals.\u003cspan style=\"color:#a6e22e\"\u003eaddElement\u003c/span\u003e(arg);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003egetName\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e _name;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003estatement\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Enumeration rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e _rentals.\u003cspan style=\"color:#a6e22e\"\u003eelements\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        String result \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Rental Record for \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e getName() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            frequentRenterPoints \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetFrequentRentalPoints\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#75715e\"\u003e// この貸し出しに関する数値の表示\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetMovie\u003c/span\u003e().\u003cspan style=\"color:#a6e22e\"\u003egetTitle\u003c/span\u003e() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\t\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                    String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e()) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#75715e\"\u003e// フッタ部分の追加\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Amount owed is \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(getTotalCharge()) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;You earned \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e String.\u003cspan style=\"color:#a6e22e\"\u003evalueOf\u003c/span\u003e(frequentRenterPoints) \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34; frequent renter points\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e result;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edouble\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003egetTotalCharge\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003edouble\u003c/span\u003e result \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Enumeration rentals \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e _rentals.\u003cspan style=\"color:#a6e22e\"\u003eelements\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (rentals.\u003cspan style=\"color:#a6e22e\"\u003ehasMoreElements\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Rental each \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (Rental) rentals.\u003cspan style=\"color:#a6e22e\"\u003enextElement\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            result \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e each.\u003cspan style=\"color:#a6e22e\"\u003egetCharge\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e result;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Eol",
    "url": "https://www.ikemo3.com/tags/eol/",
    "contents": ""
  }, 
  {
    "title": "Git: 改行コードの変更が入ったコミットをマージする方法",
    "url": "https://www.ikemo3.com/inverted/git/merge-with-eol-change/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e例えば以下のようなコミットがあります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eファイルAをコミット\u003c/li\u003e\n\u003cli\u003eAに対して変更Bを追加\u003c/li\u003e\n\u003cli\u003eAに対して変更Cを追加(以下同様)\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eこの作業後に、Aの改行コードがCRLFになっていたのを気づいて、\nLFに直したいときに、変更Bの前にCRLF→LFへの変更をコミットする方法です。\n別に改行コードを最後に変換したのでもいいんですが、diffに^Mが入るのが嫌なんですよね。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003egit 2.16.2で動作確認しています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e.gitattributesファイルと、マージ戦略のオプションを指定します。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e変更Bを追加する前のコミットを起点に、ブランチを切ります。\u003c/li\u003e\n\u003cli\u003e改行のみ変更してコミットします。\u003c/li\u003e\n\u003cli\u003e.gitattributesファイルを作成して次の行を追加します。既にある場合は追加します。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eファイル名 eol=lf\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eこのファイルはコミットやステージに追加しないで構いません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e以下のコマンドを実行します。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egit cherry-pick コミットのハッシュ --strategy-option=renormalize\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e複数のコミットがある場合はそれぞれcherry-pickを繰り返します。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eこれで意図した通りになっているブランチができます。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e--strategy=recursive\u003c/code\u003eのオプションの説明をしているサイトもありますが、\n現在のマージ戦略のデフォルトはrecursiveアルゴリズムのため、不要です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eまた、\u003ccode\u003e--strategy-option=ignore-space-at-eol\u003c/code\u003eというオプションもありますが、\nこれは比較時に改行コードを無視するだけで、\nマージ後はCRLFになってしまいます。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ccode\u003eman git-merge\u003c/code\u003eより、\u003ccode\u003eThis is the default merge strategy when pulling or merging one branch.\u003c/code\u003eと書かれている。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Java: 自分で作成したクラスで拡張forを使用する方法",
    "url": "https://www.ikemo3.com/inverted/java/for-each/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eJavaで、自分で作成したクラスで、拡張forを使用するための方法です。\nDDDにおける集約としてリストを中に含むクラスを作成する場合などに便利です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eJava SE 5以上です。\n例はJava SE 8で書かれています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Iterable.html\"\u003ejava.lang.Iterable\u003c/a\u003eインタフェースを実装します。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e例として、Bookクラスと、その集約を表したBooksクラス、\nそして利用するためのMainクラスによる実装を記載します。\u003c/p\u003e\n\u003cp\u003eまずはBookクラス。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003epackage\u003c/span\u003e com.ikemo3.example;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Objects;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eBook\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e String bookName;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eBook\u003c/span\u003e(String bookName) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ebookName\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e bookName;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003estatic\u003c/span\u003e Book \u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(String bookName) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Objects.\u003cspan style=\"color:#a6e22e\"\u003erequireNonNull\u003c/span\u003e(bookName);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Book(bookName);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003egetName\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ebookName\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eBooksクラス。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003epackage\u003c/span\u003e com.ikemo3.example;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.ArrayList;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Iterator;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.List;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eBooks\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eimplements\u003c/span\u003e Iterable\u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u003c/span\u003eBook\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e List\u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u003c/span\u003eBook\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e books;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eBooks\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ebooks\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e ArrayList\u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u0026gt;\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eadd\u003c/span\u003e(Book book) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ebooks\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eadd\u003c/span\u003e(book);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003e@Override\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e Iterator\u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u003c/span\u003eBook\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eiterator\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e books.\u003cspan style=\"color:#a6e22e\"\u003eiterator\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e最後にMainクラス。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003epackage\u003c/span\u003e com.ikemo3.example;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eMain\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003estatic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emain\u003c/span\u003e(String\u003cspan style=\"color:#f92672\"\u003e[]\u003c/span\u003e args) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Books books \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Books();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        books.\u003cspan style=\"color:#a6e22e\"\u003eadd\u003c/span\u003e(Book.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;断絶の時代\u0026#34;\u003c/span\u003e));\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        books.\u003cspan style=\"color:#a6e22e\"\u003eadd\u003c/span\u003e(Book.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Cooking for Geeks\u0026#34;\u003c/span\u003e));\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        books.\u003cspan style=\"color:#a6e22e\"\u003eadd\u003c/span\u003e(Book.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Effective Java\u0026#34;\u003c/span\u003e));\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003efor\u003c/span\u003e (Book book : books) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            System.\u003cspan style=\"color:#a6e22e\"\u003eout\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eprintln\u003c/span\u003e(book.\u003cspan style=\"color:#a6e22e\"\u003egetName\u003c/span\u003e());\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "PowerPoint",
    "url": "https://www.ikemo3.com/manual/powerpoint/",
    "contents": "\u003ch2 id=\"フォント設定\"\u003eフォント設定\u003c/h2\u003e\n\u003cp\u003e[PowerPoint で既定のフォントを変更する - PowerPoint](\u003ca href=\"https://support.office.com/ja-jp/article/8e93c947-c160-4310-8070-afea7da78c33\"\u003ehttps://support.office.com/ja-jp/article/8e93c947-c160-4310-8070-afea7da78c33\u003c/a\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e表示タブを選択\u003c/li\u003e\n\u003cli\u003eスライドマスターを選択\u003c/li\u003e\n\u003cli\u003eフォントを選択する\n\u003cul\u003e\n\u003cli\u003e游ゴシック嫌いなので、Calibri + メイリオにしています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Google Chrome拡張機能: HTMLの国際化",
    "url": "https://www.ikemo3.com/inverted/google-chrome-extension/i18n-html/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://developer.chrome.com/extensions/i18n\"\u003echrome.i18n\u003c/a\u003eではJavaScriptから呼び出す他に、\nmanifest.json, CSSのローカライズに対応していますが、\nHTMLのローカライズは対応していません。\nその対応方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eローカライズしたい要素に以下のいずれかを付ける。\n\u003cul\u003e\n\u003cli\u003e要素の中のテキストをローカライズしたい場合(spanなど): \u003ccode\u003edata-i18n-text\u003c/code\u003e属性\u003c/li\u003e\n\u003cli\u003e要素のvalueをローカライズしたい場合(inputなど): \u003ccode\u003edata-i18n-value\u003c/code\u003e属性\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHTMLのこの属性を検索し、メッセージを置き換える。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下のような関数を作ります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003elocalizeHtmlPage\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    document.\u003cspan style=\"color:#a6e22e\"\u003equerySelectorAll\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;[data-i18n-text]\u0026#34;\u003c/span\u003e).\u003cspan style=\"color:#a6e22e\"\u003eforEach\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eelement\u003c/span\u003e =\u0026gt; {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ekey\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eelement\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003egetAttribute\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;data-i18n-text\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#a6e22e\"\u003eelement\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003etextContent\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003echrome\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ei18n\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003egetMessage\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003ekey\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    });\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    document.\u003cspan style=\"color:#a6e22e\"\u003equerySelectorAll\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;[data-i18n-value]\u0026#34;\u003c/span\u003e).\u003cspan style=\"color:#a6e22e\"\u003eforEach\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eelement\u003c/span\u003e =\u0026gt; {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ekey\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eelement\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003egetAttribute\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;data-i18n-value\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#a6e22e\"\u003eelement\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003evalue\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003echrome\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ei18n\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003egetMessage\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003ekey\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    });\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e独自機能のため、カスタムデータ属性を使っています。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/HTML/Global_attributes/data-*\"\u003edata-* - HTML: HyperText Markup Language | MDN\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e属性を1つにし、要素によってvalueかtextContentなのか切り替えることも可能ですが、明示的に指定したほうがシンプルだと判断しました。\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Design-Pattern",
    "url": "https://www.ikemo3.com/tags/design-pattern/",
    "contents": ""
  }, 
  {
    "title": "Mediator",
    "url": "https://www.ikemo3.com/dic/mediator/",
    "contents": "\u003ch2 id=\"mediatorとは\"\u003eMediatorとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/design-pattern/\"\u003eデザインパターン\u003c/a\u003eの1つです。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e例として、A, B, C, Dというオブジェクトがあり、\nそれぞれの変更を、別のオブジェクトに通知する必要がある場合を考えます。\nこの場合、最大4x3=12通りの組み合わせが考えられます。\u003c/p\u003e\n\u003cp\u003e当然ですが、これはめんどくさく、相互に依存が発生してしまっています。\nそのために使われるのがMediatorパターンです。\u003c/p\u003e\n\u003cp\u003eXというオブジェクトを用意し、XはA, B, Cを知っているものとします。\n逆に、A, B, CはXのみ知っています。\nこの場合、最大4x2=8通りの組み合わせで対応可能です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eX -\u0026gt; A, B, C, D\u003c/li\u003e\n\u003cli\u003eA, B, C, D -\u0026gt; X\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただ、XがA〜Dに依存して、A〜DがXに依存するという相互依存は解消されていません。\nあくまで組み合わせ爆発を避けるための手法です。\nなので、個人的には「便利だけど美しくないなぁ」という感じです。\nもっとドライに付き合ったほうが良さそうですが。\u003c/p\u003e\n\u003ch2 id=\"observerパターンとの違い\"\u003eObserverパターンとの違い\u003c/h2\u003e\n\u003cp\u003eMediatorパターンと似たものに、Observerパターンがありますが、\n一番の違いは、「主従関係があるかどうか」だと思います。\u003c/p\u003e\n\u003cp\u003eObserverパターンを使うのは、オブジェクトA、Bに明らかな主従関係があって、\nBはAに依存してもいいが、AはBに依存してはいけない状況に使います。\n例えば、テキストフィールド(input要素)と、イベントハンドラの関係の場合、\nイベントハンドラはテキストフィールドに依存しますが、\nその逆は依存しません。\u003c/p\u003e\n\u003cp\u003e実装には\u003ca href=\"http://bliki-ja.github.io/InversionOfControl/\"\u003e制御の逆転\u003c/a\u003eを使用します。\u003c/p\u003e\n\u003cp\u003eMediatorパターンを使うのは、オブジェクト間に主従関係が見当たらない場合です。\nこの場合、Mediatorが主として振る舞うと言ってもよいです。\u003c/p\u003e\n"
  }, 
  {
    "title": "3度目の法則",
    "url": "https://www.ikemo3.com/dic/rule-of-three/",
    "contents": "\u003ch2 id=\"3度目の法則とは\"\u003e3度目の法則とは\u003c/h2\u003e\n\u003cp\u003e重複を排除するかどうかのガイドラインです。\u003c/p\u003e\n\u003ch2 id=\"元はリファクタリング\"\u003e元はリファクタリング\u003c/h2\u003e\n\u003cp\u003eこの言葉出てきたのは、\u003ca href=\"/dic/refactoring/\"\u003eリファクタリング\u003c/a\u003eからです。\n58ページ目に出てきます。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/427405019X/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/427405019X.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/427405019X/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cblockquote\u003e\n\u003cp\u003eDon Robert が教えてくれたガイドラインがあります。\n最初は、単純に作業を行います。\n2度目に以前と似たようなことをしていると気づいた場合には、\n重複や無駄を意識しつつも、とにかく作業を続けてかまいません。\nそして3度目に同じようなことをしていると気づいたならば、\nそこでリファクタリングをするのです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"2度目に対応しない\"\u003e2度目に対応しない\u003c/h2\u003e\n\u003cp\u003eこの法則のポイントは、「2度目に対応しない」だと思います。\nなぜかというと、2度目に対応すると、間違った抽象化になりがちだからです。\nそしてしばしば、コードの重複よりも、大きな害をもたらします。\u003c/p\u003e\n\u003cp\u003e椅子の足が2本ではすぐ倒れますが、3本だと安定するように、\n3回待ってからリファクタリングするのが良いと思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "Drink",
    "url": "https://www.ikemo3.com/tags/drink/",
    "contents": ""
  }, 
  {
    "title": "コーラ",
    "url": "https://www.ikemo3.com/dic/cola/",
    "contents": "\u003ch2 id=\"コーラとは\"\u003eコーラとは\u003c/h2\u003e\n\u003cp\u003e炭酸飲料です。\u003c/p\u003e\n\u003ch2 id=\"いろいろな製品\"\u003eいろいろな製品\u003c/h2\u003e\n\u003cp\u003e基本はコカ・コーラとペプシコーラですが、\nいろんな会社からいろんなブランドで出ています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.cocacola.jp/\"\u003eコカ･コーラ（Coca-Cola）公式ブランドサイト\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.pepsi.co.jp/menu.html\"\u003ePEPSI\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"自分の好み\"\u003e自分の好み\u003c/h2\u003e\n\u003cp\u003e自分はお菓子以外で砂糖を取るのは好きじゃないので、\nカロリーゼロ\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e系以外はほとんど飲まないです。\nよく飲むのはコカコーラ・ゼロです。\nペプシはストロング系があったころはよく飲んでましたが、\n無くなっちゃったみたいです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e正確には100mlあたり5kcal未満\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "コーラ",
    "url": "https://www.ikemo3.com/log/cola/",
    "contents": "\u003ch2 id=\"コカコーラゼロ\"\u003eコカコーラ・ゼロ\u003c/h2\u003e\n\u003cp\u003eまずは基準のこれ。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.cocacola.co.jp/brands/coca-cola/cocacolazero\"\u003e日本コカ・コーラ ｜ 製品情報 ｜ コカ・コーラ ゼロ: The Coca-Cola Company\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003e0kcal表示(100mlあたり5kcal未満)\u003c/li\u003e\n\u003cli\u003e原材料\n\u003cul\u003e\n\u003cli\u003e炭酸\u003c/li\u003e\n\u003cli\u003eカラメル色素\u003c/li\u003e\n\u003cli\u003e酸味料\u003c/li\u003e\n\u003cli\u003e甘味料(スクラロース、アセスルファムK)\u003c/li\u003e\n\u003cli\u003e香料\u003c/li\u003e\n\u003cli\u003eカフェイン\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"2018-07-12-カロリーオフコーライオン\"\u003e2018-07-12: カロリーオフコーラ(イオン)\u003c/h2\u003e\n\u003cp\u003e正直期待してなかったのですが、\n29円という値段を考えると十分アリですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.topvalu.net/items/detail/4901810381265\"\u003eカロリーオフ Cola -イオンのプライベートブランド TOPVALU(トップバリュ) - イオンのプライベートブランド TOPVALU(トップバリュ)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003e350mlあたり4kcal。\u003c/li\u003e\n\u003cli\u003e原材料\n\u003cul\u003e\n\u003cli\u003eカラメル色素\u003c/li\u003e\n\u003cli\u003e酸味料\u003c/li\u003e\n\u003cli\u003e香料\u003c/li\u003e\n\u003cli\u003e甘味料\n\u003cul\u003e\n\u003cli\u003eアセスルファムK\u003c/li\u003e\n\u003cli\u003eアスパルテーム・L-フェニルアラニン化合物\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eカフェイン\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "お菓子",
    "url": "https://www.ikemo3.com/tags/okashi/",
    "contents": ""
  }, 
  {
    "title": "Enduring CSS(ECSS)",
    "url": "https://www.ikemo3.com/dic/ecss/",
    "contents": "\u003ch2 id=\"enduring-cssecssとは\"\u003eEnduring CSS(ECSS)とは\u003c/h2\u003e\n\u003cp\u003eCSSの設計手法の1つです。\u003c/p\u003e\n\u003ch2 id=\"css設計手法では一番良さそう\"\u003eCSS設計手法では一番良さそう\u003c/h2\u003e\n\u003cp\u003eこれを読んでCSSの設計手法について考えました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/nezurika/items/a964e21d3596b0ee4c9a\"\u003e各CSS設計手法を取り入れる上でのメリット・デメリットをまとめてみた - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eどれもメリットデメリットあるけどしっくり来ないなぁと思ってみてたのですが、\nECSSのところを見たときに、これだと思いました。\u003c/p\u003e\n\u003cp\u003e理由の1つは、CSSは共通化しないといけないという思い込みを捨ててくれたことです。\n仕事でCSSを書いていると、どうしても影響範囲に気を使います。\nなので共通化せずに管理することも多いのですが、どうしても罪悪感が残りました。\nECSSは「それでいいのだ」という感じで、安心しました。\u003c/p\u003e\n\u003cp\u003eもう一つは、ECSSについて興味が出てきて、\nこの記事を読んでみたときのことです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/manabuyasuda/items/37523e9d0bfbad34211f\"\u003eECSSの概要と考え方のまとめ - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://html5experts.jp/takazudo/21946/\"\u003e抽象化を避けるCSS設計方法論「Enduring CSS」 第1回 | HTML5Experts.jp\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下の2つの記述でピンと来ました。\nECSSはCSSにおける\u003ca href=\"/dic/ddd/\"\u003eDDD\u003c/a\u003eの立ち位置だなと。\nまずは、CSSのクラス名をプログラミングのクラスに例えた場所。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eほか、ModuleとChildNodeはアッパーキャメルケースで記述します。\nこれは、多くのプログラミング言語で、クラスの宣言は大文字からはじめ、\nそこからインスタンスを作成することになぞらえ、\nHTMLにおけるこのクラス属性に指定するこの文字列は、\n具体的なUIを表現するための雛形であるという考えのもと、\nアッパーキャメルケースで記述することにしたそうです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eまた、「どのように表示するか」ではなく、「それは何か」で命名している点が、\nDDDっぽいです。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eまた、このModuleの名称がBenefitsという、\n具体的な機能を示すという点についてもECSSらしいと言えそうです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"variant\"\u003evariant\u003c/h2\u003e\n\u003cp\u003eもう一つ気に入ったのが、variantの表現方法です。\nよく使われるのが\u003ccode\u003eclass=\u0026quot;xxx xxx-yyy\u0026quot;\u003c/code\u003eみたいに2つ並べる方法ですが、\nどうもこの記法は冗長で好きではないです。\u003c/p\u003e\n\u003cp\u003e自分は真っ先に\u003ccode\u003edata-\u003c/code\u003e属性を使う方法を思いついたのですが(これも広く使われているようです)、\nそれよりよい方法を提供していました。それは、WAI-ARIA属性を使用する方法です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://ecss.io/chapter6.html\"\u003eChapter 6 of Enduring CSS: dealing with state\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eまあ、WAI-ARIAはこれから勉強する必要があるのですが、\nこれで逆に、勉強する動機ができました。\u003c/p\u003e\n"
  }, 
  {
    "title": "macOS: リモートデスクトップでバックスラッシュが入力できない問題の対応",
    "url": "https://www.ikemo3.com/inverted/macos/remote-desktop-backslash/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003emacOSからWindowsにリモートデスクトップ接続するときに、\nバックスラッシュが入力できない問題の対応方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e見た目はどちらも円マークになっていますが、文字コードが違います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWindowsで円キーを押した場合: 0x5C\u003c/li\u003e\n\u003cli\u003emacOSで円キーを押した場合: 0xA5\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e無料で入手できる、\u003ca href=\"https://www.parallels.com/jp/products/ras/features/rdp-client/\"\u003eParallels Client\u003c/a\u003eを使いましょう。Mac App Storeにもあります。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "ワイン",
    "url": "https://www.ikemo3.com/dic/wine/",
    "contents": "\u003ch2 id=\"ワインとは\"\u003eワインとは\u003c/h2\u003e\n\u003cp\u003eアルコール飲料です。\u003c/p\u003e\n\u003ch2 id=\"黒猫\"\u003e黒猫\u003c/h2\u003e\n\u003cp\u003eワインはたまに飲む程度なので知識がなく、\n唯一知っているのが、ドイツの通称黒猫です。\nワイン一年生という本を読んだのですが、\nこの本とネットで調べたところによると、この黒猫はこんな感じです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e産地: ドイツのモーゼル地方\u003c/li\u003e\n\u003cli\u003e味: 白のやや甘口\n\u003cul\u003e\n\u003cli\u003eドイツワインは白の甘口が多いみたいです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e品種: リースリング\n\u003cul\u003e\n\u003cli\u003e分かりやすい\u003ca href=\"/dic/tsundere/\"\u003eツンデレ\u003c/a\u003eらしいです。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://wine-highschool.com/character/riesling/\"\u003eリースリング | 図解ワイン一年生　web版\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01BDJHA0Y/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B01BDJHA0Y.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01BDJHA0Y/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n図解 ワイン一年生\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Ozu",
    "url": "https://www.ikemo3.com/tags/ozu/",
    "contents": ""
  }, 
  {
    "title": "大洲市で起きた過去の水害について",
    "url": "https://www.ikemo3.com/theme/ozu/flood-disaster/",
    "contents": "\u003cp\u003eこの記事を書いている2018-07に水害が起きたので調べてた結果をまとめておきます。\u003c/p\u003e\n\u003ch2 id=\"観測所\"\u003e観測所\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.river.go.jp/kawabou/ipSuiiKobetu.do?init=init\u0026amp;obsrvId=2257000400007\u0026amp;gamenId=01-1002\u0026amp;timeType=60\u0026amp;requestType=1\"\u003e大洲第二観測所\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e愛媛県大洲市大洲、中心にある肱川橋付近です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"水位\"\u003e水位\u003c/h2\u003e\n\u003cp\u003e水位に関しては今回が一番ひどいようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e1995年: 5.84m\u003c/li\u003e\n\u003cli\u003e2004年: 5.29m\u003c/li\u003e\n\u003cli\u003e2018年: 8.11m\n\u003cul\u003e\n\u003cli\u003eWebで確認できたのは8.04mまで。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"1995年平成7年\"\u003e1995年(平成7年)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.skr.mlit.go.jp/kasen/saigai/kou_katu/hinpatu.html\"\u003e洪水・渇水\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.shikoku-saigai.com/archives/21558\"\u003e平成7年の洪水 | 四国災害アーカイブス\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"2004年平成16年\"\u003e2004年(平成16年)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.shikoku-saigai.com/archives/22036\"\u003e平成16年の台風16号 | 四国災害アーカイブス\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.shikoku-saigai.com/archives/21610\"\u003e平成16年の台風21号 | 四国災害アーカイブス\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.shikoku-saigai.com/archives/21611\"\u003e平成16年の台風23号 | 四国災害アーカイブス\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Netlify: Slackへの通知を有効化する",
    "url": "https://www.ikemo3.com/inverted/netlify/slack-integration/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eNetlifyより、Slackへの通知を有効化する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eNetlify, Slackの初期設定は除きます。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eIncoming Webhookを作成する。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://api.slack.com/incoming-webhooks\"\u003eIncoming Webhooks | Slack\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eURLは\u003ccode\u003ehttps://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX\u003c/code\u003eのような形式になります。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eNetlify側の設定を行います。\n\u003col\u003e\n\u003cli\u003e上部の\u003ccode\u003eDeploy\u003c/code\u003eを選択\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eNotifications\u003c/code\u003eを選択\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAdd notification\u003c/code\u003eから、\u003ccode\u003eSlack integration\u003c/code\u003eを選択\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eEvent to listen for\u003c/code\u003eに、通知するイベントを追加\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSlack Incoming Webhook URL\u003c/code\u003eに、1.で作成したIncoming WebhookのURLを貼り付けて保存する。\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003e一度URLを間違えて入力してしまったのですが、\nそのときにURLを変更しても反映されませんでした。\nタイミングの問題かもしれませんが、\nもし動作しないのであれば、一度通知設定を削除するのもいいでしょう。\u003c/p\u003e\n"
  }, 
  {
    "title": "Slack",
    "url": "https://www.ikemo3.com/tags/slack/",
    "contents": ""
  }, 
  {
    "title": "東京の食事について",
    "url": "https://www.ikemo3.com/theme/tokyo/food/",
    "contents": "\u003cp\u003e自分は正直言うと東京嫌いなのですが、\nこの件についてはなるだけその点を排除して書きます。\nまあ、結論から言うと、まずくはないですが、良い印象はないです。\u003c/p\u003e\n\u003ch2 id=\"余談日本ibm大和事業所のうどん\"\u003e(余談)日本IBM大和事業所のうどん\u003c/h2\u003e\n\u003cp\u003eまず全然関係ない話から入りますが、自分が\u003ca href=\"/dic/ibm-japan/\"\u003e日本IBM\u003c/a\u003eにいたときの、\n食堂の話を書きます。\u003c/p\u003e\n\u003cp\u003e大和事業所には食堂があり、そこのメニューにうどんがありました。\nそのうどんですが、だしが「関西風」と「関東風」と選べました。\u003c/p\u003e\n\u003cp\u003eしかし、自分が見る限り、「関西風」を選ぶ人が圧倒的でした。\nもっとも、関東ではうどんではなく蕎麦がメインなので、\nあくまでこのエピソードは余談です。\u003c/p\u003e\n\u003ch2 id=\"また行きたいと思わせる店がない\"\u003e「また行きたい」と思わせる店がない\u003c/h2\u003e\n\u003cp\u003e本題ですが、出張などで東京で食べることもあるのですが、\n味だけで判断すると、うまくもマズくもありません。\n全体的に値段が高いですが、それを差し引くとまあ値段相当の味です。\u003c/p\u003e\n\u003cp\u003eただ、東京で食べる店は「印象が薄い」んですよね。\n他の地域は横浜の\u003ca href=\"/dic/shiumai-bento/\"\u003eシウマイ弁当\u003c/a\u003eや大阪の\u003ca href=\"/dic/551/\"\u003e551\u003c/a\u003eのような、\n「またこの土地に来たら是非これを食べたい」というのが思いつきません。\u003c/p\u003e\n\u003cp\u003e印象に残っているのはこれくらいです。\nただどちらも思い入れはないんですよね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eラーメン二郎\u003c/li\u003e\n\u003cli\u003e龍寿司の穴子\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://allabout.co.jp/gm/gc/371454/\"\u003e松下幸之助が愛した穴子　龍寿司【築地場内】 [ランチ] All About\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "ガード節",
    "url": "https://www.ikemo3.com/dic/guard-clause/",
    "contents": "\u003ch2 id=\"ガード節とは\"\u003eガード節とは\u003c/h2\u003e\n\u003cp\u003eプログラミングの手法で、\n特殊な条件を最初に処理することで、コードを分かりやすくする手法です。\u003c/p\u003e\n\u003ch2 id=\"例\"\u003e例\u003c/h2\u003e\n\u003cp\u003e例えば以下のようなコードがあります。\nifのネストができてしまっています。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eaddUser\u003c/span\u003e(String firstName, String lastName) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (firstName \u003cspan style=\"color:#f92672\"\u003e!=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enull\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e!\u003c/span\u003efirstName.\u003cspan style=\"color:#a6e22e\"\u003eisEmpty\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (lastName \u003cspan style=\"color:#f92672\"\u003e!=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enull\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e!\u003c/span\u003elastName.\u003cspan style=\"color:#a6e22e\"\u003eisEmpty\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#75715e\"\u003e// ここに処理を記述\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        } \u003cspan style=\"color:#66d9ef\"\u003eelse\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#66d9ef\"\u003ethrow\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e IlleaglArgumentException(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;lastNameが空です。\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    } \u003cspan style=\"color:#66d9ef\"\u003eelse\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ethrow\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e IllegalArgumentException(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;firstNameが空です。\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこの場合、以下のように書き換えると、ネストがなくなってスッキリします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eaddUser\u003c/span\u003e(String firstName, String lastName) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (firstName \u003cspan style=\"color:#f92672\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enull\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e||\u003c/span\u003e firstName.\u003cspan style=\"color:#a6e22e\"\u003eisEmpty\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ethrow\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e IllegalArgumentException(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;firstNameが空です。\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (lastName \u003cspan style=\"color:#f92672\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enull\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e||\u003c/span\u003e lastName.\u003cspan style=\"color:#a6e22e\"\u003eisEmpty\u003c/span\u003e()) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ethrow\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e IllegalArgumentException(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;lastNameが空です。\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// ここに処理を記述\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"リファクタリング\"\u003eリファクタリング\u003c/h2\u003e\n\u003cp\u003e名著「リファクタリング」でもこの手法が紹介されています。\n250ページの「ガード節による入れ子条件記述の置き換え」です。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/427405019X/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/427405019X.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/427405019X/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"optionalと相性が悪い\"\u003eOptionalと相性が悪い\u003c/h2\u003e\n\u003cp\u003eSwiftのように専用の構文がある場合は別ですが、\nJavaのOptionalはガード節と相性が悪いです。\u003c/p\u003e\n\u003cp\u003e以前ちょっとコードを書いてみましたが、\nライブラリにするにはちょっと微妙な感じですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/ikemo/items/8aad93b796184f620d4c\"\u003eJavaのOptionalとガード節を共存させてみた - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Facebook",
    "url": "https://www.ikemo3.com/manual/facebook/",
    "contents": "\u003ch2 id=\"連携解除oauth-20-openid-connect\"\u003e連携解除(OAuth 2.0, OpenID Connect)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.facebook.com/settings?tab=applications\"\u003eアプリとウェブサイト\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ブロック\"\u003eブロック\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eページをブロック\n\u003cul\u003e\n\u003cli\u003eデスクトップ\n\u003col\u003e\n\u003cli\u003eそのページに移動\u003c/li\u003e\n\u003cli\u003e「…」をクリック\u003c/li\u003e\n\u003cli\u003e「ページをブロック」をクリック\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003eiPhoneではできないようです。代わりに非表示にする方法。\n\u003col\u003e\n\u003cli\u003eそのページに移動\u003c/li\u003e\n\u003cli\u003e右上の「…」をタップ\u003c/li\u003e\n\u003cli\u003e「報告」をタップ\u003c/li\u003e\n\u003cli\u003e「気に入らない」をタップ\u003c/li\u003e\n\u003cli\u003e「◯◯の投稿をすべて非表示にする」を2回タップ\n\u003cul\u003e\n\u003cli\u003eこの選択にブロックがありますが、選択できません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.facebook.com/settings?tab=blocking\"\u003eブロックリストを管理\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eここからブロックも可能\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Font",
    "url": "https://www.ikemo3.com/tags/font/",
    "contents": ""
  }, 
  {
    "title": "Java: フィールドの初期化について",
    "url": "https://www.ikemo3.com/theme/java/field-initialization/",
    "contents": "\u003ch2 id=\"デフォルト値では初期化しない\"\u003eデフォルト値では初期化しない\u003c/h2\u003e\n\u003cp\u003e1つ目は、フィールドをデフォルト値で初期化することです。\nCheckstyleでは\u003ca href=\"http://checkstyle.sourceforge.net/config_coding.html#ExplicitInitialization\"\u003eExplicitInitialization\u003c/a\u003eというチェックで検査可能です。\n(例がひどいですが)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eFoo\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e count \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eboolean\u003c/span\u003e isAdmin \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efalse\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e String message \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enull\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこれはCheckstyleの説明にもありますが、\n定義しなくてもデフォルト値で初期化されるので無駄です。また、\n「これはC/C++のスタイルで、開発者が\u003cstrong\u003eJavaのことを分かってない\u003c/strong\u003e可能性がある」\nという趣旨のことが書かれています。\u003c/p\u003e\n\u003ch2 id=\"不変が原則\"\u003e不変が原則\u003c/h2\u003e\n\u003cp\u003eじゃあデフォルト値以外ならいいかというと、\n基本的には避けたほうがいいかと思います(まだちゃんと考察してないので曖昧)。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eFoo\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e count \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 1;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eboolean\u003c/span\u003e isAdmin \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e String message \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eなぜかというと、自分にとっては「不変が原則、可変が例外」だからです。\nできればこんな感じにしたいです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eFoo\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e count \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 1;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eboolean\u003c/span\u003e isAdmin \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e String message \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eといっても定数でない限りfinalで宣言しても意味がないため、\nコンストラクタで定義します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eFoo\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e count;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eboolean\u003c/span\u003e isAdmin;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e String message;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eFoo\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e count, \u003cspan style=\"color:#66d9ef\"\u003eboolean\u003c/span\u003e isAdmin, String message) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ecount\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e count;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eisAdmin\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e isAdmin;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003emessage\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e message;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eもちろんfinalなので、このような書き方はできません。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eFoo\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e count \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 0;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eboolean\u003c/span\u003e isAdmin \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efalse\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e String message \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enull\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eFoo\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e count, \u003cspan style=\"color:#66d9ef\"\u003eboolean\u003c/span\u003e isAdmin, String message) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ecount\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e count;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eisAdmin\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e isAdmin;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003emessage\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e message;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eオブジェクトが可変か不変かで記述を変えるのは分かりにくいため、\n自分はコンストラクタで初期化に統一した方がいいと思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "Jenkins",
    "url": "https://www.ikemo3.com/tags/jenkins/",
    "contents": ""
  }, 
  {
    "title": "Linux",
    "url": "https://www.ikemo3.com/tags/linux/",
    "contents": ""
  }, 
  {
    "title": "Linux + Javaでフォントの文字化けを解消する方法",
    "url": "https://www.ikemo3.com/inverted/java/fix-font-mojibake/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eJavaでフォントによる文字化けが発生したときに、修正する方法です。\nエンコーディングによる文字化けは除きます。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e以下の環境で確認しました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCentOS 7\u003c/li\u003e\n\u003cli\u003eJava 8(OpenJDK )\u003c/li\u003e\n\u003cli\u003eJenkins 2.128\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eJDK/JREにデフォルトでバンドルされているLucidaフォントには、\n日本語フォントが配布されていません。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/technotes/guides/intl/font.html\"\u003eサポートされているフォント\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJREで通常完全にサポートされている書記体系のうち、\n中国語(簡体字)、中国語(繁体字)、日本語、\nおよび韓国語はLucidaフォントでサポートされません。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eよって、代わりのフォントを入れる必要があります。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e例えば、\u003ca href=\"https://ipafont.ipa.go.jp/old/ipafont/download.html\"\u003eIPAフォント\u003c/a\u003eを使用する場合、以下のようにしました。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erpm -qi ipa-gothic-fonts\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003emkdir -p /usr/lib/jvm/java-1.8.0-openjdk/jre/lib/fonts/fallback\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd /usr/lib/jvm/java-1.8.0-openjdk/jre/lib/fonts/fallback\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eln -s /usr/share/fonts/ipa-gothic/ipag.ttf ./ipag.ttf\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこの作業のあと、プログラムを再起動したら、\nそれ以降作成された画像は正常に表示されました。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Mojibake",
    "url": "https://www.ikemo3.com/tags/mojibake/",
    "contents": ""
  }, 
  {
    "title": "Square",
    "url": "https://www.ikemo3.com/dic/square-inc/",
    "contents": "\u003ch2 id=\"squareとは\"\u003eSquareとは\u003c/h2\u003e\n\u003cp\u003eモバイル決済などを行っている企業です。\u003c/p\u003e\n\u003ch2 id=\"oss\"\u003eOSS\u003c/h2\u003e\n\u003cp\u003eSquareのサービスは使ったことないのですが、\n個人的には、\u003ca href=\"/dic/oss/\"\u003eOSS\u003c/a\u003eのライブラリを開発している企業として注目しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://square.github.io/#java\"\u003eSquare Open Source\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eJava関連ではこんなプロジェクトがあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square?utf8=%E2%9C%93\u0026amp;q=\u0026amp;type=\u0026amp;language=java\"\u003eSquare\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分が使ったことがあるのはmoshi, okhttp, retrofitだけですが、\n他のライブラリも面白そうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edagger: DI\u003c/li\u003e\n\u003cli\u003epollexor: Thumborというサムネイルを作成するためのサービスのためのAPI\u003c/li\u003e\n\u003cli\u003ewire: Protocol Buffersのクライアント\u003c/li\u003e\n\u003cli\u003ejavapoet: Javaコードを生成するためのAPI\u003c/li\u003e\n\u003cli\u003ekeywhiz: 秘密情報を管理するためのサーバ\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/moshi/\"\u003emoshi\u003c/a\u003e: JSONライブラリ\u003c/li\u003e\n\u003cli\u003e[okhttp][]: HTTPクライアント\u003c/li\u003e\n\u003cli\u003eprotoparse: Protocol Buffersの.protoのパーサ\u003c/li\u003e\n\u003cli\u003erack-servlet: RubyのRackアプリケーションを動かすためのコンテナ\u003c/li\u003e\n\u003cli\u003eretrofit: タイプセーフなHTTPクライアント(REST)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/tape\"\u003etape\u003c/a\u003e: ファイルベースFIFO\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okio\"\u003eokio\u003c/a\u003e: I/Oライブラリ\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "ナビダイヤル",
    "url": "https://www.ikemo3.com/dic/navidial/",
    "contents": "\u003ch2 id=\"ナビダイヤルとは\"\u003eナビダイヤルとは\u003c/h2\u003e\n\u003cp\u003eクレーマー対策のための電話番号です。\u003c/p\u003e\n\u003ch2 id=\"昔は嫌いだった\"\u003e昔は嫌いだった\u003c/h2\u003e\n\u003cp\u003e以前は「0120と0990\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eと足して2で割った」と言ってたのですが、\n最近はまあいいかという感じです。\nなぜかというと、「クレーマー対策」になるからです。\nそして、サポートセンターは基本的に地方にあり、給与も安いことが多いからです。\n今は「人を大切にする会社」というイメージになりつつあります。\u003c/p\u003e\n\u003cp\u003eただ、かける側が料金を負担するのはやっぱりイヤなので、\n修理の問い合わせなどは、折り返すようにして欲しいですね。\u003c/p\u003e\n\u003cp\u003e例えばニトリの\u003ca href=\"http://www.nitori.co.jp/customersupport/\"\u003eお客様サポート\u003c/a\u003eに先日電話したのですが、\n購入後の修理の話と知ると、すぐに折り返してくれました。\nその後の修理対応も良かったので、こういう企業は安心できます。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eダイヤルQ2\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ニトリ",
    "url": "https://www.ikemo3.com/dic/nitori/",
    "contents": "\u003ch2 id=\"ニトリとは\"\u003eニトリとは\u003c/h2\u003e\n\u003cp\u003e家具とかを売っている会社です。\u003c/p\u003e\n\u003ch2 id=\"特徴がないのが特徴\"\u003e特徴がないのが特徴\u003c/h2\u003e\n\u003cp\u003e割とそこそこ利用しているのですが、\nニトリの特徴は何かと考えた結果、思いつきませんでした。\nあえていうなら「バランス」かなぁと。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.nitori-net.jp/store/ja/ec/safety?ptr=category\"\u003e品質保証について\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.nitori.co.jp/customersupport/\"\u003eニトリのお客様サポート・よくあるご質問\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Template Method",
    "url": "https://www.ikemo3.com/dic/template-method/",
    "contents": "\u003ch2 id=\"template-methodとは\"\u003eTemplate Methodとは\u003c/h2\u003e\n\u003cp\u003e広く使われている\u003cstrong\u003eアンチパターン\u003c/strong\u003eです。\u003c/p\u003e\n\u003ch2 id=\"アンチパターンである理由\"\u003eアンチパターンである理由\u003c/h2\u003e\n\u003ch3 id=\"処理の流れが追いづらくなる\"\u003e処理の流れが追いづらくなる\u003c/h3\u003e\n\u003cp\u003eTemplate Methodパターンは、\nサブクラスで実装が必要なメソッドをabstractメソッドとして定義して、\n実装の骨格をスーパークラスで行うパターンです。\u003c/p\u003e\n\u003cp\u003eこの分離が適切に行われていないと、\nスーパークラスの実装の骨格を見ても何が行われているかが分からず、\n逆にサブクラスでどのようなメソッドを実装すべきかが分かりません。\u003c/p\u003e\n\u003ch3 id=\"拡張性が制限される\"\u003e拡張性が制限される\u003c/h3\u003e\n\u003cp\u003eTemplate Methodパターンは、骨格が変わらないことを前提としているため、\n骨格が変わるような仕様変更が入ってしまうと、破綻します。\n最初から必要な骨格が分かっていて、変更がないと確信できる場合のみで使うべきです。\u003c/p\u003e\n\u003ch3 id=\"自分から見て良くない例\"\u003e(自分から見て)良くない例\u003c/h3\u003e\n\u003cp\u003e以下は継承を使ってない例もありますが、\n「骨格のみ提供して自前で実装する」という意味では同じなので載せています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHamcrestの\u003ca href=\"http://hamcrest.org/JavaHamcrest/javadoc/1.3/org/hamcrest/Matcher.html#describeMismatch(java.lang.Object,%20org.hamcrest.Description)\"\u003eMatcher#describeMismatch\u003c/a\u003eはどのように実装すればいいか理解できませんでした。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.programcreek.com/java-api-examples/?class=org.hamcrest.Matcher\u0026amp;method=describeMismatch\"\u003eMatcher#describeMismatchの使用例\u003c/a\u003eを見てもさっぱり。。。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://joel-costigliola.github.io/assertj/assertj-core-custom-assertions.html\"\u003eAssertJのカスタムアサーション\u003c/a\u003eはコードを見れば分かるので良いです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eGson\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/gson/blob/master/UserGuide.md#TOC-Custom-Serialization-and-Deserialization\"\u003eCustom Serialization and Deserialization\u003c/a\u003eを見てもイマイチよく理解できません。\u003c/li\u003e\n\u003cli\u003eMoshiの\u003ca href=\"https://github.com/square/moshi#custom-type-adapters\"\u003eCustom Type Adapters\u003c/a\u003eの方がシンプルで分かりやすいです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"どのようにすべきか\"\u003eどのようにすべきか\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStrategyパターンの仕様を検討する。\u003c/li\u003e\n\u003cli\u003eどうしてもTemplate Methodの方がふさわしいと思える場合は以下のようにする\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n\u003cul\u003e\n\u003cli\u003eメソッドは副作用のない関数にする。\u003c/li\u003e\n\u003cli\u003eパラメータ及び戻り値に使用するのは\u003ca href=\"/dic/value-object/\"\u003eValue Object\u003c/a\u003eとする。\u003c/li\u003e\n\u003cli\u003e「世界」「状態」を渡さない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEffective Javaでは、項目16〜18で継承について議論されています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e全廃以外は考えたことないので、正しい保証はありません。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Checkstyle",
    "url": "https://www.ikemo3.com/manual/checkstyle/",
    "contents": "\u003ch2 id=\"設定ファイル\"\u003e設定ファイル\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://checkstyle.sourceforge.net/config.html\"\u003echeckstyle – Configuration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"書き方\"\u003e書き方\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eXMLで記載する。\u003c/li\u003e\n\u003cli\u003e以下のようにDTDを記載する。\u003c/li\u003e\n\u003cli\u003eモジュールをネストして定義する。\n\u003cul\u003e\n\u003cli\u003e各モジュールの設定に\u0026quot;Parent Module\u0026quot;というのがあるので、このモジュールの下に記載する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-xml\" data-lang=\"xml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e\u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34;?\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e\u0026lt;!DOCTYPE module PUBLIC\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e  \u0026#34;-//Checkstyle//DTD Checkstyle Configuration 1.3//EN\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e  \u0026#34;https://checkstyle.org/dtds/configuration_1_3.dtd\u0026#34;\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;module\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ename=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Checker\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/module\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"モジュールの種類\"\u003eモジュールの種類\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFileSetCheck: ファイルを読み込んでエラーを出す\u003c/li\u003e\n\u003cli\u003eFilter: エラーメッセージなどをフィルタする\u003c/li\u003e\n\u003cli\u003eAuditListener: レポート出力に影響する?\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"重要なモジュール\"\u003e重要なモジュール\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://checkstyle.sourceforge.net/config.html#TreeWalker\"\u003eTreeWalker\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://checkstyle.sourceforge.net/apidocs/com/puppycrawl/tools/checkstyle/TreeWalker.html\"\u003eソースコード\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eソースをたどっていくもの。ほとんどのモジュールはこの下に定義されている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"重大度severity\"\u003e重大度(Severity)\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://checkstyle.sourceforge.net/config.html#Severity\"\u003eSeverity\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e\u0026lt;property name=\u0026quot;severity\u0026quot; value=\u0026quot;...\u0026quot; /\u0026gt;\u003c/code\u003eとして定義可能。\n設定可能な値は以下の4つ。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eignore\u003c/li\u003e\n\u003cli\u003einfo\u003c/li\u003e\n\u003cli\u003ewarning\u003c/li\u003e\n\u003cli\u003eerror\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"メッセージのカスタマイズ\"\u003eメッセージのカスタマイズ\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://checkstyle.sourceforge.net/config.html#Custom_messages\"\u003eCustom Messages\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e\u0026lt;module\u0026gt;\u003c/code\u003eの子要素として、\n\u003ccode\u003e\u0026lt;message key=\u0026quot;...\u0026quot; value=\u0026quot;...\u0026quot; /\u0026gt;\u003c/code\u003eのように定義する。\u003c/p\u003e\n\u003cp\u003ekeyとvalueに設定する値は、\n各モジュールの説明に \u0026ldquo;Error Messages\u0026rdquo; というのがあるので、\nそのリンク先から取得できる。\u003c/p\u003e\n\u003ch2 id=\"モジュール\"\u003eモジュール\u003c/h2\u003e\n\u003ch3 id=\"treewalker\"\u003eTreeWalker\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://checkstyle.sourceforge.net/config.html#TreeWalker\"\u003eTreeWalker\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eファイルを辿っていくモジュールです。\n多くのモジュールの親として使われます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003etabWidth: タブ文字の幅。LineLength(行の長さチェック)などで使われる。\u003c/li\u003e\n\u003cli\u003efileExtensions: Javaファイルの拡張子。通常は設定不要。\n\u003cul\u003e\n\u003cli\u003e説明にもある通り、プリプロセッサで何らかの処理をする場合を想定しています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"チェック\"\u003eチェック\u003c/h3\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eモジュール名\u003c/th\u003e\n          \u003cth\u003e親モジュール\u003c/th\u003e\n          \u003cth\u003eチェック内容\u003c/th\u003e\n          \u003cth\u003eカスタマイズ\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"http://checkstyle.sourceforge.net/config_coding.html#ExplicitInitialization\"\u003eExplicitInitialization\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eTreeWalker\u003c/td\u003e\n          \u003ctd\u003eインスタンス変数がデフォルト値で初期化されていないかのチェック\u003c/td\u003e\n          \u003ctd\u003e対象をオブジェクトのみにするかどうか\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"http://checkstyle.sourceforge.net/config_sizes.html#FileLength\"\u003eFileLength\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eChecker\u003c/td\u003e\n          \u003ctd\u003eファイルの行数チェック\u003c/td\u003e\n          \u003ctd\u003e許容する行数、対象ファイル名\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"http://checkstyle.sourceforge.net/config_misc.html#TodoComment\"\u003eTodoComment\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eTreeWalker\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003eTODO\u003c/code\u003eコメントがないかのチェック\u003c/td\u003e\n          \u003ctd\u003e拾うコメント形式\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n"
  }, 
  {
    "title": "FindBugs",
    "url": "https://www.ikemo3.com/manual/findbugs/",
    "contents": "\u003ch2 id=\"spotbugs\"\u003eSpotBugs\u003c/h2\u003e\n\u003cp\u003eFindBugsは3.0.1から更新されていませんが、\nSpotBugsというフォーク(分岐)が活発に開発されています。\n理由はプロジェクトリーダー不在によるものです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://blog.kengo-toda.jp/entry/2016/11/14/235642\"\u003eFindBugsコミュニティにおける例の件の顛末、そしてSpotBugsとは何か - Kengo\u0026rsquo;s blog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://blog.kengo-toda.jp/entry/2017/09/26/231620\"\u003eFindBugsの後継としてのSpotBugsの紹介 - Kengo\u0026rsquo;s blog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eここでは特に明記しないかぎり、両方の内容について記載します。\u003c/p\u003e\n\u003ch2 id=\"サイト\"\u003eサイト\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://findbugs.sourceforge.net/\"\u003eFindBugs™ - Find Bugs in Java Programs\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://findbugs.sourceforge.net/ja/manual/\"\u003eFindBugs™ マニュアル\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://spotbugs.github.io/\"\u003eSpotBugs\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://spotbugs.readthedocs.io/ja/latest/\"\u003eSpotBugs マニュアル — spotbugs 3.1.3 ドキュメント\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"フィルタファイル\"\u003eフィルタファイル\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://spotbugs.readthedocs.io/ja/latest/filter.html\"\u003eフィルタファイル — spotbugs 3.1.3 ドキュメント\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"正規表現の使用\"\u003e正規表現の使用\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://spotbugs.readthedocs.io/ja/latest/filter.html#java-element-name-matching\"\u003eJava要素名との一致\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eClass，Source，Method，Field の name 属性が ~ 文字で始まるときは，\n残りの属性コンテンツはJava要素名と照合されるJavaの正規表現として解釈されます。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eオープンソースの最後の仕事である「引き継ぎ」を怠ったためですね。参考: \u003ca href=\"https://cruel.org/freeware/cathedral.html\"\u003e伽藍とバザール\u003c/a\u003eの「5. あるソフトに興味をなくしたら、最後の仕事としてそれを有能な後継者に引き渡すこと。」\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "IntelliJ IDEA: Jenkinsfileの文法を認識させる方法",
    "url": "https://www.ikemo3.com/inverted/intellij-idea/use-jenkins-gdsl/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eJenkinsfileはGroovyで書かれていますが、\nその文法を認識させる方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eIntelliJ IDEA 2018.1.3で確認しています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eGDSL(Groovy DSL)ファイルを使用します。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eGDSLファイルを入手する\u003c/li\u003e\n\u003cli\u003eGDSLファイルをソースフォルダに配置する\u003c/li\u003e\n\u003cli\u003eJenkinsfileをGroovyのコードとして認識させる\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"gdslファイルを入手\"\u003eGDSLファイルを入手\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eScripted Pipelineの場合\n\u003cul\u003e\n\u003cli\u003e公式で対応しています。\u003c/li\u003e\n\u003cli\u003e以下のGistに概要が書かれています。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gist.github.com/arehmandev/736daba40a3e1ef1fbe939c6674d7da8\"\u003eGet Jenkins GDSL working with IntelliJ IDEA\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e手順\n\u003col\u003e\n\u003cli\u003e適当なPipelineプロジェクトを開きます\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003e左側のメニューから\u0026quot;Pipeline Syntax\u0026quot;を選択します。\u003c/li\u003e\n\u003cli\u003e左側のメニューから\u0026quot;IntelliJ IDEA GDSL\u0026quot;を選択します。\u003c/li\u003e\n\u003cli\u003e表示された内容を拡張子\u003ccode\u003e.gdsl\u003c/code\u003eとして保存します。\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDeclarative Pipelineの場合\n\u003cul\u003e\n\u003cli\u003e公式では対応していません(\u003ca href=\"https://issues.jenkins-ci.org/browse/JENKINS-40127\"\u003eJENKINS-40127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e作成している人がいます。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gist.github.com/ggarcia24/fc5acec3288812b34c64a4f2b8f9bca9\"\u003eGDSL supporting pipeline declarative\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下では、Declarative Pipelineを使って作業します。\u003c/p\u003e\n\u003ch3 id=\"ソースフォルダに配置\"\u003eソースフォルダに配置\u003c/h3\u003e\n\u003cp\u003e取得したファイルを\u003cstrong\u003eソースフォルダ\u003c/strong\u003eに配置します。\nIntelliJ IDEAがソースフォルダと認識できればいいので、\n既存のディレクトリではなく、\u003ccode\u003esrc/main/groovy\u003c/code\u003e 以下に置いて、\n設定で認識させるのでもOKです。\u003c/p\u003e\n\u003cp\u003e次にファイルを開きます。以下の警告が出ますが、\nこれは\u003ccode\u003eActivate Back\u003c/code\u003eをクリックしてください。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eDSL descriptor file has been changed and isn\u0026rsquo;t currently executed.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"jenkinsfileを認識させる\"\u003eJenkinsfileを認識させる\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003ePreferences / Settingsを開く\u003c/li\u003e\n\u003cli\u003eEditor -\u0026gt; File Typesを選択\u003c/li\u003e\n\u003cli\u003eRecognized File Types: Groovyを選択\u003c/li\u003e\n\u003cli\u003eRegistered Patternsに\u003ccode\u003eJenkinsfile\u003c/code\u003eを追加\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003e使ってみましたが、まだ不十分みたいです。\nGroovy DSLを勉強して何とかしたいですね。。。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eagent any\u003c/code\u003eが認識されない。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etools\u003c/code\u003eが認識されない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eプロジェクトを開かないでも表示する方法があればいいんですが、分かってません。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "セクション",
    "url": "https://www.ikemo3.com/log/section/",
    "contents": "\u003ch2 id=\"2018-07-03\"\u003e2018-07-03\u003c/h2\u003e\n\u003cp\u003e「たすくま」を使用。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e6-9: 起きて仕事するまで\u003c/li\u003e\n\u003cli\u003e9-12: 仕事\u003c/li\u003e\n\u003cli\u003e12-13: 昼休み\u003c/li\u003e\n\u003cli\u003e13-15: 午後の仕事1\u003c/li\u003e\n\u003cli\u003e15-18: 午後の仕事2\u003c/li\u003e\n\u003cli\u003e18-20: 夕食〜いろいろ\u003c/li\u003e\n\u003cli\u003e20-23: 自分の時間\u003c/li\u003e\n\u003cli\u003e23-6: 就寝\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eやってきて思ったこと\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e少なくともファーストタスクは前日夜に決めないとダメ。当日朝いろいろ迷うのは無駄。\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "伽藍とバザール",
    "url": "https://www.ikemo3.com/dic/the-cathedral-and-bazaar/",
    "contents": "\u003ch2 id=\"伽藍とバザールとは\"\u003e伽藍とバザールとは\u003c/h2\u003e\n\u003cp\u003e「オープンソース」が認知されるきっかけとなった文書の1つです。\u003c/p\u003e\n\u003ch2 id=\"歴史的経緯\"\u003e歴史的経緯\u003c/h2\u003e\n\u003cp\u003e原文は1997-05-21に公開されており、\nその当時はオープンソースという単語もありませんでした。\n1998-02-09(Rev 1.29)で以下のように変更されています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eChanged \u003ccode\u003efree software'' to \u003c/code\u003eopen source\u0026rsquo;'.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"再評価\"\u003e再評価\u003c/h2\u003e\n\u003cp\u003e久しぶりに読んでみたのですが、今読んでも印象は変わらないですね。\n基本的には本質をついていると思います。\nでもやっぱりこの箇所は好きじゃないなぁ。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003col start=\"16\"\u003e\n\u003cli\u003e自分の言語がチューリング的完成からほど遠い場合には、構文上の甘さを許すといろいろ楽になるかもね。\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "Selenide",
    "url": "https://www.ikemo3.com/dic/selenide/",
    "contents": "\u003ch2 id=\"selenideとは\"\u003eSelenideとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/selenium-webdriver/\"\u003eSelenium WebDriver\u003c/a\u003eをラップして使いやすくしたフレームワークです。\u003c/p\u003e\n\u003ch2 id=\"試してみた印象\"\u003e試してみた印象\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSelenium WebDriverの面倒なところをうまくラップしてくれる\u003c/li\u003e\n\u003cli\u003ejQueryライク(Chrome開発者ツールかも\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e)なAPIで分かりやすい\u003c/li\u003e\n\u003cli\u003eアサーションがHamcrestライクなのがちょっと気になる\n\u003cul\u003e\n\u003cli\u003e多分慣れの問題だとは思う。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://developers.google.com/web/tools/chrome-devtools/console/expressions\"\u003e式の評価  |  Tools for Web Developers  |  Google Developers\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Selenide",
    "url": "https://www.ikemo3.com/manual/selenide/",
    "contents": "\u003ch2 id=\"ドキュメント\"\u003eドキュメント\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://selenide.org/quick-start.html\"\u003eQuick Start\u003c/a\u003e: クイックスタート\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://selenide.org/documentation.html\"\u003eDocumentation\u003c/a\u003e: 基本的な使い方\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://selenide.org/documentation/page-objects.html\"\u003ePage Objects\u003c/a\u003e: PageObjectデザイパターンの例\n\u003cul\u003e\n\u003cli\u003eフィールドを使用するパターンもあるが、こちらは推奨していない模様。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://selenide.org/faq.html\"\u003eFAQ\u003c/a\u003e: FAQ\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://selenide.org/javadoc/current/\"\u003eJavadoc\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"設定configuration\"\u003e設定(Configuration)\u003c/h2\u003e\n\u003cp\u003eいずれもシステムプロパティでも設定可能。\u003c/p\u003e\n\u003ch3 id=\"タイムアウト\"\u003eタイムアウト\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://selenide.org/javadoc/current/com/codeborne/selenide/Configuration.html#timeout\"\u003eConfiguration#timeout\u003c/a\u003eに\u003cstrong\u003eミリ秒で\u003c/strong\u003e値を代入する。デフォルトは4000(4秒)。\u003c/p\u003e\n\u003ch3 id=\"ブラウザの指定\"\u003eブラウザの指定\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://selenide.org/javadoc/current/com/codeborne/selenide/Configuration.html#browser\"\u003eConfiguration#browser\u003c/a\u003eに値を代入する。デフォルトはfirefox。\n主要ブラウザの値は以下。小文字で指定する。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003echrome\u003c/li\u003e\n\u003cli\u003efirefox\u003c/li\u003e\n\u003cli\u003eie\u003c/li\u003e\n\u003cli\u003esafari\u003c/li\u003e\n\u003cli\u003eedge\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"最大化\"\u003e最大化\u003c/h3\u003e\n\u003cp\u003eデフォルトでは最大化して起動するが、これを止めるには、\n\u003ca href=\"http://selenide.org/javadoc/current/com/codeborne/selenide/Configuration.html#startMaximized\"\u003eConfiguration#startMaximized\u003c/a\u003eにfalseを入れる。\u003c/p\u003e\n\u003ch2 id=\"api\"\u003eAPI\u003c/h2\u003e\n\u003cp\u003eよく使いそうなもの。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eopen(String URL)\u003c/li\u003e\n\u003cli\u003e$(String cssSelector): CSSセレクタによる指定\u003c/li\u003e\n\u003cli\u003e$(By): Selenium WebDriverの\u003ca href=\"https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/By.html\"\u003eBy\u003c/a\u003eによる指定による指定による指定による指定\u003c/li\u003e\n\u003cli\u003e$$: $が先頭の要素を返すのに対し、$$はコレクション(\u003ca href=\"http://selenide.org/javadoc/current/com/codeborne/selenide/ElementsCollection.html\"\u003eElementsCollection\u003c/a\u003eを返します。\u003c/li\u003e\n\u003cli\u003eアサーション\n\u003cul\u003e\n\u003cli\u003eshouldで始まるメソッド(\u003ca href=\"http://selenide.org/javadoc/current/com/codeborne/selenide/SelenideElement.html\"\u003eSelenideElement\u003c/a\u003e参照)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://selenide.org/javadoc/current/com/codeborne/selenide/Condition.html\"\u003eCondition\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHamcrestライクなAPIデスね。。。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"window--tabの切替\"\u003eWindow / Tabの切替\u003c/h2\u003e\n\u003cp\u003e以下のように書きます。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode class=\"language-code:java\" data-lang=\"code:java\"\u003eswitchTo().window(ウィンドウハンドル or タイトル);\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e詳細は、以下のテストコードを参考にしてください。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/codeborne/selenide/blob/master/src/test/java/integration/TabsTest.java#L27\"\u003ehttps://github.com/codeborne/selenide/blob/master/src/test/java/integration/TabsTest.java#L27\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eブラウザによって挙動が違うためか、Selenideのサポートがないようです。\u003c/p\u003e\n\u003cp\u003eまた、ウィンドウハンドルの取得は\nタイミングによって上手く動かないことがあったため、\nタイトルで取得する方が確実かなと思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "Test",
    "url": "https://www.ikemo3.com/tags/test/",
    "contents": ""
  }, 
  {
    "title": "pop'n music",
    "url": "https://www.ikemo3.com/dic/popn/",
    "contents": "\u003ch2 id=\"popn-musicとは\"\u003epop\u0026rsquo;n musicとは\u003c/h2\u003e\n\u003cp\u003e自分が昔ハマってたゲームです。\u003c/p\u003e\n\u003ch2 id=\"ハマってた時期\"\u003eハマってた時期\u003c/h2\u003e\n\u003cp\u003e2002年頃からしばらくの間は音ゲーにハマってました。\nそれ以前からやってたDDR以外は一通りやったのですが、\nどれも正直合わなくて、ポップンだけはよくやってました。\u003c/p\u003e\n\u003cp\u003eといってもそんなに上手くなくて、\n当時のMAX Lv43でせいぜい37がポツポツできる程度でした。\u003c/p\u003e\n\u003ch2 id=\"スクリーン\"\u003eスクリーン\u003c/h2\u003e\n\u003cp\u003eポップンやってたときのことを検索するとよく忘れるので\n書いておくと、当時の最高難易度の曲がスクリーンEXです。\n他と比べてこれはノーツ数が少なくて難しいので、特に印象に残っています。\u003c/p\u003e\n"
  }, 
  {
    "title": "Ruby",
    "url": "https://www.ikemo3.com/log/ruby/",
    "contents": "\u003ch2 id=\"199x年に書いたruby-14のコードを動かしてみた\"\u003e199X年に書いたRuby 1.4のコードを動かしてみた\u003c/h2\u003e\n\u003cp\u003e1990年代に書いたRubyのコードを動くように修正してみました。\nそのときのトラブルです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eENVの値を直接書き換えてた場所がエラー\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/ENV.html\"\u003eENV\u003c/a\u003eの値はfreezeされています。今では当たり前ですね。。。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopen(file)\u003c/code\u003eが動かなかった\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopen(file, 'r:UTF-8')\u003c/code\u003eで動きました。\u003c/li\u003e\n\u003cli\u003eただ、デフォルトはロケール依存のはずなので、Dockerの設定の問題かも?\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eArray#filter\u003c/code\u003eがないと言われた\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ruby-doc.org/docs/ruby-doc-bundle/Manual/man-1.4/Array.html\"\u003eRuby 1.4のArray\u003c/a\u003eにはありますが、今のRubyにはないです。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Array.html#I_COLLECT--21\"\u003eArray#map!\u003c/a\u003eにしました。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e暗黙のグローバル変数に依存したコードが動かなかった(下記)\n\u003cul\u003e\n\u003cli\u003ePerlの習慣が残ってたんですね。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e log\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003egets\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  chomp!\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e...\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003ePerlと比べると変更点が多かったのですが、\n自分の書き方が悪いのが大きな理由ですね。\u003c/p\u003e\n"
  }, 
  {
    "title": "Beer",
    "url": "https://www.ikemo3.com/tags/beer/",
    "contents": ""
  }, 
  {
    "title": "Document Object Model(DOM)",
    "url": "https://www.ikemo3.com/manual/dom/",
    "contents": "\u003ch2 id=\"どこを参照する\"\u003eどこを参照する?\u003c/h2\u003e\n\u003cp\u003e以前はDOMと言えばW3Cだったのですが、今はMDNでいいと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eW3Cの立場が怪しくなっている\u003c/li\u003e\n\u003cli\u003eApple以外の主要ベンダーが参加している\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003e日本語訳も提供されている\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"イベントの種類\"\u003eイベントの種類\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/Event/type\"\u003eevent.type - Web API インターフェイス | MDN\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"よく使うapi\"\u003eよく使うAPI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/Node\"\u003eNode\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/Node/insertBefore\"\u003einsertBefore\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003einsertAfter相当の記法も記載あり\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/Element\"\u003eElement\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/Element/matches\"\u003ematches\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"addeventlistenerに引数を渡す方法\"\u003eaddEventListenerに引数を渡す方法\u003c/h2\u003e\n\u003cp\u003e以下の2つの方法があります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e関数ではなくEventListenerを実装したオブジェクトを渡す\u003c/li\u003e\n\u003cli\u003ebindを使用する\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"eventlistenerを実装したオブジェクトを渡す\"\u003eEventListenerを実装したオブジェクトを渡す\u003c/h3\u003e\n\u003cp\u003e結論から言うと、以下のようにすれば可能です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003etarget\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eaddEventListener\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;click\u0026#39;\u003c/span\u003e, {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003ehandleEvent\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eevent\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#75715e\"\u003e// イベントハンドラの実装\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#a6e22e\"\u003econsole\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003elog\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ename\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// 引数\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003ename\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;button\u0026#39;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003ecount\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e100\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e});\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e理由を説明すると、まず、\naddEventListenerは以下のような形式で呼び出されることが多いです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003etarget\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eaddEventListener\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;click\u0026#39;\u003c/span\u003e, \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eevent\u003c/span\u003e) { ... });\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eしかし、この2番目の引数は、関数でなくても構いません。\naddEventListenerの2番目の引数は以下のように定義されています。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/EventTarget/addEventListener\"\u003eEventTarget.addEventListener() - Web API インターフェイス | MDN\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eこれは、EventListener インタフェースを実装するオブジェクト、\nあるいは、単純に、JavaScript の関数でなければなりません。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e前者の「EventListenerインタフェースを実装するオブジェクト」とは、\n以下のような形式のオブジェクトです。\n\u003ccode\u003ehandleEvent\u003c/code\u003eという名前で関数が登録されていればいいということです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003ehandleEvent\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eevent\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"bindを使用する\"\u003ebindを使用する\u003c/h3\u003e\n\u003cp\u003eMDNでは「bind() を使用した this の指定」という項で説明していますが、\n関数オブジェクトよりは、クラスや、普通のオブジェクトの方が分かりやすい\nと思うので、その例を記載します。\n以下のコードは動作確認していないので、もし間違ってたら修正してください。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eFoo\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003econstructor\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eelement\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ehandler\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eclickHandler\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ebind\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003eelement\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eaddEventListener\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;click\u0026#39;\u003c/span\u003e, \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ehandler\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eclickHandler\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eevent\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eあるいは以下のように書きます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eFoo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003einit\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eelement\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ehandler\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eclickHandler\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ebind\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003eelement\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eaddEventListener\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;click\u0026#39;\u003c/span\u003e, \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ehandler\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eclickHandler\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eevent\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eここで、\u003ccode\u003ethis.handler\u003c/code\u003eとして代入しているのは、あとで削除できるようにするためです。\nMDNにある以下の記述のことです。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eただし、リスナーを後で削除できるように、そのリスナーへの参照を残しておく必要があります。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.infoq.com/jp/news/2017/11/microsoft-google-mozilla-mdn\"\u003eMicrosoft、Google、MozillaがWebドキュメントで提携へ\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "テスト駆動開発(TDD)",
    "url": "https://www.ikemo3.com/dic/tdd/",
    "contents": "\u003ch2 id=\"テスト駆動開発tddとは\"\u003eテスト駆動開発(TDD)とは\u003c/h2\u003e\n\u003cp\u003e開発手法の1つです。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eまず以下の内容は古い\u003c/strong\u003eです。\nその後に実際にTDDやってみての考えを書きます。\u003c/p\u003e\n\u003ch2 id=\"理解はするが同意できない\"\u003e理解はするが同意できない\u003c/h2\u003e\n\u003cp\u003eちゃんと読んだわけではないので間違ってるかもしれない前提で書きます\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n個人的には理解はしますが、ちょっと同意できない感じです。\u003c/p\u003e\n\u003cp\u003e同意する点としては、単体テストの重要さです。\nこれは言うまでもありません。単体テストを書けるのは常識です。\u003c/p\u003e\n\u003cp\u003e同意できない点としては、もちろん「テスト・ファースト」です。\nなぜかというと、先にテストを書くことで、構造が縛られてしまうからです。\u003c/p\u003e\n\u003cp\u003e自分がコードを書くとき、\n特にライブラリを開発するときは、以下のような流れのことが多いです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e必要なクラスを作っていく\u003c/li\u003e\n\u003cli\u003e構造ができるまで仮実装を組み立てていく\n\u003cul\u003e\n\u003cli\u003e基本は「型」重視です。要はメソッドの引数と戻り値が合うかどうか。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e細かいロジックを積み立てて、正常系処理を通るようにする\n\u003cul\u003e\n\u003cli\u003eこれ以降の流れでも、必要なら構造を見直す\u003c/li\u003e\n\u003cli\u003eValue Objectのロジックについては、この時点でテストを追加することもある。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e正常系が通るためのテストを追加する\u003c/li\u003e\n\u003cli\u003eエラー処理を追加し、エラー処理のテストを追加する\u003c/li\u003e\n\u003cli\u003eコードを洗練させていく\n\u003cul\u003e\n\u003cli\u003eログ\u003c/li\u003e\n\u003cli\u003eコメント、Javadoc\u003c/li\u003e\n\u003cli\u003e引数の検証(IllegalArgumentException)\u003c/li\u003e\n\u003cli\u003eテストカバレッジの追加\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e自分にとってのプログラミングで重要なのは、1〜3の作業です。\n最初にどんなクラスが必要か、どんなメソッドは作ってみないと分かりません。\nまず利用者にとって使いやすい構造、\n保守しやすい構造を作り上げてから、初めて細かい実装を積み上げていきます。\n自分がテストケースを書くときは、早くても3の段階です。\u003c/p\u003e\n\u003cp\u003eテストを先に書いてしまうと、この作業ができなくなってしまいます。\nあるいは、テストを書いたけれど、破棄しないといけない例が出てきます。\nだから、自分としては、「テスト・ファースト」は同意できません。\u003c/p\u003e\n\u003ch2 id=\"tddは死んだ\"\u003eTDDは死んだ?\u003c/h2\u003e\n\u003cp\u003eRuby on Railsの作者の通称DHHさんが書いた記事と、\nそれに対する反論があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://d.hatena.ne.jp/yach/20140424/p1\"\u003eTDDは死んだ。テスティングよ栄えよ。 by DHH - やっとむでぽん\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://diskogs.hatenablog.com/entry/2014/04/25/085112\"\u003e【翻訳】TDD is Fun - diskogs\u0026rsquo;s diary\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこの両方を読んだ自分の感想はこれです。\n「テスト・ファーストは死んだ」\u003c/p\u003e\n\u003cp\u003eDHHの記事の前半はテスト・ファーストに対する批判ですが、\n後者の反論では、その点はスルーされています。\nつまり、その点については反論するところはなかったからだと思います。\u003c/p\u003e\n\u003ch2 id=\"tdd本を写経して考えが変わった\"\u003eTDD本を写経して考えが変わった\u003c/h2\u003e\n\u003cp\u003eその後「テスト駆動開発」の本を読み、本の通りに実装してみました。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B077D2L69C/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B077D2L69C.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B077D2L69C/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nテスト駆動開発\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eすると、テスト駆動開発が何を目指していたのかが理解できました。\n自分としてのテスト駆動開発のメリットは「使う側に立ったインタフェースを作るため」です。\n実装から入るとどのようなコードを書いた方がいいか分からない、\nそういうときにテストから入るとスムーズに行く、\nだからこそテスト「駆動」開発かなと。テストが開発をdriveする。\u003c/p\u003e\n\u003cp\u003eただ、テストを先に書くかどうかは分からないんですよね。\nそれなりに経験を積むと「自明な実装」が増えてくるので。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B077D2L69C/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B077D2L69C.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B077D2L69C/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nテスト駆動開発\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eまあそれなりの記事は読みましたが、\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "振る舞い駆動開発(BDD)",
    "url": "https://www.ikemo3.com/dic/bdd/",
    "contents": "\u003ch2 id=\"振る舞い駆動開発bddとは\"\u003e振る舞い駆動開発(BDD)とは\u003c/h2\u003e\n\u003cp\u003e開発手法の1つです。\u003c/p\u003e\n\u003ch2 id=\"個人的には好きじゃない\"\u003e個人的には好きじゃない\u003c/h2\u003e\n\u003cp\u003e自分がこの単語を知ったのはRubyのRSpecですが、\n個人的にはあまり好きじゃないです。\n正直なところ、最初の方はむしろ「嫌い」でした。\n少なくとも確認できるのは2015-02-11のこのツイートです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eGradleのしっくりこない感って何かと思ったら、RSpecと同じだった。当時はスルーしてたけどはっきり言ってあの書き方は生理的に受け付けない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e端的に言うと「気持ち悪い」からです。\n「自然言語(英語)っぽい」のが利点らしいですが、\nこれを読みやすいとは思わないんですよね。\n英語ネイティブじゃないし、ただ文法で遊んでるだけにしか見えません。\u003c/p\u003e\n\u003cp\u003e文法が生理的に嫌いというのもありますが、\nあと「黒魔術」になりがちなのも嫌いな原因です。\n次に書きますが、InSpecの実装を検索しようとして、\nどこを探せばいいか分かりませんでした。\u003c/p\u003e\n\u003ch2 id=\"inspecで見直したが\"\u003eInSpecで見直したが・・・\u003c/h2\u003e\n\u003cp\u003eただ、今はそれほど嫌いじゃないです。\nなぜかというと、\u003ca href=\"/dic/inspec/\"\u003eInSpec\u003c/a\u003eを使うようになってからです。\n\u003ca href=\"/dic/inspec/\"\u003eInSpec\u003c/a\u003eが影響を受けた\u003ca href=\"https://serverspec.org/\"\u003eServerspec\u003c/a\u003eも、RSpecを使っていますが、\nこちらは十分読みやすいです。\u003c/p\u003e\n\u003cp\u003eこちらが読みやすいと思う理由は2つあります。\n1つ目は、文法が分かりやすいことです。\n基本的な使い方ならdescribe, it/its, shouldくらいで書けます。\n今のRSpecは\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e英語でもプログラムでもない「何か」でしかなく、\nやっぱり気持ち悪いです。\u003c/p\u003e\n\u003cp\u003eもう1つは、対象がサーバの状態という抽象化されたものだからです。\n逆に言えば、単体テストでBDDは無駄だという結論です。\n最近はBDDではなくATDD(受け入れテスト駆動開発)という言葉も出ていますが、\nこちらの方がすんなり受け入れられそうです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://twitter.com/ikemo/status/565435609918226432\"\u003ehttps://twitter.com/ikemo/status/565435609918226432\u003c/a\u003e より。鍵垢なので見れないです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eRSpec 2の頃の文法の方が(欠点があるのは分かりますが)、まだマシです。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "白ビール",
    "url": "https://www.ikemo3.com/log/white-beer/",
    "contents": "\u003ch2 id=\"飲んだもの\"\u003e飲んだもの\u003c/h2\u003e\n\u003ch3 id=\"2018-10-08-ベアービール\"\u003e2018-10-08: ベアービール\u003c/h3\u003e\n\u003cp\u003eドイツの白ビール。\u003c/p\u003e\n\u003cp\u003eやや酸味が感じられたのは、酵母のためか?\nでも美味しい。\u003c/p\u003e\n\u003ch3 id=\"2018-10-05-blue-moon\"\u003e2018-10-05: Blue Moon\u003c/h3\u003e\n\u003cp\u003eアメリカで作られているベルギー風ビール。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%96%E3%83%AB%E3%83%BC%E3%83%A0%E3%83%BC%E3%83%B3_(%E3%83%93%E3%83%BC%E3%83%AB)\"\u003eブルームーン (ビール) - Wikipedia\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e飲みやすくていいです。比較的安めなのでリピートしてもよさそう。\u003c/p\u003e\n\u003ch3 id=\"2018-08-30-カプツィーナ-ヴァイツェン\"\u003e2018-08-30: カプツィーナ ヴァイツェン\u003c/h3\u003e\n\u003cp\u003eスッキリして飲みやすい。これかなり好き。\nただ、500mlはちょっと多いかも。\u003c/p\u003e\n\u003ch3 id=\"2018-08-28-常陸野ネストビール-ヴァイツェン\"\u003e2018-08-28: 常陸野ネストビール ヴァイツェン\u003c/h3\u003e\n\u003cp\u003eスッキリしているけれど少し強め。\n苦味もヴァイツェンの方では強い方かもしれない。\u003c/p\u003e\n\u003ch3 id=\"2018-08-09-ヒューガルデンホワイト\"\u003e2018-08-09: ヒューガルデンホワイト\u003c/h3\u003e\n\u003cp\u003eプライベートで岡山行ったときに飲んだやつ。\nベルギー系の中では割とスッキリしていて飲みやすいタイプ。\nつまみはあっさり系の方が合うらしい。\u003c/p\u003e\n\u003ch3 id=\"2018-07-19-梅錦ビールヴァイウェン\"\u003e2018-07-19: 梅錦ビール・ヴァイウェン\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.umenishiki.com/products/promotions/beer/10web/weizen.html\"\u003e梅錦ビール・ヴァイツェン\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e愛媛では有名な日本酒メーカーの梅錦山川が作ったヴァイツェン。\n口当たりも優しく、つい飲みすぎてしまうタイプ。\u003c/p\u003e\n\u003cp\u003e唯一の問題が、330mlで500円以上という値段。\u003c/p\u003e\n\u003ch3 id=\"2018-07-16-ヱビス-華みやび\"\u003e2018-07-16: ヱビス 華みやび\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.sapporobeer.jp/yebisu/hanamiyabi/\"\u003eヱビス 華みやび | YEBISU | サッポロビール\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eこれ、なんとも評価しづらい。\n飲み始めのときは(嫌な意味での)ビールっぽさが感じられるけど、\n飲んでみると、あれ、意外といいんじゃないのという感じ。\u003c/p\u003e\n\u003cp\u003eまだ「日本のビールっぽさ」は抜けてない感じだけど、\nまあこれなら選択肢の一つに入れていいかなという感じ。\u003c/p\u003e\n\u003ch3 id=\"2018-07-14-小麦のビール銀河高原ビール\"\u003e2018-07-14: 小麦のビール(銀河高原ビール)\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.gingakogenbeer.com/komugibeer/\"\u003e» 小麦のビール｜銀河高原ビールオフィシャルサイト　THE PREMIUM BEER（プレミアムビール）\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eヴァイツェンの存在を知ったきっかけ。\n銀河高原ビールには別にヴァイツェンを名乗ったビールがあるようですが、\n違いは以下に書いています。熱処理をしていないのがヴァイツェンビール、\n熱処理をしたのが小麦のビールらしいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.gingakogenbeer.com/knowledge/faq/\"\u003e» よくある質問｜銀河高原ビールオフィシャルサイト　THE PREMIUM BEER（プレミアムビール）\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eヴァイツェンの中では地元で手に入りやすく、値段もそれほど高くないので、\n個人的に好きですね。\u003c/p\u003e\n\u003ch3 id=\"2018-07-12-ホワイトベルグ\"\u003e2018-07-12: ホワイトベルグ\u003c/h3\u003e\n\u003cp\u003e久しぶりに飲んだ。\n十分飲めるんだけど、以前より美味しいという印象がなくなった。\nたぶん、自分が好きなのはヴァイツェンなんだろうなぁ。\u003c/p\u003e\n\u003ch3 id=\"2018-06-30-雨のち太陽ベルジャンの白\"\u003e2018-06-30: 雨のち太陽、ベルジャンの白\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.kirin.co.jp/products/list/item/beer/grandkirin_belgian.html\"\u003eグランドキリン 雨のち太陽、ベルジャンの白｜ビール・発泡酒・新ジャンル｜商品情報｜キリン\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eパッケージにもある通り、ベルジャンホワイト。\n個人的には好きじゃないタイプ。苦味もこのタイプにしては強め。\n一応飲めたけどリピートはない。\u003c/p\u003e\n\u003cp\u003e以前飲んだグランドキリン ホワイトエールもダメだった。\n手元には以下のコメントあり。\nキリン自体パスした方がいいだろうなぁ。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eいかにも「日本のビール会社が作りました」という感じのビール。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"2018-06-26-海の向こうのビアレシピオレンジピールのさわやかビール\"\u003e2018-06-26: 海の向こうのビアレシピ〈オレンジピールのさわやかビール〉\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://products.suntory.co.jp/d/4901777319776/\"\u003e海の向こうのビアレシピ〈オレンジピールのさわやかビール〉 商品情報（カロリー・原材料） サントリー\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eカリフォルニアスタイルとなってるけど、\n原材料見る限りベルギービールのような。\n柑橘系の香りのホップがアメリカなのかも。\u003c/p\u003e\n"
  }, 
  {
    "title": "Apache License",
    "url": "https://www.ikemo3.com/dic/apache-license/",
    "contents": "\u003ch2 id=\"apache-licenseとは\"\u003eApache Licenseとは\u003c/h2\u003e\n\u003cp\u003eオープンソースソフトウェアのライセンスです。\u003c/p\u003e\n\u003ch2 id=\"バージョン\"\u003eバージョン\u003c/h2\u003e\n\u003cp\u003e広く使われているバージョンは2.0です。\n2.0以前はGPL ver3と互換性がないため、使用する理由もないと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGPL ver3との互換性\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.gnu.org/licenses/license-list.ja.html#apache2\"\u003e2.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.gnu.org/licenses/license-list.ja.html#apache1.1\"\u003e1.1\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.gnu.org/licenses/license-list.ja.html#apache1\"\u003e1.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Apache License",
    "url": "https://www.ikemo3.com/manual/apache-license/",
    "contents": "\u003ch2 id=\"apache-license-20のソフトウェアの使用方法\"\u003eApache License 2.0のソフトウェアの使用方法\u003c/h2\u003e\n\u003cp\u003e「4. 再頒布」に書かれていますが、Tomcat 8.5の場合は\n例えば以下のようになると思います。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e「LICENSE」ファイルがあるため、これをコピーして渡します。\u003c/li\u003e\n\u003cli\u003eソースコードや設定ファイルなどはその先頭に変更したことの告知を入れます。バイナリの場合は、READMEあたりに記載すればよいでしょうか?\u003c/li\u003e\n\u003cli\u003eソースコードの場合は、オリジナルの著作権表示をそのまま残しておけば良さそうです。\u003c/li\u003e\n\u003cli\u003e「NOTICE」ファイルがあるので、そのファイルの内容をどこかに入れる。\n\u003cul\u003e\n\u003cli\u003eそのままファイルをコピーできるのであれば、それが一番楽そうです。\u003c/li\u003e\n\u003cli\u003eソフトウェアにそのような表示ができるメニューがあれば、そこに入れるのでもよさそうです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Encoding",
    "url": "https://www.ikemo3.com/tags/encoding/",
    "contents": ""
  }, 
  {
    "title": "Git: ファイルの中身にUTF-8以外のエンコーディングを使用する",
    "url": "https://www.ikemo3.com/inverted/git/use-non-utf8-encoding/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eファイルの中身にUTF-8以外のエンコーディングを使用する方法です。\n(ファイル名についてはタグ\u0026rsquo;git\u0026rsquo;から参照)\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eiconvコマンドが入っていること。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://git-scm.com/docs/gitattributes\"\u003egitattributes\u003c/a\u003eを使います。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e例として、Javaファイル(*.java)のエンコーディングが\nCP932の場合の設定をします。\u003c/p\u003e\n\u003cp\u003econfigファイルに設定を追加します。\n場所は\u003ca href=\"https://git-scm.com/docs/git-config#FILES\"\u003egit-configのFILES\u003c/a\u003e参照。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e[diff \u0026#34;cp932\u0026#34;]\n    textconv = iconv -f cp932\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e次にgitattributesファイルに設定を追加します。\n場所は、リポジトリの.gitattributesまたは.git/info/attributes\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e*.java diff=cp932\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eこれで、\u003ccode\u003egit log -p\u003c/code\u003eなどで正しく表示できるようになりました。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Google-Chrome",
    "url": "https://www.ikemo3.com/tags/google-chrome/",
    "contents": ""
  }, 
  {
    "title": "License",
    "url": "https://www.ikemo3.com/tags/license/",
    "contents": ""
  }, 
  {
    "title": "NHK",
    "url": "https://www.ikemo3.com/dic/nhk/",
    "contents": "\u003ch2 id=\"nhkとは\"\u003eNHKとは\u003c/h2\u003e\n\u003cp\u003e「公共」放送を行っているところです。\n逆に言えば、政府から独立した組織です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"何だかんだで有用\"\u003e何だかんだで有用\u003c/h2\u003e\n\u003cp\u003eNHKはいろいろ言われますが、基本的には質の高い番組が多いです。\n質が低いのは基本的には\u003ca href=\"/dic/news/\"\u003eニュース\u003c/a\u003eやドキュメンタリーなどの報道部門です。\nそれでも煽りが少ないだけ民法よりはマシですが。。。\u003c/p\u003e\n\u003cp\u003e特にEテレは子供から大人まで楽しめる番組が多いです。\nまあ、公式名称は「NHK教育テレビジョン」なので当然ですが。\u003c/p\u003e\n\u003ch2 id=\"キャラグッズ\"\u003eキャラグッズ\u003c/h2\u003e\n\u003cp\u003e自分が行く可能性がある場所のメモです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eリアル店舗\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.nhk-character.com/shopguide/\"\u003eNHKエンタープライズ キャラクターページ | NHKキャラクターショップのご案内\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e東京\n\u003cul\u003e\n\u003cli\u003e東京駅\u003c/li\u003e\n\u003cli\u003eとうきょうスカイツリー駅、押上駅\u003c/li\u003e\n\u003cli\u003e池袋駅: \u003ca href=\"https://www.fantasy.co.jp/nikohapi/\"\u003eにこはぴきっず｜NHKキャラクターと遊ぼう\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e渋谷駅: \u003ca href=\"http://www.nhk.or.jp/studiopark/\"\u003eNHKスタジオパーク\u003c/a\u003eにももちろんあります。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e関西\n\u003cul\u003e\n\u003cli\u003e京都駅\u003c/li\u003e\n\u003cli\u003e兵庫県のは「ついでに立ち寄り」は無理そうです。\u003c/li\u003e\n\u003cli\u003e大阪にはありません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e中国・四国\n\u003cul\u003e\n\u003cli\u003e岡山のテーマパークも「ついでに立ち寄り」は無理そうです。\u003c/li\u003e\n\u003cli\u003e高知は中心部にあるので、機会があれば行けそうな感じです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eオンラインショップ\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.nhk-ep.com/chara/index.html\"\u003eキャラクターグッズコーナー\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"apiがある\"\u003eAPIがある\u003c/h2\u003e\n\u003cp\u003e結構しっかりしたAPIがありました。面白そうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://api-portal.nhk.or.jp/\"\u003eNHK番組表API\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.slideshare.net/apijp/20140829-api-meetuptokyo\"\u003eNHK番組表API ‐ 放送通信連携とAPIのこれから\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/kanineshi/items/016da47744adb291a275\"\u003eテレビの番組表(アニメ)取得APIについて色々 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.nhk.or.jp/faq-corner/1nhk/01/01-01-02.html\"\u003e公共放送とは何か｜NHKよくある質問集\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Stub",
    "url": "https://www.ikemo3.com/tags/stub/",
    "contents": ""
  }, 
  {
    "title": "stubby4j",
    "url": "https://www.ikemo3.com/manual/stubby4j/",
    "contents": "\u003ch2 id=\"使い方\"\u003e使い方\u003c/h2\u003e\n\u003cp\u003eYAMLで記載します。書式は\u003ca href=\"https://github.com/azagniotov/stubby4j#endpoint-configuration-howto\"\u003eEndpoint configuration HOWTO\u003c/a\u003e参照。\u003c/p\u003e\n\u003ch2 id=\"programmatic-api\"\u003eProgrammatic API\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/azagniotov/stubby4j#programmatic-api\"\u003eProgrammatic API\u003c/a\u003eによれば、Javaから直接呼び出せるようです。\nまだ未確認です。\u003c/p\u003e\n"
  }, 
  {
    "title": "Webstorm",
    "url": "https://www.ikemo3.com/tags/webstorm/",
    "contents": ""
  }, 
  {
    "title": "WebStormでGoogle Chrome拡張機能を開発する方法",
    "url": "https://www.ikemo3.com/inverted/webstorm/google-chrome-extension/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eJetBrains社WebStormでGoogle Chrome拡張機能を開発する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChrome APIの型チェック\u003c/li\u003e\n\u003cli\u003emanifest.jsonのスキーマを追加\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"chrome-apiの型チェック\"\u003eChrome APIの型チェック\u003c/h3\u003e\n\u003cp\u003e以下の2つの方法があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enpmでインストール\u003c/li\u003e\n\u003cli\u003eWebStormの機能でインストール\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"npmでインストール\"\u003enpmでインストール\u003c/h4\u003e\n\u003cp\u003eこれで終わりです。WebStormにも認識されます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm install --save-dev @types/chrome\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e直接は関係ありませんが、TypeScriptやTSLintを使う場合は以下のようにします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm install --save-dev typescript\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm install --save-dev tslint\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch4 id=\"webstormの機能でインストール\"\u003eWebStormの機能でインストール\u003c/h4\u003e\n\u003cp\u003eこちらで書かれている方法を参考にしました。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://stackoverflow.com/questions/13997468/how-do-i-use-webstorm-for-chrome-extension-development\"\u003ejavascript - How do I use WebStorm for Chrome Extension Development? - Stack Overflow\u003c/a\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003ePreferences / Settingsを開く\u003c/li\u003e\n\u003cli\u003eLanguages \u0026amp; Framework \u0026gt; JavaScript \u0026gt; Libraries\u003c/li\u003e\n\u003cli\u003eDownload\u0026hellip;ボタンを押す\n\u003cul\u003e\n\u003cli\u003eTypeScript community stubsが表示される\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003echromeを選択してDownload and Install\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"manifestjsonのスキーマ追加\"\u003emanifest.jsonのスキーマ追加\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/SchemaStore/schemastore\"\u003eJSON Schema Store\u003c/a\u003eを使います。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003ePreferences / Settingsを開く\u003c/li\u003e\n\u003cli\u003eLanguages \u0026amp; Framework \u0026gt; Schemas and DTDs \u0026gt; JSON Schema\u003c/li\u003e\n\u003cli\u003e\u0026lsquo;+\u0026lsquo;ボタンを押す\u003c/li\u003e\n\u003cli\u003eSchema file or URLに以下のURLを指定\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://json.schemastore.org/chrome-manifest\"\u003ehttp://json.schemastore.org/chrome-manifest\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e右側のペインの左下の\u0026rsquo;+\u0026lsquo;ボタンを押す\u003c/li\u003e\n\u003cli\u003eFile: manifest.jsonを選択\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e以前はgit clone使ってましたが、URLが直接指定できるので不要でした。。。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003eまだ単に型チェックができるだけのようで、\ngetElementById()で指定したIDがHTML中にあるかどうかのチェックは\n今のところ方法が見つかっていません。\u003c/p\u003e\n"
  }, 
  {
    "title": "ラーメン",
    "url": "https://www.ikemo3.com/dic/ramen/",
    "contents": "\u003ch2 id=\"ラーメンとは\"\u003eラーメンとは\u003c/h2\u003e\n\u003cp\u003e元々は中国の食べ物ですが、日本で独自に発展している料理です。\u003c/p\u003e\n\u003ch2 id=\"個人的な好み\"\u003e個人的な好み\u003c/h2\u003e\n\u003cp\u003e好きなのは「醤油」か「醤油とんこつ」です。\n「塩」は専門店では食べますが、カップ麺では好きじゃないです。\n「味噌」は好きじゃないです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Markdown",
    "url": "https://www.ikemo3.com/tags/markdown/",
    "contents": ""
  }, 
  {
    "title": "textlint",
    "url": "https://www.ikemo3.com/manual/textlint/",
    "contents": "\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003cp\u003eまずtextlint自体のインストール。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm install --save-dev textlint\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eそれから、ルールを入れる。\nここでは、以下の4つを入れています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/textlint/textlint-filter-rule-comments\"\u003etextlint-filter-rule-comments\u003c/a\u003e: コメントを使用可能にする\n\u003cul\u003e\n\u003cli\u003eMarkdown中に\u003ccode\u003e\u0026lt;!-- textlint-disable --\u0026gt;\u003c/code\u003e〜\u003ccode\u003e\u0026lt;!-- textlint-enable --\u0026gt;\u003c/code\u003eで囲むことで、その中では、全ての、あるいは特定のルールを無効化できます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/azu/textlint-rule-no-nfd\"\u003etextlint-rule-no-nfd\u003c/a\u003e: MacOSの濁点問題をチェックするもの\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/textlint-ja/textlint-rule-no-double-negative-ja\"\u003etextlint-rule-no-double-negative-ja\u003c/a\u003e: 二重否定のチェック\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/textlint-rule/textlint-rule-no-invalid-control-character\"\u003etextlint-rule-no-invalid-control-character\u003c/a\u003e: 制御文字のチェック\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm install --save-dev textlint-filter-rule-comments\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm install --save-dev textlint-rule-no-nfd\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm install --save-dev textlint-rule-no-double-negative-ja\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm install --save-dev @textlint-rule/textlint-rule-no-invalid-control-character\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e最後に、設定ファイルを作成します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e./node_modules/.bin/textlint --init\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"実行\"\u003e実行\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e./node_modules/.bin/textlint \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003eディレクトリ|ファイル\u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "ドメイン駆動設計",
    "url": "https://www.ikemo3.com/manual/ddd/",
    "contents": "\u003ch2 id=\"構成要素\"\u003e構成要素\u003c/h2\u003e\n\u003cp\u003e以下「自分なりに」解釈したものを含みます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEntity: 何らかのIDによって識別されるオブジェクト。\n\u003cul\u003e\n\u003cli\u003eDB上で言えばPKを持つもの。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eValue Object: そのオブジェクト自体が持つ値によって識別されるオブジェクト。\n\u003cul\u003e\n\u003cli\u003e共有される可能性があるため、不変でないといけない\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eService: 何も状態を持たないもの。\n\u003cul\u003e\n\u003cli\u003e実装\n\u003cul\u003e\n\u003cli\u003estaticメソッドでも問題なさそう?\n\u003cul\u003e\n\u003cli\u003e例: \u003ca href=\"https://github.com/j5ik2o/java-ddd-example/blob/master/domain/src/main/java/com/github/j5ik2o/ddd_example/domain/BankAccountService.java\"\u003ehttps://github.com/j5ik2o/java-ddd-example/blob/master/domain/src/main/java/com/github/j5ik2o/ddd_example/domain/BankAccountService.java\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e例: \u003ca href=\"http://masuda220.jugem.jp/?eid=310\"\u003eServices パターンというモデリングテクニック | システム設計日記\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eServiceのinterfaceと実装を分離するならstaticでなくなりますが、正直冗長な気もしますね。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cp\u003e基本はこの3つ。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAggregates: 関連するオブジェクトの集まり。\n\u003cul\u003e\n\u003cli\u003e不定数のリストとして表されることもあれば、車のタイヤのように決まった数のオブジェクトをまとめたものもあれば、複数バラバラのインスタンスの寄せ集めのこともある。\u003c/li\u003e\n\u003cli\u003e要はこれらを抽象化した概念と思われる。\u003c/li\u003e\n\u003cli\u003e逆に、Entityの特殊なパターンとも考えられそう。\u003c/li\u003e\n\u003cli\u003e基本的にはルートから操作しないといけない。\n\u003cul\u003e\n\u003cli\u003e実装的には、メンバ変数をそのまま返すことは避ける。あるいは返すとしても、Collection.unmodifiableXXX()などを使って不変にするのが望ましい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFactory\n\u003cul\u003e\n\u003cli\u003eインスタンスやインスタンスの集約を生成するクラス。\n\u003cul\u003e\n\u003cli\u003eBuilderパターンも含まれるため、statelessではない(よって他のものには当てはまらない)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eコンストラクタで良い場合の基準が書かれているが、ここは難しいデスネ\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRepository\n\u003cul\u003e\n\u003cli\u003eDBアクセスを抽象化した「ようなもの」。「ようなもの」と書いているのは、単にSQLを隠蔽するとかというレベルじゃなくて、もっと抽象化されたものとして扱うから。\u003c/li\u003e\n\u003cli\u003eTransactionはこの範囲外と書かれている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ファクトリの使い分け\"\u003eファクトリの使い分け\u003c/h2\u003e\n\u003cp\u003e個人的にはこれがいいんじゃないかなぁというのを書いてみます。\nフレームワークなどで対応している場合は除きます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eValue Object: Factory Method\n\u003cul\u003e\n\u003cli\u003e簡潔に書ける、immutable、Flyweightパターンが適用可能だから。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEntity: Builder\n\u003cul\u003e\n\u003cli\u003emutableなことが多いため。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRepository: Factory Method\n\u003cul\u003e\n\u003cli\u003eコンストラクタでもいいですが、テストのことを考えると、インタフェースを作っておいたほうが楽そう。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eService: コンストラクタ\n\u003cul\u003e\n\u003cli\u003estaticメソッドで書けるケースも多そうですが、慣習として避けたほうがいいかも。\u003c/li\u003e\n\u003cli\u003eRepositoryを内部で持つなら取り替えられる方がいいかなと。。。これは組んでみないとなんとも。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eKindle版の位置No.2525より。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eKindle版の位置No.3333より。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Punycode",
    "url": "https://www.ikemo3.com/dic/punycode/",
    "contents": "\u003ch2 id=\"punycodeとは\"\u003ePunycodeとは\u003c/h2\u003e\n\u003cp\u003e国際化ドメインに使われるものです。\u003c/p\u003e\n\u003ch2 id=\"読み方\"\u003e読み方\u003c/h2\u003e\n\u003cp\u003e「ピュニコード」と呼びます。\n「ぷにコード」ではないようです(´・ω・｀)\u003c/p\u003e\n\u003ch2 id=\"nameprep\"\u003eNameprep\u003c/h2\u003e\n\u003cp\u003ePunycodeでは、Nameprepという仕組みを使って前処理を行います。\nこのNameprepは、stringprepという枠組みを使っています。\u003c/p\u003e\n\u003cp\u003estringprepは、RFC 3454で定義されていますが、\n前処理のオプションを定義するものです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://tools.ietf.org/html/rfc3454\"\u003ehttps://tools.ietf.org/html/rfc3454\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.jdna.jp/survey/rfc/rfc3454j.html\"\u003ehttp://www.jdna.jp/survey/rfc/rfc3454j.html\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNameprepはRFC 3491で定義されていますが、\nこのRFCでは、stringprepのこのオプションを使用しますよというのが\n書かれています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://tools.ietf.org/html/rfc3491\"\u003ehttps://tools.ietf.org/html/rfc3491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例えば、Unicodeの正規化処理については、\nUnicode normalization form KCというのを使用します。\u003c/p\u003e\n"
  }, 
  {
    "title": "DockerでOracleデータベースを使用する方法",
    "url": "https://www.ikemo3.com/inverted/docker/oracle/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eDockerでOracleデータベースを使用する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eExpress Editionを使います。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e公式のリポジトリを使います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/docker-images\"\u003eoracle/docker-images\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance\"\u003eOracleDatabase/SingleInstance\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"ビルド\"\u003eビルド\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e事前にダウンロードする(Oracleアカウント必須)。\n\u003cul\u003e\n\u003cli\u003eExpress Edition: \u003ca href=\"http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html\"\u003ehttp://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eZIPファイルの解凍は不要です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e以下のコマンドを実行\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit clone https://github.com/oracle/docker-images.git oracle\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd oracle/OracleDatabase/SingleInstance/dockerfiles\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 事前にダウンロードしたExpress Editionのzipファイルを移動\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003emv /path/to/oracle-xe-11.2.0-1.0.x86_64.rpm.zip 11.2.0.2\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# ビルド\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e./buildDockerImage.sh -x -v 11.2.0.2\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこれで以下の内容で作成されます。\nビルドにかかった時間は94秒、容量は1.13GBでした。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eリポジトリ: oracle/database\u003c/li\u003e\n\u003cli\u003eタグ: 11.2.0.2-xe\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eビルドにはOrace Linux(oraclelinux:7-slim)が使われるようです。\u003c/p\u003e\n\u003ch3 id=\"実行\"\u003e実行\u003c/h3\u003e\n\u003cp\u003e起動方法は以下を参照。\n環境にもよりますが、1分15秒ほどかかりました。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance#running-oracle-database-express-edition-in-a-docker-container\"\u003eRunning Oracle Database Express Edition in a Docker container\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下のようにして接続できます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSID: XE\u003c/li\u003e\n\u003cli\u003eUser: system\u003c/li\u003e\n\u003cli\u003ePassword: 起動時に設定したもの\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eコンテナ内部からのsqlplusによる接続は以下のような感じ。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esqlplus sys/パスワード@localhost/XE as sysdba\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003eXEではUTF-8固定なので、他のエンコーディングを使用する場合は、\n以下の方法を使う必要があります(未確認)。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://stk132.hatenablog.com/entry/2015/09/16/010917\"\u003eoracleXEの文字コードをJA16SJISTILDEに変更したDockerfileを作った - DevDevデブ!!\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "IPアドレス",
    "url": "https://www.ikemo3.com/dic/ip-address/",
    "contents": "\u003ch2 id=\"ipアドレスとは\"\u003eIPアドレスとは\u003c/h2\u003e\n\u003cp\u003eTCP/IPで通信するための機器を識別するためのものです。\u003c/p\u003e\n\u003ch2 id=\"クラスe\"\u003eクラスE\u003c/h2\u003e\n\u003cp\u003eテスト中に、「どこにも絶対に接続できないIPアドレス」が欲しくなりました。\n調べてみたのですが、クラスEが良さそうです。\u003c/p\u003e\n\u003cp\u003eクラスEは「実験用」あるいは「将来のために予約(Reserved for future use.)」\nとして認識されていて、使われることはありません。\u003c/p\u003e\n"
  }, 
  {
    "title": "Perl",
    "url": "https://www.ikemo3.com/log/perl/",
    "contents": "\u003ch2 id=\"199x年に書いたperl-4のコードを動かしてみた\"\u003e199X年に書いたPerl 4のコードを動かしてみた\u003c/h2\u003e\n\u003cp\u003e1990年代に書いたと思われるPerlのコードを動かしてみました。\nそのときのトラブルです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ejcode.plがUTF-8対応していない\n\u003cul\u003e\n\u003cli\u003e元々はEUC-JPで書かれていたので、今後のことを考えてUTF-8にしましたが、jcode.plが対応していませんでした。\u003c/li\u003e\n\u003cli\u003e結局\u003ca href=\"http://openlab.jp/Jcode/index-j.html\"\u003eJcode.pm\u003c/a\u003eを使いました。\u003c/li\u003e\n\u003cli\u003ePerl 4で書かれていたので、\u003ca href=\"http://search.cpan.org/dist/jacode/\"\u003ejacode.pl\u003c/a\u003eの方が良かったかも?\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePerl 5.26の@INC\n\u003cul\u003e\n\u003cli\u003e脆弱性対応として、カレントディレクトリが削除されました。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://gihyo.jp/dev/serial/01/perl-hackers-hub/004601\"\u003e第46回　Perl 5.26で変わること（1）：Perl Hackers Hub｜gihyo.jp … 技術評論社\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerl 5にはコミットするつもりがないので、\nそのうち別の言語で書き直しますか。。。\u003c/p\u003e\n"
  }, 
  {
    "title": "ゲーム",
    "url": "https://www.ikemo3.com/log/game/",
    "contents": "\u003ch2 id=\"被災者支援とゲーム\"\u003e被災者支援とゲーム\u003c/h2\u003e\n\u003cp\u003eこれを書いている3日前に大阪北部で地震がありました。\n友人の1人の家のガスが止まっていて不便をしている状況です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.kantei.go.jp/jp/headline/earthquake20180618/index.html\"\u003e大阪府北部を震源とする地震について | 首相官邸ホームページ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eそういう状況で思い出したのが、\n「かつて被災者支援としてゲームは使われたのか?」という点です。\n衣食住が最優先なのは言うまでもないですが、\nストレスがかかりやすいので、娯楽も必要です。\u003c/p\u003e\n\u003cp\u003e調べてみると、例えばこんな事例が見つかりました。\n電力の利用例として、ゲームが挙げられています。\n(ゲームがPS3, PSPなのは、ソニーが賛同企業に入っているからですね)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.solarbear.jp/news/other/193/\"\u003e太陽光発電で被災者支援 ～被災地へソーラーパワートラック派遣 第2弾～実施のお知らせ | そらべあ基金\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "multipart/form-data",
    "url": "https://www.ikemo3.com/dic/multipart-form-data/",
    "contents": "\u003ch2 id=\"multipartform-dataとは\"\u003emultipart/form-dataとは\u003c/h2\u003e\n\u003cp\u003eHTMLでファイルを送るときの手法です。\u003c/p\u003e\n\u003ch2 id=\"rfc\"\u003eRFC\u003c/h2\u003e\n\u003cp\u003e元々はRFC 2388で定義されたものでした。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://tools.ietf.org/html/rfc2388\"\u003eRFC 2388 - Returning Values from Forms: multipart/form-data\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eしかしどうやらこれがobsoletesになって、最新はRFC 7578になっているようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://tools.ietf.org/html/rfc7578\"\u003eRFC 7578 - Returning Values from Forms: multipart/form-data\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"boundary\"\u003eboundary\u003c/h2\u003e\n\u003cp\u003eRFC 2046の5.1に記載があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://tools.ietf.org/html/rfc2046#section-5.1\"\u003eRFC 2046 - Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"用語\"\u003e用語\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebounary parameter: Content-Typeに付けるboundaryパラメータのこと\n\u003cul\u003e\n\u003cli\u003e70文字以下である必要がある。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ebounary delimiter: 区切りに使われる文字列で、\u0026quot;\u0026ndash;\u0026quot; + boundary parameterになる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"仕様\"\u003e仕様\u003c/h3\u003e\n\u003cp\u003eバウンダリ文字列に使われる文字は以下のように記載があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eデリミタ(bounary delimiter)がカプセルするデータに含まれてはいけない。\u003c/li\u003e\n\u003cli\u003eしかし確率的にぶつかる可能性が低いものを選ぶのでもよい。\u003c/li\u003e\n\u003cli\u003e代わりのアルゴリズムとして、デリミタをより「読みやすくする」方法がある。そのために、\u0026quot;\u0026mdash;\u0026ldquo;のような文字列を使うのもよい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eよく使われるのが「\u0026rdquo;-\u0026ldquo;をいくつか足したもの + ランダム文字列」なのは、これが理由です。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eNOTE:  Because boundary delimiters must not appear in the body parts\nbeing encapsulated, a user agent must exercise care to choose a\nunique boundary parameter value.  The boundary parameter value in the\nexample above could have been the result of an algorithm designed to\nproduce boundary delimiters with a very low probability of already\nexisting in the data to be encapsulated without having to prescan the\ndata.  Alternate algorithms might result in more \u0026ldquo;readable\u0026rdquo; boundary\ndelimiters for a recipient with an old user agent, but would require\nmore attention to the possibility that the boundary delimiter might\nappear at the beginning of some line in the encapsulated part.  The\nsimplest boundary delimiter line possible is something like \u0026ldquo;\u0026mdash;\u0026rdquo;,\nwith a closing boundary delimiter line of \u0026ldquo;\u0026mdash;\u0026ndash;\u0026rdquo;.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e区切りが\u0026rdquo;\u0026ndash;\u0026ldquo;から始まるというのは以下の箇所からです。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThe Content-Type field for multipart entities requires one parameter,\n\u0026ldquo;boundary\u0026rdquo;. The boundary delimiter line is then defined as a line\nconsisting entirely of two hyphen characters (\u0026rdquo;-\u0026quot;, decimal value 45)\nfollowed by the boundary parameter value from the Content-Type header\nfield, optional linear whitespace, and a terminating CRLF.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e最後の区切りが\u0026quot;\u0026ndash;\u0026ldquo;で終わるというのは、以下の箇所からです。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThe boundary delimiter line following the last body part is a\ndistinguished delimiter that indicates that no further body parts\nwill follow.  Such a delimiter line is identical to the previous\ndelimiter lines, with the addition of two more hyphens after the\nboundary parameter value.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eまとめると以下のようになります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eContent-Typeのパラメータにboundaryを付ける\n\u003cul\u003e\n\u003cli\u003eboundaryは1〜70文字なら何でもいいが、以下の点を満たすとよい\n\u003cul\u003e\n\u003cli\u003eぶつからない、あるいはぶつかる可能性が低いこと\u003c/li\u003e\n\u003cli\u003e読みやすくするために\u0026rdquo;\u0026mdash;\u0026ldquo;のように始まることも考慮\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e区切りは\u0026rdquo;\u0026ndash;\u0026quot; + boundary parameter\u003c/li\u003e\n\u003cli\u003e最後の区切りは\u0026quot;\u0026ndash;\u0026quot; + boundary parameter + \u0026ldquo;\u0026ndash;\u0026rdquo;\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Apache",
    "url": "https://www.ikemo3.com/tags/apache/",
    "contents": ""
  }, 
  {
    "title": "Docker: httpdの使用方法",
    "url": "https://www.ikemo3.com/inverted/docker/httpd/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eDockerでhttpd(Apache HTTP Server)を使用する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e公式リポジトリの\u003ccode\u003ehttpd:2.4\u003c/code\u003eを使います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://hub.docker.com/_/httpd/\"\u003elibrary/httpd - Docker Hub\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e/usr/local/apache2 以下にインストールされています。\u003c/li\u003e\n\u003cli\u003eデフォルトではバックグラウンドで動かすため、\u003ccode\u003e-d\u003c/code\u003eオプションが必要です。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-d\u003c/code\u003eなしで動かすと、初回は動きますが、2回目から動きません。何でかはよく分かってません。。。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"設定ファイル\"\u003e設定ファイル\u003c/h3\u003e\n\u003cp\u003eデフォルトのものをコピーすると良いです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eCONTAINER_NAME\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003eコンテナ名\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker cp \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eCONTAINER_NAME\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e:/usr/local/apache2/conf/httpd.conf conf/\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Http",
    "url": "https://www.ikemo3.com/tags/http/",
    "contents": ""
  }, 
  {
    "title": "テスト(プログラミング)",
    "url": "https://www.ikemo3.com/manual/test/",
    "contents": "\u003ch2 id=\"ツール\"\u003eツール\u003c/h2\u003e\n\u003ch3 id=\"フレームワーク\"\u003eフレームワーク\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJava: \u003ca href=\"/dic/junit/\"\u003eJUnit\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e何はともあれこれ。デファクトで情報も多く、十分使いやすい\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePython: \u003ca href=\"https://docs.pytest.org/en/7.1.x/\"\u003epytest\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"モック\"\u003eモック\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJava: \u003ca href=\"http://jmockit.github.io/\"\u003eJMockit\u003c/a\u003eを使ってます。どちらかと言えば慣れなので、\u003ca href=\"http://site.mockito.org/\"\u003eMockito\u003c/a\u003eでもいいかなと。\u003c/li\u003e\n\u003cli\u003ePython: \u003ca href=\"https://factoryboy.readthedocs.io/en/stable/\"\u003efactory_boy\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"fixture\"\u003efixture\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJava: \u003ca href=\"/dic/dbsetup/\"\u003eDbSetup\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e最初は\u003ca href=\"http://dbunit.sourceforge.net/\"\u003eDbUnit\u003c/a\u003eを使っていたのですが、イマイチ使いにくいので探したところ、このライブラリを見つけました。\u003c/li\u003e\n\u003cli\u003e削除のsqlを直書きできるので、いろいろな事情でクリーンな環境が用意できない場合にも対応できました。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"データベースのassertion\"\u003eデータベースのAssertion\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJava: 自作クラス(JDBC + \u003ca href=\"https://commons.apache.org/proper/commons-dbutils/\"\u003eDbUtils\u003c/a\u003e) + \u003ca href=\"/dic/assertj/\"\u003eAssertJ\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://joel-costigliola.github.io/assertj/assertj-db.html\"\u003eAssertJ-DB\u003c/a\u003eも使ったのですが、ハードルが高かったです。\u003c/li\u003e\n\u003cli\u003e差分だけ検証できる利点はあるのですが、ごちゃごちゃして読みづらかったです。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eList\u0026lt;Map\u0026lt;String, Object\u0026gt;\u0026gt;\u003c/code\u003e で返すメソッドと、\u003ccode\u003eMap\u0026lt;String, Object\u0026gt;\u003c/code\u003e で返すメソッドを作っています。\n\u003cul\u003e\n\u003cli\u003e後者はレコードがないときはnullにしています。AssertJは通常のオブジェクトは \u003ccode\u003esatisfies\u003c/code\u003e メソッドで対応できますが、Optionalは \u003ccode\u003ehasValueSatisfying\u003c/code\u003e と長くなるので冗長かなと。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eValueObjectをちゃんと作るのが、equalsで比較できるので良いと思います。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"http\"\u003eHTTP\u003c/h3\u003e\n\u003cp\u003ehttpbinを使うのが楽です。\n自分でスタブを用意する場合は、stubbyがオススメです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://httpbin.org/\"\u003ehttpbin.org\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003estubby\n\u003cul\u003e\n\u003cli\u003eYAMLファイルで定義します。\u003c/li\u003e\n\u003cli\u003eJava版: \u003ca href=\"https://github.com/azagniotov/stubby4j\"\u003estubby4j\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e.NET、Node.js版もありますが、Java版が最も活発に開発されている模様。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"カバレッジ\"\u003eカバレッジ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJava\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.eclemma.org/\"\u003eEclEmma - Java Code Coverage for Eclipse\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntelliJ IDEAでは組み込みのものもあるようです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePython\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://coverage.readthedocs.io/\"\u003eCoverage.py\u003c/a\u003eと\u003ca href=\"https://pytest-cov.readthedocs.io/en/latest/\"\u003epytest-cov\u003c/a\u003eを使っています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"インフラ\"\u003eインフラ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://serverspec.org/\"\u003eServerspec - Home\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mizzy/serverspec\"\u003emizzy/serverspec: RSpec tests for your servers configured by CFEngine, Puppet, Chef, Ansible, Itamae or anything else even by hand\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eインフラテストの先駆け。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.inspec.io/\"\u003eInSpec - Audit and Automated Testing Framework\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chef/inspec\"\u003echef/inspec: InSpec: Auditing and Testing Framework\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eServerspecにインスパイアされたもの。自分はこっちをメインで使ってました。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gruntwork.io/\"\u003eGruntwork | DevOps as a Service\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gruntwork-io/terratest\"\u003egruntwork-io/terratest: Terratest is a Go library that makes it easier to write automated tests for your infrastructure code.\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eこんなのがあるらしいですが、使ったことはないです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aelsabbahy/goss\"\u003eaelsabbahy/goss: Quick and Easy server testing/validation\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e動いている環境をベースに作ってくれるもの。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/naftulikay/ansible-role-degoss\"\u003enaftulikay/ansible-role-degoss: An Ansible role for installing, running, and removing Goss from a system without leaving any traces.\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e上のGossをAnsibleで使うためのもの。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"書き方\"\u003e書き方\u003c/h2\u003e\n\u003ch3 id=\"テストコードの設計\"\u003eテストコードの設計\u003c/h3\u003e\n\u003cp\u003e以前まとめました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://zenn.dev/ikemo/articles/test-code-design\"\u003eテストコードの設計について考える\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"毎回変わるものは分離\"\u003e毎回変わるものは分離\u003c/h3\u003e\n\u003cp\u003e例えば時刻のように毎回変わるものについては、\n毎回変わるところとそうでないところを分けることで、テストが楽になります。\nモックを使ったり、\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/Clock.html#fixed-java.time.Instant-java.time.ZoneId-\"\u003ejava.time.Clock#fixed\u003c/a\u003eのように\nテスト用のメソッドを用意している場合もあるので、積極的に使っていくといいです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// テストしたいもの(こちらはテスト対象外)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e List\u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u003c/span\u003eBook\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003egetBooksOfPublishedToday\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  LocalDate today \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e LocalDate.\u003cspan style=\"color:#a6e22e\"\u003enow\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  getBooksOfPublished(today);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// こちらをテスト対象とする。\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eList\u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u003c/span\u003eBook\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003egetBooksOfPublished\u003c/span\u003e(LocalDate date) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"カバレッジ-1\"\u003eカバレッジ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e高いほうがいいが、100%にはしない\n\u003cul\u003e\n\u003cli\u003eDjangoで100%を実践した結果。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://zenn.dev/ikemo/articles/test-coverage-100-percent\"\u003eテストカバレッジ100%を実践した結果、100%を目指さない方がいいと理解した\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eまずありえない例外があるため。\u003c/li\u003e\n\u003cli\u003eMartin Fowler先生も書いている通り、80%から90%台でいいかと。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://martinfowler.com/bliki/TestCoverage.html\"\u003eTestCoverage\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://bliki-ja.github.io/TestCoverage/\"\u003eテストカバレッジ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/bremen/items/d02eb38e790b93f44728\"\u003eテストカバレッジ100%を追求しても品質は高くならない理由と推奨されるカバレッジの目標値について - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eテストの品質を確保するなら、ミューテーション解析を使うのが良いです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "麻雀",
    "url": "https://www.ikemo3.com/dic/mahjong/",
    "contents": "\u003ch2 id=\"麻雀とは\"\u003e麻雀とは\u003c/h2\u003e\n\u003cp\u003e基本的には4人で遊ぶテーブルゲームです。\u003c/p\u003e\n\u003ch2 id=\"大学時代\"\u003e大学時代\u003c/h2\u003e\n\u003cp\u003e大学時代、主に\u003ca href=\"http://www.wakaba.jp/\"\u003e若葉荘\u003c/a\u003eのメンバーで麻雀をよく打ってたのですが、\nその時にやってた行動が自分らしいなぁと思います。\u003c/p\u003e\n\u003cp\u003eそれは、麻雀の結果を集計して、データベースにして、\n平均順位、平均点、分散などを計算していました。\n当時はPerl 4とRuby 1.4で書いていて、CGIとして(こっそり)公開してました。\u003c/p\u003e\n\u003cp\u003eしかし自分は弱い方でした(´・ω・｀)\n役満はいろいろやってたみたいですが\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e四暗刻(基本)\u003c/li\u003e\n\u003cli\u003e国士無双(基本)\u003c/li\u003e\n\u003cli\u003e十三不塔\u003c/li\u003e\n\u003cli\u003e小四喜\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e外部リンクの最下部参照。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "レビュー: 思想家ドラッカーを読む",
    "url": "https://www.ikemo3.com/theme/book/read-the-philosopher-drucker/",
    "contents": "\u003ch2 id=\"なぜこの本を読もうと思ったのか\"\u003eなぜこの本を読もうと思ったのか\u003c/h2\u003e\n\u003cp\u003eもちろん自分が\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003e好きというのもありますが、\n「思想家」として書かれている点が気になったからです。\u003c/p\u003e\n\u003cp\u003e自分はドラッカーが自称するように、\n社会生態学者として見ているのですが、\nその点を中心として語られた本はこれまで見たことありませんでした。\n(「まとめて」なら、「イノベーターの条件」が該当します)\u003c/p\u003e\n\u003ch2 id=\"本質を捉えている\"\u003e本質を捉えている\u003c/h2\u003e\n\u003cp\u003e1日でスラスラと読み終えましたが、\n自分から見て、違和感がある記述はありませんでした。\n著者はむしろこれまでドラッカー嫌い(食わず嫌い)だったらしいのですが、\nわずか2年でこれだけ書けるのはさすがだと思いました。\u003c/p\u003e\n\u003ch2 id=\"傍観者の時代から\"\u003e傍観者の時代から\u003c/h2\u003e\n\u003cp\u003eこの本の面白いところは、ドラッカーの思想を主に\n「傍観者の時代」から読み取っているところです。\nもちろん初期作の 『「経済人」の終わり』、「産業人の未来」の\n言及が多いのは予想通りでしたが。\u003c/p\u003e\n\u003ch2 id=\"誰のためのマネジメントか\"\u003e誰のためのマネジメントか\u003c/h2\u003e\n\u003cp\u003eあとがきの「本書を書き進めていく内にはっきり分かったことは」\nから始まる一文で、以下のような記述があります。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eむしろ、弱くて不器用で、環境の変化になかなか適合できない、\nしかし古くからある共同体に帰る道も閉ざされた諸個人が、\n現代社会でどうやって生きていったらいいか、と考える中で、\n企業を媒介共同体として捉えるドラッカー独自の「マネジメント」\n観が生まれてきたのではないか。彼にとって「マネジメント」とは、\n効率的な組織を作り運営することよりも、\nそのままではなかなか個性を生かせない人たちに居場所を与え、\n生き残らせるための思考戦略だったのではないか。\nそういう風に思えてきた。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eそうそう。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07CJQK8YS/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B07CJQK8YS.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07CJQK8YS/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n思想家ドラッカーを読む\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "人物",
    "url": "https://www.ikemo3.com/log/person/",
    "contents": "\u003cp\u003e(まだ)記事を作るほどでもない人について、\n自分が思ったことを書いてみます。\u003c/p\u003e\n\u003cp\u003e基準は「自分の頭の片隅にあるけれどどんな人だったか思い出せない」ことです。\u003c/p\u003e\n\u003ch2 id=\"橘玲\"\u003e橘玲\u003c/h2\u003e\n\u003cp\u003eアウト。\n上から目線の釣り師。\u003c/p\u003e\n\u003ch2 id=\"舞田敏彦\"\u003e舞田敏彦\u003c/h2\u003e\n\u003cp\u003eアウト。\n怪しい統計の使い方をしているという記述を多く見かける。\u003c/p\u003e\n\u003ch2 id=\"仲正昌樹\"\u003e仲正昌樹\u003c/h2\u003e\n\u003cp\u003eセーフ。\u003c/p\u003e\n\u003cp\u003e「思想家ドラッカーを読む」という本を見つけて、\n興味はあるけれど、著者名を見て、あれ、この人どこかで見たっけ?\nと思ったので思い出した件について書いてみる。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e100分de名著ハンナ・アーレント「全体主義の起源」\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.nhk.or.jp/meicho/famousbook/69_arendt/index.html\"\u003ehttps://www.nhk.or.jp/meicho/famousbook/69_arendt/index.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e真っ先に思い出したのが「嫌悪感」で、それが何だったかと調べたら、これだった。ただ、その「嫌悪感」はこの人ではなく、ハンナ・アーレントに対するもの。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e日本とドイツ 二つの全体主義\n\u003cul\u003e\n\u003cli\u003e確かKindle Unlimitedで読んだ。内容ちょっと覚えてない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e過去に統一教会に入信していた経歴がある(現在は脱会)。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://finalvent.cocolog-nifty.com/fareastblog/2009/11/post-a176.html\"\u003ehttp://finalvent.cocolog-nifty.com/fareastblog/2009/11/post-a176.html\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eというわけで\u003ca href=\"/theme/book/read-the-philosopher-drucker\"\u003e買って読みました\u003c/a\u003e。\u003c/p\u003e\n\u003ch2 id=\"西條剛央\"\u003e西條剛央\u003c/h2\u003e\n\u003cp\u003eアウト。\u003c/p\u003e\n\u003ch2 id=\"姜尚中\"\u003e姜尚中\u003c/h2\u003e\n\u003cp\u003e夏目漱石関連はセーフ。\n100分de名著の話は良かった。\u003c/p\u003e\n"
  }, 
  {
    "title": "iOS",
    "url": "https://www.ikemo3.com/manual/ios/",
    "contents": "\u003ch2 id=\"メールがプッシュされない\"\u003eメールがプッシュされない\u003c/h2\u003e\n\u003cp\u003eデフォルトのメールアプリでは以下の2点を確認してください。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e設定 → パスワードとアカウント → データの取得方法 で該当アカウントがプッシュになっているか\u003c/li\u003e\n\u003cli\u003eVIPリストに入っているか\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eGmailは逆に何でもプッシュするのでちょっと考えどころ・・・\u003c/p\u003e\n\u003ch2 id=\"ホーム画面ウィジェットに追加したい\"\u003eホーム画面・ウィジェットに追加したい\u003c/h2\u003e\n\u003cp\u003eAppleが買収したWorkflowを使うのが良さそうです。\u003c/p\u003e\n\u003ch2 id=\"壁紙のサイズが合わない\"\u003e壁紙のサイズが合わない\u003c/h2\u003e\n\u003cp\u003e「写真」アプリを立ち上げて画像を表示して、\nスクリーンショットを取るのが簡単なようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://enjoy.sso.biglobe.ne.jp/archives/resize_gazo/\"\u003eiPhoneで壁紙のサイズが合わないときの解決策｜エンジョイ！マガジン\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"handoff\"\u003eHandoff\u003c/h2\u003e\n\u003cp\u003eMac, iPhone, iPad, Apple Watchの間で処理を続行させる機能が、Handoffです。\u003c/p\u003e\n\u003cp\u003eこのHandoff機能ですが、呼び出し方法が変わってます。\niOSの場合は\u003cstrong\u003eアプリ切替画面\u003c/strong\u003eを出すことで、実行できます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://support.apple.com/ja-jp/ht204681#handoff\"\u003e連係機能を使って Mac、iPhone、iPad、iPod touch、Apple Watch をつなぐ - Apple サポート\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"カーソル移動\"\u003eカーソル移動\u003c/h2\u003e\n\u003cp\u003eiOS 10までは横向きにするとカーソルキーが表示されてましたが、\niOS 11以降は表示されなくなったようです。\u003c/p\u003e\n\u003cp\u003eiOS 12で一番良さそうなのは、スペース(空白)を長押しする方法です。\u003c/p\u003e\n"
  }, 
  {
    "title": "example.com",
    "url": "https://www.ikemo3.com/dic/example.com/",
    "contents": "\u003ch2 id=\"examplecomとは\"\u003eexample.comとは\u003c/h2\u003e\n\u003cp\u003e例示で使用するためのドメイン名です。\nRFCで予約されています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.iana.org/domains/reserved\"\u003eIANA — IANA-managed Reserved Domains\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e同じ目的で、例えば「.テスト」も予約されています。\u003c/p\u003e\n\u003ch2 id=\"jpドメイン\"\u003eJPドメイン\u003c/h2\u003e\n\u003cp\u003eJPドメイン名の場合は、以下のように定義されています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://jprs.jp/faq/use/\"\u003eJPドメイン名の活用について | よくある質問 | JPRS\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこちらの「例示に使用可能なドメイン名はありませんか?」に、\n「example」または「example + 1桁の数字」がつくものが\n例示に使用可能とされています。\n例えば以下のようなものです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eexample.jp\u003c/li\u003e\n\u003cli\u003eexample1.jp\u003c/li\u003e\n\u003cli\u003eexample1.ne.jp\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"例示ドメイン以外は使ってはいけない\"\u003e例示ドメイン以外は使ってはいけない\u003c/h2\u003e\n\u003cp\u003e他の人のドキュメントを見ていると、\nたまに \u003ccode\u003etest.co.jp\u003c/code\u003e, \u003ccode\u003esample.co.jp\u003c/code\u003e のようなドメインが使われていることがあります。\nこれはやってはいけないことです。\u003c/p\u003e\n\u003cp\u003eなぜなら、これらのドメインは存在する可能性があるからです。\n実際、先程の2つのドメインは存在しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.test.co.jp/\"\u003e㈲教育評価研究所/TOPページ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://sample.co.jp/\"\u003e株式会社イワイサンプル -食品サンプル・食品模型・メニューサンプルなど販促物の製造-\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e実在する会社に迷惑がかかります。\u003c/p\u003e\n"
  }, 
  {
    "title": "ときめきメモリアル対戦ぱずるだま",
    "url": "https://www.ikemo3.com/dic/tokimemo-puzzle-dama/",
    "contents": "\u003ch2 id=\"ときめきメモリアル対戦ぱずるだまとは\"\u003eときめきメモリアル対戦ぱずるだまとは\u003c/h2\u003e\n\u003cp\u003eアーケード版が一番出来が良かったゲームです。\n以下では「ときメモぱずるだま」と呼びます。\u003c/p\u003e\n\u003ch2 id=\"ゲームバランスが良い\"\u003eゲームバランスが良い\u003c/h2\u003e\n\u003cp\u003eぱずるだまシリーズは他にもやったのですが、\nこのゲームが一番出来がよいです。\nなぜかと言うと、ゲームバランスがいいからです。\u003c/p\u003e\n\u003cp\u003eさすがに各キャラ同等とまでは言えませんが\n(早乙女好雄、伊集院レイはボスキャラなのでなおさら)、\n他は明らかな強キャラ、弱キャラがなく、\n実力があればある程度カバーできました。\u003c/p\u003e\n\u003ch2 id=\"フェラーリ\"\u003eフェラーリ\u003c/h2\u003e\n\u003cp\u003e大阪の\u003ca href=\"/dic/ferrari\"\u003eフェラーリ\u003c/a\u003eというゲーセンがかつてありました。\nそのゲーセンは全て1回10円だったのですが、\n3階に置いてあったゲームの1つがこの「ときメモぱずるだま」でした。\u003c/p\u003e\n\u003cp\u003e常連は30人ほど\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eで、よく入り浸ってました。\n自分が大学を卒業して首都圏に住んでから、そして愛媛に戻ってからも\n個人的に付き合いのある、数少ないグループです。\u003c/p\u003e\n\u003ch2 id=\"アーケード版が一番良かった\"\u003eアーケード版が一番良かった\u003c/h2\u003e\n\u003cp\u003eときメモぱずるだまはPlayStation(PS)、セガサターン(SS)、\nWindows 95(Win)と移植されたのですが、出来が全然違いました。\u003c/p\u003e\n\u003cp\u003e自分はやらなかったのですが、Windows版はアーケード版と遜色ない出来でした。\n一方で、PS・SS版はアーケード版とゲーム内容が違い、\nそれ以上にかなり操作感が違い、はっきり言うと改悪でした。\nまあ単体のゲームとしては悪くないんですが、アーケード版と比べるとね。。。\u003c/p\u003e\n\u003cp\u003eそんなこんなで、有志で基盤を買いました。\n1人あたり16,000円かかったのですが、\n10円換算で元が取れるくらいプレイしました。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e某氏が作ったフェラーリランキングより\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ドメイン名",
    "url": "https://www.ikemo3.com/tags/domain-name/",
    "contents": ""
  }, 
  {
    "title": "フェラーリ",
    "url": "https://www.ikemo3.com/dic/ferrari/",
    "contents": "\u003ch2 id=\"フェラーリとは\"\u003eフェラーリとは\u003c/h2\u003e\n\u003cp\u003e大阪の日本橋(恵美須町駅)にあったゲームセンターです。\u003c/p\u003e\n\u003ch2 id=\"1プレイ10円\"\u003e1プレイ10円\u003c/h2\u003e\n\u003cp\u003e今は無くなったようですが、\n普通のゲーセンが1プレイ100円、安くて50円のところ、\nこのフェラーリは1プレイ10円に設定されていました。\n隣のゲーセンに対抗したという話らしいですが。\u003c/p\u003e\n\u003cp\u003e当然普通の設定で10円では回転率が低くて商売にならないわけで、\n難易度は最高設定にされていました。\nそのため、CPU相手ではなく、対戦ゲームが盛んでした。\u003c/p\u003e\n\u003ch2 id=\"ときメモぱずるだま\"\u003eときメモぱずるだま\u003c/h2\u003e\n\u003cp\u003e格闘ゲームの対戦も盛り上がってたみたいですが、自分がハマったのは、\nときめきメモリアル対戦ぱずるだま(ときメモぱずるだま)でした。\n当時の常連は30名ほどはいました。\u003c/p\u003e\n"
  }, 
  {
    "title": "JavaとJavaScriptの違い",
    "url": "https://www.ikemo3.com/theme/programming/diff-java-and-javascript/",
    "contents": "\u003ch2 id=\"例え\"\u003e例え\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/java/\"\u003eJava\u003c/a\u003eと\u003ca href=\"/dic/javascript/\"\u003eJavaScript\u003c/a\u003eは全然違うんですが、\nその例えってどれくらいあるかなと思って考えてみました。\u003c/p\u003e\n\u003ch2 id=\"有名どころ\"\u003e有名どころ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eメロンとメロンパンくらい違う\u003c/li\u003e\n\u003cli\u003eインドとインドネシアくらい違う\u003c/li\u003e\n\u003cli\u003e中国と中国地方くらい違う\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"その他思いついたもの\"\u003eその他思いついたもの\u003c/h2\u003e\n\u003cp\u003e既出のものもあると思いますが。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eインターネットとインターネットエクスプローラくらい違う\n\u003cul\u003e\n\u003cli\u003eしかしこれが理解できない人がJavaとJavaScriptの違いが理解できるはずない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eタコとタコスくらい違う\n\u003cul\u003e\n\u003cli\u003e「タコスとタコライスくらい」というのも。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eアンパンとアンパンマンくらい違う\n\u003cul\u003e\n\u003cli\u003e食パンとしょくぱんまんくらい違う\u003c/li\u003e\n\u003cli\u003eカレーパンとカレーパンマンくらい違う\u003c/li\u003e\n\u003cli\u003e…以下全てのキャラで作れますね。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eTODOとトドくらい違う\u003c/li\u003e\n\u003cli\u003eシャチとシャチハタくらい違う\u003c/li\u003e\n\u003cli\u003eスイカとSuicaくらい違う\u003c/li\u003e\n\u003cli\u003e鶴屋さんとちゅるやさんくらい違う\u003c/li\u003e\n\u003cli\u003eマリオとワリオくらい違う\u003c/li\u003e\n\u003cli\u003eハンバーグとハンバーガーくらい違う\u003c/li\u003e\n\u003cli\u003eお茶とお茶碗くらい違う\u003c/li\u003e\n\u003cli\u003eパンとパンダくらい違う\u003c/li\u003e\n\u003cli\u003eコーヒーとコーヒー牛乳くらい違う\u003c/li\u003e\n\u003cli\u003eみかんとみきゃんくらい違う\u003c/li\u003e\n\u003cli\u003eアイホンとiPhoneくらい違う\u003c/li\u003e\n\u003cli\u003eゲームとゲーム理論くらい違う\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"間違った使い方\"\u003e間違った使い方\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eウイルスとウイルスバスターくらい違・・・わない\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "ウイルスバスター",
    "url": "https://www.ikemo3.com/dic/virus-buster/",
    "contents": "\u003ch2 id=\"ウイルスバスターとは\"\u003eウイルスバスターとは\u003c/h2\u003e\n\u003cp\u003eウイルスと区別がつかないものです。\u003c/p\u003e\n\u003ch2 id=\"過去のやらかし\"\u003e過去のやらかし\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.inasoft.org/talk/h201401a.html\"\u003eトレンドマイクロ社より連続誤検知問題の根本原因だったウイルスバスター不具合の修正が完了した旨連絡がありました - INASOFT 管理人のふたこと\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://takagi-hiromitsu.jp/diary/20180610.html#p01\"\u003e懸念されていた濫用がついに始まった刑法19章の2「不正指令電磁的記録に関する罪」\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eこの「トレンドマイクロの暗躍」が問題。\n\u003cul\u003e\n\u003cli\u003eCPUが100%に?→少なくとも乗っ取られるような状態はない。それがあったらブラウザ側のバグである。\u003c/li\u003e\n\u003cli\u003e製品寿命も短くなり→仮にCPU 100%使ってたとしても、それが製品寿命に影響しない。影響するとしたら、PC側の問題。\u003c/li\u003e\n\u003cli\u003e個人情報を盗んで→ありえない。\u003cstrong\u003e完全にフェイクニュース\u003c/strong\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "パッケージマネージャ",
    "url": "https://www.ikemo3.com/tags/package-manager/",
    "contents": ""
  }, 
  {
    "title": "Ehime",
    "url": "https://www.ikemo3.com/tags/ehime/",
    "contents": ""
  }, 
  {
    "title": "HTTPD",
    "url": "https://www.ikemo3.com/tags/httpd/",
    "contents": ""
  }, 
  {
    "title": "iCloud",
    "url": "https://www.ikemo3.com/tags/icloud/",
    "contents": ""
  }, 
  {
    "title": "IntelliJ IDEA: Webアプリケーションのサポートを追加する",
    "url": "https://www.ikemo3.com/inverted/intellij-idea/enable-web-application-support/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eIntelliJ IDEAでWebアプリケーションのサポートを後から追加する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eULTIMATEエディションである必要があります。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eプリファレンスのPlugins設定に移動\u003c/li\u003e\n\u003cli\u003e\u0026lsquo;Java EE: EJB, JPA, Servlet\u0026rsquo;を選択して有効化\n\u003cul\u003e\n\u003cli\u003e再起動が要求されるので、再起動を行う。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e以下のページを元に、設定を行う。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.jetbrains.com/help/idea/enabling-web-application-support.html\"\u003eEnabling Web Application Support - Help | IntelliJ IDEA\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "JSDoc",
    "url": "https://www.ikemo3.com/manual/jsdoc/",
    "contents": "\u003ch2 id=\"定義方法\"\u003e定義方法\u003c/h2\u003e\n\u003cp\u003eローカル変数でも特に問題なく使えるようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/38708777/what-is-the-correct-jsdoc-syntax-for-a-local-variable\"\u003ejavascript - What is the correct JSDoc syntax for a local variable? - Stack Overflow\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"jsonを定義する方法\"\u003eJSONを定義する方法\u003c/h2\u003e\n\u003cp\u003eJSONはJavaScript的にはObjectなので、以下の3つを使うと良さそうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://usejsdoc.org/tags-namespace.html\"\u003e@namespace\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e@namespaceは必須ではないですが、必要になる場所が多そうなので。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://usejsdoc.org/tags-typedef.html\"\u003e@typedef\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://usejsdoc.org/tags-property.html\"\u003e@property\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e注意すべき点としては、JavaScriptの型は小文字で書く必要があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eobject\u003c/li\u003e\n\u003cli\u003estring\u003c/li\u003e\n\u003cli\u003earray\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "KVM",
    "url": "https://www.ikemo3.com/tags/kvm/",
    "contents": ""
  }, 
  {
    "title": "LDAP",
    "url": "https://www.ikemo3.com/dic/ldap/",
    "contents": "\u003ch2 id=\"ldapとは\"\u003eLDAPとは\u003c/h2\u003e\n\u003cp\u003e別に軽量でもないプロトコルです。\u003c/p\u003e\n\u003ch2 id=\"ldapのlightweightの意味\"\u003eLDAPのLightweightの意味\u003c/h2\u003e\n\u003cp\u003e元々はX.500という標準規格がOSIベースだったのに対し、\nTCP/IPを使ったことが「軽量」の意味のようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/X.500\"\u003eX.500 - Wikipedia\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www5e.biglobe.ne.jp/aji/3min/ex/sup10.html\"\u003e3 Minutes Networking Supplement No.10\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e現代ではX.500シリーズで見かけるのは、LDAPと、公開鍵認証で使われるX.509程度で、\n他は聞いたことないです。\u003c/p\u003e\n\u003ch2 id=\"今でも使われているが\"\u003e今でも使われているが・・・\u003c/h2\u003e\n\u003cp\u003e今でもLDAPは広く使われていますが、プログラマとしては正直、\n概念が分かりにくく、めんどくさいので使いたくない感じです。\u003c/p\u003e\n"
  }, 
  {
    "title": "P2P",
    "url": "https://www.ikemo3.com/tags/p2p/",
    "contents": ""
  }, 
  {
    "title": "RSA",
    "url": "https://www.ikemo3.com/tags/rsa/",
    "contents": ""
  }, 
  {
    "title": "Servlet",
    "url": "https://www.ikemo3.com/tags/servlet/",
    "contents": ""
  }, 
  {
    "title": "アーキテクチャ",
    "url": "https://www.ikemo3.com/tags/architecture/",
    "contents": ""
  }, 
  {
    "title": "じゃこ天",
    "url": "https://www.ikemo3.com/dic/jakoten/",
    "contents": "\u003ch2 id=\"じゃこ天とは\"\u003eじゃこ天とは\u003c/h2\u003e\n\u003cp\u003e小魚をすりつぶして揚げたものです。\n愛媛県の南予地方(宇和島市、八幡浜市)でよく作られています。\u003c/p\u003e\n\u003cp\u003eじゃこ天の特徴は、小魚を骨まですりつぶしているので、\n少しジャリジャリします。\u003c/p\u003e\n\u003cp\u003eじゃこ天は基本的にどれも美味しいのですが、\nよく実家からもらうのは、八幡浜の矢野傳さんのものです。\u003c/p\u003e\n\u003ch2 id=\"じゃこカツ\"\u003eじゃこカツ\u003c/h2\u003e\n\u003cp\u003e昔はなかった料理として、じゃこカツがあります。\nパン粉を付けて揚げるのと、野菜を入れるみたいです。\u003c/p\u003e\n\u003cp\u003eどっちも(ﾟдﾟ)ｳﾏｰです。\u003c/p\u003e\n"
  }, 
  {
    "title": "タイムゾーン",
    "url": "https://www.ikemo3.com/tags/timezone/",
    "contents": ""
  }, 
  {
    "title": "ドキュメント",
    "url": "https://www.ikemo3.com/tags/document/",
    "contents": ""
  }, 
  {
    "title": "パターン",
    "url": "https://www.ikemo3.com/tags/pattern/",
    "contents": ""
  }, 
  {
    "title": "継続的インテグレーション(CI)",
    "url": "https://www.ikemo3.com/tags/ci/",
    "contents": ""
  }, 
  {
    "title": "東京",
    "url": "https://www.ikemo3.com/tags/tokyo/",
    "contents": ""
  }, 
  {
    "title": "萌え",
    "url": "https://www.ikemo3.com/tags/moe/",
    "contents": ""
  }, 
  {
    "title": "漫画",
    "url": "https://www.ikemo3.com/tags/manga/",
    "contents": ""
  }, 
  {
    "title": "野菜",
    "url": "https://www.ikemo3.com/tags/vegetable/",
    "contents": ""
  }, 
  {
    "title": "GNU",
    "url": "https://www.ikemo3.com/tags/gnu/",
    "contents": ""
  }, 
  {
    "title": "Roger-Penrose",
    "url": "https://www.ikemo3.com/tags/roger-penrose/",
    "contents": ""
  }, 
  {
    "title": "コンテナ",
    "url": "https://www.ikemo3.com/tags/container/",
    "contents": ""
  }, 
  {
    "title": "ペンローズの階段",
    "url": "https://www.ikemo3.com/dic/penrose-stairs/",
    "contents": "\u003ch2 id=\"ペンローズの階段とは\"\u003eペンローズの階段とは\u003c/h2\u003e\n\u003cp\u003e登り続けても登れない不可能図形です。\u003c/p\u003e\n\u003ch2 id=\"獄門島の決闘\"\u003e獄門島の決闘\u003c/h2\u003e\n\u003cp\u003eこの不可能図形を始めてみたのは確かゲームブックで、\nそのたびに検索をしてたのですが、何度も検索するのも無駄なので書いておきます。\nこの本です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://tradersguild.cart.fc2.com/ca4/1131/\"\u003e怪人ラプリンスの挑戦2 獄門島の決闘 - ゲームブックのオンラインショップ トレーダーズ・ギルド\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eもう古いものでネタバレも何もないと思うのですが、\nこの最後の舞台となったのがこの不可能図形でした。\u003c/p\u003e\n"
  }, 
  {
    "title": "ロジャー・ペンローズ",
    "url": "https://www.ikemo3.com/dic/roger-penrose/",
    "contents": "\u003ch2 id=\"ロジャーペンローズとは\"\u003eロジャー・ペンローズとは\u003c/h2\u003e\n\u003cp\u003e「天才」という言葉が似合う人です。\u003c/p\u003e\n\u003ch2 id=\"業績とか仮説\"\u003e業績とか仮説\u003c/h2\u003e\n\u003ch3 id=\"エッシャーの影響を受けエッシャーに影響を与えた\"\u003eエッシャーの影響を受け、エッシャーに影響を与えた\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.ntticc.or.jp/pub/ic_mag/ic025/html/110.html\"\u003e[対談]ロジャー・ペンローズ＋佐藤文隆7/8\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%9A%E3%83%B3%E3%83%AD%E3%83%BC%E3%82%BA%E3%81%AE%E4%B8%89%E8%A7%92%E5%BD%A2\"\u003eペンローズの三角形\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%9A%E3%83%B3%E3%83%AD%E3%83%BC%E3%82%BA%E3%81%AE%E9%9A%8E%E6%AE%B5\"\u003eペンローズの階段\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%9A%E3%83%B3%E3%83%AD%E3%83%BC%E3%82%BA%E3%83%BB%E3%82%BF%E3%82%A4%E3%83%AB\"\u003eペンローズ・タイル\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ホーキングとともにブラックホールとかの研究をした\"\u003eホーキングとともにブラックホールとかの研究をした\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E7%89%B9%E7%95%B0%E7%82%B9%E5%AE%9A%E7%90%86\"\u003e特異点定理\u003c/a\u003eとか。よく知らないのでリンクだけ。\u003c/p\u003e\n\u003ch3 id=\"ツイスター理論\"\u003eツイスター理論\u003c/h3\u003e\n\u003cp\u003e最初発表されてから忘れられたけど実はいいんじゃねということで\n最近研究されているらしいです(よく知らない)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%84%E3%82%A4%E3%82%B9%E3%82%BF%E3%83%BC%E7%90%86%E8%AB%96\"\u003eツイスター理論\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"皇帝の新しい心量子脳理論\"\u003e皇帝の新しい心、量子脳理論\u003c/h3\u003e\n\u003cp\u003e自分がペンローズの名前を知ったのはこれ関係です。\n実際に読んだのはこの本です。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4480090061/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4480090061.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4480090061/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nペンローズの“量子脳”理論―心と意識の科学的基礎をもとめて (ちくま学芸文庫)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://1000ya.isis.ne.jp/0004.html\"\u003e4夜『皇帝の新しい心』ロジャー・ペンローズ|松岡正剛の千夜千冊\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分の\u003ca href=\"/dic/artificial-intelligence/\"\u003eAI\u003c/a\u003eに対する認識は、このペンローズの仮説に大きく影響を受けています。\n「意識的思考のほうが非アルゴリズム的で、かえって無意識のほうがアルゴリズム的なのではないか」\nとありますが、そう考えると自分の中ではいろいろと「辻褄が合う」ので。\u003c/p\u003e\n\u003cp\u003eここで提示された量子脳理論はそれ以来見たことなかったんですが、\n以下の番組で出たときにちょっとびっくりしました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://hh.pid.nhk.or.jp/pidh07/ProgramIntro/Show.do?pkey=001-20161209-31-05751\"\u003eＮＨＫネットクラブ　番組詳細（モーガン・フリーマン　時空を超えて・選「死後の世界はあるのか？」）\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこの件ですが、WIRED VOL.14に記載されているようです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00PVCENR8/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00PVCENR8.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00PVCENR8/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nWIRED（ワイアード）VOL.14 [雑誌]\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"宇宙の始まりと終わり\"\u003e宇宙の始まりと終わり\u003c/h3\u003e\n\u003cp\u003eそれ以降は見てなかったのですが、この本を読みました。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4105065912/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4105065912.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4105065912/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n宇宙の始まりと終わりはなぜ同じなのか\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eさっぱり分かりませんでした。\u003c/p\u003e\n\u003ch2 id=\"天才である理由\"\u003e天才である理由\u003c/h2\u003e\n\u003cp\u003eもちろん業績が素晴らしいこともあるんですが、\nペンローズは「正しいのかわからないとんでもない仮説」も出します。\n実際、量子脳理論は「トンデモ」扱いされることがあります。\u003c/p\u003e\n\u003cp\u003eしかし、一方で「ペンローズの言うことだから何かあるんだろう」と\n思わせることがあります。量子脳理論も否定されたわけではなく、\nどちらかと言えば「未科学」の領域でしょう。\u003c/p\u003e\n"
  }, 
  {
    "title": "画像",
    "url": "https://www.ikemo3.com/tags/image/",
    "contents": ""
  }, 
  {
    "title": "富豪的プログラミング",
    "url": "https://www.ikemo3.com/dic/fugouteki-programming/",
    "contents": "\u003ch2 id=\"富豪的プログラミングとは\"\u003e富豪的プログラミングとは\u003c/h2\u003e\n\u003cp\u003e増井俊之さんによって提唱された概念です。\nオリジナルは1996年(!)に書かれたようです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/p\u003e\n\u003ch2 id=\"nextstepでは\"\u003eNEXTSTEPでは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/nextstep/\"\u003eNEXTSTEP\u003c/a\u003eでは、少なくとも以下の3つはあったはずです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eウィンドウ枠のドラッグに追随\u003c/li\u003e\n\u003cli\u003eスクロールバーの移動と連動\u003c/li\u003e\n\u003cli\u003e多段undo\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eファイルセーブはなかったかな。。。検索実行はあったかも。\u003c/p\u003e\n\u003ch2 id=\"プログラマーに必要な心構え\"\u003eプログラマーに必要な心構え\u003c/h2\u003e\n\u003cp\u003eGUIについてはどれも「当たり前」になりましたが、\nプログラミングについてはまだまだ十分認識されている感じがしないです\n(少なくとも自分が見る限り)\u003c/p\u003e\n\u003cp\u003e例えばこれです。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e条件が変わる度にすべての計算や表示を行なう\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e再表示が必要な場所だけ書き直ししたり、\n出力のバッファリングをしたりする貧乏性な工夫はバグのもとになるので行なわず、\n条件が変わる度に計算を再実行したり全体を書き直したりします。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e「(コンピュータが)1度行った作業は行わせない」というのは甘い罠で、\nだいたいにおいて、バグや生産性の低下をもたらします。\nちゃんと設計できる、スキルの高いプログラマーならいいんですが。。。\u003c/p\u003e\n\u003ch2 id=\"気にするのはオーダーだけ\"\u003e気にするのはオーダーだけ\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/nextstep/\"\u003eNEXTSTEP\u003c/a\u003eが実現していることが「当たり前」な自分にとって、\nこの富豪的プログラミングは馴染み深く、\nむしろ、他の人を見て「ケチくさい」と思うことが多いです(今でも)。\u003c/p\u003e\n\u003cp\u003e自分がコンピュータ資源を気にするのは、\n基本的には「計算量(オーダー)」くらいです。\n例えば\u003ca href=\"/dic/java/\"\u003eJava\u003c/a\u003eのMapを回すときは、keySetではなく、entrySetを使うくらいです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eソースコードより。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "【失敗】Google Chrome拡張でメールを送る方法",
    "url": "https://www.ikemo3.com/inverted/google-chrome-extension/send-mail/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eGoogle Chrome拡張で、SMTPによる送信を行いたくて、\nいろいろ試してみました。\u003c/p\u003e\n\u003cp\u003eもちろん何かのWebサービスを使えば可能なので、\nそれを使わないことが前提です。\u003c/p\u003e\n\u003ch3 id=\"webサービスを使うなら\"\u003eWebサービスを使うなら\u003c/h3\u003e\n\u003cp\u003e個人的に使うことを前提とするならば、Google Apps Scriptで実現できました。\n一般向けに公開できるかどうかはこれから調査する予定です。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e現状の結論としては無理そうな感じです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eSMTP用のライブラリとして\u003ca href=\"https://github.com/emailjs/emailjs-smtp-client\"\u003eemailjs-smtp-client\u003c/a\u003eを使ってみた。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/emailjs/emailjs-tcp-socket\"\u003eemailjs-tcp-socket\u003c/a\u003eという別のライブラリに依存している。\n\u003cul\u003e\n\u003cli\u003e自前でNode.js、Chromeなどをチェックしているので、Browserifyの場合は\u003ccode\u003e--dg=false\u003c/code\u003eオプションが必要。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eこのライブラリは、Google Chromeの\u0026rsquo;chrome.socket\u0026rsquo;または\u0026rsquo;chrome.sockets\u0026rsquo;があるかどうかのチェックをしている。\u003c/li\u003e\n\u003cli\u003eしかし、これらのAPIはChrome Apps用のAPI。そして、Chrome Appsは終了することになった。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003e拡張機能側でchrome.socket(s)は使えなさそうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://bugs.chromium.org/p/chromium/issues/detail?id=152875\"\u003e152875 - chrome.socket is not usable from extensions - chromium - Monorail\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eあとはデスクトップアプリと連携とかではできるはずですが、\nそこまでやるならWeb APIでメール送るのを検討した方がいいので。。。\u003c/p\u003e\n"
  }, 
  {
    "title": "環太平洋パートナーシップ(TPP)",
    "url": "https://www.ikemo3.com/dic/tpp/",
    "contents": "\u003ch2 id=\"環太平洋パートナーシップtppとは\"\u003e環太平洋パートナーシップ(TPP)とは\u003c/h2\u003e\n\u003cp\u003e怪しい陰謀論ばかりでネットではまともに議論がされてないものです。\nなので、ここでは深入りしません。\u003c/p\u003e\n\u003ch2 id=\"著作権法に関わる変更点\"\u003e著作権法に関わる変更点\u003c/h2\u003e\n\u003cp\u003e赤松健先生が同人活動(二次著作物)について非親告罪になるのではと懸念していて、\nロビー活動をしてたのですが、結果として「海賊版」が非親告罪になったくらいで、\n同人活動には影響なさそうです(現状と同じ)。\u003c/p\u003e\n\u003ch3 id=\"著作権法\"\u003e著作権法\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://elaws.e-gov.go.jp/search/elawsSearch/elaws_search/lsg0500/detail?lawId=345AC0000000048\u0026amp;openerCode=1\"\u003e著作権法\u003c/a\u003eの「未施行」タブに、\n「\u003ca href=\"http://elaws.e-gov.go.jp/search/elawsSearch/elaws_search/lsg0500/detail/345AC0000000048_20271231_428AC0000000108/0?revIndex=4\u0026amp;lawId=345AC0000000048\u0026amp;openerCode=1\"\u003e環太平洋パートナーシップ協定が日本国について効力を生ずる日\u003c/a\u003e」という記述があります。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e第百二十三条　第百十九条、第百二十条の二第三号及び第四号、\n第百二十一条の二並びに前条第一項の罪は、\n告訴がなければ公訴を提起することができない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e２　前項の規定は、次に掲げる行為の対価として財産上の利益を受ける目的\n又は有償著作物等の提供若しくは提示により\n著作権者等の得ることが見込まれる利益を害する目的で、\n次の各号のいずれかに掲げる行為を行うことにより犯した\n第百十九条第一項の罪については、適用しない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e一　有償著作物等について、原作のまま複製された複製物を公衆に譲渡し、\n又は原作のまま公衆送信（自動公衆送信の場合にあつては、送信可能化を含む。\n次号において同じ。）を行うこと（当該有償著作物等の種類及び用途、\n当該譲渡の部数、当該譲渡又は公衆送信の態様その他の事情に照らして、\n当該有償著作物等の提供又は提示により著作権者等の得ることが見込まれる\n利益が不当に害されることとなる場合に限る。）。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e二　有償著作物等について、原作のまま複製された複製物を公衆に譲渡し、\n又は原作のまま公衆送信を行うために、\n当該有償著作物等を複製すること（当該有償著作物等の種類及び用途、\n当該複製の部数及び態様その他の事情に照らして、\n当該有償著作物等の提供又は提示により著作権者等の得ることが\n見込まれる利益が不当に害されることとなる場合に限る。）。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e内閣官房のサイトに以下のページがありますが、\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://current.ndl.go.jp/node/30963\"\u003e内閣官房TPP政府対策本部、「環太平洋パートナーシップ協定の締結に伴う関係法律の整備に関する法律案」に関する資料等をウェブサイトに掲載 | カレントアウェアネス・ポータル\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこのページのリンク先、PDFで\u003ca href=\"http://www.cas.go.jp/jp/houan/160308/siryou1.pdf\"\u003e環太平洋パートナーシップ協定の締結に伴う関係法律の整備に関する法律案の概要\u003c/a\u003eという資料があり、3ページ目にもっとはっきりと書かれています。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e非親告罪となる侵害行為の例\u003c/th\u003e\n          \u003cth\u003e親告罪のままとなる行為の例\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e販売中の漫画や小説本の海賊版を販売する行為\u003c/td\u003e\n          \u003ctd\u003e漫画等の同人誌をコミケで販売する行為\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e映画の海賊版をネット配信する行為\u003c/td\u003e\n          \u003ctd\u003e漫画のパロディをブログに投稿する行為\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n"
  }, 
  {
    "title": "赤松健",
    "url": "https://www.ikemo3.com/dic/ken-akamatsu/",
    "contents": "\u003ch2 id=\"赤松健とは\"\u003e赤松健とは\u003c/h2\u003e\n\u003cp\u003e漫画を描いている実業家です。\u003c/p\u003e\n\u003ch2 id=\"実業家として\"\u003e実業家として\u003c/h2\u003e\n\u003cp\u003e普通は「漫画屋」というと、「漫画家」と比べて蔑称的な響きがあるのですが、\n赤松先生に関しては、むしろ敬称ですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://ebook.itmedia.co.jp/ebook/articles/1012/08/news020_4.html\"\u003eＪコミで扉を開けた男“漫画屋”赤松健――その現在、過去、未来（前編） (4/4) - ITmedia eBook USER\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eコミックスの巻末に制作風景があるのですが、\nちゃんと「システム化」しています。\n漫画家は才能でばーんと描き切るみたいなイメージがあって、\nそういう漫画家も多いのですが、自分はこの「システム化」が面白いと感じました\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eJコミ以降、\u003ca href=\"/dic/tpp/\"\u003eTPP\u003c/a\u003eのためのロビー活動など、\n漫画以外での活動が目立っていますが、\nびっくりすると同時に、赤松先生らしいよなぁと思いました。\u003c/p\u003e\n\u003ch2 id=\"漫画家として\"\u003e漫画家として\u003c/h2\u003e\n\u003cp\u003eいくら実業家の才能があると言っても、あくまで本業は漫画家です。\u003c/p\u003e\n\u003cp\u003e初連載が「A・Iが止まらない!」だったのですが、\n当時読んでた週刊少年マガジンでは、短期連載に終わりました。\n自分はコンピュータ好きで楽しく読んでたので残念だったのですが、\n大学入ってしばらくして、実は連載が続いていると知って、喜びました。\u003c/p\u003e\n\u003cp\u003eその後「ラブひな」の全部「魔法先生ネギま!」の途中まで読んでます。\n途中なのは、\u003ca href=\"/dic/job-offer-cancellation/\"\u003e内定取消\u003c/a\u003eとかで、漫画を読む習慣自体失われてしまったので。。。\u003c/p\u003e\n\u003ch2 id=\"ゲーム開発者\"\u003eゲーム開発者\u003c/h2\u003e\n\u003cp\u003e漫画家を始める前、高校生のときにゲームを作ってたみたいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.4gamer.net/news/history/2006.03/20060322143941detail.html\"\u003eプロジェクトEGG，「パラディン」（PC-8801版）を発売\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e「こち亀」や「ゴルゴ13」の制作システムもしっかりしているようで、実は他にも結構あるのかもしれません。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Gmail",
    "url": "https://www.ikemo3.com/tags/gmail/",
    "contents": ""
  }, 
  {
    "title": "Scrapbox",
    "url": "https://www.ikemo3.com/manual/scrapbox/",
    "contents": "\u003ch2 id=\"記法\"\u003e記法\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://scrapbox.io/help-jp/%E8%A8%98%E6%B3%95\"\u003e記法 - Scrapbox ヘルプ\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e見出し: 記法はない。太字で代用。\u003c/li\u003e\n\u003cli\u003e文字修飾\n\u003cul\u003e\n\u003cli\u003e太字: \u003ccode\u003e[[太字]]\u003c/code\u003e または \u003ccode\u003e[* 太字]\u003c/code\u003e、後者は\u003ccode\u003e*\u003c/code\u003eを増やせばもっと太字になる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eコード\n\u003cul\u003e\n\u003cli\u003eインライン: バッククオートで囲む(Markdownと同じ)\u003c/li\u003e\n\u003cli\u003eブロック: 以下のいずれか。自動で少しインデントされる。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecode:言語名\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecode:ファイル名\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecode:ファイル名(言語名)\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"その他覚えておくと良いこと\"\u003eその他覚えておくと良いこと\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eScrapbox内のURLをペーストすると、自動的にリンクになる。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://scrapbox.io/help-jp/%E3%83%9A%E3%83%BC%E3%82%B8%E3%82%92%E3%83%94%E3%83%B3%E6%AD%A2%E3%82%81%E3%81%99%E3%82%8B\"\u003eページのピン止め\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eソートするにはピン止め解除をする\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ツール\"\u003eツール\u003c/h2\u003e\n\u003ch3 id=\"ブックマークレット\"\u003eブックマークレット\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://rashita.net/blog/?p=24448\"\u003eScrapboxに本の情報を取り込むブックマークレットを作りました – R-style\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"porter\"\u003ePorter\u003c/h3\u003e\n\u003cp\u003eiPhone用のアプリ。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://scrapbox.io/porterapp/\"\u003ePorter for Scrapbox オンラインヘルプ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例えば、タブ文字を挿入する場合は以下のように定義します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e(\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  document.\u003cspan style=\"color:#a6e22e\"\u003eexecCommand\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;insertText\u0026#39;\u003c/span\u003e, \u003cspan style=\"color:#66d9ef\"\u003efalse\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\\t\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e})();\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07GJFBWWZ/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B07GJFBWWZ.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07GJFBWWZ/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nScrapbox情報整理術\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "SMTP",
    "url": "https://www.ikemo3.com/manual/smtp/",
    "contents": "\u003ch2 id=\"サーバの設定\"\u003eサーバの設定\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGmail: \u003ca href=\"https://support.google.com/mail/answer/7126229?hl=ja\"\u003eIMAP を使用して他のメール クライアントで Gmail をチェックする - Gmail ヘルプ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eiCloud: \u003ca href=\"https://support.apple.com/ja-jp/HT202304\"\u003eiCloud メールクライアント向けのメールサーバ設定 - Apple サポート\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"クライアントライブラリ\"\u003eクライアントライブラリ\u003c/h2\u003e\n\u003ch3 id=\"javascript\"\u003eJavaScript\u003c/h3\u003e\n\u003cp\u003e以下を試してみました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/emailjs/emailjs-smtp-client\"\u003eemailjs/emailjs-smtp-client: SMTP Client for node.js and browser runtimes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下の例を参考にしました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gist.github.com/mauron85/b7f11144cbebf111678a04502c5aa748\"\u003esendMailFromBrowser.js\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNode.jsで動かす時は、以下のように読み込みます。\n(他の方法があるかもしれませんが)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eSmtpClient\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003erequire\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;emailjs-smtp-client\u0026#39;\u003c/span\u003e).\u003cspan style=\"color:#66d9ef\"\u003edefault\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eGmailで送信する場合は以下のようにします。\n(SMTPSを使用)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehost\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;smtp.gmail.com\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eport\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e587\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003epassword\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;...\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003euser\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;...@gmail.com\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eoptions\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003erequireTLS\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eauth\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003euser\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003euser\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003epass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003epassword\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e};\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclient\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eSmtpClient\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003ehost\u003c/span\u003e, \u003cspan style=\"color:#a6e22e\"\u003eport\u003c/span\u003e, \u003cspan style=\"color:#a6e22e\"\u003eoptions\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// onidleは送信後にも呼び出されることに注意\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eclient\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eonidle\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e() { ... }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eclient\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eonready\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e() { ... }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eclient\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eonerror\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e() { ... }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eclient\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eondone\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e() { ... }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eclient\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003econnect\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "CSS",
    "url": "https://www.ikemo3.com/manual/css/",
    "contents": "\u003ch2 id=\"セレクタ\"\u003eセレクタ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e属性セレクタ: \u003ca href=\"https://developer.mozilla.org/ja/docs/Web/CSS/Attribute_selectors\"\u003e属性セレクター - CSS: カスケーディングスタイルシート | MDN\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e擬似クラス: \u003ca href=\"https://developer.mozilla.org/ja/docs/Web/CSS/Pseudo-classes\"\u003e疑似クラス (Pseudo-classes) - CSS: カスケーディングスタイルシート | MDN\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e疑似要素: \u003ca href=\"https://developer.mozilla.org/ja/docs/Web/CSS/Pseudo-elements\"\u003e疑似要素 (Pseudo-elements) - CSS: カスケーディングスタイルシート | MDN\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"単位\"\u003e単位\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/CSS/Length\"\u003e\u003c!-- raw HTML omitted --\u003e - CSS: カスケーディングスタイルシート | MDN\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003eem: font-sizeの計算値\u003c/li\u003e\n\u003cli\u003erem(root-em): ルート要素のfont-sizeの計算値\n\u003cul\u003e\n\u003cli\u003eremはほぼ100%のブラウザで使用可能(\u003ca href=\"https://caniuse.com/#feat=rem\"\u003eCan I use\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Ibm",
    "url": "https://www.ikemo3.com/tags/ibm/",
    "contents": ""
  }, 
  {
    "title": "Ibm-Japan",
    "url": "https://www.ikemo3.com/tags/ibm-japan/",
    "contents": ""
  }, 
  {
    "title": "VLIW",
    "url": "https://www.ikemo3.com/dic/vliw/",
    "contents": "\u003ch2 id=\"vliwとは\"\u003eVLIWとは\u003c/h2\u003e\n\u003cp\u003eCPUのアーキテクチャで、命令長を長くして複数の命令を詰め込み、\n並列実行することで速度を向上させようとしたアーキテクチャのことです。\u003c/p\u003e\n\u003ch2 id=\"発想がそもそも間違ってた\"\u003e発想がそもそも間違ってた?\u003c/h2\u003e\n\u003cp\u003e自分は\u003ca href=\"/dic/itanium/\"\u003eItanium\u003c/a\u003eのEPICアーキテクチャが間違いだと書いたのですが、\nVLIW自体が間違っていたのではという話を見つけました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://ascii.jp/elem/000/000/754/754950/\"\u003eASCII.jp：CPU黒歴史 改めて振り返るCrusoe/Efficeon失敗の理由 (1/4)｜ロードマップでわかる！当世プロセッサー事情\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e正直自分としては理解はするけれど同意はしないという感じですね。\n自分は使ったことないのですが、\nCrusoeは最初はそれなりに商業的に成功してたのと\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\nCrusoeは静的なコンパイラではなく、JIT(Just-In-Time)コンパイラを使っていたため、\n\u003ca href=\"/dic/static-architecture/\"\u003e静的アーキテクチャ\u003c/a\u003eとは言えないからです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://en.wikipedia.org/wiki/File:Itanium_Sales_Forecasts_edit.png\"\u003eFile:Itanium Sales Forecasts edit.png - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "信頼できる情報源",
    "url": "https://www.ikemo3.com/log/reliable-sources/",
    "contents": "\u003cp\u003e情報源とそれに対する気づいたところを書いていきます。\nここに載っているから信頼できる、あるいはその逆ということはありません。\n(文書では書いています)\u003c/p\u003e\n\u003ch2 id=\"通信用語の基礎知識\"\u003e通信用語の基礎知識\u003c/h2\u003e\n\u003cp\u003eVLIWの記事を書いているときにふと検索したところ、\nいろいろ問題があるサイトという記述を発見したので、\n2件の記事(1件は公開前)から削除しました。\n(IT系の記事しか見てなかったので気づかなかった)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://dic.nicovideo.jp/a/%E9%80%9A%E4%BF%A1%E7%94%A8%E8%AA%9E%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98\"\u003eニコニコ大百科\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://dic.pixiv.net/a/%E9%80%9A%E4%BF%A1%E7%94%A8%E8%AA%9E%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98\"\u003eピクシブ百科事典\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e偏った「オレオレ辞書」でも自分は別にいいんですが、\n\u003ca href=\"/dic/extremist/\"\u003e過激派\u003c/a\u003eには近寄らないと決めてるので。\u003c/p\u003e\n"
  }, 
  {
    "title": "日本IBMで自分が経験したこと",
    "url": "https://www.ikemo3.com/theme/personal/ibm-japan/",
    "contents": "\u003ch2 id=\"元となったツイート\"\u003e元となったツイート\u003c/h2\u003e\n\u003cp\u003eこれです。元のツイートは自分です。\nTogetterは自分の中では有害サイトという認識ですが、\nこのまとめについては許可しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://togetter.com/li/271086\"\u003eとあるブラック企業について告発 - Togetter\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただ、Togetterは有害サイトなのと、\n書き換えができないので、改めてまとめています。\u003c/p\u003e\n\u003cp\u003e自分がいたのはかつて神奈川県大和市にあった、\n大和ソフトウェア開発研究所です。通称YSL。\u003c/p\u003e\n\u003ch2 id=\"2004年1月-統合atmの障害\"\u003e2004年1月: 統合ATMの障害\u003c/h2\u003e\n\u003cp\u003e2038年問題として広く知られる事になった、この障害です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://tech.nikkeibp.co.jp/it/members/SI/ITARTICLE/20040226/1/\"\u003e統合ATMが陥った“テスト不足”の落とし穴 | 日経 xTECH（クロステック）\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこのときのコードは実際に見たのですが、\n書いてあるとおり「両者のタイムスタンプを足して2で割る」で間違いないです。\u003c/p\u003e\n\u003cp\u003e「自分の部門の隣の部署」と書いている通り、\n自分自身は直接は関わってないのですが、影響がありました。\u003c/p\u003e\n\u003cp\u003e余談ですが、このとき、自分は確か長野にスキーに行ってましたw\n金融系の部署だったのですが、年末年始はあまり遠くに行かないようにと\n言われてた記憶があります。トラブルが起きたのは1/11なので、\n年始というには遅いですね。\u003c/p\u003e\n\u003ch2 id=\"2004年1月-or-2月\"\u003e2004年1月 or 2月\u003c/h2\u003e\n\u003ch3 id=\"sさん\"\u003eSさん\u003c/h3\u003e\n\u003cp\u003e「研究所内に，テスト・ケースなどをレビューする専門部隊を設置した」\nとのことで、うちの部署からはSさんが引き抜かれました。\n「自分のメンターとも言える人」ということですが、\n確か正式にメンターだったはず(制度があったなら)。\n年齢は6歳くらい上だったかな。。。\n自分とLinuxカーネル読書会とかやって、いろいろお世話になりました。\u003c/p\u003e\n\u003ch3 id=\"全ソースを見直せ\"\u003e全ソースを見直せ\u003c/h3\u003e\n\u003cp\u003e「全ソースを見直せ」はみずほ銀行です(さすがにもういいかな)。\nまあ直接聞いたわけではないのですが、\n同様のバグが他にないかチェックしろとのこと。\n今ならJavaでIDE使えばだいぶ楽なのですが、\n当時はC言語なのでかなり苦労した覚えがあります。\u003c/p\u003e\n\u003ch2 id=\"2004年7月\"\u003e2004年7月\u003c/h2\u003e\n\u003cp\u003e今から思えばこのときには病んでますね。\u003c/p\u003e\n\u003ch3 id=\"不遇な扱い\"\u003e不遇な扱い\u003c/h3\u003e\n\u003cp\u003e「不遇な扱い」というのは、自分で希望したわけでもなく、\nIBMの中では地味な部門で(内永が存在忘れかけてたことあり)、\nIBMの他のブランド(WebSphere, DB2, Lotus, Tivoli)やTRL(基礎研究所)と比べて、\n何やってるんだろうという気持ちがずっと強かったです。\u003c/p\u003e\n\u003cp\u003e後から知ったんですが、実はうちは開発ができるだけ「マシ」という話を聞きました。\n他の部署はソフトウェア開発といいつつ、\nテストの末端みたいな仕事ばかりだったらしいです。\u003c/p\u003e\n\u003ch3 id=\"innovation-days\"\u003eInnovation Days\u003c/h3\u003e\n\u003cp\u003eInnovation Daysのアイデアコンテストのときは、\n友人にも手伝ってもらって、朝までやってた記憶もあります。\u003c/p\u003e\n\u003cp\u003eちなみに、その時のアイデアは、コンピュータ将棋に関することです。\n具体的には覚えてないのですが。\u003c/p\u003e\n\u003cp\u003eまあ、「お遊び」とは言え、主催者が自分で応募して当選というのは\n不誠実な行為だと思います。\u003c/p\u003e\n\u003ch3 id=\"倒れた\"\u003e倒れた\u003c/h3\u003e\n\u003cp\u003eメールを見たときに、ショックを受けて、\nそのまま机に伏せたと思います(記憶が曖昧、頭を後ろに反り返ったかも)。\u003c/p\u003e\n\u003cp\u003eその後、PMだったKさん(後述)に連れられて、\n近く(南林間だったかな)の病院に行きました。\nその時は手が震えるとか何かで、そういう薬をもらったかなと思います。\u003c/p\u003e\n\u003cp\u003e「PMだったKさん」というのは、「その時の上司(所属長)T」という表現が\nあったからです。KさんはPMだったこともあれば、\n所属長(Line Manager)だったこともあるので。\n書いてて思ったんですが、「別の部署のLine Manager」だったかもしれません。\u003c/p\u003e\n\u003ch3 id=\"2004年11月\"\u003e2004年11月\u003c/h3\u003e\n\u003cp\u003e「さらに他のストレスがかかる仕事に入った」というのは、\nC++で書かれたコードに問題がないかの検証でした。\n確かDoxygenを使ってチェックしたんですが、\nC++なので、問題がないことを証明するのは難しいです。\u003c/p\u003e\n\u003cp\u003eこの経験があるので、Javaは楽っすーという感じです。\nリフレクションがない限り、Javaは呼び出し元がきっちりとチェックできるので。\u003c/p\u003e\n\u003cp\u003eこのときの仕事がかなりきつく、\n2週間で不眠症になってしまい、心療内科に通うことになりました。\nもしかしたらパワハラかなーと今ちらっと思ったんですが、\n悪意があって仕事を振ってくる人は記憶に無いので、\nたぶん真面目にやりすぎたんですね。\u003c/p\u003e\n\u003ch3 id=\"2004年の評価\"\u003e2004年の評価\u003c/h3\u003e\n\u003cp\u003e日本IBMでは評価が良い順に1,2+,2,3,4となっていた記憶があります。\nA,B+,B,C,Dだった時期があったかもしれませんがそこは曖昧。\u003c/p\u003e\n\u003cp\u003e結局2+以上を取ったことはないです。\n休職したときは3でしたが、他は2でした。\u003c/p\u003e\n\u003ch3 id=\"所属長t\"\u003e所属長T\u003c/h3\u003e\n\u003cp\u003eその人の顔とか表情とかは覚えているのですが、\n「話した記憶」というのが全くないんですね。\nなので、ああいう書き方になったんだと思います。\n(昔のノート引っ張り出したらもっと正確な情報が出てくるかもしれませんが)\u003c/p\u003e\n\u003ch3 id=\"20022004の仕事\"\u003e2002〜2004の仕事\u003c/h3\u003e\n\u003cp\u003e先にも書いたとおり、うちの部署は開発ができるだけマシらしいですが、\n自分がコードを書いた記憶がほとんどないです。\nそういう事情があって、プライベートでは\u003ca href=\"/dic/kita/\"\u003eKita\u003c/a\u003eの開発とかをしてました。\u003c/p\u003e\n\u003cp\u003e結局、\u003cstrong\u003eYSLにはまともな仕事はほとんどなかった\u003c/strong\u003eというのが実情だったようです。\nその後にちょっと関わったLTSでも苦労しているという話を聞いたので。\u003c/p\u003e\n\u003ch3 id=\"内永の20022004年\"\u003e内永の2002〜2004年\u003c/h3\u003e\n\u003cp\u003eはっきりとは覚えていませんが、2002年に以下のようなことを言いました。\n「2002年は〜〜ラボ」「2003年は〜〜ラボ」〜\n「2005年はチャンピオンラボになる」と。\u003c/p\u003e\n\u003cp\u003e「チャンピオンラボ」という表現だけははっきり覚えています。\nあとは4年か5年計画だった記憶があります。\u003c/p\u003e\n\u003cp\u003eまあ結果は言うまでもないですが、YSL自体がなくなりました。\u003c/p\u003e\n\u003ch3 id=\"2005年の所属長\"\u003e2005年の所属長\u003c/h3\u003e\n\u003cp\u003e確か先に書いたSさんだったはず。\u003c/p\u003e\n\u003ch3 id=\"スピークアップ\"\u003eスピークアップ\u003c/h3\u003e\n\u003cp\u003eどうやら「あんなものは利用してはいけない」らしいですｗ\n報復されるという噂もありますが、それに関してはないし、\n少なくとも、他の\u003c/p\u003e\n\u003ch3 id=\"あと続く\"\u003eあと続く\u003c/h3\u003e\n\u003cp\u003eまた後で書きます。。。\u003c/p\u003e\n"
  }, 
  {
    "title": "Back to the Mac",
    "url": "https://www.ikemo3.com/dic/back-to-the-mac/",
    "contents": "\u003ch2 id=\"back-to-the-macとは\"\u003eBack to the Macとは\u003c/h2\u003e\n\u003cp\u003eMac OS X Lion(10.7)の発表時のテーマです。\u003c/p\u003e\n\u003ch2 id=\"統合でなく還流\"\u003e統合でなく還流\u003c/h2\u003e\n\u003cp\u003e何でこんな記事を書いているのかと言うと、\nWWDC 2018で「iOSとmacOSは統合しない」という「噂」に対し、\nデカデカと「No.」が書かれたのが面白かったからです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\nその「No.」は、以下のページのトップにある動画の、\n2:04:20頃、正確には2:04:51から見ることができます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.apple.com/apple-events/june-2018/\"\u003eApple Events - WWDC Keynote, June 2018 - Apple\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e将来統合する可能性はゼロではないと思いますが(未来は予測できない)、\n統合するかどうかに関わらず、「やれることからやる」でいいと思うんですよね。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e普段は\u003ca href=\"/dic/no-news/\"\u003eニュースは見ない\u003c/a\u003eのですが、WWDCの発表内容は例外の1つです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Kickstarter",
    "url": "https://www.ikemo3.com/dic/kickstarter/",
    "contents": "\u003ch2 id=\"kickstarterとは\"\u003eKickstarterとは\u003c/h2\u003e\n\u003cp\u003e自分が\u0026rsquo;fraud\u0026rsquo;, \u0026lsquo;scam\u0026rsquo;という単語を覚えたきっかけです。\u003c/p\u003e\n\u003ch2 id=\"詐欺し放題\"\u003e詐欺し放題\u003c/h2\u003e\n\u003cp\u003eつまり、詐欺し放題のプラットフォームです。\n自分も詐欺に遭いました(少額ですが)。\nまあ、日本ではMorphy Oneという有名な失敗プロジェクトがあるので、\nまずはお試しのつもりだったんですが。\n検索すると、数年遅れでも届けばマシみたいです。\u003c/p\u003e\n\u003cp\u003eもちろん、\u003ca href=\"/dic/stock/\"\u003e株式\u003c/a\u003eと同様に、\nプロジェクトが成功するかどうかは保証されていません。\n問題は、プロジェクトが成功するかどうか、保証があるかどうかではなく、\n情報開示の不透明さにあります。\u003c/p\u003e\n\u003cp\u003e逆に言えば、「我々はこれこれのためにこれだけお金を使ったが、\n完成させることができなかった。」というのが明確であれば、\n完成の義務も、返金の義務もなくて構わないと思います。\u003c/p\u003e\n\u003ch2 id=\"プラットフォームには責任はないか\"\u003eプラットフォームには責任はないか?\u003c/h2\u003e\n\u003cp\u003e1弁護士の見解ですが、トラブルが生じたときは解決の手助けをするのが\n妥当というコメントがついています。\nまあ、中抜きをするだけのプラットフォームなら意味がないので、\nそれくらいの義務はあると思いますね。\u003c/p\u003e\n"
  }, 
  {
    "title": "Osx",
    "url": "https://www.ikemo3.com/tags/osx/",
    "contents": ""
  }, 
  {
    "title": "ノートブック",
    "url": "https://www.ikemo3.com/log/notebook/",
    "contents": "\u003ch2 id=\"ノートの書き方\"\u003eノートの書き方\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eアプリ: Noteshelf 2を使用。すべて手書き。\u003c/li\u003e\n\u003cli\u003eノートブック: 基本的には2冊\n\u003col\u003e\n\u003cli\u003eタスク管理用\n\u003cul\u003e\n\u003cli\u003e考え方は\u003ca href=\"/dic/do-it-tomorrow/\"\u003eマニャーナの法則\u003c/a\u003eから影響\u003c/li\u003e\n\u003cli\u003e記法はバレットジャーナルに影響\u003c/li\u003e\n\u003cli\u003e運用\n\u003cul\u003e\n\u003cli\u003e1日1ページで、やる予定のタスクを前日に洗い出す。\u003c/li\u003e\n\u003cli\u003eMIT(Most Important Task)のマークを付ける\n\u003cul\u003e\n\u003cli\u003eMostと言いつつ複数ついてたりするので試行錯誤中。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eタスクは終わったら色で塗る(後述)\u003c/li\u003e\n\u003cli\u003e今のところ、仕事/プライベート/未来で分けてます。ここも試行錯誤中。\u003c/li\u003e\n\u003cli\u003e未完了タスクは基本的に新しいものに移し替えてます。残したままにしておくとストレスが溜まるので止めました。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eアイデア用\n\u003cul\u003e\n\u003cli\u003e1テーマ1ページで無地。\u003c/li\u003e\n\u003cli\u003e最初は箇条書きだったけど、「深く考えるための最強のノート術」という本を読んで、箇条書きは良くないと思ってスカスカにしてます。こっちの方が良いです。\u003c/li\u003e\n\u003cli\u003eタイトルも絞り込まない方がアイデアが出る感じ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003e色分け\n\u003cul\u003e\n\u003cli\u003e黒: 基本的にはこれ。太さは細い方から2番目。\u003c/li\u003e\n\u003cli\u003e緑: 目立たせたいところはこれ。太さは黒と同じ。\u003c/li\u003e\n\u003cli\u003e黄色(塗り): 完了したタスクに塗ることで、ひと目で分かるようにしてます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eその他\n\u003cul\u003e\n\u003cli\u003eタスクは箇条書きでもいいかなぁと思ったんですが、「バブルマップ」の方がいいかも。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.ideaxidea.com/archives/2005/10/_todo.html\"\u003eバブルマップのすすめ ～ ストレスすっきり解消型ToDo管理手法 ～ | IDEA*IDEA\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eやる気がでないときは整理するか、「とにかく始めてみる」でうまくいきそうな感じです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "詐欺",
    "url": "https://www.ikemo3.com/tags/fraud/",
    "contents": ""
  }, 
  {
    "title": "自己管理",
    "url": "https://www.ikemo3.com/dic/self-management/",
    "contents": "\u003ch2 id=\"自己管理とは\"\u003e自己管理とは\u003c/h2\u003e\n\u003cp\u003e「\u003ca href=\"/dic/task-management/\"\u003eタスク管理\u003c/a\u003e」とかの上位概念です。\u003c/p\u003e\n\u003ch2 id=\"なぜそう思ったか\"\u003eなぜそう思ったか\u003c/h2\u003e\n\u003cp\u003e今手元にあるiPadに手書きされている、\n「ノートの取り方」をどこに書けばいいか迷ったからです。\nこれって少なくとも「タスク管理」ではありませんが、\n「タスク管理」とは無関係ではありません。\u003c/p\u003e\n\u003cp\u003eじゃあ、「タスク管理」を含む上位概念とは何か?\nと考えて、まず見つけたのがこの記事の「セルフマネジメント」。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://rashita.net/blog/?p=19937\"\u003eタスクの管理 [タスク管理概論] – R-style\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれで十分いいかなとも思ったのですが、もうちょっと考えてみたいと思って、\nふと目についたのがドラッカーの「プロフェッショナルの条件」。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300593/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478300593.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300593/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nプロフェッショナルの条件――いかに成果をあげ、成長するか (はじめて読むドラッカー (自己実現編))\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eこの本のPart3が「自らをマネジメントする」となっているので、\nself managementでいいかなと思ったのですが、\nもうちょっと欲しいなと思って検索してみたら、\n\u0026ldquo;Managing Oneself\u0026quot;というタイトルでドラッカーが論文を書いていたと知りました。\u003c/p\u003e\n\u003cp\u003eでも\u0026quot;Managing Oneself\u0026quot;という表現はちょっとあまり使わないと思ったので、\nGoogle翻訳にかけてみたところ、やっぱりself managementと同じ意味なので、\nまあこれでいいかなと納得しました。\n漢字にしたのは、自分が何となく漢字の方がいいかなと思っただけです。\u003c/p\u003e\n"
  }, 
  {
    "title": "ブラウザ自動操作",
    "url": "https://www.ikemo3.com/dic/browser-automation/",
    "contents": "\u003ch2 id=\"ブラウザ自動操作とは\"\u003eブラウザ自動操作とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/browser/\"\u003eWebブラウザ\u003c/a\u003eを自動操作するためのツールです。\u003c/p\u003e\n\u003ch2 id=\"主な目的\"\u003e主な目的\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e自動化による効率化\u003c/li\u003e\n\u003cli\u003e自動テスト\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"主なツール\"\u003e主なツール\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/selenium-webdriver/\"\u003eSelenium WebDriver\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/selenide/\"\u003eSelenide\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eSelenium WebDriverを使ったテストを書くためのフレームワークです。\u003c/li\u003e\n\u003cli\u003ejQueryライクに書けるようです。\u003c/li\u003e\n\u003cli\u003eテスト用のDSLが込み。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.gebish.org/\"\u003eGeb\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e[Groovy][]で書けるものです。\u003c/li\u003e\n\u003cli\u003eテスト用のツールは別途好きなものを選ぶ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FluentLenium/FluentLenium\"\u003eFluentLenium\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e流れるようなインタフェースで書けるものです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Matsuyama",
    "url": "https://www.ikemo3.com/tags/matsuyama/",
    "contents": ""
  }, 
  {
    "title": "Thor",
    "url": "https://www.ikemo3.com/manual/thor/",
    "contents": "\u003ch2 id=\"使い方\"\u003e使い方\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edesc\u003c/code\u003e は必ず付けること。でないと警告が出る。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edesc\u003c/code\u003e の1番目の引数はコマンド(サブコマンド) + 引数の書式\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edesc\u003c/code\u003e の2番目の引数はコマンドの説明\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eoption :all, :type =\u0026gt; :boolean\u003c/code\u003e は\u003ccode\u003e--all\u003c/code\u003e に対応。未設定時はnilになる。\u003c/li\u003e\n\u003cli\u003eサブコマンドはThorクラスを継承したクラスを作って、親クラスに以下の記述を入れる。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esubcommand \u0026quot;サブコマンド名\u0026quot;, サブコマンドのクラス\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e例: \u003ccode\u003esubcommand \u0026quot;tag\u0026quot;, TagCommand\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"長い説明\"\u003e長い説明\u003c/h3\u003e\n\u003cp\u003e以下のようにする。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eヒアドキュメント(インデントあり)\u003c/li\u003e\n\u003cli\u003egsubで改行をU+0005に変換(公式ドキュメントに記載あり)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  long_desc \u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u0026lt;~\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eLONGDESC\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003egsub(\u003cspan style=\"color:#e6db74\"\u003e/\\n/\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e\\x5\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e説明\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e行目\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e説明\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e行目\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e説明\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e行目\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eLONGDESC\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eただし、行が長すぎると折り返されちゃうようです[^1]。\u003c/p\u003e\n\u003ch3 id=\"管理外メソッド\"\u003e管理外メソッド\u003c/h3\u003e\n\u003cp\u003eメソッドを定義するとコマンドとして扱われますが、\nコマンドとして扱われたくないメソッドを定義する時は、\n\u003ccode\u003eno_commands\u003c/code\u003eまたは\u003ccode\u003eno_tasks\u003c/code\u003eで囲みます。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.rubydoc.info/github/wycats/thor/Thor/Base/ClassMethods#no_commands-instance_method\"\u003eno_commands\u003c/a\u003eより、\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eMyScript\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eThor\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  no_commands \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ethis_is_not_a_command\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "杏仁豆腐",
    "url": "https://www.ikemo3.com/dic/annin-tofu/",
    "contents": "\u003ch2 id=\"杏仁豆腐とは\"\u003e杏仁豆腐とは\u003c/h2\u003e\n\u003cp\u003e独特の味のデザートです。\u003c/p\u003e\n\u003ch2 id=\"薬膳料理らしい\"\u003e薬膳料理らしい\u003c/h2\u003e\n\u003cp\u003eよく見かける杏仁豆腐は杏仁由来の材料が入ってないものもありますが、\n杏仁は元々苦く、薬として使われていたみたいです。\n今で言う服薬補助ゼリーみたいなものですね。\u003c/p\u003e\n\u003ch2 id=\"菓子屋-艶\"\u003e菓子屋 艶\u003c/h2\u003e\n\u003cp\u003e最近、自分の中で杏仁豆腐と言えば、「菓子屋 艶」のものが一番です。\nどうやら今治に本店があるようですが、松山でも買えます。\nこの店は杏仁豆腐だけでなく、プリンも美味しいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dogoehime.com/foodsweets/kashiya-yen/\"\u003e関ジャニ∞のジャニ勉で絶賛！愛媛県「菓子屋 艶」のプリンに注目\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "家事",
    "url": "https://www.ikemo3.com/tags/housework/",
    "contents": ""
  }, 
  {
    "title": "掃除",
    "url": "https://www.ikemo3.com/dic/clean-up/",
    "contents": "\u003ch2 id=\"掃除とは\"\u003e掃除とは\u003c/h2\u003e\n\u003cp\u003e何かをきれいにするための作業です。\u003c/p\u003e\n\u003ch2 id=\"汚れとその対応方法\"\u003e汚れとその対応方法\u003c/h2\u003e\n\u003cp\u003e例えばこの記事\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.kokusen.go.jp/wko/pdf/wko-201311_15.pdf\"\u003e重曹・クエン酸を活用！汚れの正体を知れば楽に掃除ができる\u003c/a\u003e ※PDF形式\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e基本的には酸性のものにはアルカリ性、\nアルカリ性のものについては酸性のものを使うとよさそうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e酸性の汚れ\n\u003cul\u003e\n\u003cli\u003e例: 油汚れ\u003c/li\u003e\n\u003cli\u003e弱アルカリ性の重曹(炭酸水素ナトリウム, NaHCo\u003c!-- raw HTML omitted --\u003e3\u003c!-- raw HTML omitted --\u003e)で対応\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eアルカリ性の汚れ\n\u003cul\u003e\n\u003cli\u003e例: 水垢、尿\u003c/li\u003e\n\u003cli\u003eクエン酸で対応\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eカビ、除菌、漂白など: 酸素系漂白剤\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.kokusen.go.jp/wko/data/wko-201311.html\"\u003e2013年11月号【No.16】（2013年11月15日発行）(国民生活)_国民生活センター\u003c/a\u003eからリンクされてます。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Anime",
    "url": "https://www.ikemo3.com/tags/anime/",
    "contents": ""
  }, 
  {
    "title": "Boardgame",
    "url": "https://www.ikemo3.com/tags/boardgame/",
    "contents": ""
  }, 
  {
    "title": "Mathematics",
    "url": "https://www.ikemo3.com/tags/mathematics/",
    "contents": ""
  }, 
  {
    "title": "Nhk",
    "url": "https://www.ikemo3.com/tags/nhk/",
    "contents": ""
  }, 
  {
    "title": "Shogi",
    "url": "https://www.ikemo3.com/tags/shogi/",
    "contents": ""
  }, 
  {
    "title": "ニャッキ!",
    "url": "https://www.ikemo3.com/dic/knyacki/",
    "contents": "\u003ch2 id=\"ニャッキとは\"\u003eニャッキ!とは\u003c/h2\u003e\n\u003cp\u003eリア充のイモムシが主人公のアニメです。\u003c/p\u003e\n\u003ch2 id=\"ニャッキの特徴\"\u003eニャッキの特徴\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eジャンプできる\u003c/li\u003e\n\u003cli\u003e泳げる\u003c/li\u003e\n\u003cli\u003e彼女がいる\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e後なにかあったっけな。。。\u003c/p\u003e\n"
  }, 
  {
    "title": "将棋棋士とゲーム",
    "url": "https://www.ikemo3.com/theme/shogi/boardgame/",
    "contents": "\u003cp\u003e将棋棋士は結構いろんなゲーム、\n特にボードゲームを嗜んでいる人が多いという話を見つけたらまとめてみます。\u003c/p\u003e\n\u003ch2 id=\"囲碁\"\u003e囲碁\u003c/h2\u003e\n\u003cp\u003eまず将棋と並ぶボードゲームと言えば囲碁。\nこれは嗜む人は結構いるようですが、\nプロ並みに強いという人は聞いたことないかも。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.shogi.or.jp/column/2016/10/igo.html\"\u003e中原誠十六世名人も参加、将棋連盟囲碁部の活動に潜入｜将棋コラム｜日本将棋連盟\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"チェス\"\u003eチェス\u003c/h2\u003e\n\u003cp\u003eこれは有名な話。永世名人資格者二人の名前が。。。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://ratings.fide.com/topfed.phtml?tops=0\u0026amp;ina=2\u0026amp;country=JPN\"\u003eFIDE Country Top chess players\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHabu, Yoshiharu\nMoriuchi, Toshiyuki\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"マジックザギャザリング\"\u003eマジック:ザ・ギャザリング\u003c/h2\u003e\n\u003cp\u003e糸谷八段がMtG強いという話を見つけました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://mtg-jp.com/reading/special/0014671/\"\u003e糸谷竜王インタビュー！ 「将棋とマジックと私」｜読み物｜マジック：ザ・ギャザリング 日本公式ウェブサイト\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eポケモンカードゲームで初体験ながら優勝するという事例も。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.4gamer.net/games/256/G025620/20170704025/\"\u003e将棋の糸谷八段がポケモンマスターに！　「ポケモンカードゲーム」新セット「ひかる伝説」先行体験会レポート - 4Gamer.net\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "統計",
    "url": "https://www.ikemo3.com/dic/statistics/",
    "contents": "\u003ch2 id=\"統計とは\"\u003e統計とは\u003c/h2\u003e\n\u003cp\u003e騙されやすいものです。\u003c/p\u003e\n\u003ch2 id=\"流派\"\u003e流派\u003c/h2\u003e\n\u003cp\u003e自分が統計学を学んでた頃は統計と言えばフィッシャー、\np値か、信頼区間で、ベイズって何?だったのですが、\np値は乱用されることが多いらしくて、\n乱用すんなよという警告が出てます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://biometrics.gr.jp/news/all/ASA.pdf\"\u003e統計的有意性と P 値に関する ASA 声明\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eまあ、偶然データが偏る確率は0でなかったり、\n(p値が0.05=5%なら5%は偶然起きる可能性あり)、\nそもそも疑似相関の可能性があったり、\n万能薬のように扱われるのがおかしいんでっすが。\u003c/p\u003e\n"
  }, 
  {
    "title": "Amazon Workspaces",
    "url": "https://www.ikemo3.com/dic/amazon-workspaces/",
    "contents": "\u003ch2 id=\"amazon-workspacesとは\"\u003eAmazon Workspacesとは\u003c/h2\u003e\n\u003cp\u003eWindowsの仮想デスクトップサービスです。\u003c/p\u003e\n\u003ch2 id=\"個人で使うことはなさそうだが\"\u003e個人で使うことはなさそうだが\u003c/h2\u003e\n\u003cp\u003e無料枠に入っていたので、とりあえず起動してみました。\nリモートデスクトップで作業した経験はあるので、操作感も似たような感じです。\nあくまで「動かしてみた」レベルなので、違いはいろいろあるはずですが。\u003c/p\u003e\n\u003cp\u003e問題は料金で、2CPU, 4GBのメモリで月額だと$45〜$57、\n時間料金だと$10〜$26に加えて時間割かかります。\n毎月決まった料金がかかるのがちょっとつらいですね。\u003c/p\u003e\n\u003cp\u003eまあ、こういう製品もあるんだなというのは覚えておくと良さそうです。\u003c/p\u003e\n"
  }, 
  {
    "title": "嫌いなプログラミング言語",
    "url": "https://www.ikemo3.com/theme/programming/language-i-dislike/",
    "contents": "\u003cp\u003e順不同です。\u003c/p\u003e\n\u003ch2 id=\"c\"\u003eC++\u003c/h2\u003e\n\u003cp\u003e[KDE][]の\u003ca href=\"/dic/kita/\"\u003eKita\u003c/a\u003eでもう懲りました。\n言語のセンスが受け付けないです。\u003c/p\u003e\n\u003ch2 id=\"lisp\"\u003eLisp\u003c/h2\u003e\n\u003cp\u003e言語よりも、Lisperの選民意識がうざいです。\n分かりやすい例だとPaul Grahamとか。投資家としては評価してますが。\n具体的な発言だと「プログラミング言語はLispに近づいている」とか。\n「\u003ca href=\"/dic/omasou/\"\u003eお前がそう思うんならそうなんだろう お前ん中ではな\u003c/a\u003e」という感じです。\u003c/p\u003e\n\u003ch2 id=\"php\"\u003ePHP\u003c/h2\u003e\n\u003cp\u003e具体的なソースは挙げられないのですが、\n2000年代のPHPはいろいろ酷くて(特にセキュリティ)、\n設計者に不信感を抱いたのが原因です。\u003c/p\u003e\n\u003cp\u003e・・・ですがかなり昔の話なので今はそうでもないかなぁ。\u003c/p\u003e\n"
  }, 
  {
    "title": "AWS Fargate",
    "url": "https://www.ikemo3.com/dic/fargate/",
    "contents": "\u003ch2 id=\"aws-fargateとは\"\u003eAWS Fargateとは\u003c/h2\u003e\n\u003cp\u003eサーバなしでコンテナを実行する技術です。\n競合に\u003ca href=\"/dic/hyper-sh/\"\u003eHyper.sh\u003c/a\u003eがあります。\u003c/p\u003e\n\u003ch2 id=\"日本東京リージョンの状況\"\u003e日本(東京リージョン)の状況\u003c/h2\u003e\n\u003cp\u003e2018年7月から利用可能になる予定です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://aws.amazon.com/jp/blogs/news/aws-fargate-tokyo-launch/\"\u003eAWS Fargate の 東京リージョン対応予定がアナウンスされました | Amazon Web Services ブログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "No-News",
    "url": "https://www.ikemo3.com/tags/no-news/",
    "contents": ""
  }, 
  {
    "title": "ほぼ日",
    "url": "https://www.ikemo3.com/log/hobonichi/",
    "contents": "\u003ch2 id=\"気になったところ\"\u003e気になったところ\u003c/h2\u003e\n\u003cp\u003e他のカテゴリに入らないなぁと思ったほぼ日の連載のことについて。\u003c/p\u003e\n\u003ch2 id=\"ツリー型ツール\"\u003eツリー型ツール\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://www.1101.com/capless/2018-05-31.html\"\u003e第4回 「叩く」じゃ、できない。 - 同じじゃないから、愛がある。 - ほぼ日刊イトイ新聞\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eここで出てくる「ツリー型のツール」はマインドマップか、\nフィッシュボーンか、他の図かもしれないけど、\nこれが「響かなかった」というのは何となく分かります。\n自分も結局手書きがいいなぁという感じなので。\nただ、自分の場合はデジタルの良さも好きなので、iPadで書いてますが。\u003c/p\u003e\n\u003ch2 id=\"今日のダーリン\"\u003e今日のダーリン\u003c/h2\u003e\n\u003cp\u003e最近「声だけが大きい人」などに対する苦言が多いようなので、\n見たら日付を記録していきます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2018-07-10\u003c/li\u003e\n\u003cli\u003e2018-07-11\u003c/li\u003e\n\u003cli\u003e2018-07-15\u003c/li\u003e\n\u003cli\u003e2018-08-04\u003c/li\u003e\n\u003cli\u003e2018-08-26\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "悪人の見分け方",
    "url": "https://www.ikemo3.com/theme/how-to-identify-bad-person/",
    "contents": "\u003ch2 id=\"自分の中での大きな基準\"\u003e自分の中での大きな基準\u003c/h2\u003e\n\u003cp\u003eやっぱりこれです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e「\u003ca href=\"/dic/news/\"\u003eニュース\u003c/a\u003e」に媚びているのが一番の悪人\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e要は、いろんな人の発言を見て、「ニュース受け」することを言っているのが、\n一番の悪人だろうなという感じです。\u003c/p\u003e\n\u003cp\u003eただし、以下のような場合は除きます。\u003c/p\u003e\n\u003ch3 id=\"例外-既に別のニュースによる被害者の場合\"\u003e例外: 既に別の「ニュース」による被害者の場合\u003c/h3\u003e\n\u003cp\u003e例えば、ある風評被害を「ニュース」に受けている場合、\nその反論として、別の「ニュース」の取材を受けることがあります。\nそういう場合は、例えくたびれたおっさんの読む雑誌でも除外します。\u003c/p\u003e\n\u003ch3 id=\"例外-ニュースを手玉に取っている\"\u003e例外: 「ニュース」を手玉に取っている\u003c/h3\u003e\n\u003cp\u003e一見、ニュース番組に出演していたり、ニュースと仲が良いようでも、\nあくまで自分主導で発言を行っており、媚びている様子がない場合は、\nその人に対してマイナスイメージを持つことはありません。\u003c/p\u003e\n\u003ch2 id=\"あくまで1つの基準\"\u003eあくまで1つの基準\u003c/h2\u003e\n\u003cp\u003eもちろんこれはあくまで1つの基準で、\nこれだけで判断することはありませんが、\n一番分かりやすく、精度が高いのはこれだと思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "拡声器",
    "url": "https://www.ikemo3.com/dic/loudspeaker/",
    "contents": "\u003ch2 id=\"拡声器とは\"\u003e拡声器とは\u003c/h2\u003e\n\u003cp\u003e騒音発生機です。\u003c/p\u003e\n\u003ch2 id=\"思考に割り込んでくる\"\u003e思考に割り込んでくる\u003c/h2\u003e\n\u003cp\u003e「うるさい」のは言うまでもないのですが、\nそれ以上に嫌なのが、思考に割り込んでくることです。\u003c/p\u003e\n\u003cp\u003e中島義道さんの著書でも騒音の話が出てきますが、\nこの騒音をなんとも思わない人は、思考停止になっていると言えるでしょう。\nどうせうるさいのならせめて自分の地声にして欲しいものです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Facebook",
    "url": "https://www.ikemo3.com/dic/facebook/",
    "contents": "\u003ch2 id=\"facebookとは\"\u003eFacebookとは\u003c/h2\u003e\n\u003cp\u003eだいたい実名なSNSです。\u003c/p\u003e\n\u003ch2 id=\"昔は人類の敵と嫌ってた\"\u003e昔は「人類の敵」と嫌ってた\u003c/h2\u003e\n\u003cp\u003e半分冗談、半分本気なのですが、\n昔は「Facebookは人類の敵」と言っていました。何でかというと、\n\u003cstrong\u003e「アイデンティティは一つだけ」という理念が大嫌い\u003c/strong\u003eだったからです。\nまあ、今でも大嫌いなんですが。\u003c/p\u003e\n\u003ch2 id=\"今は友人とのやりとりのみ\"\u003e今は友人とのやりとりのみ\u003c/h2\u003e\n\u003cp\u003eそんなFacebookですが、今はアカウント持っています。\nその理由は2つあります。\u003c/p\u003e\n\u003cp\u003e1つ目は、「アイデンティティは一つだけ」と言ってても、\nそれはあくまでFacebookの中だけの話で、\nFacebookの他を支配することは(Facebookに限らず)できないからです。\nなので、この件はまあどうでもいいやと。\u003c/p\u003e\n\u003cp\u003eもう一つは、Facebook以上に、\u003ca href=\"/dic/twitter/\"\u003eTwitter\u003c/a\u003eが嫌になったからです。\nユーザの質もですが、Twitter社のやり方が我慢できなくなったので、\nTwitter以外に乗り換えを検討した結果、\nとりあえず友人との連絡はFacebookでいいかなぁという感じです。\u003c/p\u003e\n"
  }, 
  {
    "title": "SNS",
    "url": "https://www.ikemo3.com/tags/sns/",
    "contents": ""
  }, 
  {
    "title": "人類の敵",
    "url": "https://www.ikemo3.com/dic/enemy-of-mankind/",
    "contents": "\u003ch2 id=\"人類の敵とは\"\u003e人類の敵とは\u003c/h2\u003e\n\u003cp\u003e何やら許せないことに対する表現です。\u003c/p\u003e\n\u003ch2 id=\"は人類の敵の元ネタ\"\u003e「◯◯は人類の敵」の元ネタ\u003c/h2\u003e\n\u003cp\u003e自分は昔、「\u003ca href=\"/dic/facebook/\"\u003eFacebook\u003c/a\u003eは人類の敵」と半分冗談、半分本気で言ってたのですが、\n「人類の敵」の元ネタはこの記事です。\n何となく「人類の敵」という表現が気に入ったので、使っていました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.itmedia.co.jp/enterprise/0203/07/02030701.html\"\u003eエンタープライズ：「マイクロソフトとIBMは人類の敵」とサンのマクニーリCEO\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "mixi",
    "url": "https://www.ikemo3.com/dic/mixi/",
    "contents": "\u003ch2 id=\"mixiとは\"\u003emixiとは\u003c/h2\u003e\n\u003cp\u003eかつてSNSだったサービスです。\u003c/p\u003e\n\u003ch2 id=\"mixiがダメになっていった理由\"\u003emixiがダメになっていった理由\u003c/h2\u003e\n\u003cp\u003e自分はmixiのアカウントはありますが、もうほとんど見てません。\n(たまに見てなにもないなーというのを確認する程度)\u003c/p\u003e\n\u003cp\u003eリアルタイムで見てきた自分からすると、\n以下の点がダメになった理由だと思います。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eiPhone対応が遅れた\u003c/li\u003e\n\u003cli\u003e機能要望を放置\u003c/li\u003e\n\u003cli\u003eFacebook化\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"1-iphone対応が遅れた\"\u003e1. iPhone対応が遅れた\u003c/h3\u003e\n\u003cp\u003e2009年からiPhoneを使っているのですが、いろいろと問題があったと思います。\n要は従来の携帯電話と同じ仕組みからの脱却が遅れました。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://d.hatena.ne.jp/fantasticfuture/20090903/1251997422\"\u003eiPhoneに乗り換えた人が引き続きmixiを使い続ける方法 - パンダがゆらゆら\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eその頃\u003ca href=\"/dic/twitter/\"\u003eTwitter\u003c/a\u003eが流行しつつあることもあり、流れが大きく変わりました。\u003c/p\u003e\n\u003ch3 id=\"2-機能要望を放置\"\u003e2. 機能要望を放置\u003c/h3\u003e\n\u003cp\u003e2番目は、機能要望を放置してたことです。\n自分が覚えているのは、特に、mixiニュースの件です。\n(今は\u003ca href=\"/dic/no-news/\"\u003eニュース嫌い\u003c/a\u003eですが、その頃は嫌いじゃありませんでした)\u003c/p\u003e\n\u003cp\u003eただ、mixiニュースのどうしても許せないところは、\n日刊ゲンダイという\u003ca href=\"/dic/tired-old-man/\"\u003eくたびれたおっさん\u003c/a\u003e向けの雑誌の記事を\nトップにデカデカと載せていたことです。\u003c/p\u003e\n\u003cp\u003eこれを不快だと思うのは自分だけではなく、\n機能要望の上位にいたのですが、mixiは何年も対策を放置していました。\n自分はわざわざ\u003ca href=\"/dic/css/\"\u003eCSS\u003c/a\u003eで非表示にして対応してましたが、\nずっと放置し続けるくらいなら、公開の機能要望はやらない方がマシです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch3 id=\"3-facebook化\"\u003e3. Facebook化\u003c/h3\u003e\n\u003cp\u003e最後は、\u003ca href=\"/dic/facebook/\"\u003eFacebook\u003c/a\u003e化したことです。\nmixiの良さって「日本独自」なところだったのですが、\nわざわざそれを捨てて、Facebookの後追いを始めました。\n完全に自滅ですね。\u003c/p\u003e\n\u003cp\u003emixiがオープン化して良かったのは、\u003ca href=\"/dic/openid-connect/\"\u003eOpenID Connect\u003c/a\u003eくらいだと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://developer.mixi.co.jp/connect/mixi_graph_api/api_auth/\"\u003e認証認可手順(新方式)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e「はてなアイデア」もですが、こういうのはWisdom of Crowdsに向いてないんですね。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ちゅるやさん",
    "url": "https://www.ikemo3.com/dic/churuya-san/",
    "contents": "\u003ch2 id=\"ちゅるやさんとは\"\u003eちゅるやさんとは\u003c/h2\u003e\n\u003cp\u003e自分の理想です。マジレスすると、\n自分がアイコンに使うのがちゅるやさんをもじったものなので。。。\u003c/p\u003e\n\u003ch2 id=\"二次創作が公認になった\"\u003e二次創作が公認になった\u003c/h2\u003e\n\u003cp\u003e元々は二次創作だったんですが、\n人気が出ていろいろあって公認になったすごい作品です。\u003c/p\u003e\n"
  }, 
  {
    "title": "Diagram",
    "url": "https://www.ikemo3.com/tags/diagram/",
    "contents": ""
  }, 
  {
    "title": "Graphviz",
    "url": "https://www.ikemo3.com/manual/graphviz/",
    "contents": "\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003cp\u003emacOSの場合\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ebrew install graphviz\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"cli\"\u003eCLI\u003c/h2\u003e\n\u003cp\u003esample.gvを入力として、PNG画像を作成するには、以下のようにします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edot -Tpng sample.gv -o sample.png\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"出力フォーマット\"\u003e出力フォーマット\u003c/h3\u003e\n\u003cp\u003e出力フォーマットはいろいろあります(詳細は\u003ccode\u003eman dot\u003c/code\u003e)が、\nPNG, JPEGといった画像はもちろん、\nPDF、PostScript、DOT言語、JSONとかいろいろあります。\u003c/p\u003e\n\u003ch3 id=\"グラフの種類\"\u003eグラフの種類\u003c/h3\u003e\n\u003cp\u003eコマンドを変えることで、出力が変わるようです。\nそれぞれアルゴリズムが違うようですが、試してみるのが早そうな感じです。\u003c/p\u003e\n\u003ch2 id=\"dot言語\"\u003eDOT言語\u003c/h2\u003e\n\u003cp\u003e説明を見る限り、拡張子は\u0026rsquo;.gv\u0026rsquo;が使われているようです。\nエンコーディングはデフォルトではUTF-8です。\nデフォルトのフォントは環境によるのかもしれませんが、\nmacOSでは日本語のフォント(明朝体、詳細は不明)が使われていました。\u003c/p\u003e\n\u003ch3 id=\"graph\"\u003egraph\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://graphviz.gitlab.io/_pages/doc/info/lang.html\"\u003eThe DOT Language\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e定義: \u003ccode\u003egraph\t:\t[ strict ] (graph | digraph) [ ID ] '{' stmt_list '}'\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003estrict: 複数の線が出るのを禁止する。\u003c/li\u003e\n\u003cli\u003egraph: 無向グラフ。\u003ccode\u003e-\u0026gt;\u003c/code\u003eを使うと文法エラーになる。\u003c/li\u003e\n\u003cli\u003edigraph: 有向グラフ。\u003ccode\u003e--\u003c/code\u003eを使うと文法エラーになる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e無向、有向の混在はできませんが、回避策はあるようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://iroha208.com/categories/graphviz/01/\"\u003eGraphvizの基本 - 01 - いろは二〇八\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ステートメント\"\u003eステートメント\u003c/h3\u003e\n\u003cp\u003e定義(stmtの改行はスペースに置き換え)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estmt_list\t:\t[ stmt [ ';' ] stmt_list ]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estmt\t:\tnode_stmt |\tedge_stmt |\tattr_stmt |\tID '=' ID |\tsubgraph\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ノードnode_stmt\"\u003eノード(node_stmt)\u003c/h3\u003e\n\u003cp\u003e定義は以下。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enode_stmt\t:\tnode_id [ attr_list ]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eattr_list\t:\t'[' [ a_list ] ']' [ attr_list ]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ea_list\t:\tID '=' ID [ (';' | ',') ] [ a_list ]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e言葉で書くとこんな感じです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eノードIDのあと、\u0026rsquo;[\u0026lsquo;と\u0026rsquo;]\u0026lsquo;で囲まれた属性のリストが追加されることがある。\u003c/li\u003e\n\u003cli\u003e属性のリストは、\u0026rsquo;,\u0026lsquo;または\u0026rsquo;;\u0026lsquo;区切りで、1つ1つは\u0026rsquo;属性名=属性値\u0026rsquo;として表される。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eちょっとややこしいですが、要は次のどちらでも書けるようです。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ea [shape=box, style=filled, fillcolor=yellow]\nb [shape=box] [style=filled, fillcolor=yellow]\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"エッジedge_stmt\"\u003eエッジ(edge_stmt)\u003c/h3\u003e\n\u003cp\u003e定義は以下(port, subgraphは後回し。。。)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eedge_stmt\t:\t(node_id | subgraph) edgeRHS [ attr_list ]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eedgeRHS\t:\tedgeop (node_id | subgraph) [ edgeRHS ]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enode_id\t:\tID [ port ]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eedgeopは\u003ccode\u003e--\u003c/code\u003eまたは\u003ccode\u003e-\u0026gt;\u003c/code\u003eです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e要は\u003ccode\u003ea -- b -- c\u003c/code\u003eのように、次々とつなげて書けるようです。\u003c/p\u003e\n\u003cp\u003eサブグラフにつなげるためには、以下のようにltail, lheadあたりを\n付けると良さそうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/2012036/graphviz-how-to-connect-subgraphs\"\u003egraphics - GraphViz - How to connect subgraphs? - Stack Overflow\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"属性attr_stmt\"\u003e属性(attr_stmt)\u003c/h3\u003e\n\u003cp\u003e定義は以下。グローバルに設定するためのものみたいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eattr_stmt\t:\t(graph | node | edge) attr_list\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003e使用例\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enode [shape=box]\u003c/code\u003e: ノードを全て箱型にする\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"サブグラフsubgraph\"\u003eサブグラフ(subgraph)\u003c/h3\u003e\n\u003cp\u003e定義は以下。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esubgraph\t:\t[ subgraph [ ID ] ] '{' stmt_list '}'\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e名前が\u003ccode\u003ecluster\u003c/code\u003eから始まると、クラスタ化されたサブグラフになる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cp\u003e使用例\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esubgraph cluster_0 { ... }\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ポートport\"\u003eポート(port)\u003c/h3\u003e\n\u003cp\u003e定義は以下。どうやらどこから線を出すかどうかを決めるためのもののようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eport\t:\t':' ID [ ':' compass_pt ] |\t':' compass_pt\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下のようにすると、東側(east)から線が出ます。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ea -- b:e\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"属性\"\u003e属性\u003c/h2\u003e\n\u003ch3 id=\"ラベルlabel\"\u003eラベル(label)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://graphviz.gitlab.io/_pages/doc/info/attrs.html#d:label\"\u003elabel\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://graphviz.gitlab.io/_pages/doc/info/shapes.html#record\"\u003eRecord-based Nodes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003eパイプ(\u003ccode\u003e|\u003c/code\u003e)を使うと、区切り線になる。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e{\u003c/code\u003eと\u003ccode\u003e}\u003c/code\u003eで囲むと、方向が変わる。\n\u003cul\u003e\n\u003cli\u003eデフォルトは水平(左から右)のため、最初に使うと垂直(上から下)になる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;f0\u0026gt;\u003c/code\u003eのような記述はポートの定義になる。\u003c/li\u003e\n\u003cli\u003eエスケープシーケンス\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://graphviz.gitlab.io/_pages/doc/info/attrs.html#k:escString\"\u003eescString\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\\n\u003c/code\u003e: センタリング \u0026amp; 改行\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\\l\u003c/code\u003e(Lの小文字): 左寄せ \u0026amp; 改行\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\\r\u003c/code\u003e: 右寄せ \u0026amp; 改行\u003c/li\u003e\n\u003cli\u003eドキュメントに出てくる\u003ccode\u003e\u0026amp;#92;n\u003c/code\u003eは、\u003ccode\u003e\\n\u003c/code\u003eと同じです(ASCIIコードで92はバックスラッシュになる)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHTML形式\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://graphviz.gitlab.io/_pages/doc/info/shapes.html#html\"\u003eHTML-Like Labels\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026quot;\u003c/code\u003eでなく、\u003ccode\u003e\u0026lt;\u003c/code\u003eと\u003ccode\u003e\u0026gt;\u003c/code\u003eで囲む。\u003c/li\u003e\n\u003cli\u003eただ、自分の環境だとうまくいっていない(要調査)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"形shape\"\u003e形(shape)\u003c/h3\u003e\n\u003cp\u003e以下を参照。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://graphviz.gitlab.io/_pages/doc/info/shapes.html\"\u003eNode Shapes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Testcontainers",
    "url": "https://www.ikemo3.com/manual/testcontainers/",
    "contents": "\u003cp\u003eまだ使い始めなので、整理できていません。\u003c/p\u003e\n\u003ch2 id=\"pomxml\"\u003epom.xml\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.testcontainers.org/usage.html#maven-dependencies\"\u003eMaven dependencies\u003c/a\u003e参照。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.testcontainers%22\"\u003eThe Central Repository Search Engine\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://mvnrepository.com/search?q=org.testcontainers\"\u003eMaven Repository: org.testcontainers\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下では、MySQLを試してみた。\u003c/p\u003e\n\u003ch2 id=\"docker-compose\"\u003eDocker Compose\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.testcontainers.org/usage/docker_compose.html\"\u003eDocker Compose · Testcontainers\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e現状ではMacではDocker Composeのバージョンが古すぎて(1.8.0が使われる)、\n問題があるようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/testcontainers/testcontainers-java/issues/565\"\u003eCurrent Docker Compose container is outdated; newer versions won\u0026rsquo;t work with Docker for Mac · Issue #565 · testcontainers/testcontainers-java\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocker Compose 1.10.0からVersion 3のフォーマットになったため、\nDocker Compose 1.8.0はおそらくVersion 2のフォーマットが必須です。\u003c/p\u003e\n\u003cp\u003eこちらは書き直すの手間なので、今は動作確認していません。\u003c/p\u003e\n\u003ch2 id=\"データベースコンテナ\"\u003eデータベースコンテナ\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.testcontainers.org/usage/database_containers.html\"\u003eDatabase containers\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下の2つの方法が可能です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJUnitのRule/ClassRuleを使う方法\u003c/li\u003e\n\u003cli\u003e特別なJDBC URLを使う方法\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"mysql\"\u003eMySQL\u003c/h3\u003e\n\u003cp\u003eJUnitのRule/ClassRuleを使う方法では、\n設定ファイルはカスタマイズできますが、\n今のところ、データの初期化の検証は行えていません(mountで対応できるはず)。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eテストコード\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/testcontainers/testcontainers-java/blob/master/modules/jdbc-test/src/test/java/org/testcontainers/junit/SimpleMySQLTest.java\"\u003ehttps://github.com/testcontainers/testcontainers-java/blob/master/modules/jdbc-test/src/test/java/org/testcontainers/junit/SimpleMySQLTest.java\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e設定ファイル\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/testcontainers/testcontainers-java/tree/master/modules/jdbc-test/src/test/resources\"\u003ehttps://github.com/testcontainers/testcontainers-java/tree/master/modules/jdbc-test/src/test/resources\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e特別なJDBC URLを使う方法では、データの初期化も検証済みです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/testcontainers/testcontainers-java/blob/master/modules/jdbc-test/src/test/java/org/testcontainers/jdbc/JDBCDriverTest.java\"\u003ehttps://github.com/testcontainers/testcontainers-java/blob/master/modules/jdbc-test/src/test/java/org/testcontainers/jdbc/JDBCDriverTest.java\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例にはありませんが、パラメータを複数指定する場合は、\n以下のように、\u0026rsquo;\u0026amp;\u0026lsquo;でつなげる方法で問題ありません。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ejdbc:tc:mysql:5.5://hostname/databasename?TC_MY_CNF=conf\u0026amp;TC_INITSCRIPT=schema.sql\u0026amp;TC_DAEMON=true\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eちなみに、この方法だとユーザ名とパスワードは不明ですが、\nURLだけ指定していれば問題なさそうです。\n例えば、DbSetupのDriverManagerDestinationはパラメータを3つ取りますが、\nuser, passwordはnullで問題ありませんでした。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/sql/DriverManager.html#getConnection-java.lang.String-java.lang.String-java.lang.String-\"\u003eDriverManager#getConnection\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e注意すべきは、設定ファイルなどのリソースは、\nクラスパスの通っている場所に置く必要があります。\nMavenの標準レイアウトの場合、src/test/resouces 以下に置きます。\u003c/p\u003e\n\u003cp\u003eまた、デフォルトではConnectionクローズ時に自動的にコンテナが削除されますが、\nTC_DAEMON=trueとすることで、コンテナが維持されます。\n実際には、テスト終了時に削除される感じです。\u003c/p\u003e\n"
  }, 
  {
    "title": "2ch",
    "url": "https://www.ikemo3.com/tags/2ch/",
    "contents": ""
  }, 
  {
    "title": "C++",
    "url": "https://www.ikemo3.com/dic/cplusplus/",
    "contents": "\u003ch2 id=\"cとは\"\u003eC++とは\u003c/h2\u003e\n\u003cp\u003e自分がトップ3に入る嫌いな言語です。\u003c/p\u003e\n\u003ch2 id=\"kitaで懲りた\"\u003eKitaで懲りた\u003c/h2\u003e\n\u003cp\u003e嫌いといっても結構使ってました。\nそれは、[KDE][]用2chブラウザ\u003ca href=\"/dic/kita/\"\u003eKita\u003c/a\u003eの開発です。\n当時は自分の技術力が足りなかったのもあるのですが、\nC++は他の言語と比べても圧倒的に使いにくく、\nストレスばかり溜まるので嫌でした。\u003c/p\u003e\n\u003ch2 id=\"cの嫌いな点\"\u003eC++の嫌いな点\u003c/h2\u003e\n\u003cp\u003e自分としては、他の「まともな」オブジェクト指向言語\n(\u003ca href=\"/dic/ruby/\"\u003eRuby\u003c/a\u003e、\u003ca href=\"/dic/objective-c/\"\u003eObjective-C\u003c/a\u003e、\u003ca href=\"/dic/java/\"\u003eJava\u003c/a\u003eなどと比較して、C++が使いにくいからです。\u003c/p\u003e\n\u003ch2 id=\"linusも嫌い\"\u003eLinusも嫌い\u003c/h2\u003e\n\u003cp\u003e特に関係はないのですが、LinusがC++大嫌いなのにはちょっと笑いました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.realworldtech.com/forum/?threadid=104196\u0026amp;curpostid=104208\"\u003eReal World Technologies - Forums - Thread: c++ in linux kernel\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.realworldtech.com/forum/?threadid=104196\u0026amp;curpostid=104214\"\u003eReal World Technologies - Forums - Thread: c++ in linux kernel\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eC++と使われ方が近くなっているGo言語についてはこんな感じです。\n2010年なので古いのですが、悪い評価ではなさそうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.realworldtech.com/forum/?threadid=104196\u0026amp;curpostid=104302\"\u003eReal World Technologies - Forums - Thread: c++ in linux kernel\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Kde",
    "url": "https://www.ikemo3.com/tags/kde/",
    "contents": ""
  }, 
  {
    "title": "Kita",
    "url": "https://www.ikemo3.com/dic/kita/",
    "contents": "\u003ch2 id=\"kitaとは\"\u003eKitaとは\u003c/h2\u003e\n\u003cp\u003e自分がかつて開発していた、[KDE][]向け2chブラウザです。\u003c/p\u003e\n\u003ch2 id=\"名前の由来\"\u003e名前の由来\u003c/h2\u003e\n\u003cp\u003eサイトに書いてあるとおりです。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e名前の由来はKDEの\u0026rsquo;K\u0026rsquo;に「板(board)」を加えたのと、キターー（゜∀゜）ーー!!から来てます。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eKDEのアプリは頭に\u0026rsquo;K\u0026rsquo;が付くものが多いのでそれに習ったのと、\nｷﾀ━━━━━━(ﾟ∀ﾟ)━━━━━━ !!!!!という\u003ca href=\"/dic/aa/\"\u003eAA\u003c/a\u003eが好きだったからです。\u003c/p\u003e\n\u003ch2 id=\"もう関わっていない理由\"\u003eもう関わっていない理由\u003c/h2\u003e\n\u003cp\u003e2ch(5ch)自体見てないというのもありますが、\n最大の理由は、\u003ca href=\"/dic/cplusplus/\"\u003eC++\u003c/a\u003eを使うのが辛くなったからです。\nそのため、ゼロから\u003ca href=\"/dic/ruby/\"\u003eRuby\u003c/a\u003eで作りなおしてたのですが、\n[KDE][]の\u003ca href=\"/dic/ruby/\"\u003eRuby\u003c/a\u003eバインディングが枯れていなかったのもあって\nどうもイマイチうまくいかず、熱意がなくなってしまいました。\u003c/p\u003e\n"
  }, 
  {
    "title": "Qiita",
    "url": "https://www.ikemo3.com/dic/qiita/",
    "contents": "\u003ch2 id=\"qiitaとは\"\u003eQiitaとは\u003c/h2\u003e\n\u003cp\u003eプログラミング知識を共有するためのサイトです。\u003c/p\u003e\n\u003ch2 id=\"markdownがデファクトになりつつあるのを知った\"\u003eMarkdownがデファクトになりつつあるのを知った\u003c/h2\u003e\n\u003cp\u003eそれまでは\u003ca href=\"/dic/markdown/\"\u003eMarkdown\u003c/a\u003eは意識したことがなかったのですが、\nこのサイトが検索で出てくること多くなると、\n\u003ca href=\"/dic/markdown/\"\u003eMarkdown\u003c/a\u003eで書けるところに興味を持ちました。\u003c/p\u003e\n\u003ch2 id=\"トレンドはいいね稼ぎの記事が多い\"\u003eトレンドはいいね稼ぎの記事が多い\u003c/h2\u003e\n\u003cp\u003e日本語圏では比較的良質な記事が多いのでしばらくは見てたのですが、\n2017年にリニューアルしてトレンドが目立つようになってから、\nいいね稼ぎの明らかに釣りタイトル、煽りタイトルが目立つようになりました。\u003c/p\u003e\n\u003ch2 id=\"荒らし対策ができていない\"\u003e荒らし対策ができていない\u003c/h2\u003e\n\u003cp\u003e自分も投稿してまあそれなりに評価された記事もあったのですが、\n正直もう今後はいいかなぁという感じです。\n先程書いた「いいね稼ぎ」もありますが、\n明らかに対話するつもりないだろってコメントも荒らし扱いされないので、\nならもう書かなくてもいいかなぁという感じです。\u003c/p\u003e\n"
  }, 
  {
    "title": "アスキーアート",
    "url": "https://www.ikemo3.com/dic/aa/",
    "contents": "\u003ch2 id=\"アスキーアートとは\"\u003eアスキーアートとは\u003c/h2\u003e\n\u003cp\u003e元々はASCIIコードを使って作られた顔文字とかそのあたりです。\nしばしば\u0026quot;AA\u0026quot;と略されることもあります。\nですが、日本語圏ではASCIIコードとか関係なく使われています。\n\u003ca href=\"/dic/komakee-kotaa-iinndayo/\"\u003eこまけぇこたぁいいんだよ!!\u003c/a\u003e\u003c/p\u003e\n"
  }, 
  {
    "title": "ブルーベリー",
    "url": "https://www.ikemo3.com/dic/blueberry/",
    "contents": "\u003ch2 id=\"ブルーベリーとは\"\u003eブルーベリーとは\u003c/h2\u003e\n\u003cp\u003e目に良いとよく宣伝されている果物です。\u003c/p\u003e\n\u003ch2 id=\"目に良いか\"\u003e目に良いか?\u003c/h2\u003e\n\u003cp\u003e目に良いと言われているのは正確にはビルベリーという種ですが、\n目に良いかどうかは微妙なところです。\n研究では一部の機能に改善が見られるというものもあれば、\n効果がなかったものもあるようです。\n(詳細は外部サイト)\u003c/p\u003e\n\u003cp\u003eなので、「美味しく食べて、もし良くなればいいよね」くらいの感じで\n付き合うのが良さそうな感じです。\u003c/p\u003e\n"
  }, 
  {
    "title": "過激派",
    "url": "https://www.ikemo3.com/dic/extremist/",
    "contents": "\u003ch2 id=\"過激派とは\"\u003e過激派とは\u003c/h2\u003e\n\u003cp\u003e決して味方にしてはいけないものです。\u003c/p\u003e\n\u003ch2 id=\"過激派を味方にすると穏健派が遠のく\"\u003e過激派を味方にすると、穏健派が遠のく\u003c/h2\u003e\n\u003cp\u003eORIGINALSのNo.2595(Kindle)「「誰と組むか」が勝敗を決める」に過激派を味方にしたことで、\n失敗した例が取り上げられています。\nここで出てくる「トレイン」というのは\n実業家の「ジョージ・フランシス・トレイン」のことです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e婦人参政権運動では、ここで**「わずかな違いに生じるナルシシズム」**が、\nネックになった。\u003c/p\u003e\n\u003cp\u003eアンソニーとスタントンが一八六七年に人種差別的なトレインと手を組\nむと、ストーンはトレインの婦人参政権への支持に関して、\n「現段階で婦人参政権に懐疑的な人たちはみな、\nこれで婦人参政権はダメだと思うだろう」と記している。\u003c/p\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003cp\u003eトレインとの同盟はダメージになった。カンザス州は婦人参政権をはじ\nとり入れる州になるはずだったが、投票で負けてしまった。それに黒人\n参政権の提案でも敗北を喫した。\u003c/p\u003e\n\u003cp\u003e内部の人間の多くが、この二つの敗北はトレインと同盟を組んだことにと\nあると考えた。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこの失敗した例はさらに続きがあるのですが、結論としては、\nこの直後にあるように、\n「外部の人間にとっては、グループの代表者とはもっとも極端なものの見方をする人」\nで間違いないと思います。\u003c/p\u003e\n\u003cp\u003eまあ、代表者と面識がないような支持者が暴れていても気にしないのですが、\n今の日本でもよくある話です\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4837957684/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4837957684.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4837957684/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nORIGINALS 誰もが「人と違うこと」ができる時代 (単行本)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://en.wikipedia.org/wiki/George_Francis_Train\"\u003eGeorge Francis Train - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eMIAUとか。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Bash",
    "url": "https://www.ikemo3.com/dic/bash/",
    "contents": "\u003ch2 id=\"bashとは\"\u003eBashとは\u003c/h2\u003e\n\u003cp\u003eGNUプロジェクトで開発されているUnixシェルです。\n\u003ca href=\"/dic/rhel/\"\u003eRed Hat Enterprise Linux\u003c/a\u003eやそのクローンOSでは\n標準シェルになっています。\u003c/p\u003e\n\u003ch2 id=\"名称\"\u003e名称\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.gnu.org/gnu/thegnuproject.html\"\u003eGNUプロジェクトについて - GNUプロジェクト - フリーソフトウェアファウンデーション\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(1) “Bourne again Shell”はUnixで標準的に使われる“Bourne Shell”の名前にひっかけた言葉遊びです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e元々のシェルはスティーブン・ボーンさんという人が作った、\nBourne Shellというものだったのですが、\nそれを生まれ変わらせた(born again)シェルという意味です。\u003c/p\u003e\n\u003cp\u003eGNUプロジェクトはこういう言葉遊びが結構多いです。\n(\u0026ldquo;GNU\u0026quot;自体もその一つ)\u003c/p\u003e\n"
  }, 
  {
    "title": "GDP",
    "url": "https://www.ikemo3.com/dic/gdp/",
    "contents": "\u003ch2 id=\"gdpとは\"\u003eGDPとは\u003c/h2\u003e\n\u003cp\u003e国内総生産のことです。\u003c/p\u003e\n\u003ch2 id=\"gnpとの違い\"\u003eGNPとの違い\u003c/h2\u003e\n\u003cp\u003e昔はGDPでなくGNPと言っていた記憶があるのですが、\nその違いは以下にある通り、「国内」なのがGDP、「国民」なのがGNPです。\n主にGDPを使っている理由は、政策はあくまで国内向けだからかと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.esri.cao.go.jp/jp/sna/otoiawase/faq/qa14.html\"\u003eGDPとGNI（GNP）の違いについて - 内閣府\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eGNP(国民総生産)はGNI(国民総所得)と名前を変えて残っているようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.esri.cao.go.jp/jp/sna/seibi/kouhou/93kiso/93snapamph/chapter2.html#c6\"\u003e（6）国民概念の測度を国民総生産（GNP）から 国民総所得（GNI）へと変更する。\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"93snaと2008sna\"\u003e93SNAと2008SNA\u003c/h2\u003e\n\u003cp\u003eこの改定は勝手に行っているのではなく、\n上の文書は「93SNA移行による 主な変更内容」と書いており、\n国際的に決められているものみたいです。\n最新は2008SNAという名称のようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.esri.cao.go.jp/jp/sna/seibi/2008sna/2008sna.html\"\u003e国民経済計算の平成23年基準改定および2008SNA対応について - 内閣府\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "World Wide Web Consortium(W3C)",
    "url": "https://www.ikemo3.com/dic/w3c/",
    "contents": "\u003ch2 id=\"world-wide-web-consortiumw3cとは\"\u003eWorld Wide Web Consortium(W3C)とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/www/\"\u003eWWW\u003c/a\u003e関連の規格を策定している団体です。\u003c/p\u003e\n\u003ch2 id=\"影響力の低下\"\u003e影響力の低下\u003c/h2\u003e\n\u003cp\u003eかつては自分の中ではWWWといえばW3Cという感じだったのですが、\n今はかなり影響力が落ちたなと感じます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e他の標準化団体の影響力が増した。\n\u003cul\u003e\n\u003cli\u003e例えば、JavaScriptはECMAで策定されています。\u003c/li\u003e\n\u003cli\u003eあともちろんRFCを出しているIANAも健在。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eXHTML 2.0、\u003ca href=\"/dic/xml-schema/\"\u003eXML Schema\u003c/a\u003eなど、使えない規格ばかりで、停滞していた。\n\u003cul\u003e\n\u003cli\u003e今のHTMLの主導権はWHATWGになって、W3Cは追随する形になってます。\u003c/li\u003e\n\u003cli\u003e逆に言えば、西暦2000年頃までに策定された規格は、今でも(古いと言われることはありますが)広く使われているものが多いです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Www",
    "url": "https://www.ikemo3.com/tags/www/",
    "contents": ""
  }, 
  {
    "title": "緊縮財政",
    "url": "https://www.ikemo3.com/dic/tight-financing/",
    "contents": "\u003ch2 id=\"緊縮財政とは\"\u003e緊縮財政とは\u003c/h2\u003e\n\u003cp\u003eこれまで数々の失敗を繰り返しているにもかかわらず、\n未だに効果があると一部の人が信じているものです。\u003c/p\u003e\n\u003ch2 id=\"緊縮財政とそれ以外の違い\"\u003e緊縮財政とそれ以外の違い\u003c/h2\u003e\n\u003cp\u003e以下のものは異論はあると思いますが、\n自分は緊縮財政とは違うと思っています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e無駄の削減、生産性向上\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/reprivatization/\"\u003e民営化\u003c/a\u003e(再民間化)\n\u003cul\u003e\n\u003cli\u003e民営化の本質は\u003ca href=\"/dic/separate-of-governance-and-execution/\"\u003e統治と実行の分離\u003c/a\u003eなので。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e増税はそれ単体では「緊縮財政」ですが、\n自分は、その使い道が重要だと考えてます。\n極端な話、増税した部分を減税で相殺すればいいので。\nまあいわゆる「高負担高福祉」社会です。\u003c/p\u003e\n\u003ch2 id=\"投資を考えられるか\"\u003e「投資」を考えられるか\u003c/h2\u003e\n\u003cp\u003e緊縮財政論者とそれ以外を分ける基準は、\n自分は「投資」という考え方があると思います。\n会社で言えば、業績不振の名目でダラダラ人員削減、経費削減をしても、\n本業を復活させないことには意味がないのと同じです。\n大赤字から復活した会社は、リストラは一気に行って、\nすぐに成長路線に戻しています。\u003c/p\u003e\n"
  }, 
  {
    "title": "ポストモダン",
    "url": "https://www.ikemo3.com/log/post-modern/",
    "contents": "\u003cp\u003e自分の中でポストモダンを感じさせる発言のクリップとか。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.1101.com/taizoson/2018-05-26.html\"\u003e孫 泰蔵×糸井重里 対談「ご近所の社長は、やっぱりすごい人だった。」 - ほぼ日刊イトイ新聞\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e糸井\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eさすがにその真似はできないけど\n「科学と詩が自分の中に共存する状態」\nというのは、\nこれからみんながそっちのほうにこう、\nゆるゆると戻っていくのかなぁ、と思うんです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e孫\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eありますね。\nだけど本当にそうです。\n未来は「変わっていく」というより\n「戻っていく」だと思うんです。\n科学と詩は、もともとみんなのなかに\n両方あったはずで。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e「戻っていく」と表現していますが、\n昔そのままに戻るわけではないのはないので、\n螺旋状に戻っていく感じですね。\u003c/p\u003e\n\u003cp\u003eその後のこの発言は、この対義語が「進歩主義」なのを表しているかなと。\n「細い路地に入り込む」というイメージがちょっとおもしろいと思いました。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e糸井\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eそうですね。\n「進んでいく」じゃダメですよね。\n「進む」という言葉はなんだか\n細い路地に入り込んじゃうイメージだから。\n「進む」だと\n「一番エクセレントなものを選ぶ」\nって思っちゃう。\nだけど大事なのはそっちじゃなくて\n「もう大動脈まで戻りましょう」みたいな。\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "浅草",
    "url": "https://www.ikemo3.com/dic/asakusa/",
    "contents": "\u003ch2 id=\"浅草とは\"\u003e浅草とは\u003c/h2\u003e\n\u003cp\u003e東京にある地名です。\u003c/p\u003e\n\u003ch2 id=\"東京で一番好き\"\u003e東京で一番好き\u003c/h2\u003e\n\u003cp\u003e東京は基本的に嫌いなのですが、\n例外的に好きな場所の1つが浅草です。\nまあ下町(\u003ca href=\"/dic/edokko/\"\u003e江戸っ子\u003c/a\u003e)は基本的に好きです。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/dic/job-offer-cancellation/\"\u003e内定取消\u003c/a\u003eの直前に東京都内に住んでたことがあるのですが、\nそのときに住んでたのが墨田区東向島でした。\n比較的家賃がマシな方だったのもありますが、\n東京都心なら、あの辺りに住みたかったのがあります。\u003c/p\u003e\n\u003ch2 id=\"芋\"\u003e芋\u003c/h2\u003e\n\u003cp\u003e愛媛に帰ってきてからは浅草に行ったことはないのですが、\n最近の浅草のイメージは「芋」ですね。\u003c/p\u003e\n\u003cp\u003eなんで芋なのかと思ったら、問屋があったからとか。\n調べたところ、どうやらここらしいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.oimoyasan.com/\"\u003eおいもやさん｜株式会社 川小商店｜創業明治9年の甘藷問屋\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e芋のお菓子といえばまずは舟和(ふなわ)の芋ようかん。\n大学の先輩がお土産に買ってきてくれてからよく買ってます。\n今でもお土産に買うことがあります。\nでも愛媛だと松山三越で買えるみたいですね(今知りました)。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://funawa.jp/shop/\"\u003e株式会社舟和本店　公式ホームページ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://funawa.jp/shop/item_list?category_id=66263\"\u003e芋ようかん | 株式会社舟和本店　公式ホームページ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://funawa.jp/shop/contents?contents_id=137310\"\u003e店舗一覧　駅売店・羽田空港・SA | 株式会社舟和本店　公式ホームページ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://funawa.jp/shop/contents?contents_id=103630\"\u003e店舗一覧　信越～九州 | 株式会社舟和本店　公式ホームページ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eあと最近は満願堂の芋きんがよくイベントで出店しているので、\n買うことが多いです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.mangando.jp/index.html\"\u003e芋きんでおなじみの浅草満願堂のホームページです。\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.mangando.jp/product/imokin.html\"\u003e芋きん：浅草満願堂\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "宗教",
    "url": "https://www.ikemo3.com/tags/religion/",
    "contents": ""
  }, 
  {
    "title": "Salt",
    "url": "https://www.ikemo3.com/tags/salt/",
    "contents": ""
  }, 
  {
    "title": "ダイアグラム",
    "url": "https://www.ikemo3.com/dic/diagram/",
    "contents": "\u003ch2 id=\"ダイアグラムとは\"\u003eダイアグラムとは\u003c/h2\u003e\n\u003cp\u003e主に図形や線を使って表したものです。\u003c/p\u003e\n\u003ch2 id=\"ダイアグラムをテキストで描くもの\"\u003eダイアグラムをテキストで描くもの\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/graphviz/\"\u003eGraphviz\u003c/a\u003e: DOT言語というので描くことができる。また、ライブラリとして他から使われることも多い。\n\u003cul\u003e\n\u003cli\u003eRubyの場合: \u003ca href=\"https://github.com/glejeune/Ruby-Graphviz/\"\u003eglejeune/Ruby-Graphviz: Ruby interface to the GraphViz graphing tool\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/mermaid/\"\u003emermaid\u003c/a\u003e: フローチャート、シーケンス図などよく使うもの\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/plantuml/\"\u003eplantuml\u003c/a\u003e: 基本的にはUML\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"機能比較\"\u003e機能比較\u003c/h2\u003e\n\u003cp\u003eUMLの図の多さで、どう見てもPlantUMLが有利に見えますね。。。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e\u003c/th\u003e\n          \u003cth\u003emermaid\u003c/th\u003e\n          \u003cth\u003ePlantUML\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eフローチャート\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e×\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eシーケンス図\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eクラス図\u003c/td\u003e\n          \u003ctd\u003e×\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eアクティビティ図\u003c/td\u003e\n          \u003ctd\u003e×\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eコンポーネント図\u003c/td\u003e\n          \u003ctd\u003e×\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eステートマシン図\u003c/td\u003e\n          \u003ctd\u003e×\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eオブジェクト図\u003c/td\u003e\n          \u003ctd\u003e×\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e配置図\u003c/td\u003e\n          \u003ctd\u003e×\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eタイミング図\u003c/td\u003e\n          \u003ctd\u003e×\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eユースケース図\u003c/td\u003e\n          \u003ctd\u003e×\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eワイヤーフレーム\u003c/td\u003e\n          \u003ctd\u003e×\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eアーキテクチャ図\u003c/td\u003e\n          \u003ctd\u003e×\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eガントチャート\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n"
  }, 
  {
    "title": "塩の湿気を取る方法",
    "url": "https://www.ikemo3.com/inverted/salt/how-to-take-the-salt-moisture/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e固まってしまった塩の湿気を取る方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e湿気ということは水分なので、飛ばせばいいわけです。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e検索すると、「電子レンジで加熱する」か\n「フライパンで加熱する」がよく引っかかります。\n自分は、電子レンジで600W 30秒でやってみましたが、\nだいぶサラサラになりました。\n一旦固まったのを潰す作業は必要でしたが。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003e煎った生米を入れておくと、防湿になるという話もありました。\n生米そのままでもいいという記事と、ダメという記事がありましたが、\nそれは検証していません。\u003c/p\u003e\n"
  }, 
  {
    "title": "調味料",
    "url": "https://www.ikemo3.com/tags/seasoning/",
    "contents": ""
  }, 
  {
    "title": "CIFS",
    "url": "https://www.ikemo3.com/tags/cifs/",
    "contents": ""
  }, 
  {
    "title": "Hyperapp",
    "url": "https://www.ikemo3.com/dic/hyperapp/",
    "contents": "\u003ch2 id=\"hyperappとは\"\u003eHyperappとは\u003c/h2\u003e\n\u003cp\u003e超軽量なJavaScriptフレームワークです。\u003c/p\u003e\n\u003ch2 id=\"ソースコードが読めるのが良い\"\u003eソースコードが読めるのが良い\u003c/h2\u003e\n\u003cp\u003eQiitaの作者の記事で知りました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/JorgeBucaran/items/c48446babe0627e25ee6\"\u003e2018 年は Hyperapp の年だ - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e使ったことないので比較はできないのですが、\n少なくとも「ソースコードを読んで理解できる」というのは、\n他にはないメリットです。\n\u003ca href=\"/dic/virtual-dom/\"\u003e仮想DOM\u003c/a\u003eもこのソースコードを読んで理解しました。\u003c/p\u003e\n"
  }, 
  {
    "title": "Magazine",
    "url": "https://www.ikemo3.com/tags/magazine/",
    "contents": ""
  }, 
  {
    "title": "OCR",
    "url": "https://www.ikemo3.com/tags/ocr/",
    "contents": ""
  }, 
  {
    "title": "Strengthsfinder",
    "url": "https://www.ikemo3.com/tags/strengthsfinder/",
    "contents": ""
  }, 
  {
    "title": "Winny",
    "url": "https://www.ikemo3.com/dic/winny/",
    "contents": "\u003ch2 id=\"winnyとは\"\u003eWinnyとは\u003c/h2\u003e\n\u003cp\u003eP2P技術を利用した、ファイル共有ソフトです。\u003c/p\u003e\n\u003ch2 id=\"winnyに対する見解\"\u003eWinnyに対する見解\u003c/h2\u003e\n\u003cp\u003eWinnyに関する記事は結構読んだのですが、\n自分としては以下のような見解です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWinnyは違法なファイル共有以外に利用することは困難。\u003c/li\u003e\n\u003cli\u003e上記の理由から、作者が提訴されるのは悪いとまでは言えない。\u003c/li\u003e\n\u003cli\u003eしかし、罪となるかどうかは微妙なところ。無罪判決は良いとも悪いとも言えない。\u003c/li\u003e\n\u003cli\u003eこの事件を例にして開発者が萎縮するというのは\u003cstrong\u003e大反対。論外\u003c/strong\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分が見た中で、自分の考えに最も近いのは、以下の記事です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://takagi-hiromitsu.jp/diary/20091007.html\"\u003e高木浩光＠自宅の日記 - Winny事件を振り返る\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"本当に罪に問うべきは誰か\"\u003e本当に罪に問うべきは誰か\u003c/h2\u003e\n\u003cp\u003eこの事件で、作者に罪があるかどうかは何とも言えないのですが、\n少なくともはっきりしていることが一つあります。\nそれは、Winny作者を逮捕するなら、先に逮捕すべき人がいたことです。\u003c/p\u003e\n\u003cp\u003e誰かと言うと、ネットランナーなど、\n割れを推奨する雑誌の編集者や、ライターたちです。\n元々2chのダウンロード板で開発されていたらしいのですが、\nまあ普通の人はそこに寄り付きません。\n「アングラはアングラな場所で」が続いていたら、\n少なくとも、社会問題になることはなかったと思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "くたびれたおっさん",
    "url": "https://www.ikemo3.com/dic/tired-old-man/",
    "contents": "\u003ch2 id=\"くたびれたおっさんとは\"\u003eくたびれたおっさんとは\u003c/h2\u003e\n\u003cp\u003e生気のない中年男性のことです。\u003c/p\u003e\n\u003ch2 id=\"くたびれたおっさんのイメージ\"\u003eくたびれたおっさんのイメージ\u003c/h2\u003e\n\u003cp\u003e自分の中では、満員電車で週刊誌・タブロイドを読んでいるのが、\n「くたびれたおっさん」のイメージです。\nこれは以前書いた記事\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eにも書いたとおり、「ビジネスマン」の逆です。\nまあビジネスマンがいいかと言われると微妙なところがありますが。\u003c/p\u003e\n\u003ch2 id=\"ラインを越えて\"\u003eラインを越えて\u003c/h2\u003e\n\u003cp\u003e「くたびれたおっさん」という単語は別に珍しくもないのですが、\nふと見た以下の記事で、そのイメージが一致してたのが面白いです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.1101.com/taizoson/2018-05-22.html\"\u003e孫 泰蔵×糸井重里 対談「ご近所の社長は、やっぱりすごい人だった。」 - ほぼ日刊イトイ新聞\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eそのブルーハーツのマニアックな曲に\n「ラインを超えて」というのがあるんですけど、\n「満員電車の中　くたびれた顔をして　\n夕刊フジを読みながら　\n老いぼれていくのはゴメンだ」\nという歌詞があるんですね。\nその感覚だけは、ものすごくよくわかったんです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e「ラインを越えて」の歌詞は以下になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.utamap.com/showkasi.php?surl=X00004\"\u003eラインを越えて THE BLUE HEARTS 歌詞情報 - うたまっぷ 歌詞無料検索\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e今は記事が消えているのでアーカイブで。https://web.archive.org/web/20130519110839/https://nextstep.shogizuki.com/2013/04/blog-post_12.html\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ナナロク世代",
    "url": "https://www.ikemo3.com/log/76-generation/",
    "contents": "\u003ch2 id=\"孫泰蔵さん\"\u003e孫泰蔵さん\u003c/h2\u003e\n\u003cp\u003e1972年生まれなので少し離れてるんですが、\n以下の文章を読んだ時に、ホッとしたと同時に、色眼鏡で見ているなぁと感じました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.1101.com/taizoson/2018-05-21.html\"\u003e孫 泰蔵×糸井重里 対談「ご近所の社長は、やっぱりすごい人だった。」 - ほぼ日刊イトイ新聞\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e糸井\u003c/p\u003e\n\u003cp\u003eだけど今日の話を聞いてると\n孫さんにはその2浪分が\nすごく大事だったという気がしますね。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eなぜホッとしたのかというと、2浪ということは、\n実質的に1974年生まれと同じで、自分から見て近いなと。\n逆に言えば、1974年と1973年の間がものすごく断絶を感じていて、\n1973年より前に生まれた人には警戒するからです。\nまあ、その原因はだいたい1973年生まれの金髪DQNのせいですが。\u003c/p\u003e\n"
  }, 
  {
    "title": "マイコンBASICマガジン",
    "url": "https://www.ikemo3.com/dic/mycom-basic-magazine/",
    "contents": "\u003ch2 id=\"マイコンbasicマガジンとは\"\u003eマイコンBASICマガジンとは\u003c/h2\u003e\n\u003cp\u003eかつて存在した雑誌です。\n自分は1989年か1990年あたりから、4年くらい購読していました。\u003c/p\u003e\n\u003ch2 id=\"特徴\"\u003e特徴\u003c/h2\u003e\n\u003cp\u003eこの雑誌の大きな特徴は、自分で遊べるプログラムが掲載されていたこと。\nと言っても入力するのはめんどくさいのでほとんどやってませんでしたが。。。\u003c/p\u003e\n\u003cp\u003eその他には、ゲーム雑誌としても充実していました。\nパソコンのゲームだけでなく、\nスーパーファミコンのゲームなども扱っていました。\n例えば以下のようなゲームです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eストリートファイターII\u003c/li\u003e\n\u003cli\u003eF-ZERO\u003c/li\u003e\n\u003cli\u003eぷよぷよ\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e当時のライターは、ゲームの攻略本で有名な会社を立ち上げています。\n設立1989年なので、自分が見たときは既に独立してたんですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.bent.co.jp/\"\u003e株式会社スタジオベントスタッフ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "個別化",
    "url": "https://www.ikemo3.com/dic/individualization/",
    "contents": "\u003ch2 id=\"個別化とは\"\u003e個別化とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/strengthsfinder/\"\u003eストレングスファインダー\u003c/a\u003eで出てくる強みです。\n自分の4番目の強みです。\u003c/p\u003e\n\u003ch2\u003e\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eあなたは個別化という資質により、\n一人ひとりが持つユニークな個性に興味を惹かれます。\nあなたは一人ひとりの何が特別でどこが個性的なのかを覆い隠したくないので、\n人を一般化したり、あるいは類型化することに我慢できません。\nむしろ、個人個人のちがいに注目します。\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "設計書",
    "url": "https://www.ikemo3.com/dic/design-document/",
    "contents": "\u003ch2 id=\"設計書とは\"\u003e設計書とは\u003c/h2\u003e\n\u003cp\u003eあまり時間はかけたくないけど、ちゃんと書かないといけないものです。\u003c/p\u003e\n\u003ch2 id=\"ちゃんと書かないといけない\"\u003eちゃんと書かないといけない\u003c/h2\u003e\n\u003cp\u003e自分も後回しにしがちなのですが、設計書はちゃんと書かないとダメです。\n理由はもちろん「自分以外の人がやる可能性があるから」です。\n逆に言えば、ドキュメントがないと、他の人に引き継ぎできません\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://axia.co.jp/2018-05-15\"\u003eシステム開発を内製する会社でよくあるトラブル - 株式会社アクシア\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eもし１人体制だったとしても、\nそのエンジニアが将来に渡ってずっと退職もせずに\n休みもせずに働いてくれるのなら問題ないかもしれません。\nしかし企業経営を考える上でそんなお花畑的な思考であってよいはずはなく、\n退職するリスクや病気になるリスクも考えておく必要があります。だからこその複数人体制です。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eどんな業務でも「自分以外の誰かがこの業務を引き継ぐ可能性がある」\nことを視野に入れておく必要があり、\nだからこそドキュメントを残しておくことは継続的なシステムの保守を行っていく上で重要です。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"設計書は何で書く\"\u003e設計書は何で書く?\u003c/h2\u003e\n\u003cp\u003eよく言われるのが、Excel(しばしば\u003ca href=\"/dic/excel-grid-paper/\"\u003eExcel方眼紙\u003c/a\u003e)はダメだという意見です。\nこれは理解できますし、自分もExcelは使いたくないです。\nただ、いろいろ試行錯誤してみましたが、まだ決定版がありません。\u003c/p\u003e\n\u003cp\u003e今のところ、Markdown + 図をPlantUMLなどで書くというのが近いと思います。\n以下のサイトでも述べられています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://forza.cocolog-nifty.com/blog/2017/12/excel-2b1e.html\"\u003e仕様書にもExcel脱却が求められている: プログラマの思索\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただ、「図をテキストで書く」というのが、まだ洗練されてない感じです。\nさらに言えば、「図を描く」ということに対して、\n標準的な方法が確立されていません。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eまあ、ドキュメントがなくても何とかやらないといけないものなんですが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "包含",
    "url": "https://www.ikemo3.com/dic/inclusiveness/",
    "contents": "\u003ch2 id=\"包含とは\"\u003e包含とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/strengthsfinder/\"\u003eストレングスファインダー\u003c/a\u003eで出てくる強みです。\n自分が最も\u003cstrong\u003e弱い\u003c/strong\u003e点です。\u003c/p\u003e\n\u003ch2 id=\"自分の価値観に合わない\"\u003e自分の価値観に合わない\u003c/h2\u003e\n\u003cp\u003eこれが最下位なのは、非常に納得しました。\nなぜかというと、以下の点が自分の価値観と真逆だからです。\np168「第4章 34の強み」に以下のように書かれています。\n(太字は引用者)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eあなたの包含という資質は、\n「人はそれぞれちがっており、そのちがいに敬意を払うべきだ」\nという信念に必ずしも基づいているわけではありません。\n\u003cstrong\u003eむしろ、人は基本的にみな同じであるという確信に基づいています\u003c/strong\u003e。\n人は、みな同じように重要なのです。ですから、\nだれ1人として無視されてはいけないのです。\n私たち一人ひとりがグループに含まれるべきです。\n私たちはみな、少なくともそれに値するのです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e自分は、一人一人は違うという、\u003ca href=\"/dic/individualization/\"\u003e個別化\u003c/a\u003eの資質がかなり強く、\n「同じように」という点にかなり反感をもっています。\nだからこれ読んだときに「これは自分の弱みだよなぁ」と思いました。\u003c/p\u003e\n\u003cp\u003eでも、自分はこれは嫌じゃないです。\n「選ばれた者だけのグループを好む人たちとは正反対です。」\nという点には同意するので。\nただ、自分には向いてないだけです。だから弱みなんですが。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4532149479/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4532149479.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4532149479/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nさあ、才能(じぶん)に目覚めよう―あなたの5つの強みを見出し、活かす\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "0655",
    "url": "https://www.ikemo3.com/dic/0655/",
    "contents": "\u003ch2 id=\"0655とは\"\u003e0655とは\u003c/h2\u003e\n\u003cp\u003eEテレの06:55から始まる番組です。\n\u003ca href=\"/dic/pythagora-switch/\"\u003eピタゴラスイッチ\u003c/a\u003eと同じスタッフが関わっています。\u003c/p\u003e\n\u003cp\u003e兄弟番組として、23:55から始まる「Eテレ2355」や、\n気まぐれに放映される「ねこねこ55」もあります。\u003c/p\u003e\n"
  }, 
  {
    "title": "Proxy",
    "url": "https://www.ikemo3.com/tags/proxy/",
    "contents": ""
  }, 
  {
    "title": "Squid",
    "url": "https://www.ikemo3.com/manual/squid/",
    "contents": "\u003ch2 id=\"ポート番号\"\u003eポート番号\u003c/h2\u003e\n\u003cp\u003eデフォルトは3128です。\u003c/p\u003e\n\u003ch2 id=\"dockerでの起動方法\"\u003eDockerでの起動方法\u003c/h2\u003e\n\u003cp\u003e以下のDockerイメージを使うのが良さそうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sameersbn/docker-squid\"\u003esameersbn/docker-squid: Dockerfile to create a Docker container image for Squid proxy server\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://hub.docker.com/r/sameersbn/squid/~/dockerfile/\"\u003esameersbn/squid - Docker Hub\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://hub.docker.com/r/sameersbn/ubuntu/\"\u003esameersbn/ubuntu - Docker Hub\u003c/a\u003eから派生しています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"macでの実行方法\"\u003eMacでの実行方法\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/manual/homebrew/\"\u003eHomeBrew\u003c/a\u003eを使います。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# インストール\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ebrew install squid\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 開始\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ebrew services run squid\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 停止\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ebrew services stop squid\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e設定ファイルは \u003ccode\u003e/usr/local/etc/squid.conf\u003c/code\u003e ですが、\nデフォルトで以下のような設定がはいっているため、そのまま使えそうです。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e# デフォルト設定(IP)の一部\nacl localnet src 10.0.0.0/8 # RFC1918 possible internal network\nacl localnet src 172.16.0.0/12  # RFC1918 possible internal network\nacl localnet src 192.168.0.0/16 # RFC1918 possible internal network\n\n# ポート設定の一部\nacl SSL_ports port 443\nacl Safe_ports port 80      # http\nacl Safe_ports port 443     # https\n\u003c/code\u003e\u003c/pre\u003e"
  }, 
  {
    "title": "Tv",
    "url": "https://www.ikemo3.com/tags/tv/",
    "contents": ""
  }, 
  {
    "title": "VagrantのゲストOSにProxyを使う方法",
    "url": "https://www.ikemo3.com/inverted/vagrant/use-proxy/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eVagrantでゲストOSにProxyを使う方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e以下で確認しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVagrant 2.1.1 (macOS)\u003c/li\u003e\n\u003cli\u003eCentOS 7 Box (1804.2)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/tmatilai/vagrant-proxyconf\"\u003evagrant-proxyconf\u003c/a\u003eを使います。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003eプラグインをインストールします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003evagrant plugin install vagrant-proxyconf\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eそれから、サイトにあるように、Vagrantfileに以下のような設定を入れます。\n192.168.0.2がProxyのIPアドレスの例なので、これを変えてください。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eVagrant\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003econfigure(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;2\u0026#34;\u003c/span\u003e) \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003econfig\u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eVagrant\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003ehas_plugin?(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;vagrant-proxyconf\u0026#34;\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    config\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eproxy\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003ehttp     \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;http://192.168.0.2:3128/\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    config\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eproxy\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003ehttps    \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;http://192.168.0.2:3128/\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    config\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eproxy\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eno_proxy \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;localhost,127.0.0.1,.example.com\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003eyumなどのキャッシュ目的なら以下のものが使えそうです。\nまだ試していませんが。。。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://fgrehm.viewdocs.io/vagrant-cachier/\"\u003evagrant-cachier :: viewdocs.io\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Stock",
    "url": "https://www.ikemo3.com/tags/stock/",
    "contents": ""
  }, 
  {
    "title": "コピー・オン・ライト(Copy-on-Write)",
    "url": "https://www.ikemo3.com/dic/copy-on-write/",
    "contents": "\u003ch2 id=\"コピーオンライトcopy-on-writeとは\"\u003eコピー・オン・ライト(Copy-on-Write)とは\u003c/h2\u003e\n\u003cp\u003eプログラミングにおける手法で、\nコピー(複製)を要求されたときには何も行わずに、\n書き込みが要求されたときに始めて複製を行う方法です。\u003c/p\u003e\n\u003ch2 id=\"コピーオンライトのメリット\"\u003eコピー・オン・ライトのメリット\u003c/h2\u003e\n\u003cp\u003eメリットとしては、書き込みが行われない限り複製されないため、\nメモリやディスクなどの資源が有効活用されます。\u003c/p\u003e\n\u003cp\u003e一方で、実装が複雑になる可能性があるのが、デメリットです。\u003c/p\u003e\n\u003ch2 id=\"immutable\"\u003eimmutable\u003c/h2\u003e\n\u003cp\u003eコピー・オン・ライトのテクニックは、\n不変オブジェクト(Immutable)を実装するときにも使われます。\u003c/p\u003e\n"
  }, 
  {
    "title": "ツンデレ",
    "url": "https://www.ikemo3.com/dic/tsundere/",
    "contents": "\u003ch2 id=\"ツンデレとは\"\u003eツンデレとは\u003c/h2\u003e\n\u003cp\u003e萌え要素の1つです。\u003c/p\u003e\n\u003ch2 id=\"ツンデレの定義\"\u003eツンデレの定義\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://dic.pixiv.net/a/%E3%83%84%E3%83%B3%E3%83%87%E3%83%AC\"\u003epixivのツンデレの項\u003c/a\u003eには以下の3つが書かれています。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e移行型: ツン期からデレ期へ移行する(戻らない)\u003c/li\u003e\n\u003cli\u003e切替型: 人前だとツンツンだけど2人きりだとデレる\u003c/li\u003e\n\u003cli\u003e一体型: ツンとデレが常時混在している\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e自分の印象では、定義はともかく、\n「移行型」というのはマイナーな感じがします。\nたぶん移行してデレになるのは、物語の終わりの方だからじゃないかなぁと。\u003c/p\u003e\n\u003ch2 id=\"ツンデレという単語が生まれる以前のツンデレ\"\u003e「ツンデレ」という単語が生まれる以前のツンデレ\u003c/h2\u003e\n\u003cp\u003e自分の中ではツンデレと言えば、\nめぞん一刻の音無響子、らんま1/2の天道あかねが思いつきます。\u003c/p\u003e\n\u003cp\u003e響子さんは最終的にはデレデレなので、珍しい(?)移行型ですが、\n物語の途中はどちらかと言えば一体型です。\nその頃は「ヤキモチ焼き」という言葉で認識してたと思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "株主総会",
    "url": "https://www.ikemo3.com/dic/annual-general-meeting/",
    "contents": "\u003ch2 id=\"株主総会とは\"\u003e株主総会とは\u003c/h2\u003e\n\u003cp\u003e毎年一回(臨時除く)、\n株主が集まって、決算報告したり、議決権を行使したりするものです。\u003c/p\u003e\n\u003ch2 id=\"夏の季語\"\u003e夏の季語\u003c/h2\u003e\n\u003cp\u003e日本の多くの会社は3月決算を採用しています。\nそして、実質的には3ヶ月以内に株主総会を開かないといけないみたいなので、\nだいたい6月に株主総会が開かれます。\u003c/p\u003e\n\u003cp\u003eそのため、5月中旬頃から、株主総会の通知書が来ます。\nだから、夏の季語と言っても過言ではありません。\u003c/p\u003e\n\u003ch2 id=\"議決権行使\"\u003e議決権行使\u003c/h2\u003e\n\u003cp\u003e自分は影響を及ぼせるほど株は持ってないのですが(基本的に100株)、\n一応議決権はちゃんと考えた上で、行使しています。\n少なくとも、役員の大まかなプロフィールと、取締役会の出席率は見てます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://business.bengo4.com/category1/article44\"\u003eなぜ今、役員人事への反対票が増えているのか - BUSINESS LAWYERS\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Adobe",
    "url": "https://www.ikemo3.com/tags/adobe/",
    "contents": ""
  }, 
  {
    "title": "FreeBSD",
    "url": "https://www.ikemo3.com/dic/freebsd/",
    "contents": "\u003ch2 id=\"freebsdとは\"\u003eFreeBSDとは\u003c/h2\u003e\n\u003cp\u003eUnix系OSの1つです。\u003c/p\u003e\n\u003ch2 id=\"昔使ってた\"\u003e昔使ってた\u003c/h2\u003e\n\u003cp\u003e個人的な話なんですが、\n今はメインはデスクトップはmacOS、サーバはLinuxがほとんどですが、\n昔はFreeBSDをよく使っていました。確かバージョンが2.2.5の頃です。\u003c/p\u003e\n\u003cp\u003e何でLinuxを使うようになったかはハッキリとは覚えていないのですが、\nたぶん、自分が興味があったのがデスクトップ分野なので、\nパッケージ導入に時間をかけたくなかったのかなぁと。\u003c/p\u003e\n"
  }, 
  {
    "title": "Internet",
    "url": "https://www.ikemo3.com/tags/internet/",
    "contents": ""
  }, 
  {
    "title": "Next",
    "url": "https://www.ikemo3.com/tags/next/",
    "contents": ""
  }, 
  {
    "title": "Nextstep",
    "url": "https://www.ikemo3.com/tags/nextstep/",
    "contents": ""
  }, 
  {
    "title": "PDF",
    "url": "https://www.ikemo3.com/dic/pdf/",
    "contents": "\u003ch2 id=\"pdfとは\"\u003ePDFとは\u003c/h2\u003e\n\u003cp\u003ePortable Document Formatの略で、電子文書のファイル形式の1つです。\u003c/p\u003e\n\u003ch2 id=\"pdfとpostscript\"\u003ePDFとPostScript\u003c/h2\u003e\n\u003cp\u003e今はほとんど聞くことはないのですが、\nPDFの元になったのは、\u003ca href=\"/dic/postscript/\"\u003ePostScript\u003c/a\u003eという言語でした。\u003c/p\u003e\n\u003cp\u003eなぜPostScriptを知っているのかと言うと、\n\u003ca href=\"/dic/nextstep/\"\u003eNEXTSTEP\u003c/a\u003eで採用されていたのが、Display PostScript(DPS)という言語だったからです。\u003c/p\u003e\n\u003cp\u003eその後\u003ca href=\"/dic/next/\"\u003eNeXT\u003c/a\u003eが\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003eを乗っ取って\u003ca href=\"/dic/osx/\"\u003eMac OS X\u003c/a\u003eを出したときには、\nPDFベースの\u003ca href=\"https://developer.apple.com/documentation/quartz\"\u003eQuartz\u003c/a\u003eを採用しています。\u003c/p\u003e\n"
  }, 
  {
    "title": "PostScript",
    "url": "https://www.ikemo3.com/dic/postscript/",
    "contents": "\u003ch2 id=\"postscriptとは\"\u003ePostScriptとは\u003c/h2\u003e\n\u003cp\u003eAdobeによって開発されたページ記述言語です。\u003c/p\u003e\n\u003ch2 id=\"display-postscript\"\u003eDisplay PostScript\u003c/h2\u003e\n\u003cp\u003ePostScriptと言えば\u003ca href=\"/dic/nextstep/\"\u003eNEXTSTEP\u003c/a\u003eで採用された、\nDisplay PostScriptを思い出します。\nその名の通り、画面(ディスプレイ)に表示するための言語です。\u003c/p\u003e\n\u003cp\u003e自分は書けませんでしたが、このDisplay PostScriptを手書きできる人がいて、\n「(アイコンが)落ちるメール」を作って遊んでいました。\n今で言う「ブラクラ」みたいなものです(実害はないのですが)。\u003c/p\u003e\n"
  }, 
  {
    "title": "Puzzle",
    "url": "https://www.ikemo3.com/tags/puzzle/",
    "contents": ""
  }, 
  {
    "title": "WWW",
    "url": "https://www.ikemo3.com/dic/www/",
    "contents": "\u003ch2 id=\"wwwとは\"\u003eWWWとは\u003c/h2\u003e\n\u003cp\u003eWorld Wide Webの略で、要はこのサイトみたいな、\nHTTP/HTMLなどを使ったハイパーテキストのためのシステムです。\u003c/p\u003e\n\u003ch2 id=\"worldwidewebapp\"\u003eWorldWideWeb.app\u003c/h2\u003e\n\u003cp\u003e自分も触ったことがあるのですが、\n最初にWWWを実装したブラウザは、\u003ca href=\"/dic/next/\"\u003eNeXT\u003c/a\u003e上で動いていました。\u003c/p\u003e\n\u003cp\u003eそのため、最初のHTMLの仕様は、\nNeXTのクラスの実装(たぶんNSTextクラス)を元にしています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI just had to add hypertext, (by subclassing the Text object)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eそのときに使われたプロトコルはHTTP 0.9と呼ばれています。\u003c/p\u003e\n"
  }, 
  {
    "title": "お好み焼き",
    "url": "https://www.ikemo3.com/dic/okonomiyaki/",
    "contents": "\u003ch2 id=\"お好み焼きとは\"\u003eお好み焼きとは\u003c/h2\u003e\n\u003cp\u003e小麦粉とキャベツとその他具材を入れて混ぜた食べ物です。\u003c/p\u003e\n\u003ch2 id=\"三津浜焼き\"\u003e三津浜焼き\u003c/h2\u003e\n\u003cp\u003eお好み焼きといえば関西風、広島風が有名ですが、\n松山には三津浜焼きという食べ物があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://mitsuhama.net/funate-gumi/mitsuhamayaki/\"\u003e三津浜焼き推進プロジェクト\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"お好み焼き定食\"\u003eお好み焼き定食\u003c/h2\u003e\n\u003cp\u003e炭水化物に炭水化物と揶揄されることもあるお好み焼き定食ですが、\nこれは以下の理由から、\u003cstrong\u003e合理的な\u003c/strong\u003e食べ方です。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eお好み焼きは味が濃いため、ご飯は口直しとしてちょうどいい。\u003c/li\u003e\n\u003cli\u003e関西風お好み焼きの小麦粉は「つなぎ」で、メインは具材。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eただしもちろん、そばが入っているときは除外します。\nまた、ご飯もだいたいは小ライスです。\u003c/p\u003e\n\u003ch3 id=\"関西風お好み焼きの炭水化物\"\u003e関西風お好み焼きの炭水化物\u003c/h3\u003e\n\u003cp\u003e例えば、以下のレシピを見ると、一人前あたり小麦粉(薄力粉か中力粉)が\n50〜60g程度使われています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.nisshin.com/entertainment/recipe/detail/B-03.html\"\u003eお好み焼 | 小麦粉＆パスタレシピ | 日清製粉グループ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.tokugawa.jp/web/contents/oishisa/kan-recipe.html\"\u003eお好み焼き徳川の初心者お薦め　関西風お好み焼きレシピ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e小麦粉のうち、だいたい75%が炭水化物なので、38〜45gくらいの炭水化物が含まれます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.seifun.or.jp/kisochishiki/tokucyou.html\"\u003e小麦粉の成分・栄養上の特徴\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e一方で、ご飯1杯はだいたい59g程度の炭水化物が含まれます。\n100gの小ライスならだいたい37g程度の炭水化物になります。\n足しても75〜82gなので、ちょっと大盛りくらいですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://calorie.slism.jp/101088/\"\u003eご飯 - カロリー計算/栄養成分 | カロリーSlism\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分的にはこっちの方がないわーと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eうどん定食(かやくご飯でギリギリ)\u003c/li\u003e\n\u003cli\u003eラーメンライス(無理)\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "果物",
    "url": "https://www.ikemo3.com/dic/fruit/",
    "contents": "\u003ch2 id=\"果物とは\"\u003e果物とは\u003c/h2\u003e\n\u003cp\u003eだいたいはデザートとして食べられるものです。\u003c/p\u003e\n\u003ch2 id=\"野菜と果物の違いははっきりしない\"\u003e野菜と果物の違いははっきりしない\u003c/h2\u003e\n\u003cp\u003e適当なことを書きましたが、そもそも野菜と果物の違いははっきりしないようです。\nまあ、植物が自分を「野菜だ」「果物だ」と決めて育つわけではないですからね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.maff.go.jp/j/seisan/ryutu/yasai/yasai_teigi/\"\u003e野菜と果物の違いを教えてください。また、すいか、メロンは野菜、果物のどちらですか。：農林水産省\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"トマト裁判\"\u003eトマト裁判\u003c/h2\u003e\n\u003cp\u003eトマトが野菜か果物かを争われた裁判もあるらしいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://foodmg.nakamura-u.ac.jp/archives/348/index.html\"\u003eトマト裁判　発見!フードマネジメントな365日┃中村学園大学┃フード・マネジメント学科特設サイト\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://supreme.justia.com/cases/federal/us/149/304/case.html\"\u003eNix v. Hedden, (full text) :: 149 U.S. 304 (1893) :: Justia US Supreme Court Center\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "詰将棋",
    "url": "https://www.ikemo3.com/dic/tsume-shogi/",
    "contents": "\u003ch2 id=\"詰将棋とは\"\u003e詰将棋とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/shogi/\"\u003e将棋\u003c/a\u003eのルールを使ったパズルです。\u003c/p\u003e\n\u003ch2 id=\"有名な詰将棋集\"\u003e有名な詰将棋(集)\u003c/h2\u003e\n\u003ch3 id=\"将棋無双将棋図巧\"\u003e将棋無双・将棋図巧\u003c/h3\u003e\n\u003cp\u003e2つ合わせて「詰むや詰まざるや」というタイトルで本になっています。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4582802826/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4582802826.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4582802826/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n詰むや詰まざるや―将棋無双・将棋図巧 (東洋文庫 282)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e\u003ca href=\"/dic/yonenaga-kunio/\"\u003e米長邦雄\u003c/a\u003e永世棋聖が、\n「200題全部解けば四段になれる」と言ったことでも有名です。\n「勉強の仕方―頭がよくなる秘密」p112「第二章 才能を開花させる秘訣」に以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e羽生 以前、米長先生の本で『詰むや詰まざるや』の二〇〇題を全部解けば\n四段になれるという話がありましたね。ちょうど自分が奨励会に入会した頃です。\nみんなやっていて、私もやったんです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eあれをすべて自分の力で解ければ、いろいろ理論的なことが身につく\nということもあるんですけれども、もっと大切なことが隠されていますね。\n実は、それ以外のことを試されるというか、試験されるようなものなんです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e私の場合、最初一二歳ぐらいから始めて、二〇〇題全部を解くまでに\n六、七年かかっているんですよ。途中で中断したりしているんで……。\nそれで、終わってみて気づきました。技術がつくんじゃなくて、\nこの難解な詰将棋二〇〇題を何年もかけて解く情熱とか熱意があるから、\nつまり、そういう将棋への思いがあるから、プロになれるんだなと。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e米長 十代でそれを悟るとは、やっぱり、さすがだね。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこの「米長先生の本」というのは脚注に書いてありますが、以下の本です。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4396310498/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4396310498.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4396310498/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n人間における勝負の研究―さわやかに勝ちたい人へ (ノン・ポシェット)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eただ、この本には、ハッキリとはタイトルは書いていません。\np499「2章 集中力をどう持続するか」以下のような感じで書かれています。。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e実力がつくかつかないかは、\n自分が本当に\u0026quot;これだな\u0026quot;と気がついたやり方で精進するかどうかで決まってくる。\n子どもの時に、一年でも早くそのやり方に気がつくかどうかが、\n重要なポイントとなるのです。\nそれを気づかせるために一番よい方法は、詰将棋をやらせることです。\n一〇〇手でも二〇〇手でも――もっと長いものでは数百手にも及びますが、\nこういった詰将棋を解かせます。\n自分一人で詰将棋を解く場合には、いっさい他人の力を借りていません。\n作った人と自分とがいるだけ。一二三手詰めなら一二三手詰めを詰めて、\nああ、「自分の力だけで一二三手を読み切ったのだな」と思う。\nこのまじり気のない純粋な戦いが、詰将棋のよさです。\n答えが明らかだし、自分の力だけでその答えを出した充足感が、\n将棋の勉強に格好の刺激剤となります。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eハッキリとは書いていませんが、「長いものでは数百手にも及びますが」と\n書いているので、将棋図巧を指していることには間違いありません。\u003c/p\u003e\n\u003ch3 id=\"ミクロコスモス\"\u003eミクロコスモス\u003c/h3\u003e\n\u003cp\u003e世界最長手数の1,525手の詰将棋です。\u003c/p\u003e\n\u003ch3 id=\"ベンハー\"\u003eベン・ハー\u003c/h3\u003e\n\u003cp\u003e内藤國雄九段のが同名の映画に感動して作ったという詰将棋です。\nこのベン・ハーは、以下の書籍に載っています。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4839944156/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4839944156.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4839944156/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n【新装版】図式百番\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"驚愕の曠野\"\u003e驚愕の曠野\u003c/h3\u003e\n\u003cp\u003e同名の小説がタイトルの元ネタと思われるため、\n読みは「きょうがくのこうや」だと思います。\u003c/p\u003e\n\u003cp\u003eこの詰将棋は「裸玉」と呼ばれる、盤上に玉1枚だけの詰将棋です。\nしかも、玉の位置が初期位置の△5一にあるものです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.ne.jp/asahi/tetsu/toybox/kinen/kinen003.htm#kondo\"\u003e詰将棋おもちゃ箱 － 記念作品 － 史上初、完全玉座裸玉\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこの詰将棋の凄さを知るためには、以下のページにアクセスして、\n最後までスクロールしてみてください。\n膨大な変化手順に( ﾟдﾟ)となるでしょう。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.ne.jp/asahi/tetsu/toybox/kenkyu/51-01420009.htm\"\u003e裸玉（５一玉・角金４銀２歩９）\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "国際化(i18n)",
    "url": "https://www.ikemo3.com/dic/i18n/",
    "contents": "\u003ch2 id=\"国際化i18nとは\"\u003e国際化(i18n)とは\u003c/h2\u003e\n\u003cp\u003eプログラミングの文脈で、\nソフトウェアをいろいろな国、地域の文化に対応させることです。\n\u0026ldquo;i18n\u0026quot;と呼びますが、国際化を表す英単語 \u0026ldquo;internationalization\u0026rdquo; は長いため、\n最初の\u0026quot;i\u0026quot;と最後の\u0026quot;n\u0026quot;の間に18文字あることから、i18nと略されています。\u003c/p\u003e\n\u003ch2 id=\"国際化の例\"\u003e国際化の例\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eいろいろな文字コード(文字集合 + エンコーディング)に対応する。\u003c/li\u003e\n\u003cli\u003e表示するメッセージをユーザが使用する言語に「できるようにする」。\u003c/li\u003e\n\u003cli\u003e通貨の区切り\n\u003cul\u003e\n\u003cli\u003e小数点が\u0026rdquo;,\u0026ldquo;となる国がある\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eタイムゾーン、夏時間など\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"地域化l10nとの違い\"\u003e地域化(l10n)との違い\u003c/h2\u003e\n\u003cp\u003e国際化と合わせて使われる単語に地域化(localization, l10n)がありますが、\ni18nが「いろんな国、地域で使えるための仕組み」なのに対し、\nl10nは、「いろんな国、地域で使うための実際の対応」になります。\u003c/p\u003e\n\u003cp\u003e例えば、メニューにいろんな言語を使えるようにすることはi18nなのに対し、\n翻訳テキストを作成するのは、l10nの範疇です。\u003c/p\u003e\n"
  }, 
  {
    "title": "心理学",
    "url": "https://www.ikemo3.com/tags/psychology/",
    "contents": ""
  }, 
  {
    "title": "フェイクニュース",
    "url": "https://www.ikemo3.com/dic/fake-news/",
    "contents": "\u003ch2 id=\"フェイクニュースとは\"\u003eフェイクニュースとは\u003c/h2\u003e\n\u003cp\u003eまるで本物の\u003ca href=\"/dic/news/\"\u003eニュース\u003c/a\u003eがあるかのように誘導するための単語です。\u003c/p\u003e\n\u003ch2 id=\"要するに\"\u003e要するに\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eニュースなんてどこがソースだろうが信用できないほどデマが横行している。\u003c/li\u003e\n\u003cli\u003eニュースが伝えるのはほとんど事実の一面に過ぎなく(しかもネガティブなもの)、本質的にニュースというのはフェイクである。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eなので、「馬から落馬した」みたいな表現の、この単語は使いません。\u003c/p\u003e\n"
  }, 
  {
    "title": "Hyper-V",
    "url": "https://www.ikemo3.com/manual/hyper-v/",
    "contents": "\u003ch2 id=\"起動方法\"\u003e起動方法\u003c/h2\u003e\n\u003cp\u003e以下のいずれか。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e検索で見つける。「Hyper-V マネージャ」なので、\u0026lsquo;hy\u0026rsquo;あたりで出てくる。\u003c/li\u003e\n\u003cli\u003eスタートメニューの「Windows管理ツール」以下にある「Hyper-V マネージャ」を起動\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"注意点\"\u003e注意点\u003c/h2\u003e\n\u003cp\u003eまだ使い始めですが、気づいた点を。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eクイック作成だと128GBのディスクが作成される(可変なので通常は問題ないはずだが)。\u003c/li\u003e\n\u003cli\u003eCentOS 7のインストール時にはセキュアブートを無効にする必要がある。\n\u003cul\u003e\n\u003cli\u003e第二世代の仮想マシンで問題なさそうです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Freebsd",
    "url": "https://www.ikemo3.com/tags/freebsd/",
    "contents": ""
  }, 
  {
    "title": "iOS: プロビジョニングプロファイルの有効期限を確認する方法",
    "url": "https://www.ikemo3.com/inverted/ios/show-expiration-date-of-provisioning-profile/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eiOSのアプリ(拡張子\u0026rsquo;ipa\u0026rsquo;)のプロビジョニングプロファイルの\n有効期限を確認する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e以下の記事にある方法を使いました。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://qiita.com/shtnkgm/items/3a8503aa8d046604b7cf\"\u003eipaファイルに組み込んだ証明書の有効期限を確認する - Qiita\u003c/a\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eファイルをZIPファイルとみなして展開する。\u003c/li\u003e\n\u003cli\u003ePayload/*.appディレクトリに移動\u003c/li\u003e\n\u003cli\u003eembedded.mobileprovisionファイル(バイナリ)の中身を確認する。\u003ccode\u003eExpirationDate\u003c/code\u003eの次の行が有効期限になる。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e手順3は以下のようにsedコマンドで対応可能です。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003estrings embedded.mobileprovision \\\n  | sed -ne \u0026#34;/ExpirationDate/{n;p}\u0026#34; \\\n  | sed -e \u0026#39;s/.*\u0026lt;date\u0026gt;\\(.*\\)\u0026lt;\\/date\u0026gt;/\\1/\u0026#39;\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "VagrantでFreeBSDを使う方法",
    "url": "https://www.ikemo3.com/inverted/vagrant/use-freebsd/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eVagrantでFreeBSDを使う方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e以下の環境で確認しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVagrant 2.1.0\u003c/li\u003e\n\u003cli\u003eVirtualBox 5.2.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://app.vagrantup.com/freebsd\"\u003eFreeBSD公式のBox\u003c/a\u003eを使います。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下に記載されているVagrantfileを使います。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://forums.freebsd.org/threads/official-vagrant-freebsd-images.52717/\"\u003eOfficial Vagrant FreeBSD Images | The FreeBSD Forums\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e情報は以下から入手しました。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://otiai10.hatenablog.com/entry/2017/10/28/113723\"\u003e【追記あり】【解決】Mac上のVagrantでFreeBSDが動かない - DRYな備忘録\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Paradox",
    "url": "https://www.ikemo3.com/tags/paradox/",
    "contents": ""
  }, 
  {
    "title": "ラストムーバー・アドバンテージ",
    "url": "https://www.ikemo3.com/dic/last-mover-advantage/",
    "contents": "\u003ch2 id=\"ラストムーバーアドバンテージとは\"\u003eラストムーバー・アドバンテージとは\u003c/h2\u003e\n\u003cp\u003e「先行者利益」の逆です。\u003c/p\u003e\n\u003ch2 id=\"元ネタ\"\u003e元ネタ\u003c/h2\u003e\n\u003cp\u003e元はZERO TO ONEにあります。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4140816589/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4140816589.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4140816589/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nゼロ・トゥ・ワン 君はゼロから何を生み出せるか\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cblockquote\u003e\n\u003cp\u003eファーストムーバーアドバンテージ、先手必勝とよく昔われる。\n市場に最初に参入すればライバルのいない隙に大きな市場シェアを握れるという意味だ。\nそれがうまくいくこともあるけれど、先手を打つのは手段であって目的ではない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e少なくともこの点に関していえば、ビジネスはチェスに似ている。\nチェスのグランド·マスター、ホセ·ラウル·カパブランカはこう言った。\n勝ちたければ「何よりも先に終盤を学べ」。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e例としてチェスを挙げていますが、\u003ca href=\"/dic/shogi/\"\u003e将棋\u003c/a\u003eも同じです。\nいくら序盤が上手でも、終盤がヘボでは勝てません。\n終盤が弱いと呼ばれる棋士もいますが、\nあくまで「トッププロの中で比較して」弱いというだけで、\n一般の人と比べたら遥かに終盤は強いです。\u003c/p\u003e\n\u003cp\u003eちなみに、日本語版ではこの章のタイトルが「終盤を制する」となっており、\n分かりやすいです。\u003c/p\u003e\n\u003ch2 id=\"実証されている\"\u003e実証されている\u003c/h2\u003e\n\u003cp\u003eその時はまだ「こういう考え方もある(正しいと思うけど)」くらいだったんですが、\nこの考え方は実データがあるようです。ORIGINALSという本で見つけました[^1]。\nNo.2152(Kindle) 「イノベーターかフォロワーか――ビジネスの優位性」に以下のように書かれています。\n(漢数字→アラビア数字のみ変更)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eある研究で、マーケティングの研究者ピーター·ゴールダーとジェラ·テリスは、\n「先発企業」と「後発企業」の状況を比較した。先発企業とは、\nいち早く行動したパイオニアであり、\nある製品をいちばん最初に開発あるいは発売した企業だ。\n後発企業とは、開発や発売の開始が遅く、\n先発企業が市場を形成したのを見届けてから参入した企業だ。\n30以上の異なるカテゴリーにおいて何百ものブランドを分析したとろ、\nゴールダーとテリスは、失敗の確率に圧倒的な違いを見いだした。\n先発企業の失敗率は47パーセント、そして後発企業はわずか8パーセントだったのだ。\n先発企業は後発企業よりも約6倍、失敗率が高かったことになる。\n先発企業は、生き残っても、平均10パーセントの市場を占有するのみで、\n対する後発企業の占有率の平均は、28パーセントだった。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4837957684/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4837957684.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4837957684/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nORIGINALS 誰もが「人と違うこと」ができる時代 (単行本)\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "観る将",
    "url": "https://www.ikemo3.com/dic/miru-sho/",
    "contents": "\u003ch2 id=\"観る将とは\"\u003e観る将とは\u003c/h2\u003e\n\u003cp\u003e「観る専門」の将棋ファンのことです。\u003c/p\u003e\n\u003ch2 id=\"指すのは時間がかかる\"\u003e指すのは時間がかかる\u003c/h2\u003e\n\u003cp\u003e自分も最近はずっと「観る専門」になっています。\nその理由は一言で言うと、時間がないからです。\u003c/p\u003e\n\u003cp\u003e将棋は指すと結構時間がかかるんですよね。\nネット対戦すれば1時間くらいかかります。\nどうせやるなら大会に出るくらい本気でやりたいのですが、\n今はその時間が取れません。\u003c/p\u003e\n\u003ch2 id=\"観る将のための本\"\u003e観る将のための本\u003c/h2\u003e\n\u003cp\u003e「観る将」という言葉は出てきてない(はず)ですが、\n将棋を観ることを追求した本は以下にあります。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4120040283/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4120040283.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4120040283/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nシリコンバレーから将棋を観る―羽生善治と現代\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Bootstrap",
    "url": "https://www.ikemo3.com/manual/bootstrap/",
    "contents": "\u003cp\u003eBootstrap 4.1が対象です。\u003c/p\u003e\n\u003ch2 id=\"クラスからの逆引き\"\u003eクラスからの逆引き\u003c/h2\u003e\n\u003cp\u003e公式には見当たらないので、以下のサイトでチェック。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.w3schools.com/bootstrap4/bootstrap_ref_all_classes.asp\"\u003eBootstrap 4 All CSS Classes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ブレイクポイント\"\u003eブレイクポイント\u003c/h2\u003e\n\u003cp\u003eブラウザ(デバイス)の幅で表示を制御できるようにするためのシステムです。\nブラウザの幅が基準のため、PCでも幅を狭くすれば、\nスマートフォン向けの表示確認ができます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003exs: 576px未満(スマートフォンの縦)\u003c/li\u003e\n\u003cli\u003esm: 768px未満(スマートフォンの横)\u003c/li\u003e\n\u003cli\u003emd: 992px未満(タブレット)\u003c/li\u003e\n\u003cli\u003elg: 1200px未満(デスクトップ)\u003c/li\u003e\n\u003cli\u003exl: それ以上(広いデスクトップ)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eちなみに、\u003ca href=\"https://getbootstrap.com/docs/3.3/css/#responsive-utilities-classes\"\u003eV3\u003c/a\u003eからは1つズレています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eV4のxsはV3では存在しない\u003c/li\u003e\n\u003cli\u003eV4のsm ←→V3のxs\u003c/li\u003e\n\u003cli\u003eV4のmd ←→V3のsm\u003c/li\u003e\n\u003cli\u003eV4のlg ←→V3のmd\u003c/li\u003e\n\u003cli\u003eV4のxl ←→V3のlg\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"マージンパディング\"\u003eマージン・パディング\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://getbootstrap.com/docs/4.1/utilities/spacing/\"\u003eSpacing\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"ラベルバッジ\"\u003eラベル・バッジ\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://getbootstrap.com/docs/4.0/components/badge/\"\u003eBadges\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBootstrap 3ではLabelだったが、Bootstrap 4ではBadgeに名称が変わっている。\n注意すべきは、デフォルトでは\u003ccode\u003efont-weight: bold\u003c/code\u003eになっていること。\n日本語で太字にすると潰れがちなので、タグとかに使わないほうがいいかも。\u003c/p\u003e\n\u003ch2 id=\"位置指定\"\u003e位置指定\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eテキスト: \u003ca href=\"https://getbootstrap.com/docs/4.0/utilities/text/#text-alignment\"\u003eText alignment\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eブロックのセンタリング: \u003ca href=\"https://getbootstrap.com/docs/4.0/utilities/spacing/#horizontal-centering\"\u003eHorizontal centering\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Bootstrap",
    "url": "https://www.ikemo3.com/tags/bootstrap/",
    "contents": ""
  }, 
  {
    "title": "Bootswatch",
    "url": "https://www.ikemo3.com/dic/bootswatch/",
    "contents": "\u003ch2 id=\"bootswatchとは\"\u003eBootswatchとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/bootstrap/\"\u003eBootstrap\u003c/a\u003e用の無料のテーマです。\u003c/p\u003e\n\u003ch2 id=\"個人的な印象\"\u003e個人的な印象\u003c/h2\u003e\n\u003cp\u003eテーマごとに個人的な印象を書こうと思ってたんですが、\nよく考えたら自分が気に入らないのは以下の点くらいなんですよね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eフォントが明朝体なのは嫌\u003c/li\u003e\n\u003cli\u003eフォントが縦長なのは嫌\u003c/li\u003e\n\u003cli\u003eフォントが小さいのは嫌\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれくらいならカスタマイズしたほうが楽そうです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Hugo: テンプレートを1から作成する方法(最初だけ)",
    "url": "https://www.ikemo3.com/inverted/hugo/create-new-theme/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eテンプレートを1から作成する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eHugo 0.40.2で動作確認しています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eテーマによってはbaseof.htmlがなく、\nsingle.htmlから\u003ccode\u003e{{ partial \u0026quot;header\u0026quot; }}\u003c/code\u003eのようにして設定するものもありますが、\n全体の構造が分かりにくくなるため、\u003ca href=\"https://gohugo.io/templates/base/\"\u003ebaseof.html\u003c/a\u003eを作るのが良いです。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://gohugo.io/templates/base/\"\u003ebaseof.html\u003c/a\u003eを使うテンプレートは必ず、\u003ccode\u003e{{ define }}\u003c/code\u003eの定義が必要です。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://gohugo.io/templates/base/#example-base-template-lookup-order\"\u003eExample Base Template Lookup Order\u003c/a\u003eより、\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThe {{define}} block in this template tells Hugo that\nthe template is an extension of a base template.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003eまず、\u003ca href=\"https://github.com/gohugoio/hugoBasicExample\"\u003ehugoBasicExample\u003c/a\u003e をクローンして、\n\u003ccode\u003ehugo new theme\u003c/code\u003eコマンドでテーマを新規作成します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# hugoBasicExampleのクローン\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit clone https://github.com/gohugoio/hugoBasicExample.git\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd hugoBasicExample\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# テーマの作成(例: \u0026#39;simple\u0026#39;テーマ)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ehugo new theme simple\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eすると、\u003ccode\u003ethemes/simple\u003c/code\u003e ディレクトリに、テーマのスケルトンができます。\nこのディレクトリ以下に、次のようにファイルを追加編集します。\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003elayouts/_default/baseof.html\u003c/code\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-html\" data-lang=\"html\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003ehtml\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003ehead\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;\u003cspan style=\"color:#f92672\"\u003emeta\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003echarset\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;utf-8\u0026#34;\u003c/span\u003e /\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e\u0026lt;!-- Bootstrap CSS --\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;\u003cspan style=\"color:#f92672\"\u003etitle\u003c/span\u003e\u0026gt;{{ block \u0026#34;title\u0026#34; . }}{{ .Page.Title }} - {{ .Site.Title }}{{ end }}\u0026lt;/\u003cspan style=\"color:#f92672\"\u003etitle\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;/\u003cspan style=\"color:#f92672\"\u003ehead\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003ebody\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;/\u003cspan style=\"color:#f92672\"\u003ebody\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ehtml\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ccode\u003elayouts/_default/single.html\u003c/code\u003e および \u003ccode\u003elayouts/_default/list.html\u003c/code\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e{{ define \u0026#34;title\u0026#34; }}\n{{ .Page.Title }} - {{ .Site.Title }}\n{{ end }}\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ccode\u003elayouts/index.html\u003c/code\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e{{ define \u0026#34;title\u0026#34; }}\n{{- .Site.Title -}}\n{{ end }}\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e表示を確認します。hugoBasicExampleのトップディレクトリに移動して、\n以下のコマンドを打ちます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ehugo serve -t テーマ名\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e以下のURLにアクセスして、中身が表示されたらOKです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ehttp://localhost:1313/about/\u003c/li\u003e\n\u003cli\u003ehttp://localhost:1313/post/creating-a-new-theme/\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Unicode",
    "url": "https://www.ikemo3.com/manual/unicode/",
    "contents": "\u003ch2 id=\"java\"\u003eJava\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/util/regex/Pattern.html\"\u003ejava.util.regex.Pattern\u003c/a\u003eでは、\nUnicodeのブロックを\u003ccode\u003e\\p{InGreek}\u003c/code\u003eのように定義できます。\n有効なブロックは以下のように記載されています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePatternのサポートするブロック名は、\nUnicodeBlock.forNameによって受け入れられ、定義される有効なブロック名です。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Character.UnicodeBlock.html#forName-java.lang.String-\"\u003ejava.lang.Character.UnicodeBlock#forName\u003c/a\u003eでは以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eファイルBlocks-\u003c!-- raw HTML omitted --\u003e.txtは、特定のバージョンの標準のブロックを定義します。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこのファイルは見つかりませんでしたが、\nおそらく以下のパスにあるものが正しいです。\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ehttps://www.unicode.org/Public/\u0026lt;バージョン\u0026gt;/ucd/Blocks.txt\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eJava SE 8は6.2.0に対応しているので、以下のパスになります。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.unicode.org/Public/6.2.0/ucd/Blocks.txt\"\u003ehttps://www.unicode.org/Public/6.2.0/ucd/Blocks.txt\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e日本語でよく使われるのはこのあたりでしょうか。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHiragana\u003c/li\u003e\n\u003cli\u003eKatakana\u003c/li\u003e\n\u003cli\u003eCJK Unified Ideographs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e一方で、\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Character.UnicodeBlock.html#forName-java.lang.String-\"\u003ejava.lang.Character.UnicodeBlock#forName\u003c/a\u003eでは、\n以下のように書かれています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e大文字と小文字は区別されない\u003c/li\u003e\n\u003cli\u003e全ての空白を削除した正規ブロック名を受け入れる\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eなので、\u0026lsquo;CJK Unified Ideographs\u0026rsquo;の場合は、\n\u0026lsquo;CjkUnifiedIdeographs\u0026rsquo;と渡しても問題なさそうです。\u003c/p\u003e\n\u003ch2 id=\"html\"\u003eHTML\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://developer.mozilla.org/en-US/docs/Glossary/Entity\"\u003eEntity - Glossary | MDN\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026lsquo;\u0026amp;#\u0026rsquo; + 数値 + \u0026lsquo;;\u0026rsquo;、または\u0026rsquo;\u0026amp;#x\u0026amp;\u0026rsquo; + 16進数値 + \u0026lsquo;;\u0026lsquo;で指定可能。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"nfcnfd問題apple\"\u003eNFC/NFD問題(Apple)\u003c/h2\u003e\n\u003cp\u003eAppleのOSでは、濁点を含むもの、\n例えば「プ」を「フ」と「゜」に分解して格納していたため、\n他のOSと互換性がなくなっていました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNFC: 「プ」のまま(他のOSと同じ)\u003c/li\u003e\n\u003cli\u003eNFD: 「フ」と「゜」(互換性の問題あり)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"チェック方法\"\u003eチェック方法\u003c/h3\u003e\n\u003cp\u003eファイル名に関しては以下のようにすることで、\nホームディレクトリ以下を一括でチェックできます。\n(NFDになっているものを表示)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003econvmv -f utf8 --nfd -t utf8 --nfc -r ~\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e簡単なものなら、\u003ccode\u003els | od -hc\u003c/code\u003eなどで、目視確認もできます。\nUTF-8のひらがなカタカナは以下のサイトで調べられます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://aspiration.sakura.ne.jp/wiki/index.php?develop%2FUTF-8%E3%81%B2%E3%82%89%E3%81%8C%E3%81%AA%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A%E8%A1%A8\"\u003edevelop/UTF-8ひらがなカタカナ表 - PukiWiki Plus!\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分の環境で確認してみたところ、\n「touchでAPFSで新規に作成したファイル」については問題なさそうでした。\u003c/p\u003e\n\u003cp\u003eAppleのサイトには以下のようにFAQがあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/APFS_Guide/FAQ/FAQ.html#//apple_ref/doc/uid/TP40016999-CH6-DontLinkElementID_3\"\u003eFrequently Asked Questions\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eAPFS preserves the normalization of the filename and uses hashes of the normalized form of the filename to provide normalization insensitivity, whereas HFS+ stores the normalized form of the filename on disk to provide normalization insensitivity.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eAPFSはファイル名は正規化を保持するが、\nファイル名を正規化したものをハッシュとして使用すると書かれているようです。\u003c/p\u003e\n\u003cp\u003eハッシュはおそらく検索用のため、検索するときは\n正規化されているかどうかに関わらずヒットするようです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Web Components",
    "url": "https://www.ikemo3.com/dic/web-components/",
    "contents": "\u003ch2 id=\"web-componentsとは\"\u003eWeb Componentsとは\u003c/h2\u003e\n\u003cp\u003eWebページにカスタムHTML要素を使えるようにするための技術です。\u003c/p\u003e\n\u003ch2 id=\"ライブラリ\"\u003eライブラリ\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.webcomponents.org/introduction\"\u003eLibraries for building web components\u003c/a\u003eより、GitHubのスターの順(2018-05-13)で並べています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Polymer/polymer\"\u003ePolymer\u003c/a\u003e: 19545\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionic-team/stencil\"\u003eStencil\u003c/a\u003e: 2941\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/skatejs/skatejs\"\u003eSkateJS\u003c/a\u003e: 2596\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-tag/core\"\u003eX-Tag\u003c/a\u003e: 1182\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eavichay/slim.js\"\u003eSlim.js\u003c/a\u003e: 471\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bosonic/bosonic\"\u003eBosonic\u003c/a\u003e: 216\n\u003cul\u003e\n\u003cli\u003e2016年から動きがないようです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "ImageMagick",
    "url": "https://www.ikemo3.com/manual/imagemagick/",
    "contents": "\u003ch2 id=\"情報取得identify\"\u003e情報取得(identify)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://www.imagemagick.org/script/identify.php\"\u003eidentify\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"特定の情報のみ抜き出す\"\u003e特定の情報のみ抜き出す\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003e-format\u003c/code\u003eオプションを使用する。\u003c/p\u003e\n\u003cp\u003e使用例として、画像の幅と高さのみ表示するコマンド。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eidentify -format \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;%w %h\\n\u0026#34;\u003c/span\u003e image.png\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"変換convert\"\u003e変換(convert)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://www.imagemagick.org/script/convert.php\"\u003econvert\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"オプションの順番が大事\"\u003eオプションの順番が大事\u003c/h3\u003e\n\u003cp\u003eImageMagickのconvertコマンドでは、\n指定したオプションが左から右の順番で適用されます。\n(検索したら出てきましたが、公式の記述は見つかりませんでした。。。)\u003c/p\u003e\n\u003ch3 id=\"geometry\"\u003egeometry\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.imagemagick.org/script/command-line-processing.php#geometry\"\u003eImage Geometry\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"gravity\"\u003egravity\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.imagemagick.org/script/command-line-options.php#gravity\"\u003egravity\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eどこに重力が掛かっているかを指定します。\n例えば、cropの前に定義すると、以下のようになります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-gravity north\u003c/code\u003e: 下が切り取られる\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-gravity south\u003c/code\u003e: 上が切り取られる\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-gravity center\u003c/code\u003e: 上下が切り取られる\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"切り抜きcrop\"\u003e切り抜き(crop)\u003c/h3\u003e\n\u003cp\u003e例として、上下5%ずつ切り取る場合は以下のようになります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003econvert in.png -gravity center -crop 100%x90+0+0 out.png\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ca href=\"http://www.imagemagick.org/script/command-line-options.php#crop\"\u003ecrop\u003c/a\u003e\u003c/p\u003e\n"
  }, 
  {
    "title": "Vuepress",
    "url": "https://www.ikemo3.com/tags/vuepress/",
    "contents": ""
  }, 
  {
    "title": "VuePressをNetlifyで動かす方法",
    "url": "https://www.ikemo3.com/inverted/vuepress/run-on-netlify/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/vuepress/\"\u003eVuePress\u003c/a\u003eを\u003ca href=\"/dic/netlify/\"\u003eNetlify\u003c/a\u003eで動かす方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e手元で動作確認するために\u003ca href=\"/dic/docker/\"\u003eDocker\u003c/a\u003eを使っています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eDockerで動かすときには、yarnのバージョンを1.6.0にしています。\n1.5.1だと以下のエラーが出るためです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yarnpkg/yarn/issues/5457\"\u003e\u003ccode\u003eyarn run\u003c/code\u003e has changed behaviour, and generates a \u003ccode\u003eyarn-error.log\u003c/code\u003e file for exit code 1 · Issue #5457 · yarnpkg/yarn\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eyarnのアップグレードの手順は以下に記載されています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nodejs/docker-node/blob/master/docs/BestPractices.md#upgradingdowngrading-yarn\"\u003edocker-node/BestPractices.md at master · nodejs/docker-node\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003epackage.jsonは以下のようになります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-json\" data-lang=\"json\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;dependencies\u0026#34;\u003c/span\u003e: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;vuepress\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;^0.8.4\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;devDependencies\u0026#34;\u003c/span\u003e: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;yarn\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;^1.6.0\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;scripts\u0026#34;\u003c/span\u003e: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;docs:dev\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;vuepress dev docs\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;docs:build\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;vuepress build docs\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003enetlify.tomlは以下になります。\nこれで、Netlifyへのデプロイが可能です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-toml\" data-lang=\"toml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e[\u003cspan style=\"color:#a6e22e\"\u003ebuild\u003c/span\u003e]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003ecommand\u003c/span\u003e = \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;yarn docs:build\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003epublish\u003c/span\u003e = \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;docs/.vuepress/dist\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eDockerで実行する場合は、以下のようにDockerfileを記載します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Dockerfile\" data-lang=\"Dockerfile\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eFROM\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003enode:9\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# upgrade yarn\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eENV\u003c/span\u003e YARN_VERSION 1.6.0\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRUN\u003c/span\u003e curl -fSLO --compressed \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;https://yarnpkg.com/downloads/\u003c/span\u003e$YARN_VERSION\u003cspan style=\"color:#e6db74\"\u003e/yarn-v\u003c/span\u003e$YARN_VERSION\u003cspan style=\"color:#e6db74\"\u003e.tar.gz\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e ln -snf /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e ln -snf /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e rm yarn-v$YARN_VERSION.tar.gz\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eVOLUME\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e/opt/vuepress\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eWORKDIR\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e/opt/vuepress\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRUN\u003c/span\u003e yarn global add vuepress\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eEXPOSE\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e8080\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eCMD\u003c/span\u003e [\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;yarn\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;docs:dev\u0026#34;\u003c/span\u003e]\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eDockerは以下のように実行してください。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker run -it -p 8080:8080 -v $PWD:/opt/vuepress イメージ名\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "man",
    "url": "https://www.ikemo3.com/dic/man/",
    "contents": "\u003ch2 id=\"manとは\"\u003emanとは\u003c/h2\u003e\n\u003cp\u003eLinuxなどのUnix系OSで使われる\u003ca href=\"/dic/cli/\"\u003eCLI\u003c/a\u003eマニュアルです。\u003c/p\u003e\n\u003ch2 id=\"セクション\"\u003eセクション\u003c/h2\u003e\n\u003cp\u003e詳細はWikipedia(\u003ca href=\"https://en.wikipedia.org/wiki/Man_page#Manual_sections\"\u003e英語\u003c/a\u003e、\u003ca href=\"https://ja.wikipedia.org/wiki/Man%E3%83%9A%E3%83%BC%E3%82%B8#%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%E3%81%AE%E7%AB%A0%E7%AB%8B%E3%81%A6\"\u003e日本語\u003c/a\u003e)あたりで見てください。\nLinuxでは\u003ccode\u003eman man\u003c/code\u003eコマンドで(manコマンドのマニュアル)も参照できます。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eコマンド\u003c/li\u003e\n\u003cli\u003eシステムコール\u003c/li\u003e\n\u003cli\u003eライブラリ\u003c/li\u003e\n\u003cli\u003e特殊ファイルとドライバ\u003c/li\u003e\n\u003cli\u003eファイル形式\u003c/li\u003e\n\u003cli\u003eゲーム\u003c/li\u003e\n\u003cli\u003e雑多なもの\u003c/li\u003e\n\u003cli\u003e管理コマンド\u003c/li\u003e\n\u003cli\u003eカーネルルーチン\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eよく使うのは、1(コマンド)と5(ファイル形式)、8(管理コマンド)です。\u003c/p\u003e\n"
  }, 
  {
    "title": "Markup",
    "url": "https://www.ikemo3.com/tags/markup/",
    "contents": ""
  }, 
  {
    "title": "Vagrantで古いCentOSを使用したい場合",
    "url": "https://www.ikemo3.com/inverted/vagrant/use-old-centos/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eVagrantで、CentOSの古いバージョンを使用したい場合の方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e以下の環境で確認しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emacOS 10.13.4\u003c/li\u003e\n\u003cli\u003ePacker 1.2.2\u003c/li\u003e\n\u003cli\u003eVagrant 2.1.0\u003c/li\u003e\n\u003cli\u003eVirtualBox 5.2.10\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://app.vagrantup.com/boxes/search\"\u003eVagrant Cloud\u003c/a\u003eを検索すれば出てきますが、\nどうやって作られているか分からないものを使うのは不安なので、\n自分で作るのがいいかと思います。\u003c/p\u003e\n\u003cp\u003eゼロから作るのは大変なので、\n以下のリポジトリを参考にしました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hansode/packer-vagrant-templates\"\u003ehansode/packer-vagrant-templates: Packer Vagrant Templates for CentOS/Fedora\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003egit clone https://github.com/hansode/packer-vagrant-templates.git\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e作成したいバージョンのディレクトリに移動\u003c/li\u003e\n\u003cli\u003eks.cfgを編集\n\u003cul\u003e\n\u003cli\u003eデフォルトではJAISTを見ていますが、このディレクトリは存在しません。\u003ccode\u003ehttp://vault.centos.org/バージョン/isos/アーキテクチャ/\u003c/code\u003e に書き換えてください\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emake build\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e環境によりますが、15分くらい待つと完成します。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"yum-updateをするための手順\"\u003eyum updateをするための手順\u003c/h3\u003e\n\u003cp\u003eそのままだと\u003ccode\u003eyum update\u003c/code\u003eができないため、\u003ccode\u003e/etc/yum.repos.d/CentOS-Base.repo\u003c/code\u003eを編集してください。\n以下の記事が参考になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://d.hatena.ne.jp/tmatsuu/20120324/1332578375\"\u003eyum updateできなくなった古いCentOSでyumコマンドを復活させる方法 - Dマイナー志向\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下のコマンドで、sedで一括変更できます。\u003c/p\u003e\n\u003cp\u003eバージョン: 6の場合、\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esed -ie \u0026#39;s/^mirrorlist\\(.*\\)/#mirrorlist\\1/\u0026#39; /etc/yum.repos.d/CentOS-Base.repo\nsed -ie \u0026#39;s/^#baseurl=.*\\/$releasever\\/\\(.*\\)\\/$basearch/baseurl=http:\\/\\/vault.centos.org\\/6\\/\\1\\/$basearch/\u0026#39; /etc/yum.repos.d/CentOS-Base.repo\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e一通りチェックしたらGitHubに上げておこうかと。。。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "YAML",
    "url": "https://www.ikemo3.com/manual/yaml/",
    "contents": "\u003ch2 id=\"複数行\"\u003e複数行\u003c/h2\u003e\n\u003cp\u003e仕様見てもさっぱり分からんので、これ見たほうがいいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://yaml-multiline.info/\"\u003eYAML Multiline Strings\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"検証lint\"\u003e検証(lint)\u003c/h2\u003e\n\u003ch3 id=\"cli版\"\u003eCLI版\u003c/h3\u003e\n\u003cp\u003e以下のツールがいいと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adrienverge/yamllint\"\u003eadrienverge/yamllint: A linter for YAML files.\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmazon Linuxではpipでインストールします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003epip install --user yamllint\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e使う場合は以下のように。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eyamllint ファイル名\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e設定を変えたい場合は以下のようにします。\u003c/p\u003e\n\u003cp\u003e例えば\u003ca href=\"https://yamllint.readthedocs.io/en/stable/configuration.html#default-configuration\"\u003eデフォルト設定\u003c/a\u003eでは\n1行が80文字以内であることをチェックしますが、これをオフにする場合は以下のように。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eyamllint -d \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;{extends: default, rules: {line-length: false}}\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"vs-code版\"\u003eVS Code版\u003c/h3\u003e\n\u003cp\u003eこれでいいかも。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redhat-developer/vscode-yaml\"\u003eredhat-developer/vscode-yaml: YAML support for VS Code with built-in kubernetes syntax support\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "ポート番号から使用しているプログラムを調べる",
    "url": "https://www.ikemo3.com/inverted/network/port-to-program/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eポート番号より、使用しているプログラムを調べる方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003elsof(list open files)コマンドを使います。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003erootユーザになる、もしくはsudoコマンドで以下のようにします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esudo lsof -i :22\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003e詳細は\u003ccode\u003eman lsof\u003c/code\u003eで調べてください。\u003c/p\u003e\n"
  }, 
  {
    "title": "飲み物",
    "url": "https://www.ikemo3.com/dic/drink/",
    "contents": "\u003ch2 id=\"飲み物とは\"\u003e飲み物とは\u003c/h2\u003e\n\u003cp\u003eごくごくするものです。\u003c/p\u003e\n\u003ch2 id=\"オフィスワークで飲む飲み物\"\u003eオフィスワークで飲む飲み物\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://dime.jp/genre/504638/3/\"\u003e管理栄養士が薦める仕事中に飲むべきドリンク｜＠DIME アットダイム\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eこの記事だと以下がおすすめだそうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e水(ミネラルウォーター)\u003c/li\u003e\n\u003cli\u003e炭酸水\u003c/li\u003e\n\u003cli\u003eフレーバーウォーター\n\u003cul\u003e\n\u003cli\u003e「フレーバーウォーター＝風味が入った水」です。最近良く見かけますね。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e正直、「まあそうやろな」という感じですね。\n炭酸飲料は0カロリーでも味が付いているものが多くてごくごく飲んでしまうし、\nそれ以上に、カフェインでトイレが近くなるのが辛い。\n暑すぎなければ白湯(さゆ、ぬるいお湯)も良さそうです。\u003c/p\u003e\n\u003cp\u003eコーヒーもほどほどならいいんですが、\n飲みすぎると頭が冴えすぎて逆に調子悪くなります。\u003c/p\u003e\n\u003cp\u003eあとは麦茶、緑茶、ハーブティくらいですね。\nハーブティは利尿作用があるものが多いので注意が必要ですが。。。\u003c/p\u003e\n"
  }, 
  {
    "title": "Cloud",
    "url": "https://www.ikemo3.com/tags/cloud/",
    "contents": ""
  }, 
  {
    "title": "Google Analytics",
    "url": "https://www.ikemo3.com/manual/google-analytics/",
    "contents": "\u003ch2 id=\"自分のアクセスを除外する方法\"\u003e自分のアクセスを除外する方法\u003c/h2\u003e\n\u003cp\u003e以下の方法を参考にしました。\nセットしましたがまだうまく行っているかどうかは確認していません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://vdeep.net/analytics-exclude-use-cookie\"\u003eGoogle Analyticsで自分のスマホのアクセスを除外【iPhone, Android】 | vdeep\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eフィルタは以下のように設定します。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eGoogle Analyticsホーム画面\u003c/li\u003e\n\u003cli\u003e右下の「管理」をクリック\u003c/li\u003e\n\u003cli\u003e3つリストがあるので、右側の「ビュー」に注目して、その5番目にある「フィルタ」をクリック\u003c/li\u003e\n\u003cli\u003e「フィルタを追加」をクリック\u003c/li\u003e\n\u003cli\u003eフィルタの設定\n\u003cul\u003e\n\u003cli\u003eラジオボタンで「新しいフィルタを作成」を選択\u003c/li\u003e\n\u003cli\u003eフィルタ名を入力(分かりやすいもの)\u003c/li\u003e\n\u003cli\u003eフィルタの種類は「カスタム」を選択\u003c/li\u003e\n\u003cli\u003eラジオボタンで「除外」を選択\u003c/li\u003e\n\u003cli\u003eフィルタフィールドで「その他→ユーザー定義」を選択\u003c/li\u003e\n\u003cli\u003eフィルタパターンに「no_report」と入力\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eCookieの設定は以下のサイトを参考にしました。\nブックマークに入れないとダメみたいですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://appbu.jp/iphone-safari-cookie\"\u003eiPhone・iPadのSafariでCookieを確認する方法・まとめ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Google Cloud",
    "url": "https://www.ikemo3.com/manual/google-cloud/",
    "contents": "\u003ch2 id=\"認証情報\"\u003e認証情報\u003c/h2\u003e\n\u003ch3 id=\"google-cloud-visionの場合\"\u003eGoogle Cloud Visionの場合\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-vision/master/guides/authentication\"\u003egoogle-cloud-ruby\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e環境変数に設定する。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eプロジェクトID\n\u003cul\u003e\n\u003cli\u003eVISION_PROJECT\u003c/li\u003e\n\u003cli\u003eGOOGLE_CLOUD_PROJECT\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e認証情報(JSON)\n\u003cul\u003e\n\u003cli\u003eファイルパス\n\u003cul\u003e\n\u003cli\u003eVISION_KEYFILE\u003c/li\u003e\n\u003cli\u003eGOOGLE_CLOUD_KEYFILE\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eJSONコンテンツ(Dockerなどの場合)\n\u003cul\u003e\n\u003cli\u003eVISION_KEYFILE_JSON\u003c/li\u003e\n\u003cli\u003eGOOGLE_CLOUD_KEYFILE_JSON\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ライブラリ\"\u003eライブラリ\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/google-cloud-ruby\"\u003eGoogleCloudPlatform/google-cloud-ruby: Google Cloud Client Library for Ruby\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"google-cloud-vision\"\u003eGoogle Cloud Vision\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRuby\n\u003cul\u003e\n\u003cli\u003eライブラリ: \u003ca href=\"https://github.com/GoogleCloudPlatform/google-cloud-ruby/tree/master/google-cloud-vision\"\u003egoogle-cloud-ruby/google-cloud-vision at master · GoogleCloudPlatform/google-cloud-ruby\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eドキュメント: \u003ca href=\"http://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-vision/v0.28.0/google/cloud/vision\"\u003egoogle-cloud-ruby\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "唐揚げ",
    "url": "https://www.ikemo3.com/dic/karaage/",
    "contents": "\u003ch2 id=\"唐揚げとは\"\u003e唐揚げとは\u003c/h2\u003e\n\u003cp\u003e調味料や衣を付けて油で揚げる料理です。\u003c/p\u003e\n\u003ch2 id=\"唐揚げにレモン問題\"\u003e唐揚げにレモン問題\u003c/h2\u003e\n\u003cp\u003e唐揚げにレモンをかけるかどうかは、\nSplatoon 2のフェスのネタになるほど論争になっています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.famitsu.com/news/201711/13145917.html\"\u003e『スプラトゥーン2』第4回フェス“からあげにレモンかける？ レモンかける vs レモンかけない”の結果が発表 - ファミ通.com\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分はレモンはかけない派ですが、\n単に\u003cstrong\u003eめんどくさい\u003c/strong\u003eだけなので、レモンかけられても別に気にしない人です。\u003c/p\u003e\n\u003ch2 id=\"おすすめ唐揚げ\"\u003eおすすめ唐揚げ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e店で食べるなら\u003ca href=\"/dic/kariju/\"\u003eカリッジュ\u003c/a\u003eが美味しいです。\u003c/li\u003e\n\u003cli\u003e冷凍食品は\u003ca href=\"http://www.nichireifoods.co.jp/product/detail/sho_id148/\"\u003e特から\u003c/a\u003eが結構美味しいです。\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "CSS",
    "url": "https://www.ikemo3.com/dic/css/",
    "contents": "\u003ch2 id=\"cssとは\"\u003eCSSとは\u003c/h2\u003e\n\u003cp\u003eCascading Style Sheetsの略で、\nHTMLが文書の構造をあらわすのに対し、CSSは見た目を制御するものです。\u003c/p\u003e\n\u003ch2 id=\"cssがデファクトスタンダードになるまで\"\u003eCSSがデファクトスタンダードになるまで\u003c/h2\u003e\n\u003cp\u003eCSSがデファクトスタンダードになるまでは、\n2つの対抗する規格がありました。\u003c/p\u003e\n\u003cp\u003e1つ目が、\u003ca href=\"http://www.jclark.com/dsssl/\"\u003eDSSSL\u003c/a\u003eという言語です。\nこれはScheme言語ベースで作られています。\nDSSSLは形を変えて、XSL(XSL-FO)として残っています[^1]。\u003c/p\u003e\n\u003cp\u003e2つ目が、JavaScript Style Sheets(JSSS)という言語です。\nこれはNetscape 4で使われていましたが、\nその後採用されることなく、消えていきました。\u003c/p\u003e\n\u003cp\u003eただ、JavaScriptでスタイルを定義するという発想については、\n\u003ca href=\"https://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/\"\u003eDOM Level 2 Style\u003c/a\u003eや、\nそれを元にした\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/CSS_Object_Model\"\u003eCSS Object Model\u003c/a\u003eという規格が開発中のようです。\u003c/p\u003e\n"
  }, 
  {
    "title": "OracleによるGoogleのJava API利用の訴訟について",
    "url": "https://www.ikemo3.com/theme/google-vs-oracle/",
    "contents": "\u003cp\u003eちょっと気になったのでまとめておきます。\u003c/p\u003e\n\u003ch2 id=\"どんな話か\"\u003eどんな話か\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.infoq.com/jp/news/2018/05/google-owe-oracle\"\u003eグーグル、オラクルへの支払いは数十億の可能性も\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"この件についての自分の考え\"\u003eこの件についての自分の考え\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e一般的には\u003c/strong\u003eAPIの利用はフェアユース。\n\u003cul\u003e\n\u003cli\u003e例えば、\u003ca href=\"https://www.winehq.org/\"\u003eWine\u003c/a\u003eはMicrosoftの公表しているAPIを再実装していますが、その利用はフェアユースの範囲だと言える。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eしかし、この件に限って言えば、Googleのやり方は「あかんわ」と。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"何が駄目なのか\"\u003e何が駄目なのか\u003c/h2\u003e\n\u003cp\u003eこの記事を元に話をします。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://qiita.com/TakahikoKawasaki/items/037320792092bb5a1f62\"\u003eJava API 訴訟の件で私が Google よりも Oracle の肩を持つ理由 - Qiita\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下のような点が問題だと書いています。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003eandroid\u003c/code\u003e というトップレベル・パッケージ名\u003c/li\u003e\n\u003cli\u003eCLDC/CDC/MIDP 2.0/PBPといった仕様を無視\u003c/li\u003e\n\u003cli\u003eDalvil仮想マシンの互換性\u003c/li\u003e\n\u003cli\u003eAndroid BLE APIの品質の悪さ\u003c/li\u003e\n\u003cli\u003e基本APIの実装不具合\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e自分はこのうち、1, 2, 4については許容範囲であり、\n3については黒に近いグレー、5は真っ黒という感想を持っています。\u003c/p\u003e\n\u003cp\u003eまず、1, 4について許容範囲なのは、Androidの独自実装だからです。\nパッケージ名はドメイン名の逆、このサイトなら\u003ccode\u003ecom.ikemo3\u003c/code\u003e以下にするのが\n基本ですが、それを守ってないライブラリはいくつもあります。\n少なくとも、これを元に「互換性を破壊」とは言えません。\u003c/p\u003e\n\u003cp\u003eまた、2についても、「既存の仕様はAndroidには不十分だった」というのは、\n採用しない十分な理由だと思います。\u003c/p\u003e\n\u003cp\u003e一方で、3と5は、両方とも「仕様を無視して互換性を破壊」しているからです。\n\u003ccode\u003eString.indexOf(String, int)\u003c/code\u003eに問題があるとか、\nそりゃ怒るわと言いたくなります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://darutk-oboegaki.blogspot.jp/2011/02/android-stringindexofstringint.html\"\u003e覚え書き: Android の String.indexOf(String,int) メソッドの不具合\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"android以外は問題にされていない\"\u003eAndroid以外は問題にされていない\u003c/h2\u003e\n\u003cp\u003e例えば\u003ca href=\"https://cloud.google.com/appengine/docs/standard/java/runtime\"\u003eGoogle App Engine\u003c/a\u003eにも(おそらく)独自の制限がかかっていますが、\n問題になっていません。\nこれは、あくまでその制限がクラウド上という環境による「仕方のない」もので、\n可能な限り互換性を保つように作られているからです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Amazon Route 53",
    "url": "https://www.ikemo3.com/manual/route53/",
    "contents": "\u003ch2 id=\"ansible\"\u003eAnsible\u003c/h2\u003e\n\u003cp\u003ebotoを入れる必要がある。詳細は\u003ca href=\"/manual/ansible/\"\u003eAnsible\u003c/a\u003e参照。\u003c/p\u003e\n\u003ch3 id=\"ゾーン\"\u003eゾーン\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://aws.amazon.com/jp/route53/pricing/\"\u003e料金\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/modules/route53_zone_module.html#route53-zone\"\u003eroute53_zone\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"エントリ\"\u003eエントリ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/modules/route53_module.html#route53\"\u003eroute53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAレコードの順序が保存されないことがある。以下のIssueか?\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible/issues/29908\"\u003eroute53 does not honor value order · Issue #29908 · ansible/ansible\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"caaレコード\"\u003eCAAレコード\u003c/h3\u003e\n\u003cp\u003e以下のように設定する。valueが1つの場合は、\n\u003ccode\u003evalue: '0 issue \u0026quot;letsencrypt.org\u0026quot;'\u003c/code\u003eのように指定可能。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eikemo3.com(CAA)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003eroute53\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003estate\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003epresent\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003ezone\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eikemo3.com\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003erecord\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eikemo3.com\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003etype\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eCAA\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003eoverwrite\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003evalue\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      - \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;0 issue \u0026#34;letsencrypt.org\u0026#34;\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      - \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;0 issue \u0026#34;amazon.com\u0026#34;\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Dns",
    "url": "https://www.ikemo3.com/tags/dns/",
    "contents": ""
  }, 
  {
    "title": "VuePress",
    "url": "https://www.ikemo3.com/dic/vuepress/",
    "contents": "\u003ch2 id=\"vuepressとは\"\u003eVuePressとは\u003c/h2\u003e\n\u003cp\u003e静的サイトジェネレータです。\u003c/p\u003e\n\u003ch2 id=\"特徴\"\u003e特徴\u003c/h2\u003e\n\u003cp\u003e最大の特徴は、Markdownの中に\nVueのコンポーネントを埋め込むことができることです。\n結果は基本的にコンパイル時に実行されます。\u003c/p\u003e\n\u003cp\u003e「基本的には」と書いたのは、\u003ca href=\"https://vuepress.vuejs.org/guide/using-vue.html#browser-api-access-restrictions\"\u003eBrowser API Access Restriction\u003c/a\u003eに以下の記述があるからです(未確認)。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIf you are using or demoing components that are not SSR friendly\n(for example containing custom directives),\nyou can wrap them inside the built-in \u003c!-- raw HTML omitted --\u003e component:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e逆に、実行速度は\u003ca href=\"/dic/hugo/\"\u003eHugo\u003c/a\u003eにはかなわないようです。\u003c/p\u003e\n\u003ch2 id=\"まだこれから\"\u003eまだこれから\u003c/h2\u003e\n\u003cp\u003eちょっと使ってみたのですが、このIssueが気になりました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vuejs/vuepress/issues/78\"\u003eSEO friendly URLs · Issue #78 · vuejs/vuepress\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例えばHugoなら\u003ccode\u003edic/vuepress.md\u003c/code\u003eというファイルを作ると、\u003ccode\u003e/dic/vuepress/\u003c/code\u003eという\nURLになるのですが、現在のVuePressでは、\u003ccode\u003e/dic/vuepress.html\u003c/code\u003e になります。\nサブディレクトリを作ればできるのですが、他と合わせてもらう、\nもしくはその設定ができるようにならないと、本格的には採用しづらいです。\u003c/p\u003e\n"
  }, 
  {
    "title": "クロスプラットフォーム",
    "url": "https://www.ikemo3.com/dic/cross-platform/",
    "contents": "\u003ch2 id=\"クロスプラットフォームとは\"\u003eクロスプラットフォームとは\u003c/h2\u003e\n\u003cp\u003e例えばWindows、macOS、Linuxなどのように、\nいろいろなプラットフォームに対応したソフト、\nあるいは、そのソフトを作るための仕組みです。\u003c/p\u003e\n\u003ch2 id=\"クロスプラットフォームを実現するためのもの\"\u003eクロスプラットフォームを実現するためのもの\u003c/h2\u003e\n\u003cp\u003e思いついたら書いてみます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGNU Build System\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.gnu.org/software/autoconf/autoconf.html\"\u003eGNU Autoconf\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.gnu.org/software/automake/automake.html\"\u003eGNU Automake\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.gnu.org/software/libtool/libtool.html\"\u003eGNU Libtool\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/\"\u003eGo(言語)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/java/\"\u003eJava\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.qt.io/\"\u003eQt\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NativeScript/NativeScript\"\u003eNativeScript\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://electronjs.org/\"\u003eElectron\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://proton-native.js.org/\"\u003eProton Native\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://facebook.github.io/react-native/\"\u003eReact Native\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "チョコレート",
    "url": "https://www.ikemo3.com/log/chocolate/",
    "contents": "\u003ch2 id=\"過去に食べたチョコレート\"\u003e過去に食べたチョコレート\u003c/h2\u003e\n\u003ch3 id=\"ココナッツシュガーチョコレート2018-07-08\"\u003eココナッツシュガーチョコレート(2018-07-08)\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.lawson.co.jp/recommend/original/detail/1302971_1996.html\"\u003eココナッツシュガーチョコレート｜ローソン\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e高カカオは「健康にいいから苦くてもいいやろ」という感じで、\nこれまで避けてたんですが、これは当たりでした。\n適度な酸味があって美味しかったです。\u003c/p\u003e\n\u003ch3 id=\"コートドール-バートリュフ2018-05-07\"\u003eコート・ドール バー・トリュフ(2018-05-07)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eベルギーの輸入モノ。味はややビター。\u003c/li\u003e\n\u003cli\u003e半額で90円ほどになってたけど、180円でも良いくらい。\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Fruit",
    "url": "https://www.ikemo3.com/tags/fruit/",
    "contents": ""
  }, 
  {
    "title": "バナナ",
    "url": "https://www.ikemo3.com/dic/banana/",
    "contents": "\u003ch2 id=\"バナナとは\"\u003eバナナとは\u003c/h2\u003e\n\u003cp\u003e主食にもおやつにもなる食べものです。\u003c/p\u003e\n\u003ch2 id=\"バナナの選び方\"\u003eバナナの選び方\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://www.inazawabanana.com/%E3%83%90%E3%83%8A%E3%83%8A%E9%9B%91%E5%AD%A6/%E7%94%98%E3%81%8F%E3%81%A6%E7%BE%8E%E5%91%B3%E3%81%97%E3%81%84%E3%83%90%E3%83%8A%E3%83%8A%E3%81%AF%E3%81%A9%E3%82%8C%E3%81%A0%EF%BC%81%E6%A0%BD%E5%9F%B9%E8%80%85%E3%81%A0%E3%81%8B%E3%82%89%E5%88%86/\"\u003e甘くて美味しいバナナはどれだ！栽培者だから分かるバナナの選び方・見分け方\u003c/a\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003e角ばっていない方が良い\u003c/li\u003e\n\u003cli\u003e大きいバナナの方が良い\u003c/li\u003e\n\u003cli\u003eシュガースポット(黒い斑点)があると食べごろだが、賞味期限が近い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分は固めのバナナが好きです。\u003c/p\u003e\n"
  }, 
  {
    "title": "投票先を選ぶ方法",
    "url": "https://www.ikemo3.com/theme/how-to-choose-a-voting-destination/",
    "contents": "\u003ch2 id=\"免責事項\"\u003e免責事項\u003c/h2\u003e\n\u003cp\u003eこれはあくまで「基準」であって、特定の人を指しているわけではありません。\u003c/p\u003e\n\u003ch2 id=\"基準\"\u003e基準\u003c/h2\u003e\n\u003cp\u003e以下の基準で選ぶことにしています。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e人であること\n\u003cul\u003e\n\u003cli\u003e具体的には、\u003ca href=\"/dic/can-you-help-the-person-who-fell-down/\"\u003e目の前で倒れている人を助けられるか\u003c/a\u003eのチェックに引っかかった人は除外します。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e否定でなく肯定で話ができる人\n\u003cul\u003e\n\u003cli\u003e具体的には、\u003ca href=\"/dic/negation-is-the-basis/\"\u003e否定こそが綱領\u003c/a\u003eのチェックに引っかかった人は除外します。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/news/\"\u003eニュース\u003c/a\u003eの方を向いていない人\n\u003cul\u003e\n\u003cli\u003e参考: \u003ca href=\"/dic/news/\"\u003eニュース\u003c/a\u003e、\u003ca href=\"/dic/no-news/\"\u003eニュース嫌い\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eその他(政策など)\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "家計簿",
    "url": "https://www.ikemo3.com/dic/household-accounts/",
    "contents": "\u003ch2 id=\"家計簿とは\"\u003e家計簿とは\u003c/h2\u003e\n\u003cp\u003e収入と支出を記入するものです。\u003c/p\u003e\n\u003ch2 id=\"家計簿は目的が重要\"\u003e家計簿は目的が重要\u003c/h2\u003e\n\u003cp\u003e家計簿はもう何年間も付けてたのですが、つい最近止めました。\n(基本的には妻が管理しているので、自分のところだけですが)\u003c/p\u003e\n\u003cp\u003eなぜかというと、家計簿をつけると、\n家計簿をきっちりつけることが目的になってしまうからです。\nどれくらいきっちり付けてたかというと、\n自分で複式簿記の勉強を始めてたくらいです。\nまあそれはそれで悪くないのですが、\n「家計の改善」という目的を見失いがちです。\u003c/p\u003e\n\u003ch2 id=\"家計簿を付けない方法\"\u003e家計簿を付けない方法\u003c/h2\u003e\n\u003cp\u003eふと「逆に家計簿は付けない方がいいのでは?」と思い調べてみたところ、\n以下の記事と、その著者の本を見つけました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://president.jp/articles/-/13390\"\u003eなぜお金に好かれる人は「家計簿をつけない」か | プレジデントオンライン\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/483342083X/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/483342083X.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/483342083X/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nレシート○×チェックでズボラなあなたのお金が貯まり出す\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eこの本がいいなと思ったのは、「ときめき買いができているかどうか」を\n基準としているかどうかです。\n無駄遣いの多くは、「何となく安いものをダラダラ買った」がほとんどです。\u003c/p\u003e\n\u003ch2 id=\"家計簿を付けるなら\"\u003e家計簿を付けるなら\u003c/h2\u003e\n\u003cp\u003eと言っても家計簿を付けたくなることがあります。\nそういうときは\u003ca href=\"https://moneyforward.com/\"\u003eマネーフォワード\u003c/a\u003eがいまのところベストかなと。\u003c/p\u003e\n\u003cp\u003e10日ほど\u003ca href=\"https://zaim.net/\"\u003eZaim\u003c/a\u003eと両方使ってみましたが、こんな感じです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eZaimの方が対応しているサービスが少ない\n\u003cul\u003e\n\u003cli\u003e一部のポイントサイトとか証券会社なのですが、対応してないのはやっぱりマイナス\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eレシート読み取りはどちらにしても使えない\n\u003cul\u003e\n\u003cli\u003e「パ」と「バ」のような間違いが多く、訂正するのが辛い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e時間を記入しても使う場面がない\n\u003cul\u003e\n\u003cli\u003eマネーフォワードは入力順の並び替えに対応してないのでそれはそれで不満ですが・・・\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e楽天銀行なら\u003ca href=\"https://www.rakuten-bank.co.jp/money/\"\u003eマネーサポート\u003c/a\u003eが無料で使えるようです。\nただKyashが使えないのでまだまだかな・・・\u003c/p\u003e\n\u003cp\u003e分類はやっててもキリがないので「お店別」にしたほうがいいのではと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://cyblog.jp/25021\"\u003e家計簿の費目を「お店別」にしてみてから少し節約ができている | シゴタノ！\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "インフルエンザ",
    "url": "https://www.ikemo3.com/dic/influenza/",
    "contents": "\u003ch2 id=\"インフルエンザとは\"\u003eインフルエンザとは\u003c/h2\u003e\n\u003cp\u003eインフルエンザウイルスを病原体とする、感染症です。\u003c/p\u003e\n\u003ch2 id=\"風邪との違い\"\u003e風邪との違い\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.kantei.go.jp/jp/headline/kansensho/influenza.html#c01\"\u003e首相官邸の「インフルエンザ（季節性）とはどのような病気ですか？風邪とはどう違うのですか？」\u003c/a\u003eを参照してください。\u003c/p\u003e\n\u003ch2 id=\"抗インフルエンザウイルス薬と異常行動との因果関係は不明\"\u003e抗インフルエンザウイルス薬と異常行動との因果関係は不明\u003c/h2\u003e\n\u003cp\u003e一時期、抗インフルエンザウイルス薬であるタミフルと\n異常行動の因果関係について疑われたことがありますが、\nその後継続調査が続けられており、抗インフルエンザウイルス薬の服用の有無に限らず、\n異常行動は発生する可能性があり、注意することと書かれています\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eインフルエンザにかかった時は、\n抗インフルエンザウイルス薬の種類や服用の有無によらず、\n異常行動にご注意下さい 。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこれに限らず、医学関連はニセ情報が蔓延しやすい\n(\u003ca href=\"/dic/news/\"\u003eニュース\u003c/a\u003eがデマ発信源になることも多い)ため、注意しましょう\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.mhlw.go.jp/stf/houdou/0000185998.html\"\u003e小児・未成年者がインフルエンザにかかった時は、異常行動にご注意下さい ｜報道発表資料｜厚生労働省\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eニコ百の方がしっかり書かれているというのがね。。。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "暇つぶし",
    "url": "https://www.ikemo3.com/dic/killing-time/",
    "contents": "\u003ch2 id=\"暇つぶしとは\"\u003e暇つぶしとは\u003c/h2\u003e\n\u003cp\u003e時間の無駄のことです。\u003c/p\u003e\n\u003ch2 id=\"目的があるかどうか\"\u003e目的があるかどうか\u003c/h2\u003e\n\u003cp\u003e自分は暇つぶしがものすごく大嫌いです。\nただ、世間的には「暇つぶし」と思われるもの全てを否定するわけではないです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e楽しいと思ってやれるものか\u003c/li\u003e\n\u003cli\u003eそれをやることによってリラックスできるか\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eなどの目的があれば、それは暇つぶしではないです。\u003c/p\u003e\n"
  }, 
  {
    "title": "数独",
    "url": "https://www.ikemo3.com/dic/sudoku/",
    "contents": "\u003ch2 id=\"数独とは\"\u003e数独とは\u003c/h2\u003e\n\u003cp\u003e数字を使ったパズルです。\nニコリの登録商標になっています。\u003c/p\u003e\n\u003ch2 id=\"数独好きの親将棋が強い\"\u003e数独好きの親＝将棋が強い?\u003c/h2\u003e\n\u003cp\u003e藤井聡太六段の本を読んでたら、\n数独好きの親の子は才能を感じることが多いとか。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0769Q2199/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0769Q2199.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0769Q2199/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n藤井聡太　天才はいかに生まれたか (ＮＨＫ出版新書)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cblockquote\u003e\n\u003cp\u003e長年にわたって子供たちを指導してきた竹内努は、\n付き添いで来ている保護者を見て、ある共通点に気がついた。\n子供の対局が終わるのを待っている間に、親はいろいろなことをしている。\nその中には、数独をやっている親がいる。\nその親の子には、だいたい将棋の才能を感じるという。\n竹内の記憶では、藤井の両親がそうだった。\n「親がクロスワードパズルをやっているよりも、\n数独の方が、将棋向きの家庭なのかもしれんね。\n詰将棋の得意な棋士の親にアンケートを取ってみたら、\n数独をやっていたって人が多いんじゃないかな」\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e羽生さんも数独をやってるという話がありますね。\n(今やってるかは分かりませんが)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://d.hatena.ne.jp/mozuyama/20061025/P20061025SUDOKU\"\u003e羽生善治三冠も楽しむ「数独」 - 勝手に将棋トピックス\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote class=\"twitter-tweet\"\u003e\u003cp lang=\"ja\" dir=\"ltr\"\u003e昨日久しぶりに数独の話になり、昔パリまで電話したよねと爆笑。昔娘の学校で数独の宿題が出て、最難関レベルだけ母娘で どうしても解けず、対局先のParisまで電話した、『５分くらいで電話する』\u003cbr\u003eで３分で回答来た時は尊敬した。\u003c/p\u003e\u0026mdash; 羽生理恵🐰うさぎファース党 (@yuzutapioka) \u003ca href=\"https://x.com/yuzutapioka/status/772786703601774599?ref_src=twsrc%5Etfw\"\u003eSeptember 5, 2016\u003c/a\u003e\u003c/blockquote\u003e\n\u003cscript async src=\"https://platform.x.com/widgets.js\" charset=\"utf-8\"\u003e\u003c/script\u003e\n\n\n\u003cp\u003eパリで対局があったということは、\nおそらく2008年の\u003ca href=\"https://www.shogi.or.jp/match/ryuuou/21/\"\u003e第21期竜王戦\u003c/a\u003e第1局でしょうか。\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003eちなみに比較にならないですが、\n自分は母がパズル好きで、数独もやってました。\u003c/p\u003e\n"
  }, 
  {
    "title": "BSDライセンス",
    "url": "https://www.ikemo3.com/dic/bsd-license/",
    "contents": "\u003ch2 id=\"bsdライセンスとは\"\u003eBSDライセンスとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/oss/\"\u003eオープンソースソフトウェア\u003c/a\u003eのライセンスの1つです。\u003c/p\u003e\n\u003ch2 id=\"3種類あるのに注意\"\u003e3種類あるのに注意\u003c/h2\u003e\n\u003cp\u003eBSDライセンスは3種類あります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e4条項BSDライセンス\u003c/li\u003e\n\u003cli\u003e3条項BSDライセンス\u003c/li\u003e\n\u003cli\u003e2条項BSDライセンス\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e4条項BSDライセンスはGPLと互換性がなく、今はまず目にかけることはありません。\n問題は3条項BSDライセンスと2条項BSDライセンスの違いですが、\n正直良くわからないんですよね。。。\u003c/p\u003e\n\u003ch2 id=\"bsdライセンスが分かりにくい理由\"\u003eBSDライセンスが分かりにくい理由\u003c/h2\u003e\n\u003cp\u003e3条項BSDライセンスは「修正BSDライセンス」とも呼ばれ、\n\u003ca href=\"https://ja.osdn.net/projects/opensource/wiki/licenses%2Fnew_BSD_license\"\u003e日本語訳\u003c/a\u003eもあるのですが、以下の条項は残っています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e書面による特別の許可なしに、本ソフトウェアから派生した製品の宣伝または販売促進に、\n\u0026lt;組織\u0026gt;の名前またはコントリビューターの名前を使用してはならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e4条項BSDライセンスは以下のような定義があります。\n(\u003ca href=\"https://www.gnu.org/licenses/bsd.html\"\u003eBSDライセンスの問題 - GNUプロジェクト - フリーソフトウェアファウンデーション\u003c/a\u003eより)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003col start=\"3\"\u003e\n\u003cli\u003eこのソフトウェアの機能あるいは使用について言及している広告媒体には、必ず\n以下の謝辞を記載すること:\nこの製品にはカルフォルニア大学バークレー校およびその貢献者によって開発\nされたソフトウェアが含まれています。\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e4条項BSDライセンスから消されたものが「宣伝条項」となっていますが、\n3条項BSDライセンスに残っているものも宣伝のことなので、\n「宣伝条項」と言ったときに、どっちを指すのかが迷ってしまいます。\u003c/p\u003e\n\u003cp\u003eあと、GNUのサイトで3条項BSDライセンスと2条項BSDライセンス\n(引用中では「FreeBSDライセンス」)が「同様」と\n書かれているのも個人的にはしっくりこないです。\nGPLとの互換性はありますが、あくまで別のライセンスだと思うので。。。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.gnu.org/licenses/bsd.ja.html\"\u003eBSDライセンスの問題 - GNUプロジェクト - フリーソフトウェアファウンデーション\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e後に、第三のBSDライセンスの変種が導入されました。\nこれはオリジナルBSDライセンスの4つの条項の最初の二項だけとしたものです。\nわたしたちはこれを「FreeBSDライセンス」と呼びます。\nそれは緩い、コピーレフトではない自由なライセンスで、\nGNU GPLと両立し、修正BSDライセンスと同様のものです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"mitライセンスの方がよい\"\u003eMITライセンスの方がよい\u003c/h2\u003e\n\u003cp\u003eBSDライセンスは微妙に分かりにくいところがあるので、\n3条項BSDライセンスをどうしても使いたい場合は別として、\n新規プロジェクトで2条項BSDライセンスを使いたい場合は、\n\u003ca href=\"/dic/mit-license/\"\u003eMITライセンス\u003c/a\u003eでいいんじゃないかなと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.osdn.net/projects/opensource/wiki/licenses%2FMIT_license\"\u003eMITライセンス(日本語訳)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ja.osdn.net/projects/opensource/wiki/licenses%2Fnew_BSD_license\"\u003e新しいBSDライセンス\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Git: 本家の変更に追随する方法",
    "url": "https://www.ikemo3.com/inverted/git/rebase-on-originator/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eGitHubでforkしたあとに、本家の変更を取り込むための方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# forkした方に対してgit cloneする。\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit clone forkした方のURL プロジェクト名\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd プロジェクト名\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit remote add github 本家のURL\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit pull --rebase github master\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit push\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ccode\u003egit pull\u003c/code\u003e と \u003ccode\u003egit pull --rebase\u003c/code\u003e の違いは、以下の記事が分かりやすいです。\ngit pullはgit fetch + git merge、\ngit pull \u0026ndash;rebaseはgit fetch + git rebaseになります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://kray.jp/blog/git-pull-rebase/\"\u003egit pull と git pull –rebase の違いって？図を交えて説明します！ | KRAY Inc\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/makua/items/7aa1f4fa02ef9ab1f9d9\"\u003egit pull \u0026ndash;rebaseをpushする前にやろうという話。 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "KISSの原則",
    "url": "https://www.ikemo3.com/dic/kiss-principle/",
    "contents": "\u003ch2 id=\"kissの原則とは\"\u003eKISSの原則とは\u003c/h2\u003e\n\u003cp\u003e\u0026ldquo;Keep it simple, stupid\u0026rdquo; \u003cstrong\u003eなど\u003c/strong\u003eの略で、\n日本語では「シンプルにしとけ。バカ野郎！」みたいな感じです。\n\u0026ldquo;Keep it short and simple\u0026quot;など他の略であることもありますが、\n基本的な意味は同じです。\u003c/p\u003e\n\u003ch2 id=\"kissの法則が紹介されている場所\"\u003eKISSの法則が紹介されている場所\u003c/h2\u003e\n\u003cp\u003e羽生さんのベストセラー「決断力」の\nNo.233(Kindle)「第一章 勝機は誰にもある 2 勝負どころではごちゃごちゃ考えるな。単純に、簡単に考えろ」に出てきます。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4047100080/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4047100080.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4047100080/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n決断力 (角川oneテーマ21)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cblockquote\u003e\n\u003cp\u003eアメリカのカーネギー・メロン大学でロボットの研究をしている金出武雄先生から、\n面白いことを聞いた。\n学生を指導するときには、「キス・アプ ローチでやれ!」というそうだ。\nキス(KISS)というのは \u0026ldquo;Keep it simple, stupid\u0026rdquo; の頭文字である。\n軍隊用語から来た俗語で、軍曹が部下に「もっと簡単にやれ、バカモン」\nという感じだという。これはエンジニアリングの基本的な考え方で、\nコンピュータの能力が低い時代は、\nよいアイデアでもコンピュータの解ける範囲に、\n無理に押し込めなければならなかった。\n「(コンピュータの進歩した)このごろはむしろ、問題を、定義されたままに\n解いた方がいいのです。当然ながら鮮やかにかつ正しく解けますから、\nかえって実現も意外とやさしい」\nと、だから学生にはごちゃごちゃ考えないで、「キスで行け」と言うのだという。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4047100080/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4047100080.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4047100080/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n決断力 (角川oneテーマ21)\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Oyatsu",
    "url": "https://www.ikemo3.com/tags/oyatsu/",
    "contents": ""
  }, 
  {
    "title": "健康",
    "url": "https://www.ikemo3.com/tags/health/",
    "contents": ""
  }, 
  {
    "title": "将棋と食事とおやつ",
    "url": "https://www.ikemo3.com/theme/shogi/meal/",
    "contents": "\u003ch2 id=\"将棋と食事とおやつ\"\u003e将棋と食事とおやつ\u003c/h2\u003e\n\u003cp\u003e将棋ファンの間では定番となっているのが、\n対局中に注文する、あるいは出される食事です。\n将棋棋士は昔からよく食べる人が多いです。\u003c/p\u003e\n\u003cp\u003eよく食べるのは将棋棋士くらいで、\n囲碁はあまり食べない人が多いとか。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://shogipenclublog.com/blog/2011/03/13/%E6%98%94%E6%B0%97%E8%B3%AA%E3%81%AE%E6%8A%95%E4%BA%86/\"\u003e昔気質の投了 | 将棋ペンクラブログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"よく食べる棋士\"\u003eよく食べる棋士\u003c/h3\u003e\n\u003cp\u003e若手はあまり知らないので、ベテランが多いです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e大山康晴十五世名人\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://shogipenclublog.com/blog/2015/12/05/nanakuse-3/\"\u003e大山康晴十五世名人「明日の朝はうなぎがいいね」 | 将棋ペンクラブログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e加藤一二三九段\n\u003cul\u003e\n\u003cli\u003eエピソード多すぎて書けない\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://ryokan.kage-tora.com/individual_data/064-katoh.html\"\u003e食事とおやつ 加藤一二三\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e米長邦雄永世棋聖との「みかん合戦」も有名。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://shogi100.com/2018/03/29/banana/\"\u003e第43期棋王戦：永瀬七段のバナナの軌跡と、フルーツを大量注文した棋士達 | 将棋を１００倍楽しむ！\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e丸山忠久九段\n\u003cul\u003e\n\u003cli\u003eよく食べるのもですが、「カロリーメイト」でも有名。CMに出るほど。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.shogi.or.jp/news/2018/04/post_1674.html\"\u003eバランス栄養食「カロリーメイト」が\u0026quot;頭脳スポーツ・将棋\u0026quot;を応援｜将棋ニュース｜日本将棋連盟\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"この棋士と言えばこれのパターン\"\u003e「この棋士と言えばこれ」のパターン\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e森内俊之九段＝カレー\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.1101.com/curryproject/school/moriuchi/\"\u003eカレーと将棋と熱いトークの夕べ。- カレーの学校\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"あまり食べない棋士\"\u003eあまり食べない棋士\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e木村一基九段\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://cakes.mu/posts/13852\"\u003e好漢、木村一基の挑戦　その３｜棋士とメシ｜松本博文｜cakes（ケイクス）\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"漫画になるほど\"\u003e漫画になるほど\u003c/h2\u003e\n\u003cp\u003e将棋の食事の話が漫画になってました。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01N4OU7JY/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B01N4OU7JY.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01N4OU7JY/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n将棋めし　1 (MFコミックス　フラッパーシリーズ)\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "gVisor",
    "url": "https://www.ikemo3.com/dic/gvisor/",
    "contents": "\u003ch2 id=\"gvisorとは\"\u003egVisorとは\u003c/h2\u003e\n\u003cp\u003eコンテナランタイムです。\n以下はGitHubのREADMEを参照しています。\u003c/p\u003e\n\u003ch2 id=\"コンテナはサンドボックス化されていない\"\u003eコンテナはサンドボックス化されていない\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/docker/\"\u003eDocker\u003c/a\u003eとかのコンテナはサンドボックス化されていないようです。\n確かにrootで動かすのが前提ですからね。。。\u003c/p\u003e\n\u003ch2 id=\"仕組み\"\u003e仕組み\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eKVMやXen: 仮想ハードウェアのレベルで隔離している(Strong isolation)。\u003c/li\u003e\n\u003cli\u003eSELinuxなど: アプリごとにルールやポリシーを決めて、それだけで隔離している。\u003c/li\u003e\n\u003cli\u003egVisor: LinuxカーネルをLinuxカーネルのシステムコールを使って実装。\n\u003cul\u003e\n\u003cli\u003eルールベースの防御もあるよと書かれています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Pdf",
    "url": "https://www.ikemo3.com/tags/pdf/",
    "contents": ""
  }, 
  {
    "title": "ReLaXed",
    "url": "https://www.ikemo3.com/dic/relaxed/",
    "contents": "\u003ch2 id=\"relaxedとは\"\u003eReLaXedとは\u003c/h2\u003e\n\u003cp\u003eキレイなPDFを簡単に作成するためのツールのようです。\nまだ使ってないですが、以下のような特徴があるようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://pugjs.org/api/getting-started.html\"\u003ePug\u003c/a\u003eという言語を使う。\n\u003cul\u003e\n\u003cli\u003eサンプル見る限りプログラマブルなHTMLという感じですね。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMarkdownやLaTeXも中に埋め込める模様。\u003c/li\u003e\n\u003cli\u003e図も埋め込める\n\u003cul\u003e\n\u003cli\u003eMermaid.js\u003c/li\u003e\n\u003cli\u003eFlowcharts.js\u003c/li\u003e\n\u003cli\u003eCharts.js\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Javaの例外について",
    "url": "https://www.ikemo3.com/theme/java/exception/",
    "contents": "\u003cp\u003e以下の記事は書いたのがだいぶ古いので、後で整理します。。。\u003c/p\u003e\n\u003ch2 id=\"例外の種類\"\u003e例外の種類\u003c/h2\u003e\n\u003cp\u003eまず知っておくべきこととして、\nJavaには、Error, Exception, RuntimeExceptionの3種類があります。\nこれは以下の階層になっています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThrowable\n\u003cul\u003e\n\u003cli\u003eError\u003c/li\u003e\n\u003cli\u003eException(チェック例外)\n\u003cul\u003e\n\u003cli\u003eRuntimeException(非チェック例外)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"errorの扱いについて\"\u003eErrorの扱いについて\u003c/h2\u003e\n\u003cp\u003eErrorとそのサブクラスのうちよく見るものを以下に掲載します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eError\n\u003cul\u003e\n\u003cli\u003eVirtualMachineError\n\u003cul\u003e\n\u003cli\u003eStackOverflowError\u003c/li\u003e\n\u003cli\u003eInternalError\u003c/li\u003e\n\u003cli\u003eOutOfMemoryError\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOutOfMemoryErrorなど、JVMが発生させるエラーが該当します。\n自作のErrorを用意することはまずありません。\u003c/p\u003e\n\u003cp\u003e明示的にErrorを投げるケースは、言語仕様として発生しない場合がありえますが\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\n分からない場合はIllegalStateExceptionを投げるので十分だと思います(どちらにしても発生しないので)。\u003c/p\u003e\n\u003ch2 id=\"チェック例外と非チェック例外の使い分け\"\u003eチェック例外と非チェック例外の使い分け\u003c/h2\u003e\n\u003cp\u003eJavaの特徴として、チェック例外は呼び出し元でcatchかthrowsで処理しなければならない、\n非チェック例外は処理が不要という特徴があります。\nしたがって、通常起こりうる例外はチェック例外、通常起こりえない例外、\nあるいは起きても対処不可能な例外は非チェック例外と使い分けるのが基本です。\u003c/p\u003e\n\u003cp\u003eただし、「通常起こりうる例外」の解釈は、プログラムによって異なります。\n例えば、データベース管理ソフトを開発している場合、\nデータベース接続エラーは通常起こりうる例外ですが、\n業務システムの場合、データベース接続エラーは通常起こりえない例外とみなす方が自然です。\u003c/p\u003e\n\u003cp\u003e明らかに「通常起こりえない例外」として扱うべきものは、以下のようなものです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eプログラムのバグによるもの\n\u003cul\u003e\n\u003cli\u003eIllegalArgumentException\u003c/li\u003e\n\u003cli\u003eIllegalStateException\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e環境の不備によるもの\n\u003cul\u003e\n\u003cli\u003eClassNotFoundException\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eその他絶対呼び出されるはずがないもの\n\u003cul\u003e\n\u003cli\u003eUnsupportedOperationException\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eハードウェア障害によるもの\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"どのような例外を投げるべきか\"\u003eどのような例外を投げるべきか\u003c/h2\u003e\n\u003cp\u003e自分は以下のように考えています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e明らかに他の例外が望ましい場合はその例外を使用する。\n\u003cul\u003e\n\u003cli\u003eメソッドに渡す引数が正しくない場合→IllegalArgumentException\u003c/li\u003e\n\u003cli\u003eクラスの内部状態が正しくない場合→IllegalStateException\u003c/li\u003e\n\u003cli\u003eそのメソッドがサポートされてない場合→UnsupportedOperationException\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eそれ以外は原則として、独自のチェック例外を定義して投げる\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただし、独自例外の作成方法については\u003cstrong\u003eあくまで指針であって、規則ではありません。\u003c/strong\u003e\u003c/p\u003e\n\u003ch2 id=\"独自のチェック例外を投げるのが望ましい理由\"\u003e独自のチェック例外を投げるのが望ましい理由\u003c/h2\u003e\n\u003cp\u003e以下の2つの理由から、独自例外を定義した方が良いです。\nただし、通常起こりえない例外に関しては、非チェック例外でも構いません。\u003c/p\u003e\n\u003ch3 id=\"例外固有のメソッドが定義可能\"\u003e例外固有のメソッドが定義可能\u003c/h3\u003e\n\u003cp\u003e汎用例外を使用する場合、独自メソッドの定義が行えません。\n最初は汎用例外でよくても、あとで例外の詳細情報が必要になることもあります。\u003c/p\u003e\n\u003ch3 id=\"ライブラリや特定の機能への依存を避けるため\"\u003eライブラリや特定の機能への依存を避けるため\u003c/h3\u003e\n\u003cp\u003e例えば、javax.mail.MessagingExceptionを投げるメソッドがある場合、\nそのメソッドはJavaMailに依存してしまいます。\n外部ライブラリが提供する例外をそのまま使用する場合、そのライブラリに依存してしまいます。\u003c/p\u003e\n\u003ch3 id=\"チェック例外の方が望ましい理由\"\u003eチェック例外の方が望ましい理由\u003c/h3\u003e\n\u003cp\u003eチェック例外にすることによって、呼び出し元がこのような例外処理が必要というのを意識させるためです。\u003c/p\u003e\n\u003ch3 id=\"あとで独自例外が必要になったとき\"\u003eあとで独自例外が必要になったとき\u003c/h3\u003e\n\u003cp\u003e最初は汎用的な例外を使用していたが、独自例外を使用する必要が出てきた場合は、以下の回避方法があります。\u003c/p\u003e\n\u003ch4 id=\"独自例外を元の例外のサブクラスにする\"\u003e独自例外を元の例外のサブクラスにする\u003c/h4\u003e\n\u003cp\u003e例えば、元のメソッドがIOExceptionを使用していたが、独自例外を定義する必要が出てきた場合は、独自例外をIOExceptionを継承することで、呼び出し元のコードは修正なく動作します。もちろん、独自例外固有のメソッドを使用する場合は、修正が必要です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eMyIOException\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eextends\u003c/span\u003e IOException {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efoo\u003c/span\u003e() \u003cspan style=\"color:#66d9ef\"\u003ethrows\u003c/span\u003e IOException {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003etry\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    foo();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e} \u003cspan style=\"color:#66d9ef\"\u003ecatch\u003c/span\u003e (IOException e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"例外連鎖\"\u003e例外連鎖\u003c/h2\u003e\n\u003cp\u003e例えば、SQLExceptionはチェック例外ですが、業務システムなど、基本的に非チェック例外として扱ってよい場合は、例外連鎖という仕組みを使用します。この仕組みを利用した例として、JDK 8から提供されている、\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/io/UncheckedIOException.html\"\u003eUncheckedIOException\u003c/a\u003eというクラスがあります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eUncheckedSQLException\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    SQLException sqle;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eUncheckedSQLException\u003c/span\u003e(SQLException cause) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003esqle\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e cause;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e SQLException \u003cspan style=\"color:#a6e22e\"\u003egetCause\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003esqle\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.ne.jp/asahi/hishidama/home/tech/java/throw.html#InternalError\"\u003eJava 例外の投げ方メモ\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Oop",
    "url": "https://www.ikemo3.com/tags/oop/",
    "contents": ""
  }, 
  {
    "title": "パーソナルコンピュータ",
    "url": "https://www.ikemo3.com/log/pc/",
    "contents": "\u003cp\u003e自分が購入してきたPC類の履歴です。\u003c/p\u003e\n\u003ch2 id=\"デスクトップ\"\u003eデスクトップ\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e年代\u003c/th\u003e\n          \u003cth\u003ePC\u003c/th\u003e\n          \u003cth\u003eCPU\u003c/th\u003e\n          \u003cth\u003eメモリ\u003c/th\u003e\n          \u003cth\u003eHDD/SSD\u003c/th\u003e\n          \u003cth\u003eOS\u003c/th\u003e\n          \u003cth\u003e補足\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e1990/??/??\u003c/td\u003e\n          \u003ctd\u003ePC-9801DA/U2\u003c/td\u003e\n          \u003ctd\u003e80386DX 20MHz\u003c/td\u003e\n          \u003ctd\u003e1.6MB\u003c/td\u003e\n          \u003ctd\u003eなし\u003c/td\u003e\n          \u003ctd\u003eMS-DOS\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e1995/??/??\u003c/td\u003e\n          \u003ctd\u003e↑\u003c/td\u003e\n          \u003ctd\u003eCyrix\u003c/td\u003e\n          \u003ctd\u003e5.6MB\u003c/td\u003e\n          \u003ctd\u003e540MB\u003c/td\u003e\n          \u003ctd\u003eMS-DOS + FreeBSD\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e1998/10/06\u003c/td\u003e\n          \u003ctd\u003e自作PC\u003c/td\u003e\n          \u003ctd\u003ePentium 120MHz\u003c/td\u003e\n          \u003ctd\u003e64MB\u003c/td\u003e\n          \u003ctd\u003e4.3GB\u003c/td\u003e\n          \u003ctd\u003eFreeBSD, Windows NT\u003c/td\u003e\n          \u003ctd\u003e6万円で譲り受け\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e1998/11/21\u003c/td\u003e\n          \u003ctd\u003e↑\u003c/td\u003e\n          \u003ctd\u003eK6-2 300MHz\u003c/td\u003e\n          \u003ctd\u003e↑\u003c/td\u003e\n          \u003ctd\u003e↑\u003c/td\u003e\n          \u003ctd\u003e↑\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2000/04/22\u003c/td\u003e\n          \u003ctd\u003e↑\u003c/td\u003e\n          \u003ctd\u003e↑\u003c/td\u003e\n          \u003ctd\u003e↑\u003c/td\u003e\n          \u003ctd\u003e20.5GB\u003c/td\u003e\n          \u003ctd\u003e?\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2000/12/21\u003c/td\u003e\n          \u003ctd\u003e↑\u003c/td\u003e\n          \u003ctd\u003eDuron 800MHz\u003c/td\u003e\n          \u003ctd\u003e892MB\u003c/td\u003e\n          \u003ctd\u003e30.7GB\u003c/td\u003e\n          \u003ctd\u003eRed Hat\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2002/07/15\u003c/td\u003e\n          \u003ctd\u003e自作PC\u003c/td\u003e\n          \u003ctd\u003eMobile Athlon XP 1600+\u003c/td\u003e\n          \u003ctd\u003e1GB\u003c/td\u003e\n          \u003ctd\u003e80GB\u003c/td\u003e\n          \u003ctd\u003e?\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2003/06/07\u003c/td\u003e\n          \u003ctd\u003e↑\u003c/td\u003e\n          \u003ctd\u003eAthlon XP 2500+\u003c/td\u003e\n          \u003ctd\u003e↑\u003c/td\u003e\n          \u003ctd\u003e120GB\u003c/td\u003e\n          \u003ctd\u003eRed Hat 9\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2007/03/08\u003c/td\u003e\n          \u003ctd\u003e牛丼PC\u003c/td\u003e\n          \u003ctd\u003eCore 2 Duo\u003c/td\u003e\n          \u003ctd\u003e1.5GB\u003c/td\u003e\n          \u003ctd\u003e160GB\u003c/td\u003e\n          \u003ctd\u003eopenSUSE\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"windows-ノート\"\u003eWindows ノート\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e年代\u003c/th\u003e\n          \u003cth\u003ePC\u003c/th\u003e\n          \u003cth\u003eCPU\u003c/th\u003e\n          \u003cth\u003eメモリ\u003c/th\u003e\n          \u003cth\u003eHDD/SSD\u003c/th\u003e\n          \u003cth\u003eOS\u003c/th\u003e\n          \u003cth\u003e補足\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2001/??/??\u003c/td\u003e\n          \u003ctd\u003eThinkPad X22\u003c/td\u003e\n          \u003ctd\u003e?\u003c/td\u003e\n          \u003ctd\u003e384MB\u003c/td\u003e\n          \u003ctd\u003e?\u003c/td\u003e\n          \u003ctd\u003eWindows XP Pro\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e????/??/??\u003c/td\u003e\n          \u003ctd\u003eThinkPad T43\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e????/??/??\u003c/td\u003e\n          \u003ctd\u003eThinkPad X60 Tablet\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e2.5GB\u003c/td\u003e\n          \u003ctd\u003e80GB → 160GB\u003c/td\u003e\n          \u003ctd\u003eWindows Vista / 7\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"mac\"\u003eMac\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e年代\u003c/th\u003e\n          \u003cth\u003ePC\u003c/th\u003e\n          \u003cth\u003eCPU\u003c/th\u003e\n          \u003cth\u003eメモリ\u003c/th\u003e\n          \u003cth\u003eHDD/SSD\u003c/th\u003e\n          \u003cth\u003e補足\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2005/??/??\u003c/td\u003e\n          \u003ctd\u003e\u003ca href=\"https://support.apple.com/kb/sp69?locale=ja_JP\"\u003eiMac G5\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e1.5GB\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2006/??/??\u003c/td\u003e\n          \u003ctd\u003e\u003ca href=\"https://support.apple.com/kb/SP31?viewlocale=ja_JP\u0026amp;locale=ja_JP\"\u003eMacBook 13インチ, Early 2006\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e2GB\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e廃棄済\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2010/04/13\u003c/td\u003e\n          \u003ctd\u003e\u003ca href=\"https://support.apple.com/kb/SP583?locale=ja_JP\u0026amp;viewlocale=ja_JP\"\u003eMacBook Pro (13インチ, Mid 2010)\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e8GB\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2011/02/25\u003c/td\u003e\n          \u003ctd\u003e\u003ca href=\"https://support.apple.com/kb/SP619?locale=ja_JP\u0026amp;viewlocale=ja_JP\"\u003eMacBook Pro (13インチ, Early 2011)\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e16GB\u003c/td\u003e\n          \u003ctd\u003e512GB(SSD)\u003c/td\u003e\n          \u003ctd\u003e廃棄済\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2016-11-26\u003c/td\u003e\n          \u003ctd\u003e\u003ca href=\"https://support.apple.com/kb/SP749?locale=ja_JP\u0026amp;viewlocale=ja_JP\"\u003eMacBook Pro (15インチ, 2016)\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e16GB\u003c/td\u003e\n          \u003ctd\u003e512GB(SSD)\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n"
  }, 
  {
    "title": "パーソナルコンピュータ",
    "url": "https://www.ikemo3.com/tags/pc/",
    "contents": ""
  }, 
  {
    "title": "継承(プログラミング)",
    "url": "https://www.ikemo3.com/dic/inheritance/",
    "contents": "\u003ch2 id=\"継承プログラミングとは\"\u003e継承(プログラミング)とは\u003c/h2\u003e\n\u003cp\u003eあるクラスをベースとして、別のクラスを作成する方法です。\u003c/p\u003e\n\u003cp\u003e継承はオブジェクト指向プログラミングの基本の1つと呼ばれていますが、\n継承はなるべく使わないようにすべきだと思います。\nアンチパターンと言っても過言ではないかと思います。\u003c/p\u003e\n\u003ch2 id=\"安易な継承が引き起こす問題\"\u003e安易な継承が引き起こす問題\u003c/h2\u003e\n\u003ch3 id=\"他のクラスを継承できなくなる\"\u003e他のクラスを継承できなくなる\u003c/h3\u003e\n\u003cp\u003eJavaでは継承元は1つのため、あるクラスを継承すると、\n別クラスの継承が行えなくなります。\nそのため、必要のない継承は行わないようにすべきです。\nC++のように多重継承がある言語では、「ダイヤモンド継承」という問題があります。\u003c/p\u003e\n\u003ch3 id=\"継承元または継承先に不必要な制限が付く\"\u003e継承元、または継承先に不必要な制限が付く\u003c/h3\u003e\n\u003cp\u003eJavaの継承の失敗例として、\nHashtableクラスを継承した\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/util/Properties.html\"\u003ejava.util.Properties\u003c/a\u003e、\nDateクラスを継承した\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/sql/Timestamp.html\"\u003ejava.sql.Timestamp\u003c/a\u003eがあります。\nこれらのクラスには、以下のような注意書きが入っています。\u003c/p\u003e\n\u003cp\u003ePropertiesクラスの場合\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePropertiesはHashtableを継承するので、\nPropertiesオブジェクトに対してputメソッドおよびputAllメソッドを適用できます。\nしかし、これらのメソッドを使用することは推奨されません。\nこれらのメソッドを使うと、呼出し側はキーまたは値がStringsではないエントリを挿入できるからです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eTimestampクラスの場合\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e上記のようなTimestampクラスとjava.util.Dateクラスの違いのため\nTimestamp値はjava.util.Dateのインスタンスとして考えないでください。\nTimestampとjava.util.Dateの継承関係は、型の継承ではなく、実装の継承を示します。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこのような注意書きを必要とするのは、継承を行って拡張しているからです。\n委譲を採用していれば、問題は起きませんでした。\u003c/p\u003e\n\u003ch2 id=\"継承を行う前に検討すべきもの\"\u003e継承を行う前に検討すべきもの\u003c/h2\u003e\n\u003cp\u003e継承を使う前に、以下のものが使えないか検討すべきです。\u003c/p\u003e\n\u003ch3 id=\"委譲\"\u003e委譲\u003c/h3\u003e\n\u003cp\u003e継承のほとんどは、以下のように、\n継承元クラスのオブジェクトをインスタンス変数として持つことで対応可能です。\nこの方式を委譲と呼びます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eProperties\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e Hashtable\u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u003c/span\u003eString, String\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e hash;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003esetPrpperty\u003c/span\u003e(String key, String value) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ehash\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eput\u003c/span\u003e(key, value);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003egetProperty\u003c/span\u003e(String key) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ehash\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eget\u003c/span\u003e(key);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"staticメソッド化\"\u003estaticメソッド化\u003c/h3\u003e\n\u003cp\u003eよく使われるメソッドを共通クラスに定義して、\nサブクラスで使用する方法がありますが、\nこの多くはstatic importで対応可能です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// 基底クラスにユーティリティメソッドを定義した例\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eBase\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprotected\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eboolean\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eisEmpty\u003c/span\u003e(String str) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e str \u003cspan style=\"color:#f92672\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enull\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e||\u003c/span\u003e str.\u003cspan style=\"color:#a6e22e\"\u003eisEmpty\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eAClass\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eextends\u003c/span\u003e Base {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003estatic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emain\u003c/span\u003e(String\u003cspan style=\"color:#f92672\"\u003e[]\u003c/span\u003e args) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        System.\u003cspan style=\"color:#a6e22e\"\u003eout\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eprintln\u003c/span\u003e(isEmpty(args\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e0\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e上のような場合は、ユーティリティクラスを作成して、\nstatic importを使用することで対応可能です。\nまた、Java 8から採用された、インターフェースのデフォルトメソッドでも可能です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// staticメソッド化\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003epubic \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eStringUtils\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003estatic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eboolean\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eisEmpty\u003c/span\u003e(String str) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e str \u003cspan style=\"color:#f92672\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enull\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e||\u003c/span\u003e str.\u003cspan style=\"color:#a6e22e\"\u003eisEmpty\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// static importを使った呼び出し\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport static\u003c/span\u003e StringUtils.*;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eAClass\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003estatic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emain\u003c/span\u003e(String\u003cspan style=\"color:#f92672\"\u003e[]\u003c/span\u003e args) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        System.\u003cspan style=\"color:#a6e22e\"\u003eout\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eprintln\u003c/span\u003e(isEmpty(args\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e0\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eただし、ユーティリティクラスはオブジェクト指向としてよろしくないため、\n既存のクラスの拡張としてのみ使うのが良いと思います。\u003c/p\u003e\n\u003ch2 id=\"template-methodパターン\"\u003eTemplate Methodパターン\u003c/h2\u003e\n\u003cp\u003e継承が必須であるパターンとして、\u003ca href=\"/dic/template-method/\"\u003eTemplate Method\u003c/a\u003eがあります。\nしかし、注意して使用しないと、むしろ使いにくくなります。\nStrategyパターンの使用を検討してください。\u003c/p\u003e\n"
  }, 
  {
    "title": "自主規制",
    "url": "https://www.ikemo3.com/dic/self-regulatory/",
    "contents": "\u003ch2 id=\"自主規制とは\"\u003e自主規制とは\u003c/h2\u003e\n\u003cp\u003e法律などの強制的なものによらず、自ら規制を行うことです。\u003c/p\u003e\n\u003ch2 id=\"自主規制はマネジメントの責任\"\u003e自主規制はマネジメントの責任\u003c/h2\u003e\n\u003cp\u003eドラッカーの「マネジメント(上)」 No.4959「第25章 社会に与えるインパクトの処理と社会への貢献」に、以下のように書かれています。\n要は「規制がないからって好き勝手にやって迷惑かけてたら痛い目合うよ」という感じです。\n\u003ca href=\"/dic/freedom/\"\u003e自由\u003c/a\u003eと責任は表裏一体ということですね。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eコスト増なくしてインパクトを除去できない場合には、\n最小のコストと最大の利益をもたらす規制の方法を、\n他に先んじて検討することがマネジメントの責任である。\nその立法化を図ることがマネジメントの仕事となる。\nこれまで、企業に限らずあらゆる組織のマネジメントが、この責任をおろそかにしてきた。\n彼らの考えは規制のない規制がよい規制というものだった。\nしかしそれは、インパクトを事業上の機会にすることができて初めていえることである。\u003c/p\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003cp\u003e「事実、規制がなされないことを期待するのは、都合の悪いときに目をつぶるに等しい。\n自動車業界にとっての安全や環境に類する問題は、必ず企業に高いツケを払わせる。\n政府の追及、マスコミの批判、産業への不信を招く。その挙げ句は懲罰的な規制である。\n今日世論が問題にしていないからといって無視してよいことにはならない。\n長期的な見通しをもつマネジメントが将来の危機を回避するためにとる措置に対して、\nたとえ世論が無関心だったとしても、言い訳の種とすべきではない。\n最終的には企業の悪事とされる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAORS/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAORS.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAORS/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集13 マネジメント［上］\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Artificial-Intelligence",
    "url": "https://www.ikemo3.com/tags/artificial-intelligence/",
    "contents": ""
  }, 
  {
    "title": "Neo ATLAS 1469",
    "url": "https://www.ikemo3.com/dic/neo-atlas-1469/",
    "contents": "\u003ch2 id=\"neo-atlas-1469とは\"\u003eNeo ATLAS 1469とは\u003c/h2\u003e\n\u003cp\u003e自分だけの世界地図を作っていくゲームです。\nジャンルは公式には「新世界発見シミュレーション」です。\u003c/p\u003e\n\u003ch2 id=\"自分にとっては初めてのシリーズ\"\u003e自分にとっては初めてのシリーズ\u003c/h2\u003e\n\u003cp\u003e元々はTHE ATLASというタイトルで\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、パソコン(PC-9801など)向けのゲームでした。\n当時\u003ca href=\"/dic/mycom-basic-magazine/\"\u003eベーマガ\u003c/a\u003eを購読してた時に憧れていたタイトルの1つです。\n結局やる機会がなかったのですが、\u003ca href=\"/dic/nintendo-switch/\"\u003eNintendo Switch\u003c/a\u003e向けに出るのを知って、\nせっかくなのでやってみました。\u003c/p\u003e\n\u003ch2 id=\"自分だけの世界地図を作る\"\u003e自分だけの世界地図を作る\u003c/h2\u003e\n\u003cp\u003eこのゲームの一番の特徴は、自分だけの世界地図を作れることです。\n時代は1469年のヨーロッパ、当時はヨーロッパの人にとっては、\nヨーロッパ大陸、アフリカ大陸北部以外はほとんど未知の領域でした。\nインドとかジパングとか名前は知られていて、陸路はありますが、\n海路ではどのように行けばいいのか分かっていません。\nそこで、実際に航海して、地図を作っていくのがこのゲームです。\u003c/p\u003e\n\u003cp\u003eしかし、このゲームでは、提督の報告を「信じる」ことで、\n世界地図が作られていきます。とにかく「信じる」を選ぶことで、\n現実と全く違う地図が出来上がることもあれば、\n頑張って今の地球のような地図を作ることもできます。\n面白いことに、世界が丸いかどうかすら自分で決められます。\u003c/p\u003e\n\u003cp\u003e地図は全くランダムというわけではなく、\nある程度は現実に沿った地形が選ばれます。\n自分の場合、アトランティス大陸があったり、\n東南アジアが陸続きでなかなかジパングに行けませんでしたが、\nアメリカ大陸は実際のものに近いです。\u003c/p\u003e\n\u003cp\u003eまだジパングに到着した程度で、地図は半分も完成していませんが、\nコンセプトに惹かれるのなら買いだと思います。\nちょっと操作感がもっさり気味なので、そこだけ注意です。\nバグらしきものは遭遇していません。\u003c/p\u003e\n\u003ch2 id=\"買うのならガイドブック付き\"\u003e買うのならガイドブック付き\u003c/h2\u003e\n\u003cp\u003e800円ほど差がありますが、ガイドパック付きの方がいいです。\nガイドブックとなっていますが、170ページほどある「攻略本」です。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07965PQCH/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B07965PQCH.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07965PQCH/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nAmazon | ネオアトラス1469 ガイドブックパック - Switch | ゲーム\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/THE_ATLAS\"\u003eTHE ATLAS - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Nintendo-Switch",
    "url": "https://www.ikemo3.com/tags/nintendo-switch/",
    "contents": ""
  }, 
  {
    "title": "機械学習",
    "url": "https://www.ikemo3.com/dic/machine-learning/",
    "contents": "\u003ch2 id=\"機械学習とは\"\u003e機械学習とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/artificial-intelligence/\"\u003e人工知能\u003c/a\u003e理論の分野の一つで、\n人が持っている学習能力をコンピュータで実現するためのものです。\u003c/p\u003e\n\u003ch2 id=\"人工知能理論機械学習\"\u003e人工知能理論≒機械学習\u003c/h2\u003e\n\u003cp\u003e巷で盛り上がってる「人工知能(AI)」のほとんどは、\n「機械学習」と呼ばれる分野です。\nというより、他の分野で大きな進展があったという話は聞いたことないんですよね。\u003c/p\u003e\n\u003cp\u003eではなぜ盛り上がっているのかというと、\n\u003cstrong\u003e想像してた以上に応用分野が広いから\u003c/strong\u003eです。\n2000年代初頭は、代表例が「Officeのイルカ」だったくらいで、\nその後、迷惑メールを識別するためのベイジアンフィルタが広まって、\nようやく実用的なものとして捉えられるようになった程度でした。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.atmarkit.co.jp/fwin2k/opinion/yamazaki/yama_2002_09.html\"\u003eOpinion：君はベイジアン・ネットワークを知っているか？（7/9） - ＠IT\u003c/a\u003e\u003c/p\u003e\n"
  }, 
  {
    "title": "国勢調査",
    "url": "https://www.ikemo3.com/dic/census/",
    "contents": "\u003ch2 id=\"国勢調査とは\"\u003e国勢調査とは\u003c/h2\u003e\n\u003cp\u003e国が行っている統計うち、全数調査のものを指します。\u003c/p\u003e\n\u003ch2 id=\"日本の国勢調査\"\u003e日本の国勢調査\u003c/h2\u003e\n\u003cp\u003e5年に1度行われています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.e-stat.go.jp/stat-search/files?page=1\u0026amp;toukei=00200521\u0026amp;result_page=1\"\u003ee-Stat\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.stat.go.jp/data/kokusei/2015/\"\u003e2015年(平成27年)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.stat.go.jp/data/kokusei/2010/\"\u003e2010年(平成22年)\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.stat.go.jp/data/kokusei/2010/sokyu.html\"\u003e遡及集計\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.stat.go.jp/data/kokusei/2005/\"\u003e2005年(平成17年)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.stat.go.jp/data/kokusei/2000/\"\u003e2000年(平成12年)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.stat.go.jp/data/kokusei/1995/\"\u003e1995年(平成7年)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "坂の上の雲",
    "url": "https://www.ikemo3.com/dic/sakanouenokumo/",
    "contents": "\u003ch2 id=\"坂の上の雲とは\"\u003e坂の上の雲とは\u003c/h2\u003e\n\u003cp\u003e司馬遼太郎さんによる歴史小説です。\u003c/p\u003e\n\u003ch2 id=\"この小説が面白いところ\"\u003eこの小説が面白いところ\u003c/h2\u003e\n\u003cp\u003e2005年くらいに読んで気に入ったのですが、\nこの小説のいいところは、「明治という時代」が描かれていることです。\u003c/p\u003e\n\u003cp\u003e明治時代というのは、「不平等条約をなくす」時代だったと言えます。\nここからはざっとしか書かないのですが\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\n江戸時代末期に結んだ不平等条約でいろいろ問題があったため、\n「西洋に追いつく」ことが当時の日本の目標でした。\u003c/p\u003e\n\u003cp\u003e「西洋に追いつく」のは経済的なこと、軍事的なこともありますが、\n何より重要なのは「法治国家である」ということです。\n不平等条約は今の価値観からすると横暴に思えるかもしれませんが、\n気まぐれで罪の重さが決まる国にまともな裁判は任せられない、\nそう考えると、不平等条約は単に強国の押し付けとは言えません。\nむしろ、現代のように、野蛮な国家がまともな国家と同等に扱われる方が\nおかしいとすら思います。\u003c/p\u003e\n\u003cp\u003eこのような「明治という時代」を描いているところが好きです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e年表作ってたら記事かけないので。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "駄本",
    "url": "https://www.ikemo3.com/tags/worthless-book/",
    "contents": ""
  }, 
  {
    "title": "崩壊",
    "url": "https://www.ikemo3.com/dic/collapse/",
    "contents": "\u003ch2 id=\"崩壊とは\"\u003e崩壊とは\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e何かが崩れて壊れること。\u003c/li\u003e\n\u003cli\u003e駄本によく使われる、品のない単語のこと。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eここでは後者を取り上げます。\u003c/p\u003e\n\u003ch2 id=\"崩壊は駄本の目安\"\u003e「崩壊」は駄本の目安\u003c/h2\u003e\n\u003cp\u003e駄本の目安としてはいろいろありますが、\nパッと思いつくのが、タイトルに「崩壊」と書いてある本です。\nただし、以下の場合は除きます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e物理的、定量的に崩れるような場合\u003c/li\u003e\n\u003cli\u003e邪悪なもの、独裁政権に対するもの\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"崩壊を使う人それを望んでいる人\"\u003e「崩壊」を使う人＝それを望んでいる人\u003c/h2\u003e\n\u003cp\u003e「崩壊」というタイトルを見たらこう思うようにしています。\n「◯◯崩壊」→「著者は◯◯がなくなることを望んでいる」\u003c/p\u003e\n\u003ch2 id=\"本当に起きていること\"\u003e本当に起きていること\u003c/h2\u003e\n\u003cp\u003e世の中で本当に起きていることは、「崩壊」ではありません。\n世の中が変わってくるとすれば、それは、革命ではなく、\n一人一人が少しずつ変わり、世代が変わっていくことによるものです。\u003c/p\u003e\n"
  }, 
  {
    "title": "ニュース",
    "url": "https://www.ikemo3.com/dic/news/",
    "contents": "\u003ch2 id=\"ニュースとは\"\u003eニュースとは\u003c/h2\u003e\n\u003cp\u003e人の心をネガティブにする有害なものです。\n以下のものをまとめています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eテレビのニュース番組(天気予報などは除く)\u003c/li\u003e\n\u003cli\u003e新聞(文化面などは除く)\u003c/li\u003e\n\u003cli\u003e写真週刊誌\u003c/li\u003e\n\u003cli\u003eネットのニュースメディア\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"報道でなくニュースな理由\"\u003e「報道」でなく「ニュース」な理由\u003c/h2\u003e\n\u003cp\u003e自分がネガティブな意味で使うときは、\n「報道」ではなく、「ニュース」を使うことにしています。\nそれは以下の理由からです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e「報道」には「書籍によるもの」が含まれるため。\n\u003cul\u003e\n\u003cli\u003e書籍は他のメディアと比べると、悪いものが比較的少なく、一緒にしたくないからです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e「報道」は固いイメージが多く、ネットのニュースなどは除外されるイメージがあるため。\n\u003cul\u003e\n\u003cli\u003eマスメディアによるニュースだけではなく、ネットのニュースメディアや、コピペブログなども有害なものとしています。そのため、「報道」という言葉では、うまく意味が伝えられないです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e「New＝新しいこと」が批判の対象のため。\n\u003cul\u003e\n\u003cli\u003eニュースの語源はnewの複数形です。\u003c/li\u003e\n\u003cli\u003e「目新しいばかりで中身のないもの」が、ニュースを嫌っている理由の1つです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ニュースによる被害集\"\u003eニュースによる被害集\u003c/h2\u003e\n\u003ch3 id=\"将棋の名人戦騒動\"\u003e将棋の名人戦騒動\u003c/h3\u003e\n\u003cp\u003e「不運のすすめ」p195『終章 「名人戦問題」の不運は誰か』に以下のように書かれています。\n将棋の名人戦は以前は毎日新聞社による主催だったのですが、\n朝日新聞社に移すという話があり、その時の騒動です。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eそして五月十三日付の社説に、またしても私を批判する文章が掲載されたが、\nこれをもって毎日新聞の「反米長キャンペーン」は終わった。\n当事者である毎日新聞社が憤り、私や理事会を叩くのは当然である。\nしかし、四月下旬からは、\nそれに便乗した週刊誌によるネガティブキャンペーンが始まった。\nこちらの報道は人格攻撃に近いもので、しかも根も葉もない報道であった。\n一連の報道によって、私が精神的におかしくなるか、体調を悪くするか、\n連盟内部で会長をリコールされるか、\nあるいは「もうやめた」と辞表を出して会長を辞めてしまうか、\nいずれかを期待した人たちもいたであろう。\n「正直言って、これほど大きく報道されるとは予測していなかったし、\nマスコミがこれだけ汚く書くということも想像していなかった。\n言論の自由は守られるべきと思うが、言論の勝手は困る。\nマスコミの良識ということについて考えさせられることが多かった。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e重要なのは、この騒動について「当事者」による批判は、\n米長さんも、自分も問題にしていません。\n全く関係ない第三者が、寄生虫のように群がっていることが問題です。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4047100544/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4047100544.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4047100544/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n不運のすすめ (角川oneテーマ21)\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "携帯電話",
    "url": "https://www.ikemo3.com/log/mobile-phone/",
    "contents": "\u003ch2 id=\"これまでの購入履歴\"\u003eこれまでの購入履歴\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e年\u003c/th\u003e\n          \u003cth\u003e機種\u003c/th\u003e\n          \u003cth\u003eキャリア\u003c/th\u003e\n          \u003cth\u003e備考\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e1997?\u003c/td\u003e\n          \u003ctd\u003e??\u003c/td\u003e\n          \u003ctd\u003eJ-Phone\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e??\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003eWILLCOM\u003c/td\u003e\n          \u003ctd\u003e京ぽんは買った覚えあり。あとデータ用端末も。\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2009\u003c/td\u003e\n          \u003ctd\u003eiPhone 3GS\u003c/td\u003e\n          \u003ctd\u003eソフトバンク\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2011\u003c/td\u003e\n          \u003ctd\u003eiPhone 4S\u003c/td\u003e\n          \u003ctd\u003eau\u003c/td\u003e\n          \u003ctd\u003eauスマートバリュー目当て\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2013\u003c/td\u003e\n          \u003ctd\u003eiPhone 5s\u003c/td\u003e\n          \u003ctd\u003eau\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2015\u003c/td\u003e\n          \u003ctd\u003eiPhone 6s\u003c/td\u003e\n          \u003ctd\u003edocomo\u003c/td\u003e\n          \u003ctd\u003e妻と合わせるために乗り換え\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n"
  }, 
  {
    "title": "趣味",
    "url": "https://www.ikemo3.com/dic/hobby/",
    "contents": "\u003ch2 id=\"趣味とは\"\u003e趣味とは\u003c/h2\u003e\n\u003cp\u003e自分が楽しみでやることです。\u003c/p\u003e\n\u003ch2 id=\"自分の趣味\"\u003e自分の趣味\u003c/h2\u003e\n\u003cp\u003e一部の\u003ca href=\"/dic/bakatter/\"\u003eバカッター\u003c/a\u003eでは批判されていましたが、\n以下の記事の内容はもっともだと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://style.nikkei.com/article/DGXMZO76417790R30C14A8000000\"\u003eお金はかかるが…趣味があれば仕事もがんばれる｜マネー研究所｜NIKKEI STYLE\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://style.nikkei.com/article/DGXMZO76670650V00C14A9000000\"\u003e月に1万円以上使うなら「お金がかかる趣味」｜マネー研究所｜NIKKEI STYLE\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://style.nikkei.com/article/DGXMZO77057420T10C14A9000000\"\u003e「オタク係数」25％超え　家計破綻の恐れあり｜マネー研究所｜NIKKEI STYLE\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eなぜかというと、お金だけでなく、時間の点からも、趣味を厳選するのは大事だからです。\n「これが自分だ」と言えるものだけを趣味にしました。\u003c/p\u003e\n\u003cp\u003e今のところ、自分の場合はこんな感じです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e読書\u003c/li\u003e\n\u003cli\u003eゲーム(コンシューマのみ)\u003c/li\u003e\n\u003cli\u003e将棋(見る専)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eここらへんは微妙です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eガジェット\u003c/li\u003e\n\u003cli\u003eプログラミング(仕事なので)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/stock/\"\u003e株式\u003c/a\u003e(塩漬けなので)\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "コンセント",
    "url": "https://www.ikemo3.com/dic/concentric-plug/",
    "contents": "\u003ch2 id=\"コンセントとは\"\u003eコンセントとは\u003c/h2\u003e\n\u003cp\u003e電源を取るためのものです。\u003c/p\u003e\n\u003ch2 id=\"語源\"\u003e語源\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://www.jewa.or.jp/qa/receptacle.html#003\"\u003e「コンセント」は何語？\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"タコ足配線が危険な理由\"\u003eタコ足配線が危険な理由\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://www.jewa.or.jp/qa/common.html\"\u003eたこ足配線は、なぜ危険なの？\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下の理由からと書かれています。\nサイトによっては定格を1500Wと書いているところもありますが、\n日本では基本的に100Vのため、同じです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e過電流\n\u003cul\u003e\n\u003cli\u003eコンセントは基本的には定格15A。\u003c/li\u003e\n\u003cli\u003e電源タップによっては15A未満のものもあり、定格を超えてしまう危険性がある。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e電気接続部の増加\n\u003cul\u003e\n\u003cli\u003eタコ足配線をすると抜けかかった状態になりやすい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "否定こそが綱領",
    "url": "https://www.ikemo3.com/dic/negation-is-the-basis/",
    "contents": "\u003ch2 id=\"否定こそが綱領とは\"\u003e否定こそが綱領とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eが、ファシズム全体主義特有の症状を指した言葉です。\u003c/p\u003e\n\u003cp\u003e元は\u003ca href=\"/dic/the-end-of-economic-man/\"\u003e「経済人」の終わり\u003c/a\u003ep12「第1章 反ファシズム陣営の幻想」に載っています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eファシズム全体主義には、前向きの信条がない代わりにおびただしい否定がある。\nもちろんあらゆる革命がそれまでのものを否定し過去との決別を信ずる。\nそこに歴史的な継続性を見出し、あるいは見出したと思うのは後世の見方にすぎない。\nしかしファシズム全体主義においては、歴史上のいかなる政治運動と比べても、\n過去の否定がはるかに徹底している。なぜならば、否定がその綱領だからである。\nしかも、さらに重要なこととして、\nファシズム全体主義は対立する理念があればそれらの双方を同時に否定する。\nファシズム全体主義は反リベラルであると同時に反保守である。\n反宗教であると同時に反無神論である。\n反資本主義であると同時に反社会主義である。\n反軍国主義であると同時に反平和主義である。\n反大企業であると同時に、あまりに多すぎるがゆえに反職人、反商店である。\n挙げれば切りがない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e原文(英語)では「否定がその綱領」というのは以下のようになっています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFascism, however, goes much further in its negation of the past than any earlier political movement,\nbecause it makes this negation its main platform.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"否定では物事は解決できない\"\u003e否定では物事は解決できない\u003c/h2\u003e\n\u003cp\u003eよく「◯◯はヒトラー」と批判する人がいますが、\nそのヒトラーに近いのは、その批判する人自身ではないかと思います。\nなぜなら、その人を見ると、何かを否定することしかしていません。\nまた、\u003ca href=\"/dic/no-news/\"\u003eニュース嫌い\u003c/a\u003eも同じ理由で、ニュースは基本的に否定しかしません。\u003c/p\u003e\n\u003cp\u003eもちろん「現状が一番良いから変えることを否定する」場合もありますが、\n大抵は「否定」という結論が先に来て、理論は後付けのため、\n\u003ca href=\"/dic/paradox/\"\u003e逆説\u003c/a\u003eですらない、こじつけ未満の言いがかりばかりです。\u003c/p\u003e\n\u003cp\u003eそういう人を、自分は最も嫌います。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAOW8/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAOW8.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAOW8/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集9 「経済人」の終わり\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "BNF",
    "url": "https://www.ikemo3.com/dic/bnf/",
    "contents": "\u003ch2 id=\"bnfとは\"\u003eBNFとは\u003c/h2\u003e\n\u003cp\u003eバッカス・ナウア記法のことです。\u003c/p\u003e\n\u003ch2 id=\"rfc\"\u003eRFC\u003c/h2\u003e\n\u003cp\u003e元は\u003ca href=\"https://tools.ietf.org/html/rfc2234\"\u003eRFC 2234\u003c/a\u003eですが、\u003ca href=\"https://tools.ietf.org/html/rfc4234\"\u003eRFC 4234\u003c/a\u003eによって置き換えられ、\nさらに、\u003ca href=\"https://tools.ietf.org/html/rfc5234\"\u003eRFC 5234\u003c/a\u003eによって置き換えられています。\u003c/p\u003e\n\u003ch2 id=\"記法\"\u003e記法\u003c/h2\u003e\n\u003ch3 id=\"heading\"\u003e\u003ccode\u003e*\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://tools.ietf.org/html/rfc5234#section-3.6\"\u003e3.6 Variable Repetition: *Rule\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e*element\u003c/code\u003e: 0個以上のelement\n\u003cul\u003e\n\u003cli\u003e例: *DIGIT: 任意の個数の数字\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;a\u0026gt;*element\u003c/code\u003e: a個以上のelement\n\u003cul\u003e\n\u003cli\u003e例: 1*DIGIT: 1個以上の数字\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e*\u0026lt;b\u0026gt;element\u003c/code\u003e: b個以下のelement\n\u003cul\u003e\n\u003cli\u003e例: *3DIGIT: 0〜3個の数字\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;a\u0026gt;*\u0026lt;b\u0026gt;element\u003c/code\u003e: a個以上b個以下のelement\n\u003cul\u003e\n\u003cli\u003e例: 1*3DIGIT: 1個以上か3個以下の数字\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"core-rules\"\u003eCore Rules\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://tools.ietf.org/html/rfc5234#appendix-B.1\"\u003eCore Rules\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eALPHA: アルファベット大文字・小文字(A-Z, a-z)\u003c/li\u003e\n\u003cli\u003eDIGIT: 数字(0-9)\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Do-It-Tomorrow",
    "url": "https://www.ikemo3.com/tags/do-it-tomorrow/",
    "contents": ""
  }, 
  {
    "title": "Karaage",
    "url": "https://www.ikemo3.com/tags/karaage/",
    "contents": ""
  }, 
  {
    "title": "カリッジュ",
    "url": "https://www.ikemo3.com/dic/kariju/",
    "contents": "\u003ch2 id=\"カリッジュとは\"\u003eカリッジュとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/karaage/\"\u003e唐揚げ\u003c/a\u003eの店です。\n会社は愛媛県新居浜市にあります。\u003c/p\u003e\n\u003ch2 id=\"お気に入りの味\"\u003eお気に入りの味\u003c/h2\u003e\n\u003cp\u003e松山に来たときに困ったことの1つに、「唐揚げが甘い」ことがありました。\nお菓子が甘いのはいいのですが、食べ物が甘いのは正直好きじゃないです。\nスーパーの唐揚げも甘いので困ってたのですが、\nこのカリッジュの唐揚げを見つけて助かりました。\u003c/p\u003e\n\u003cp\u003eただ助かっただけではなく、圧倒的に美味いです。\n唐揚げはいろいろ食べてますが、ここ以上の店は知らないです。\u003c/p\u003e\n"
  }, 
  {
    "title": "コミットメント",
    "url": "https://www.ikemo3.com/dic/commitment/",
    "contents": "\u003ch2 id=\"コミットメントとは\"\u003eコミットメントとは\u003c/h2\u003e\n\u003cp\u003e「何かをやる」ことを約束することです。\u003c/p\u003e\n\u003ch2 id=\"興味とコミットメントを区別する\"\u003e興味とコミットメントを区別する\u003c/h2\u003e\n\u003cp\u003eマニャーナの法則p68「原則7 コミットメントと興味を区別する」に以下のような記述があります。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e好きなことはたくさんあるけれど、\n何ひとつ本気で取り組む対象がないようなケースでは、\nコーチングの最初のステップは、クライアントが「これをやる」と\n周囲に宣言するもの、つまり「コミットする対象を見つけること」になります。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e当然、コミットできる対象は数が限られます。\nつまり、ここでも制限が重要なのです。何かにコミットするならば、\nそれ以外の対象はコミットしないものとして、排除しなければなりません。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eしかし、「興味」と「コミットメント」は区別しなければならないのです。\n「これならコミットできる」と言えるかどうかは、大切な判断基準です。\n日常で意思決定を迫られることはたくさんありますが、\nコミットメントを基準に判断をすれば、場当たり的な決断はずいぶん減るはずです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4799319809/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4799319809.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4799319809/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n仕事に追われない仕事術 マニャーナの法則・完全版\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eまず、コミットメントの定義は、「これをやると周囲に宣言するもの」です。\nそして、コミットメントに重要なことは、\nコミットすること以外は全て「ノー」と言うことです。\u003c/p\u003e\n"
  }, 
  {
    "title": "ニュース嫌い",
    "url": "https://www.ikemo3.com/dic/no-news/",
    "contents": "\u003ch2 id=\"ニュース嫌いとは\"\u003eニュース嫌いとは\u003c/h2\u003e\n\u003cp\u003eニュース嫌いとは、自分のことです。\n以下のような行動をとっています。\u003c/p\u003e\n\u003ch3 id=\"行動\"\u003e行動\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eテレビの「ニュース番組」を見ない。\n\u003cul\u003e\n\u003cli\u003e逆に言えば、普通のテレビ番組は見ます。\u003c/li\u003e\n\u003cli\u003eドキュメンタリーなども、以下のジャンルに相当する「臭い」番組は見ません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e新聞を読まない。\u003c/li\u003e\n\u003cli\u003eネットのニュースを見ない。\u003c/li\u003e\n\u003cli\u003e写真週刊誌などは論外。\n\u003cul\u003e\n\u003cli\u003eこのようなものを見ている人は「くたびれたおっさん」だけです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eこれらが表示される場所に行かない。広告ブロッカーを使う。\u003c/li\u003e\n\u003cli\u003e万が一これを見てしまっても、反応しない。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"ジャンル\"\u003eジャンル\u003c/h3\u003e\n\u003cp\u003e特に以下のジャンルが危険です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e政治\u003c/li\u003e\n\u003cli\u003e国際\u003c/li\u003e\n\u003cli\u003eマクロ経済\u003c/li\u003e\n\u003cli\u003e社会\u003c/li\u003e\n\u003cli\u003e芸能\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下のジャンルは基本的に問題ありません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e天気予報\u003c/li\u003e\n\u003cli\u003e訃報\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/ig-nobel-prize/\"\u003eイグノーベル賞\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e自分の専門分野(例: プログラミング)\u003c/li\u003e\n\u003cli\u003eその他、自分が能動的に検索して得た、「行動」のための情報\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"訃報はなぜ問題ないのか\"\u003e訃報はなぜ問題ないのか\u003c/h3\u003e\n\u003cp\u003e自分は訃報を知ることは問題ないと考えています。\n理由は以下の通りです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e訃報は捏造されることがない\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003e訃報を知らないと気まずいことがあるため。\u003c/li\u003e\n\u003cli\u003e悲しみは共有したほうがよいため。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"なぜテレビや新聞を見ないではなくニュースを見ないなのか\"\u003eなぜ「テレビや新聞を見ない」ではなく「ニュースを見ない」なのか\u003c/h2\u003e\n\u003cp\u003e理由は2つあります。\n1つ目は、「ニュース以外のテレビ、新聞」はそこまで酷くなく、\n良いものも多いからです。\nもっとも、新聞からニュースを除いて見るのは難しいため、\n新聞は見ないことをおすすめします。\u003c/p\u003e\n\u003cp\u003e2つ目は、例えば「マスメディアの情報は信用しない」というのは\nそれ自体は多くの場合正しいのですが、\n「ネットの情報源なら信頼できる」となる危険性があります。\u003c/p\u003e\n\u003cp\u003e自分は最初、いろんなメディアを比較検討してみたのですが、\nネットメディアの信頼度は、マスメディアと比べて特に高いわけではありません。\nある程度信用できるライターもいますが、非常に希で、\n1トンのゴミの山の中から1gの金を手作業で探すくらい効率が悪いです。\nなので、自分の中では、「ニュースと呼ばれるものは全部見ない」と結論づけました。\u003c/p\u003e\n\u003cp\u003eただ、一時期は本当に何もかも制限していたため、\n自分の専門分野である、IT技術情報も入手していなかったため、\n遅れをとってしまいました。\nそのため、自分の専門分野に関しては多少入手しています。\u003c/p\u003e\n\u003cp\u003eまた、これとは別に、何かを買うときなど、自分が能動的に検索することによって\n得る情報は多少緩くしています。\nもっとも、その場合にニュースサイトが引っかかることは希ですが。\u003c/p\u003e\n\u003cp\u003e重要なのは、専門分野にしても、自分が能動的に検索して得た情報にしても、\n\u003cstrong\u003e自分が行動するために必要な情報かどうか\u003c/strong\u003eです。\u003c/p\u003e\n\u003ch2 id=\"なぜニュースを見てはいけないのか\"\u003eなぜニュースを見てはいけないのか\u003c/h2\u003e\n\u003cp\u003eニュースを見てはいけない理由は、ニュースというものが、\n人をネガティブにするからです。\nもっと強い言い方をすると、人をネガティブにすることが、ニュースの\u003cstrong\u003e使命\u003c/strong\u003eです。\u003c/p\u003e\n\u003cp\u003e「他人の人生を生きるな」と言われますが、\nニュースを見ることは、他人の人生を生きることそのものです。\u003c/p\u003e\n\u003ch2 id=\"万が一見てしまった場合\"\u003e万が一見てしまった場合\u003c/h2\u003e\n\u003cp\u003e忘れるのが一番ですが、それは難しいので、\nもし「データ」があれば、その「データ」だけ受け入れて、\nそれ以外のもの、記者の主観については\u003cstrong\u003e真逆が正しい\u003c/strong\u003eと思うようにしています。\u003c/p\u003e\n\u003cp\u003eなぜなら、データはどのようにでも解釈できるからです。\n例えば「物価が上がった」というデータがあった場合、\nニュースはすぐ「生活が苦しくなる」という見方を出しますが、\n「デフレ脱却が進んでいる」とも言えます。\u003c/p\u003e\n\u003cp\u003eもし気になるなら、総務省が出している生のデータを読んで、傾向を見ると良いです。\nわざわざニュースという\u003cstrong\u003eノイズ発生機\u003c/strong\u003eを通す必要性はありません。\u003c/p\u003e\n\u003ch2 id=\"代わりに見るべきもの\"\u003e代わりに見るべきもの\u003c/h2\u003e\n\u003cp\u003eまずは「書籍」です。\nニュースを見るより書籍の方がよい理由はいくつかあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e著者も出版社も良い本を出そうというモチベーションがある。\u003c/li\u003e\n\u003cli\u003e大学教授など、専門家が書いていることが多い。\n\u003cul\u003e\n\u003cli\u003e専門家が必ずしもよいわけではないですが、ニュースに関わっている人、新聞記者やコメンテーターは大抵は駄目な素人です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e書籍は教養のある人向けに書かれている。\n\u003cul\u003e\n\u003cli\u003e逆に言えばテレビはバカ向けに作られています。\u003c/li\u003e\n\u003cli\u003e新聞もバカ向けに作られているものが多いです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eもちろん、売れれば何でもいいという著者や出版社もありますが、避けやすいです。\n特に「テレビの有名人」を避けておけば問題ありません。\u003c/p\u003e\n\u003ch2 id=\"必要なときに検索すれば良い\"\u003e必要なときに検索すれば良い\u003c/h2\u003e\n\u003cp\u003e逆に言えば、自分が行動するために必要な場合、ニュースサイトを見ることはあります。\n例えば、AppleのiPadを買うときには、Engadgetを参照しました。\nもちろんどのサイトでもいいわけではなくて、\nGIZMODOのような有害サイトは検索結果からも除外しています。\u003c/p\u003e\n\u003cp\u003e政治も同じです。自分にとって政治に対する一番の行動は「投票」なので、\n投票するときに、候補者について調べています。\nわざわざ、メディアによって\u003cstrong\u003e毒\u003c/strong\u003eが盛り込まれたニュースを見る必要性はありません。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e誤報はありますが、間違いと分かったらすぐ取り消されます。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "鶏肉",
    "url": "https://www.ikemo3.com/dic/chicken/",
    "contents": "\u003ch2 id=\"鶏肉とは\"\u003e鶏肉とは\u003c/h2\u003e\n\u003cp\u003eニワトリの肉です。\u003c/p\u003e\n\u003ch2 id=\"安くて美味い\"\u003e安くて美味い\u003c/h2\u003e\n\u003cp\u003e大学の頃は貧乏だったので、よく鶏肉を買っていました。\n調理が少し大変ですが、モモ肉がおすすめです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eモモ肉: 何の料理にも使える万能食材。78円〜98円/100gくらい。\u003c/li\u003e\n\u003cli\u003eムネ肉: さっぱりしすぎて料理を選ぶ。48円/100gくらい。\u003c/li\u003e\n\u003cli\u003eささみ: 調理しやすいがちと高め。98円〜118円/100gくらい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"鳥はむ\"\u003e鳥はむ\u003c/h2\u003e\n\u003cp\u003eムネ肉は料理の方法が分からなくてなかなか使ってなかったのですが、\n今は「鳥はむ」という2ch発祥の料理があるので、\n時間がある人は作ってみたらいいと思います。\n自分も作ってみましたが、時間がかかりますが、簡単で美味しいです。\u003c/p\u003e\n\u003cp\u003e世間でいつの間にか「サラダチキン」という名称で広まったのも面白いですね。\u003c/p\u003e\n\u003ch2 id=\"親鶏と若鶏\"\u003e親鶏と若鶏\u003c/h2\u003e\n\u003cp\u003eスーパーで売られている鶏肉は基本的には若鶏で柔らかいのですが、\n一部のスーパーでは親鶏が売られています。\u003c/p\u003e\n\u003cp\u003e親鶏は肉が固い(歯ごたえがある)のですが、旨味が多いのと、\n食感が好きなので\u003ca href=\"/dic/gyutan/\"\u003e牛タン\u003c/a\u003eと並んでたまに食べたくなります。\n香川県の骨付鶏では親鶏が選べるので、試してみるといいと思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "将棋",
    "url": "https://www.ikemo3.com/log/shogi/",
    "contents": "\u003ch2 id=\"印象に残った対局\"\u003e印象に残った対局\u003c/h2\u003e\n\u003cp\u003eちょこちょこ書いていきたいとおもいます。\u003c/p\u003e\n\u003ch3 id=\"2018-09-18-第44期棋王戦挑戦者決定トーナメント\"\u003e2018-09-18 第44期棋王戦挑戦者決定トーナメント\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e先手: 船江恒平六段\u003c/li\u003e\n\u003cli\u003e後手: 三浦弘行九段\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e名局賞候補。双方ともに攻防手の連発で、\n最後までどちらが勝つか分からなかった。\u003c/p\u003e\n\u003ch3 id=\"2018-09-03-第44期棋王戦挑戦者決定トーナメント\"\u003e2018-09-03 第44期棋王戦挑戦者決定トーナメント\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e先手: 菅井竜也王位\u003c/li\u003e\n\u003cli\u003e後手: 藤井聡太七段\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e藤井聡太七段が早指し戦以外でトップクラスの棋士と対局するのは久しぶり。\nどれくらい実力差があるのかなと思ったけど、\n中盤までは藤井七段が有利に進めてた模様。\nでもそれから追い上げて菅井王位が勝利。\u003c/p\u003e\n\u003cp\u003e対局はよく見てるけど、藤井七段に勝つには最低でもB級1組以上か、\n7割超の若手でないと難しいだろうなぁと。\u003c/p\u003e\n\u003ch3 id=\"2018-07-23-第4期叡王戦段位別予選九段戦\"\u003e2018-07-23 第4期叡王戦段位別予選九段戦\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e先手: 先崎学九段\u003c/li\u003e\n\u003cli\u003e後手: 高橋道雄九段\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e「惜しい」と言える敗戦から5日後、復帰後初勝利。\n正直後手が無理攻めのようでしたが、うまくいなして緩みなく勝利。\u003c/p\u003e\n\u003ch3 id=\"2018-07-21-第31期竜王戦-決勝トーナメント\"\u003e2018-07-21 第31期竜王戦 決勝トーナメント\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e先手: 深浦康市九段\u003c/li\u003e\n\u003cli\u003e後手: 豊島将之棋聖\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e双方の玉が五段目に来て、これは持将棋かと思ったところで、\n☗2八銀と寄せに行く手。飛車まで投資して、\n捕まえられなければ点数で負けるかもというギリギリの攻防が面白かった。\u003c/p\u003e\n\u003ch3 id=\"2018-07-18-第77期順位戦-b級2組\"\u003e2018-07-18 第77期順位戦 B級2組\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e先手: 先崎学九段\u003c/li\u003e\n\u003cli\u003e後手: 中村太地王座\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e後手の攻めが決まったかと思いきや飛車取りを受けないところで形勢は難解、\n先手の攻めが決まるかと思ったのですが、\n後手が中段玉で逃げ切るところがなかなか面白かったです。\u003c/p\u003e\n\u003cp\u003eもう一つ、しばらく将棋から離れていたので知らなかったのですが、\n先崎九段は2017年9月から2018年3月まで休場していたのを知りました。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07FFTS31G/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B07FFTS31G.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07FFTS31G/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nうつ病九段　プロ棋士が将棋を失くした一年間 (文春e-book)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eまだ復帰後勝利がない(2局目ですが)のではっきりとは言えませんが、\n「惜しい」と言える内容でした。\u003c/p\u003e\n\u003ch3 id=\"2018-06-24-第1回abematvトーナメント-inspired-by-羽生善治-予選aブロック\"\u003e2018-06-24 第1回AbemaTVトーナメント Inspired by 羽生善治 予選Aブロック\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e先手: 三枚堂達也六段\u003c/li\u003e\n\u003cli\u003e後手: 橋本崇載八段\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e後手のハッシーこと橋本八段の早指し戦とは思えない綺麗な指し回しが印象的。\n34手目☖3五歩からの捌き、玉頭戦の厚み、86手目の☖5一金寄と盤面を広く見た好手、\n見本のような寄せはさすがです。\u003c/p\u003e\n\u003ch3 id=\"2018-06-23-第4期叡王戦段位別予選九段戦\"\u003e2018-06-23 第4期叡王戦段位別予選九段戦\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e先手: 福崎文吾九段\u003c/li\u003e\n\u003cli\u003e後手: 屋敷伸之九段\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e55手の☗3七桂(いわゆる「パンツを脱ぐ」)や、\n終盤の穴熊らしい指し回し、見てて面白かったです。\n(中継で見ればよかったな)\u003c/p\u003e\n\u003cp\u003eふと検索したら、以下の記事を見つけました。\nこれ確か当時の雑誌で見てましたが、\n「感覚を破壊された」という有名な話です。\n現代感覚では難しくない一手だと思いますが、\n逆に言えば、時代の先を行っていた感じですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://shogipenclublog.com/blog/2016/03/09/tanigawa-19/\"\u003e谷川浩司名人（当時）「感覚を破壊された」 | 将棋ペンクラブログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"2018-06-1920-第76期名人戦七番勝負第6局\"\u003e2018-06-19〜20 第76期名人戦七番勝負第6局\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e先手: 佐藤天彦名人\u003c/li\u003e\n\u003cli\u003e後手: 羽生善治竜王\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eまさかの2手目☖6二銀。\n若い頃に「どれぐらい損であるかを見極めるために指した\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e」という\n曰く付きの一手。結果的には負けたものの、途中まではいい勝負でした。\u003c/p\u003e\n\u003cp\u003eもっとも、13手目の局面は先日のNHK杯で見たものと同じで、\n20手目の局面は前例が3局あるようで、奇手というよりは、\n未開拓の戦法になっているのかもしれません。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://cgi2.nhk.or.jp/goshogi/kifu/sgs.cgi?d=20180610\"\u003ehttps://cgi2.nhk.or.jp/goshogi/kifu/sgs.cgi?d=20180610\u003c/a\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003e検索した結果、他にもいろいろありますね。。。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.jti.co.jp/knowledge/shogi/professional/schedule/2014/3-1/index.html\"\u003e2014年度準決勝第一局（プロ） | 将棋日本シリーズ | JTウェブサイト\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e2手目☖6二銀ですが、初手☗5六歩のためそう不自然でもない?\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.jti.co.jp/knowledge/shogi/professional/schedule/2017/2-3/index.html\"\u003e2017年度二回戦第三局（プロ） | 将棋日本シリーズ | JTウェブサイト\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e2手目でなく4手目で、横歩取りの進行に。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.jti.co.jp/knowledge/shogi/professional/schedule/2017/3-2/index.html\"\u003e2017年度準決勝第二局（プロ） | 将棋日本シリーズ | JTウェブサイト\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e2手目でなく4手目ですが、同一進行に。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"2018-06-14-第77期順位戦a級1回戦\"\u003e2018-06-14 第77期順位戦A級1回戦\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e先手: 三浦弘行九段\u003c/li\u003e\n\u003cli\u003e後手: 阿久津主税八段\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e53手まで消費時間31分で新手炸裂という、\nある意味いつも通り(?)の三浦九段の快勝譜ですが、\n角換わり腰掛け銀の39手目☗3五歩は今後も出るかもしれないのでメモ。\u003c/p\u003e\n\u003ch3 id=\"2018-06-05-第31期竜王戦5組ランキング戦決勝\"\u003e2018-06-05 第31期竜王戦5組ランキング戦決勝\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e先手: 石田直裕五段\u003c/li\u003e\n\u003cli\u003e後手: 藤井聡太七段\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e藤井七段の終盤の強さが出た一局。\n中盤までは藤井七段が不利そうに見えたけど、\n76手目の☖7七飛成、88手目の☖8六桂と、ほぼノータイムで凄い手が出るのがすごい。\n(一応☖7七飛成は控室で出ていた手)\u003c/p\u003e\n\u003ch3 id=\"2018-05-29-第31期竜王戦1組出場者決定戦5位決定戦\"\u003e2018-05-29 第31期竜王戦1組出場者決定戦(5位決定戦)\u003c/h3\u003e\n\u003cp\u003e他にもあるけど書く暇なかった(´・ω・｀)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e先手: 糸谷哲郎八段\u003c/li\u003e\n\u003cli\u003e後手: 佐藤康光九段\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e86手目☖7九馬から52手の攻防が熱かったです。\n手の繋ぎ方と粘り方がさすがトッププロという感じですね。\u003c/p\u003e\n\u003ch3 id=\"2018-04-27-第90期ヒューリック杯棋聖戦準決勝\"\u003e2018-04-27 第90期ヒューリック杯棋聖戦準決勝\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e先手: 三浦弘行九段\u003c/li\u003e\n\u003cli\u003e後手: 稲葉陽八段\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e最近の三浦九段の棋譜を見ると、踏み込みの強さを感じます。\n結果的に負けてしまうこともあるのですが、勝つときは本当に完勝というケースが多い。\nそんな1局でした。\u003c/p\u003e\n\u003ch3 id=\"2018-04-25-第11期マイナビ女子オープン五番勝負第2局\"\u003e2018-04-25 第11期マイナビ女子オープン五番勝負第2局\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e先手: 加藤桃子女王\u003c/li\u003e\n\u003cli\u003e後手: 西山朋佳奨励会三段\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e36手目の☖4五同桂。この手で有利になったわけではないが、\n飛車を素抜かれてそれでも指せるという大局観にびっくりした。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.shogi.or.jp/news/2018/04/11112.html\"\u003e西山朋佳奨励会三段が加藤桃子女王を破り1勝1敗、第11期マイナビ女子オープン五番勝負第2局｜将棋ニュース｜日本将棋連盟\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://book.mynavi.jp/shogi/mynavi-open/blog/detail/id=90438\"\u003e西山挑戦者が驚きの順 | マイナビブックス\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"その他\"\u003eその他\u003c/h2\u003e\n\u003ch3 id=\"javascriptで棋譜\"\u003eJavaScriptで棋譜\u003c/h3\u003e\n\u003cp\u003e棋譜再生サイトはFlashが多いので大丈夫か?と思ったんですが、\nこんなソフトが開発されているようです。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/na2hiro/Kifu-for-JS\"\u003ehttps://github.com/na2hiro/Kifu-for-JS\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"銀星将棋\"\u003e銀星将棋\u003c/h3\u003e\n\u003cp\u003e元々北朝鮮の開発したソフトが使われている記憶があったんですが、今はどうなのか?\nが気になって調べてみたところ、このようなツイートを見つけました。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://twitter.com/igokyoto/status/933922228592242688\"\u003ehttps://twitter.com/igokyoto/status/933922228592242688\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e真偽は不明ですが、返信にある通り、\n嘘をつくには、リスクとリターンのバランスが取れてないと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.meti.go.jp/policy/external_economy/trade_control/01_seido/04_seisai/kitachosen.html\"\u003e対北朝鮮制裁関連（METI/経済産業省）\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e羽生さん以外では\u003ca href=\"/dic/omae-ha-naniwo-itte-irunda/\"\u003eおまえは何を言っているんだ\u003c/a\u003eと言われそうな発言ですね。。。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "DNS",
    "url": "https://www.ikemo3.com/log/dns/",
    "contents": "\u003ch2 id=\"使用しているdnsサーバ\"\u003e使用しているDNSサーバ\u003c/h2\u003e\n\u003cp\u003eAmazon Route 53を使用している。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eサイト構築にさくらVPSを使用していたが、Netlifyに移転した。\n\u003cul\u003e\n\u003cli\u003eサーバ構築は本業ではないため、時間節約。\u003c/li\u003e\n\u003cli\u003eさくらVPSは他の用途がないため一旦解約。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eVALUE-DOMAINのDNSサーバはキャッシュ時間が長すぎるため除外\u003c/li\u003e\n\u003cli\u003eせっかくなので外部のDNSサーバを使用\n\u003cul\u003e\n\u003cli\u003e要件: Ansibleで設定可能なこと。\u003c/li\u003e\n\u003cli\u003eGoogle Cloud DNSはゾーン当たりの価格がAWSより安いが、慣れるために今回はAWSを使用。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "エンコーディング",
    "url": "https://www.ikemo3.com/dic/encoding/",
    "contents": "\u003ch2 id=\"エンコーディングとは\"\u003eエンコーディングとは\u003c/h2\u003e\n\u003cp\u003e何かを符号化することです。\nいろいろありますが、単に「エンコーディング」だけの場合は、\n「文字エンコーディング(character encoding)」を指すこともあります。\nこの記事もその文字エンコーディングについて記載します。\u003c/p\u003e\n\u003ch2 id=\"文字集合--エンコーディング--文字コード\"\u003e文字集合 + エンコーディング = 文字コード\u003c/h2\u003e\n\u003cp\u003e文字集合と、それを符号化するための方式(エンコーディング)を\n合わせて文字コードと呼びますが、\n実用上は2つをあわせて文字コードと呼ぶことがあります。\u003c/p\u003e\n\u003ch2 id=\"主なエンコーディング\"\u003e主なエンコーディング\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eISO-2022-JP\u003c/li\u003e\n\u003cli\u003eShift-JIS\n\u003cul\u003e\n\u003cli\u003eMS932 / CP932\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEUC-JP\u003c/li\u003e\n\u003cli\u003eUTF-8\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "自由",
    "url": "https://www.ikemo3.com/dic/freedom/",
    "contents": "\u003ch2 id=\"自由とは\"\u003e自由とは\u003c/h2\u003e\n\u003cp\u003e責任のことです。\u003c/p\u003e\n\u003ch2 id=\"自由責任の由来\"\u003e「自由＝責任」の由来\u003c/h2\u003e\n\u003ch3 id=\"産業人の未来\"\u003e産業人の未来\u003c/h3\u003e\n\u003cp\u003e1つ目は、ドラッカーの「産業人の未来」p139「第6章 自由な社会と自由な政府」から来ています[^1]。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e自由の本質は別のところにある。自由とは責任を伴う選択である。\n自由とは権利というよりもむしろ義務である。\n真の自由とは、あるものからの自由ではない。それでは特権にすぎない。\n自由とは、何かを行うか行わないかの選択、\nある方法で行うかほかの方法で行うかの選択、ある信条を信奉するか逆の信条を信奉するかの選択である。\n自由とは解放ではない。責任である。楽しいどころか一人ひとりの人間にとって重い負担である。\nそれは、自らの行為、および社会の行為について自ら意思決定を行うことである。\nそしてそれらの意思決定に責任を負うことである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこれを言い換えると、責任を放棄する人は自由を奪われても仕方ないということです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MA7YI/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MA7YI.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MA7YI/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集10 産業人の未来\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"マネジメント上\"\u003eマネジメント(上)\u003c/h3\u003e\n\u003cp\u003eドラッカーは逆に、自らが責任を持つべきところでないところに、\n責任を持つことを厳しく諌めています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e「正当ならざる権力の行使を求める社会的責任の要求を受け入れてはならない。\n自らの利益のためにも受け入れてはならない。\n正当ならざる権力は権力ではないからである。\nまさに社会的責任の名のもとに抵抗すべきである。\nつまるところ、そのような要求は、社会的無責任の要求だからである。\n真摯な要求か、権力がらみの要求かは関係ない。\n社会的責任を要求されたならば、「われわれは権限をもつか。もつべき「か」を考える必要がある。\nもし答えがノーならば、そのような要求は拒否するのが社会的責任である。\nしかしノーというだけではすまない場合がある。そのようなとき、\nマネジメントたる者は、社会の問題に対して責任をとることが、\n自らの本業を損ない傷つけるならば抵抗しなければならない。\n要求が自らの能力以上のものであるときにも抵抗しなければならない。\n責任が不当な権限を意味するときにも抵抗しなければならない。\nしかし、問題がきわめて重大な性格のものであるときには、\n問題の解決について徹底的に検討し、その解決策を提案することが必要となる。\n問題が深刻であれば、結局は何かがなされなければならない。\nあらゆることにあらゆる組織のマネジメントが無関係であろうとしていたのでは、\n結果は無残というべきである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MA7YI/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MA7YI.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MA7YI/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集10 産業人の未来\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "日本のWebは残念",
    "url": "https://www.ikemo3.com/dic/web-in-japan-is-disappointment/",
    "contents": "\u003ch2 id=\"日本のwebは残念とは\"\u003e日本のWebは残念とは\u003c/h2\u003e\n\u003cp\u003e梅田望夫さんのツイートおよび、\nそれに対するインタビュー記事で出てくる言葉です。\nツイートが2008年11月9日、記事が2009年6月1日です。\u003c/p\u003e\n\u003cblockquote class=\"twitter-tweet\"\u003e\u003cp lang=\"ja\" dir=\"ltr\"\u003eはてな取締役であるという立場を離れて言う。はてぶのコメントには、バカなものが本当に多すぎる。本を紹介しているだけのエントリーに対して、どうして対象となっている本を読まずに、批判コメントや自分の意見を書く気が起きるのだろう。そこがまったく理解不明だ。\u003c/p\u003e\u0026mdash; Mochio Umeda (@mochioumeda) \u003ca href=\"https://x.com/mochioumeda/status/996601415?ref_src=twsrc%5Etfw\"\u003eNovember 8, 2008\u003c/a\u003e\u003c/blockquote\u003e\n\u003cscript async src=\"https://platform.x.com/widgets.js\" charset=\"utf-8\"\u003e\u003c/script\u003e\n\n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.itmedia.co.jp/news/articles/0906/01/news045.html\"\u003e日本のWebは「残念」　梅田望夫さんに聞く（前編） (1/3) - ITmedia NEWS\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"当時は理解できなかった\"\u003e当時は理解できなかった\u003c/h2\u003e\n\u003cp\u003e自分は「当時は」このことが理解できませんでした。\n2008年から2009年はようやくTwitterが日本で認知され始めた時期で、\nネガティブな印象はありませんでした。\u003c/p\u003e\n\u003cp\u003eはてなブックマーク(はてブ)は2010年には\n自分にとって大嫌いな存在になってたのですが、\n2009年頃はまだ使っていました。\u003c/p\u003e\n\u003ch2 id=\"今の日本のwebは残念\"\u003e今の日本のWebは残念\u003c/h2\u003e\n\u003cp\u003eしかし、少なくとも今の日本のWebは「残念」としか言いようがありません。\u003c/p\u003e\n\u003cp\u003eTwitterは\u003ca href=\"/dic/bakatter/\"\u003eバカッター\u003c/a\u003eと呼ばれるようになり、\nネガティブな言説ばかりまかり通るようになっています。\u003c/p\u003e\n\u003cp\u003e2013年に\u003ca href=\"https://nextstep.shogizuki.com/web-in-japan/\"\u003e日本のWebが残念な理由\u003c/a\u003eという記事を書いたのですが、その頃から何も変わっていません。\nむしろ悪くなっています。\u003c/p\u003e\n\u003ch2 id=\"言論の自由がない\"\u003e言論の自由がない\u003c/h2\u003e\n\u003cp\u003e梅田望夫さんのインタビューの中で以下のようなことを言っています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e僕はいま、個人としてインタビューを受けているけれど、\nはてブコメントについて言うとね、\n「僕は日本語圏ネット空間について発言することを許されていないんだな」と思った。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこれは端的に言えば、言論の自由がないのと同じです。\nもちろん、形式的には「言論の自由」自体は存在します。\u003c/p\u003e\n\u003cp\u003eしかし、不用意に発言をすると批判や罵倒に逢います。\nブログ全盛期のころはまだ批判もブログで行われていたため、\nそれでも議論が成立していましたが、今ははてブやTwitterのような、\n「安全なところから石を投げる」ためのプラットフォームを使って、\n集団でいじめをしてきます。\u003c/p\u003e\n\u003cp\u003eそのような状態で何か発言ができるのは、神経の図太い人だけです。\n繊細な人は黙ることを選びます。\u003c/p\u003e\n\u003ch2 id=\"日本のwebはいつから残念になったのか\"\u003e日本のWebはいつから残念になったのか\u003c/h2\u003e\n\u003cp\u003e自分の感覚ですが、日本のWebがいつから残念になったのかを書いてみます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e〜2002年: のどかな時代(「ブログ」以前)\n\u003cul\u003e\n\u003cli\u003eWebが残念という感覚は全く無かった。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e2002〜2005年: 意識の高い人増殖時代\n\u003cul\u003e\n\u003cli\u003e「ブログ」文化の意識の高い人が多かったが、Web全体に与える影響はそれほどでもなかった。\u003c/li\u003e\n\u003cli\u003eコピペブログもあったが、影響はそれほどでもなかった。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e2005年: 残念なWebの始まり\n\u003cul\u003e\n\u003cli\u003eいわゆる「Web 2.0」の頃。\u003c/li\u003e\n\u003cli\u003e有害サイト「はてなブックマーク」の登場\u003c/li\u003e\n\u003cli\u003eアフィブログも多く登場し、この頃から金儲けのためには手段を選ばないサイトが増えてきた。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e2006年〜2009年: 面白いWebが増えてきた時期\n\u003cul\u003e\n\u003cli\u003eYouTube、Twitter、pixiv、ニコニコ動画など、面白いサイトが増えてきた。\u003c/li\u003e\n\u003cli\u003eこの時期は「面白い」ことが多かったため、残念な感覚は少なかった。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e2009年〜2013年: 有害サイトが社会的認知を得る時期\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/alpha-bloggers-award/\"\u003eアルファブロガー・アワード\u003c/a\u003eなど、有害サイトを表彰するサイトが表れた。\u003c/li\u003e\n\u003cli\u003e有害サイト「Togetter」なども登場した。\u003c/li\u003e\n\u003cli\u003e東日本大震災の後から、Twitterが「デマッター」と呼ばれる事例が増えた。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e2013年〜: 見限った時期\n\u003cul\u003e\n\u003cli\u003e自分が日本のWebを見限った時期。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Idea",
    "url": "https://www.ikemo3.com/tags/idea/",
    "contents": ""
  }, 
  {
    "title": "アイデア",
    "url": "https://www.ikemo3.com/dic/idea/",
    "contents": "\u003ch2 id=\"アイデアとは\"\u003eアイデアとは\u003c/h2\u003e\n\u003cp\u003e複数の問題を一気に解決するものです。\u003c/p\u003e\n\u003ch2 id=\"元ネタ\"\u003e元ネタ\u003c/h2\u003e\n\u003cp\u003eこれは元ネタがあって、ほぼ日の以下のコンテンツに書かれている、宮本茂さんの言葉です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.1101.com/iwata/\"\u003e任天堂の岩田社長が遊びに来たので、みんなでご飯を食べながら話を聞いたのだ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.1101.com/iwata/2007-08-31.html\"\u003eアイデアというのはなにか?\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"立ち止まって考える\"\u003e立ち止まって考える\u003c/h2\u003e\n\u003cp\u003eこの記事にも書かれていますが、ほとんどの問題はトレードオフです。\nなので、単に問題を潰していくだけではなかなか先に進みません。\nでも、何か1つ直すだけで、いろんなことが解決することがあります。\u003c/p\u003e\n\u003cp\u003eしかし、そういうのは、トレードオフの問題を一つ一つ潰しているときには\nなかなか思い浮かびません。もちろん問題を一つ一つ潰さないといけないときもありますが、\nときには立ち止まって、全体を眺める必要があります。\u003c/p\u003e\n"
  }, 
  {
    "title": "ビール",
    "url": "https://www.ikemo3.com/log/beer/",
    "contents": "\u003ch2 id=\"ヴァイツェン\"\u003eヴァイツェン\u003c/h2\u003e\n\u003ch3 id=\"kapuziner-weissbierドイツ\"\u003eKapuziner Weissbier(ドイツ)\u003c/h3\u003e\n\u003cfigure style=\"width: 305px; padding: 3px; background-color: #cccc\"\u003e\n\t\u003cimg src=\"/log/beer/Kapuziner-Weissbier_hu_adeda38307cbf781.jpg\" width=\"302\" height=\"227\"\u003e\n\t\u003cfigcaption\u003e\n\t\u003csmall\u003eKapuziner Weissbier\u003c/small\u003e\n\t\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003cp\u003e\u003ca href=\"http://www.kulmbacher.biz/\"\u003eクルンバッハ醸造所\u003c/a\u003eというところで作っているらしい。\n420円ほど。500mlなのでちと高め。\u003c/p\u003e\n\u003cp\u003e苦味もなく、ごくごく飲める。\u003c/p\u003e\n"
  }, 
  {
    "title": "メール",
    "url": "https://www.ikemo3.com/dic/mail/",
    "contents": "\u003ch2 id=\"メールとは\"\u003eメールとは\u003c/h2\u003e\n\u003cp\u003e郵便物のことですが、多くの場合「電子メール」を指します。\u003c/p\u003e\n\u003ch2 id=\"との由来\"\u003e@と%の由来\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e@\u003c/code\u003eが使われた理由は以下で間違いなさそうです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://openmap.bbn.com/~tomlinso/ray/firstemailframe.html\"\u003eThe First Email\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ccode\u003e%\u003c/code\u003eは\u003ccode\u003epercent hack\u003c/code\u003eとして使われていました。\nRFCにも載っていますが、INFORMATIONALなので、規格ではなく、情報ですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.jochentopf.com/email/address.html\"\u003eAnatomy of an email address | Jochen Topf\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://tools.ietf.org/html/rfc1711\"\u003eRFC 1711 - Classifications in E-mail Routing\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"名乗り日本語圏独自\"\u003e名乗り(日本語圏独自?)\u003c/h3\u003e\n\u003cp\u003e昔は「いけも％はらへ」みたいな名乗りをしていた記憶はあるのですが、\nなぜこれが使われるようになったのかは調べてもハッキリとはわかりませんでした。\n実際使っていた人のコメントが以下で見られるようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://d.hatena.ne.jp/nishiohirokazu/20090805/1249453343\"\u003eメールアドレスのパーセントの意味 - 西尾泰和のはてなダイアリー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://d.hatena.ne.jp/another/20040811/1092228546\"\u003eアットマークとパーセント記号の使い分けについて - 他人の脳内\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"インボックスゼロ\"\u003eインボックス・ゼロ\u003c/h2\u003e\n\u003cp\u003eメール処理術として、「インボックス・ゼロ」という方式があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://blog.todoist.com/ja/2015/07/01/%E3%83%A9%E3%82%A4%E3%83%95%E3%83%8F%E3%83%83%E3%82%AF%E3%81%AE%E5%9F%BA%E6%9C%AC%E3%80%81%E3%82%A4%E3%83%B3%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%82%BC%E3%83%AD%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/\"\u003eメール効率化術の「インボックスゼロ」のあまり知られてないメリット | Todoist 公式ブログ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lifehacking.jp/2007/08/inbox-zero-talk-by-merlin/\"\u003eメールのための GTD、「Inbox Zero」の実践 | Lifehacking.jp\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれは、メールを受信トレイに溜めておかず「処理」して、\n受信トレイを空っぽにして、脳をスッキリさせるテクニックです。\n注意が必要なのは、「処理＝全てその場で返信」ではないということです。\n\u003ca href=\"/dic/gtd/\"\u003eGTD\u003c/a\u003e的に「次の行動」を決めて、それにふさわしい場所に配置することです。\u003c/p\u003e\n\u003cp\u003e自分は10年以上やっていますが、だいたいこんな感じです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eそもそもメールの数を減らすことが重要。\n\u003cul\u003e\n\u003cli\u003e不要なメルマガなどは解除する。\u003c/li\u003e\n\u003cli\u003e仕事などでどうしても大量のメールが来る場合は、フィルタしておく。\u003c/li\u003e\n\u003cli\u003e自分はプライベートは\u003cstrong\u003e一週間に30通くらいしか来ません\u003c/strong\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eその場で返信はなるべくしない。\n\u003cul\u003e\n\u003cli\u003eその場で返信できるケースはほとんどない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eアクションが必要なものは、ラベルを作成して、定期的に確認。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://en.wikipedia.org/wiki/At_sign\"\u003eAt sign - Wikipedia\u003c/a\u003eからリンクあり。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ピタゴラスイッチ",
    "url": "https://www.ikemo3.com/dic/pythagora-switch/",
    "contents": "\u003ch2 id=\"ピタゴラスイッチとは\"\u003eピタゴラスイッチとは\u003c/h2\u003e\n\u003cp\u003eNHK Eテレの教育番組です。\u003c/p\u003e\n\u003ch2 id=\"主なコーナー\"\u003e主なコーナー\u003c/h2\u003e\n\u003cp\u003e出演者などの関連情報を簡潔に。\n気が向いたら追加していきます。敬称略。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eアルゴリズムたいそう、アルゴリズムこうしん\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%81%84%E3%81%A4%E3%82%82%E3%81%93%E3%81%93%E3%81%8B%E3%82%89\"\u003eいつもここから\u003c/a\u003eの二人。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eこんなことできません\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E9%96%A2%E6%A0%B9%E5%8B%A4\"\u003e関根勤\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%AF%E3%82%A4%E3%82%AC%E3%83%AF#%E5%B2%A9%E4%BA%95\"\u003e岩井ジョニ男(イワイガワ)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eそこで橋は考えた\n\u003col\u003e\n\u003cli\u003e旋回橋、天橋立(1923年)\u003c/li\u003e\n\u003cli\u003e跳開橋、手結港可動橋(2002年)\u003c/li\u003e\n\u003cli\u003e昇開橋、加賀須野橋(2014年)\u003c/li\u003e\n\u003cli\u003e運搬橋、スペインの\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%93%E3%82%B9%E3%82%AB%E3%83%A4%E6%A9%8B\"\u003eビスカヤ橋\u003c/a\u003e(1893年)\u003c/li\u003e\n\u003cli\u003e降開橋、ギリシャのイスミア橋(コリントス運河, 1893年?)\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"グッズ\"\u003eグッズ\u003c/h2\u003e\n\u003cp\u003e渋谷の\u003ca href=\"http://www.nhk.or.jp/studiopark/\"\u003eNHKスタジオパーク\u003c/a\u003eにありますが、ネットでも購入可能です。\u003c/p\u003e\n\u003ch3 id=\"ピタゴラ装置\"\u003eピタゴラ装置\u003c/h3\u003e\n\u003cp\u003eピタゴラスイッチと言えばピタゴラ装置ですが、\nその最後(ピタゴラフィニッシュ)を手助けしてくれるためのグッズがあります。\u003c/p\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00OPTZRF0/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00OPTZRF0.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00OPTZRF0/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nピタゴラスイッチ ピタゴラゴール1号\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ca href=\"http://www.nhk-ep.com/products/detail/h10069P1\"\u003e公式はこちら\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B013I1XQI0/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B013I1XQI0.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B013I1XQI0/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nピタゴラスイッチ 荷物をのせるとはしるでスー\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ca href=\"http://www.nhk-ep.com/products/detail/h1064P1\"\u003e公式はこちら\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eピタゴラゴール1号はちょっと耐久性が良くない(旗のところが動きにくくなる)のですが、\n値段も安いし、面白いと思います。\u003c/p\u003e\n\u003ch3 id=\"おりたたみハンカチ劇場\"\u003eおりたたみハンカチ劇場\u003c/h3\u003e\n\u003cp\u003e番組で見ててあったらいいなぁと思ったら、やっぱりありました。\n「しりとり」持ってますが、ちょうどいい感じです。\n普通のハンカチとしては使ってませんが。\u003c/p\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00K2NARBC/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00K2NARBC.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00K2NARBC/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nピタゴラスイッチ　おりたたみハンカチ劇場　ピタとゴラけんかのまき\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ca href=\"http://www.nhk-ep.com/products/detail/h09536P1-00-00-h09536P1\"\u003e公式はこちら\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00T5NBRNW/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00T5NBRNW.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00T5NBRNW/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nピタゴラスイッチ　おりたたみハンカチ劇場　みんなでかくれんぼのまき\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ca href=\"http://www.nhk-ep.com/products/detail/h09536P1-00-00-h10090P1\"\u003e公式はこちら\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00KP0MDMI/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00KP0MDMI.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00KP0MDMI/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nピタゴラスイッチ おりたたみハンカチ劇場 ピタとゴラしりとりあそびのまき\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ca href=\"http://www.nhk-ep.com/products/detail/h09536P1-00-00-h09630P1\"\u003e公式はこちら\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00K2NAS5W/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00K2NAS5W.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00K2NAS5W/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nピタゴラスイッチ　おりたたみハンカチ劇場　みんなで山のぼりのまき\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ca href=\"http://www.nhk-ep.com/products/detail/h09536P1-00-00-h09537P1\"\u003e公式はこちら\u003c/a\u003e\u003c/p\u003e\n"
  }, 
  {
    "title": "運",
    "url": "https://www.ikemo3.com/dic/fortune/",
    "contents": "\u003ch2 id=\"運とは\"\u003e運とは\u003c/h2\u003e\n\u003cp\u003e偶然性の言い換えみたいなものです。\u003c/p\u003e\n\u003ch2 id=\"不運不幸ではない\"\u003e不運＝不幸ではない\u003c/h2\u003e\n\u003cp\u003e何か偶然的に良くないことが起きることを不運と呼びますが、\n不運が必ずしも、不幸に結びつくとは限りません。\u003c/p\u003e\n\u003cp\u003e自分の場合は\u003ca href=\"/dic/job-offer-cancellation/\"\u003e内定取消\u003c/a\u003eという不運な出来事がありましたが、\nそれによって不幸になったのかというと、むしろ良い方向に向かっていきました。\u003c/p\u003e\n\u003cp\u003e自分の場合は結果的には「運がよかった」のですが、\nそれから、運について考えることが多く、いろいろな本を読んでいます。\n幸運にしろ、不運にしろ、それをどう生かすかは当人次第だなという感じです。\n例えばこのような本です。\u003c/p\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4047100544/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4047100544.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4047100544/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n不運のすすめ (角川oneテーマ21)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01DZI2WOU/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B01DZI2WOU.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01DZI2WOU/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n偶然のチカラ (集英社新書)\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n\u003ch2 id=\"成功に近づく方法楽しいことをたくさんやる\"\u003e成功に近づく方法＝楽しいことをたくさんやる\u003c/h2\u003e\n\u003cp\u003e逆に成功という観点で語られることも多いのですが、\nこちらはとにかく「いろんなことをやる」のが一つの方向性だと思っています。\u003c/p\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00SIM19YS/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00SIM19YS.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00SIM19YS/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n仕事は楽しいかね？ (きこ書房)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4484131196/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4484131196.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4484131196/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n成功は\u0026#34;ランダム\u0026#34;にやってくる! チャンスの瞬間「クリック・モーメント」のつかみ方\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n"
  }, 
  {
    "title": "逆説",
    "url": "https://www.ikemo3.com/dic/paradox/",
    "contents": "\u003ch2 id=\"逆説とは\"\u003e逆説とは\u003c/h2\u003e\n\u003cp\u003e逆に考えることです。\u003c/p\u003e\n\u003ch2 id=\"好きより嫌い\"\u003e「好き」より「嫌い」\u003c/h2\u003e\n\u003cp\u003e自分がよく使う考え方の1つが、「好き」より「嫌い」を考えることがあります。\n例えばこんな感じで。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://hinatakokage.hatenablog.com/entry/partner-search-20141011\"\u003e結婚相手を探すなら、「嫌いな事」と「金銭感覚」が一致している人がおすすめ - 日なたと木陰\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"やりたいよりやりたくない\"\u003e「やりたい」より「やりたくない」\u003c/h2\u003e\n\u003cp\u003e「マンガでわかる 非常識な成功法則」という本に、\n「まず、やりたくないことを書き出す」というアイデアがありました。\nこれも逆説的な考えだと思います。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0140TS0Z8/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0140TS0Z8.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0140TS0Z8/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nマンガでわかる　非常識な成功法則\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e「やりたくないこと」と「やりたいこと」を書くとありますが、\n自分としては、「他の人がやりたくないが、自分ではそうでもないこと」\nなんかも書いてみるといいかもしれません。\u003c/p\u003e\n\u003ch2 id=\"逆説思考\"\u003e逆説思考\u003c/h2\u003e\n\u003cp\u003eもっと一般的に、発想を逆転・反転したらどうかというのを書いた新書もあります。\nだいぶ昔に読んだのですが、面白かったです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00KS3FAGI/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00KS3FAGI.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00KS3FAGI/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n逆説思考～自分の「頭」をどう疑うか～ (光文社新書)\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "【未完了】CentOS 7 VMのディスクイメージからDockerコンテナを作成して動かす",
    "url": "https://www.ikemo3.com/inverted/docker/centos7-vm-disk-to-docker/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eVMのディスクイメージから、Dockerコンテナを作って同様に動かす方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e元イメージはVagrant CentOS 7 Boxです。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eディスクイメージからファイルを取得してtarで固める\u003c/li\u003e\n\u003cli\u003etarからDockerコンテナを作成\u003c/li\u003e\n\u003cli\u003e【未完了】systemdを使って起動\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"ディスクイメージからファイルを取得してtarで固める\"\u003eディスクイメージからファイルを取得してtarで固める\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"/inverted/vm/disk-image-to-tarball/\"\u003e仮想マシンのディスクイメージの中身をtarで固める方法\u003c/a\u003e参照。\u003c/p\u003e\n\u003ch3 id=\"tarからdockerコンテナを作成\"\u003etarからDockerコンテナを作成\u003c/h3\u003e\n\u003cp\u003e以下のようなDockerfileを作成してビルドします。\nサイズが大きいため、ADDの下には何も書かず、これで作成したイメージを参照したほうが良いです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Dockerfile\" data-lang=\"Dockerfile\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eFROM\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003escratch\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eADD\u003c/span\u003e root.tar /\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"systemdを使って起動\"\u003esystemdを使って起動\u003c/h3\u003e\n\u003cp\u003eまだうまくいっていません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CentOS/CentOS-Dockerfiles/tree/master/systemd/centos7\"\u003eCentOS-Dockerfiles/systemd/centos7 at master · CentOS/CentOS-Dockerfiles\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://dev.classmethod.jp/cloud/aws/docker-systemd/\"\u003eDockerコンテナでSystemdを使って複数プロセスを起動する ｜ Developers.IO\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Devops",
    "url": "https://www.ikemo3.com/tags/devops/",
    "contents": ""
  }, 
  {
    "title": "Infrastructure as Code(IaC)",
    "url": "https://www.ikemo3.com/dic/iac/",
    "contents": "\u003ch2 id=\"infrastructure-as-codeとは\"\u003eInfrastructure as Codeとは\u003c/h2\u003e\n\u003cp\u003eインフラに関するものをコード(プログラム、ファイル)として管理することです。\n例えば以下のようなものが該当します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVMの設定\u003c/li\u003e\n\u003cli\u003eOSのインストール、設定\u003c/li\u003e\n\u003cli\u003eミドルウェア、アプリケーションのインストール、設定\u003c/li\u003e\n\u003cli\u003eプロビジョニング\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e略称としては\u0026rsquo;IaC\u0026rsquo;が使われているようです。\nInfrastructure as a Codeというふうに\u0026rsquo;a\u0026rsquo;を入れることもありますが、\nIaasと略すと\u0026rsquo;Infrastructure as a Service\u0026rsquo;と紛らわしいので、\n避けているのかもしれません。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003eオライリーから、そのまんまのタイトルの本が出ています。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4873117968/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4873117968.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4873117968/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nInfrastructure as Code ―クラウドにおけるサーバ管理の原則とプラクティス\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Libguestfs",
    "url": "https://www.ikemo3.com/tags/libguestfs/",
    "contents": ""
  }, 
  {
    "title": "Packer",
    "url": "https://www.ikemo3.com/manual/packer/",
    "contents": "\u003ch2 id=\"流れ\"\u003e流れ\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eテンプレートファイル(\u003ca href=\"/dic/json/\"\u003eJSON\u003c/a\u003e)を作成する\n\u003cul\u003e\n\u003cli\u003eBuilder, Provisioner, Post-Processorなどを定義していく。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epacker build\u003c/code\u003eコマンドを実行\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"実行\"\u003e実行\u003c/h2\u003e\n\u003cp\u003eビルド: \u003ccode\u003epacker build JSONファイル\u003c/code\u003e\u003c/p\u003e\n\u003ch2 id=\"commnicators\"\u003eCommnicators\u003c/h2\u003e\n\u003cp\u003eスクリプトを実行するなど、サーバに接続するために必要なもの。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.packer.io/docs/templates/communicator.html\"\u003eCommunicators - Templates - Packer by HashiCorp\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"設定項目\"\u003e設定項目\u003c/h3\u003e\n\u003cp\u003eデフォルトはSSH接続。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003essh_username: ユーザ名\u003c/li\u003e\n\u003cli\u003essh_password: パスワード\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e書いてないけどたぶんsudoできるユーザが必要だと思います。\u003c/p\u003e\n\u003ch2 id=\"builder\"\u003eBuilder\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.packer.io/docs/templates/builders.html\"\u003eBuilders - Templates - Packer by HashiCorp\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-json\" data-lang=\"json\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;builders\u0026#34;\u003c/span\u003e: [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"virtualbox-ovfova\"\u003eVirtualBox OVF/OVA)\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.packer.io/docs/builders/virtualbox-ovf.html\"\u003eVirtualBox OVF/OVA - Builders - Packer by HashiCorp\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eVirtualBoxからエクスポートするときは、Virtualization Format 2.0にすること。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eWhen exporting from VirtualBox make sure to choose OVF Version 2, since Version 1 is not compatible and will generate errors like this:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003e必須項目\n\u003cul\u003e\n\u003cli\u003etype: \u003ccode\u003evirtualbox-ovf\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003esource_path: .ovaファイルのパスまたはURL\u003c/li\u003e\n\u003cli\u003essh_username: SSH接続ユーザ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eオプション項目\n\u003cul\u003e\n\u003cli\u003eshutdown_command: シャットダウンのコマンド\n\u003cul\u003e\n\u003cli\u003eデフォルトでは何もせずに電源オフするみたいですね。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"post-processors\"\u003ePost-Processors\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.packer.io/docs/templates/post-processors.html\"\u003ePost-Processors - Templates - Packer by HashiCorp\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-json\" data-lang=\"json\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;post-processors\u0026#34;\u003c/span\u003e: [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"compress\"\u003eCompress\u003c/h3\u003e\n\u003cp\u003e単に作成したものを圧縮するだけの模様。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.packer.io/docs/post-processors/compress.html\"\u003eCompress - Post-Processors - Packer by HashiCorp\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e必須項目\n\u003cul\u003e\n\u003cli\u003etype: \u003ccode\u003ecompress\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eオプション項目\n\u003cul\u003e\n\u003cli\u003eoutput: 出力するファイルパス\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "仮想マシンのディスクイメージの中身をtarで固める方法",
    "url": "https://www.ikemo3.com/inverted/vm/disk-image-to-tarball/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e仮想マシンのディスクイメージ(.vmdkなど)をtarで固めるための方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003emacOS(11.13.4) + Docker(18.03.0-ce)で確認しています。\nLinuxの場合はDockerは不要です。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://libguestfs.org/\"\u003elibguestfs\u003c/a\u003eに含まれている、\u003ca href=\"http://libguestfs.org/virt-tar-out.1.html\"\u003evirt-tar-out\u003c/a\u003eを使います。\nこれはLinuxでしか動かないため、macOSではDocker上で動かしています。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下のようにします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003evirt-tar-out -a ディスクイメージ 取得元のパス Tarファイル名\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 例\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003evirt-tar-out -a disk.vmdk / /root/root.tar\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eDockerを使う例はGistに書きました。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://gist.github.com/ikemo3/afe577adc928a76a55151e90c15fae70\"\u003ehttps://gist.github.com/ikemo3/afe577adc928a76a55151e90c15fae70\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "画像をテキストに変換する方法(OCR)",
    "url": "https://www.ikemo3.com/inverted/image/to-text/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e画像をテキストに自動的に変換する方法です。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eGoogle Driveを使います。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eGoogle Driveを開く。\u003c/li\u003e\n\u003cli\u003eブラウザにファイルをドラッグしてアップロード\u003c/li\u003e\n\u003cli\u003eファイルを選択して右クリック→「アプリを開く」→「Googleドキュメント」を選択してしばらく待つ。\u003c/li\u003e\n\u003cli\u003eGoogleドキュメントが開くので、2ページ目に解析されたテキストが入る。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e縦書きも問題ありません。\u003c/li\u003e\n\u003cli\u003e改行があるとそこでスペースが1つ入るため、除去する必要があります。\u003c/li\u003e\n\u003cli\u003e電子書籍をスキャンする場合(引用目的)は、本文以外(時計など)を消しておくと良いです。\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Google Apps Script",
    "url": "https://www.ikemo3.com/manual/google-apps-script/",
    "contents": "\u003ch2 id=\"webブラウザでの開発\"\u003eWebブラウザでの開発\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://script.google.com/home/start\"\u003eApps Script - はじめに\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eびみょーに使いづらいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e日本語で文末にコメントを入れると挙動が怪しくなる(補完ができなくなる)\u003c/li\u003e\n\u003cli\u003e「文字が無効です」と出ることがある。変な文字が入った模様。打ち直したらOK。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ローカルでの開発\"\u003eローカルでの開発\u003c/h2\u003e\n\u003cp\u003e未検証ですが、claspというツールを使えばローカルでも開発できるみたいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/clasp\"\u003egoogle/clasp: 🔗 Develop Apps Script projects locally.\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/HeRo/items/f2ce057c6b1456e896ad\"\u003eclasp が Typescript をサポートした！ - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eGitとの連携はこの拡張が使えるらしいけど、自分はうまく動きませんでした。リポジトリ作成とかはできるけど、pushができない。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://chrome.google.com/webstore/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo/related?hl=ja\"\u003eGoogle Apps Script GitHub アシスタント - Chrome ウェブストア\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"api\"\u003eAPI\u003c/h2\u003e\n\u003ch3 id=\"ログ\"\u003eログ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developers.google.com/apps-script/guides/logging\"\u003eLogger\u003c/a\u003eクラスを使う。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"メール\"\u003eメール\u003c/h3\u003e\n\u003ch4 id=\"メール操作\"\u003eメール操作\u003c/h4\u003e\n\u003cp\u003eゴミ箱に移動や未読にするなどの操作は、スレッド単位、メッセージ単位どちらでも可能なようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"(https://developers.google.com/apps-script/reference/gmail/gmail-app)\"\u003eGmailApp\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e検索: \u003ca href=\"https://developers.google.com/apps-script/reference/gmail/gmail-app#searchquery\"\u003eGmailApp#search(query)\u003c/a\u003e を使う。クエリの書式はGmailのものと同じ。\u003ca href=\"https://developers.google.com/apps-script/reference/gmail/gmail-thread\"\u003eGmailThread\u003c/a\u003e の配列が返る。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/gmail/gmail-thread\"\u003eGmailThread\u003c/a\u003e: スレッド\n\u003cul\u003e\n\u003cli\u003eGmailのスレッドと同じで、複数のメッセージが入る。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/gmail/gmail-thread#getmessages\"\u003eGmailThread#getMessages()\u003c/a\u003e でメッセージの配列が返る。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/gmail/gmail-message\"\u003eGmailMessage\u003c/a\u003e: メッセージ\n\u003cul\u003e\n\u003cli\u003e1つのメッセージが入る。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"メール送信\"\u003eメール送信\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://improve-future.com/send-mail-automatically.html\"\u003e定期的にメールを自動で送る方法\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分にメールを送る場合は、Sessionを使うと良さそうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developers.google.com/apps-script/reference/base/session\"\u003eClass Session  |  Apps Script  |  Google Developers\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Review",
    "url": "https://www.ikemo3.com/tags/review/",
    "contents": ""
  }, 
  {
    "title": "自動改札機",
    "url": "https://www.ikemo3.com/dic/automatic-ticket-gate/",
    "contents": "\u003ch2 id=\"自動改札機とは\"\u003e自動改札機とは\u003c/h2\u003e\n\u003cp\u003e改札を自動化するために作られた機械です。\u003c/p\u003e\n\u003ch2 id=\"愛媛県には自動改札機がない\"\u003e愛媛県には自動改札機がない\u003c/h2\u003e\n\u003cp\u003eでもこんなのはあります。\u003c/p\u003e\n\u003cp\u003e\u003cfigure style=\"width: 305px; padding: 3px; background-color: #cccc\"\u003e\n\t\u003cimg src=\"/dic/automatic-ticket-gate/reader_hu_b0c7c9fd6a8823a5.jpg\" width=\"302\" height=\"403\"\u003e\n\t\u003cfigcaption\u003e\n\t\u003csmall\u003e改札\u003c/small\u003e\n\t\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003cfigure style=\"width: 305px; padding: 3px; background-color: #cccc\"\u003e\n\t\u003cimg src=\"/dic/automatic-ticket-gate/charge_hu_26b75a949ab844.jpg\" width=\"302\" height=\"403\"\u003e\n\t\u003cfigcaption\u003e\n\t\u003csmall\u003eチャージ\u003c/small\u003e\n\t\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003c/p\u003e\n"
  }, 
  {
    "title": "日記",
    "url": "https://www.ikemo3.com/dic/diary/",
    "contents": "\u003ch2 id=\"日記とは\"\u003e日記とは\u003c/h2\u003e\n\u003cp\u003e日々の出来事や感じたことを綴るものです。\u003c/p\u003e\n\u003ch2 id=\"日次レビューは朝にやる\"\u003e日次レビューは朝にやる\u003c/h2\u003e\n\u003cp\u003e日記を書く目的として「振り返り＝レビュー」があるのですが、\nそれは朝にやった方が良さそうです。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://cyblog.jp/26479\"\u003eレビューは朝にやる | シゴタノ！\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e自分は夜にやってましたが、朝にやってみるとちょうどよいと感じました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e最近は「たすくま」使っているが、朝にレポートが出るので、朝の方がよい。\u003c/li\u003e\n\u003cli\u003e夜はやっぱり眠いので頭が働かない\u003c/li\u003e\n\u003cli\u003e次の日の朝くらいまでは記憶が鮮明\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "IoT",
    "url": "https://www.ikemo3.com/dic/iot/",
    "contents": "\u003ch2 id=\"iotとは\"\u003eIoTとは\u003c/h2\u003e\n\u003cp\u003eInternet of Thingsの略で、モノをネットでつなぐことで、\nいろいろやろうということです。\u003c/p\u003e\n\u003ch2 id=\"電源が鍵\"\u003e電源が鍵\u003c/h2\u003e\n\u003cp\u003eIoTは最近のバズワードの中では実体のある面白いものだと思います。\nやったことないですが、電子工作が楽しくないはずがないので:)\u003c/p\u003e\n\u003cp\u003eただ、いろいろ考えると、電源の問題が解決しないと難しいかなと。\n簡単なセンサーを使うものなら、\nボタン電池かバッテリー駆動で1ヶ月くらいは持つようになればいいなと。\nいろいろ検索してみましたが、電源の問題は良さそうな案は見つかりませんでした。\nまた定期的にウォッチしたいですね。。。\u003c/p\u003e\n"
  }, 
  {
    "title": "Apache Tomcat",
    "url": "https://www.ikemo3.com/manual/tomcat/",
    "contents": "\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eTomcat 8.5で確認予定です。\u003c/p\u003e\n\u003ch2 id=\"contextxmlの置き場所\"\u003econtext.xmlの置き場所\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-8.5-doc/config/context.html#Defining_a_context\"\u003eDefining a context\u003c/a\u003e参照。\nグローバルな設定は \u003ccode\u003eCATALINA_BASE/conf/context.xml\u003c/code\u003e に書くので良さそうです。\nserver.xmlには書かないほうがいいです。\u003c/p\u003e\n\u003ch2 id=\"環境変数\"\u003e環境変数\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-8.5-doc/RUNNING.txt\"\u003eRUNNING.txt\u003c/a\u003eより。\u003c/p\u003e\n\u003ch3 id=\"設定スクリプト\"\u003e設定スクリプト\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eCATALINA_BASE/bin\u003c/code\u003eまたは\u003ccode\u003eCATALINA_HOME/bin\u003c/code\u003e以下に、以下のファイルを置いてください。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003esetenv.sh: Linuxなど\u003c/li\u003e\n\u003cli\u003esetenv.bat: Windows\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"設定場所\"\u003e設定場所\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCATALINA_OPTS: 起動時のみに参照\u003c/li\u003e\n\u003cli\u003eJAVA_OPTS: 起動時、停止時に参照\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただし、メモリの設定はJAVA_OPTSに書いてはいけないようです。\u003c/p\u003e\n\u003ch2 id=\"requestdumper\"\u003eRequestDumper\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-8.5-doc/config/filter.html#Request_Dumper_Filter\"\u003eRequestDumper\u003c/a\u003eの設定に従う。\u003c/p\u003e\n\u003ch3 id=\"注意点\"\u003e注意点\u003c/h3\u003e\n\u003cp\u003eパラメータはプラットフォームのエンコーディングによってデコードされ、\nrequest.setCharacterEncoding()は無効になる。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eWARNING: Using this filter has side-effects. The output from this filter includes any parameters included with the request. The parameters will be decoded using the default platform encoding. Any subsequent calls to request.setCharacterEncoding() within the web application will have no effect.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"embedded-tomcat\"\u003eEmbedded Tomcat\u003c/h2\u003e\n\u003cp\u003e所々で\u0026rsquo;Embedded Tomcat\u0026rsquo;という単語が出てきたので何かと思ったのですが、\n別のソフトウェアではなく、Tomcatのライブラリを直接呼び出して、\n自前で実行するものみたいです。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://devcenter.heroku.com/articles/create-a-java-web-application-using-embedded-tomcat\"\u003eCreate a Java Web Application Using Embedded Tomcat | Heroku Dev Center\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e実行には、org.apache.catalina.startup.Tomcatクラスを使うようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-9.0-doc/api/org/apache/catalina/startup/Tomcat.html\"\u003eTomcat 9.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-8.5-doc/api/org/apache/catalina/startup/Tomcat.html\"\u003eTomcat 8.5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/startup/Tomcat.html\"\u003eTomcat 7.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"セキュリティ設定\"\u003eセキュリティ設定\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-8.5-doc/security-howto.html\"\u003eTomcat 8.5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-7.0-doc/security-howto.html\"\u003eTomcat 7.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"エラー画面の変更\"\u003eエラー画面の変更\u003c/h2\u003e\n\u003cp\u003eまずはセキュリティ上よろしくない、デフォルトの画面を出さない方法。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-8.5-doc/config/valve.html#Error_Report_Valve\"\u003eTomcat 8.5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Error_Report_Valve\"\u003eTomcat 7.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-xml\" data-lang=\"xml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;Valve\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclassName=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;org.apache.catalina.valves.ErrorReportValve\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e       \u003cspan style=\"color:#a6e22e\"\u003eshowReport=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;false\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e       \u003cspan style=\"color:#a6e22e\"\u003eshowServerInfo=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;false\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e/\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eカスタムのエラーページを使用する場合は、\nweb.xmlに\u003ccode\u003e\u0026lt;error-page\u0026gt;\u003c/code\u003eの指定が必要です。\u003c/p\u003e\n"
  }, 
  {
    "title": "Security",
    "url": "https://www.ikemo3.com/tags/security/",
    "contents": ""
  }, 
  {
    "title": "Sql",
    "url": "https://www.ikemo3.com/tags/sql/",
    "contents": ""
  }, 
  {
    "title": "SQLインジェクション",
    "url": "https://www.ikemo3.com/dic/sql-injection/",
    "contents": "\u003ch2 id=\"sqlインジェクションとは\"\u003eSQLインジェクションとは\u003c/h2\u003e\n\u003cp\u003eユーザの入力値をSQLとして解釈してしまうプログラムによる脆弱性です。\u003c/p\u003e\n\u003ch2 id=\"sqlインジェクションを避ける原則\"\u003eSQLインジェクションを避ける原則\u003c/h2\u003e\n\u003cp\u003e以下に書かれています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet\"\u003eSQL Injection Prevention Cheat Sheet - OWASP\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e実際は以下の2つでだいたい問題ありません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e言語やライブラリが提供するエスケープ機能を使用する。\n\u003cul\u003e\n\u003cli\u003eJavaはprepared statementを使う。\n\u003cul\u003e\n\u003cli\u003e多くの場合パラメータをSQLと別に渡すことが可能なため、最も望ましい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eライブラリが実装しているエスケープ機能を使う場合もある。\n\u003cul\u003e\n\u003cli\u003e逆に言えば、自前で実装しない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eprepared statementが使えない場合は「許可されたものの一覧表」を使用する\n\u003cul\u003e\n\u003cli\u003e例: ORDER BYはASC, DESCのいずれか。\n\u003cul\u003e\n\u003cli\u003e画面から\u0026rsquo;ASC\u0026rsquo;, \u0026lsquo;DESC\u0026rsquo;という文字列を渡す場合は、他の文字列が渡らないことを検証する。\u003c/li\u003e\n\u003cli\u003e実際は0 -\u0026gt; ASC, 1 -\u0026gt; DESCのように、SQLを連想させないほうがいいと思う。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e参考: \u003ca href=\"http://d.hatena.ne.jp/ockeghem/20110509/p1\"\u003e僕が「ホワイトリスト」を採用しなかった訳 - ockeghem(徳丸浩)の日記\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"javaでの例\"\u003eJavaでの例\u003c/h2\u003e\n\u003ch3 id=\"基本\"\u003e基本\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// 悪い例\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eString sql \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;SELECT * FROM USER WHERE USER_ID = \u0026#39;\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e userId \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u0026#39;\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eStatement stmt \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e conn.\u003cspan style=\"color:#a6e22e\"\u003ecreateStatement\u003c/span\u003e(sql);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// 良い例\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eString sql \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;SELECT * FROM USER WHERE USER_ID = ?\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ePreparedStatement stmt \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e conn.\u003cspan style=\"color:#a6e22e\"\u003eprepareStatement\u003c/span\u003e(sql);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003estmt.\u003cspan style=\"color:#a6e22e\"\u003esetString\u003c/span\u003e(1, userId);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"入力値によってwhereが変わるもの\"\u003e入力値によってWHEREが変わるもの\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// 悪い例\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// userIdはフォームで渡されたパラメータとする。\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eString sql \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;SELECT * FROM USER \u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (userId \u003cspan style=\"color:#f92672\"\u003e!=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enull\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    sql \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;WHERE USER_ID = \u0026#39;\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e userId \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u0026#39;\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eStatement stmt \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e conn.\u003cspan style=\"color:#a6e22e\"\u003ecreateStatement\u003c/span\u003e(sql);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// 良い例\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// SQLインジェクションではないですが、例が良くないのであとで書き換えます。。。\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eList\u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u003c/span\u003eString\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e values \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e ArrayList\u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u0026gt;\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003evalues.\u003cspan style=\"color:#a6e22e\"\u003eadd\u003c/span\u003e(userId);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eString sql \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;SELECT * FROM USER \u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (userId \u003cspan style=\"color:#f92672\"\u003e!=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enull\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    sql \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;WHERE USER_ID = ?\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ePreparedStatement stmt \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e conn.\u003cspan style=\"color:#a6e22e\"\u003eprepareStatement\u003c/span\u003e(sql);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e i \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 1;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efor\u003c/span\u003e(String value: values) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    stmt.\u003cspan style=\"color:#a6e22e\"\u003esetString\u003c/span\u003e(i\u003cspan style=\"color:#f92672\"\u003e++\u003c/span\u003e, value);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"in句を作成する場合\"\u003eIN句を作成する場合\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// 悪い例\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// userIdListはフォームで渡されたパラメータとする。\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eString sql \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;SELECT * FROM USER WHERE USER_ID IN (\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efor\u003c/span\u003e (String userId : userIdList) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    sql \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u0026#39;\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e userId \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u0026#39;,\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esql \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e sql.\u003cspan style=\"color:#a6e22e\"\u003esubstring\u003c/span\u003e(0, sql.\u003cspan style=\"color:#a6e22e\"\u003elength\u003c/span\u003e() \u003cspan style=\"color:#f92672\"\u003e-\u003c/span\u003e 1);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eStatement stmt \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e conn.\u003cspan style=\"color:#a6e22e\"\u003ecreateStatement\u003c/span\u003e(sql);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// 良い例\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// SQLインジェクションではないですが、コードはもっと良いものにできますね。。。\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eList\u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u003c/span\u003eString\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e values \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e ArrayList\u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u0026gt;\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eString sql \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;SELECT * FROM USER WHERE USER_ID IN (\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efor\u003c/span\u003e (String userId : userIdList) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    sql \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;?,\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    values.\u003cspan style=\"color:#a6e22e\"\u003eadd\u003c/span\u003e(userId);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esql \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e sql.\u003cspan style=\"color:#a6e22e\"\u003esubstring\u003c/span\u003e(0, sql.\u003cspan style=\"color:#a6e22e\"\u003elength\u003c/span\u003e() \u003cspan style=\"color:#f92672\"\u003e-\u003c/span\u003e 1);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ePreparedStatement stmt \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e conn.\u003cspan style=\"color:#a6e22e\"\u003eprepareStatement\u003c/span\u003e(sql);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e i \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e 1;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efor\u003c/span\u003e(String value: values) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    stmt.\u003cspan style=\"color:#a6e22e\"\u003esetString\u003c/span\u003e(i\u003cspan style=\"color:#f92672\"\u003e++\u003c/span\u003e, value);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"プリペアードステートメントでは対応できないもの\"\u003eプリペアードステートメントでは対応できないもの\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eソート順序(ORDER BY ASC/DESC)\u003c/li\u003e\n\u003cli\u003e列名、テーブル名\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"ソート順序\"\u003eソート順序\u003c/h4\u003e\n\u003cp\u003eソート順序については2種類しかないため、条件分岐で対応可能です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// 悪い例\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eString orderBy \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e ...; \u003cspan style=\"color:#75715e\"\u003e// 画面から渡され、通常はASC/DESCのどちらかが入る。\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eString sql \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;SELECT * FROM USER ORDER BY\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e orderBy;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// 良い例\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eString orderBy \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e ...; \u003cspan style=\"color:#75715e\"\u003e// 画面から渡され、通常はASC/DESCのどちらかが入る。\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eString sql \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;SELECT * FROM USER \u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eswitch\u003c/span\u003e(orderBy) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ecase\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;ASC\u0026#34;\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        sql \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;ORDER BY ASC\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ebreak\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ecase\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;DESC\u0026#34;\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        sql \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;ORDER BY DESC\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ebreak\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003edefault\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#75715e\"\u003e// エラー処理\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch4 id=\"列名テーブル名\"\u003e列名、テーブル名\u003c/h4\u003e\n\u003cp\u003eある一定の列名、テーブル名のみ使用する場合は、\nその中に含まれているかどうかのチェックで対応可能です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// 良い例\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eList\u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u003c/span\u003eString\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e columns \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e ...; \u003cspan style=\"color:#75715e\"\u003e// 画面から渡され、列名が入る。\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eList\u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u003c/span\u003eString\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e validColumns \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e Arrays.\u003cspan style=\"color:#a6e22e\"\u003easList\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;NAME\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;USER_ID\u0026#34;\u003c/span\u003e, ...);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eString sql \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;SELECT \u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efor\u003c/span\u003e(String column: columns) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (validColumns.\u003cspan style=\"color:#a6e22e\"\u003econtains\u003c/span\u003e(column) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        sql \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e column \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;,\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esql \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e sql.\u003cspan style=\"color:#a6e22e\"\u003esubstring\u003c/span\u003e(0, sql.\u003cspan style=\"color:#a6e22e\"\u003elength\u003c/span\u003e() \u003cspan style=\"color:#f92672\"\u003e-\u003c/span\u003e 1);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esql \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34; FROM USER\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eもし、ある一定の列名、テーブル名というのが決められないのなら、\nそれはデータベース管理ソフトを除いて、\u003cstrong\u003e設計に問題があります\u003c/strong\u003e。\u003c/p\u003e\n\u003ch2 id=\"セカンドオーダーsqlインジェクション\"\u003eセカンドオーダーSQLインジェクション\u003c/h2\u003e\n\u003cp\u003eそんなものはなかった。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://takagi-hiromitsu.jp/diary/20051231.html#p05\"\u003e「セカンドオーダーSQLインジェクション」ですって？\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.slideshare.net/ockeghem/owasp-japan20120327\"\u003eここが変だよ、グローバルスタンダードの脆弱性対策～入力値の考え方～\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e正しい実装をしていれば起きません。\u003c/p\u003e\n"
  }, 
  {
    "title": "フォント",
    "url": "https://www.ikemo3.com/dic/font/",
    "contents": "\u003ch2 id=\"フォントとは\"\u003eフォントとは\u003c/h2\u003e\n\u003cp\u003e文字のスタイル、書体、あるいは\nそれをコンピュータに入れるためのファイルを指します。\u003c/p\u003e\n\u003ch2 id=\"自由に使えるフォント\"\u003e自由に使えるフォント\u003c/h2\u003e\n\u003cp\u003e「自由に使える」の定義は、\nオープンソースの定義に合致したライセンスを使用しているものです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ipafont.ipa.go.jp/old/ipafont/download.html\"\u003eIPAフォント\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eあと見つけたら適当に記載します。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"プログラマー向けフォント\"\u003eプログラマー向けフォント\u003c/h2\u003e\n\u003cp\u003e以下のサイトを参考に好みで選ぶのがいいと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/vmmhypervisor/items/2d6b39d21ed68bd746c0\"\u003e等幅フォント比較：プログラミング用 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分の場合は視認性はあまり重要視しませんね。\n\u0026lsquo;0\u0026rsquo;と\u0026rsquo;O\u0026rsquo;の違いはあるといいですが、\n普段使う書体と違うと、その違和感のほうが大きいです。\u003c/p\u003e\n"
  }, 
  {
    "title": "cocot",
    "url": "https://www.ikemo3.com/manual/cocot/",
    "contents": "\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRed Hat系\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://pkgs.org/download/cocot\"\u003eFedora向けRPM\u003c/a\u003eがあるので、これを入れれば良さそうです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emacOS\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebrew install cocot\u003c/code\u003eでOKです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"使い方\"\u003e使い方\u003c/h2\u003e\n\u003cp\u003eUTF-8の端末でEUC-JPの環境にssh接続したい場合は以下のようにします。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ecocot -t UTF-8 -p EUC-JP ssh どこか\n\u003c/code\u003e\u003c/pre\u003e"
  }, 
  {
    "title": "Oracleインストーラをフォアグラウンドで動かす方法",
    "url": "https://www.ikemo3.com/inverted/oracle/install-in-the-foreground/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eOracleインストーラ(サイレントインストール)はバックグラウンドで\n動くのですが、これをフォアグラウンドで動かす方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eOracle 11g Release 2 for Linuxで確認しています。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下のようにパイプを使う、もしくはリダイレクトするだけです。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003erunInstaller -silent -responseFile db.rsp | tee install.log\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eインストーラはバックグラウンドで動きますが、\n標準出力にログを吐き出します。\nこれをパイプに通すと、標準出力がクローズされる、\nすなわちインストーラが終了するまで待つようになります。\u003c/p\u003e\n\u003cp\u003eこれで動く理由は以下の投稿で知りました。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://stackoverflow.com/questions/17472379/showing-progress-in-oracle-db-silent-installation-with-response-file\"\u003elinux - Showing Progress in Oracle DB Silent Installation with Response File - Stack Overflow\u003c/a\u003e\u003c/p\u003e\n"
  }, 
  {
    "title": "Amazon",
    "url": "https://www.ikemo3.com/tags/amazon/",
    "contents": ""
  }, 
  {
    "title": "Amazon Product Advertising API",
    "url": "https://www.ikemo3.com/manual/amazon-product-advertising-api/",
    "contents": "\u003ch2 id=\"マニュアル\"\u003eマニュアル\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.aws.amazon.com/AWSECommerceService/latest/DG/Welcome.html\"\u003e英語API\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://images-na.ssl-images-amazon.com/images/G/09/associates/paapi/dg/index.html\"\u003e日本語版API\u003c/a\u003eがあるが、情報が古くて、間違っているものがある。\n例えば、ItemSearchのItemPageの値が1〜400となっているが、1〜10が正しい(API Version 2013-08-01)。\u003c/p\u003e\n\u003ch2 id=\"api\"\u003eAPI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://webservices.amazon.com/scratchpad/index.html\"\u003eスクラッチパッド\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eWeb上でテストできるツール。まずはこれで試すと良さげ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.aws.amazon.com/AWSECommerceService/latest/DG/ItemSearch.html\"\u003eItemSearch\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.aws.amazon.com/AWSECommerceService/latest/DG/ItemLookup.html\"\u003eItemLookup\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"itemsearchのパラメータ\"\u003eItemSearchのパラメータ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSearchIndex: \u003ca href=\"https://docs.aws.amazon.com/AWSECommerceService/latest/DG/LocaleJP.html\"\u003eマーケットプレイス\u003c/a\u003eのSearch Indexの値(例: 本=\u0026lsquo;Books\u0026rsquo;)\u003c/li\u003e\n\u003cli\u003eBrowseNode: ノード番号\n\u003cul\u003e\n\u003cli\u003eAPIで取得するのが正しいようだが、Amazonへリンクした時の\u003ccode\u003enode\u003c/code\u003eの値でもだいたいは対応可能。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"制限\"\u003e制限\u003c/h3\u003e\n\u003cp\u003e最初は1秒間に1回となっているが、\n新規登録者は10秒間に1回となっている。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://docs.aws.amazon.com/AWSECommerceService/latest/DG/TroubleshootingApplications.html\"\u003eTroubleshooting Applications - Product Advertising API\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eNew applicants are limited to 8,640 requests per day,\nonce this limit is reached your account will be limited to one request every ten seconds.\nOnce your application is fully accepted into the Associates Program this restriction will be removed.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e実際はもっと少ないかもしれない。すぐ503になる。。。\u003c/p\u003e\n\u003ch2 id=\"ライブラリ\"\u003eライブラリ\u003c/h2\u003e\n\u003cp\u003eRubyでは\u003ca href=\"https://github.com/jugend/amazon-ecs\"\u003eamazon-ecs\u003c/a\u003eが良い。\nオプションの変数名はライブラリで勝手にbrowse_node -\u0026gt; BrowseNodeのように変換してくれる。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erequire \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;amazon/ecs\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eAmazon\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eEcs\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003econfigure \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003eoptions\u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  options\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e:AWS_access_key_id\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;アクセスキー\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  options\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e:AWS_secret_key\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;シークレットキー\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  options\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e:associate_tag\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;アソシエイトID\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eres \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eAmazon\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eEcs\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eitem_search(word, {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#e6db74\"\u003e:country\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u0026gt;\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;jp\u0026#39;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e# その他オプションを付ける\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e})\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "AWS Lambda",
    "url": "https://www.ikemo3.com/dic/aws-lambda/",
    "contents": "\u003ch2 id=\"aws-lambdaとは\"\u003eAWS Lambdaとは\u003c/h2\u003e\n\u003cp\u003eサーバレスプラットフォームの1つです。\u003c/p\u003e\n\u003ch2 id=\"対応言語\"\u003e対応言語\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNode.js(JavaScript)\u003c/li\u003e\n\u003cli\u003ePython\u003c/li\u003e\n\u003cli\u003eJava(Java 8互換)\u003c/li\u003e\n\u003cli\u003eC#(.NET Core)\u003c/li\u003e\n\u003cli\u003eGo\u003c/li\u003e\n\u003cli\u003eRuby\u003c/li\u003e\n\u003cli\u003eその他(カスタムランタイム)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e2018/11からRubyとカスタムランタイムがサポートされました。\u003c/p\u003e\n"
  }, 
  {
    "title": "grep",
    "url": "https://www.ikemo3.com/manual/grep/",
    "contents": "\u003ch2 id=\"-から始まる文字列を検索する方法\"\u003e\u0026lsquo;-\u0026lsquo;から始まる文字列を検索する方法\u003c/h2\u003e\n\u003cp\u003e以下のように\u003ccode\u003e-e\u003c/code\u003eオプションを使います。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egrep -e -foo sample.txt\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ccode\u003eman grep\u003c/code\u003eの\u003ccode\u003e-e\u003c/code\u003eオプションの説明には以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis option is most useful when multiple -e options are used to\nspecify multiple patterns, or when a pattern begins with a dash(`-\u0026rsquo;).\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"正規表現\"\u003e正規表現\u003c/h2\u003e\n\u003cp\u003eデフォルトでは正規表現に\u003ccode\u003e+\u003c/code\u003eなどが使えません。\nGNU grep、BSD grepともに、\u003ccode\u003e-E\u003c/code\u003eオプションをサポートしていて、\n\u003ccode\u003e-e\u003c/code\u003eオプションの代わりに指定すると使用可能です。\nあるいは\u003ccode\u003eegrep\u003c/code\u003eコマンドでもOKです。\u003c/p\u003e\n\u003cp\u003eGNU grepでは\u003ccode\u003e-P\u003c/code\u003eオプションをサポートしています。\nこれは\u003ca href=\"http://www.pcre.org/\"\u003ePCRE\u003c/a\u003eを使ったPerl 5互換の正規表現をサポートしたものです。\u003c/p\u003e\n\u003ch2 id=\"マッチした文字列のみ表示\"\u003eマッチした文字列のみ表示\u003c/h2\u003e\n\u003cp\u003e以下のように\u003ccode\u003e-o\u003c/code\u003eオプションを使います。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003els -l | grep -oE \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;[a-z]+\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/1546711/can-grep-show-only-words-that-match-search-pattern\"\u003eCan grep show only words that match search pattern? - Stack Overflow\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Pocket",
    "url": "https://www.ikemo3.com/tags/pocket/",
    "contents": ""
  }, 
  {
    "title": "Pocket: アクセストークンの取得",
    "url": "https://www.ikemo3.com/inverted/pocket/create-application/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003ePocketでアクセストークンを取得する方法です。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eドキュメントにはOAuth 2.0となっていますが、OAuth 2.0とはフローが違う気がします。。。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eアプリケーションを登録して、consumer keyを取得\u003c/li\u003e\n\u003cli\u003eリクエストトークンを取得\n\u003cul\u003e\n\u003cli\u003eリクエストトークン = OAuth 2.0における認可コードと同じです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eユーザに認可を求める\u003c/li\u003e\n\u003cli\u003eリクエストトークンをアクセストークンに変換\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"アプリケーションの作成\"\u003eアプリケーションの作成\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://getpocket.com/developer/apps/\"\u003ePocket: Developer API\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCREATE AN APPLICATIONをクリック\u003c/li\u003e\n\u003cli\u003e項目を入力\n\u003cul\u003e\n\u003cli\u003eApplication Name: アプリケーション名\u003c/li\u003e\n\u003cli\u003eApplication Description: アプリケーションの説明\u003c/li\u003e\n\u003cli\u003ePermissions: パーミッション\n\u003cul\u003e\n\u003cli\u003eAdd: 項目の追加\u003c/li\u003e\n\u003cli\u003eModify: 項目の編集\u003c/li\u003e\n\u003cli\u003eRetrieve: アイテムの取得\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePlatforms: プラットフォーム\u003c/li\u003e\n\u003cli\u003eI accept the Term of Serviceにチェック\u003c/li\u003e\n\u003cli\u003e全て入力したらCREATE APPLICATIONのボタンの色が変わるので、クリックする。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eアプリケーションのconsumer keyを保存しておく。\u003c/p\u003e\n\u003ch3 id=\"認証\"\u003e認証\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://getpocket.com/developer/docs/authentication\"\u003ePocket Developer Program: Pocket Authentication API: Documentation\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下のコマンドを実行する。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ecurl -X POST -F \u0026#34;consumer_key=コンシューマキー\u0026#34; -F \u0026#34;redirect_uri=リダイレクトURL\u0026#34; https://getpocket.com/v3/oauth/request | cut -d \u0026#39;=\u0026#39; -f 2\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ccode\u003ecode=xxxxx\u003c/code\u003eという文字列(認可コード)が返ってくる\u003c/p\u003e\n\u003cp\u003e次に、以下のURLにブラウザでアクセスする。\n\u003ccode\u003ehttps://getpocket.com/auth/authorize?request_token=認可コード\u0026amp;redirect_uri=リダイレクトURL\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e認可を求められるので、「認可」ボタンをクリックする。\n完了すると、リダイレクトURLにリダイレクトする。\u003c/p\u003e\n\u003cp\u003e次に、以下のコマンドを打つ。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ecurl -X POST -F \u0026#34;consumer_key=コンシューマキー\u0026#34; -F \u0026#34;code=認可コード\u0026#34; https://getpocket.com/v3/oauth/authorize\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eアクセストークンが取得できる。\u003c/p\u003e\n"
  }, 
  {
    "title": "Slack",
    "url": "https://www.ikemo3.com/manual/slack/",
    "contents": "\u003ch2 id=\"環境設定\"\u003e環境設定\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e詳細設定\n\u003cul\u003e\n\u003cli\u003e送信ボタンを表示する: オフ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cp\u003eEnterのみで送信されない理由は、以下のようです。IMEによる誤送信を避けるためでしょうか。。。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://japan.cnet.com/article/35110559/\"\u003eビジネスチャット「Slack」に待望の日本語版\u0026ndash;国内向けに「送信ボタン」新設 - CNET Japan\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e具体的には、エンターキーでの送信は日本にふさわしくないとして、送信ボタンを新設（エンターのみでの送信も設定可能）。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"ライブラリ\"\u003eライブラリ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRuby: \u003ca href=\"https://github.com/slack-ruby/slack-ruby-client\"\u003eslack-ruby-client\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "vagrant-disksize",
    "url": "https://www.ikemo3.com/log/vagrant-disksize/",
    "contents": "\u003cp\u003e\u003ca href=\"https://github.com/sprotheroe/vagrant-disksize\"\u003evagrant-disksize\u003c/a\u003eの処理を読んでみました。\u003c/p\u003e\n\u003ch2 id=\"処理の流れ\"\u003e処理の流れ\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sprotheroe/vagrant-disksize/blob/master/lib/vagrant/disksize/actions.rb#L111\"\u003eget_vminfo\u003c/a\u003eでVMの情報を取得。\n\u003cul\u003e\n\u003cli\u003e実行するコマンドは \u003ccode\u003eVBoxManage showvminfo --machinereadable VM名\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eこの時点で\u003ccode\u003e\u0026quot;\u003c/code\u003eで囲まれていたらそれも除去\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sprotheroe/vagrant-disksize/blob/master/lib/vagrant/disksize/actions.rb#L94\"\u003eidentify_disks\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-ImageUUID-\u003c/code\u003eを検索して、ディスクイメージのUUIDを取得。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-ImageUUID-\u003c/code\u003eを除去したキーを検索して、ディスクイメージのパスを取得。\u003c/li\u003e\n\u003cli\u003e例えば、以下のようになる。\n\u003cul\u003e\n\u003cli\u003eshowvminfoの結果\n\u003cul\u003e\n\u003cli\u003e\u0026ldquo;IDE-0-0\u0026rdquo;=\u0026quot;/Users/ikemo/VirtualBox VMs/test/test.vdi\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u0026ldquo;IDE-ImageUUID-0-0\u0026rdquo;=\u0026ldquo;33cc92fc-5c53-44d4-bbc7-5fbbaa7b3086\u0026rdquo;\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003euuid: 33cc92fc-5c53-44d4-bbc7-5fbbaa7b3086\u003c/li\u003e\n\u003cli\u003ename: IDE-0-0\u003c/li\u003e\n\u003cli\u003efile: /Users/ikemo/VirtualBox VMs/test/test.vdi\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sprotheroe/vagrant-disksize/blob/master/lib/vagrant/disksize/actions.rb#L84\"\u003eget_disk_size\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eVBoxManage showmediuminfo ファイル名\u003c/code\u003eの\u003ccode\u003eCapacity:\u003c/code\u003eから始まる行を検索。このサイズを取得する。\u003c/li\u003e\n\u003cli\u003e例えば \u003ccode\u003e8192 MBytes\u003c/code\u003eとなるので、8192が返る。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Virtualbox",
    "url": "https://www.ikemo3.com/tags/virtualbox/",
    "contents": ""
  }, 
  {
    "title": "VirtualBoxでIDEからSATAに付け替える方法",
    "url": "https://www.ikemo3.com/inverted/virtualbox/ide-to-sata/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eVirtualBoxでIDEにアタッチされているストレージをSATAに付け替える方法です。\nVagrantのcentos/7 BoxがデフォルトでIDEのようなので、、、\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVirtualBox 5.2.8 on macOSで確認しています。\u003c/li\u003e\n\u003cli\u003e1台のディスクのみアタッチされていることが前提です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e# VM名は書き換えること。\nVM_NAME=vm\n\n# コントローラ名を取得(例: \u0026#34;IDE\u0026#34;)\nCONTROLLER=$(VBoxManage showvminfo --machinereadable ${VM_NAME} | grep storagecontrollername | cut -d \u0026#34;=\u0026#34; -f 2 | tr -d \u0026#39;\u0026#34;\u0026#39;)\n\n# アタッチされたイメージのUUIDを取得\n# IDE-ImageUUID-0-1となるときは、port: 0, device: 1\nUUID=$(VBoxManage showvminfo --machinereadable ${VM_NAME} | grep -e -ImageUUID- | cut -d \u0026#34;=\u0026#34; -f 2 | tr -d \u0026#39;\u0026#34;\u0026#39;)\nPORT=$(VBoxManage showvminfo --machinereadable ${VM_NAME} | grep -e -ImageUUID- | cut -d \u0026#34;=\u0026#34; -f 1 | cut -d \u0026#34;-\u0026#34; -f 3)\nDEVICE=$(VBoxManage showvminfo --machinereadable ${VM_NAME} | grep -e -ImageUUID- | cut -d \u0026#34;=\u0026#34; -f 1 | tr -d \u0026#39;\u0026#34;\u0026#39; | cut -d \u0026#34;-\u0026#34; -f 4)\n\n# アタッチを解除\nVBoxManage storageattach ${VM_NAME} --storagectl IDE --port ${PORT} --device ${DEVICE} --medium none\n\n# IDEコントローラの削除\nVBoxManage storagectl ${VM_NAME} --name IDE --remove\n\n# SATAコントローラの追加\nVBoxManage storagectl ${VM_NAME} --name SATA --add sata --portcount 1 --hostiocache on\n\n# アタッチ\n# SSDとして扱う方法が分からない・・・\nVBoxManage storageattach ${VM_NAME} --storagectl SATA --medium ${UUID} --port 0 --type hdd\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n"
  }, 
  {
    "title": "Ansibleでリブートする方法",
    "url": "https://www.ikemo3.com/inverted/ansible/reboot/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/manual/ansible/\"\u003eAnsible\u003c/a\u003eを使ってリブートする方法です。\u003c/p\u003e\n\u003ch2 id=\"ansible-27でrebootモジュールが追加\"\u003eAnsible 2.7でrebootモジュールが追加\u003c/h2\u003e\n\u003cp\u003eまだプレビューですが、対応しました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ansible.com/ansible/latest/modules/reboot_module.html#reboot-module\"\u003ereboot - Reboot a machine — Ansible Documentation\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e以下の環境で確認しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAnsible 2.5.0\u003c/li\u003e\n\u003cli\u003eCentOS 7 on Vagarant\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e単に以下のようにrebootコマンドを使うと、\nリブートはできますが、\u003cstrong\u003eエラーになります\u003c/strong\u003e。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003ecommand\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e/usr/sbin/reboot\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003ebecome\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003eいろいろな方法がありますが、\n\u003ca href=\"https://github.com/ansible/ansible/issues/14413#issuecomment-369260447\"\u003eReboot and Wait for · Issue #14413 · ansible/ansible\u003c/a\u003eの以下の方法でOKでした。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    - \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ereboot\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003eshell\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;sleep 5 \u0026amp;\u0026amp; reboot\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003easync\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003epoll\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    - \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ewait\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003ewait_for_connection\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003econnect_timeout\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e20\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003esleep\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e5\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003edelay\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e5\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003etimeout\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e60\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003easync, pollは、非同期実行を表します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://docs.ansible.com/ansible/devel/user_guide/playbooks_async.html\"\u003eAsynchronous Actions and Polling — Ansible Documentation\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eタスクを実行したあと完了を待つ必要がない場合に、poll=0を実行します。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eAlternatively, if you do not need to wait on the task to complete,\nyou may run the task asynchronously by specifying a poll value of 0:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003ewait_for_connetionは、2.3から入ったモジュールで、\nリモート接続が利用可能になるまで待ちます。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/modules/wait_for_connection_module.html\"\u003ewait_for_connection - Waits until remote system is reachable/usable — Ansible Documentation\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eパラメータは以下になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003econnection_timeout: (1回の)接続のタイムアウト時間\u003c/li\u003e\n\u003cli\u003edelay: 問い合わせ(ポーリング)開始までの時間\u003c/li\u003e\n\u003cli\u003esleep: チェック間隔\u003c/li\u003e\n\u003cli\u003etimeout: タイムアウト時間\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eすなわち、以下のようになります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e最初の5秒間は何もしない(delay)。\u003c/li\u003e\n\u003cli\u003eそれから接続確認をしに行く。その時のタイムアウトは20秒(connect_timeout)。\u003c/li\u003e\n\u003cli\u003e失敗したら5秒待つ(sleep)。\u003c/li\u003e\n\u003cli\u003e60秒経っても接続できないとエラー(timeout)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003eAnsibleの開発者が、開発の意向を示しています。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ansible/ansible/issues/16186\"\u003eProper reboot module as action plugin · Issue #16186 · ansible/ansible\u003c/a\u003e\u003c/p\u003e\n"
  }, 
  {
    "title": "Csv",
    "url": "https://www.ikemo3.com/tags/csv/",
    "contents": ""
  }, 
  {
    "title": "textql",
    "url": "https://www.ikemo3.com/manual/textql/",
    "contents": "\u003ch2 id=\"使い方\"\u003e使い方\u003c/h2\u003e\n\u003ch3 id=\"ヘッダなしcsv\"\u003eヘッダなしCSV\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# テーブル名=ファイル名\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003etextql -sql \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;select count(*) from sample\u0026#34;\u003c/span\u003e sample.csv\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# fromは省略可能\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003etextql -sql \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;select count(*)\u0026#34;\u003c/span\u003e sample.csv\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 列名はc0, c1, ...\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003etextql -sql \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;select sum(c0)\u0026#34;\u003c/span\u003e sample.csv\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"ヘッダありcsv\"\u003eヘッダありCSV\u003c/h3\u003e\n\u003cp\u003e列名にマルチバイトは使えないようです(SQL的に微妙なので)。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003etextql -sql \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;select 列名\u0026#34;\u003c/span\u003e -header sample.csv\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Apple Pencil",
    "url": "https://www.ikemo3.com/dic/apple-pencil/",
    "contents": "\u003ch2 id=\"apple-pencilとは\"\u003eApple Pencilとは\u003c/h2\u003e\n\u003cp\u003eAppleが発売している、鉛筆のようなデバイスです。\u003c/p\u003e\n\u003ch2 id=\"対応デバイス\"\u003e対応デバイス\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eiPad Pro\u003c/li\u003e\n\u003cli\u003eiPad 第6世代(2018/03発売)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分はiPad 第6世代で使っています。\u003c/p\u003e\n\u003ch2 id=\"ペンの使い勝手\"\u003eペンの使い勝手\u003c/h2\u003e\n\u003cp\u003eやっぱり手書きできるのは素晴らしいです。\niPad Proと違って液晶とのスキマがあるのですが\n(フルラミネーションディスプレイでない)、\n文字を書くなら気にならない範囲です。\u003c/p\u003e\n\u003cp\u003eたまに反応が悪くなることがあるのですが、\nアプリ(Noteshelf 2)の問題かな?\u003c/p\u003e\n\u003ch2 id=\"対応アプリ\"\u003e対応アプリ\u003c/h2\u003e\n\u003cp\u003e個人的には\u003ca href=\"https://itunes.apple.com/jp/app/id1271086060\"\u003eNoteshelf 2\u003c/a\u003eを使っています。\n書き心地が抜群です。\u003c/p\u003e\n\u003ch2 id=\"スタンドは必須\"\u003eスタンドは必須\u003c/h2\u003e\n\u003cp\u003eデフォルトでLightning(メス - メス)アダプタが付いてくるのですが、\nケーブルでつなぐのはちょっと不格好です。\u003c/p\u003e\n\u003cp\u003e自分は以下の製品を買いました。\nなぜか別商品と混ざっているので、レビューに注意してください。\nデスクライト機能はありません。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B075SWSCY8/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B075SWSCY8.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B075SWSCY8/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nOittm Apple Pencil スタンド アルミニウム製 Apple Pencil 専用充電スタンド 充電器 持ち便利 アップル ペンシル 充電ドッグ シルバー\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eこの製品は以下の特長があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e価格は3000円弱。\u003c/li\u003e\n\u003cli\u003e任意のLightningケーブルが使用可能(ダイソーの100円のでもOK)。\u003c/li\u003e\n\u003cli\u003eキャップを刺す場所がある。\u003c/li\u003e\n\u003cli\u003e重量感がある(299g)。自宅用。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e差込口がやや甘くて、カチッとハマらないのがきになりますが、\nそれ以外は良いです。\u003c/p\u003e\n"
  }, 
  {
    "title": "asdf",
    "url": "https://www.ikemo3.com/manual/asdf/",
    "contents": "\u003ch2 id=\"基本的な使い方\"\u003e基本的な使い方\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asdf-vm/asdf#setup\"\u003e初期設定\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eプラグインの追加\n\u003cul\u003e\n\u003cli\u003e例: \u003ccode\u003easdf plugin-add ruby\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eインストール\n\u003cul\u003e\n\u003cli\u003e一覧表示: \u003ccode\u003easdf list-all ruby\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eインストール: \u003ccode\u003easdf install ruby 2.5.0\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eバージョンの管理\n\u003cul\u003e\n\u003cli\u003eグローバル設定: \u003ccode\u003easdf global ruby 2.5.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eローカル設定: \u003ccode\u003easdf local ruby 2.5.0\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"仕組み\"\u003e仕組み\u003c/h2\u003e\n\u003cp\u003e$PATHの先頭に \u003ccode\u003e~/.asdf/shims\u003c/code\u003e と \u003ccode\u003e~/.asdf/bin\u003c/code\u003e が追加されます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e~/.asdf/shims\u003c/code\u003e: インストールしたコマンド(rubyなど)と同名のシェルスクリプト\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~/.asdf/bin\u003c/code\u003e: asdfのコマンド\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Bento(Chef)",
    "url": "https://www.ikemo3.com/manual/chef-bento/",
    "contents": "\u003ch2 id=\"イメージの作り方\"\u003eイメージの作り方\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003epackerをインストール\n\u003cul\u003e\n\u003cli\u003emacOSなら\u003ccode\u003ebrew install packer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eParallelsなら\u003ca href=\"http://parallels.github.io/vagrant-parallels/docs/boxes/packer.html\"\u003eUsing Packer\u003c/a\u003eにあるように、Parallels Virtualization SDKをインストールする。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egit clone https://github.com/chef/bento.git\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBoxのディレクトリに移動\n\u003cul\u003e\n\u003cli\u003eCentOSなら\u003ccode\u003ecd bento/centos\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003epackerを使ってビルド\n\u003cul\u003e\n\u003cli\u003e例: ParallelsをCentOS 7.4で作成する場合\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epacker build -only=parallels-iso centos-7.4-x86_64.json\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Qi",
    "url": "https://www.ikemo3.com/dic/qi/",
    "contents": "\u003ch2 id=\"qiとは\"\u003eQiとは\u003c/h2\u003e\n\u003cp\u003eワイヤレス給電の規格です。\u003c/p\u003e\n\u003ch2 id=\"まだまだこれからの規格\"\u003eまだまだこれからの規格\u003c/h2\u003e\n\u003cp\u003eQiの策定は2010年7月のようですが、\n自分は2011年6月発売の\u003ca href=\"https://panasonic.jp/battery/chargepad/p-db/QE-TM101.html\"\u003eQE-TM101\u003c/a\u003eから使っていて、\n一時期は結構使っていましたが、最近までしばらく使っていませんでした。\u003c/p\u003e\n\u003cp\u003eその理由はいくつかあります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eカバーがあると給電できないことがある。\u003c/li\u003e\n\u003cli\u003e1コイルだとケーブルの数が変わらない\u003c/li\u003e\n\u003cli\u003e給電が遅い\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eあとちゃんと置かないと充電されないのもあるようですが、\n自分の使っているQE-TM101はコイルが動くタイプなので、そこは問題ないです。\u003c/p\u003e\n"
  }, 
  {
    "title": "自分を使って何をしたいか",
    "url": "https://www.ikemo3.com/dic/what-shall-i-do-with-myself/",
    "contents": "\u003ch2 id=\"自分を使って何をしたいかとは\"\u003e自分を使って何をしたいかとは\u003c/h2\u003e\n\u003cp\u003eドラッカーの言葉です。\n断絶の時代p253「第11章 組織社会に生きる」に載っています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e実存に関わる問題\u003c/p\u003e\n\u003cp\u003e一見したところでは問題は職業と生計の資に関わることだけのように見える。\n何をしたらよいかだけの問題に思われる。しかし実際には、\n人は社会とその組織に対し責任をもつとの了解がそこにはある。\nすなわちいかなる役に立つかである。\nさらにそこには人は自らについて責任をもつとの了解がある。\u003c/p\u003e\n\u003cp\u003eしたがって、無数の選択肢を前にした若者が答えるべき問題は、\n正確には、何をしたらよいかではなく、自分を使って何をしたいかである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e最後の段落は英語では以下になります。\n(「英和対訳 ドラッカー名言集」No.96より)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u0026ldquo;What shall I do with myself?\u0026rdquo; rather than\n\u0026ldquo;What shall I do?\u0026rdquo; is really being asked of the\nyoung by the multitude of choices around them.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"自分は何で社会の役に立ちたいのか\"\u003e自分は何で社会の役に立ちたいのか\u003c/h2\u003e\n\u003cp\u003eこのドラッカーの表現は正直難しいです。\nどちらかと言えば、「キャリアノートで会社を辞めても一生困らない人になる」の\np540「1-2 ライフキャリアを構築しキャリアリッチになる」\n以下の表現の方が分かりやすいと思います。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e私は、人には生まれた以上、社会に対して果たすべき役割や義務があると考えている。\nそれは、単に税金を払っているというレベルではなくて、\n自らの感受性や気づきによって社会をより良くする役割や義務を、\nそれぞれ一人ひとりが持っているということだ。\u003c/p\u003e\n\u003cp\u003eそして、ライフキャリアの構築を考える上で、大切なことは\n「自分は何で社会の役に立ちたいのか」という視点である。\n私は、この社会に生きている以上、\n人には「自分は何らかの形で社会に貢献している」という実感が大切だと考えている。\n生涯にわたって社会と向き合い、社会と何かを分かち合って、\n社会に対する自己存在を確認することが大切であると考えている。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e社会に対する自己存在というのは、社会における実存と同義です。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAKIQ.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集7 断絶の時代\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478014892/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478014892.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478014892/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n［英和対訳］決定版 ドラッカー名言集\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4492556729/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4492556729.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4492556729/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nキャリアノートで会社を辞めても一生困らない人になる\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n"
  }, 
  {
    "title": "Vagrant + CentOS 7でディスクをリサイズする方法",
    "url": "https://www.ikemo3.com/inverted/vagrant/extend-partion-on-centos7/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e以下の組み合わせで、ディスクおよびパーティションのリサイズをする方法です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVagrant\u003c/li\u003e\n\u003cli\u003eVirtualBox or libvirt\u003c/li\u003e\n\u003cli\u003eCentOS 7(XFS)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e以下のバージョンで確認しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVagrant 2.0.2\u003c/li\u003e\n\u003cli\u003eVirtualBox 5.2.8(macOS)\u003c/li\u003e\n\u003cli\u003eVagrant Box: centos/7 (virtualbox, 1802.01)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e仮想ディスクのサイズを増加\n\u003cul\u003e\n\u003cli\u003eVirtualBox: \u003ca href=\"https://github.com/sprotheroe/vagrant-disksize\"\u003evagrant-disksize\u003c/a\u003eを使用\u003c/li\u003e\n\u003cli\u003elibvirt: \u003ca href=\"https://github.com/vagrant-libvirt/vagrant-libvirt#domain-specific-options\"\u003eDomain Specific Options\u003c/a\u003eの\u003ccode\u003emachine_virtual_size\u003c/code\u003eで対応可能\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e非インタラクティブにfdiskを使って、パーティションの作成\n\u003cul\u003e\n\u003cli\u003e既存のパーティションの拡張ではなく、新規パーティション作成なのは、partprobeでエラーが出るため(後述)\u003c/li\u003e\n\u003cli\u003eRed Hatがfdiskを使う手順を案内している。partedではできない模様。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://access.redhat.com/articles/1190213\"\u003eHow to Resize a Partition using fdisk - Red Hat Customer Portal\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e通常はインタラクティブに使うfdiskだが、標準入力に渡すことで、非インタラクティブに使用する。\n\u003cul\u003e\n\u003cli\u003e参考: \u003ca href=\"https://superuser.com/questions/332252/how-to-create-and-format-a-partition-using-a-bash-script\"\u003epartitioning - How to create and format a partition using a bash script? - Super User\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eただし、fdiskが終了コード1を返すため、\u003ccode\u003e|| true\u003c/code\u003eで強制的に0にしている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003epartprobeコマンドを使って、パーティションの変更を認識\n\u003cul\u003e\n\u003cli\u003erebootする手順が多いが、partprobeで問題なく反映できた。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePVを作成する。\u003c/li\u003e\n\u003cli\u003e作成したPVをVGに追加する。\u003c/li\u003e\n\u003cli\u003eLVを拡張する。\u003c/li\u003e\n\u003cli\u003eファイルシステムを拡張する。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"fdiskで既存のパーティションを変更するとpartprobeが使えない\"\u003efdiskで既存のパーティションを変更すると、partprobeが使えない\u003c/h3\u003e\n\u003cp\u003e以下のようなエラーが出る。リブートすれば可能だが、なるだけrebootしたくないため却下した。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eError: Partition(s) 3 on /dev/sda have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a result, the old partition(s) will remain in use.  You should reboot now before making further changes.\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"手順180901以前\"\u003e手順(1809.01以前)\u003c/h2\u003e\n\u003cp\u003e起動時に以下のスクリプトを流してください。\nデバイス名は環境によって異なる可能性があります。KVM(libivrt)では/dev/vdaでした。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e## resize disk\nsed -e \u0026#39;s/\\s*\\([\\+0-9a-zA-Z]*\\).*/\\1/\u0026#39; \u0026lt;\u0026lt; EOF | fdisk /dev/sda || true\nn  # add a new partition\np  # primary\n   # default\n   # default\nt  # change a partition\u0026#39;s system id\n4  # new partition\n8e # Linux LVM\nw  # write table to disk and exit\nEOF\n\npartprobe\n\n## resize partition(CentOS 7, XFS)\npvcreate /dev/sda4\n\nvgextend VolGroup00 /dev/sda4\nlvextend -l +100%FREE /dev/VolGroup00/LogVol00\nxfs_growfs /\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"手順180901以降\"\u003e手順(1809.01以降)\u003c/h2\u003e\n\u003cp\u003e1809.01から、パーティション構成が変わっています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://blog.centos.org/2018/10/updated-centos-vagrant-images-available-v1809-01/\"\u003eUpdated CentOS Vagrant Images Available (v1809.01) – Blog.CentOS.org\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e具体的に変わったのは以下の点です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eパーティションが1つになった\u003c/li\u003e\n\u003cli\u003eファイルシステムがext4になった\u003c/li\u003e\n\u003cli\u003eスワップファイルが2GB作成された\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eよって、以下のようにする必要があります。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eyum install -y e2fsprogs\n\n## resize disk\nsed -e \u0026#39;s/\\s*\\([\\+0-9a-zA-Z]*\\).*/\\1/\u0026#39; \u0026lt;\u0026lt; EOF | fdisk /dev/vda || true\nd  # delete partition\nn  # add a new partition\np  # primary\n1  # Partition number: 1\n   # First sector(default)\n   # Last sector(default)\nw  # write table to disk and exit\nEOF\n\npartprobe\n\n## resize partition(CentOS 7, ext4)\nresize2fs /dev/vda1\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sprotheroe/vagrant-disksize\"\u003evagrant-disksize\u003c/a\u003eはVirtualBoxのみサポートされています。\u003c/li\u003e\n\u003cli\u003eプライマリパーティションを使用しているため、これ以上拡張できません。\n\u003cul\u003e\n\u003cli\u003e既存のパーティションの拡張は可能ですが、再起動が必要です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Docker: コンテナからSSHログインしたときにLANGを引き継がないようにする",
    "url": "https://www.ikemo3.com/inverted/docker/fix-lang-when-ssh-login/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eDockerコンテナの中から、ssh接続をすると、\n接続元(Dockerコンテナ)のLANGが接続先に引き継がれてしまいます。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003epython:2.7-stretch\u003c/code\u003e で確認しています。\u003c/p\u003e\n\u003ch2 id=\"原因\"\u003e原因\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e/etc/ssh/ssh_config\u003c/code\u003e (sshd_configではない)に、\n\u003ccode\u003eSendEnv LANG LC_*\u003c/code\u003eと書かれているからです。\u003c/p\u003e\n\u003ch2 id=\"修正方法\"\u003e修正方法\u003c/h2\u003e\n\u003cp\u003eいろいろありますが、自分はDockerfileに\n\u003ccode\u003ecp /dev/null /etc/ssh/ssh_config\u003c/code\u003eを入れて対処しました。\u003c/p\u003e\n"
  }, 
  {
    "title": "Ssh",
    "url": "https://www.ikemo3.com/tags/ssh/",
    "contents": ""
  }, 
  {
    "title": "Netlify",
    "url": "https://www.ikemo3.com/dic/netlify/",
    "contents": "\u003ch2 id=\"netlifyとは\"\u003eNetlifyとは\u003c/h2\u003e\n\u003cp\u003e静的Webサイトをホスティングするサービスです。\u003c/p\u003e\n\u003ch2 id=\"主な機能\"\u003e主な機能\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e静的サイトのホスティングに特化\u003c/li\u003e\n\u003cli\u003eGitリポジトリにpushすると自動ビルド\u003c/li\u003e\n\u003cli\u003e無料でHTTPS対応\n\u003cul\u003e\n\u003cli\u003e証明書は違うようですが、Let\u0026rsquo;s Encryptを使用しているようです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"無料版の制限\"\u003e無料版の制限\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.netlify.com/tos/\"\u003eTerms of Service Agreement\u003c/a\u003eによれば以下のようになっています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNetwork Bandwidth: 100GB/month - Soft\u003c/li\u003e\n\u003cli\u003eStorage: 100GB - Soft\u003c/li\u003e\n\u003cli\u003eAPI requests: 500 requests/minute, 3 deploys/minute* - Hard\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eそれ以上は有料となっていますが、\nたくさんアクセスされるくらい有名なら、お金を払えると思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "NoSQL",
    "url": "https://www.ikemo3.com/dic/nosql/",
    "contents": "\u003ch2 id=\"nosqlとは\"\u003eNoSQLとは\u003c/h2\u003e\n\u003cp\u003eリレーショナル・データベース(RDBMS)でないものを指す名称です。\u003c/p\u003e\n\u003ch2 id=\"名称がダサい\"\u003e名称がダサい\u003c/h2\u003e\n\u003cp\u003e自分が最初この単語を聞いたとき、ダサい名前だなと思いました。\n何かを否定するだけのネガティブな響きは嫌いなので。\u003c/p\u003e\n\u003cp\u003eもっとも、ダサいのはそれを発案した人ではなく、それを採用した人だと思います。\n以下の記事にありますが、Eric Evans氏(DDDの人とは違うみたいです)は\n「45秒くらいで何も考えずに3つか4つの名前を思いついて言ったんだ。」と言ったので、\n他の候補を選べばよかったんですよね。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.publickey1.jp/blog/09/nosqlnot_only_sql.html\"\u003e「NoSQL」は「Not Only SQL」である、と定着するか？ － Publickey\u003c/a\u003e\u003c/p\u003e\n"
  }, 
  {
    "title": "Bluetooth",
    "url": "https://www.ikemo3.com/dic/bluetooth/",
    "contents": "\u003ch2 id=\"bluetoothとは\"\u003eBluetoothとは\u003c/h2\u003e\n\u003cp\u003e機器間の通信用の規格です。\u003c/p\u003e\n\u003ch2 id=\"プロファイル\"\u003eプロファイル\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.kddi.com/yogo/%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB/HSP.html\"\u003eHSP\u003c/a\u003e: 音声入出力\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.kddi.com/yogo/%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB/HFP.html\"\u003eHFP\u003c/a\u003e: 通話、HSPの上位規格\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.kddi.com/yogo/%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB/A2DP.html\"\u003eA2DP\u003c/a\u003e: 音楽\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.kddi.com/yogo/%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB/AVRCP.html\"\u003eAVRCP\u003c/a\u003e: リモコン\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"コーデック\"\u003eコーデック\u003c/h2\u003e\n\u003cp\u003e以下の記事も参考。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://kakakumag.com/av-kaden/?id=10341\"\u003eBLE？ ワイヤレスオーディオ？ 今さら聞けない「Bluetooth」最新事情を解説！ - 価格.comマガジン\u003c/a\u003e\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eコーデック\u003c/th\u003e\n          \u003cth\u003eレイテンシ\u003c/th\u003e\n          \u003cth\u003e音質\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSBC\u003c/td\u003e\n          \u003ctd\u003eaptX以上\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAAC\u003c/td\u003e\n          \u003ctd\u003eaptX以上\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://www.aptx.com/aptx\"\u003eaptX\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e130ms未満\u003c/td\u003e\n          \u003ctd\u003e48kHz / 16bit LPCM\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://www.aptx.com/aptx-hd\"\u003eaptX HD\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e記載なし\u003c/td\u003e\n          \u003ctd\u003e48kHz / 24bit LPCM\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://www.aptx.com/aptx-low-latency\"\u003eaptX Low Latency\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e40ms未満\u003c/td\u003e\n          \u003ctd\u003e48kHz / 16bit LPCM\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"その他用語\"\u003eその他用語\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://qa.elecom.co.jp/faq_detail.html?id=5691\"\u003e【Bluetoothイヤホン】ペアリング、マルチペアリング、マルチポイント、\u0026hellip;\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eマルチペアリング: 複数台のペアリングを登録できる機能\u003c/li\u003e\n\u003cli\u003eマルチポイント: 同じプロファイルで同時に2台以上に接続できる機能\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA2DPのマルチポイント対応のものもありますが、\u003c/p\u003e\n"
  }, 
  {
    "title": "macOS",
    "url": "https://www.ikemo3.com/manual/macos/",
    "contents": "\u003ch2 id=\"マルチディスプレイ環境でのdockの移動\"\u003eマルチディスプレイ環境でのDockの移動\u003c/h2\u003e\n\u003cp\u003eマウスを画面最下部にグッと押し込むと、そのディスプレイにDockが移動する。\n実際は間違って操作するケースがほとんどだけど・・・\u003c/p\u003e\n\u003ch2 id=\"ダイアログで隠しファイルを表示する方法\"\u003eダイアログで隠しファイルを表示する方法\u003c/h2\u003e\n\u003cp\u003eCommand + Shift + .(ピリオド)\u003c/p\u003e\n\u003ch2 id=\"ファイルのロック\"\u003eファイルのロック\u003c/h2\u003e\n\u003cp\u003eFinderからファイルのロックができるが、これはCLIでは \u003ccode\u003echflags\u003c/code\u003e に対応する。\u003c/p\u003e\n\u003ch2 id=\"アプリ\"\u003eアプリ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOSSのMacアプリ: \u003ca href=\"https://github.com/serhii-londar/open-source-mac-os-apps\"\u003eserhii-londar/open-source-mac-os-apps: List of open source applications for macOS.\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.sara-mac.com/home/download.htm#MBBInf\"\u003eMBBInf\u003c/a\u003e: Magic Mouse 2などのバッテリーをメニューに表示するもの。\n\u003cul\u003e\n\u003cli\u003eデフォルトでも電池が切れそうになったら通知してくれるのですが、Magic Mouse 2は充電式なのでバッテリーが減ってきたら早めに知りたいんですよね。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"macos固有のcli\"\u003emacOS固有のCLI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eペーストボード\n\u003cul\u003e\n\u003cli\u003epbcopy: ペーストボードにコピー\u003c/li\u003e\n\u003cli\u003epbpaste: ペーストボードからペースト\u003c/li\u003e\n\u003cli\u003eこれらのコマンドは\u003ca href=\"/dic/nextstep/\"\u003eNEXTSTEP\u003c/a\u003e由来です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"スクリーンショット\"\u003eスクリーンショット\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://support.apple.com/ja-jp/HT201361\"\u003eMac でスクリーンショットを撮る方法 - Apple サポート\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e画面全体: Shift + Command + 3\u003c/li\u003e\n\u003cli\u003e選択部分: Shift + Command + 4\n\u003cul\u003e\n\u003cli\u003eスペースバーを押すとウィンドウ選択モードになる\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://builder.japan.zdnet.com/os-admin/sp_snow-leopard-09/35001510/\"\u003e知って便利な「pbcopy」と「pbpaste」 - builder by ZDNet Japan\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Mariadb",
    "url": "https://www.ikemo3.com/tags/mariadb/",
    "contents": ""
  }, 
  {
    "title": "MariaDBのレプリケーション",
    "url": "https://www.ikemo3.com/inverted/mariadb/replication/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eMariaDBでレプリケーションを使用する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eCentOS 7付属のMariaDB 5.5.56を使用します。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eGTIDは使えません。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eバイナリログの出力\u003c/li\u003e\n\u003cli\u003eレプリケーション用ユーザの作成\u003c/li\u003e\n\u003cli\u003eバックアップを作成\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"設定ファイルの記載場所\"\u003e設定ファイルの記載場所\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://mariadb.com/kb/en/library/configuring-mariadb-with-mycnf/\"\u003eConfiguring MariaDB with my.cnf - MariaDB Knowledge Base\u003c/a\u003eによれば、グループ\u003ccode\u003emysqld\u003c/code\u003eおよび\u003ccode\u003emariadb\u003c/code\u003eのどちらでも構わないようです。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emysqld\t Read by the mysqld server, both by MariaDB and MySQL\nmariadb\tRead by the MariaDB mysqld server\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eまた、サーバの値は通常アンダースコア(\u003ccode\u003e_\u003c/code\u003e)で区切られ、\nコマンドラインではハイフン(\u003ccode\u003e-\u003c/code\u003e)で区切られますが、\nアンダースコアの代わりにハイフンを使っても同等です。\u003c/p\u003e\n\u003ch3 id=\"1-バイナリログの出力\"\u003e1. バイナリログの出力\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://mariadb.com/kb/en/library/setting-up-replication/\"\u003eSetting Up Replication - MariaDB Knowledge Base\u003c/a\u003eによれば、以下の3つが必要です(全てアンダースコアにしてます)。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003elog_bin\nserver_id = 1\nlog_basename = mariadb-bin\n\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003elog_bin: バイナリログの出力を明記\u003c/li\u003e\n\u003cli\u003eserver_id: サーバのID、マスタとスレーブの間で一意な数字をつけること。\u003c/li\u003e\n\u003cli\u003elog_basename: バイナリログのファイル名。\n\u003cul\u003e\n\u003cli\u003eMariaDB 5.5ではこれがないとエラーになった。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emariadb-bin\u003c/code\u003eというのはデフォルトのバイナリログのファイル名。ホスト名に依存しない名称が望ましい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eまた、以下の設定を付けると良いです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eexpire_logs_days: ログの保存期間(日)\u003c/li\u003e\n\u003cli\u003eread_only: 読み込みのみにする(スレーブ)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"2-レプリケーション用ユーザの作成\"\u003e2. レプリケーション用ユーザの作成\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eCREATE USER \u0026#39;repl\u0026#39;@\u0026#39;スレーブのFQDN\u0026#39; IDENTIFIED BY \u0026#39;パスワード\u0026#39;;\nGRANT REPLICATION SLAVE ON *.* TO \u0026#39;repl\u0026#39;@\u0026#39;スレーブのFQDN\u0026#39;;\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"3-バックアップを作成\"\u003e3. バックアップを作成\u003c/h3\u003e\n\u003cp\u003emysqldumpコマンドを使ってダンプします。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e必須\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--single-transaction\u003c/code\u003e: 整合性のあるバックアップを作成\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--master-data\u003c/code\u003e:\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--routines\u003c/code\u003e: プロシージャやファンクションもダンプ\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n"
  }, 
  {
    "title": "iPad",
    "url": "https://www.ikemo3.com/log/ipad/",
    "contents": "\u003ch2 id=\"購入履歴\"\u003e購入履歴\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eiPad 第1世代\n\u003cul\u003e\n\u003cli\u003e引退後は実家にあげた(まだ使ってるかどうかは不明)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eiPad 第2世代\n\u003cul\u003e\n\u003cli\u003e引退後は実家にあげた(まだ使ってるかどうかは不明)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eiPad 第3世代\n\u003cul\u003e\n\u003cli\u003eiOSのサポートが終了したので、ほぼカメラ専用機になっている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eiPad 第6世代\n\u003cul\u003e\n\u003cli\u003eiPad Proは躊躇する値段 \u0026amp; Apple Pencil使いたいので買った。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"メモアプリ\"\u003eメモアプリ\u003c/h2\u003e\n\u003cp\u003e現在試行錯誤中。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNoteshelf 2\n\u003cul\u003e\n\u003cli\u003e紙のメタファで、ノートの縦のサイズが決まっているのが✕。なので自分にはイマイチだと判断。\n\u003cul\u003e\n\u003cli\u003eと判断したけど、そこまで気にしないほうがいいか?\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e筆跡は好きな方。\u003c/li\u003e\n\u003cli\u003e筆跡が好きなので、これを一番に使ってる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cp\u003e以下は試してみたいもの。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eZoomNotes\n\u003cul\u003e\n\u003cli\u003e「無制限に書ける」アプリ探していたら見つけた。UIが複雑なのが気になるけど書き味は悪くない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMapNote\n\u003cul\u003e\n\u003cli\u003e上と同じく「無制限に書ける」。ただ、手で書いても反映されちゃう。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eここにもっと紹介されてそうです。\u003ca href=\"https://www.reddit.com/r/ipad/comments/6pdx8q/looking_for_app_limitless_notepad/\"\u003eLooking for app: limitless notepad : ipad\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cp\u003e以下は今使ってないものです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e純正メモ\n\u003cul\u003e\n\u003cli\u003eロック画面からそのまま使える。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eNotablity\n\u003cul\u003e\n\u003cli\u003eNeboと逆で、手書きに特化するなら良さそう。\u003c/li\u003e\n\u003cli\u003e鉛筆のタイプ\n\u003cul\u003e\n\u003cli\u003e筆圧なし、細い方から4番目あたりが好き。\u003c/li\u003e\n\u003cli\u003e筆圧ありはNoteshelft 2に比べて好きじゃないが、細い方から2番目あたりが良い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eNebo\n\u003cul\u003e\n\u003cli\u003e良い点\n\u003cul\u003e\n\u003cli\u003e手書き認識の精度が高い。\u003c/li\u003e\n\u003cli\u003eダイアグラムも認識率が高い。\u003c/li\u003e\n\u003cli\u003eレイアウトが縦方向に無限なのが良い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eイマイチな点\n\u003cul\u003e\n\u003cli\u003e文字に矢印を使ってつなぐといったことができない\n\u003cul\u003e\n\u003cli\u003eこれは致命的とも言える制限なので辛い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eペン以外の入力ができない\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e入力したそのものではなく、再利用したい時は◎。\u003c/li\u003e\n\u003cli\u003eでも需要と合ってなさそうなので止めた。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMicrosoft OneNote\n\u003cul\u003e\n\u003cli\u003eテキストをオブジェクトとして扱える\u003c/li\u003e\n\u003cli\u003eちょっと操作性に違和感あり。そのため一旦却下。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMetaMoJi Note\n\u003cul\u003e\n\u003cli\u003e操作性が他のアプリと違いすぎてやりづらい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eNote Always\u003c/li\u003e\n\u003cli\u003eOmniGraffle\n\u003cul\u003e\n\u003cli\u003eメモアプリではないけど。\u003c/li\u003e\n\u003cli\u003e図形認識があるが、複雑な図形は対応していない模様。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://support.omnigroup.com/use-shape-recognition-to-draw-basic-shapes/\"\u003ehttps://support.omnigroup.com/use-shape-recognition-to-draw-basic-shapes/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "GitHub",
    "url": "https://www.ikemo3.com/manual/github/",
    "contents": "\u003ch2 id=\"検索\"\u003e検索\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eファイル名: \u003ccode\u003efilename:xxx\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"リリース\"\u003eリリース\u003c/h2\u003e\n\u003cp\u003eGitHubのリリースには2種類あります。\nプレリリースは本番環境として利用することを想定していない時に使います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erelease: 通常のリリース\u003c/li\u003e\n\u003cli\u003epre-release: プレリリース\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eまた、ドラフトかどうかを選べるが、ドラフトは単に作成中のため非公開にするもの。\u003c/p\u003e\n\u003cp\u003eなので、 \u003ccode\u003e-snapshot\u003c/code\u003e リリースを表すには、 \u003ccode\u003epre-release\u003c/code\u003e を使うのでいいかと。\u003c/p\u003e\n\u003ch2 id=\"ブランチの保護\"\u003eブランチの保護\u003c/h2\u003e\n\u003cp\u003eまずはmasterブランチをforce push不可能にします。\n各リポジトリに設定する必要があります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eリポジトリのSettings → Branchesを選択\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAdd rule\u003c/code\u003e を押す\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBranch name pattern\u003c/code\u003e に \u003ccode\u003emaster\u003c/code\u003e を入力\u003c/li\u003e\n\u003cli\u003eデフォルトで \u003ccode\u003eProtect matching branches\u003c/code\u003e が設定されている(変更不可)のため、そのまま \u003ccode\u003eCreate\u003c/code\u003e を押す。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"issueなどの記法\"\u003eIssueなどの記法\u003c/h2\u003e\n\u003cp\u003eいろいろありますが、\u003ccode\u003e\u0026lt;details\u0026gt;\u0026lt;summary\u0026gt;...\u0026lt;/summary\u0026gt;...\u0026lt;/details\u0026gt;\u003c/code\u003eが便利そう。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/umi/items/31f71330bedc54c05940\"\u003eGithub を使う時に知っておくと便利な機能いろいろ - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"pull-requestの手順\"\u003ePull Requestの手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e対象リポジトリをforkする。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egit clone\u003c/code\u003eでforkしたリポジトリをクローン\u003c/li\u003e\n\u003cli\u003eローカルでブランチを作成。\u003ccode\u003egit checkout -b ブランチ名\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e修正をコミット\u003c/li\u003e\n\u003cli\u003e自分のリポジトリにpush。\u003ccode\u003egit push -u origin ブランチ名\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGitHubでPull Requestを作成する。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"プログラムでのreleaseへのアップロード\"\u003eプログラムでのreleaseへのアップロード\u003c/h2\u003e\n\u003cp\u003e以下のプログラム(Go製)を使う。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tcnksm/ghr\"\u003etcnksm/ghr: Upload multiple artifacts to GitHub Release in parallel\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"circleciの場合\"\u003eCircleCIの場合\u003c/h3\u003e\n\u003cp\u003eCircleCIの場合は以下のようにする。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://circleci.com/blog/publishing-to-github-releases-via-circleci/\"\u003eAutomate GitHub Releases with CircleCI - CircleCI\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下の2つの環境変数を設定する必要あり。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGITHUB_TOKEN: アクセストークン\n\u003cul\u003e\n\u003cli\u003eプライベートリポジトリ: スコープには \u003ccode\u003erepo\u003c/code\u003e が必要\u003c/li\u003e\n\u003cli\u003eパブリックリポジトリ: スコープには \u003ccode\u003epublic_repo\u003c/code\u003e が必要(?)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eVERSION: バージョン\n\u003cul\u003e\n\u003cli\u003e例には \u003ccode\u003e$(my-binary --version)\u003c/code\u003e と書いているように、ソースコードかバイナリから取得する(できるようにする)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"api\"\u003eAPI\u003c/h2\u003e\n\u003cp\u003ev3がREST API、v4がGraphQL APIになってます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ev3: \u003ca href=\"https://developer.github.com/v3/\"\u003eGitHub API v3 | GitHub Developer Guide\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ev4: \u003ca href=\"https://developer.github.com/v4/\"\u003eGitHub GraphQL API v4 | GitHub Developer Guide\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "プロフィール",
    "url": "https://www.ikemo3.com/profile/",
    "contents": "\u003ch2 id=\"基本的なこと\"\u003e基本的なこと\u003c/h2\u003e\n\u003cp\u003e名前は Hideki Ikemoto と言います。\u003c/p\u003e\n\u003cp\u003e性別は男性、1976年生まれ。\u003c/p\u003e\n\u003cp\u003e愛媛県\u003ca href=\"/dic/ozu/\"\u003e大洲市\u003c/a\u003e出身、愛媛県\u003ca href=\"/dic/matsuyama/\"\u003e松山市\u003c/a\u003e在住の既婚者です。\u003c/p\u003e\n\u003ch2 id=\"仕事\"\u003e仕事\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.membersedge.co.jp/\"\u003e株式会社メンバーズ メンバーズエッジカンパニー(社内カンパニー)\u003c/a\u003eでWebエンジニアをやっています。\u003c/p\u003e\n\u003ch2 id=\"技術\"\u003e技術\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://portfolio.ikemo3.com/skill/\"\u003eポートフォリオ\u003c/a\u003e にまとめています。\u003c/p\u003e\n\u003ch2 id=\"語学\"\u003e語学\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/english/\"\u003e英語\u003c/a\u003eは読むのは特に問題ないレベルです。\n書くのはある程度できますが、時間がかかるので、得意ではありません。\u003c/p\u003e\n\u003ch2 id=\"コミュニケーション\"\u003eコミュニケーション\u003c/h2\u003e\n\u003cp\u003e話すのはほとんどダメです(コミュニケーション自体が苦手)。。。と思ってたんですが、環境が変わったら割と話せるようになりました。\n基本的には\u003cstrong\u003eボケ\u003c/strong\u003eタイプです。\u003c/p\u003e\n\u003ch2 id=\"その他\"\u003eその他\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/oss/\"\u003eOSS\u003c/a\u003eに関わった時期が長いため、ライセンスや、\nコミュニティの雰囲気といったものは、\nある程度皮膚感覚で分かります。\u003c/p\u003e\n\u003ch2 id=\"好きなもの\"\u003e好きなもの\u003c/h2\u003e\n\u003cp\u003e特に好きなのが\u003ca href=\"/tags/game/\"\u003eゲーム\u003c/a\u003e、読書です。\n最近「仕事術」が好きだと気付きました。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eの影響がかなり強いです。\u003c/p\u003e\n\u003cp\u003eあと\u003ca href=\"/dic/next/\"\u003eNeXT\u003c/a\u003eが大好きで、現在は\u003ca href=\"/dic/mac/\"\u003eMac\u003c/a\u003eを使っています。\u003c/p\u003e\n\u003ch2 id=\"性格\"\u003e性格\u003c/h2\u003e\n\u003cp\u003e厳しい時もありますが、普段は温厚な方です。\u003c/p\u003e\n\u003ch3 id=\"ストレングスファインダー\"\u003eストレングスファインダー\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"/dic/strengthsfinder/\"\u003eストレングスファインダー\u003c/a\u003eによれば、自分の上位5つの資質は以下になります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e慎重さ\u003c/li\u003e\n\u003cli\u003e最上志向\u003c/li\u003e\n\u003cli\u003e内省\u003c/li\u003e\n\u003cli\u003e個別化\u003c/li\u003e\n\u003cli\u003e達成欲\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "汎用",
    "url": "https://www.ikemo3.com/dic/general-purpose/",
    "contents": "\u003ch2 id=\"汎用とは\"\u003e汎用とは\u003c/h2\u003e\n\u003cp\u003eアンチパターンの1つです。\n一般的には「スイスアーミーナイフアンチパターン」として知られていますが、\n自分の中では一番危険な単語がこれです。\n「汎用〜〜」という単語が仕事で出ることがあるので。\u003c/p\u003e\n\u003cp\u003e例えば、以下のものがアンチパターン、またはそれに近いものです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRDBMSにおける「EAV(エンティティ・アトリビュート・バリュー)」\u003c/li\u003e\n\u003cli\u003eオブジェクト指向における「継承」\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e逆に汎用と付いていても、「汎用SSD」とか「汎用プログラミング言語」は除外です。\n後者は単に「チューリング完全」の言い換えに過ぎないので。\u003c/p\u003e\n\u003ch2 id=\"アンチパターンである理由\"\u003eアンチパターンである理由\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/yagni/\"\u003eYAGNI\u003c/a\u003eの対義語だからです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Amazon DynamoDB",
    "url": "https://www.ikemo3.com/manual/dynamodb/",
    "contents": "\u003ch2 id=\"dynamodb-ローカル\"\u003eDynamoDB ローカル\u003c/h2\u003e\n\u003cp\u003e開発にはDynamoDB ローカルを使ってテスト可能。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.html\"\u003eDynamoDB ローカル (ダウンロード可能バージョン) のセットアップ - Amazon DynamoDB\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"型\"\u003e型\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eS: 文字列\u003c/li\u003e\n\u003cli\u003eN: 数値\u003c/li\u003e\n\u003cli\u003eなど\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e詳細は\u003ca href=\"https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Programming.LowLevelAPI.html#Programming.LowLevelAPI.DataTypeDescriptors\"\u003eデータ型記述子\u003c/a\u003eに記載がある。\u003c/p\u003e\n\u003ch2 id=\"パーティションキー\"\u003eパーティションキー\u003c/h2\u003e\n\u003cp\u003eプライマリキーと同じようなもの。\nただし、パーティションを分割するために使われるため、\n複合プライマリキーを使うときは、ばらつきについて考慮したほうがいいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://aws.typepad.com/sajp/2017/02/choosing-the-right-dynamodb-partition-key.html\"\u003eAWS Solutions Architect ブログ: 【AWS Database Blog】DynamoDB におけるパーティションキー設計の手引き\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/GuidelinesForTables.html\"\u003eテーブルのベストプラクティス - Amazon DynamoDB\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"rubyでの呼び出し方法\"\u003eRubyでの呼び出し方法\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/DynamoDB.html\"\u003eModule: Aws::DynamoDB — AWS SDK for Ruby V3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eNumber型は\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/BigDecimal.html\"\u003eBigDecimal\u003c/a\u003e型に変換されるようです。\u003c/p\u003e\n\u003ch3 id=\"値の格納\"\u003e値の格納\u003c/h3\u003e\n\u003cp\u003e以下のようにします。HashはMapとして格納されます。\n取り出し時は文字列でアクセスします(シンボルにできないのかな?)。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erequire \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;aws-sdk\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eclient \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eAws\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eDynamoDB\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eClient\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003enew\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eitem \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e {\u003cspan style=\"color:#e6db74\"\u003eId\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;1\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003eContents\u003c/span\u003e: {\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;key1\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u0026gt;\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;value1\u0026#39;\u003c/span\u003e}}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eclient\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eput_item(\u003cspan style=\"color:#e6db74\"\u003etable_name\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;test\u0026#39;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003eitem\u003c/span\u003e: item)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# クエリなどで取り出した時はこんな感じで参照\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eputs response\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eitems\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e][\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Contents\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e][\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;key1\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"スキャン\"\u003eスキャン\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/DynamoDB/Client.html#scan-instance_method\"\u003eDynamoDB::Client#scan\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e全てのアイテムを走査します。\u003c/p\u003e\n\u003ch3 id=\"クエリ\"\u003eクエリ\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/DynamoDB/Client.html#query-instance_method\"\u003eDynamoDB::Client#query\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下のような感じです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ekey_condition_expression\u003c/code\u003e: プライマリキーのwhere相当\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e:v1\u003c/code\u003e: プレースホルダ\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eexpression_attribute_values\u003c/code\u003e: プレースホルダの値を指定するところ\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efilter_expression\u003c/code\u003e: フィルタ(プライマリキー以外のwhere相当)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erequire \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;aws-sdk\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eclient \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eAws\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eDynamoDB\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eClient\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003enew\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eresponse \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e client\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003equery(\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003etable_name\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;test\u0026#39;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003ekey_condition_expression\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Id = :v1\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003eexpression_attribute_values\u003c/span\u003e: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;:v1\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;1\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"キーに予約語や日本語などを使う場合\"\u003eキーに予約語や日本語などを使う場合\u003c/h3\u003e\n\u003cp\u003eキーに日本語を含める場合。追加の方は特に問題ないが、\nフィルタの考慮が必要。\u003c/p\u003e\n\u003cp\u003e以下のように、 \u003ccode\u003eexpression_attribute_values\u003c/code\u003e に入れる。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eitem \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e {\u003cspan style=\"color:#e6db74\"\u003eId\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;1\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003eContents\u003c/span\u003e: {\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u0026gt;\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;value1\u0026#39;\u003c/span\u003e}}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eclient\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eput_item(\u003cspan style=\"color:#e6db74\"\u003etable_name\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;test\u0026#39;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003eitem\u003c/span\u003e: item)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eresponse \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e client\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003equery(\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003etable_name\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;test\u0026#39;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003ekey_condition_expression\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Id = :v1\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003efilter_expression\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Contents.#key1 = :v2\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003eexpression_attribute_names\u003c/span\u003e: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#key1\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;key\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003eexpression_attribute_values\u003c/span\u003e: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;:v1\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;1\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;:v2\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;value1\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    )\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "CloudWatch",
    "url": "https://www.ikemo3.com/dic/cloudwatch/",
    "contents": "\u003ch2 id=\"cloudwatchとは\"\u003eCloudWatchとは\u003c/h2\u003e\n\u003cp\u003eAWSでのモニタリングツールです。\u003c/p\u003e\n\u003ch2 id=\"カスタムメトリクスは料金がかかる\"\u003eカスタムメトリクスは料金がかかる\u003c/h2\u003e\n\u003cp\u003eカスタムメトリクスは料金がかかる仕組みになっています。\n最初の10個は無料で、それ以降も$0.30/月なので高くはないのですが、\n何も考えずに設定すると46個設定してしまうので、気をつけた方がいいですね。\u003c/p\u003e\n"
  }, 
  {
    "title": "Netlify",
    "url": "https://www.ikemo3.com/manual/netlify/",
    "contents": "\u003ch2 id=\"hugoを使う時の注意\"\u003eHugoを使う時の注意\u003c/h2\u003e\n\u003cp\u003e詳しくは\u003ca href=\"https://gohugo.io/hosting-and-deployment/hosting-on-netlify/\"\u003eHost on Netlify | Hugo\u003c/a\u003eを参照。\u003c/p\u003e\n\u003cp\u003e主な注意点。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eデフォルトではHugoのバージョンが古い\n\u003cul\u003e\n\u003cli\u003enetlify.tomlを記載する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eテーマを使う時は\u003ccode\u003egit submodule\u003c/code\u003eを使う。\n\u003cul\u003e\n\u003cli\u003eプライベートリポジトリの場合は、アクセスキーを生成して埋め込む。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003enetlify.tomlのサンプルでは\u003ccode\u003e--enableGitInfo\u003c/code\u003eが有効になっているのに注意。\n\u003cul\u003e\n\u003cli\u003e使用しない場合は、\u003ccode\u003eHUGO_ENABLEGITINFO\u003c/code\u003eもオフにすること。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"カスタムドメインを使用するまで\"\u003eカスタムドメインを使用するまで\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eNetlifyでデプロイ可能にする\u003c/li\u003e\n\u003cli\u003eDNSサーバの設定を変更する。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ewww\u003c/code\u003eで始まるFQDNの場合は、\u003ccode\u003ewww\u003c/code\u003eなしのものも登録する必要があります。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHTTPSを有効にする。\n\u003cul\u003e\n\u003cli\u003eデフォルトではLet\u0026rsquo;s Encryptが使用可能です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHTTPSを強制する\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eForce HTTPS\u003c/code\u003eボタンを押すだけ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"リダイレクト\"\u003eリダイレクト\u003c/h2\u003e\n\u003ch3 id=\"まとめてリダイレクト\"\u003eまとめてリダイレクト\u003c/h3\u003e\n\u003cp\u003eアスタリスクを使うとまとめてリダイレクトが可能。\u003c/p\u003e\n\u003cp\u003e例えば\u003ccode\u003e/word\u003c/code\u003e 以下のドキュメントを全て \u003ccode\u003e/dic\u003c/code\u003eに転送する場合、\nnetlify.tomlには以下のように書く。\u003c/p\u003e\n\u003cp\u003eただし、この機能を使うと、ビルドが遅くなることがあるのに注意。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-toml\" data-lang=\"toml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e[[\u003cspan style=\"color:#a6e22e\"\u003eredirects\u003c/span\u003e]]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003efrom\u003c/span\u003e = \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;/word/*\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eto\u003c/span\u003e = \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;/dic/:splat\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003estatus\u003c/span\u003e = \u003cspan style=\"color:#ae81ff\"\u003e301\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"api\"\u003eAPI\u003c/h2\u003e\n\u003cp\u003e以下でAPIが定義されている。\nAPIを使ってみたが、非常に雑で、使うのには苦労しそう。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.netlify.com/docs/api/\"\u003eAPI | Netlify\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAPIキーを取得するには以下のようにする。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eログインする\u003c/li\u003e\n\u003cli\u003e右上のアイコンからAccount settingsを選択\u003c/li\u003e\n\u003cli\u003e左上の \u003ccode\u003eOAuth applications\u003c/code\u003e を選択\u003c/li\u003e\n\u003cli\u003e真ん中の \u003ccode\u003eNew Access token\u003c/code\u003e をクリック\u003c/li\u003e\n\u003cli\u003e用途を入力して \u003ccode\u003eGenerate token\u003c/code\u003e をクリック\u003c/li\u003e\n\u003cli\u003e次の画面でアクセストークンが表示されるため、コピーして保存する。\n\u003cul\u003e\n\u003cli\u003e注意書きがあるように、アクセストークンはこの画面でしか確認できない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003ca href=\"https://www.netlify.com/docs/redirects/\"\u003eRedirects | Netlify\u003c/a\u003e\u003c/p\u003e\n"
  }, 
  {
    "title": "Nosql",
    "url": "https://www.ikemo3.com/tags/nosql/",
    "contents": ""
  }, 
  {
    "title": "Apple Watch",
    "url": "https://www.ikemo3.com/manual/apple-watch/",
    "contents": "\u003ch2 id=\"音声入力が英語になってしまったとき\"\u003e音声入力が英語になってしまったとき\u003c/h2\u003e\n\u003cp\u003e画面を長押しすると、言語選択画面が出る。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e参考: \u003ca href=\"https://atnagas.com/tips-applewatch-voiceinput\"\u003eApple Watchの音声入力で英語入力なった時の対処法\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"アプリの強制終了方法\"\u003eアプリの強制終了方法\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://support.apple.com/ja-jp/HT201398\"\u003eApp が突然終了する、反応しなくなる、開かない - Apple サポート\u003c/a\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eアプリを開いた状態で、サイドボタンを長押しして、電源オプションを表示\u003c/li\u003e\n\u003cli\u003eDigital Crownを長押ししてアプリを終了\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Build",
    "url": "https://www.ikemo3.com/tags/build/",
    "contents": ""
  }, 
  {
    "title": "Gradle",
    "url": "https://www.ikemo3.com/manual/gradle/",
    "contents": "\u003ch2 id=\"fatjarの作り方\"\u003eFatJarの作り方\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://discuss.gradle.org/t/no-main-manifest-attribute/23182\"\u003eNo main manifest attribute - Help/Discuss - Gradle Forums\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下のようにして、\u003ccode\u003e./gradlew fatJar\u003c/code\u003eのように実行します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-groovy\" data-lang=\"groovy\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ejar \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    manifest \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        attributes \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;Main-Class\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;メインクラス名\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    from \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e configurations\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003ecompile\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003ecollect\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e it\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003eisDirectory\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e?\u003c/span\u003e it \u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e zipTree\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003eit\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"デプロイ\"\u003eデプロイ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eローカルへのデプロイ(\u003ccode\u003emvn install\u003c/code\u003e相当)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.gradle.org/current/userguide/maven_plugin.html\"\u003eMavenプラグイン\u003c/a\u003eを導入する。: \u003ccode\u003eapply plugin: 'maven'\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "端末のエンコーディングを変更する方法",
    "url": "https://www.ikemo3.com/inverted/terminal/convert-encoding/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eUTF-8環境でEUC-JPの出力を出力すると、文字化けしてしまいます。\nこのような場合の対処方法です。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e入出力を変換する場合\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eluit -encoding\u003c/code\u003e オプションを使う。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://askubuntu.com/questions/87227/switch-encoding-of-terminal-with-a-command\"\u003essh - Switch encoding of terminal with a command - Ask Ubuntu\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eただしRHEL 7/CentOS 7はうまくできないように見えます。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://bugzilla.redhat.com/show_bug.cgi?id=1046341\"\u003eBug 1046341 – xterm does not display EUCJP encoding\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://access.redhat.com/solutions/1131523\"\u003erhel7: luit does not handle EUCJP encoding correctly - Red Hat Customer Portal\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://vmi.jp/software/cygwin/cocot.html\"\u003ecocot\u003c/a\u003eを使う。\n\u003cul\u003e\n\u003cli\u003eまだ動作確認していません。コンパイルまでは行いました。\u003c/li\u003e\n\u003cli\u003eFedoraにはパッケージがありますが、EPELにはないようです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e出力だけ変換したい場合: nkfの \u003ccode\u003e-u\u003c/code\u003e オプションを使う(バッファリングしない)\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "ネーミング",
    "url": "https://www.ikemo3.com/manual/naming/",
    "contents": "\u003ch2 id=\"一般\"\u003e一般\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e意味のある名前を付ける。\n\u003cul\u003e\n\u003cli\u003eちょっとしたユーティリティメソッドは除いて、Stringにstrとか付けない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e汎用的なネーミングは避けた方がよい。\n\u003cul\u003e\n\u003cli\u003eJavaではパッケージで区別できるが、混乱しやすい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e変数のスコープに応じた長さを使い分ける。\n\u003cul\u003e\n\u003cli\u003eただし、あまり長すぎなければ問題ない(省略するほうが問題がある)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"省略形\"\u003e省略形\u003c/h2\u003e\n\u003cp\u003e自分で見たもの、あるいは書いているもので、\nこれはOK、これはダメというのを書いてみます。\u003c/p\u003e\n\u003ch3 id=\"問題ないもの\"\u003e問題ないもの\u003c/h3\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e省略形\u003c/th\u003e\n          \u003cth\u003e元の単語\u003c/th\u003e\n          \u003cth\u003e備考\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003ei, j, k\u003c/td\u003e\n          \u003ctd\u003eなし\u003c/td\u003e\n          \u003ctd\u003eカウンタ\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003ee\u003c/td\u003e\n          \u003ctd\u003eexception\u003c/td\u003e\n          \u003ctd\u003e例外\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003elen\u003c/td\u003e\n          \u003ctd\u003elength\u003c/td\u003e\n          \u003ctd\u003e長さ\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003ecol\u003c/td\u003e\n          \u003ctd\u003ecolumn\u003c/td\u003e\n          \u003ctd\u003e列\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eprop\u003c/td\u003e\n          \u003ctd\u003eproperty\u003c/td\u003e\n          \u003ctd\u003eプロパティ\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003econn\u003c/td\u003e\n          \u003ctd\u003econnection\u003c/td\u003e\n          \u003ctd\u003e接続(conだとconsoleと紛らわしいため、connが望ましい)\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eこれらは広く使われているため、おそらく問題ない。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e省略形\u003c/th\u003e\n          \u003cth\u003e元の単語\u003c/th\u003e\n          \u003cth\u003e備考\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003ebak\u003c/td\u003e\n          \u003ctd\u003ebackup\u003c/td\u003e\n          \u003ctd\u003e変数名としては使わない\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eisr\u003c/td\u003e\n          \u003ctd\u003eInputStreamReader\u003c/td\u003e\n          \u003ctd\u003ejava.ioは慣用としてクラス名の先頭をつなげたものが使われるはず。。。\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003emsg\u003c/td\u003e\n          \u003ctd\u003emessage\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003ers\u003c/td\u003e\n          \u003ctd\u003eResultSet\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003estmt\u003c/td\u003e\n          \u003ctd\u003estatement\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3 id=\"黒に近いグレー\"\u003e黒に近いグレー\u003c/h3\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e省略形\u003c/th\u003e\n          \u003cth\u003e元の単語\u003c/th\u003e\n          \u003cth\u003e備考\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003ecnt\u003c/td\u003e\n          \u003ctd\u003ecount\u003c/td\u003e\n          \u003ctd\u003eカウンタだが、con\u0026rsquo;t(続く)とよく間違える\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3 id=\"黒\"\u003e黒\u003c/h3\u003e\n\u003cp\u003e母音の省略形は厳禁\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e省略形\u003c/th\u003e\n          \u003cth\u003e元の単語\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003erslt\u003c/td\u003e\n          \u003ctd\u003eresult\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eflg\u003c/td\u003e\n          \u003ctd\u003eflag\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003efld\u003c/td\u003e\n          \u003ctd\u003efield\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"禁止事項\"\u003e禁止事項\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%B3%E3%82%AC%E3%83%AA%E3%82%A2%E3%83%B3%E8%A8%98%E6%B3%95#%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%83%8F%E3%83%B3%E3%82%AC%E3%83%AA%E3%82%A2%E3%83%B3\"\u003eシステムハンガリアン\u003c/a\u003eは使用しない。\n\u003cul\u003e\n\u003cli\u003eただし、スコープを区別するものは許容範囲内。\u003c/li\u003e\n\u003cli\u003eアプリケーションハンガリアン(本来の記法)は問題ない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e母音を抜くのは厳禁。\n\u003cul\u003e\n\u003cli\u003e例: \u003ccode\u003efield\u003c/code\u003e =\u0026gt; \u003ccode\u003efld\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eただし、広く使われているものは許容範囲内。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eこれに限らず、不必要な省略をしない。\n\u003cul\u003e\n\u003cli\u003e例: \u003ccode\u003eres\u003c/code\u003eは\u003ccode\u003eresult\u003c/code\u003eか\u003ccode\u003eresponse\u003c/code\u003eか分からない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ruby\"\u003eRuby\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eupdated_at\u003c/li\u003e\n\u003cli\u003ecreated_at\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAcitveRecordで自動的に更新されるもの。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e参考: \u003ca href=\"https://easyramble.com/read-activerecord-timestamps-source.html\"\u003eRails/ActiveRecordのtimestamps(created_at/updated_at)の実装を読んでみた | EasyRamble\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "論理削除",
    "url": "https://www.ikemo3.com/dic/soft-delete/",
    "contents": "\u003ch2 id=\"論理削除とは\"\u003e論理削除とは\u003c/h2\u003e\n\u003cp\u003eデータベースで、削除フラグを付けることにより、\n物理的には削除していないにも関わらず、削除しているように見せかけることです。\u003c/p\u003e\n\u003ch2 id=\"使わない方がよい\"\u003e使わない方がよい\u003c/h2\u003e\n\u003cp\u003e自分としては論理削除は使わない方が良いという結論です。\nその理由としては以下になります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e戻したい要件への対応には、バックアップ \u0026amp; 物理削除時にログ追加で対応\u003c/li\u003e\n\u003cli\u003e状態を表すには、フラグでなく、enumなどで対応する。\u003c/li\u003e\n\u003cli\u003eそもそも、要件にないなら実装してはいけない\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e以下の記事が自分の考えと近いです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/Jxck_/items/156d0a231c6968f2a474\"\u003eDELETE_FLAG を付ける前に確認したいこと。 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"戻したい要件への対応\"\u003e戻したい要件への対応\u003c/h3\u003e\n\u003cp\u003e何かの間違いで必要なレコードを消してしまった場合は、\nバックアップから復旧するのがいいですが、\nちょっとしたオペミスでテーブル全体を戻すのは気が引ける場合もあるので、\nそういうときは、削除したことをログに残すのがいいんじゃないかなぁと思っています。\u003c/p\u003e\n\u003ch3 id=\"状態を表す方法\"\u003e状態を表す方法\u003c/h3\u003e\n\u003cp\u003e先程の記事もありますが、削除フラグが必要な場合は、\nだいたいは「状態」が必要なケースがほとんどです。\u003c/p\u003e\n\u003cp\u003e例えば会員の状態の場合、\n「仮登録」「登録済」「停止中」「解約」などが考えられます。\nこれを1つ1つフラグで持つとものすごくメンテしづらいです(経験あり)。\u003c/p\u003e\n\u003ch3 id=\"要件にないなら実装してはいけない\"\u003e要件にないなら実装してはいけない\u003c/h3\u003e\n\u003cp\u003eあとそもそも、マスタデータなどで、\n削除が要件にないものは、削除フラグだろうと状態だろうと、付けるのは間違いです。\n\u003ca href=\"/dic/yagni/\"\u003eYAGNI\u003c/a\u003eの法則です。\u003c/p\u003e\n"
  }, 
  {
    "title": "ikemo3.com",
    "url": "https://www.ikemo3.com/log/ikemo3.com/",
    "contents": "\u003ch2 id=\"2018-09-28-bingへも登録\"\u003e2018-09-28: Bingへも登録\u003c/h2\u003e\n\u003cp\u003eすっかり存在を忘れてたんですが、BingのWebマスターツールにも登録しました。\nYahoo! JAPANはGoogleの結果を使っているみたいなので、不要っぽいですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.bing.com/toolbox/webmaster/\"\u003eBing - Web マスター ツール\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"2018-08-29-ファビコンを付けた\"\u003e2018-08-29: ファビコンを付けた\u003c/h2\u003e\n\u003cp\u003eこちらで作らせてもらいました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ao-system.net/favicongenerator/\"\u003e様々なファビコンを一括生成。favicon generator\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"2018-08-27-全文検索--サイトのタイトル変更\"\u003e2018-08-27: 全文検索 \u0026amp; サイトのタイトル変更\u003c/h2\u003e\n\u003cp\u003e下記忘れましたが、全文検索を入れています。\u003c/p\u003e\n\u003cp\u003eあと、サイトのタイトルを変えました。\n何となくフィーリングなので、また変えるかもしれません。\u003c/p\u003e\n\u003ch2 id=\"2018-08-20-全文検索導入予定\"\u003e2018-08-20: 全文検索導入予定\u003c/h2\u003e\n\u003cp\u003e最初はlunr.jsを使う予定でした。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/olivernn/lunr.js\"\u003eolivernn/lunr.js: A bit like Solr, but much smaller and not as bright\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eでも、\u003ccode\u003eAnsible\u003c/code\u003eが引っかからなかったりして、ちょっと微妙なので、\n単純に文字列の部分一致で引っ掛ける方法を取る予定です。\u003c/p\u003e\n\u003ch2 id=\"2018-08-13-クリックしてもコピーしないように\"\u003e2018-08-13: クリックしてもコピーしないように\u003c/h2\u003e\n\u003cp\u003ecode fenceおよび\u003ccode\u003e\u0026lt;code\u0026gt;\u003c/code\u003eをクリックするとコピーされていたのですが、\n誤操作や、一部分だけコピーしたい場合に不便なので、\nPrism.jsのコピープラグインを入れて、元の機能は外しました。\u003c/p\u003e\n\u003ch2 id=\"2018-07-27-テーマの整理\"\u003e2018-07-27: テーマの整理\u003c/h2\u003e\n\u003cp\u003eこのサイトは自作のHugoテーマを使っていたのですが、\nいろいろ改造しすぎてわけがわからなくなってきています。\u003c/p\u003e\n\u003cp\u003eそこで、Hugo 0.42から導入されたテーマコンポーネントという\n機能を使って、いくつかの機能を分離しました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ikemo3/hugo-external-site\"\u003ehttps://github.com/ikemo3/hugo-external-site\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ikemo3/hugo-related\"\u003ehttps://github.com/ikemo3/hugo-related\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ikemo3/hugo-interactive\"\u003ehttps://github.com/ikemo3/hugo-interactive\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ikemo3/hugo-toc-fix\"\u003ehttps://github.com/ikemo3/hugo-toc-fix\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ikemo3/hugo-random\"\u003ehttps://github.com/ikemo3/hugo-random\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ikemo3/hugo-prism\"\u003ehttps://github.com/ikemo3/hugo-prism\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"2018-07-06-広告配置の変更\"\u003e2018-07-06: 広告配置の変更\u003c/h2\u003e\n\u003cp\u003eできるだけ見せたくないので最下部に配置していたのですが、\nちょっと収益が少なすぎて(´・ω・｀)状態なので、\n上に変更(戻し)ました。\u003c/p\u003e\n\u003ch2 id=\"2018-06-13-settingの見直し\"\u003e2018-06-13: /settingの見直し\u003c/h2\u003e\n\u003cp\u003e記述が少ないものが多いため、見直して、\nマニュアルか逆引きマニュアルに移動する予定です。\n廃止も考えています。\u003c/p\u003e\n\u003ch2 id=\"2018-06-12-dic--theme-の運用開始\"\u003e2018-06-12: /dic ⇔ /theme の運用開始\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/manual/\"\u003eマニュアル\u003c/a\u003eと\u003ca href=\"/inverted/\"\u003e逆引きマニュアル\u003c/a\u003eのように、\n\u003ca href=\"/dic/\"\u003e辞書\u003c/a\u003eと\u003ca href=\"/theme/\"\u003eテーマ\u003c/a\u003eを相互にリンクするようにしました。\nいろいろ悩んだのですが、これが一番しっくり来そうなので。\u003c/p\u003e\n\u003cp\u003eHugoのテーマで実装済みなので、ちょっとYAML Front Matterを入れるだけでOKでした。\u003c/p\u003e\n\u003ch2 id=\"2018-05-31-サブセクション廃止\"\u003e2018-05-31: サブセクション廃止\u003c/h2\u003e\n\u003cp\u003eサブセクション(例: /dic/java/class/time)を廃止しました。\n理由は以前書いたものもあるのですが、\nHugoのテーマが分かりにくく、ビルドも遅くなるのが1つの理由でした。\u003c/p\u003e\n\u003ch2 id=\"2018-05-21-1000記事突破--サイト追加\"\u003e2018-05-21: 1000記事突破 \u0026amp; サイト追加\u003c/h2\u003e\n\u003cp\u003e記事数が1000を超えました。\nサブセクション見直しによって減るかもしれませんが。\nだからというわけではないですが、別のサイトを作ってみました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://shogi.ikemo3.com/\"\u003e将棋めも(仮)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"2018-05-13-メニューのトップ固定を止めた\"\u003e2018-05-13: メニューのトップ固定を止めた\u003c/h2\u003e\n\u003cp\u003eメニューをトップ固定にしてたのですが、\nリンク位置がズレるための修正をする時間がないので止めました。\u003c/p\u003e\n\u003ch2 id=\"2018-05-12-目次に公式サイトとかを追加\"\u003e2018-05-12: 目次に「公式サイト」とかを追加\u003c/h2\u003e\n\u003cp\u003e「公式サイト」「外部サイト」などはHugoのテーマで実現しているので\n目次には存在しなかったのですが、使いづらいので、\nJavaScriptで何とかしてみました。\u003c/p\u003e\n\u003ch2 id=\"2018-05-11-google-analyticsのデータ保持期間の設定\"\u003e2018-05-11: Google Analyticsのデータ保持期間の設定\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/privacy/\"\u003eプライバシーポリシー\u003c/a\u003eのサイトに記載しました。\nサイトによっては「無制限にしないとやばい」と\u003cstrong\u003e煽り立てる\u003c/strong\u003e記事がありますが、\nそういう記事を書く人はブラックリストに入れてもいいと思います。\n(リスクを理解した上であえて無制限にする人は別)\u003c/p\u003e\n\u003cp\u003e(2018-05-31追記)ちゃんと検証はしてないですが、こんな記事も。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://fujii-yuji.net/2018/05/starting-gdpr-today.html\"\u003e今日からGDPR施行だけど実は何もしてなかったぜというWEB担当者のために書いた | フジイユウジ::ドットネット\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e変に設定を変えないほうが良かったのかも?\nまあ、日本語以外は提供する予定はないですが。\u003c/p\u003e\n\u003ch2 id=\"2018-04-17-クリックしたときの位置がおかしい問題にトライ未解決\"\u003e2018-04-17: クリックしたときの位置がおかしい問題にトライ(未解決)\u003c/h2\u003e\n\u003cp\u003e今の構造では、クリックした時にズレてしまう問題がある。\n以下のCSSを使えばリンクした位置は正しくなった。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-css\" data-lang=\"css\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eh2\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003eh3\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003eh4\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003eh5\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003eh6\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003emargin-top\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e-60\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epadding-top\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e80\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eしかし、トップページの「続きを読む」がクリックできなくなった。\nおそらくpaddingの方が優先されているため。\nz-indexを試したが、汎用的に解決する方法は見つからなかった。\u003c/p\u003e\n\u003cp\u003eそもそもトップを固定にしないほうがいいかも。。。\u003c/p\u003e\n\u003ch2 id=\"2018-03-24-サブセクションを使わない方向に\"\u003e2018-03-24: サブセクションを使わない方向に\u003c/h2\u003e\n\u003cp\u003eサブセクションを使っていたのですが、以下の問題がありました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e記事を作るのがめんどくさい。\u003c/li\u003e\n\u003cli\u003e関連記事へリンクする時に入力がめんどくさい。\u003c/li\u003e\n\u003cli\u003e内容が分散しているため、自分がアクセスしにくい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eなので、サブセクションは減らす方向で記事を統合しています。\nURLは維持しています。\u003c/p\u003e\n\u003ch2 id=\"2018-03-24-スライドとpdf出力を停止\"\u003e2018-03-24: スライドとPDF出力を停止\u003c/h2\u003e\n\u003cp\u003eスライドとPDF出力は使う機会がなかったので、一旦停止しています。\nテーマとしてはサポートしたままです。\u003c/p\u003e\n\u003ch2 id=\"2018-01-07-クリップの移動を始めた\"\u003e2018-01-07: クリップの移動を始めた\u003c/h2\u003e\n\u003ch3 id=\"クリップの場所\"\u003eクリップの場所\u003c/h3\u003e\n\u003cp\u003eクリップはEvernoteにありましたが、\nEvernoteをなるべく使わないようにするために、\nInstapaperに移動していました。\u003c/p\u003e\n\u003cp\u003eしかし、Instapaperも使いにくいなぁと思ってたので、\nいろいろ考えていたところ、このサイトの記事に「外部サイト」として\n登録すればいいなと気づきました。\nなので、せっせと移しています。\u003c/p\u003e\n\u003ch3 id=\"最終的には自分の知見としたい\"\u003e最終的には自分の知見としたい\u003c/h3\u003e\n\u003cp\u003e今は単に移動していますが、\nそれだけだと駄目なので、\n他のサイトで得た情報を、公式サイトなどをチェックして、\n自分の言葉で書き直すようにしたいです。\u003c/p\u003e\n\u003ch2 id=\"2017-09-15-相互リンク追加\"\u003e2017-09-15: 相互リンク追加\u003c/h2\u003e\n\u003cp\u003e以下のようにセクションが異なる同じパスを持っている場合に、\n相互にリンクを貼る機能を追加しました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e/manual/ansible/\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e/dic/ansible/\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e2時間くらいかかったのですが、さすがHugo、何でも出来ますね。。。\u003c/p\u003e\n\u003ch2 id=\"2017-09-14-ディレクトリ大移動\"\u003e2017-09-14: ディレクトリ大移動\u003c/h2\u003e\n\u003cp\u003eこれまではword(単語)というディレクトリ名を使っていました。\u003c/p\u003e\n\u003cp\u003e当初はただ単に自分が知っていることや、\n考えていることをたくさん書きたくてこのサイトを作りました。\u003c/p\u003e\n\u003cp\u003e最初は\u003ca href=\"https://scrapbox.io\"\u003eScrapbox\u003c/a\u003eをイメージしてました。\nScrapboxはコンセプトは良いのですが、長期的にメンテナンスする時に、\n構成を自分で管理できないのがちょっと嫌かなぁと思って、\n自分の思い通りになるサイトがほしいなと。\u003c/p\u003e\n\u003cp\u003eそんなことをつらつら書きながら記事を増やしていったのですが、\nどうやら自分が今作ってるのは「辞書」あるいは「用語集」のようなものかなぁと。\n「百科事典」というのはちょっと重い。\u003c/p\u003e\n\u003cp\u003eまあそんなことを思ったので、一気に移動しました。\n旧URLからは301リダイレクトで転送するようになってます。\u003c/p\u003e\n\u003ch2 id=\"2017-07-20-構造を修正\"\u003e2017-07-20: 構造を修正\u003c/h2\u003e\n\u003ch3 id=\"タグに日本語が使えなかった\"\u003eタグに日本語が使えなかった\u003c/h3\u003e\n\u003cp\u003eMacのファイル名のUnicode処理に問題がある(濁点問題)ため、\n日本語のひらがな、カタカナを含むタグがエラーになってました。\n回避策はなさそうなので、アルファベットのみにしています。\u003c/p\u003e\n\u003ch3 id=\"ファイル名の区切りをハイフンで統一\"\u003eファイル名の区切りをハイフンで統一\u003c/h3\u003e\n\u003cp\u003e今まではアンダースコア(\u003ccode\u003e_\u003c/code\u003e)とハイフン\u003ccode\u003e-\u003c/code\u003eが混ざってたのですが、\nハイフンに統一しました。そのため、URLが変わったページがあります。\n構築中ではないですが、まだ仮運用中のための措置で、\n安定したらURLは固定される予定です。\u003c/p\u003e\n\u003ch3 id=\"トップへ戻るのリンクが動かない件\"\u003e「トップへ戻る」のリンクが動かない件\u003c/h3\u003e\n\u003cp\u003e「トップへ戻る」はどうやら「ページのトップに戻る」らしいんですが、\n動いていないようです。\u003ccode\u003e#top\u003c/code\u003eにすればいいかと思ったんですが、\nAngularJSと競合して動いていないようです。\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e#top\u003c/code\u003e を使おうと思ったのは、(\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/HTML/Element/a\"\u003eMDNのa要素の解説\u003c/a\u003e)に以下のように書いてあったからです。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e注記: 現在のページの最上部へのリンクとして href=\u0026quot;#top\u0026quot; または空のフラグメント href=\u0026quot;#\u0026quot; \u0026gt;を使用できます。この動作は HTML5 で明記されました。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e(2017-08-03追加)どうやらポップアップダイアログの表示のためだけに使ってるようなので、JavaScript読み込みレベルで削除しました。\u003ccode\u003ehref=\u0026quot;#top\u0026quot;\u003c/code\u003eと組み合わせれば問題なく動きました。\u003c/p\u003e\n"
  }, 
  {
    "title": "JetBrains",
    "url": "https://www.ikemo3.com/tags/jetbrains/",
    "contents": ""
  }, 
  {
    "title": "RubyMine",
    "url": "https://www.ikemo3.com/manual/rubymine/",
    "contents": "\u003cp\u003eJetBrains製品に共通する設定は\u003ca href=\"/manual/intellij-idea/\"\u003eIntelliJ IDEA\u003c/a\u003eに記載しています。\u003c/p\u003e\n\u003ch2 id=\"bundler\"\u003eBundler\u003c/h2\u003e\n\u003cp\u003e実行方法: Tool -\u0026gt; Bundler -\u0026gt; Install\nオプションには\u003ccode\u003e--path vendor/bundle\u003c/code\u003eを入れる。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e参考\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/manual/bundler/\"\u003eBundler\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/tmknom/items/0704f48f354c703b2dd2\"\u003eRubymineをインストールしたら最初にやるオススメ設定 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"アイコンの意味\"\u003eアイコンの意味\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.jetbrains.com/help/ruby/symbols.html\"\u003eSymbols\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pleiades.io/help/ruby/symbols.html\"\u003eシンボル\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Apache HTTP Server",
    "url": "https://www.ikemo3.com/manual/apache/",
    "contents": "\u003ch2 id=\"セキュリティ\"\u003eセキュリティ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePOSTの制限値: \u003ca href=\"http://httpd.apache.org/docs/2.4/mod/core.html#limitrequestbody\"\u003eLimitRequestBody\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eデフォルトは0(無制限)のため、DoSアタックをされる可能性がある。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eServer:\u003c/code\u003e ヘッダ: \u003ca href=\"https://httpd.apache.org/docs/2.4/ja/mod/core.html#servertokens\"\u003eServerTokens\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eこの値を \u003ccode\u003eProductOnly\u003c/code\u003e にすると、\u003ccode\u003eServer: Apache\u003c/code\u003e とのみ表示される。\u003c/li\u003e\n\u003cli\u003eこれ自身がセキュリティ向上になるわけではないが、入れておいて損はない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"http---httpへの昇格\"\u003eHTTP -\u0026gt; HTTPへの昇格\u003c/h2\u003e\n\u003cp\u003e以下のようにします。\nRewriteCondはLet\u0026rsquo;s Encryptのための設定です。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;VirtualHost *:80\u0026gt;\n   RewriteEngine On\n   RewriteCond %{REQUEST_URI} !^/\\.well\\-known/acme-\\challenge/\n   RewriteRule ^/?(.*) https://example.com/$1 [R=301,L]\n\u0026lt;/VirtualHost\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"proxy\"\u003eProxy\u003c/h2\u003e\n\u003cp\u003eApacheの背後にTomcatがある時など、\nプロキシを使ったときのエラー画面をデフォルトにするには、\n\u003ca href=\"http://httpd.apache.org/docs/trunk/en/mod/mod_proxy.html#proxyerroroverride\"\u003eProxyErrorOverride\u003c/a\u003eをOnにする。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eProxyErrorOverride On\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"ログ\"\u003eログ\u003c/h2\u003e\n\u003cp\u003e標準で設定されているアクセスログフォーマットがあって、\nそれぞれCommonと、Combinedと呼びます。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eLogFormat \u0026#34;%h %l %u %t \\\u0026#34;%r\\\u0026#34; %\u0026gt;s %b\u0026#34; common\nCustomLog logs/access_log common\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eLogFormat \u0026#34;%h %l %u %t \\\u0026#34;%r\\\u0026#34; %\u0026gt;s %b \\\u0026#34;%{Referer}i\\\u0026#34; \\\u0026#34;%{User-agent}i\\\u0026#34;\u0026#34; combined\nCustomLog log/access_log combined\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eそれぞれ以下のような意味があります\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e%h\u003c/code\u003e: リモートホスト名(デフォルトは\u003ccode\u003eHostnameLookups\u003c/code\u003eが\u003ccode\u003eOff\u003c/code\u003eのため、IPアドレスになる。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%l\u003c/code\u003e: ログ名(\u003ccode\u003emod_ident\u003c/code\u003eが存在して\u003ccode\u003eIdentityCheck\u003c/code\u003eが\u003ccode\u003eOn\u003c/code\u003eのときのみ。それ以外は\u003ccode\u003e-\u003c/code\u003eになる。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%u\u003c/code\u003e: 認証したときはそのユーザ名。認証に失敗したときはいんちきの(bogus)ユーザ名になりうる。\n\u003cul\u003e\n\u003cli\u003e記載がないですが、認証していないときは\u003ccode\u003e-\u003c/code\u003eになります。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%t\u003c/code\u003e: 時刻(\u003ccode\u003e[18/Sep/2011:19:18:28 -0400]\u003c/code\u003eのような形式(\u003ccode\u003e[日/月/年:時:分:秒 オフセット]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%r\u003c/code\u003e: リクエストの最初の行\n\u003cul\u003e\n\u003cli\u003e記載されていないですが、\u003ccode\u003eGET / HTTP/1.1\u003c/code\u003eなどのHTTPヘッダが入ります。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%s\u003c/code\u003e, \u003ccode\u003e%\u0026gt;s\u003c/code\u003e:　ステータスコード。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e%s\u003c/code\u003eはオリジナルのリクエストのステータスコード\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%\u0026gt;s\u003c/code\u003eは最後のステータスコード。\u003c/li\u003e\n\u003cli\u003e301でリダイレクトして200を返したときは、\u003ccode\u003e%s\u003c/code\u003eは301、\u003ccode\u003e%\u0026gt;s\u003c/code\u003eは200が返ると思われます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%b\u003c/code\u003e: レスポンスのサイズ(バイト)、ただしHTTPヘッダは除く。\u003ccode\u003e-\u003c/code\u003eのときは何も返していません。\u003c/li\u003e\n\u003cli\u003eCombinedのみ\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e%{Referer}i\u003c/code\u003e: リクエストヘッダ\u003ccode\u003eReferer\u003c/code\u003e。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%{User-agent}i\u003c/code\u003e: リクエストヘッダ\u003ccode\u003eUser-agent\u003c/code\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"リスト表示directorylistings\"\u003eリスト表示(DirectoryListings)\u003c/h2\u003e\n\u003cp\u003eファイルサーバなど、ディレクトリ以下をリスト表示する場合の機能。\nヘッダとフッタの設定も可能。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://wiki.apache.org/httpd/DirectoryListings\"\u003eDirectoryListings - Httpd Wiki\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"cgi\"\u003eCGI\u003c/h2\u003e\n\u003cp\u003e昔懐かしい(?)CGIを動かす方法。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://httpd.apache.org/docs/current/ja/howto/cgi.html\"\u003eApache Tutorial: CGI による動的コンテンツ - Apache HTTP サーバ バージョン 2.4\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e基本的には以下の設定が必要です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emod_cgiまたはmod_cgidが有効なこと\u003c/li\u003e\n\u003cli\u003eAddHandler/SetHandlerによるCGIの設定\u003c/li\u003e\n\u003cli\u003eOptions ExecCGI\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eあとCGIスクリプト側の設定\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCGIスクリプトは実行パーミッションが必要\u003c/li\u003e\n\u003cli\u003eCGIスクリプトまでのディレクトリのパーミッション\n\u003cul\u003e\n\u003cli\u003eApacheの実行ユーザで実行権限があること\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eオーナー以外の書き込み権限がないこと\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://httpd.apache.org/docs/current/en/mod/mod_log_config.html#formats\"\u003emod_log_config - Apache HTTP Server Version 2.4\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eディレクトリの実行権限なので、そのディレクトリへ移動する権限です。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "AWS: CloudWatch エージェントをEC2に入れる方法",
    "url": "https://www.ikemo3.com/inverted/cloudwatch/install-on-ec2/",
    "contents": "\u003ch2 id=\"古い手順\"\u003e古い手順\u003c/h2\u003e\n\u003cp\u003e慣れないうちはこちらの方が楽な気がする。。。\u003c/p\u003e\n\u003ch3 id=\"cloudawatchエージェントをインストール\"\u003eCloudaWatchエージェントをインストール\u003c/h3\u003e\n\u003cp\u003e詳細はこちら。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html\"\u003eクイックスタート: 実行中の EC2 Linux インスタンスに CloudWatch Logs エージェントをインストールして設定する - Amazon CloudWatch ログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003esudo yum install awslogs\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e収集するログの設定: \u003ccode\u003esudo vi /etc/awslogs/awslog.conf\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eデフォルトでは\u003ccode\u003e/var/log/messages\u003c/code\u003eが入っている\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eリージョンの設定: \u003ccode\u003esudo vi /etc/awslogs/awscli.conf\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eregion = ap-northeast-1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eaws_access_key_id\u003c/code\u003e, \u003ccode\u003eaws_secret_access_key\u003c/code\u003e を設定\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esudo service awslogs start\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"新しい手順\"\u003e新しい手順\u003c/h2\u003e\n\u003cp\u003eAWS Systems Managerとの統合が売りだけど、まだ手順が枯れてない感じ。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html\"\u003eCloudWatch エージェントを使用して Amazon EC2 インスタンスとオンプレミスサーバーからメトリクスとログを収集する - Amazon CloudWatch\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"cloudwatchエージェントのインストール\"\u003eCloudWatchエージェントのインストール\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emkdir AmazonCloudWatchAgent\ncd AmazonCloudWatchAgent\nwget https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip\nunzip AmazonCloudWatchAgent.zip\nsudo ./install.sh\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"cloudwatchエージェントの認証情報を登録\"\u003eCloudWatchエージェントの認証情報を登録\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esudo aws configure --profile AmazonCloudWatchAgent\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"設定ファイルを作成\"\u003e設定ファイルを作成\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard \n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003e以下の方法で入力すると、カスタムメトリクスがたくさんできるので注意\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOSを選ぶ(Linux/Windows): 1\u003c/li\u003e\n\u003cli\u003eホストのタイプ(EC2/オンプレミス): 1\u003c/li\u003e\n\u003cli\u003eCPUやメモリのモニタリングをするか?(はい/いいえ): 1\u003c/li\u003e\n\u003cli\u003eコア単位のCPUモニタリングをするか?(はい/いいえ): 1\u003c/li\u003e\n\u003cli\u003eEC2の情報を埋め込むか?(はい/いいえ): 1\u003c/li\u003e\n\u003cli\u003e計測単位は?(1秒/10秒/30秒/60秒): 4\u003c/li\u003e\n\u003cli\u003e設定は?(Basic/Standard/Advanced/None): 1(Basic)\n\u003cul\u003e\n\u003cli\u003eこれは意味が分かりませんでした。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e上の設定(JSONで出力される)で問題ないか?(はい/いいえ): 1\u003c/li\u003e\n\u003cli\u003eCloudWatch Log Agentの設定ファイルがあるか?(はい/いいえ): 2\n\u003cul\u003e\n\u003cli\u003e初回は「いいえ」になると思います。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e任意のログファイルをモニタリングするか?(はい/いいえ): 1\u003c/li\u003e\n\u003cli\u003eログファイルのパス:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e/var/log/messages\u003c/code\u003eで良さそう?\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eロググループ名: デフォルト\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e/var/log/messages\u003c/code\u003e のときは \u003ccode\u003emessages\u003c/code\u003e になる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e追加でモニタリングするログはあるか?\u003c/li\u003e\n\u003cli\u003e設定をSSMパラメータストアに入れるか?\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ap-northeast-1.console.aws.amazon.com/systems-manager/parameters?region=ap-northeast-1\"\u003eAWS Systems Manager -\u0026gt; パラメータストア\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e設定をどのような名前でストアに入れるか?\n\u003cul\u003e\n\u003cli\u003e何でもいいようですが、\u003ccode\u003eAmazonCloudWatch-\u003c/code\u003eで始まる方が良さそうです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eパラメータストアを保存するリージョンは?\n\u003cul\u003e\n\u003cli\u003e東京リージョンなので\u003ccode\u003eap-northeast-1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAWSのアクセスキー\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"cloudwatchエージェントの起動\"\u003eCloudWatchエージェントの起動\u003c/h3\u003e\n\u003cp\u003e以下の手順ではなぜか起動しません(後述)。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ePARAMETER_STORE\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003exxx\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c ssm:\u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003ePARAMETER_STORE\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e -s\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch4 id=\"起動できない問題とその回避方法\"\u003e起動できない問題とその回避方法\u003c/h4\u003e\n\u003cp\u003e公式手順の通りにやっても以下のエラーが出ます。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eError in retrieving parameter store content: NoCredentialProviders: no valid providers in chain. Deprecated.\n\tFor verbose messaging see aws.Config.CredentialsChainVerboseErrors\nFail to fetch json config: NoCredentialProviders: no valid providers in chain. Deprecated.\n\tFor verbose messaging see aws.Config.CredentialsChainVerboseErrors\n\nFail to fetch the config!\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eこれは、以下の環境変数を設定することで回避できます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAWS_ACCESS_KEY_ID\u003c/li\u003e\n\u003cli\u003eAWS_SECRET_ACCESS_KEY\u003c/li\u003e\n\u003cli\u003eAWS_REGION\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Cloudwatch",
    "url": "https://www.ikemo3.com/tags/cloudwatch/",
    "contents": ""
  }, 
  {
    "title": "Bash",
    "url": "https://www.ikemo3.com/manual/bash/",
    "contents": "\u003ch2 id=\"shellcheckを使おう\"\u003eShellCheckを使おう\u003c/h2\u003e\n\u003cp\u003e以下のサイト/プログラムで、シェルスクリプトの文法をチェックしてくれます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.shellcheck.net/\"\u003eShellCheck – shell script analysis tool\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"起動オプション\"\u003e起動オプション\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eman bash\u003c/code\u003eしたあとすぐ先にある\u003ccode\u003eOPTIONS\u003c/code\u003eを参照。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026lsquo;-c string\u0026rsquo;: コマンドを文字列から取得\u003c/li\u003e\n\u003cli\u003e\u0026lsquo;-l\u0026rsquo;: ログインシェルとして実行\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"set\"\u003eset\u003c/h3\u003e\n\u003cp\u003e起動オプションには、\u003ccode\u003eset\u003c/code\u003eで指定できるオプションも使えます。\n\u003ccode\u003eset\u003c/code\u003eはビルドインコマンドで、説明を見るには、\u003ccode\u003eman bash\u003c/code\u003eしたあと、\n\u003ccode\u003e/^SHELL BUILTIN COMMANDS\u003c/code\u003eと入力するのが楽です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e-e: exit 0以外になったときに停止\u003c/li\u003e\n\u003cli\u003e-u: 未定義変数を使用した時に停止\u003c/li\u003e\n\u003cli\u003e-x: 実行するコマンドを画面に出力する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"コマンドの結果代入はを使う\"\u003eコマンドの結果代入は$(\u0026hellip;)を使う\u003c/h2\u003e\n\u003cp\u003eコマンドの結果を代入する方法にはバッククォートを使う方法と、\n\u003ccode\u003e$(...)\u003c/code\u003eを使う方法がありますが、\u003ccode\u003e$(...)\u003c/code\u003eを使うようにした方がいいです。\u003c/p\u003e\n\u003cp\u003eその理由は以下に書かれています。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://mywiki.wooledge.org/BashFAQ/082\"\u003eBashFAQ/082 - Greg\u0026rsquo;s Wiki\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePOSIX標準にも含まれており、bash, dash(Debian), busyboxなどでも使えるため、\n互換性の問題もありません。\u003c/p\u003e\n\u003ch2 id=\"変数展開\"\u003e変数展開\u003c/h2\u003e\n\u003cp\u003e以下は、次のシェルで確認しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGNU bash 3.2.57(macOS High Sierra)\u003c/li\u003e\n\u003cli\u003eBusybox 1.27.2-r7(Alpine Linux 3.7.0)\u003c/li\u003e\n\u003cli\u003eDebian Almquist Shell(dash, Debian 9.4) ※一部のみ\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"未定義空の場合の定義\"\u003e未定義、空の場合の定義\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e${parameter:-word}\u003c/code\u003e: 未定義もしくはnullの場合、wordが使用される。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFOO\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003efoo\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO\u003cspan style=\"color:#66d9ef\"\u003e:-\u003c/span\u003ebar\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; foo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFOO\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO\u003cspan style=\"color:#66d9ef\"\u003e:-\u003c/span\u003ebar\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; bar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eunset FOO\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO\u003cspan style=\"color:#66d9ef\"\u003e:-\u003c/span\u003ebar\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; bar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e${parameter:=word}\u003c/code\u003e: 未定義もしくはnullの場合、wordが使用され、\u003cstrong\u003e代入される\u003c/strong\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFOO\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003efoo\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO:=bar\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; foo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFOO\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO:=bar\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; bar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e      \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; bar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eunset FOO\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO:=bar\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; bar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e      \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; bar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e${parameter:?word}\u003c/code\u003e: 未定義もしくはnullの場合、標準エラー出力にwordが出る。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFOO\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003efoo\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO:?foo is undefined\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; foo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho $?                       \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; 0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFOO\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO:?foo is undefined\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; FOO: foo is undefined\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho $?                       \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; 1(bash, dash), 2(busybox)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eunset FOO\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO:?foo is undefined\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; FOO: foo is undefined\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho $?                       \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; 1(bash, dash), 2(busybox)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e${parameter:+word}\u003c/code\u003e: 未定義もしくはnullのときは何もせず、それ以外のときはwordに置き換えられる。\n\u003cul\u003e\n\u003cli\u003enullは空文字のことだと思いますが、なぜか置換されますね。。。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFOO\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003efoo\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO+bar\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; bar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFOO\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO+bar\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; bar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eunset FOO\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO+bar\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; (なし)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"部分文字列\"\u003e部分文字列\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e${parameter:offset}\u003c/code\u003e: offset文字目から後を出力する。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e${parameter:offset:length}\u003c/code\u003e: offset文字目から後を出力する。\u003c/li\u003e\n\u003cli\u003e最初の文字は、offset=0となる。\u003c/li\u003e\n\u003cli\u003eoffsetに負の値を指定すると、後ろから取得する。ただし、\u003cstrong\u003eコロンとマイナスの間にスペースを入れること\u003c/strong\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFOO\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003efoo.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO:4\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e     \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; tar.gz\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO: -6\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e   \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; tar.gz\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO:4:3\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e   \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; tar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO: -6:3\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; tar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"単語の長さ\"\u003e単語の長さ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e${#parameter}\u003c/code\u003e: 変数の長さを出力する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFOO\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003efoo.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${#\u003c/span\u003eFOO\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; 10\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"単語の削除\"\u003e単語の削除\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e${parameter#word}\u003c/code\u003e: wordを前方から最短一致で削除する。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e${parameter##word}\u003c/code\u003e: wordを前方から最長一致で削除する。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e${parameter%word}\u003c/code\u003e: wordを後方から最短一致で削除する。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e${parameter%%word}\u003c/code\u003e: wordを後方から最長一致で削除する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFOO\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003efoo.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO#*.\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e  \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; tar.gz\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO##*.\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; gz\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO%.*\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e  \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; foo.tar\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO%%.*\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; foo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"単語の置換\"\u003e単語の置換\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e${parameter/pattern/string}\u003c/code\u003e: 最長一致でpatternをstringで置き換える\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eFOO\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003efoo.tar.tar.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO/gz/bz\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e   \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; foo.tar.tar.tar.bz\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eFOO/t*r/bar\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# =\u0026gt; foo.bar.gz\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"条件式\"\u003e条件式\u003c/h2\u003e\n\u003cp\u003e数値は「以上」「以下」などを使用するためアルファベット(\u003ccode\u003eeq\u003c/code\u003eなど)を使い、\n文字列はその必要がないから、\u003ccode\u003e=\u003c/code\u003eを使うと覚えるといいかも。\n(でも辞書順の比較はありますね)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e条件: if, elif, else, fi\u003ca href=\"https://www.gnu.org/software/bash/manual/bash.html#index-if\"\u003eif\u003c/a\u003eより)\u003c/li\u003e\n\u003cli\u003e論理演算子: and -\u0026gt; \u003ccode\u003e-a\u003c/code\u003e, or -\u0026gt; \u003ccode\u003e-o\u003c/code\u003e(\u003ca href=\"https://www.gnu.org/software/bash/manual/bash.html#index-test\"\u003etest\u003c/a\u003eより)\u003c/li\u003e\n\u003cli\u003e文字列の比較(\u003ca href=\"https://www.gnu.org/software/bash/manual/bash.html#Bash-Conditional-Expressions\"\u003e6.4 Bash Conditional Expressions\u003c/a\u003eより)\n\u003cul\u003e\n\u003cli\u003e等しい: \u003ccode\u003e=\u003c/code\u003e (推奨)または \u003ccode\u003e==\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e=\u003c/code\u003e が推奨なのはPOSIX準拠のため。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e等しくない: \u003ccode\u003e!=\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e数値の比較: \u003ccode\u003e-eq\u003c/code\u003e, \u003ccode\u003e-ne\u003c/code\u003e, \u003ccode\u003e-lt\u003c/code\u003e, \u003ccode\u003e-le\u003c/code\u003e, \u003ccode\u003e-gt\u003c/code\u003e, \u003ccode\u003e-ge\u003c/code\u003e (\u003ca href=\"https://www.gnu.org/software/bash/manual/bash.html#Bash-Conditional-Expressions\"\u003e6.4 Bash Conditional Expressions\u003c/a\u003eより)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-e file\u003c/code\u003e: ファイルが存在すればtrue\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"case\"\u003ecase\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.gnu.org/software/bash/manual/bash.html#index-case\"\u003ecase\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下のような感じで書きます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e*)\u003c/code\u003e: defaultに相当\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e;;\u003c/code\u003e: breakに相当\u003c/li\u003e\n\u003cli\u003e終わりは\u003ccode\u003eesac\u003c/code\u003e(caseの逆)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003ecase\u003c/span\u003e $VAL in\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  a | b\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ;;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  c | d\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ;;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  *\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ;;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eesac\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"引数\"\u003e引数\u003c/h2\u003e\n\u003ch3 id=\"引数の解析\"\u003e引数の解析\u003c/h3\u003e\n\u003cp\u003eビルドインコマンドに\u003ccode\u003egetopts\u003c/code\u003eがある(未調査)。\u003c/p\u003e\n\u003ch3 id=\"引数をまとめるjoin\"\u003e引数をまとめる(join)\u003c/h3\u003e\n\u003cp\u003e例えば引数を全てハイフン区切りにまとめるには以下のようにするといいです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eKEY\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003e$(\u003c/span\u003eecho -n \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u003c/span\u003e$*\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u003c/span\u003e | tr \u003cspan style=\"color:#e6db74\"\u003e\u0026#39; \u0026#39;\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;-\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"変数が定義されているかどうかのチェック\"\u003e変数が定義されているかどうかのチェック\u003c/h2\u003e\n\u003cp\u003e以下のようにすればよい。この場合、VALが未定義の場合は \u003ccode\u003e'-'\u003c/code\u003e 以降、すなわち空文字になる。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eVAL-\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ca href=\"https://qiita.com/ngyuki/items/b2e291e07f6d2b2c353e\"\u003eset -u してるときに変数が未定義または空文字かチェックする for RHEL/CentOS 6 - Qiita\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e「シェルスクリプト基本リファレンス」のp187に説明がある。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e${パラメータ:-値}\u003c/code\u003e: パラメータが未定義もしくは空の場合、指定された値に展開される。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e${パラメータ-値}\u003c/code\u003e: パラメータが未定義の場合、指定された値に展開される。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"自分自身のパスに移動\"\u003e自分自身のパスに移動\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# change to topdir\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd \u003cspan style=\"color:#e6db74\"\u003e`\u003c/span\u003edirname $0\u003cspan style=\"color:#e6db74\"\u003e`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"古い環境での注意点\"\u003e古い環境での注意点\u003c/h2\u003e\n\u003cp\u003e3系列のときは、配列が使えなかったはず。\u003c/p\u003e\n\u003ch2 id=\"コマンドでエラーが出ても続行\"\u003eコマンドでエラーが出ても続行\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://moneyforward.com/engineers_blog/2015/05/21/bash-script-tips/\"\u003ebash スクリプトの先頭によく書く記述のおさらい | Money Forward Engineers\u0026rsquo; Blog\u003c/a\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ecommand || true\n\u003c/code\u003e\u003c/pre\u003e"
  }, 
  {
    "title": "Google スライド",
    "url": "https://www.ikemo3.com/manual/google-slide/",
    "contents": "\u003ch2 id=\"基本操作\"\u003e基本操作\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eフォントサイズの変更\n\u003cul\u003e\n\u003cli\u003e1ポイント増やす: Command + Shift + .(ピリオド)\u003c/li\u003e\n\u003cli\u003e1ポイント減らす: Command + Shift + ,(カンマ)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"スライド番号\"\u003eスライド番号\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e追加\n\u003col\u003e\n\u003cli\u003e挿入→スライド番号(下から2番目)\u003c/li\u003e\n\u003cli\u003eタイトルのスライドを除外する: オン\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003eフォントの変更\n\u003col\u003e\n\u003cli\u003eスライド→マスターを編集\u003c/li\u003e\n\u003cli\u003e一番上の「マスター」を選択\u003c/li\u003e\n\u003cli\u003e右下の「#」を選択\u003c/li\u003e\n\u003cli\u003eフォントサイズを24に変更\u003c/li\u003e\n\u003cli\u003e右上の「✕」を押して戻る\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Presentation",
    "url": "https://www.ikemo3.com/tags/presentation/",
    "contents": ""
  }, 
  {
    "title": "マジックナンバー",
    "url": "https://www.ikemo3.com/dic/magic-number/",
    "contents": "\u003ch2 id=\"マジックナンバーとは\"\u003eマジックナンバーとは\u003c/h2\u003e\n\u003cp\u003eプログラム中に「分かりにくい」即値をそのまま書くことです。\u003c/p\u003e\n\u003ch2 id=\"定数として定義すればいいものではない\"\u003e定数として定義すればいいものではない\u003c/h2\u003e\n\u003cp\u003e例えばこれ。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/terasolunaorg/tutorial-apps/blob/master/secure-login-demo/src/secure-login-domain/src/main/java/com/example/securelogin/domain/common/message/MessageKeys.java\"\u003ehttps://github.com/terasolunaorg/tutorial-apps/blob/master/secure-login-demo/src/secure-login-domain/src/main/java/com/example/securelogin/domain/common/message/MessageKeys.java\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e単に定数として定義しても意味がありません。\nせめてE5001_RESOURCE_NOT_FOUNDならいいんですが。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e/** e.sl.fw.5001=Resource not found. */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003estatic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e String E_SL_FW_5001 \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;e.sl.fw.5001\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"分かりにくいかどうか\"\u003e「分かりにくい」かどうか\u003c/h2\u003e\n\u003cp\u003e勘違いしてはいけないのは、「即値＝マジックナンバー」ではありません。\n理由は、関連記事に書いている通りです。\u003c/p\u003e\n\u003cp\u003e自分の場合は以下を基準にしています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e複数回出てくるところ\u003c/li\u003e\n\u003cli\u003e前後のコードやドキュメントを呼んでも定数の意味が分からないところ\u003c/li\u003e\n\u003cli\u003e変更される可能性があるところ\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただし、\u003ca href=\"/dic/yagni/\"\u003eYAGNI\u003c/a\u003eの原則を守ってください。\u003c/p\u003e\n\u003ch2 id=\"定数を定義する場所\"\u003e定数を定義する場所\u003c/h2\u003e\n\u003cp\u003eたぶん\u003ca href=\"/dic/value-object/\"\u003eValue Object\u003c/a\u003eがいいのかなぁと思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "Alpine",
    "url": "https://www.ikemo3.com/tags/alpine/",
    "contents": ""
  }, 
  {
    "title": "Docker: Alpine Linuxの使い方",
    "url": "https://www.ikemo3.com/inverted/docker/alpine/",
    "contents": "\u003ch2 id=\"公式リポジトリ\"\u003e公式リポジトリ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://hub.docker.com/_/alpine/\"\u003elibrary/alpine - Docker Hub\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eDockerでAlpine Linuxを使う場合の注意点について記載します。\u003c/p\u003e\n\u003ch2 id=\"コンパイル\"\u003eコンパイル\u003c/h2\u003e\n\u003cp\u003eコンパイルする時に開発ツールを入れる必要がありますが、\nこれは以下のようにすると管理しやすいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e参考: \u003ca href=\"https://blog.stormcat.io/post/entry/alpine-entry-apk/\"\u003ehttps://blog.stormcat.io/post/entry/alpine-entry-apk/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003eapk --update add --virtual build-dependencies パッケージ名のリスト\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--virtual build-dependencies\u003c/code\u003eというのは、インストールしたパッケージをバンドルする方法です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e何かをコンパイル\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eapk del build-dependencies\u003c/code\u003e で一括パッケージ削除\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"タイムゾーンの設定\"\u003eタイムゾーンの設定\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://wiki.alpinelinux.org/wiki/Setting_the_timezone\"\u003eSetting the timezone - Alpine Linux\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eapk add tzdata\ncp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime\napk del tzdata\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eただし、環境変数\u003ccode\u003eTZ\u003c/code\u003eがセットされていると、\n\u003ccode\u003etzdata\u003c/code\u003eパッケージは削除してはいけないようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://abrakatabura.hatenablog.com/entry/2017/07/16/081952\"\u003eDockerのAlpine Linuxでタイムゾーンでハマった - non vorrei lavorare\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Dockerでマウントしたファイルにアクセスできない",
    "url": "https://www.ikemo3.com/inverted/docker/cannot-access-mounted/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e-v\u003c/code\u003eオプションを使ってマウントしたボリュームがアクセスできない場合の対処方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003ch3 id=\"オーナーが異なる場合\"\u003eオーナーが異なる場合\u003c/h3\u003e\n\u003cp\u003e以下の記事のようにしてください。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://denibertovic.com/posts/handling-permissions-with-docker-volumes/\"\u003eDeni Bertovic :: Handling Permissions with Docker Volumes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eホストのUIDは\u003ccode\u003e$UID\u003c/code\u003eで取得できるので、\n\u003ccode\u003edocker run\u003c/code\u003eのときにホストと同じUIDを持つユーザを作成しています。\u003c/p\u003e\n\u003ch3 id=\"オーナーが合っているがアクセスできない場合\"\u003eオーナーが合っているが、アクセスできない場合\u003c/h3\u003e\n\u003cp\u003ePermissoin Deniedでアクセスできない場合は、\nホスト側にSELinuxの設定が入っている可能性が高いです。\u003c/p\u003e\n\u003cp\u003e以下の順に試してみてください。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-v\u003c/code\u003eのオプションに\u003ccode\u003e:z\u003c/code\u003eを付ける\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/shogogg/items/ad80d0fce28f1c07f71c\"\u003eDocker の volume でホストと共有したファイル（ディレクトリ）にコンテナからアクセスできないときは - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--cap-add SYS_ADMIN\u003c/code\u003e と \u003ccode\u003e--cap-add DAC-READ-SEARCH\u003c/code\u003e を付ける\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/moby/moby/issues/22197\"\u003emount.cifs within a container · Issue #22197 · moby/moby\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--privileged\u003c/code\u003e を付ける\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/muddydixon/items/d2982ab0846002bf3ea8\"\u003eDocker privileged オプションについて - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Slack: APIトークンを発行する方法",
    "url": "https://www.ikemo3.com/inverted/slack/create-api-token/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eSlackのAPIトークンを手作業で発行する方法です。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eアプリケーションを作る\u003c/li\u003e\n\u003cli\u003eRedirect URLとScopeを登録\u003c/li\u003e\n\u003cli\u003e認可コードを取得\u003c/li\u003e\n\u003cli\u003eアクセストークンを取得\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e3と4はDockerで簡単に動かせるものを作りました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ikemo3/oauth-client\"\u003eikemo3/oauth-client\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://api.slack.com/apps\"\u003ehttps://api.slack.com/apps\u003c/a\u003e に行く\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCreate New App\u003c/code\u003eを選択\u003c/li\u003e\n\u003cli\u003eアプリケーション名と開発用のWorkspaceを選択\u003c/li\u003e\n\u003cli\u003eApp CredentialsにあるClient IDとClient Secretを控えておく\u003c/li\u003e\n\u003cli\u003eOAuth 2.0の設定\n\u003col\u003e\n\u003cli\u003e左側の\u003ccode\u003eOAuth \u0026amp; Permissions\u003c/code\u003eを選択\u003c/li\u003e\n\u003cli\u003eRedirect URLを追加する。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehttp://localhost\u003c/code\u003e でも構わない。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSave URLs\u003c/code\u003eを押し忘れないこと。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eScopesから、必要なスコープを追加する。\n\u003cul\u003e\n\u003cli\u003eユーザとして投稿したい場合は、Send message as user(\u003ccode\u003echat:write:user\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSave Changes\u003c/code\u003eを押し忘れないこと。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"認可コードの取得\"\u003e認可コードの取得\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eOAuth 2.0の認可エンドポイントにアクセス\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://api.slack.com/docs/oauth\"\u003eUsing OAuth 2.0\u003c/a\u003eのStep 1のURLにアクセス\n\u003cul\u003e\n\u003cli\u003eclient_id, scope, redirect_uriが必須\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。scopeは複数指定した場合はスペース区切り\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003e認可を求める画面が出るので、「許可する」を押す。\u003c/li\u003e\n\u003cli\u003eredirect_uriにリダイレクトする。\n\u003cul\u003e\n\u003cli\u003e認可コード(パラメータ\u003ccode\u003ecode\u003c/code\u003e)を保存しておく。\u003c/li\u003e\n\u003cli\u003e後ろに\u003ccode\u003estate\u003c/code\u003eが付くが、これは不要。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"アクセストークンの取得\"\u003eアクセストークンの取得\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://api.slack.com/methods/oauth.access\"\u003eoauth.access\u003c/a\u003eにアクセス。\n\u003cul\u003e\n\u003cli\u003e必須パラメータ: \u003ccode\u003eclient_id\u003c/code\u003e, \u003ccode\u003eclient_secret\u003c/code\u003e, \u003ccode\u003ecode\u003c/code\u003e(認可コード)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eJSONで応答が返ってくる。\n\u003cul\u003e\n\u003cli\u003eJSON中の\u003ccode\u003eaccess_token\u003c/code\u003eの値がアクセストークン。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eredirect_uriはOptionalとなっているが、\u003ccode\u003eOAuth Error: redirect_uri did not match any configured URIs.\u003c/code\u003eとなって使えなかった(ので必須だと判断した)。クライアントの種類によって使えない?\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Samba",
    "url": "https://www.ikemo3.com/tags/samba/",
    "contents": ""
  }, 
  {
    "title": "コマンドでSambaサーバにアップロードする方法",
    "url": "https://www.ikemo3.com/inverted/samba/upload/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eコマンドでSambaサーバにアップロードする方法です。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esmbclient\u003c/code\u003eコマンドを使います。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e例えば、ゲストユーザで\u003ccode\u003e*.tar.gz\u003c/code\u003eファイルをアップロードするのは以下のようになります。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esmbclient -U \u0026#34;%\u0026#34; //接続先ホスト/フォルダ -c \u0026#39;cd パス; prompt off; mput *.tar.gz\u0026#39;\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n"
  }, 
  {
    "title": "AWS: CloudWatch LogsをEC2以外のLinuxサーバに入れる方法",
    "url": "https://www.ikemo3.com/inverted/cloudwatch/install-on-onpremise-server/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eオンプレミスのLinuxサーバにCloudWatch Logsの設定をする方法です。\n記事中ではオンプレミスとなっていますが、EC2以外のサーバが対象です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eCentOS 7で確認しています。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"ssmエージェントを入れる\"\u003eSSMエージェントを入れる\u003c/h3\u003e\n\u003cp\u003e以下の記事を参考にしてください。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dev.classmethod.jp/cloud/aws/ec2-systems-manager-on-premises/\"\u003eEC2 Systems Managerでオンプレ環境のサーバを管理する #reinvent ｜ Developers.IO\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこのサーバに入れるときは、registerに3分半ほどかかりました。\u003c/p\u003e\n\u003ch3 id=\"ロールを作成\"\u003eロールを作成\u003c/h3\u003e\n\u003cp\u003eロールはデフォルトで以下のポリシーが定義されています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eポリシー名: \u003ccode\u003eCloudWatchAgentServerPolicy\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eポリシーARN: \u003ccode\u003earn:aws:iam::aws:policy/CloudWatchAgentServerPolicy\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eしかし、これだけではSystems Managerへの書き込み権限がないので、\n書き込み権限を追加したポリシーを作成します。\u003c/p\u003e\n\u003cp\u003e以下の記事を参考にしました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/hayao_k/items/d983177510b3b3a69561#iam%E3%83%AD%E3%83%BC%E3%83%AB%E3%81%AE%E4%BD%9C%E6%88%90\"\u003e新しいCloudWatch AgentでEC2インスタンスのメモリ使用率を監視する - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-json\" data-lang=\"json\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;Version\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;2012-10-17\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;Statement\u0026#34;\u003c/span\u003e: [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#f92672\"\u003e\u0026#34;Sid\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;CloudWatchAgentAdminPolicy\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#f92672\"\u003e\u0026#34;Effect\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Allow\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#f92672\"\u003e\u0026#34;Action\u0026#34;\u003c/span\u003e: [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;logs:CreateLogStream\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;cloudwatch:PutMetricData\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;ec2:DescribeTags\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;logs:DescribeLogStreams\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;logs:CreateLogGroup\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;logs:PutLogEvents\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;ssm:GetParameter\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;ssm:PutParameter\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            ],\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#f92672\"\u003e\u0026#34;Resource\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;*\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"エージェントのインストール\"\u003eエージェントのインストール\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003e以下の方法で入力すると、カスタムメトリクスがたくさんできるので注意\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eIAMユーザを作成する。\u003c/li\u003e\n\u003cli\u003eエージェントをインストール(詳細は\u003ca href=\"https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-first-onprem.html\"\u003e開始方法: CloudWatch エージェントを最初のサーバーにインストールする - Amazon CloudWatch\u003c/a\u003e参照)\n\u003col\u003e\n\u003cli\u003ewgetでダウンロード\u003c/li\u003e\n\u003cli\u003eunzip\u003c/li\u003e\n\u003cli\u003einstall.shを流す\n\u003cul\u003e\n\u003cli\u003e何も表示されずに終了します。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e/opt/aws/amazon-cloudwatch-agent/\u003c/code\u003e 以下にインストールされます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ecommon-config.tomlを編集する箇所は通常不要です。\u003c/li\u003e\n\u003cli\u003e\u003cdel\u003e/.aws/configと\u003c/del\u003e/.aws/credentialsに以下のエントリがあるようにする。\n\u003cul\u003e\n\u003cli\u003eセクション: \u003ccode\u003e[AmazonCloudWatchAgent]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eキー: aws_access_key_id, aws_secret_access_key, region\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003e設定ファイルを作成(詳細は\u003ca href=\"https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file.html\"\u003eCloudWatch エージェント設定ファイルを作成する - Amazon CloudWatch\u003c/a\u003e参照)\n\u003col\u003e\n\u003cli\u003eamazon-cloudwatch-agent-config-wizardを実行\n\u003cul\u003e\n\u003cli\u003eOSを選ぶ: Linux/Windows\u003c/li\u003e\n\u003cli\u003eホストのタイプ: EC2/オンプレミス\u003c/li\u003e\n\u003cli\u003eCPUやメモリのモニタリングをするか?: はい/いいえ\u003c/li\u003e\n\u003cli\u003eコア単位のCPUモニタリングをするか?: はい/いいえ\u003c/li\u003e\n\u003cli\u003e計測単位は?: 1秒/10秒/30秒/60秒\u003c/li\u003e\n\u003cli\u003e設定は?: Basic/Standard/Advanced/None\n\u003cul\u003e\n\u003cli\u003eこれは意味が分かりませんでした。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e上の設定(JSONで出力される)で問題ないか?: はい/いいえ\u003c/li\u003e\n\u003cli\u003eCloudWatch Log Agentの設定ファイルがあるか?: はい/いいえ\n\u003cul\u003e\n\u003cli\u003e初回は「いいえ」になると思います。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e全てのログファイルをモニタリングするか?: はい/いいえ\u003c/li\u003e\n\u003cli\u003eログファイルのパス:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e/var/log\u003c/code\u003eで良さそう?\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eロググループ名\u003c/li\u003e\n\u003cli\u003e追加でモニタリングするログはあるか?\u003c/li\u003e\n\u003cli\u003e設定をSSMパラメータストアに入れるか?\u003c/li\u003e\n\u003cli\u003e設定をどのような名前でストアに入れるか?\n\u003cul\u003e\n\u003cli\u003e何でもいいようですが、\u003ccode\u003eAmazonCloudWatch-\u003c/code\u003eで始まる方が良さそうです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eパラメータストアを保存するリージョンは?\n\u003cul\u003e\n\u003cli\u003e東京リージョンなので\u003ccode\u003eap-northeast-1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAWSのアクセスキー\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"起動\"\u003e起動\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eEC2のSYSTEMS MANAGER 共有リソース -\u0026gt; マネージドインスタンス\u003c/li\u003e\n\u003cli\u003eコマンドを実行\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAmazonCloudWatch-ManageAgent\u003c/code\u003eを選択(下の方にある)\u003c/li\u003e\n\u003cli\u003eターゲットを選択\u003c/li\u003e\n\u003cli\u003eAction: configure\u003c/li\u003e\n\u003cli\u003eMode: onPremise\u003c/li\u003e\n\u003cli\u003eOptional Configuration Location: \u003ccode\u003eAmazonCloudWatch-\u003c/code\u003eから始まる設定したものを入れる。\u003c/li\u003e\n\u003cli\u003eRunを押す\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Amazon Machine Image(AMI)",
    "url": "https://www.ikemo3.com/dic/ami/",
    "contents": "\u003ch2 id=\"amazon-machine-imageamiとは\"\u003eAmazon Machine Image(AMI)とは\u003c/h2\u003e\n\u003cp\u003eマシンイメージです。\nVagrant Boxのような感じかなと。。。\u003c/p\u003e\n\u003ch2 id=\"分かったこと\"\u003e分かったこと\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAMIはスナップショットに紐づく。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"仮想化タイプ\"\u003e仮想化タイプ\u003c/h2\u003e\n\u003cp\u003e以下の2つがあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHVM\u003c/li\u003e\n\u003cli\u003ePV(paravirtual)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e基本的にはPVは古いタイプで、HVMを使用すれば問題なさそうです。\u003c/p\u003e\n"
  }, 
  {
    "title": "TaskChute",
    "url": "https://www.ikemo3.com/log/taskchute/",
    "contents": "\u003ch2 id=\"たすくまに乗り換える予定\"\u003eたすくまに乗り換える予定\u003c/h2\u003e\n\u003cp\u003eTaskChute Cloud使ってましたが、たすくまに乗り換える予定で動いてます。\u003c/p\u003e\n\u003cp\u003e理由\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e秒単位で計測してくれる\n\u003cul\u003e\n\u003cli\u003eちょうど分が変わるタイミングかどうかで1分差が出るのは辛い\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e並行作業が可能\n\u003cul\u003e\n\u003cli\u003eTaskChute Cloudは平行作業ができないので、「中断」になるのが辛い\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e中断のペナルティがない(かな?)\n\u003cul\u003e\n\u003cli\u003eTaskChute Cloudは中断すると見積もりの対象にならないのが辛い\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e通知がキツい\n\u003cul\u003e\n\u003cli\u003e「タイムアップ！」という通知が辛い。\u003c/li\u003e\n\u003cli\u003eたすくまは「終わりましたか?」という通知なので弱い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれは作者のポリシーの違いで、\n細かい作業を積み上げていくのには「たすくま」が向いていて、\nTaskChute Cloudは大きな(30分くらい)単位で区切るのが向いているかと。\u003c/p\u003e\n\u003ch2 id=\"モード\"\u003eモード\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e細かく分けすぎるとストレスになるので向かない。\u003c/li\u003e\n\u003cli\u003e第1領域〜第4領域という分け方はいいかもしれないが、今はストレスになるだけ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"思ったこと\"\u003e思ったこと\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://nokiba.hatenablog.jp/entry/2018/03/16/125035\"\u003eTodoistは私にとっては「ネタ帳」です - 佐々木正悟のライフハック心理学\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e「タスクリスト -\u0026gt; TaskChute」ではなく、「TaskChuteの枠 -\u0026gt; ネタ帳からやることを引っ張り出す」というイメージか。順番が逆になっている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "DockerでRubyを使う方法",
    "url": "https://www.ikemo3.com/inverted/docker/ruby/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eDocker上でRubyを使う方法です。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://hub.docker.com/_/ruby/\"\u003e公式のリポジトリ\u003c/a\u003eを使います。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下のようにしてください。\nLANGを設定しないと、US-ASCII以外が使えません。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Dockerfile\" data-lang=\"Dockerfile\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eFROM\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003eruby:2.5\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eENV\u003c/span\u003e LANG C.UTF-8\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"例\"\u003e例\u003c/h2\u003e\n\u003ch3 id=\"webrickによるwebサーバ\"\u003eWEBrickによるWebサーバ\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://qiita.com/niwasawa/items/9713adaa3e82b695bce7\"\u003eRuby 標準ライブラリの WEBrick で Web サーバを作る - Qiita\u003c/a\u003eを参考にしました。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e#!/usr/bin/ruby\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erequire \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;webrick\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erequire \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;cgi\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003es \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eWEBrick\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eHTTPServer\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003enew(\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#e6db74\"\u003e:Port\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u0026gt;\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e8000\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#e6db74\"\u003e:HTTPVersion\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u0026gt;\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eWEBrick\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eHTTPVersion\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003enew(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;1.1\u0026#39;\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003es\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003emount_proc(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;/\u0026#39;\u003c/span\u003e) \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003ereq, res\u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  res\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003estatus \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e200\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  res\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;Content-Type\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;text/plain\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  res\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003ebody \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eTime\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003enow\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eto_s\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eSignal\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003etrap(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;INT\u0026#39;\u003c/span\u003e){s\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eshutdown}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003es\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003estart\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Dockerfile\" data-lang=\"Dockerfile\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eFROM\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003eruby:2.5\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eCOPY\u003c/span\u003e now.rb /opt\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eEXPOSE\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e8000\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eCMD\u003c/span\u003e [\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;ruby\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;/opt/now.rb\u0026#34;\u003c/span\u003e]\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"備考\"\u003e備考\u003c/h2\u003e\n"
  }, 
  {
    "title": "Immutables",
    "url": "https://www.ikemo3.com/dic/immutables/",
    "contents": "\u003ch2 id=\"immutablesとは\"\u003eImmutablesとは\u003c/h2\u003e\n\u003cp\u003eValueObjectを作成するためのライブラリです。\u003c/p\u003e\n\u003ch2 id=\"他のソフトと比較して\"\u003e他のソフトと比較して\u003c/h2\u003e\n\u003cp\u003eまだ使い始める前段階ですが、他のソフトと比べるとこんな感じです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/auto/tree/master/value\"\u003eAutoValue\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eGoogleによるライブラリです。\u003c/li\u003e\n\u003cli\u003e継承嫌いなので、abstractは生理的に受け付けられないんですよね。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://projectlombok.org/\"\u003eLombok\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eこれも有名なライブラリですが、結構怪しいことやっているという話が。まあ試してないですが。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"自前で実装するのと比較して\"\u003e自前で実装するのと比較して\u003c/h2\u003e\n\u003cp\u003e簡単なValue Objectは自前で実装できるのですが、\n以下のようなものは定型的で、めんどくさいので、やってくれると嬉しいと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebuilder\u003c/li\u003e\n\u003cli\u003etoString, equals, hashCode\u003c/li\u003e\n\u003cli\u003ewith*メソッド\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "WebStorm",
    "url": "https://www.ikemo3.com/manual/webstorm/",
    "contents": "\u003cp\u003eJetBrains製品に共通する設定は\u003ca href=\"/manual/intellij-idea/\"\u003eIntelliJ IDEA\u003c/a\u003eに記載しています。\u003c/p\u003e\n\u003ch2 id=\"初期設定\"\u003e初期設定\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eSet UI theme: どちらでもよい\u003c/li\u003e\n\u003cli\u003eLauncher Script: どちらでもよい\n\u003cul\u003e\n\u003cli\u003e起動用スクリプトを作成する。あったほうが良い?\u003c/li\u003e\n\u003cli\u003eあとで設定するときは Tools | Create Command-Line Launcher\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFeatured pugins\n\u003cul\u003e\n\u003cli\u003eまだ分からんのでMarkdownのみオンにした。\u003c/li\u003e\n\u003cli\u003eあとで設定するときは Preferences | Plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"yeomaの設定\"\u003eYeomaの設定\u003c/h2\u003e\n\u003cp\u003eLanguages \u0026amp; Frameworks -\u0026gt; JavaScript -\u0026gt; Yeomanで出てくる\n\u003ccode\u003eYeoman yo package\u003c/code\u003eは、yoコマンドのパスではなく、パッケージのパスなのに注意。\n例えば\u003ccode\u003e/usr/local/lib/node_modules/yo\u003c/code\u003eのように入れる。\u003c/p\u003e\n"
  }, 
  {
    "title": "システム開発",
    "url": "https://www.ikemo3.com/dic/system-development/",
    "contents": "\u003ch2 id=\"システム開発とは\"\u003eシステム開発とは\u003c/h2\u003e\n\u003cp\u003e業務システムを作ること、あるいはそのような仕事です。\u003c/p\u003e\n\u003ch2 id=\"優先順位\"\u003e優先順位\u003c/h2\u003e\n\u003cp\u003e動くことは最優先ですが、よりよいシステムを作るには、\n以下の優先順位がいいかなと考えています。\n他にあるかも。。。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e運用しやすさ\u003c/li\u003e\n\u003cli\u003e開発しやすさ\u003c/li\u003e\n\u003cli\u003e実行速度\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e運用しづらいシステムを作ると、後々で苦労します。\n自分は開発だけでなく運用もやってるので、この苦労はよく分かります(ヽ´ω`)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://codeiq.jp/magazine/category/investment/\"\u003e【連載】運用☆ちゃん｜CodeIQ MAGAZINE\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eあと、「実行速度」の優先順位が低いのは、\u003ca href=\"/dic/premature-optimization-is-the-root-of-all-evil/\"\u003e早すぎる最適化は諸悪の根源\u003c/a\u003eという格言があるくらいです。\u003c/p\u003e\n"
  }, 
  {
    "title": "ERB",
    "url": "https://www.ikemo3.com/manual/erb/",
    "contents": "\u003ch2 id=\"使い方\"\u003e使い方\u003c/h2\u003e\n\u003cp\u003e例えば、以下のようにする。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erequire \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;erb\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eSettings\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eget_binding\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    binding\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eERB\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003enew(template, \u003cspan style=\"color:#66d9ef\"\u003enil\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;-\u0026#39;\u003c/span\u003e)\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003erun(\u003cspan style=\"color:#66d9ef\"\u003eSettings\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003enew\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eget_binding)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cul\u003e\n\u003cli\u003etemplate: テンプレート文字列(ファイルなどから取得)\u003c/li\u003e\n\u003cli\u003ebinding: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Kernel.html#M_BINDING\"\u003eKernel#binding\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eバインディングが未指定のときは\u003ca href=\"https://docs.ruby-lang.org/ja/latest/method/Object/c/TOPLEVEL_BINDING.html\"\u003eTOPLEVEL_BINDING\u003c/a\u003eが使われますが、オブジェクトを指定したほうが良さそうな感じです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Gradle",
    "url": "https://www.ikemo3.com/tags/gradle/",
    "contents": ""
  }, 
  {
    "title": "Gradle Wrapperの更新",
    "url": "https://www.ikemo3.com/inverted/gradle/update-wrapper/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/current/userguide/gradle_wrapper.html\"\u003eGradle Wrapper\u003c/a\u003eを更新する。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003ch2 id=\"手順gradle-wrapperが起動しない状態\"\u003e手順(Gradle Wrapperが起動しない状態)\u003c/h2\u003e\n\u003cp\u003e例えばJava 9にしたときに、古いGradleが起動しない場合。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003egradle/wrapper/gradle-wrapper.properties\u003c/code\u003e を開き、distributionUrlを更新\n\u003cul\u003e\n\u003cli\u003e最新バージョンは\u003ca href=\"https://gradle.org/install/\"\u003eInstall\u003c/a\u003e参照。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e./gradlew wrapper\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egradle/wrapper/gradle-wrapper.jar\u003c/code\u003e が更新される。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e参考: \u003ca href=\"https://qiita.com/Kaoru_Yamamoto/items/dcb3815795d6e752cff3\"\u003eJava 9でGradleのエラー「Could not determine java version from \u0026lsquo;9.0.1\u0026rsquo;.」が出るときの対処方法 - Qiita\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"手順それ以外\"\u003e手順(それ以外)\u003c/h2\u003e\n\u003cp\u003e以下の通りにする。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://qiita.com/nobuoka/items/09cbdcd4716b930abdc4\"\u003eGradle wrapper のバージョン更新についてのメモ - Qiita\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n"
  }, 
  {
    "title": "IntelliJ IDEAでAnnotation Processorsを使用する方法",
    "url": "https://www.ikemo3.com/inverted/intellij-idea/use-annotation-processor/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eIntelliJ IDEAで、Annotation Processors(注釈プロセッサ, アノテーションプロセッサ)を使用する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eIntelliJ IDEA 2017.3.5で確認しています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eModule content root\u003c/code\u003eを設定する。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esrc/main/generated\u003c/code\u003eに生成されたコードが入ります。\u003c/li\u003e\n\u003cli\u003eこのファイルはリポジトリ管理外にします。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eIntelliJ IDEAの設定で、この生成されたコードをソースフォルダとして管理する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e依存ライブラリを追加\u003c/li\u003e\n\u003cli\u003eAnnotaion Processorsの設定\n\u003cul\u003e\n\u003cli\u003ePreferences -\u0026gt; Build, Execution, Deployment -\u0026gt; Compiler -\u0026gt; Annotation Processorsの設定\u003c/li\u003e\n\u003cli\u003eEnable annotation processing: オン\u003c/li\u003e\n\u003cli\u003eStore generated source relative to: \u003ccode\u003eModule content root\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eソースフォルダの設定\n\u003cul\u003e\n\u003cli\u003eGradleの場合は後述。\n\u003cul\u003e\n\u003cli\u003e右クリック -\u0026gt; Open Module Settings\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e*_main\u003c/code\u003e に \u003ccode\u003esrc/main/generated\u003c/code\u003eをSourcesとして追加\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e*_test\u003c/code\u003e に \u003ccode\u003esrc/test/generated_test\u003c/code\u003eをTestsとして追加\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBuild -\u0026gt; Rebuild Project\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e3.の作業はGraldeの場合は、build.gradleに以下のように入れてください。\u003c/p\u003e\n\u003cp\u003e参考: \u003ca href=\"https://youtrack.jetbrains.com/issue/IDEA-150042\"\u003esources generated by annotation processing should be marked as such automatically : IDEA-150042\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-groovy\" data-lang=\"groovy\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eapply plugin: \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;idea\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// dependenciesの後くらい。\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eidea \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    module \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        sourceDirs \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e file\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;src/main/generated\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        generatedSourceDirs \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e file\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;src/main/generated\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        testSourceDirs \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e file\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;src/test/generated_tests\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"クラスが重複していますと出る場合\"\u003eクラス〜〜が重複していますと出る場合\u003c/h3\u003e\n\u003cp\u003e過去にいろいろいじった場合で、同じファイルが複数の場所に格納されていると思われます。\n以下のチェックを行ってください。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e不要なJavaファイルがないか\u003c/li\u003e\n\u003cli\u003e不要なクラスパスがないか\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"output-path-intersects-with-source-rootという警告が出る場合\"\u003eOutput path intersects with source root.という警告が出る場合\u003c/h3\u003e\n\u003cp\u003eModulesの設定で、Exclude Foldersの下にSource Foldersを指定すると起きるようです。\n自動生成するものに関してはクリアされても問題ないと思います。\u003c/p\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n\u003cp\u003e現在は \u003ccode\u003eannotationProcessor\u003c/code\u003e に書いたライブラリは無視されるようです。\nこれを回避するためには、以下のようにすると良さそうです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-groovy\" data-lang=\"groovy\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eidea \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    dependencies \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        compile \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;...\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e// annotationProcessorと同じ内容を書く\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/IDEA-187868\"\u003eSupport annotationProcessor scope of Gradle 4.6 : IDEA-187868\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "macOS: リモートデスクトップで英語キーボードになる問題の修正",
    "url": "https://www.ikemo3.com/inverted/macos/remote-desktop-keyboard/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003emacOSからWindowsにリモートデスクトップ接続する時に、\n英語キーボードになってしまう問題の修正です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://qiita.com/hidecha/items/33624f6ae57d41f3cd86\"\u003eMac からのRDP 接続で日本語キーボードを設定する - Qiita\u003c/a\u003eに書かれている方法で解決しました。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eParallels Clientをインストール\u003c/li\u003e\n\u003cli\u003eリモートのWindowsをログアウト\n\u003cul\u003e\n\u003cli\u003eログインしたままだと、前の設定が引き継がれるため\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eParallels Clientを起動\u003c/li\u003e\n\u003cli\u003e日本語モードに切り替え\u003c/li\u003e\n\u003cli\u003eParallels Clientでリモート接続\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"かなキー英数キーによる日本語切り替えgoogle日本語入力\"\u003eかなキー・英数キーによる日本語切り替え(Google日本語入力)\u003c/h3\u003e\n\u003cp\u003e以下の設定を入れてください。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e右クリック→プロパティ\u003c/li\u003e\n\u003cli\u003eキー設定の選択→編集\u003c/li\u003e\n\u003cli\u003e入力文字なし→Eisu(英数)→IMEを無効化\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n"
  }, 
  {
    "title": "Rubymine",
    "url": "https://www.ikemo3.com/tags/rubymine/",
    "contents": ""
  }, 
  {
    "title": "RubyMine: 初期設定",
    "url": "https://www.ikemo3.com/inverted/rubymine/initial/",
    "contents": "\u003ch2 id=\"初期設定\"\u003e初期設定\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eSet UI theme: どちらでもよいが、Darculaにした。\n\u003cul\u003e\n\u003cli\u003eあとで変える場合は Preferences | Appearance \u0026amp; Behavior | Appearance\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eKeymaps: Default(recommended)にした。\n\u003cul\u003e\n\u003cli\u003eあとで変える場合は Preferences | Keymap\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault Plugins\n\u003cul\u003e\n\u003cli\u003eVersion Control Systems: CVS, Mercurial, Perforceをオフ\u003c/li\u003e\n\u003cli\u003eWeb Development: とりあえずそのまま\u003c/li\u003e\n\u003cli\u003eConfiguration Management and Virtualization: Puppetをオフ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDownload featured plugins: 一旦は何も入れない\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"設定\"\u003e設定\u003c/h2\u003e\n\u003ch3 id=\"editor\"\u003eEditor\u003c/h3\u003e\n\u003ch4 id=\"spelling\"\u003eSpelling\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAccepted Words\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eansible\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eminitest\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"version-control\"\u003eVersion Control\u003c/h3\u003e\n\u003ch4 id=\"confirmation\"\u003eConfirmation\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWhen files are created: Do not add\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Immutables",
    "url": "https://www.ikemo3.com/manual/immutables/",
    "contents": "\u003ch2 id=\"設定\"\u003e設定\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/inverted/intellij-idea/use-annotation-processor/\"\u003eIntelliJ IDEAでAnnotation Processorsを使用する方法\u003c/a\u003e参照。\u003c/p\u003e\n\u003cp\u003ebuild.gradleには以下の設定を入れてください。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-groovy\" data-lang=\"groovy\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edependencies \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    compileOnly \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;org.immutables:value:2.5.6\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e以下の方が正しいらしいですが、IntelliJ IDEAでうまく解釈できませんでした。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-groovy\" data-lang=\"groovy\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edependencies \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    annotationProcessor \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;org.immutables:value-processor:2.5.6\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    compile \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;org.immutables:value:2.5.6:annotations\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"使い方\"\u003e使い方\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eabstractクラスまたはinterfaceに\u003ccode\u003e@Value.Immutable\u003c/code\u003e(org.immutables.value.Value)を付ける\u003c/li\u003e\n\u003cli\u003egetterを定義する\n\u003cul\u003e\n\u003cli\u003eインタフェースの場合、\u003ccode\u003edefault\u003c/code\u003eメソッドは何も影響ありません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAnnotation Processorを実行する。ValueObjectを自動生成する。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"作成されたクラスについて\"\u003e作成されたクラスについて\u003c/h2\u003e\n\u003cp\u003eデフォルトでは以下のようになります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eクラス名: \u003ccode\u003eImmutable\u003c/code\u003e + 「元のクラス名」\u003c/li\u003e\n\u003cli\u003eコンストラクタはprivate\u003c/li\u003e\n\u003cli\u003eインスタンスメソッド\n\u003cul\u003e\n\u003cli\u003egetter\u003c/li\u003e\n\u003cli\u003ewith + getterで、元のValueObjectから新しいValueObjectを作る\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eObjectで定義されているメソッド\n\u003cul\u003e\n\u003cli\u003eequals: 自動生成。それぞれのフィールドが同じ場合にtrue\u003c/li\u003e\n\u003cli\u003ehashCode: 自動生成\u003c/li\u003e\n\u003cli\u003etoString: 自動生成\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003estaticメソッド\n\u003cul\u003e\n\u003cli\u003ecopyOf: 元のオブジェクトをコピー\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ebuilder\n\u003cul\u003e\n\u003cli\u003eImmutableXXX.builder()でビルダを返す\u003c/li\u003e\n\u003cli\u003efrom: 別のインスタンスを起点\u003c/li\u003e\n\u003cli\u003esetter\u003c/li\u003e\n\u003cli\u003ebuild()\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Builderパターン",
    "url": "https://www.ikemo3.com/dic/builder/",
    "contents": "\u003ch2 id=\"builderとは\"\u003eBuilderとは\u003c/h2\u003e\n\u003cp\u003e生成パターンの1つです。\u003c/p\u003e\n\u003ch2 id=\"特徴\"\u003e特徴\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e可変\n\u003cul\u003e\n\u003cli\u003eだいたいは不変の方がいいですが、可変である珍しい例です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/fluent-interface/\"\u003e流れるようなインタフェース\u003c/a\u003eで実装されることが多い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"代表的なクラス\"\u003e代表的なクラス\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDate and Time API: \u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/format/DateTimeFormatterBuilder.html\"\u003eDateTimeFormatterBuilder\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/lang/StringBuilder.html\"\u003eStringBuilder\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/dbsetup/\"\u003eDbSetup\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e実際は\u003ca href=\"http://dbsetup.ninja-squad.com/apidoc/2.1.0/com/ninja_squad/dbsetup/Operations.html\"\u003eOperations\u003c/a\u003eのstaticメソッド経由で使います。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://dbsetup.ninja-squad.com/apidoc/2.1.0/com/ninja_squad/dbsetup/operation/Insert.Builder.html\"\u003eInsert.Builder\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e[OkHttp][]\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://square.github.io/okhttp/3.x/okhttp/okhttp3/HttpUrl.Builder.html\"\u003eHttpUrl.Builder\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/moshi/\"\u003eMoshi\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://square.github.io/moshi/1.x/moshi/com/squareup/moshi/Moshi.Builder.html\"\u003eMoshi.Builder\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Ddd",
    "url": "https://www.ikemo3.com/tags/ddd/",
    "contents": ""
  }, 
  {
    "title": "JUnit",
    "url": "https://www.ikemo3.com/manual/junit/",
    "contents": "\u003ch2 id=\"構成\"\u003e構成\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eパッケージ: 原則として、テストしたいクラスと同じパッケージにする。\n\u003cul\u003e\n\u003cli\u003eパッケージプライベートが使えるため。公開しない内部APIをテストする時に便利。\u003c/li\u003e\n\u003cli\u003e望ましくないが、レガシーコードで、内部状態をテストしたい場合も便利。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eクラス名: 最後に\u003ccode\u003eTest\u003c/code\u003eを付ける(例: FooクラスのテストはFooTest)\n\u003cul\u003e\n\u003cli\u003e細かく分ける場合: \u003ccode\u003eFoo_\u0026lt;メソッド名 or テストの詳細\u0026gt;Test\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eJUnitのネストはどうも好きじゃない。Eclipse + Quick JUnitでうまく扱えなかった。\u003c/li\u003e\n\u003cli\u003eただ、JUnit5のNestedではstaticでなくなったようで、ネストする方式に変えるかも。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://junit.org/junit5/docs/current/user-guide/#writing-tests-nested\"\u003ehttps://junit.org/junit5/docs/current/user-guide/#writing-tests-nested\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eメソッド名: 日本語名も許容\n\u003cul\u003e\n\u003cli\u003eただし、JUnit 5では表示名が別途設定できるので不要か。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"junit-4\"\u003eJUnit 4\u003c/h2\u003e\n\u003ch3 id=\"一時フォルダ\"\u003e一時フォルダ\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/junit-team/junit4/wiki/rules#temporaryfolder-rule\"\u003eTemporaryFolder Rule\u003c/a\u003e\u003c/p\u003e\n"
  }, 
  {
    "title": "SMTP",
    "url": "https://www.ikemo3.com/dic/smtp/",
    "contents": "\u003ch2 id=\"smtpとは\"\u003eSMTPとは\u003c/h2\u003e\n\u003cp\u003eメール送信のためのプロトコルです。\u003c/p\u003e\n\u003ch2 id=\"ポート番号\"\u003eポート番号\u003c/h2\u003e\n\u003cp\u003e以下の3つが使われています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e25: 旧来からのSMTP通信。暗号化、認証なし。\n\u003cul\u003e\n\u003cli\u003espam, 盗聴などの問題があるため、今は社内など閉じた環境のみ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e467: Message Submission over TLS\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\n\u003cul\u003e\n\u003cli\u003e暗号化するかどうかをSTARTTLSオプションで指定対応。\u003c/li\u003e\n\u003cli\u003eSTARTTLSが安全に行われる保証がないため、安全性は劣る。STARTTLSが失敗した時は後続の作業を行わないなら問題ないか?\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e587: Message Submission(\u003ca href=\"https://www.ietf.org/rfc/rfc4409.txt\"\u003eRFC 4409\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eSMTP over SSL。安全性が高い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt\"\u003ehttps://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "トラブルシューティング",
    "url": "https://www.ikemo3.com/dic/troubleshooting/",
    "contents": "\u003ch2 id=\"トラブルシューティングとは\"\u003eトラブルシューティングとは\u003c/h2\u003e\n\u003cp\u003e問題の解決するための手法です。\u003c/p\u003e\n\u003ch2 id=\"心構え\"\u003e心構え\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e「分からない」問題はほとんどない。\n\u003cul\u003e\n\u003cli\u003e「分からない」問題のほとんどはただの情報不足。\u003c/li\u003e\n\u003cli\u003e逆に言えば、情報不足で分からない場合は諦めも肝心。\n\u003cul\u003e\n\u003cli\u003eその場合でも単に「再現待ち」ではなく、ログを入れるなどの改善は行う。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e自分が間違っていると思え。\n\u003cul\u003e\n\u003cli\u003eOSSの品質は基本的には高い。ただし、メジャーリリース直後はバグが出ることも多い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e「正しいこと」を知る。\n\u003cul\u003e\n\u003cli\u003eWeb標準を最も忠実に実装しているのはMozilla Firefox\n\u003cul\u003e\n\u003cli\u003eWebKit系が悪いわけではないですが、IEは間違っていることが多い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eセキュリティを理解する。\n\u003cul\u003e\n\u003cli\u003e例: サードパーティCookie\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e緊急度を見極める\n\u003cul\u003e\n\u003cli\u003e基本は「すぐ」「今日中」「明日」のどれか(\u003ca href=\"/dic/do-it-tomorrow/\"\u003eマニャーナの法則\u003c/a\u003e。\u003c/li\u003e\n\u003cli\u003e「すぐ」対応しないといけないものでも、作業の区切りが待てないほど緊急なものはほとんどない。\u003c/li\u003e\n\u003cli\u003e本当に「すぐ」対応しないといけないなら、事前に通知されているべき。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eメモを取る\n\u003cul\u003e\n\u003cli\u003e作業した内容、見つけたログ、打ち込んだコマンドをメモに取る。\u003c/li\u003e\n\u003cli\u003eログは「そのまま」記録する。\u003c/li\u003e\n\u003cli\u003e実行してからメモを取るのではなく、メモを取ってから実行する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"基本\"\u003e基本\u003c/h2\u003e\n\u003cp\u003eトラブルシューティングの基本は以下の点です。\n(少しずつ書いていきます)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e正確な情報\u003c/li\u003e\n\u003cli\u003e再現性\u003c/li\u003e\n\u003cli\u003e問題の切り分け\u003c/li\u003e\n\u003cli\u003e仮説を立てる\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"正確な情報\"\u003e正確な情報\u003c/h3\u003e\n\u003cp\u003eエラーメッセージやログなど、正確な情報が必須です。\u003c/p\u003e\n\u003cp\u003eここで注意すべきことは、\n\u003cstrong\u003e相手の言うことを鵜呑みにしない\u003c/strong\u003eということです。\nよく言われるのが「何もしてないのに壊れた」ですが、もちろんそれはまずあり得ません。\n何もしてないのに突然電源が落ちたとかはありますが。\n聞き取り調査は重要です。\u003c/p\u003e\n\u003cp\u003eまた、「何が出ているか」だけではなく、「何がでていないか」が重要な情報になることがあります。\n例えば、出るはずのログが出ていない、作成されるはずのファイルが作成されていないなど。\u003c/p\u003e\n\u003ch3 id=\"再現性\"\u003e再現性\u003c/h3\u003e\n\u003cp\u003e100%が基本です。\n再現できないまま闇雲にあたりをつけていっても、\nだいたいは無駄に時間を使ってしまいます。\u003c/p\u003e\n\u003ch3 id=\"問題の切り分け\"\u003e問題の切り分け\u003c/h3\u003e\n\u003cp\u003e確率の高い、よく発生する問題から進めるのは常套手段ですが、\n難しい問題の場合は闇雲に進めるのではなく、\n問題を切り分けるのが重要です。\u003c/p\u003e\n\u003ch4 id=\"考慮すべき点\"\u003e考慮すべき点\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e環境による違いはあるか\u003c/li\u003e\n\u003cli\u003eどのレイヤで問題が出ているのか\n\u003cul\u003e\n\u003cli\u003eWebの場合はフロントエンド・サーバサイドのどちらか\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e他のデータやソフトの場合はどうか\n\u003cul\u003e\n\u003cli\u003eWebならブラウザを変えてみる、フォームなら送信するデータを変える、など\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"過去にあったトラブル\"\u003e過去にあったトラブル\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCookieが送信されていなかった\n\u003cul\u003e\n\u003cli\u003eCookieの保存、送信の切り分けをしたところ、実は保存されていなかった。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"仮説を立てる\"\u003e仮説を立てる\u003c/h3\u003e\n\u003cp\u003eある程度情報が集まったら、仮説を立てます。\n「こういう操作でこういうデータを入れたら落ちる」のような感じで。\n仮説を立てたら、以下の2点を確認します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eその仮説のとおりにすれば再現できるか\u003c/li\u003e\n\u003cli\u003eその仮説と矛盾する情報はないか\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"再現するための情報を最小化\"\u003e再現するための情報を最小化\u003c/h3\u003e\n\u003cp\u003e例えば、あるテキストでプログラムがおかしくなるとします。\nしかし、そのテキストをそのまま解析のために使うのではなく、\n最小のデータを洗い出します。\u003c/p\u003e\n\u003cp\u003e特定の文字が保存できない場合は、1文字まで、\nサイズが大きいと保存できない場合は、その境界値を探すのが重要です。\nまあ、再現性がはっきりすれば原因が分かる場合も多いので、\nここは必要に応じてです。\u003c/p\u003e\n\u003ch3 id=\"情報を検索\"\u003e情報を検索\u003c/h3\u003e\n\u003cp\u003e公式情報が確実です。\nそれ以外でも、出てきたエラーログなどをググってください。\n出てきたサイトが英語でも、Google翻訳などを使って読んでください。\n(読もうと努力してください)\u003c/p\u003e\n"
  }, 
  {
    "title": "Bundler",
    "url": "https://www.ikemo3.com/manual/bundler/",
    "contents": "\u003ch2 id=\"設定\"\u003e設定\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://bundler.io/v1.16/bundle_config.html\"\u003eBundler: bundle config\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e毎回 \u003ccode\u003e--path vendor/bundle\u003c/code\u003e を指定しないようにする方法\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebundle config path vendor/bundle\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"gemfile\"\u003eGemfile\u003c/h2\u003e\n\u003cp\u003e例えば、kramdownを使った簡単なGemfileは以下のように書きます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esource \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;https://rubygems.org\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egem \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;kramdown\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eグローバルにインストール\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebundler install\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e特定のパスにインストール\n\u003cul\u003e\n\u003cli\u003e例: \u003ccode\u003ebundler install --path vendor/bundle\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eこの場合、\u003ccode\u003e.bundle/config\u003c/code\u003eにパスが書き込まれます。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.bundle/config\u003c/code\u003e および \u003ccode\u003evendor/bundle\u003c/code\u003e は \u003ccode\u003e.gitignore\u003c/code\u003e で除外してください\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ccode\u003ebundle install\u003c/code\u003e を実行するとGemfile.lockというファイルができますが、\nこちらはリポジトリでの管理対象です。\u003c/p\u003e\n\u003ch2 id=\"使い方\"\u003e使い方\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://bundler.io/v1.16/guides/bundler_setup.html\"\u003eBundler: How to use Bundler with Ruby\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erequire \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;rubygems\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erequire \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;bundler/setup\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 以下通常通りにrequireする\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ccode\u003egibo dump Ruby\u003c/code\u003eに含まれています。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Debian GNU/Linux",
    "url": "https://www.ikemo3.com/manual/debian/",
    "contents": "\u003ch2 id=\"パッケージ関連\"\u003eパッケージ関連\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e概要表示: \u003ccode\u003edpkg -s パッケージ名\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eパッケージのリスト: \u003ccode\u003edpkg -l\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eパッケージに含まれているファイルのリスト: \u003ccode\u003edpkg -L パッケージ名\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eファイルが含まれているパッケージ: \u003ccode\u003edpkg -S パス\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"主なパッケージ\"\u003e主なパッケージ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://packages.debian.org/stable/devel/binutils\"\u003ebinutils\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.gnu.org/software/binutils/\"\u003eGNU Binutils\u003c/a\u003eのパッケージ。\u003c/li\u003e\n\u003cli\u003estringsコマンドをよく使う。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Rubygems",
    "url": "https://www.ikemo3.com/tags/rubygems/",
    "contents": ""
  }, 
  {
    "title": "Vagrant: ホストOSのhostsファイルを書き換える",
    "url": "https://www.ikemo3.com/inverted/vagrant/modify-host-hosts/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eホストOSのhostsファイル(LinuxやmacOSでは/etc/hosts)を\nVagrantのVMに合わせて書き換える方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/cogitatio/vagrant-hostsupdater\"\u003evagrant-hostsupdater\u003c/a\u003eを使います。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eプラグインを入れる\u003c/li\u003e\n\u003cli\u003e以下の設定を入れる。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econfig.vm.network\u003c/code\u003eに\u003ccode\u003e:private_network\u003c/code\u003eを入れる\u003c/li\u003e\n\u003cli\u003e固定IPアドレスをセット\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n\u003cp\u003eDHCPは未対応です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/cogitatio/vagrant-hostsupdater/issues/56\"\u003eDHCP / Dynamic IP · Issue #56 · cogitatio/vagrant-hostsupdater\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "三浦弘行",
    "url": "https://www.ikemo3.com/dic/hiroyuki-miura/",
    "contents": "\u003ch2 id=\"銀河戦のノータイム指し\"\u003e銀河戦のノータイム指し\u003c/h2\u003e\n\u003cp\u003e三浦九段と言えばストイックなイメージを持っているのですが、\n自分の中で印象的だったのが、2005年頃の銀河戦の対局でした。\u003c/p\u003e\n\u003cp\u003eなんで印象的だったのかというと、\nほぼノータイムで指して勝ってしまったからです。\u003c/p\u003e\n\u003cp\u003e銀河戦はNHK杯と同様に持ち時間が短いので、\n時間を節約するために、ノータイムで指すのは分かります。\nでも、中盤の勝負どころでもノータイムでした。\u003c/p\u003e\n\u003cp\u003eびっくりしましたが、何でそんなことができるのかは分かります。\n全て「研究手」だったからです。\n三浦九段が研究家なのは知ってたのですが、ここまでやるのかと思った対局でした。\u003c/p\u003e\n\u003ch2 id=\"a級残留力\"\u003eA級残留力\u003c/h2\u003e\n\u003cp\u003e三浦九段2017年度終了現在、\nA級在籍が17期で、降級したのはただ1回のみです。\nその中でも、運良く残留するケースが多いです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E4%B8%89%E6%B5%A6%E5%BC%98%E8%A1%8C#A%E7%B4%9A%E9%A0%86%E4%BD%8D%E6%88%A6%E7%AD%89%E3%81%AB%E3%81%BE%E3%81%A4%E3%82%8F%E3%82%8B%E5%B9%B8%E9%81%8B%E3%83%BB%E6%88%A6%E7%B8%BE\"\u003eA級順位戦等にまつわる幸運・戦績\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"17歳年下の女性と結婚\"\u003e17歳年下の女性と結婚\u003c/h2\u003e\n\u003cp\u003eもう一つ衝撃的だったのは、17歳年下の女性と結婚していたことです。\nすみません、正直結婚とは縁が遠いと思っていました(自分もそうですが)。。。\u003c/p\u003e\n"
  }, 
  {
    "title": "Maven",
    "url": "https://www.ikemo3.com/tags/maven/",
    "contents": ""
  }, 
  {
    "title": "MavenのAssemblyプラグインの使い方",
    "url": "https://www.ikemo3.com/inverted/maven/assembly/",
    "contents": "\u003ch2 id=\"実行可能jarファイルを作る方法\"\u003e実行可能JARファイルを作る方法\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://maven.apache.org/plugins/maven-assembly-plugin/usage.html\"\u003eUsage\u003c/a\u003eの\u0026quot;Execution: Building an Assembly\u0026quot; および\n\u0026ldquo;Creating an Executable JAR\u0026quot;を参照。具体的には以下のものが必要。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emainClass\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ejar-with-dependencies\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eexecution\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "自転車",
    "url": "https://www.ikemo3.com/dic/bicycle/",
    "contents": "\u003ch2 id=\"自転車とは\"\u003e自転車とは\u003c/h2\u003e\n\u003cp\u003e車輪が2つ付いた乗り物です。\u003c/p\u003e\n\u003ch2 id=\"法律での扱い\"\u003e法律での扱い\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://elaws.e-gov.go.jp/search/elawsSearch/elaws_search/lsg0500/detail?lawId=335AC0000000105\"\u003e道路交通法\u003c/a\u003eによれば、主に以下のような条文が該当します。\u003c/p\u003e\n\u003cp\u003e第2条8\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e車両　自動車、原動機付自転車、軽車両及びトロリーバスをいう。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e第2条11\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e軽車両　自転車、荷車その他人若しくは動物の力により、又は他の車両に牽けん引され、かつ、レールによらないで運転する車（そり及び牛馬を含む。）であつて、身体障害者用の車いす、歩行補助車等及び小児用の車以外のものをいう。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e第17条\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e第十七条の二　軽車両は、前条第一項の規定にかかわらず、著しく歩行者の通行を妨げることとなる場合を除き、道路の左側部分に設けられた路側帯（軽車両の通行を禁止することを表示する道路標示によつて区画されたものを除く。）を通行することができる。\n２　前項の場合において、軽車両は、歩行者の通行を妨げないような速度と方法で進行しなければならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e第18条\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e車両（トロリーバスを除く。）は、車両通行帯の設けられた道路を通行する場合を除き、自動車及び原動機付自転車にあつては道路の左側に寄つて、軽車両にあつては道路の左側端に寄つて、それぞれ当該道路を通行しなければならない。ただし、追越しをするとき、第二十五条第二項若しくは第三十四条第二項若しくは第四項の規定により道路の中央若しくは右側端に寄るとき、又は道路の状況その他の事情によりやむを得ないときは、この限りでない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e第19条\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e第十九条　軽車両は、軽車両が並進することとなる場合においては、他の軽車両と並進してはならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e第63条の4\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e第六十三条の四　普通自転車は、次に掲げるときは、第十七条第一項の規定にかかわらず、歩道を通行することができる。ただし、警察官等が歩行者の安全を確保するため必要があると認めて当該歩道を通行してはならない旨を指示したときは、この限りでない。\n一　道路標識等により普通自転車が当該歩道を通行することができることとされているとき。\n二　当該普通自転車の運転者が、児童、幼児その他の普通自転車により車道を通行することが危険であると認められるものとして政令で定める者であるとき。\n三　前二号に掲げるもののほか、車道又は交通の状況に照らして当該普通自転車の通行の安全を確保するため当該普通自転車が歩道を通行することがやむを得ないと認められるとき。\n２　前項の場合において、普通自転車は、当該歩道の中央から車道寄りの部分（道路標識等により普通自転車が通行すべき部分として指定された部分（以下この項において「普通自転車通行指定部分」という。）があるときは、当該普通自転車通行指定部分）を徐行しなければならず、また、普通自転車の進行が歩行者の通行を妨げることとなるときは、一時停止しなければならない。ただし、普通自転車通行指定部分については、当該普通自転車通行指定部分を通行し、又は通行しようとする歩行者がないときは、歩道の状況に応じた安全な速度と方法で進行することができる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"自転車は徐行が原則\"\u003e自転車は徐行が原則\u003c/h2\u003e\n\u003cp\u003e自転車は車道が原則と言われますが、これが有害無益です。\nなぜなら、第63条の4の以下の条文が理由です。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e車道又は交通の状況に照らして当該普通自転車の通行の安全を確保するため当該普通自転車が歩道を通行することがやむを得ないと認められるとき\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e自転車乗りからすると、車道は危なすぎてほとんど通れません。\n体感的に車道を通って安全なケースは1割未満で、\nそのほとんどは歩道がなく、路側帯があるケースがほとんどです。\u003c/p\u003e\n\u003cp\u003eじゃあどうすればいいかというと、「車道が原則」という看板を下げて、\n「徐行を原則」という看板を立てるべきです。\n実際、自転車を使う一番の理由は「楽だから」であって、\nスピードを出すために乗るものではありません。\u003c/p\u003e\n"
  }, 
  {
    "title": "Moshi",
    "url": "https://www.ikemo3.com/dic/moshi/",
    "contents": "\u003ch2 id=\"moshiとは\"\u003eMoshiとは\u003c/h2\u003e\n\u003cp\u003eJavaのJSONライブラリです。\u003c/p\u003e\n\u003ch2 id=\"設計思想が好き\"\u003e設計思想が好き\u003c/h2\u003e\n\u003cp\u003eJavaでJSONを扱うライブラリとしてはJacksonやGsonが有名ですが、\n以下の点が自分好みで、最近使ってます。\u003c/p\u003e\n\u003cp\u003eその理由は、JSONにマップするオブジェクトが綺麗に保てるからです。\nPOJOでないといけないとか、このアノテーションを使わないといけない\nという約束事がほとんどないからです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Moshi",
    "url": "https://www.ikemo3.com/manual/moshi/",
    "contents": "\u003ch2 id=\"基本的な使い方\"\u003e基本的な使い方\u003c/h2\u003e\n\u003cp\u003eJSONに対応するクラスを作るのが基本です。\nその場合、以下のものは自動的にマップされます[^1]。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eプリミティブ型およびそのラッパー\u003c/li\u003e\n\u003cli\u003e配列、Collection, List, Set, Map\u003c/li\u003e\n\u003cli\u003eString\u003c/li\u003e\n\u003cli\u003eEnum\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例にあるように、\u003ccode\u003efinal\u003c/code\u003eがついてても問題ありません。\u003c/p\u003e\n\u003ch2 id=\"アダプタ\"\u003eアダプタ\u003c/h2\u003e\n\u003cp\u003eValueObjectを使いたい場合などはアダプタを作ります。\nアダプタは以下のようにして作ります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003e@FromJson\u003c/code\u003e と \u003ccode\u003e@ToJson\u003c/code\u003e がついたメソッドを含むアダプタクラスを作る。\n\u003cul\u003e\n\u003cli\u003e片方はJSONの型(自動的にマップされるもの)、もう片方は変換後の型です。\u003c/li\u003e\n\u003cli\u003eメソッドの定義は必要ですが、使わないなら中身は空や例外を出しても構いません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eアダプタクラスを \u003ccode\u003eMoshi.Builder\u003c/code\u003e に追加する。\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Amazon Virtual Private Cloud(VPC)",
    "url": "https://www.ikemo3.com/manual/vpc/",
    "contents": "\u003ch2 id=\"デフォルトvpcの作成\"\u003eデフォルトVPCの作成\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e「サービス」→「ネットワーキング ＆ コンテンツ配信」→「VPC」\u003c/li\u003e\n\u003cli\u003e「VPC」メニューを選択\u003c/li\u003e\n\u003cli\u003e「アクション」→「デフォルト VPC の作成」\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"セキュリティグループ\"\u003eセキュリティグループ\u003c/h2\u003e\n\u003cp\u003eある程度の「役割」単位で良さそうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSSH接続\u003c/li\u003e\n\u003cli\u003eHTTPサーバ\u003c/li\u003e\n\u003cli\u003eMySQL\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"アウトバウンドのルール\"\u003eアウトバウンドのルール\u003c/h3\u003e\n\u003cp\u003e基本的に全て許可でいいと思います。\u003c/p\u003e\n\u003ch3 id=\"インバウンドのルール\"\u003eインバウンドのルール\u003c/h3\u003e\n\u003cp\u003eセキュリティグループごとに、ポート番号と、ソースを指定します。\nソースはセキュリティグループで良さそうです。\u003c/p\u003e\n"
  }, 
  {
    "title": "SQL*Plus",
    "url": "https://www.ikemo3.com/manual/sqlplus/",
    "contents": "\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://www.oracle.com/technetwork/jp/database/features/instant-client/index-097480-ja.html\"\u003eクライアントのダウンロード\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eインストール(Linuxの場合はRPM)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eLD_LIBRARY_PATH\u003c/code\u003eの設定\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e/etc/ld.so.conf.d\u003c/code\u003e 以下にファイルを置くほうが良さそうです。詳しくは \u003ccode\u003eman ldconfig\u003c/code\u003e 参照。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"マニュアル\"\u003eマニュアル\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e12.1\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/SQPUG/toc.htm\"\u003eSQL*Plusユーザーズ・ガイドおよびリファレンス\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Amazon RDS",
    "url": "https://www.ikemo3.com/manual/rds/",
    "contents": "\u003ch2 id=\"インスタンスの作成\"\u003eインスタンスの作成\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e「サービス」→「データベース」「Relational Database Service」\u003c/li\u003e\n\u003cli\u003e「DBインスタンスの起動」\u003c/li\u003e\n\u003cli\u003eエンジンの選択\n\u003cul\u003e\n\u003cli\u003e以下のものは無料利用枠の対象外\n\u003cul\u003e\n\u003cli\u003eAmazon Aurora\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003eMicrosoft SQL Server(Web, Standard, Enterprise)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eOracleは「自分のライセンスを使用」のみ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDB詳細の設定(エンジンごとに異なる)\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"oracle\"\u003eOracle\u003c/h2\u003e\n\u003ch3 id=\"インポート\"\u003eインポート\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html\"\u003eAmazon RDS での Oracle へのデータのインポート - Amazon Relational Database Service\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"rds-vs-ec2\"\u003eRDS vs EC2\u003c/h3\u003e\n\u003cp\u003eRDSとEC2どちらを使うべきか?という説明。\n当然RDSを検討すべきですが、細かく制御したい場合はEC2でもいいよというスタンスか。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/aws-technical-content/latest/oracle-database-aws-best-practices/introduction.html\"\u003eBest Practices for Running Oracle Database on Amazon Web Services - Best Practices for Running Oracle Database on Amazon Web Services\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"推奨するインスタンス\"\u003e推奨するインスタンス\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/aws-technical-content/latest/oracle-database-aws-best-practices/architecting-for-security-and-performance.html\"\u003eArchitecting for Security and Performance - Best Practices for Running Oracle Database on Amazon Web Services\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下の4つが推奨とされている。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eM: 汎用\u003c/li\u003e\n\u003cli\u003eX: メモリ最適化\u003c/li\u003e\n\u003cli\u003eR: メモリ最適化\u003c/li\u003e\n\u003cli\u003eI: ストレージ最適化\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"テーブルスペース\"\u003eテーブルスペース\u003c/h3\u003e\n\u003cp\u003eオンプレではSMALLFILEがデフォルトのようですが、RDSではBIGFILEがデフォルト。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Database.html#Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles\"\u003eテーブルスペースの作成とサイズ変更\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://xp-cloud.jp/blog/2017/06/02/1632/\"\u003eAmazon RDS for Oracle入門(2) | AWSやシステム・アプリ開発の最新情報をお届け｜クロスパワーブログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSMALLFILEは一部の操作しかできないため、使用しない方がよい。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eOracle ALTER DATABASE システム権限は、Amazon RDS では使用できません。ALTER DATABASE ステートメントを使用すると、既存のデータファイルのサイズ変更など、一部のオペレーションしか実行できないため、smallfile テーブルスペースを使用しないことをお勧めします。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003ebigfile表領域についてはこちら。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/ADMIN/tspaces.htm#GUID-7E376766-D99D-4274-BF00-8DC1E6FC5063\"\u003e13.2.3.1 bigfile表領域の概要\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e課金体系が違うからと思われる。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Amazon RDSでMySQLを使用する方法",
    "url": "https://www.ikemo3.com/inverted/rds/mysql/",
    "contents": "\u003ch2 id=\"インスタンスの作成\"\u003eインスタンスの作成\u003c/h2\u003e\n\u003ch3 id=\"インスタンスの仕様\"\u003eインスタンスの仕様\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eライセンスモデル: GPL\u003c/li\u003e\n\u003cli\u003eDBエンジンのバージョン: いろいろ\n\u003cul\u003e\n\u003cli\u003eこの記事を書いた時点では、5.5.46〜5.7.19の範囲でいろいろ選べた。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDBインスタンスのクラス\n\u003cul\u003e\n\u003cli\u003e無料利用枠では以下の通り。\n\u003cul\u003e\n\u003cli\u003eインスタンスタイプ: db.t2.micro\u003c/li\u003e\n\u003cli\u003e仮想CPU: 1\u003c/li\u003e\n\u003cli\u003eメモリ: 1GiB\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eマルチAZ配置\u003c/li\u003e\n\u003cli\u003eストレージタイプ:\n\u003cul\u003e\n\u003cli\u003e汎用(SSD)\u003c/li\u003e\n\u003cli\u003eプロビジョンドIOPS(SSD)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"設定\"\u003e設定\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDBインスタンス識別子: DBインスタンス名\u003c/li\u003e\n\u003cli\u003eマスターユーザの名前\u003c/li\u003e\n\u003cli\u003eマスターパスワード\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"詳細設定の設定\"\u003e詳細設定の設定\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVPC\u003c/li\u003e\n\u003cli\u003eサブネットグループ\u003c/li\u003e\n\u003cli\u003eパブリックアクセシビリティ\u003c/li\u003e\n\u003cli\u003eアベイラビリティーゾーン\u003c/li\u003e\n\u003cli\u003eVPCセキュリティグループ\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"データベースの設定\"\u003eデータベースの設定\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eデータベースの名前\u003c/li\u003e\n\u003cli\u003eデータベースのポート\u003c/li\u003e\n\u003cli\u003eDBパラメータグループ\u003c/li\u003e\n\u003cli\u003eオプショングループ\u003c/li\u003e\n\u003cli\u003eIAM DB認証\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"暗号化\"\u003e暗号化\u003c/h3\u003e\n\u003cp\u003eサポート外?\u003c/p\u003e\n\u003ch3 id=\"バックアップ\"\u003eバックアップ\u003c/h3\u003e\n\u003ch3 id=\"モニタリング\"\u003eモニタリング\u003c/h3\u003e\n\u003ch3 id=\"ログのエクスポート\"\u003eログのエクスポート\u003c/h3\u003e\n\u003ch3 id=\"メンテナンス\"\u003eメンテナンス\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eマイナーバージョン自動アップグレード\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"作成\"\u003e作成\u003c/h2\u003e\n\u003cp\u003e作成にはそれなりに時間がかかるようです。\nディスクの初期化が必要だからでしょうか。。。\u003c/p\u003e\n\u003ch2 id=\"接続確認\"\u003e接続確認\u003c/h2\u003e\n\u003cp\u003eMySQL 5.6の場合\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esudo yum install mysql56\nmysql --host=host_name --user=user_name --password db_name\n\u003c/code\u003e\u003c/pre\u003e"
  }, 
  {
    "title": "AWS Identity and Access Management (IAM)",
    "url": "https://www.ikemo3.com/manual/iam/",
    "contents": "\u003ch2 id=\"サインイン用url\"\u003eサインイン用URL\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e「サービス」→「セキュリティ、アイデンティティ、コンプライアンス」→「IAM」\u003c/li\u003e\n\u003cli\u003e上の方にサインインリンクがある。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"多要素認証mfaの設定\"\u003e多要素認証(MFA)の設定\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e「ユーザ」を開く\u003c/li\u003e\n\u003cli\u003eユーザ名のリンクをクリック\u003c/li\u003e\n\u003cli\u003e「認証情報」タブをクリック\u003c/li\u003e\n\u003cli\u003e「MFAデバイスの割り当て」の右のアイコンをクリック\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "cloudmapper",
    "url": "https://www.ikemo3.com/manual/cloudmapper/",
    "contents": "\u003cp\u003e全然うまく行っていません。。。\u003c/p\u003e\n\u003ch2 id=\"dockerのビルド\"\u003eDockerのビルド\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003egit clone https://github.com/duo-labs/cloudmapper.git\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecd cloudmapper\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edocker build -t mycloudmapper --build-arg ACCOUNT=123412341234 --build-arg AWS_DEFAULT_REGION=ap-northeast-1 --build-arg AWS_REGION=ap-northeast-1 .\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"dockerの起動表示まで\"\u003eDockerの起動〜表示まで\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003edocker run --rm -p 8000:8000 -it mycloudmapper /bin/bash\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epip install awscli pyjq netaddr boto3\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eaws configure\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eDefault region nameを指定しておくこと。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig.json\u003c/code\u003e を作成\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eid\u003c/code\u003e: アカウント(12桁)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ename\u003c/code\u003e: アカウント名(任意?)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eデータ収集\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython cloudmapper.py gather --account-name アカウント名\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ehttp://localhost:8000/\u003c/code\u003e にアクセス\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Amazon EC2",
    "url": "https://www.ikemo3.com/manual/ec2/",
    "contents": "\u003ch2 id=\"起動まで\"\u003e起動まで\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e「サービス」→「コンピューティング」→「EC2」\u003c/li\u003e\n\u003cli\u003eインスタンスの作成\u003c/li\u003e\n\u003cli\u003eインスタンスの選択\u003c/li\u003e\n\u003cli\u003eインスタンスタイプの選択\u003c/li\u003e\n\u003cli\u003eインスタンスの設定\u003c/li\u003e\n\u003cli\u003eストレージの追加(EBS)\u003c/li\u003e\n\u003cli\u003eタグの追加\u003c/li\u003e\n\u003cli\u003eセキュリティグループの設定\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"接続\"\u003e接続\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003ePEMファイルのパーミッションを0400にする\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003essh -i 秘密鍵 ec2-user@ホスト名\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eホスト名: コンソールでインスタンスを選択した状態で、「パブリックDNS(IPv4)」に表示される。\u003c/li\u003e\n\u003cli\u003e秘密鍵: 作成したキーペアの片割れ(\u003ccode\u003e.pem\u003c/code\u003eファイル)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"削除\"\u003e削除\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eインスタンスを選択\u003c/li\u003e\n\u003cli\u003eアクション→インスタンスの状態→削除\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eなお、削除してもしばらくは \u003ccode\u003eterminated\u003c/code\u003e のまま残る。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/TroubleshootingInstancesShuttingDown.html\"\u003eインスタンスの削除 (シャットダウン) のトラブルシューティング - Amazon Elastic Compute Cloud\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eインスタンスの削除後、インスタンスはしばらくの間削除されずに表示されたままとなります。 ステータスは terminated となります。 このエントリが数時間経過しても削除されない場合には、サポートに連絡してください。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"気になったこと\"\u003e気になったこと\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eデフォルトでpingは通らない。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eaws ec2 describe-instance-status\u003c/code\u003eで確認で良さそう。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"aws-cli\"\u003eAWS CLI\u003c/h2\u003e\n\u003ch3 id=\"作成\"\u003e作成\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eaws ec2 run-instances --dry-run --instance-type インスタンスタイプ --image-id イメージID --count インスタンス数 --key-name キーペア名\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"削除-1\"\u003e削除\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eaws ec2 terminate-instances --dry-run --instance-ids インスタンスID\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"centos\"\u003eCentOS\u003c/h2\u003e\n\u003cp\u003eAWS Marketplaceから取得する。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://aws.amazon.com/marketplace/pp/B00O7WM7QW\"\u003eAWS Marketplace: CentOS 7 (x86_64) - with Updates HVM\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e使ってみたが、デフォルトユーザは\u003ccode\u003ecentos\u003c/code\u003eなのに注意(CentOS 7の場合)。\u003c/p\u003e\n"
  }, 
  {
    "title": "Amazon Linux",
    "url": "https://www.ikemo3.com/dic/amazon-linux/",
    "contents": "\u003ch2 id=\"amazon-linuxとは\"\u003eAmazon Linuxとは\u003c/h2\u003e\n\u003cp\u003eEC2で使用可能な、Amazonが提供するLinuxディストリビューションです。\u003c/p\u003e\n\u003ch2 id=\"仕組み\"\u003e仕組み\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRPMベースの独自ディストリビューション\n\u003cul\u003e\n\u003cli\u003eRHEL/CentOS 7とパッケージが近いものが多いが、一致しないものも多い。\u003c/li\u003e\n\u003cli\u003ekernelなど、新しめのものが多い印象。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eec2-user\u003c/code\u003eユーザで接続するが、このユーザにsudo権限がある。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e/etc/sudoers.d/cloud-init\u003c/code\u003e ファイルに、ec2-userはパスワードなしで何をしてもいいよと書かれている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Amazon Virtual Private Cloud(VPC)",
    "url": "https://www.ikemo3.com/dic/vpc/",
    "contents": "\u003ch2 id=\"amazon-virtual-private-cloudvpcとは\"\u003eAmazon Virtual Private Cloud(VPC)とは\u003c/h2\u003e\n\u003cp\u003e仮想ネットワークです。\u003c/p\u003e\n\u003ch2 id=\"vpcの種類\"\u003eVPCの種類\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e1個のパブリックサブネットを持つVPC\n\u003cul\u003e\n\u003cli\u003e公開サーバ向け\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eパブリックとプライベートサブネットを持つVPC\n\u003cul\u003e\n\u003cli\u003eWebサーバ(パブリック) + DBサーバ(プライベート)ような構成\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eパブリックサブネットとプライベートサブネット、および AWS マネージド VPN アクセスを持つ VPC\n\u003cul\u003e\n\u003cli\u003e2に加えて、VPNを使用する場合\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eプライベートサブネットのみ、および AWS マネージド VPN アクセスを持つ VPC\n\u003cul\u003e\n\u003cli\u003e3からインターネットのアクセスを削除\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e種類\u003c/th\u003e\n          \u003cth\u003eインターネット\u003c/th\u003e\n          \u003cth\u003eプライベート\u003c/th\u003e\n          \u003cth\u003eVPN\u003c/th\u003e\n          \u003cth\u003e用途\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e1\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e公開サーバのみ\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e公開サーバ + バックエンドサーバ\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e3\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e全部入り\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e4\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003eイントラネット\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"vpcの構成要素\"\u003eVPCの構成要素\u003c/h2\u003e\n\u003cp\u003eAnsible化してみましたが、以下のようにすると良さそうです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eVPCをつくる。このときにメインのルートテーブルが作成される\u003c/li\u003e\n\u003cli\u003eインターネットゲートウェイ(IGW)を作成する\u003c/li\u003e\n\u003cli\u003eサブネットを作る\n\u003cul\u003e\n\u003cli\u003eパブリック(インターネットに接続)が2個(AZを分ける)\u003c/li\u003e\n\u003cli\u003eプライベート(インターネットに接続しない)が2個(AZを分ける)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eルートテーブルを作成\n\u003cul\u003e\n\u003cli\u003eパブリック: 自分のサブネット内とIGW\u003c/li\u003e\n\u003cli\u003eプライベート: 自分のサブネット内のみ)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Amazon Web Services(AWS)",
    "url": "https://www.ikemo3.com/manual/aws/",
    "contents": "\u003ch2 id=\"aws-cli\"\u003eAWS CLI\u003c/h2\u003e\n\u003cp\u003e環境が汚れるのがイヤなので作りました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ikemo3/aws-cli\"\u003eikemo3/aws-cli\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"macosでのインストール\"\u003emacOSでのインストール\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003epip install awscli --upgrade --user\n\u003c/code\u003e\u003c/pre\u003e"
  }, 
  {
    "title": "Amazon Web Services(AWS): 初期設定",
    "url": "https://www.ikemo3.com/inverted/aws/initial/",
    "contents": "\u003ch2 id=\"アカウントの作成\"\u003eアカウントの作成\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://aws.amazon.com/jp/register-flow/\"\u003eAWS アカウント作成の流れ | AWS\u003c/a\u003e参照。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eここで作成するアカウントは、Amazon.comのアカウントと同じようです。\u003c/p\u003e\n\u003ch2 id=\"セキュリティ強化\"\u003eセキュリティ強化\u003c/h2\u003e\n\u003ch3 id=\"mfa-の有効化\"\u003eMFA の有効化\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://aws.amazon.com/jp/iam/details/mfa/\"\u003e仮想 MFA デバイス\u003c/a\u003e(Google Authenticatorなど)を導入。\u003c/li\u003e\n\u003cli\u003e認証コードを2つ入れる。\n\u003cul\u003e\n\u003cli\u003eここ迷いましたが、認証コードが変わるのを待ってから2つ目を入れれば通りました。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"パスワードポリシーの管理\"\u003eパスワードポリシーの管理\u003c/h2\u003e\n\u003cp\u003e必要なら。ただ、文字種を増やしても効果がない可能性があります。\u003c/p\u003e\n\u003ch2 id=\"iamユーザの作成\"\u003eIAMユーザの作成\u003c/h2\u003e\n\u003cp\u003eAWSアカウントはrootユーザのようなもので、そのまま使い続けるのはよくありません。\nそのために、IAMユーザを作成します。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e左上の「サービス」→「セキュリティ、アイデンティティ、コンプライアンス」→「IAM」を選択\u003c/li\u003e\n\u003cli\u003e左側のメニューから「ユーザー」を選択\u003c/li\u003e\n\u003cli\u003e「ユーザを追加」ボタンを押す\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e作成するアカウントは以下のような感じでいいのかなと(検討中)。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eグループ\u003c/th\u003e\n          \u003cth\u003e権限\u003c/th\u003e\n          \u003cth\u003e用途\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e管理用グループ\u003c/td\u003e\n          \u003ctd\u003eAdministratorAccess\u003c/td\u003e\n          \u003ctd\u003e管理用\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eユーザの種類\u003c/th\u003e\n          \u003cth\u003eグループ\u003c/th\u003e\n          \u003cth\u003eプログラムによるアクセス(アクセスキー)\u003c/th\u003e\n          \u003cth\u003eAWS マネジメントコンソールへのアクセス\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e管理者アカウント\u003c/td\u003e\n          \u003ctd\u003e管理用グループ\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"請求情報のiamユーザへの割り当て\"\u003e請求情報のIAMユーザへの割り当て\u003c/h2\u003e\n\u003cp\u003e請求情報をAWSアカウントでなく、IAMユーザで見れるようにする。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/tmknom/items/303db2d1d928db720888#%E8%AB%8B%E6%B1%82%E6%83%85%E5%A0%B1%E3%81%AE%E8%A8%AD%E5%AE%9A\"\u003eAWSアカウントを取得したら速攻でやっておくべき初期設定まとめ - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003col\u003e\n\u003cli\u003eアカウント名をクリックして、「アカウント」を選択\u003c/li\u003e\n\u003cli\u003e「IAM ユーザー/ロールによる請求情報へのアクセス」の右の「編集」をクリック\u003c/li\u003e\n\u003cli\u003e「IAMアクセスのアクティブ化」をチェックして「更新」をクリック\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"請求情報の設定\"\u003e請求情報の設定\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eアクセス方法\n\u003col\u003e\n\u003cli\u003eアカウント名をクリックして、「請求ダッシュボード」を選択\u003c/li\u003e\n\u003cli\u003e「設定」をクリック\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003e設定\n\u003cul\u003e\n\u003cli\u003e電子メールでPDF版請求書を受け取る: チェック\u003c/li\u003e\n\u003cli\u003e無料利用枠の使用のアラートの受信: チェック\u003c/li\u003e\n\u003cli\u003e請求アラートを受け取る: チェック\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"請求アラートを管理cloudwatch\"\u003e請求アラートを管理(CloudWatch)\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e左上の「サービス」→「管理ツール」→「CloudWatch」を選択\u003c/li\u003e\n\u003cli\u003e「請求」を選択\u003c/li\u003e\n\u003cli\u003e「アラームの作成」を選択\u003c/li\u003e\n\u003cli\u003e金額、メールアドレスを入力\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"課税設定\"\u003e課税設定\u003c/h2\u003e\n\u003cp\u003e企業の場合は必要そう。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eアクセス方法\n\u003col\u003e\n\u003cli\u003eアカウント名をクリックして、「請求ダッシュボード」を選択\u003c/li\u003e\n\u003cli\u003e「課税設定」をクリック\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "IntelliJ IDEAでの設定の共有",
    "url": "https://www.ikemo3.com/inverted/intellij-idea/share-setting/",
    "contents": "\u003ch2 id=\"どのファイルを設定すべきか\"\u003eどのファイルを設定すべきか?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://intellij-support.jetbrains.com/hc/en-us/articles/206544839\"\u003eHow to manage projects under Version Control Systems\u003c/a\u003eに書かれていますが、\n以下のとおりです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e共有すべきもの\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.idea\u003c/code\u003e ディレクトリ以下のファイルで、以下のものを\u003cstrong\u003e除く\u003c/strong\u003e全て。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eworkspace.xml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etasks.xml\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e異なるモジュールディレクトリに配置されている、全ての \u003ccode\u003e.iml\u003c/code\u003e ファイル\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e気をつけるもの\n\u003cul\u003e\n\u003cli\u003eAndroid artifact(これはよく知らないので省略)\u003c/li\u003e\n\u003cli\u003eIDEA 13以前の〜という記述はありますが、これは古いバージョンの話で、今は気にしなくて良いようです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e共有しない方がよいもの\n\u003cul\u003e\n\u003cli\u003eGradle / Mavenプロジェクトの場合の \u003ccode\u003e.iml\u003c/code\u003e ファイル\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egradle.xml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edictionaries\u003c/code\u003e フォルダ\u003c/li\u003e\n\u003cli\u003eGradle / Mavenで作成された \u003ccode\u003e.idea/libraries\u003c/code\u003e 以下のXMLファイル\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただし、実際はこれらは.gitignoreのテンプレートに記載されています。\u003c/p\u003e\n"
  }, 
  {
    "title": "ヨーダ記法",
    "url": "https://www.ikemo3.com/dic/yoda-notation/",
    "contents": "\u003ch2 id=\"ヨーダ記法とは\"\u003eヨーダ記法とは\u003c/h2\u003e\n\u003cp\u003e条件式の左側に、定数を配置する記法です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e通常: \u003ccode\u003eif (value == 42)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eヨーダ記法: \u003ccode\u003eif (42 == value)\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"基本的に使ってはいけない\"\u003e基本的に使ってはいけない\u003c/h2\u003e\n\u003cp\u003e過去に使われていましたが、\n現在は基本的には使ってはいけません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eヨーダ記法は基本的に読みにくい\u003c/li\u003e\n\u003cli\u003eヨーダ記法を使うメリットは失われている\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ヨーダ記法を使うメリットは失われている\"\u003eヨーダ記法を使うメリットは失われている\u003c/h2\u003e\n\u003cp\u003eヨーダ記法は過去に、C言語で以下のように書いたときに、\n誤動作するのを避けるために使われていました。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-c\" data-lang=\"c\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (value \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e42\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e// valueがなんだろうと実行される\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eしかし、現在ではこのメリットはありません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJavaを含む多くの言語では、if文の条件に書くのはbooleanしか許されない。\u003c/li\u003e\n\u003cli\u003eC言語でもif文で代入すると警告が出るようになっている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"c言語の場合\"\u003eC言語の場合\u003c/h3\u003e\n\u003cp\u003e例えば、以下のファイルを\u003ccode\u003emain.c\u003c/code\u003eという名前で保存します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-c\" data-lang=\"c\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efoo\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e i) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (i \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e42\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e-\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  } \u003cspan style=\"color:#66d9ef\"\u003eelse\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこのコード\u003ccode\u003egcc -c main.c\u003c/code\u003eでコンパイルすると、以下のような警告が出ます(Apple LLVM version 9.0.0)。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emain.c:2:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]\n  if (i = 42) {\n      ~~^~~~\nmain.c:2:9: note: place parentheses around the assignment to silence this warning\n  if (i = 42) {\n        ^\n      (     )\nmain.c:2:9: note: use \u0026#39;==\u0026#39; to turn this assignment into an equality comparison\n  if (i = 42) {\n        ^\n        ==\n1 warning generated.\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"javaの場合\"\u003eJavaの場合\u003c/h3\u003e\n\u003cp\u003e以下の場合は警告も出ません(FindBugs / SpotBugsでは検知できます\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (isAdmin \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e// ここは常に実行される\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (isAdmin \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efalse\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e// ここは常に実行されない\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eしかし、だからヨーダ記法を使うと言うのは、論点がズレています。\nなぜなら、このときに直すべき習慣は、true/falseを\u003ccode\u003e==\u003c/code\u003eで比較することです。\n具体的には、以下のように書くのが正しい習慣です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (isAdmin) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e// isAdminがtrueのときに実行される\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (\u003cspan style=\"color:#f92672\"\u003e!\u003c/span\u003eisAdmin) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e// isAdminがfalseのときに実行される\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"左側が長い場合にヨーダ記法のメリットがあるそれは論点違い\"\u003e左側が長い場合にヨーダ記法のメリットがある?→それは論点違い\u003c/h2\u003e\n\u003cp\u003e例えば、以下の2つを比べて、ヨーダ記法の方が分かりやすいという主張があります\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eif (self.getPost(\u0026#34;main-form\u0026#34;).getInput(\u0026#34;title\u0026#34;).toString() != \u0026#34;\u0026#34;);\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eif (\u0026#34;\u0026#34; != self.getPost(\u0026#34;main-form\u0026#34;).getInput(\u0026#34;title\u0026#34;).toString());\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eしかし、これはそもそも論点がズレています。\nなぜなら、上の例では\u003ccode\u003eself.getPost(\u0026quot;main-form\u0026quot;).getInput(\u0026quot;title\u0026quot;).toString()\u003c/code\u003eを\n切り出して別の説明用変数を導入するのが正しい習慣です。\u003c/p\u003e\n\u003ch2 id=\"fooequalsstrも今後は避ける\"\u003e\u0026ldquo;foo\u0026rdquo;.equals(str)も今後は避ける\u003c/h2\u003e\n\u003cp\u003eJavaの慣例として広く使われいる、定数を左に書く記法ですが、これも避けるべきです。\u003c/p\u003e\n\u003cp\u003eなぜかというと、\u003ccode\u003e\u0026quot;foo\u0026quot;.equals(str)\u003c/code\u003eという書き方をしてしまうと、nullのときの対応が曖昧になるからです。\n左が定数ならnullでも\u0026quot;\u0026ldquo;でもfalseなのは当たり前ですが、\n空文字の時はnullのときにtrueとしたい場合があります。\n\u003ccode\u003e\u0026quot;\u0026quot;.equals(str)\u003c/code\u003eと書いてしまうとそのあたりが曖昧になります。\u003c/p\u003e\n\u003cp\u003eApache Commons LangのStringUtilsクラスを使うのがいいかと思います。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003ep85に、ヨーダ記法について「過去のもの」として紹介されています。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4873115655/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4873115655.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4873115655/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nリーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://spotbugs.readthedocs.io/ja/latest/bugDescriptions.html#qba-boolean-qba-questionable-boolean-assignment\"\u003e検知可能なバグの詳細 — spotbugs 3.1.1 ドキュメント\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"http://marycore.jp/coding/yoda-conditions/#%E7%8F%BE%E4%BB%A3%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88\"\u003eヨーダ記法とは｜定数を左辺に記述するメリットと流行らない理由 | MaryCore\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "日時",
    "url": "https://www.ikemo3.com/dic/datetime/",
    "contents": "\u003ch2 id=\"日時とは\"\u003e日時とは\u003c/h2\u003e\n\u003cp\u003e日付と時間のことです。\u003c/p\u003e\n\u003ch2 id=\"日時を定義しているrfc\"\u003e日時を定義しているRFC\u003c/h2\u003e\n\u003cp\u003eHTTP/1.1については、RFC 7231が最新です。\u003c/p\u003e\n\u003ch2 id=\"cookieの日付\"\u003eCookieの日付\u003c/h2\u003e\n\u003cp\u003eCookieの日付は、RFC 6265によれば、\nRFC 2616 Section 3.3.1にある日付が正しいことになっています。\nこの日付は\u003ccode\u003e2DIGIT\u003c/code\u003eと定義されていて、2桁の数字になっています。\nすなわち、6日は\u003ccode\u003e06\u003c/code\u003eと表現します。\u003c/p\u003e\n\u003cp\u003eただ、最新のドラフト\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eでは、\u003ccode\u003e1*2DIGIT\u003c/code\u003eと定義されています。\nこれは、1桁または2桁の数字になります。\nすなわち、\u003ccode\u003e6\u003c/code\u003e, \u003ccode\u003e06\u003c/code\u003eのどちらでも構いません。\u003c/p\u003e\n\u003cp\u003e何で気にするのかというと、Java SE 8のDateTimeFormatter.RFC_1123_DATE_TIMEが、\n1桁の数値を\u003ccode\u003e06\u003c/code\u003eでなく、\u003ccode\u003e6\u003c/code\u003eで出力するからです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://httpwg.org/http-extensions/rfc6265bis.html#rfc.section.5.1.1\"\u003eCookies: HTTP State Management Mechanism\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Builderパターン",
    "url": "https://www.ikemo3.com/manual/builder/",
    "contents": "\u003ch2 id=\"作り方\"\u003e作り方\u003c/h2\u003e\n\u003ch3 id=\"クラス名\"\u003eクラス名\u003c/h3\u003e\n\u003cp\u003e以下のいずれかがよく使われます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e作りたいクラス + \u003ccode\u003eBuilder\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e例: DateTimeFormatter を作る DateTimeFormatterBuilder\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e作りたいクラスの内部クラスで\u003ccode\u003eBuilder\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e例: HttpUrl を作る HttpUrl.Builder\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ファクトリーコンストラクタ\"\u003eファクトリー、コンストラクタ\u003c/h3\u003e\n\u003cp\u003e一般的には引数なしのコンストラクタが使われます。\n\u003ca href=\"/dic/dbsetup/\"\u003eDbSetup\u003c/a\u003eの\u003ca href=\"http://dbsetup.ninja-squad.com/apidoc/2.1.0/com/ninja_squad/dbsetup/Operations.html\"\u003eOperations\u003c/a\u003eのように、staticメソッドを用意しているものもありますが、\n柔軟性でなく、\u003ca href=\"/dic/fluent-interface/\"\u003e流れるようなインタフェース\u003c/a\u003eにするために使われています。\u003c/p\u003e\n\u003ch3 id=\"メソッド\"\u003eメソッド\u003c/h3\u003e\n\u003cp\u003esetterを実装しますが、\n流れるようなインタフェースを考慮して、\u003ccode\u003eset\u003c/code\u003eなんとかという名前にはしません\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eただし、以下のような使い分けをする場合は\u003ccode\u003eset\u003c/code\u003eを付けます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eaddXXX\u003c/code\u003e: 値を追加するもの\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetXXX\u003c/code\u003e: 値を新規設定するもの\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/blob/parent-3.10.0/okhttp/src/main/java/okhttp3/HttpUrl.java#L1187\"\u003eHttpUrl.Builder#setEncodedQueryParameter\u003c/a\u003eのように、「削除してから追加」する場合が該当します。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e最後に追加していくStringBuilderなどでは、\u003ccode\u003eappend\u003c/code\u003e系の命名が使われることが多いです。\u003c/p\u003e\n\u003cp\u003e最後のメソッドは\u003ccode\u003ebuild()\u003c/code\u003eのことが多いです。\u003c/p\u003e\n\u003ch2 id=\"例外処理\"\u003e例外処理\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esetter: IllegalArgumentException\u003c/li\u003e\n\u003cli\u003ebuild(): IllegalStateException\n\u003cul\u003e\n\u003cli\u003e必要なパラメータを渡していない場合\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eチェック例外は流れるようなインタフェースと相性が悪いので、避けたほうがいいです。\n必要なときは、ValueObject(URIなど)を渡すようにしたらいいと思います。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eMail \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e MailBuilder()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e         .\u003cspan style=\"color:#a6e22e\"\u003eto\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;test@example.com\u0026#34;\u003c/span\u003e) \u003cspan style=\"color:#75715e\"\u003e// ここでチェック例外を投げたい場合\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e         .\u003cspan style=\"color:#a6e22e\"\u003ebuild\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eここでメールアドレスをセットするときにチェック例外を投げたい場合は以下のようにします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eMailAddress mailTo;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003etry\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  mailTo \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e MailAddress.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;test@example.com\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e} \u003cspan style=\"color:#66d9ef\"\u003ecatch\u003c/span\u003e (MailAddressException e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e// 例外処理\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eMail \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e MailBuilder()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e         .\u003cspan style=\"color:#a6e22e\"\u003eto\u003c/span\u003e(mailTo)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e         .\u003cspan style=\"color:#a6e22e\"\u003ebuild\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"ビルダー自体のカスタマイズ\"\u003eビルダー自体のカスタマイズ\u003c/h2\u003e\n\u003cp\u003e簡単なものなら、コンストラクタの引数に持つのが良いかと思います。\nBuilder自体を取り替えたい場合は、\n\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/javax/xml/parsers/DocumentBuilderFactory.html\"\u003eDocumentBuilderFactory\u003c/a\u003eのようにさらにファクトリを定義する例もありますが、\n正直冗長かなと思います。setNamespaceAwareしか使ったことないし。。。\u003c/p\u003e\n\u003ch2 id=\"テンプレート\"\u003eテンプレート\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eColorBuilder\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e String color;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eColorBuilder\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e ColorBuilder \u003cspan style=\"color:#a6e22e\"\u003ecolor\u003c/span\u003e(String color) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ecolor\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e color;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e Color \u003cspan style=\"color:#a6e22e\"\u003ebuild\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Color(\u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ecolor\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://d.hatena.ne.jp/higayasuo/20071025/1193319054\"\u003e流れるようなインターフェースとメソッドチェーンは違うもの - yvsu pron. yas\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ファクトリ",
    "url": "https://www.ikemo3.com/dic/factory/",
    "contents": "\u003ch2 id=\"ファクトリとは\"\u003eファクトリとは\u003c/h2\u003e\n\u003cp\u003e何かを作るものです。\u003c/p\u003e\n\u003ch2 id=\"ファクトリが必要な理由\"\u003eファクトリが必要な理由\u003c/h2\u003e\n\u003cp\u003eエリック・エヴァンスのドメイン駆動設計 No.3258(Kindle)\n「第6章 ドメインオブジェクトのライフサイクル」に以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eオブジェクトの生成は、それ自体が主要な操作になり得るが、\n複雑な組み立て操作は、生成されるオブジェクトの責務には合わない。\nそういう責務を組み合わせてしまうと、\n理解しにくく不格好な設計が作り出されるかもしれない。\nそうかといって、クライアントに直接構築させると、\nクライアントの設計を混乱させ、組み立てられるオブジェクトや\n集約のカプセル化にも違反する上に、\n生成されるオブジェクトの実装と、クライアントが過度に結合することになる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e複雑なオブジェクトと集約のインスタンスを生成する責務を、\n別のオブジェクトに移すこと。その別のオブジェクトは、\nそれ自体はドメインモデルにおいて何の責務も負っていないかもしれないが、\nそれでもドメイン設計の一部であることに変わりはない。\n複雑な組み立てをすべてカプセル化するインタフェースを提供すること。\nその際に、インスタンス化されるオブジェクトの具象クラスを、\nクライアントが参照しなくてもよいようにすること。\n集約全体をひとまとまりとして生成し、その不変条件を強制すること。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e自分なりにまとめると、次のようになります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eドメインオブジェクトに複雑な構築をさせると、わかりにくくなる。\u003c/li\u003e\n\u003cli\u003e呼び出し元に複雑な構築をさせると、密結合になる。\n\u003cul\u003e\n\u003cli\u003eこっちの方がより悪いです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"デザインパターン\"\u003eデザインパターン\u003c/h2\u003e\n\u003cp\u003e以下の3つが、使われるデザインパターンとして挙げられています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFactory Methodパターン\u003c/li\u003e\n\u003cli\u003eBuilderパターン\u003c/li\u003e\n\u003cli\u003eAbstract Factoryパターン\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただ、自分は、デザインパターンを理解するのはあまり意味が無いと思います。\nなぜなら、実情に合っていないからです。\n例えば、Builderパターンはよく使われますが、\nGoFのBuilderパターンで出てくるDirectorはめったに登場しません\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4798121967/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4798121967.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4798121967/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nエリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eというより見たことありません。。。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ファクトリ",
    "url": "https://www.ikemo3.com/manual/factory/",
    "contents": "\u003ch2 id=\"どのパターンを使うべきか\"\u003eどのパターンを使うべきか\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e引数が不要な場合→コンストラクタ\n\u003cul\u003e\n\u003cli\u003eStrategyを選ぶときなど。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e順番に構築する必要がある→Builderを作る\n\u003cul\u003e\n\u003cli\u003e例: SQLを構築するビルダ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eそれ以外→まずFactory Methodを作る\n\u003cul\u003e\n\u003cli\u003eその中でBuilderの方が良いと思ったら、Builderに作り変える。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eものすごく単純化していますが、基本的にはこれでいいと思います。\u003c/p\u003e\n\u003ch2 id=\"理由\"\u003e理由\u003c/h2\u003e\n\u003cp\u003eまず、「順番に構築する必要がある」場合は、\nBuilderで対応する必要があります。\nこちらは説明不要だと思うので省きます。\u003c/p\u003e\n\u003ch3 id=\"factory-methodにすると引数が多くなってしまう場合\"\u003eFactory Methodにすると引数が多くなってしまう場合\u003c/h3\u003e\n\u003cp\u003eこの場合にまず考えるべきことは、\n「引数をValue Objectにできないか」です。\n例えば、公開鍵でSFTP接続したいときに以下の引数を渡す場合を考えます。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e接続先ホスト名\u003c/li\u003e\n\u003cli\u003e接続先ポート番号\u003c/li\u003e\n\u003cli\u003e接続先ユーザ\u003c/li\u003e\n\u003cli\u003e秘密鍵\u003c/li\u003e\n\u003cli\u003e秘密鍵パスフレーズ\u003c/li\u003e\n\u003cli\u003eknown_hosts\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e単純に実装すると、Stringが5つ、intが1つ並んだ、以下のようなメソッドができます。\n(コンストラクタでも同じ)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eSftp sftp \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e Sftp.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(host, port, user, privateKeyPath, passPhrase, knownHostsPath);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eしかし、1と2、4と5はひとまとまりに考えることができます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ePrivateKey privateKey \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e PrivateKey.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(privateKeyPath, passPhrase);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eServer server \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e Server.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(host, port);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eSftp sftp \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e Sftp.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(server, user, privateKey, knownHosts);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eさらに、privateKeyとuserを「認証情報」としてひとまとまり、\nserverとknownHostsを「接続先情報」としてひとまとまりにすると、\n以下のようにできます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ePrivateKey privateKey \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e PrivateKey.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(privateKeyPath, passPhrase);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eServer server \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e Server.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(host, port);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eAuthInfo authInfo \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e AuthInfo.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(user, privateKey);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eSshServer sshServer \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e SshServer.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(server, knownHosts);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eSftp sftp \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e Sftp.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(sshServer, authInfo);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e引数がたった2つになりました。\nしかも、このPrivateKey, Server, AuthInfo, SshServerは他でも\n使える可能性が高いクラスです。\nAuthInfoのファクトリーメソッドの引数を変えるだけで、\nパスワード認証にも対応可能です。\u003c/p\u003e\n\u003ch3 id=\"オプショナルな引数が多い場合\"\u003eオプショナルな引数が多い場合\u003c/h3\u003e\n\u003cp\u003eこれは2つのパターンがあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eデフォルト値がだいたい決まっている\u003c/li\u003e\n\u003cli\u003eオプショナル項目そのものが多い\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e後者については、Builderパターンが適している場合もあります。\n前者の場合は、引数の省略で対応できる場合が多いです。\n先程のSftpクラスだと、通常は、ポート22を使います。\nしたがって、以下のようにかけます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eSftp sftp \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e Sftp.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(host, user, privateKeyPath, passPhrase, knownHostsPath);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eValue Objectを使うと、以下のように書けます。\n引数が多いと組み合わせが爆発しますが、\nValue Objectを使っているため、ほとんど影響がありません。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ePrivateKey privateKey \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e PrivateKey.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(privateKeyPath, passPhrase);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eServer server \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e Server.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(host); \u003cspan style=\"color:#75715e\"\u003e// 違うのはここだけ\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eAuthInfo authInfo \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e AuthInfo.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(user, privateKey);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eSshServer sshServer \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e SshServer.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(server, knownHosts);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eSftp sftp \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e Sftp.\u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(sshServer, authInfo);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"最初から完璧さを求めない\"\u003e最初から完璧さを求めない\u003c/h3\u003e\n\u003cp\u003eこれでは不十分で、もっと複雑なパターンを使う必要があるかもしれません。\nただ、それはいつになるのかは分かりません。いわゆるYAGNIの法則です。\n必要になったときだけ、追加するので十分だと思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "契約による設計",
    "url": "https://www.ikemo3.com/dic/design-by-contract/",
    "contents": "\u003ch2 id=\"契約による設計とは\"\u003e契約による設計とは\u003c/h2\u003e\n\u003cp\u003eざっくりいうと、APIの提供元が、\n「このようにAPIを呼んでね」という仕様を提示して、\n呼び出し元がそれを守ることを前提とした設計です。\u003c/p\u003e\n\u003ch2 id=\"javaでざっくりやるには\"\u003eJavaでざっくりやるには\u003c/h2\u003e\n\u003cp\u003e本当の定義では「事前条件」「事後条件」「不変条件」があるようですが、\n例えばJavaの場合はこんな感じでやってます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJavadocやアノテーションを使って満たすべき仕様を記載\u003c/li\u003e\n\u003cli\u003eObjects#requireNonNull()などで事前条件のチェック\n\u003cul\u003e\n\u003cli\u003e仕様を満たさない場合はIllegalArgumentExceptionなど非チェック例外を投げる\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e単体テストで事後条件、不変条件をチェック\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "正当にこわがる",
    "url": "https://www.ikemo3.com/dic/fear-properly/",
    "contents": "\u003ch2 id=\"正当にこわがるとは\"\u003e正当にこわがるとは\u003c/h2\u003e\n\u003cp\u003e寺田寅彦氏の随筆「小爆発二件」に出てくる表現です。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e十時過ぎの汽車で帰京しようとして沓掛駅で待ち合わせていたら、\n今浅間からおりて来たらしい学生をつかまえて駅員が爆発当時の模様を聞き取っていた。\n爆発当時その学生はもう小浅間のふもとまでおりていたから\nなんのことはなかったそうである。その時別に四人連れの登山者が登山道を上りかけていたが、\n爆発しても平気でのぼって行ったそうである。\n「なになんでもないですよ、大丈夫ですよ」と学生がさも請け合ったように言ったのに対して、\n駅員は急におごそかな表情をして、静かに首を左右にふりながら\n「いや、そうでないです、そうでないです。――いやどうもありがとう」\nと言いながら何か書き留めていた手帳をかくしに収めた。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eものをこわがらな過ぎたり、こわがり過ぎたりするのはやさしいが、\n正当にこわがることはなかなかむつかしいことだと思われた。\n○○の○○○○に対するのでも△△の△△△△△に対するのでも、やはりそんな気がする。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"客観確率と主観確率\"\u003e客観確率と主観確率\u003c/h2\u003e\n\u003cp\u003e「正しく恐れる」という表現もありますが、これは自分の中では、\n主観確率と客観確率という2つの考え方が必要だと思いました。\u003c/p\u003e\n\u003cp\u003eこの随筆の場合、客観確率的には、登ってもまず大丈夫です。\nしかし、1度事故が起きてしまうと、それは大問題です。\nその意味では、主観確率的には、無視してはいけない問題とも言えます。\u003c/p\u003e\n\u003cp\u003eしかし、「無視してはいけない問題」という判断ができるのは、\n客観的な判断ができる人だけです。\n危険を煽られて正常な判断ができない人を肯定するものではありません。\u003c/p\u003e\n"
  }, 
  {
    "title": "標準型",
    "url": "https://www.ikemo3.com/manual/standard-type/",
    "contents": "\u003ch2 id=\"作り方\"\u003e作り方\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Objects;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eenum\u003c/span\u003e Color {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e/** コメント1 */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    RED(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#ff0000\u0026#34;\u003c/span\u003e),\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e/** コメント2 */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    BLUE(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#0000ff\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e String str;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    Color(String str) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003estr\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e str;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003evalue\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003estr\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003estatic\u003c/span\u003e Color \u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(String str) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Objects.\u003cspan style=\"color:#a6e22e\"\u003erequireNonNull\u003c/span\u003e(str);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eswitch\u003c/span\u003e(str) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#66d9ef\"\u003ecase\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#ff0000\u0026#34;\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e RED;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#66d9ef\"\u003ecase\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#0000ff\u0026#34;\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e BLUE;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#66d9ef\"\u003edefault\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                \u003cspan style=\"color:#66d9ef\"\u003ethrow\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e IllegalArgumentException(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;コメント\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Value Object",
    "url": "https://www.ikemo3.com/dic/value-object/",
    "contents": "\u003ch2 id=\"value-object値オブジェクトとは\"\u003eValue Object(値オブジェクト)とは\u003c/h2\u003e\n\u003cp\u003e「値」のように扱えるオブジェクトです。\n日本語では「値オブジェクト」と呼びます。\n以下のような性質を持ちます。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eオブジェクトが不変(immutable)\u003c/li\u003e\n\u003cli\u003e属性のみに関心を持つ\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e2.を詳しく説明すると、\nエンティティがIDで同一性を識別するのに対し、\n値オブジェクトはオブジェクトの属性で同一性を識別します。\u003c/p\u003e\n\u003ch2 id=\"value-objectに気づいたきっかけ\"\u003eValue Objectに気づいたきっかけ\u003c/h2\u003e\n\u003cp\u003e最初にValue Objectに気づいたきっかけが、\n以下の記事を読んだときでした。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.ibm.com/developerworks/jp/java/library/j-jtp02216/index.html\"\u003eJavaの理論と実践: 疑似typedefアンチパターン\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこの記事はtypedefのつもりで継承を使うテクニックを、\n\u003ca href=\"/dic/anti-pattern/\"\u003eアンチパターン\u003c/a\u003eとして挙げています。\nJava 7からは右側が\u003ccode\u003e\u0026lt;\u0026gt;\u003c/code\u003eと省略可能になり、\nJava 10からはローカル変数の型推論があるため、過去の話になりつつありますが。\u003c/p\u003e\n\u003cp\u003eしかし、自分はこう考えました。\n「別の型に割り当てられないのは型安全という意味ではむしろメリットでは?」\u003c/p\u003e\n\u003cp\u003eそう思って試しに、以下のようにStringをラップしただけのクラスを作って\n使ってみました。Stringは継承できないので移譲を使って\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eLoginId\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e String loginId;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eLoginId\u003c/span\u003e(String loginId) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eloginId\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e loginId;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e// 以下メソッドの定義\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eそうしたら予想以上に使いやすかったです。\nこれって他で使われてないのかなぁと思っていたところ、\nValue Objectに辿り着きました。\u003c/p\u003e\n\u003ch2 id=\"value-objectはオブジェクト指向と関数型の架け橋\"\u003eValue Objectはオブジェクト指向と関数型の架け橋\u003c/h2\u003e\n\u003cp\u003eReduxのReducerの説明を読んだ時に気づきました。以下の図です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/mpyw/items/a816c6380219b1d5a3bf#reducer\"\u003eたぶんこれが一番分かりやすいと思います React + Redux のフロー図解\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e要は「Old state + action」をReducerに渡すと「New state」を返すということですが、\nこれを見た時に、Value Objectと同じやんと思ったわけです。\n具体的には、以下のように対応します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOld state: 元のオブジェクト\u003c/li\u003e\n\u003cli\u003eReducer, action: メソッドと引数\u003c/li\u003e\n\u003cli\u003eNew state: 新しいオブジェクト\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eValue Objectは、この「元のオブジェクト」と「新しいオブジェクト」が\n別のオブジェクトであることがキモです。\u003c/p\u003e\n\u003cp\u003e検索したら、同じことを考えている人は既にいました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://zerobase.hateblo.jp/entry/2013/02/21/171750\"\u003e関数型とオブジェクト指向という一見相反するプログラミングパラダイムの併用について理解した - 石橋秀仁(zerobase)書き散らす\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"haskellのioモナド\"\u003eHaskellのIOモナド\u003c/h3\u003e\n\u003cp\u003eこれ見たときに、もう一つ理解できました。\nそれは、HaskellのIOモナドのことです。\nHaskellは10年以上前に勉強したけど分からなくて断念したのですが、\nこのReducerの定義を見てからHaskellのIOモナドを見ると、よく理解できました。\n以下の記事にありますが、state = 現実世界ですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://labs.timedia.co.jp/2017/08/haskell-io-monad.html\"\u003eHaskell の IO モナドと参照透過性の秘密 - TIM Labs\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eだからと言って関数型言語をやりたいという気持ちはなくて、\nむしろオブジェクト指向でいいやという感じですが。。。\n(どちらかと言えばKotlinとかSwiftやりたい)\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e継承自体がアンチパターンなので、今なら当然継承しませんが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Value Object",
    "url": "https://www.ikemo3.com/manual/value-object/",
    "contents": "\u003ch2 id=\"作り方\"\u003e作り方\u003c/h2\u003e\n\u003cp\u003eまとめ中です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.util.Objects;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e org.apache.commons.lang3.builder.EqualsBuilder;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e org.apache.commons.lang3.builder.HashCodeBuilder;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e org.apache.commons.lang3.builder.ToStringBuilder;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e org.apache.commons.lang3.builder.ToStringStyle;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eColor\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003e@NonNull\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e String color;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003estatic\u003c/span\u003e Color \u003cspan style=\"color:#a6e22e\"\u003eof\u003c/span\u003e(String color) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Color(color);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eColor\u003c/span\u003e(String color) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    String checked \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e Objects.\u003cspan style=\"color:#a6e22e\"\u003erequireNonNull\u003c/span\u003e(color, \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;colorがnullです。\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// TODO: 引数の中身のチェックを追加\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ecolor\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e checked;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003e@NonNull\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003evalue\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ecolor\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003e@Override\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eboolean\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eequals\u003c/span\u003e(Object obj) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e EqualsBuilder.\u003cspan style=\"color:#a6e22e\"\u003ereflectionEquals\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e, obj);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003e@Override\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehashCode\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e HashCodeBuilder.\u003cspan style=\"color:#a6e22e\"\u003ereflectionHashCode\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e/**\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e   * このオブジェクトの簡潔な説明を返します。\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e   * ただし、この表現は明記せず、変更されることがあります。\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e   */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003e@Override\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e String \u003cspan style=\"color:#a6e22e\"\u003etoString\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e ToStringBuilder.\u003cspan style=\"color:#a6e22e\"\u003ereflectionToString\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e, ToStringStyle.\u003cspan style=\"color:#a6e22e\"\u003eSHORT_PREFIX_STYLE\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"ポイント\"\u003eポイント\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/lang/doc-files/ValueBased.html\"\u003e値ベース・クラス\u003c/a\u003eも参考になりそうです。\u003c/li\u003e\n\u003cli\u003eクラスは\u003ccode\u003efinal\u003c/code\u003eにする。\n\u003cul\u003e\n\u003cli\u003eこれに限らず、原則は\u003ccode\u003efinal\u003c/code\u003eがよいです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eファクトリーメソッド\u003ccode\u003eof\u003c/code\u003eを定義\n\u003cul\u003e\n\u003cli\u003eファクトリーメソッドを使うため、Flyweightパターンが適用可能。\u003c/li\u003e\n\u003cli\u003eサブクラスを返すことも可能だが、\u003ccode\u003efinal\u003c/code\u003eなのでサブクラスは存在しない。\n\u003cul\u003e\n\u003cli\u003eImmutablesを使えば、実装とインタフェースを分離可能。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eof\u003c/code\u003eは短くて広く使われているため。\u003c/li\u003e\n\u003cli\u003e引数の内容に条件がある場合は\u003ccode\u003eofBase64(String)\u003c/code\u003eのように条件をメソッド名に付ける。\u003c/li\u003e\n\u003cli\u003eフォームから渡されたときなど、エラー時にチェック例外を投げたい場合は、別メソッドを作る。\n\u003cul\u003e\n\u003cli\u003eメソッド名は\u003ccode\u003eparse\u003c/code\u003eが良さそう\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eコンストラクタ or ファクトリで引数のチェックを行う。\n\u003cul\u003e\n\u003cli\u003enullチェック\u003c/li\u003e\n\u003cli\u003e空文字列など、使う側からしたらありえないもの\u003c/li\u003e\n\u003cli\u003eIllegalArgumentExceptionを投げる\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eof\u003c/code\u003eと\u003ccode\u003eparse\u003c/code\u003e両方実装する場合を考えると、引数チェックはファクトリの方がいいかもしれない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e必要な処理はコンストラクタで全て行っておく\u003c/strong\u003e。\n\u003cul\u003e\n\u003cli\u003e逆に言えば、他のメソッドでIllegalStateExceptionを投げてはいけない。\u003c/li\u003e\n\u003cli\u003e本当の原因であるコンストラクタがどこで呼び出されたかが分からないため、障害解析が困難になる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etoString()\u003c/code\u003eは\u003ca href=\"https://commons.apache.org/proper/commons-lang/\"\u003eApache Commons Lang\u003c/a\u003eを使ってます。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003etoString()\u003c/code\u003eはログに使うことがメインなので、このような実装を好んでいます。\n\u003cul\u003e\n\u003cli\u003eただし、ValueObjectはオブジェクトのIDには意味がないため、\u003ca href=\"https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/builder/ToStringStyle.html#SHORT_PREFIX_STYLE\"\u003eSHORT_PREFIX_STYLE\u003c/a\u003eを使います。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eフィールドの値を返したい場合は、他のメソッドを別途定義します。\u003c/li\u003e\n\u003cli\u003e処理から除外したい場合はアノテーション\u003ccode\u003eToStringExclude\u003c/code\u003eを付けると良いみたいです。\u003c/li\u003e\n\u003cli\u003eJavadocコメントで、変更されることがあることを明記します。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eequals()\u003c/code\u003eも\u003ca href=\"https://commons.apache.org/proper/commons-lang/\"\u003eApache Commons Lang\u003c/a\u003eを使っています。まだこのコードはテストしていません。\n\u003cul\u003e\n\u003cli\u003e処理から除外したい場合はアノテーション\u003ccode\u003eEqualsExclude\u003c/code\u003eを付けると良いみたいです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ehashCode()\u003c/code\u003eも\u003ca href=\"https://commons.apache.org/proper/commons-lang/\"\u003eApache Commons Lang\u003c/a\u003eを使っています。まだこのコードはテストしていません。\n\u003cul\u003e\n\u003cli\u003e処理から除外したい場合はアノテーション\u003ccode\u003eHashCodeExclude\u003c/code\u003eを付けると良いみたいです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"テスト\"\u003eテスト\u003c/h2\u003e\n\u003cp\u003eequals()のテストには、\u003ca href=\"http://jqno.nl/equalsverifier/\"\u003eEqualsVerifier\u003c/a\u003eを使うと良さそうです。\u003c/p\u003e\n\u003ch2 id=\"処理を追加する場合\"\u003e処理を追加する場合\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eチェック例外を返したい(例外を呼び出し元で処理させたい)場合\n\u003cul\u003e\n\u003cli\u003eファクトリーメソッドに例外を付ける。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eテストクラスは、同じパッケージ名で、クラス名の最後に\u003ccode\u003eTest\u003c/code\u003eを付けたものにする。\n\u003cul\u003e\n\u003cli\u003eパッケージプライベートが使用できるため。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eゲッターは避ける(※検討中)\n\u003cul\u003e\n\u003cli\u003eテストで必要な場合は\u003cstrong\u003eパッケージプライベート\u003c/strong\u003eにする。\u003c/li\u003e\n\u003cli\u003e基本型でなく別のValue Objectを返せないか?\u003c/li\u003e\n\u003cli\u003eゲッターではなく、処理を依頼できないか?\u003c/li\u003e\n\u003cli\u003eサービスがふさわしくないか?\u003c/li\u003e\n\u003cli\u003eメソッド名に安易に\u003ccode\u003eget\u003c/code\u003eをつけてないか?\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e例: \u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/Year.html#parse-java.lang.CharSequence-\"\u003ejava.time.Year#parse()\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eEffective JavaではnullのときはNullPointerExceptionを投げると良いとされてますが、「引数間違い」という意図を分かりやすくするためにIllegalArgumentExceptionを好んでます。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Vcs",
    "url": "https://www.ikemo3.com/tags/vcs/",
    "contents": ""
  }, 
  {
    "title": "バージョン管理システム",
    "url": "https://www.ikemo3.com/dic/vcs/",
    "contents": "\u003ch2 id=\"バージョン管理システムとは\"\u003eバージョン管理システムとは\u003c/h2\u003e\n\u003cp\u003eソースコードなどの履歴を管理するシステムです。\u003c/p\u003e\n\u003ch2 id=\"ドキュメントもバージョン管理が必須\"\u003eドキュメントもバージョン管理が必須\u003c/h2\u003e\n\u003cp\u003eバージョン管理する対象として一番多いのは、ソースコードですが、\nドキュメントもバージョン管理は必須です。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://qiita.com/y-some/items/90651c1e27f7798f87c6#comment-9c56644b4231940f775c\"\u003eQiitaのある記事についたコメント\u003c/a\u003eの通り、履歴が分かるのが良いです。\n専用の「ドキュメント管理システム」もあったりしますが、\n導入が面倒なので、バージョン管理システムで代用でもだいたいはOKかなと。\u003c/p\u003e\n"
  }, 
  {
    "title": "ブランチ",
    "url": "https://www.ikemo3.com/dic/branch/",
    "contents": "\u003ch2 id=\"ブランチとは\"\u003eブランチとは\u003c/h2\u003e\n\u003cp\u003e英語では「枝」ですが、「分岐」のことです。\u003c/p\u003e\n\u003ch2 id=\"ブランチはなるだけ避ける\"\u003eブランチはなるだけ避ける\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.continuousdeliveryconsulting.com/blog/version-control-strategies/\"\u003eVersion Control Strategies\u003c/a\u003eという記事を見つけたのですが、\n以下のように分類されています(ちゃんと読んでないのであとで読み直します)。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eリリースフィーチャーブランチ\n\u003cul\u003e\n\u003cli\u003e機能開発のためにブランチを作成して、リリース時にマージする方法\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003etrunkベース開発\n\u003cul\u003e\n\u003cli\u003eフィーチャートグルを使って、trunkだけで開発\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eインテグレーションフィーチャーブランチ\n\u003cul\u003e\n\u003cli\u003eインテグレーションブランチを用意して、trunkと定期的にマージ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eビルドフィーチャーブランチ\n\u003cul\u003e\n\u003cli\u003e1と同じようですが、開発終了時にマージ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eまだざっとしか読んでないので間違っているかもしれませんが、\n基本は「ブランチはアンチパターン」です。\n実際、ブランチを作ることは、倍のコストがかかります。\n広く使われているソフトで、複数のバージョンを管理するだけのコストに見合う場合はまだいいですが。\u003c/p\u003e\n\u003cp\u003eこれは強く言いたいのですが、ブランチがアンチパターンだからと言って、\n独自の方式を採用するのはもっと論外です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e正しい方法は、フィーチャートグルを使って、trunk 1本で開発することです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e「非常識」な開発者がよくやる。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "標準型",
    "url": "https://www.ikemo3.com/dic/standard-type/",
    "contents": "\u003ch2 id=\"標準型とは\"\u003e標準型とは\u003c/h2\u003e\n\u003cp\u003e実践ドメイン駆動設計に出てくる用語で、\nNo.5880(Kindle) 「6.3 標準型を値として実現する」にて\n以下のように定義されています。\n英語ではそのまま\u0026quot;standard type\u0026quot;のようです。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e多くのシステムやアプリケーションでは、いわゆる\u003cstrong\u003e標準型\u003c/strong\u003eが必要になる。\n標準型とは、何かのモノについて説明するためのオブジェクトで、\nその型を表している。モノ(エンティティ)あるいは説明(値)そのものがあった上で、\nそれを他と区別する。この概念について、\n業界で一般に使われている名称があるのかは知らないが、\n今までに\u003cstrong\u003eタイプコード\u003c/strong\u003eあるいは\u003cstrong\u003eルックアップ\u003c/strong\u003eなどと\n呼ばれているのを聞いたことはある。\n\u003cstrong\u003eタイプコード\u003c/strong\u003eと言われてもピンとこないし、\n\u003cstrong\u003eルックアップ\u003c/strong\u003eっていったい何を探すの?\n私が標準型という呼び名を好むのは、そのほうが内容をきちんと説明しているからだ。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eなんのこっちゃという感じですが、\n「タイプコード」という言葉はリファクタリングにも出てきます。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/427405019X/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/427405019X.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/427405019X/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eこの本では「血液型」や「職種(エンジニア、営業、マネージャ)」が\n例として挙げられています。これで想像が付くとは思いますが、\n有限個なら標準型を使うのがいいと思います。\u003c/p\u003e\n\u003cp\u003e当時はJavaのバージョンが古かったのですが、\nいま実装するなら、enumが一番自然だと思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "Jenkins: Dockerの使用方法",
    "url": "https://www.ikemo3.com/inverted/jenkins/docker/",
    "contents": "\u003ch2 id=\"現時点での結論\"\u003e現時点での結論\u003c/h2\u003e\n\u003cp\u003edaemonとして動かすことを想定しているようなので、\nそれ以外で使う場合、例えばビルドにはJenkinsの機能は使わないほうが良さそうです。\nいろいろ格闘したんですが、うまくいかなかったので。。。\u003c/p\u003e\n\u003ch2 id=\"実行時の注意\"\u003e実行時の注意\u003c/h2\u003e\n\u003cp\u003e共通で \u003ccode\u003e-d\u003c/code\u003e オプションが付き、さらに \u003ccode\u003e--entrypoint cat\u003c/code\u003e が付くので、\n実行したいものはJenkinsfileに \u003ccode\u003esh\u003c/code\u003e で直接コマンドを書く。\n\u003ccode\u003e-d\u003c/code\u003e オプションなしはissueとして上がっている\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDocker実行には、1つexecutorを消費する模様。\u003c/li\u003e\n\u003cli\u003e実行時に自動的に以下のオプションが付く。\n\u003cul\u003e\n\u003cli\u003e共通\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-d\u003c/code\u003e: バックグラウンド実行\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDeclarative Pipeline, \u003ccode\u003einside\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-t\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-u \u0026lt;JenkinsのUID\u0026gt;:\u0026lt;JenkinsのGID\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-w \u0026lt;ワークスペースのパス\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-v\u003c/code\u003e: ワークスペースの内容をマップしているようです。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--entrypoint cat\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"uidgidの取得\"\u003eUID/GIDの取得\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUID: \u003ccode\u003eenv.UID\u003c/code\u003e でできるらしい(未確認)。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/49473722/how-to-get-uid-in-jenkins-pipeline-job\"\u003eubuntu 16.04 - How to get UID in Jenkins Pipeline job - Stack Overflow\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eGID: 不可能な模様。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/38794818/how-to-get-gid-of-group-on-host-in-dockerfile\"\u003ejenkins - How to get GID of group on host in Dockerfile - Stack Overflow\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e組織内でGIDを決めておくほうが良いと書かれている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"jenkinsfileの書き方\"\u003eJenkinsfileの書き方\u003c/h2\u003e\n\u003ch3 id=\"stageの中に書く--外部イメージを指定する場合\"\u003estageの中に書く / 外部イメージを指定する場合\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003estage (\u0026#39;...\u0026#39;) {\n  agent {\n    docker {\n      image \u0026#34;...\u0026#34;\n      args \u0026#34;...\u0026#34;\n    }\n  }\n}\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"stageの中に書く--dockerfileを指定する場合\"\u003estageの中に書く / Dockerfileを指定する場合\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003estage (\u0026#39;...\u0026#39;) {\n  agent {\n    dockerfile {\n      dir \u0026#34;...\u0026#34;\n      additionalBuildArgs \u0026#34;...\u0026#34;\n      args \u0026#34;...\u0026#34;\n    }\n  }\n}\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"複雑な環境の場合\"\u003e複雑な環境の場合\u003c/h3\u003e\n\u003cp\u003e標準のオプションを置き換える場合は、\n\u003ca href=\"https://jenkins.io/doc/book/pipeline/docker/#advanced-usage-with-scripted-pipeline\"\u003eScripted Pipeline\u003c/a\u003eを使って自前で書いたほうが良さそうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-w\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-u\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下のようなイメージで。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003estage (\u0026#39;...\u0026#39;) {\n  steps {\n    sh \u0026#39;docker build .\u0026#39;\n    script {\n      docker.image(\u0026#34;centos\u0026#34;).withRun(\u0026#39;-v $HOME/.m2:/root/.m2\u0026#34;) {\n        sh \u0026#39;ls\u0026#39;\n      }\n    }\n  }\n}\n\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://issues.jenkins-ci.org/browse/JENKINS-48417\"\u003e[JENKINS-48417] Ability to run Docker container in foreground mode (no detached) - Jenkins JIRA\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "MavenのDeployプラグインの使い方",
    "url": "https://www.ikemo3.com/inverted/maven/deploy/",
    "contents": "\u003cp\u003escpによるデプロイ方法を記載しています。\u003c/p\u003e\n\u003ch2 id=\"pomxmlの書き方\"\u003epom.xmlの書き方\u003c/h2\u003e\n\u003cp\u003eネームスペースは省略しています。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-xml\" data-lang=\"xml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;project\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026lt;build\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;plugins\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003e\u0026lt;plugin\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003e\u0026lt;artifactId\u0026gt;\u003c/span\u003emaven-deploy-plugin\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/artifactId\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003e\u0026lt;version\u0026gt;\u003c/span\u003e2.8.2\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/version\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/plugin\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/plugins\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;extensions\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003e\u0026lt;extension\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003e\u0026lt;groupId\u0026gt;\u003c/span\u003eorg.apache.maven.wagon\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/groupId\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003e\u0026lt;artifactId\u0026gt;\u003c/span\u003ewagon-ssh\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/artifactId\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003e\u0026lt;version\u0026gt;\u003c/span\u003e2.12\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/version\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/extension\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/extensions\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/build\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026lt;distributionManagement\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;repository\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003e\u0026lt;id\u0026gt;\u003c/span\u003einternal\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/id\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003e\u0026lt;name\u0026gt;\u003c/span\u003eInternal Repository\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/name\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003e\u0026lt;url\u0026gt;\u003c/span\u003e${deploy.base}\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/url\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/repository\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/distributionManagement\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/project\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"settingsxmlの書き方\"\u003esettings.xmlの書き方\u003c/h2\u003e\n\u003cp\u003e公開鍵認証の場合は、\u003ccode\u003e\u0026lt;password\u0026gt;\u0026lt;/password\u0026gt;\u003c/code\u003eの代わりに、\n\u003ccode\u003e\u0026lt;privateKey\u0026gt;${user.home}/.ssh/id_rsa\u0026lt;/privateKey\u0026gt;\u003c/code\u003eとすればよい。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-xml\" data-lang=\"xml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e\u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;EUC-JP\u0026#34;?\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;settings\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003exmlns=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;http://maven.apache.org/SETTINGS/1.1.0\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003exmlns:xsi=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;http://www.w3.org/2001/XMLSchema-instance\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003exsi:schemaLocation=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;http://maven.apache.org/SETTINGS/1.1.0\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#e6db74\"\u003e    https://maven.apache.org/xsd/settings-1.1.0.xsd\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026lt;profiles\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;profile\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003e\u0026lt;id\u0026gt;\u003c/span\u003edefault\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/id\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003e\u0026lt;properties\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003e\u0026lt;deploy.base\u0026gt;\u003c/span\u003eURL\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/deploy.base\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/properties\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/profile\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/profiles\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026lt;servers\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;server\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003e\u0026lt;id\u0026gt;\u003c/span\u003einternal\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/id\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003e\u0026lt;username\u0026gt;\u003c/span\u003eユーザ名\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/username\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003e\u0026lt;password\u0026gt;\u003c/span\u003eパスワード\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/password\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/server\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/servers\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026lt;activeProfiles\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;activeProfile\u0026gt;\u003c/span\u003edefault\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/activeProfile\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/activeProfiles\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/settings\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "日本再興戦略",
    "url": "https://www.ikemo3.com/log/nihon-saikou-senryaku/",
    "contents": "\u003ch2 id=\"なぜこの本を読もうと思ったのか\"\u003eなぜこの本を読もうと思ったのか\u003c/h2\u003e\n\u003cp\u003e落合陽一氏は名前は断片的に聞くのですが、\nどんな人なのかちょっと知りたいのがあって、読んでみました。\u003c/p\u003e\n\u003ch2 id=\"ニュースに染まってない\"\u003eニュースに染まってない\u003c/h2\u003e\n\u003cp\u003e自分が人を見るときに重要視するのは、\nニュースの価値観に染まってないかどうかです。\n特に政治、社会、経済の3つについてどう語っているか。\n逆に言えば、この3つが、ニュースの一番醜いところを表しています。\u003c/p\u003e\n\u003cp\u003eその意味では良い感性を持っているなと感じました。\nただ、マスコミが悪いといいつつ、その根拠がトレンディドラマというのは、\n正直どうかと思います。トレンディドラマとか男性は見ないっしょ。。。\u003c/p\u003e\n\u003ch2 id=\"感性をそのまま言葉にしている\"\u003e感性をそのまま言葉にしている\u003c/h2\u003e\n\u003cp\u003e感性は確かな方だとは思いますが、\n自分から見ても話が飛びすぎて、ちょっとどうかなぁという感じがあります。\n特に仮想通貨の話とか。\u003c/p\u003e\n\u003cp\u003e具体的なアイデアを論理的に話すのではなく、\n感じたことをそのまま言葉にしている感じがありました。\nまあそれが悪いわけではないですが。\u003c/p\u003e\n\u003ch2 id=\"今苦しんでいる人への理解が見えない\"\u003e「今苦しんでいる人」への理解が見えない\u003c/h2\u003e\n\u003cp\u003eこれを求めるのは酷かなとは思うのですが、\n自分が読んでてモヤモヤしたのは、\n「今苦しんでいる人」への理解が見えないことです。\u003c/p\u003e\n\u003cp\u003e例えば「兼業解禁と解雇緩和をセットにせよ」というのは\n自分も大賛成なのですが、これで苦しくなる人も結構出ると思います。\nそういう人のことは目に入ってない感じなんですよね。\n自分は、「職業訓練とその間の生活補助を厚くする」という案を出したいです。\u003c/p\u003e\n\u003cp\u003e「これを求めるのは酷かな」というのは、\nこの本の内容はあくまでビジョンだからです。\u003c/p\u003e\n\u003ch2 id=\"百姓百の生業\"\u003e百姓＝百の生業\u003c/h2\u003e\n\u003cp\u003e逆に自分が今読んでてはっとさせられたのは、\n百姓＝百の生業という考え方です。\nまあ、兼業解禁自体はOKなのですが、\n「何か1つ立派なものを持ってないと評価しない」という\n自分の考え方の偏りに気づいたのがはっとさせられたことです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4344032179/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4344032179.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4344032179/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n日本再興戦略 (NewsPicks Book)\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Docker: CentOS 7イメージの使い方",
    "url": "https://www.ikemo3.com/inverted/docker/centos7/",
    "contents": "\u003ch2 id=\"参考資料\"\u003e参考資料\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecentos:7: \u003ca href=\"https://github.com/CentOS/sig-cloud-instance-build/blob/master/docker/centos-7.ks\"\u003esig-cloud-instance-build/centos-7.ks at master · CentOS/sig-cloud-instance-build\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CentOS/CentOS-Dockerfiles\"\u003eCentOS/CentOS-Dockerfiles: Dockerfiles for various common implementations\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"yum\"\u003eyum\u003c/h2\u003e\n\u003cp\u003eRUNの最後には、\u003ccode\u003eyum clean all\u003c/code\u003eを流すことで、ファイルサイズが縮小される。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Dockerfile\" data-lang=\"Dockerfile\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRUN\u003c/span\u003e yum install -y git \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e yum clean all\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"ロケールの追加\"\u003eロケールの追加\u003c/h2\u003e\n\u003cp\u003e以下のようにする必要がある。\nyum updateしないと、現在入っているバージョンのglibc-commonが見つからず、\nエラーになることがある。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Dockerfile\" data-lang=\"Dockerfile\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRUN\u003c/span\u003e yum update -y \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e yum clean all\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRUN\u003c/span\u003e rm -f /etc/rpm/macros.image-language-conf \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    sed -i \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;/^override_install_langs=/d\u0026#39;\u003c/span\u003e /etc/yum.conf \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    yum -y reinstall glibc-common\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"manを見たい場合\"\u003emanを見たい場合\u003c/h2\u003e\n\u003cp\u003e何かを動かすだけならmanを見ることはないのですが、\nちょっとLinuxのmanを見たい場合。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://unix.stackexchange.com/questions/259478/cant-install-man-pages-on-minimal-centos-docker-container\"\u003erpm - Can\u0026rsquo;t install man pages on minimal Centos Docker container - Unix \u0026amp; Linux Stack Exchange\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ccode\u003e/etc/yum.conf\u003c/code\u003e に以下の設定が入っているのが原因です。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003etsflags=nodocs\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eyum.confを編集するか、以下のようにしてください。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eyum --setopt=tsflags='' reinstall man-pages\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"systemdを起動\"\u003esystemdを起動\u003c/h2\u003e\n\u003cp\u003e以下を参考にしました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dev.classmethod.jp/cloud/aws/docker-systemd/\"\u003eDockerコンテナでSystemdを使って複数プロセスを起動する ｜ Developers.IO\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Dockerfile\" data-lang=\"Dockerfile\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eFROM\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003ecentos:7\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRUN\u003c/span\u003e yum update -y \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e yum clean all\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRUN\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003ecd /lib/systemd/system/sysinit.target.wants/; \u003cspan style=\"color:#66d9ef\"\u003efor\u003c/span\u003e i in *; \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e $i \u003cspan style=\"color:#f92672\"\u003e==\u003c/span\u003e systemd-tmpfiles-setup.service \u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e||\u003c/span\u003e rm -f $i; \u003cspan style=\"color:#66d9ef\"\u003edone\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e rm -f /lib/systemd/system/multi-user.target.wants/* \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e rm -f /etc/systemd/system/*.wants/* \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e rm -f /lib/systemd/system/local-fs.target.wants/* \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e rm -f /lib/systemd/system/sockets.target.wants/*udev* \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e rm -f /lib/systemd/system/sockets.target.wants/*initctl* \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e rm -f /lib/systemd/system/basic.target.wants/* \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e rm -f /lib/systemd/system/anaconda.target.wants/*\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRUN\u003c/span\u003e yum -y install \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  epel-release \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  openssh-clients \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  openssh-server \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e yum clean all\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRUN\u003c/span\u003e systemctl enable sshd.service\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eEXPOSE\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e22\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eVOLUME\u003c/span\u003e [\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;/sys/fs/cgroup\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;/run\u0026#34;\u003c/span\u003e]\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eCMD\u003c/span\u003e [\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;/usr/sbin/init\u0026#34;\u003c/span\u003e]\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e起動方法は以下のようにしています。\n停止する時は、\u003ccode\u003edocker stop\u003c/code\u003eを使ってください。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker run -it -v /sys/fs/cgroup:/sys/fs/cgroup:ro \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  -p 2222:22 \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  --rm \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  --name centos7-systemd \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  centos7-systemd\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eちょっとだけ変えてます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026amp;\u0026amp;でつなぐようにした\n\u003cul\u003e\n\u003cli\u003eエラーが起きたときに終了するのでこっちの方がいいかなと。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eyum updateだけレイヤを分けてる\n\u003cul\u003e\n\u003cli\u003eテストする際はレイヤが分かれていたほうが便利なので、分けています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003enginxは入れていない\u003c/li\u003e\n\u003cli\u003eVOLUMEに/runを追加\n\u003cul\u003e\n\u003cli\u003eこれがないと、macOS上では動きませんでした。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "DockerでMavenを使う方法",
    "url": "https://www.ikemo3.com/inverted/docker/use-maven/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eDockerでMavenを使う方法です。\n公式リポジトリは以下になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://hub.docker.com/_/maven/\"\u003elibrary/maven - Docker Hub\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003ch2 id=\"mavenリポジトリの内容をキャッシュする\"\u003eMavenリポジトリの内容をキャッシュする\u003c/h2\u003e\n\u003cp\u003eDockerでMavenリポジトリの内容をキャッシュするためには、\n以下の2つの方法があります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eホスト側の~/.m2をマウントする\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emvn dependency:get\u003c/code\u003e を使って事前ダウンロード\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eサイズが大きくなるので、通常は1番が推奨されます。\u003c/p\u003e\n\u003ch3 id=\"手順\"\u003e手順\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003edocker run\u003c/code\u003e で \u003ccode\u003e-v ~/.m2:/path/to/guest/.m2\u003c/code\u003e のように指定する。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRUN\u003c/code\u003eコマンドに\u003ccode\u003emvn dependency:get\u003c/code\u003eを追加\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/inverted/maven/download-specific-artifact/\"\u003eMaven: 特定のアーティファクトをローカルにコピー\u003c/a\u003e参照\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n"
  }, 
  {
    "title": "Locale",
    "url": "https://www.ikemo3.com/tags/locale/",
    "contents": ""
  }, 
  {
    "title": "Man",
    "url": "https://www.ikemo3.com/tags/man/",
    "contents": ""
  }, 
  {
    "title": "Systemd",
    "url": "https://www.ikemo3.com/tags/systemd/",
    "contents": ""
  }, 
  {
    "title": "タスク管理",
    "url": "https://www.ikemo3.com/manual/task-management/",
    "contents": "\u003ch2 id=\"気をつけていること\"\u003e気をつけていること\u003c/h2\u003e\n\u003ch3 id=\"作業していることはメモる\"\u003e作業していることはメモる\u003c/h3\u003e\n\u003cp\u003e例えばテストを手作業でやっている場合や、コマンドを打っている時など、全てメモします。\nなぜなら、このメモが後で手順書や、自動化のための元ネタになるからです。\u003c/p\u003e\n\u003ch3 id=\"タスクは発生したときにメモる\"\u003eタスクは発生したときにメモる\u003c/h3\u003e\n\u003cp\u003e例えばプログラム開発中に、「リリースする時にこの設定を入れとかないと動かないな」\n思うことがあります。そのときに、その設定をメモっておきます。\u003c/p\u003e\n\u003cp\u003eまたこれとは別に、たまたま頭の中でタスクが思いつくことがあります。\nそういうときもメモっておきます。\u003c/p\u003e\n\u003cp\u003eこんな感じで、タスクが発生したときにメモっておきます。\nこのメモを定期的に見直して、やるべきことが漏れないように気をつけています。\u003c/p\u003e\n\u003ch3 id=\"深追いしない\"\u003e深追いしない\u003c/h3\u003e\n\u003cp\u003eこれはあまり守れてないのですが、、、\u003c/p\u003e\n\u003cp\u003e例えばあるタスクAをしています。\nしかし、そのAをするために別のタスクBをする必要があります。\nそのBをするために別のタスクCを、、、とどんどん深くなっていくことがあります。\u003c/p\u003e\n\u003cp\u003eこういうときには、一旦切り上げて、整理することが必要です。\n深追いすると、以下のデメリットがあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eやってたことを忘れる\u003c/li\u003e\n\u003cli\u003e割り込みが入った時のロスが大きい\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"wipを適正に保つ\"\u003eWIPを適正に保つ\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"/dic/wip/\"\u003eWIP\u003c/a\u003eは多すぎても少なすぎてもよくありません。\n多すぎると、頭が混乱して、作業効率が落ちます。\n少なすぎると、だらけてしまいます。\u003c/p\u003e\n"
  }, 
  {
    "title": "ログ",
    "url": "https://www.ikemo3.com/log/",
    "contents": ""
  }, 
  {
    "title": "人口密度",
    "url": "https://www.ikemo3.com/dic/population-density/",
    "contents": "\u003ch2 id=\"人口密度とは\"\u003e人口密度とは\u003c/h2\u003e\n\u003cp\u003e単位面積あたりの居住人口です。\u003c/p\u003e\n\u003ch2 id=\"データ\"\u003eデータ\u003c/h2\u003e\n\u003ch3 id=\"都市city\"\u003e都市(City)\u003c/h3\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e都市\u003c/th\u003e\n          \u003cth\u003e面積(km^2)\u003c/th\u003e\n          \u003cth\u003e総人口(人)\u003c/th\u003e\n          \u003cth\u003e人口密度(人/km^2)\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e東京都区部\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003e626.70\u003c/td\u003e\n          \u003ctd\u003e9,460,426\u003c/td\u003e\n          \u003ctd\u003e15,093\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eパリ\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003e105.4\u003c/td\u003e\n          \u003ctd\u003e2,229,621\u003c/td\u003e\n          \u003ctd\u003e21,153\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3 id=\"都市的地域urban\"\u003e都市的地域(Urban)\u003c/h3\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e都市\u003c/th\u003e\n          \u003cth\u003e面積(km^2)\u003c/th\u003e\n          \u003cth\u003e総人口(人)\u003c/th\u003e\n          \u003cth\u003e人口密度(人/km^2)\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e東京都区部\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003e3,925\u003c/td\u003e\n          \u003ctd\u003e37,832,892\u003c/td\u003e\n          \u003ctd\u003e8,790\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eパリ\u003c/td\u003e\n          \u003ctd\u003e2,845\u003c/td\u003e\n          \u003ctd\u003e10,601,122\u003c/td\u003e\n          \u003ctd\u003e3,700\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3 id=\"都市圏metro\"\u003e都市圏(Metro)\u003c/h3\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e都市\u003c/th\u003e\n          \u003cth\u003e面積(km^2)\u003c/th\u003e\n          \u003cth\u003e総人口(人)\u003c/th\u003e\n          \u003cth\u003e人口密度(人/km^2)\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e東京都区部\u003c/td\u003e\n          \u003ctd\u003e14,034\u003c/td\u003e\n          \u003ctd\u003e37,832,892\u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003e2,631\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eパリ\u003c/td\u003e\n          \u003ctd\u003e17,174.4\u003c/td\u003e\n          \u003ctd\u003e12,405,426\u003c/td\u003e\n          \u003ctd\u003e720\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E6%9D%B1%E4%BA%AC%E9%83%BD%E5%8C%BA%E9%83%A8\"\u003e東京都区部 - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://en.wikipedia.org/wiki/Paris\"\u003eParis - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003eWikipediaには概算で21,000人/km^2と掲載されています\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e\u003ca href=\"https://en.wikipedia.org/wiki/Greater_Tokyo_Area\"\u003eGreater Tokyo Area - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003eUrbanとMetroで人口が同じになってるのが気になりますが。。。\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Amazon EBS",
    "url": "https://www.ikemo3.com/dic/ebs/",
    "contents": "\u003ch2 id=\"amazon-ebsとは\"\u003eAmazon EBSとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/ec2/\"\u003eEC2\u003c/a\u003eで使うためのブロックストレージです。\u003c/p\u003e\n\u003ch2 id=\"スナップショット\"\u003eスナップショット\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/EBSSnapshots.html\"\u003eスナップショット\u003c/a\u003eという機能で、現在のディスクの状態を保存しておけます。\nこれはS3に保存されます。\u003c/p\u003e\n\u003ch2 id=\"スナップショットとamiの違い\"\u003eスナップショットとAMIの違い\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eスナップショット: ディスクの中身のみ\u003c/li\u003e\n\u003cli\u003eAMI: スナップショット + インスタンスの構成情報\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Amazon EC2 インスタンスストア",
    "url": "https://www.ikemo3.com/dic/ec2-instance-store/",
    "contents": "\u003ch2 id=\"ec2-インスタンスストアとは\"\u003eEC2 インスタンスストアとは\u003c/h2\u003e\n\u003cp\u003e一時的に使うストレージのようです。\n公式には以下のような使い方が想定されています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eバッファ\u003c/li\u003e\n\u003cli\u003eキャッシュ\u003c/li\u003e\n\u003cli\u003eスクラッチデータ\u003c/li\u003e\n\u003cli\u003eその他の一時コンテンツ\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e技術的には、ホストコンピュータの内蔵ディスクのようです。\nインスタンスタイプによって容量やタイプ(SSD/HDD)などが決まるようなので、\nそれから速度を類推するのがいいかと思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "Amazon RDS",
    "url": "https://www.ikemo3.com/dic/rds/",
    "contents": "\u003ch2 id=\"amazon-rdsとは\"\u003eAmazon RDSとは\u003c/h2\u003e\n\u003cp\u003eリレーショナルデータベースのサービスです。\u003c/p\u003e\n\u003ch2 id=\"対応しているデータベース\"\u003e対応しているデータベース\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/amazon-aurora/\"\u003eAmazon Aurora\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eMySQL 5.6互換\u003c/li\u003e\n\u003cli\u003eMySQL 5.7互換\u003c/li\u003e\n\u003cli\u003ePostgreSQL\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAmazon RDS for MySQL\u003c/li\u003e\n\u003cli\u003eAmazon RDS for MariaDB\u003c/li\u003e\n\u003cli\u003eAmazon RDS for Oracle\u003c/li\u003e\n\u003cli\u003eAmazon RDS for PostgreSQL\u003c/li\u003e\n\u003cli\u003eAmazon RDS for SQL Server\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"料金\"\u003e料金\u003c/h2\u003e\n\u003cp\u003e全て東京リージョンの料金です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eインスタンス料金: db.r4.large\n\u003cul\u003e\n\u003cli\u003eAmazon Aurora(PostgreSQL互換)で選べる最小のもののようなので。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eマルチAZ配置\n\u003cul\u003e\n\u003cli\u003eAuroraは十分耐久性が高いようなので\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e汎用(SSD)ストレージ\u003c/li\u003e\n\u003c/ul\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e種類\u003c/th\u003e\n          \u003cth\u003eインスタンス料金\u003c/th\u003e\n          \u003cth\u003eストレージ料金\u003c/th\u003e\n          \u003cth\u003eI/O料金\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAmazon Aurora(MySQL互換)\u003c/td\u003e\n          \u003ctd\u003e$0.35 / 時間\u003c/td\u003e\n          \u003ctd\u003e$0.12 / GB / 月\u003c/td\u003e\n          \u003ctd\u003e$0.24 / 100万件のリクエスト\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAmazon Aurora(PostgreSQL互換)\u003c/td\u003e\n          \u003ctd\u003e$0.35 / 時間\u003c/td\u003e\n          \u003ctd\u003e$0.12 / GB / 月\u003c/td\u003e\n          \u003ctd\u003e$0.24 / 100万件のリクエスト\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAmazon RDS for MariaDB\u003c/td\u003e\n          \u003ctd\u003e$0.285 / 時間\u003c/td\u003e\n          \u003ctd\u003e$0.276 / GB / 月\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAmazon RDS for MySQL\u003c/td\u003e\n          \u003ctd\u003e$0.285 / 時間\u003c/td\u003e\n          \u003ctd\u003e$0.276 / GB / 月\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAmazon RDS for Oracle(Standard Edition 2)\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003e$0.564 / 時間\u003c/td\u003e\n          \u003ctd\u003e$0.276 / GB / 月\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAmazon RDS for PostgreSQL\u003c/td\u003e\n          \u003ctd\u003e$0.30 / 時間\u003c/td\u003e\n          \u003ctd\u003e$0.276 / GB / 月\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAmazon RDS for SQL Server(Web)\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003e$0.49 / 時間\u003c/td\u003e\n          \u003ctd\u003e$0.276b / GB / 月\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"古いバージョンの廃止\"\u003e古いバージョンの廃止\u003c/h2\u003e\n\u003cp\u003eAmazon RDSでは、古いバージョンを廃止している。\n「Q: Amazon RDS では、現在サポートされているバージョンのデータベースエンジンの廃止についてガイドラインが提供されていますか?」より、\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eメジャーバージョン(例: MySQL 5.6): 3年間のサポートを予定\u003c/li\u003e\n\u003cli\u003eマイナーバージョン(例: MySQL 5.6.37): 1年間のサポートを予定\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただし、予定より早く終了する可能性がある。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eこれらのガイドラインを満たすための作業が行われていますが、特定のメジャーバージョンまたはマイナーバージョンにセキュリティの問題がある場合には、予定より早く廃止する可能性があります。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://dev.classmethod.jp/cloud/aws/decision-method-for-aurora-multiaz/\"\u003eちょっと待って！Auroraを使う時にMulti-AZが本当に必要ですか？ ｜ Developers.IO\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eStandard Edition 1だとちょうど同じインスタンスがないようなので。。。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e使ったことないのでどれがいいか分からん。。。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Amazon Route 53",
    "url": "https://www.ikemo3.com/dic/route53/",
    "contents": "\u003ch2 id=\"route-53とは\"\u003eRoute 53とは\u003c/h2\u003e\n\u003cp\u003eDNSサーバです。\u003c/p\u003e\n\u003ch2 id=\"料金\"\u003e料金\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://aws.amazon.com/jp/route53/pricing/\"\u003e料金 - Amazon Route 53 | AWS\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e最初の方の料金は以下になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eゾーン: 0.5ドル/1ゾーン\u003c/li\u003e\n\u003cli\u003eクエリ: 0.4ドル/100万クエリ\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこのサイトもRoute53を使っていますが、\nクエリは1日数千くらいなので、しばらくは影響なさそうです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Amazon S3",
    "url": "https://www.ikemo3.com/dic/s3/",
    "contents": "\u003ch2 id=\"s3とは\"\u003eS3とは\u003c/h2\u003e\n\u003cp\u003eインターネットデータ用のリポジトリです。\u003c/p\u003e\n\u003ch2 id=\"比較\"\u003e比較\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://aws.amazon.com/jp/s3/pricing/\"\u003e料金 - Amazon S3（クラウドストレージ）｜AWS\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eいずれも使用量による値下げを含まない、最初の価格です。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eストレージクラス\u003c/th\u003e\n          \u003cth\u003eストレージ料金\u003c/th\u003e\n          \u003cth\u003e転送料金\u003c/th\u003e\n          \u003cth\u003eリクエスト料金(GET)\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eS3 標準\u003c/td\u003e\n          \u003ctd\u003e$0.023/GB\u003c/td\u003e\n          \u003ctd\u003e$0.0007/GB\u003c/td\u003e\n          \u003ctd\u003e$0.0004/1000件\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eS3 標準 - 低頻度アクセス\u003c/td\u003e\n          \u003ctd\u003e$0.0125/GB\u003c/td\u003e\n          \u003ctd\u003e$0.01/GB\u003c/td\u003e\n          \u003ctd\u003e$0.001/1000件\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eS3 1ゾーン - 低頻度アクセス\u003c/td\u003e\n          \u003ctd\u003e$0.01/GB\u003c/td\u003e\n          \u003ctd\u003e$0.01/GB\u003c/td\u003e\n          \u003ctd\u003e$0.001/1000件\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAmazon Glacier ストレージ\u003c/td\u003e\n          \u003ctd\u003e$0.004/GB\u003c/td\u003e\n          \u003ctd\u003e$0.025/GB 〜 $0.03/GB\u003c/td\u003e\n          \u003ctd\u003e$0.025/1000件 〜 $10/1000件\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eデータ転送量によっても料金がかかりますが、こちらは全て同じようです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://aws.amazon.com/jp/glacier/pricing/\"\u003e料金 - Amazon Glacier（オブジェクトストレージ）｜AWS\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Amazon Web Services(AWS)",
    "url": "https://www.ikemo3.com/dic/aws/",
    "contents": "\u003ch2 id=\"amazon-web-servicesawsとは\"\u003eAmazon Web Services(AWS)とは\u003c/h2\u003e\n\u003cp\u003eクラウドコンピューティングサービスです。\u003c/p\u003e\n\u003ch2 id=\"サービス\"\u003eサービス\u003c/h2\u003e\n\u003cp\u003eあまり使ってないなどの理由で個別に記事にしてないもの。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://aws.amazon.com/jp/cloudfront/\"\u003eAmazon CloudFront\u003c/a\u003e: 高速コンテンツ配信サービス(CDN)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://aws.amazon.com/jp/fargate/\"\u003eAWS Fargate\u003c/a\u003e: コンテナの使用を楽にするサービス\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://aws.amazon.com/jp/sagemaker/\"\u003eAmazon SageMaker\u003c/a\u003e: 機械学習\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"リージョン\"\u003eリージョン\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://aws.amazon.com/jp/about-aws/global-infrastructure/regional-product-services/\"\u003eリージョン\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"用語\"\u003e用語\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e略称\u003c/th\u003e\n          \u003cth\u003e正式名称\u003c/th\u003e\n          \u003cth\u003e内容\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAMI\u003c/td\u003e\n          \u003ctd\u003eAmazon Machine Image\u003c/td\u003e\n          \u003ctd\u003eディスクイメージ\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eIAM\u003c/td\u003e\n          \u003ctd\u003eAWS Identity and Access Management\u003c/td\u003e\n          \u003ctd\u003eID・アクセス管理\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"導入\"\u003e導入\u003c/h2\u003e\n\u003cp\u003eAWSはいろいろなサービスを使わないともったいないと思いますが、\n一旦はインフラ部分だけAS-ISで移行するのもアリだそうです\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\nIaaSとしての扱いですね。\u003c/p\u003e\n\u003ch2 id=\"書籍\"\u003e書籍\u003c/h2\u003e\n\u003cp\u003e例えばこのあたり。\u003c/p\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4774176737/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4774176737.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4774176737/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nAmazon Web Services実践入門 (WEB\u0026#43;DB PRESS plus)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07H5VV6KP/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B07H5VV6KP.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B07H5VV6KP/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nソフトウェアデザイン 2018年11月号\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eVagrant Boxみたいな感じかな。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://japan.zdnet.com/pickup/serverworks_201611/35091990/\"\u003eLift-and-Shift、Desktop Anywhere、All-in ― オンプレからAWSへの移行の3つのアプローチ - ZDNet Japan\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "AWSのストレージ比較",
    "url": "https://www.ikemo3.com/theme/aws/storage/",
    "contents": "\u003ch2 id=\"種類\"\u003e種類\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e種類\u003c/th\u003e\n          \u003cth\u003e目的\u003c/th\u003e\n          \u003cth\u003e近いもの\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAmazon EBS\u003c/td\u003e\n          \u003ctd\u003e主要なストレージ\u003c/td\u003e\n          \u003ctd\u003eSAN\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAmazon EC2 インスタンスストア\u003c/td\u003e\n          \u003ctd\u003eホストコンピュータにアタッチされた一時的なストレージ\u003c/td\u003e\n          \u003ctd\u003e内蔵SSD / HDD\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAmazon EFS\u003c/td\u003e\n          \u003ctd\u003eファイルシステム\u003c/td\u003e\n          \u003ctd\u003eNFS\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAmazon S3\u003c/td\u003e\n          \u003ctd\u003eインターネット用のストレージ\u003c/td\u003e\n          \u003ctd\u003eWebDAV\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"信頼性\"\u003e信頼性\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e種類\u003c/th\u003e\n          \u003cth\u003e耐久性\u003c/th\u003e\n          \u003cth\u003e可用性\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://aws.amazon.com/jp/ebs/details/\"\u003eAmazon EBS\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e99.999%\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eAmazon EC2 インスタンスストア\u003c/td\u003e\n          \u003ctd\u003eなし\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003eなし\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://aws.amazon.com/jp/efs/features/\"\u003eAmazon EFS\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e高い(EBS以上\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e)\u003c/td\u003e\n          \u003ctd\u003e高い\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://aws.amazon.com/jp/s3/details/#durability\"\u003eAmazon S3\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e99.999999999%\u003c/td\u003e\n          \u003ctd\u003e99.99%(標準)\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"料金\"\u003e料金\u003c/h2\u003e\n\u003cp\u003e全て東京リージョンの料金です。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e種類\u003c/th\u003e\n          \u003cth\u003e詳細\u003c/th\u003e\n          \u003cth\u003e期間\u003c/th\u003e\n          \u003cth\u003e料金\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://aws.amazon.com/jp/ebs/pricing/\"\u003eAmazon EBS\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e汎用SSD(gp2)\u003c/td\u003e\n          \u003ctd\u003e1ヶ月\u003c/td\u003e\n          \u003ctd\u003e$0.12 / GB\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/InstanceStorage.html\"\u003eAmazon EC2 インスタンスストア\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eN/A\u003c/td\u003e\n          \u003ctd\u003eN/A\u003c/td\u003e\n          \u003ctd\u003e無料(インスタンス使用料に含む)\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://aws.amazon.com/jp/efs/pricing/\"\u003eAmazon EFS\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eN/A\u003c/td\u003e\n          \u003ctd\u003e1ヶ月\u003c/td\u003e\n          \u003ctd\u003e$0.36 / GB\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://aws.amazon.com/jp/s3/pricing/\"\u003eAmazon S3\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e最初の50TB/月\u003c/td\u003e\n          \u003ctd\u003e30日\u003c/td\u003e\n          \u003ctd\u003e$0.025 / GB\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.publickey1.jp/blog/10/amazon2.html\"\u003eAmazonクラウドの内部アーキテクチャを推測する2つの記事 － Publickey\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://aws.amazon.com/jp/ec2/details/\"\u003eEC2の可用性\u003c/a\u003eが99.99ですが、インスタンス停止時に消えてしまうので、なしとしました。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"https://aws.amazon.com/jp/efs/when-to-choose-efs/\"\u003eAmazon Elastic File System (EFS) | Cloud File Storage | When to Choose EFS\u003c/a\u003eによれば、\u003ccode\u003eStored redundantly across multiple AZs\u003c/code\u003eと書かれているので、EBS以上と判断。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/InstanceStorage.html\"\u003eAmazon EC2 インスタンスストア - Amazon Elastic Compute Cloud\u003c/a\u003eより、「インスタンスストアボリュームは、インスタンスの使用料に含まれます。」\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "いもたき",
    "url": "https://www.ikemo3.com/manual/imotaki/",
    "contents": "\u003cp\u003e自分が作るときのレシピ\u003c/p\u003e\n\u003ch2 id=\"材料\"\u003e材料\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e鶏もも肉\u003c/li\u003e\n\u003cli\u003e平こんにゃく\u003c/li\u003e\n\u003cli\u003e薄揚げ\u003c/li\u003e\n\u003cli\u003e里芋\u003c/li\u003e\n\u003cli\u003eシメジ\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"調味料\"\u003e調味料\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eみりん\u003c/li\u003e\n\u003cli\u003e(料理酒)\u003c/li\u003e\n\u003cli\u003e薄口醤油\u003c/li\u003e\n\u003cli\u003e和風だし(少々)\n\u003cul\u003e\n\u003cli\u003eうどんだしでもOK\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e鍋に水を入れる\u003c/li\u003e\n\u003cli\u003e鶏肉を一口に切ったものを入れる\u003c/li\u003e\n\u003cli\u003eあくを取る\u003c/li\u003e\n\u003cli\u003e他の材料を入れる\u003c/li\u003e\n\u003cli\u003eうどんだしを入れる\u003c/li\u003e\n\u003cli\u003eみりんと醤油で味付け\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "リージョンとアベイラビリティゾーン",
    "url": "https://www.ikemo3.com/dic/region-availability-zone/",
    "contents": "\u003ch2 id=\"リージョンとは\"\u003eリージョンとは\u003c/h2\u003e\n\u003cp\u003e用語集より\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。リージョン＝「地域」ですね。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e同じ地域にある AWS リソース のうち、指定されたもの。\nリージョンは最小 2 個の アベイラビリティーゾーン で構成されます。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"アベイラビリティーゾーンとは\"\u003eアベイラビリティーゾーンとは\u003c/h2\u003e\n\u003cp\u003e用語集より\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eリージョン 内の仕切られた場所。\n他のアベイラビリティゾーンに障害が発生してもその影響を受けず、\n低コスト、低遅延で同一リージョン内の他のアベイラビリティゾーンに接続できます。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"日本では\"\u003e日本では?\u003c/h2\u003e\n\u003cp\u003e日本では現在以下のようになっています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eリージョン: 1つ(東京)\u003c/li\u003e\n\u003cli\u003eアベイラビリティゾーン: 4つ\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e2018年に大阪ローカルリージョンが開設されました\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\n日本だと特に地震が心配ですからね。。。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/general/latest/gr/glos-chap.html#R\"\u003e用語集(R)\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/general/latest/gr/glos-chap.html#AZ\"\u003e用語集(AZ)\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"https://aws.amazon.com/jp/blogs/news/osaka-local-region-launch-2018feb/\"\u003e【 AWS 新リージョン】 AWS 大阪ローカルリージョンが本日より利用可能になりました | Amazon Web Services ブログ\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "logrotate",
    "url": "https://www.ikemo3.com/manual/logrotate/",
    "contents": "\u003ch2 id=\"設定ファイル\"\u003e設定ファイル\u003c/h2\u003e\n\u003cp\u003e以下CentOS 7の場合です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e/etc/logrotate.conf\u003c/code\u003e: 共通設定\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e/etc/logrotate.d/*\u003c/code\u003e: 個別設定\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"確認方法\"\u003e確認方法\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e-d\u003c/code\u003eオプションを使用する。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e/usr/sbin/logrotate -d /etc/logrotate.conf\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e文法チェックだけならいいが、\n内容のチェックには/etc/logrotate.d以下のファイルを指定してはいけない。\nなぜなら、/etc/logrotate.confのデフォルト設定が有効にならないから。\u003c/p\u003e\n"
  }, 
  {
    "title": "Docker: ADDで追加したファイルが変更されない",
    "url": "https://www.ikemo3.com/inverted/docker/cannot-change-file/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/docker/\"\u003eDocker\u003c/a\u003eで\u003ccode\u003eADD\u003c/code\u003eをしてもファイルが反映されない時にチェックすべきことです。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eVolumesを使っている場合、内容が破棄されます。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eChanging the volume from within the Dockerfile\u003c/strong\u003e:\nIf any build steps change the data within the volume\nafter it has been declared, those changes will be discarded.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"確認手順\"\u003e確認手順\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edocker inspect -f '{{ .Config.Volumes }}' イメージのID\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eなお、フォーマットは、Go Templateのものです。\u003c/p\u003e\n"
  }, 
  {
    "title": "警告",
    "url": "https://www.ikemo3.com/dic/warning/",
    "contents": "\u003ch2 id=\"警告とは\"\u003e警告とは\u003c/h2\u003e\n\u003cp\u003e悪いことが起きる可能性があるときに、それを通知することです。\u003c/p\u003e\n\u003ch2 id=\"プログラミングで警告は無視してはいけない\"\u003eプログラミングで警告は無視してはいけない\u003c/h2\u003e\n\u003cp\u003eプログラミング言語、特にコンパイル言語では、警告が出ることがあります。\nこれを無視してはいけないというのは「常識」です。\nちゃんと原因を調査しましょう。\u003c/p\u003e\n\u003ch2 id=\"抑制してもよい場合\"\u003e抑制してもよい場合\u003c/h2\u003e\n\u003cp\u003e例えば、java.util.Optional#get()はnullを返すことはないのですが、\nEclipseではこれがうまく検知できないようです。\nそういうときに、自分が何をやってるか分かっている場合に抑制する、\nJavaの場合にSuppressWarningsを付けるのはアリだと思います。\u003c/p\u003e\n\u003cp\u003e問題は、警告が何を意味しているかを知らずに、\nただ警告が出たから無視する、あるいは抑制するのは、\nプログラマーとしては失格です。\u003c/p\u003e\n"
  }, 
  {
    "title": "Jenkins: Slackプラグインの使用方法",
    "url": "https://www.ikemo3.com/inverted/jenkins/slack/",
    "contents": "\u003ch2 id=\"guiでの設定場所\"\u003eGUIでの設定場所\u003c/h2\u003e\n\u003cp\u003eJenkinsの管理→システムの設定\u003c/p\u003e\n\u003ch2 id=\"groovyでの設定\"\u003eGroovyでの設定\u003c/h2\u003e\n\u003cp\u003eスクリプトコンソールなどでは以下のようにできます。\n無駄なimportがあるかと思いますがとりあえずこれで動きます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-groovy\" data-lang=\"groovy\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e com.cloudbees.jenkins.plugins.sshcredentials.impl.*\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e com.cloudbees.plugins.credentials.*\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e com.cloudbees.plugins.credentials.common.*\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e com.cloudbees.plugins.credentials.domains.Domain\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e com.cloudbees.plugins.credentials.impl.*\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e hudson.util.Secret\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e java.nio.file.Files\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e jenkins.model.Jenkins\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e net.sf.json.JSONObject\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e org.jenkinsci.plugins.plaincredentials.impl.*\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e slackParameters \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  slackRoom:                \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;ルームID\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  slackTeamDomain:          \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;ドメイン\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  slackToken:               \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;トークン\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// get Jenkins instance\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eJenkins jenkins \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e Jenkins\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003egetInstance\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// get credentials domain\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e domain \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e Domain\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003eglobal\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// get credentials store\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e store \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e jenkins\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003egetExtensionList\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;com.cloudbees.plugins.credentials.SystemCredentialsProvider\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e)[\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e].\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003egetStore\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// get Slack plugin\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e slack \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e jenkins\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003egetExtensionList\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003ejenkins\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003eplugins\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003eslack\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003eSlackNotifier\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003eDescriptorImpl\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e)[\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// define form and request\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eJSONObject formData \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;slack\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;tokenCredentialId\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;slack-token\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e]]\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eas\u003c/span\u003e JSONObject\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e request \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003egetParameter: \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e name \u003cspan style=\"color:#f92672\"\u003e-\u0026gt;\u003c/span\u003e slackParameters\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003ename\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e}]\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eas\u003c/span\u003e org\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003ekohsuke\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003estapler\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003eStaplerRequest\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// add Slack configuration to Jenkins\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eslack\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003econfigure\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003erequest\u003cspan style=\"color:#f92672\"\u003e,\u003c/span\u003e formData\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// save to disk\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eslack\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003esave\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ejenkins\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003esave\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Maven: アーティファクトを並列ダウンロード",
    "url": "https://www.ikemo3.com/inverted/maven/download-artifact-in-parallel/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eアーティファクトを並列ダウンロードしたい場合の処理です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e現在できません。\n詳細は外部サイトを確認してください。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n"
  }, 
  {
    "title": "Debian",
    "url": "https://www.ikemo3.com/tags/debian/",
    "contents": ""
  }, 
  {
    "title": "Docker: Debianイメージの使い方",
    "url": "https://www.ikemo3.com/inverted/docker/debian/",
    "contents": "\u003ch2 id=\"対象バージョン\"\u003e対象バージョン\u003c/h2\u003e\n\u003cp\u003eDebian 9.3(stretch)について記載します。\u003c/p\u003e\n\u003ch2 id=\"注意点\"\u003e注意点\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e/bin/sh\u003c/code\u003e はbashでない。\n\u003cul\u003e\n\u003cli\u003eスクリプトが直せない場合は、シンボリックリンクを作り直すと良いです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eps\u003c/code\u003e コマンドもない\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapt-get install procps\u003c/code\u003e をすると使えるようになります。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"apt\"\u003eapt\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run\"\u003eBest practices for writing Dockerfiles\u003c/a\u003eより。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-dockerfile\" data-lang=\"dockerfile\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRUN\u003c/span\u003e apt-get update \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e apt-get install -y \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003eパッケージ名、略\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e rm -rf /var/lib/apt/lists/*\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"ロケールの設定\"\u003eロケールの設定\u003c/h2\u003e\n\u003ch3 id=\"パッケージのインストール\"\u003eパッケージのインストール\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-dockerfile\" data-lang=\"dockerfile\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRUN\u003c/span\u003e apt-get update \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e apt-get install -y \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    locales-all \u003cspan style=\"color:#ae81ff\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e rm -rf /var/lib/apt/lists/*\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"ロケールの設定-1\"\u003eロケールの設定\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-dockerfile\" data-lang=\"dockerfile\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eENV\u003c/span\u003e LANG ja_JP.UTF-8\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eENV\u003c/span\u003e LANGUAGE ja_JP:ja\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eENV\u003c/span\u003e LC_ALL ja_JP.UTF-8\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"タイムゾーンの設定\"\u003eタイムゾーンの設定\u003c/h2\u003e\n\u003cp\u003e単に以下の設定で良さそうです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-dockerfile\" data-lang=\"dockerfile\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eENV\u003c/span\u003e TZ Asia/Tokyo\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e以下の方法でも動きます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-dockerfile\" data-lang=\"dockerfile\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRUN\u003c/span\u003e echo \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;Asia/Tokyo\u0026#39;\u003c/span\u003e \u0026gt; /etc/timezone\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRUN\u003c/span\u003e ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "DockerでMariaDB/MySQLを使う方法",
    "url": "https://www.ikemo3.com/inverted/docker/mariadb/",
    "contents": "\u003cp\u003e基本的にはMariaDB, MySQLともに設定は共通と思われる。\u003c/p\u003e\n\u003ch2 id=\"設定ファイル\"\u003e設定ファイル\u003c/h2\u003e\n\u003cp\u003e以下の場所に格納されている。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e/etc/my.cnf\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e!includedir /etc/mysql/conf.d\u003c/code\u003eが定義されている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e/etc/conf.d\n\u003cul\u003e\n\u003cli\u003e設定を反映させるためには、ファイルを追加するか、置き換えるとよい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eサーバからローカルにコピーする場合は、\u003ccode\u003edocker cp\u003c/code\u003eコマンドを使う。\u003c/p\u003e\n\u003ch2 id=\"データベースの初期化\"\u003eデータベースの初期化\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e/docker-entrypoint-initdb.d\u003c/code\u003e に\u003ccode\u003e.sql\u003c/code\u003e などのファイルを置くことで、\n自動的にインポートされる。\u003c/p\u003e\n"
  }, 
  {
    "title": "Maven: 特定のアーティファクトをローカルにコピー",
    "url": "https://www.ikemo3.com/inverted/maven/download-specific-artifact/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e依存関係が多い場合に、事前にダウンロードする方法。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eMaven 3.3.9で確認しています。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edependency:get\u003c/code\u003eを使用します。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下の値を用意してください。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003egroupId\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eartifactId\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eversion\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eリポジトリ(オプション)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eカンマ区切りで複数指定可能です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003emvn dependency:get -Dartifact=groupId:artifactId:version\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003emvn dependency:get -Dartifact=groupId:artifactId:version -DremoteRepositories=リポジトリ\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n"
  }, 
  {
    "title": "DockerでJenkinsを動かす方法",
    "url": "https://www.ikemo3.com/inverted/docker/jenkins/",
    "contents": "\u003ch2 id=\"プラグインのインストール\"\u003eプラグインのインストール\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e/usr/local/bin/install-plugins.sh\u003c/code\u003e の引数にプラグイン名(とバージョン)を渡す。\n以下のように、1行1プラグインのテキストファイルを食わせても構わない\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eCOPY plugins.txt /usr/share/jenkins/plugins.txt\nRUN /usr/local/bin/install-plugins.sh \u0026lt; /usr/share/jenkins/plugins.txt\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eplugins.shもあるが、こちらは依存関係を自動設定してくれなく、\n並列ダウンロードも行わないため\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e、今後は使わないほうがよい。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jenkinsci/docker#script-usage\"\u003ehttps://github.com/jenkinsci/docker#script-usage\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e明らかにinstall-plugins.shの方が速かったための推測\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "java.util.Optional",
    "url": "https://www.ikemo3.com/dic/java.util.optional/",
    "contents": "\u003ch2 id=\"javautiloptionalとは\"\u003ejava.util.Optionalとは\u003c/h2\u003e\n\u003cp\u003eJava SE 8から導入されたクラスです。\u003c/p\u003e\n\u003ch2 id=\"チェック例外のようなもの\"\u003eチェック例外のようなもの\u003c/h2\u003e\n\u003cp\u003eEffective Java 3rd Editionに以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eOptionals are similar in spirit to checked exceptions\u003c/strong\u003e(Item 71), in that they\n\u003cem\u003eforce\u003c/em\u003e the user of an API to confront the fact that there may be no value returned.\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "Findbugs",
    "url": "https://www.ikemo3.com/tags/findbugs/",
    "contents": ""
  }, 
  {
    "title": "Jenkins: FindBugsの使用方法",
    "url": "https://www.ikemo3.com/inverted/jenkins/findbugs/",
    "contents": "\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eFindBugs PluginのHow To Useのとおりにpom.xmlを記載する。\u003c/li\u003e\n\u003cli\u003eJenkinsfileに以下のような記述を入れる(patternが重要)\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-groovy\" data-lang=\"groovy\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003efindbugs canComputeNew: \u003cspan style=\"color:#66d9ef\"\u003efalse\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e,\u003c/span\u003e pattern: \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;target/findbugsXml.xml\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Oracle",
    "url": "https://www.ikemo3.com/manual/oracle/",
    "contents": "\u003ch2 id=\"マニュアル\"\u003eマニュアル\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E82638_01/index.htm\"\u003e12c リリース2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/index.htm\"\u003e12c リリース1\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E16338_01/index.htm\"\u003e11g リリース2\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"tnsnamesora\"\u003etnsnames.ora\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.oracle.com/cd/E16338_01/network.112/b56287/tnsnames.htm\"\u003eローカル・ネーミング・パラメータ(tnsnames.ora)\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"パス\"\u003eパス\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eデフォルト: \u003ccode\u003e$ORACLE_HOME/network/admin\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e環境変数: \u003ccode\u003eTNS_ADMIN\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ユーザが所有する表\"\u003eユーザが所有する表\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sql\" data-lang=\"sql\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eselect\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e*\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efrom\u003c/span\u003e USER_TABLES \u003cspan style=\"color:#66d9ef\"\u003eorder\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eby\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eTABLE_NAME\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"ディレクトリオブジェクト\"\u003eディレクトリ・オブジェクト\u003c/h2\u003e\n\u003cp\u003eOSのディレクトリ構造に依存しないように、名前をつけたもの。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/SQLRF/statements_5008.htm\"\u003e「CREATE DIRECTORY」\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"エクスポートインポート\"\u003eエクスポート・インポート\u003c/h2\u003e\n\u003cp\u003e従来からのexp/impツールと、Data Pump(データポンプ)というexpdp/impdpツールの2種類がある。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eexp/imp: クライアントで実行される\u003c/li\u003e\n\u003cli\u003eData Pump: サーバで(PL/SQLとして)実行される。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://blogs.oracle.com/oracle4engineer/data-pumpexpdpimpdp\"\u003eData Pump(expdp/impdp)の使い方～エクスポート／インポート、データ移動、論理バックアップ | Oracle オラクルエンジニア通信 - 技術資料、マニュアル、セミナー Blog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eAmazon RDSの場合は、以下のページからたどれる「Strategies for Migrating Oracle Databases to AWS」\nというPDFによると、\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/aws-technical-content/latest/oracle-database-aws-best-practices/resources.html\"\u003eResources - Best Practices for Running Oracle Database on Amazon Web Services\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e次のように書かれている。なので、可能ならData Pumpの方が良さそうです。\n(もちろん他のツールが使える場合はそれも検討)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOracle Export and Import Utilities(exp/imp)): 10GBまで\u003c/li\u003e\n\u003cli\u003eOracle Data Pump: 5TBまで\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"oracle-11gr2以降のexpimpの罠enterprise-editionのみ\"\u003eOracle 11gR2以降のexp/impの罠(Enterprise Editionのみ)\u003c/h3\u003e\n\u003cp\u003eOracle 11gR2以降の\u003cstrong\u003eEnterprise Edition\u003c/strong\u003eではデフォルトで遅延セグメントが有効になっており、\nexpコマンドでエクスポートすると、テーブルが見つからない現象が発生するようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://d.hatena.ne.jp/tekk/20120404/1333553703\"\u003eOracle 11.2以降で exp/imp によるバックアップ・リストアに失敗する - tekkの日記 C#,VB.NET\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.sakutyuu.com/technology/?p=1054\"\u003eOracle エクスポート時にテーブルが欠ける件 | 技術的なこと、あれこれ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.shift-the-oracle.com/inside/deferred-segment-creation.html\"\u003e遅延セグメント作成 - オラクル・Oracleをマスターするための基本と仕組み\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E16338_01/server.112/b56303/whatsnew.htm\"\u003eデータベース・ユーティリティの新機能\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e幸いにも(?)この機能はEnterprise Edition限定の機能のようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E11882_01/license.112/e47877/editions.htm#DBLIC116\"\u003e11g\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/database/121/DBLIC/editions.htm#GUID-0F9EB85D-4610-4EDF-89C2-4916A0E7AC87__GUID-B1B606F0-33D8-4453-8A27-6C591DD02DF9\"\u003e12c\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"国際化\"\u003e国際化\u003c/h2\u003e\n\u003ch3 id=\"nls_lang\"\u003eNLS_LANG\u003c/h3\u003e\n\u003cp\u003eほとんどの環境変数はNLS_LANGから導出されるようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/NLSPG/ch3globenv.htm\"\u003eグローバリゼーション・サポート環境の設定\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmazon RDSで確認してみましたが、これらの値は設定できないものが多いため、\nクライアントで設定するのが良さそうです。\u003c/p\u003e\n\u003cp\u003e実際確認してみましたが、NLS_LANGUAGEはAMERICAN, NLS_TERRITORYはAMERICAになっていました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dev.classmethod.jp/cloud/aws/rds-for-oracle-nls-param/\"\u003e知らないとチョットつまづく RDS for Oracle の NLS パラメータ ｜ Developers.IO\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"文字コード\"\u003e文字コード\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e開発 \u0026gt; グローバリゼーション・サポート・ガイド\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E82638_01/nlspg/toc.htm\"\u003e12c リリース2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E57425_01/121/NLSPG/toc.htm\"\u003e12c リリース1\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E16338_01/server.112/b56307/toc.htm\"\u003e11g リリース2\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/cd/E82638_01/NLSPG/appendix-A-locale-data.htm\"\u003eキャラクタセット(12c リリース2)\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e「A.4.1 推奨するデータベース・キャラクタ・セット」にあります。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Splatoon",
    "url": "https://www.ikemo3.com/manual/splatoon/",
    "contents": "\u003ch2 id=\"基本操作splatoon-2\"\u003e基本操作(Splatoon 2)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB: ジャンプ\u003c/li\u003e\n\u003cli\u003eX: マップ\n\u003cul\u003e\n\u003cli\u003e←/↑/→ + A: 他キャラにスーパージャンプ\u003c/li\u003e\n\u003cli\u003e↓ + A: スタート地点にスーパージャンプ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eZL: センプク\u003c/li\u003e\n\u003cli\u003eブキ\n\u003cul\u003e\n\u003cli\u003eZR: インクショット\u003c/li\u003e\n\u003cli\u003eR: サブウェポン\u003c/li\u003e\n\u003cli\u003eRスティック: スペシャルウェポン\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eY: 正面に向く\u003c/li\u003e\n\u003cli\u003eシグナル\n\u003cul\u003e\n\u003cli\u003e↑: カモン、やられた\u003c/li\u003e\n\u003cli\u003e↓: ナイス\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "The-Habits-of-Highly-Effective-People",
    "url": "https://www.ikemo3.com/tags/the-habits-of-highly-effective-people/",
    "contents": ""
  }, 
  {
    "title": "第3の習慣 最優先事項を優先する",
    "url": "https://www.ikemo3.com/dic/habit-3-put-first-things-first/",
    "contents": "\u003ch2 id=\"第3の習慣-最優先事項を優先するとは\"\u003e第3の習慣 最優先事項を優先するとは\u003c/h2\u003e\n\u003cp\u003e時間管理の方法です。\u003c/p\u003e\n\u003ch2 id=\"緊急と重要\"\u003e緊急と重要\u003c/h2\u003e\n\u003cp\u003eここでは、「緊急」と「重要」という分類が出てきます。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e私たちは、緊急の用事には受動的に反応(react)する。\nだが、緊急ではないが重要なことをするには、率先力と主体性が要る。\n機会をとらえたり、物事を実現させたりするには、\n能動的に動く(act)ことが必要なのだ。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e緊急だから重要なのだと思い込み、緊急の用事のすべてに反応し、\nほとんどの時間を使ってしまうのだ。\nだが、それらの用事は自分にとって緊急なのではなく、\nほとんどは他者の仕事の優先順位からきているのであり、\n早く対応してほしいと期待されていることなのである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e以下のように分類されます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e緊急: 受動的、他者にとって重要\u003c/li\u003e\n\u003cli\u003e重要: 能動的、自分にとって重要\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Jackson",
    "url": "https://www.ikemo3.com/dic/jackson/",
    "contents": "\u003ch2 id=\"jacksonとは\"\u003eJacksonとは\u003c/h2\u003e\n\u003cp\u003eJava向けのJSONライブラリです。\u003c/p\u003e\n\u003ch2 id=\"アノテーション地獄\"\u003eアノテーション地獄\u003c/h2\u003e\n\u003cp\u003e仕事でも使ったことがあるのですが、\nJacksonはアノテーション地獄になるので、個人的には好きじゃないです。\n次使うときは\u003ca href=\"/dic/moshi/\"\u003eMoshi\u003c/a\u003eでしょうね。\u003c/p\u003e\n"
  }, 
  {
    "title": "systemd",
    "url": "https://www.ikemo3.com/dic/systemd/",
    "contents": "\u003ch2 id=\"systemdとは\"\u003esystemdとは\u003c/h2\u003e\n\u003cp\u003einitの置き換えです。\u003c/p\u003e\n\u003ch2 id=\"launchd\"\u003elaunchd\u003c/h2\u003e\n\u003cp\u003esystemdの話を聞いて、どこかで見たことあるなと思ったのですが、\n\u003ca href=\"/dic/osx/\"\u003eOS X\u003c/a\u003eのlaunchdと設計が似てるんですよね。\n実際、作者もlaunchdに大きく影響を受けていることを認めています。\u003c/p\u003e\n"
  }, 
  {
    "title": "systemd",
    "url": "https://www.ikemo3.com/manual/systemd/",
    "contents": "\u003ch2 id=\"ディレクトリ構成\"\u003eディレクトリ構成\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e/usr/lib/systemd/system/: パッケージが提供するファイルを設置\u003c/li\u003e\n\u003cli\u003e/etc/systemd/system/: 管理者が設定するファイル\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"service\"\u003eservice\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.freedesktop.org/software/systemd/man/systemd.service.html\"\u003esystemd.service\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"type\"\u003eType\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esimple\n\u003cul\u003e\n\u003cli\u003eType, BusNameがなく、ExecStartがある場合のデフォルト\u003c/li\u003e\n\u003cli\u003eExecStartで指定したプロセスがメインプロセスになる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eoneshot\n\u003cul\u003e\n\u003cli\u003esimpleに似ているが、起動する前にプロセスを終了しないといけない\n\u003cul\u003e\n\u003cli\u003eTomcatの起動スクリプトはこれがいいらしい?\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"legacy-actions\"\u003elegacy-actions\u003c/h2\u003e\n\u003cp\u003e正確には \u003ccode\u003e/sbin/service\u003c/code\u003e のなかで実行されるのですが、\nこれまでと同様に、\u003ccode\u003eservice httpd graceful\u003c/code\u003e が実行できるのは、以下のパスにスクリプトがあるからのようです。\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e/usr/libexec/initscripts/legacy-actions/\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003ehttpdはconfigtestとgracefulがあります。\u003c/p\u003e\n"
  }, 
  {
    "title": "いないいないばあっ!",
    "url": "https://www.ikemo3.com/dic/inaiinai/",
    "contents": "\u003ch2 id=\"いないいないばあっとは\"\u003eいないいないばあっ!とは\u003c/h2\u003e\n\u003cp\u003eNHKの乳幼児向けの番組です。\u003c/p\u003e\n\u003ch2 id=\"ワンワンの中の人は還暦\"\u003eワンワンの中の人は還暦\u003c/h2\u003e\n\u003cp\u003eワンワンの中の人、チョーさんは1957年12月15日生まれなので、還暦になりました。\nしかし、番組中ではとても還暦とは思えないエネルギッシュな動きをしています。\u003c/p\u003e\n\u003ch2 id=\"あつまれワンワンわんだーらんど\"\u003eあつまれ！ワンワンわんだーらんど\u003c/h2\u003e\n\u003cp\u003e平成30年度の全国公演スケジュールは、2018-02-02に確認できました。\u003c/p\u003e\n"
  }, 
  {
    "title": "エンゲル係数",
    "url": "https://www.ikemo3.com/dic/engels-law/",
    "contents": "\u003ch2 id=\"エンゲル係数とは\"\u003eエンゲル係数とは\u003c/h2\u003e\n\u003cp\u003e日本ではもはや意味をなさない指標です。\u003c/p\u003e\n\u003ch2 id=\"意味をなさない理由\"\u003e意味をなさない理由\u003c/h2\u003e\n\u003cp\u003e中食が増えているというの調査結果\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eもありますが、\n自分にとっては、以下の2つが大きいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e時間がもったいない\u003c/li\u003e\n\u003cli\u003eモノよりも食事に価値がある\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eまず、今の自分にとって一番貴重な資源は「時間」です。\nだから、普段の生活で料理をするのは最小限にしたいと考えています。\u003c/p\u003e\n\u003cp\u003eそして、最近は欲しいモノがあまりありません。\n正確には、あることはあるのですが、場所か時間を取られるので、\n躊躇しちゃうことが多いです。\u003c/p\u003e\n\u003cp\u003e一方で、いい食事を取る、美味しいお菓子を食べることは、\n時間も場所も取られません。気をつけるのは体についた脂肪くらいです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.garbagenews.net/archives/2045697.html\"\u003eエンゲル係数の推移をグラフ化してみる(家計調査報告(家計収支編))(2017年)(最新) - ガベージニュース\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "静的コード解析",
    "url": "https://www.ikemo3.com/tags/static-code-analysis/",
    "contents": ""
  }, 
  {
    "title": "Ansible Container",
    "url": "https://www.ikemo3.com/manual/ansible-container/",
    "contents": "\u003cp\u003eまだ成功したことないのですが、現在できたところまで。\u003c/p\u003e\n\u003ch2 id=\"基本的な流れ\"\u003e基本的な流れ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eansible-container init\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econtainer.yml\u003c/code\u003e を編集\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eansible-container build\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"containeryml\"\u003econtainer.yml\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esettings\n\u003cul\u003e\n\u003cli\u003eサービス名\n\u003cul\u003e\n\u003cli\u003efrom: 開始するイメージ: \u003ccode\u003ecentos:7\u003c/code\u003e など。\u003c/li\u003e\n\u003cli\u003ecommand: 起動コマンド\n\u003cul\u003e\n\u003cli\u003eたぶん \u003ccode\u003e/sbin/init\u003c/code\u003e でいい気がしますが。。。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eprivileged: 特権モード\u003c/li\u003e\n\u003cli\u003eroles: Ansibleのロール(Array)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれでうまくいくかなと思ったんですが、サービスの起動で失敗します。。。\u003c/p\u003e\n"
  }, 
  {
    "title": "pip",
    "url": "https://www.ikemo3.com/manual/pip/",
    "contents": "\u003ch2 id=\"pip自体のインストール\"\u003epip自体のインストール\u003c/h2\u003e\n\u003ch3 id=\"macos\"\u003emacOS\u003c/h3\u003e\n\u003cp\u003e結果的にこれで入りましたが、たぶんイマイチです。\u003c/p\u003e\n\u003cp\u003eまずPythonを入れます。\n\u003ca href=\"/dic/homebrew/\"\u003eHomebrew\u003c/a\u003eを使いますが、\nPermission denidedと言われるので、先にディレクトリを作成しておきます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esudo mkdir /usr/local/Frameworks\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esudo mkdir /usr/local/Frameworks/Python.framework\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esudo chown -R \u003cspan style=\"color:#66d9ef\"\u003e$(\u003c/span\u003ewhoami\u003cspan style=\"color:#66d9ef\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003e$(\u003c/span\u003ebrew --prefix\u003cspan style=\"color:#66d9ef\"\u003e)\u003c/span\u003e/*\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ebrew install python\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eそれから、pipを入れます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecurl -O https://bootstrap.pypa.io/get-pip.py\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esudo python get-pip.py\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003cp\u003eパッケージのみ指定する場合。例: six\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003epip install six\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eバージョンを指定する場合\n(例: six 1.8.0を入れる場合)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003epip install six\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e1.8.0\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "オタク",
    "url": "https://www.ikemo3.com/dic/otaku/",
    "contents": "\u003ch2 id=\"オタクとは\"\u003eオタクとは\u003c/h2\u003e\n\u003cp\u003e自分のことです。\u003c/p\u003e\n\u003ch2 id=\"オタクの定義\"\u003eオタクの定義\u003c/h2\u003e\n\u003cp\u003eやっぱり、大学の頃に読んだこの本が自分の中でしっくり来ます。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4102900195/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4102900195.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4102900195/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nオタク学入門 (新潮OH!文庫)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eだから自分の中では「◯◯オタク」というのは何か変だと思います。\n確かに「◯◯に詳しい」というのはオタクの必要条件ではありますが、\nそれはどちらかと言えば「マニア」です。\u003c/p\u003e\n\u003cp\u003e自分の中では、オタクはもっと分野を横断したものだと思っています。\nこのサイト自体も、分野を横断して自分の頭の中を書くために\n作られたようなものです。\u003c/p\u003e\n"
  }, 
  {
    "title": "プライバシー",
    "url": "https://www.ikemo3.com/dic/privacy/",
    "contents": "\u003ch2 id=\"プライバシーとは\"\u003eプライバシーとは\u003c/h2\u003e\n\u003cp\u003e個人的なことで、他の人に知られたくないものです。\u003c/p\u003e\n\u003ch2 id=\"自分の場合\"\u003e自分の場合\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e名前\n\u003cul\u003e\n\u003cli\u003eアルファベット、ひらがな OK\u003c/li\u003e\n\u003cli\u003e漢字: 本来はNGだがしょうがない(昔に公開しちゃってるので)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e誕生日: OK\n\u003cul\u003e\n\u003cli\u003e一度公開しちゃってるので。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e顔写真: 基本NG\n\u003cul\u003e\n\u003cli\u003eプライバシーというよりはアイコンの方が好き。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"自分以外は勝手に公開しない\"\u003e自分以外は勝手に公開しない\u003c/h2\u003e\n\u003cp\u003eということで自分以外のことは基本的に書きません。\u003c/p\u003e\n"
  }, 
  {
    "title": "Jenkinsfile: Mavenでのテストに失敗したときにUNSTABLEにする",
    "url": "https://www.ikemo3.com/inverted/jenkins/set-unstable-when-test-failed/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eJenkinsfileとMavenを使用しているときに、\nテストに失敗したときに、UNSTABLEにするための方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e以下の回答に書かれている通りにしてください。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://stackoverflow.com/questions/36660293/reporting-shell-script-test-errors-in-jenkins-pipeline-without-killing-job\"\u003eReporting shell script test errors in Jenkins pipeline without killing job - Stack Overflow\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下の2つを組み合わせることで、対処可能です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-Dmaven.test.failure.ignore=true\u003c/code\u003eをセットして、Mavenが失敗しないようにする。\u003c/li\u003e\n\u003cli\u003eJUnitResultArchiverクラスを使用して、結果を解析する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n"
  }, 
  {
    "title": "Ansible: Mavenアーティファクトの利用方法",
    "url": "https://www.ikemo3.com/inverted/ansible/maven-artifact/",
    "contents": "\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCentOS 7: \u003ccode\u003epython-lxml\u003c/code\u003eを入れる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"よく使うオプション\"\u003eよく使うオプション\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eversion: バージョン。未指定のときは\u003ccode\u003elatest\u003c/code\u003eになる。\u003c/li\u003e\n\u003cli\u003erepository_url: リポジトリのURL。自前でMavenリポジトリを構築している場合に指定。\u003c/li\u003e\n\u003cli\u003eclassifier: 追加属性。例えば以下のようなものを指定する(存在する場合)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ejavadoc\u003c/code\u003e: Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esources\u003c/code\u003e: ソースコード\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Ansible: 開発環境と本番環境を同じように管理する方法",
    "url": "https://www.ikemo3.com/inverted/ansible/development/",
    "contents": "\u003cp\u003e開発にはVagrantを使って、\n本番には別の方法(自前でインストールなど)をするときの方法です。\u003c/p\u003e\n\u003ch2 id=\"開発と本番を分ける方法\"\u003e開発と本番を分ける方法\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/inverted/ansible/restrict-target-host/\"\u003e対象ホストを間違えないようにする方法\u003c/a\u003eを使って、開発用と本番用を分ける。\u003c/li\u003e\n\u003cli\u003e開発変数はVagrantfileに\u003ccode\u003ehost_vars\u003c/code\u003eを指定する。参照: \u003ca href=\"https://www.vagrantup.com/docs/provisioning/ansible_common.html\"\u003eCommon Ansible Options - Provisioning - Vagrant by HashiCorp\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ssltls対応\"\u003eSSL/TLS対応\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e自己署名証明書は使わない。不正な証明書を使うくらいなら、開発ではhttpを使う。\n\u003cul\u003e\n\u003cli\u003e不正な証明書を対応するためにプログラム側での考慮が必要。httpならこの対応は不要。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003etemplateで条件分岐を使って、開発のみhttp -\u0026gt; httpsへの昇格をオフにする。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"vagrantとの連携\"\u003eVagrantとの連携\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e以下の3つのPlaybookを用意する。\n\u003cul\u003e\n\u003cli\u003epre-install\n\u003cul\u003e\n\u003cli\u003eインストール前に必要な手順\n\u003cul\u003e\n\u003cli\u003eVagrantの場合、suの有効化を行っている\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eansible\n\u003cul\u003e\n\u003cli\u003e本番と連携するもの。ここだけ別リポジトリ(別サーバで実行するため)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003epost-install\n\u003cul\u003e\n\u003cli\u003eテスト用のマスタ設定など。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eセキュリティより利便性を取っています。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "改善",
    "url": "https://www.ikemo3.com/dic/kaizen/",
    "contents": "\u003ch2 id=\"改善とは\"\u003e改善とは\u003c/h2\u003e\n\u003cp\u003e物事をより良くすることです。\n日本の製造業で戦略的に行われているもの(継続的改善)については、\n海外でも通用するため、カイゼンとカタカナで書かれることがあります。\u003c/p\u003e\n\u003ch2 id=\"改善とイノベーションは車の両輪\"\u003e改善とイノベーションは車の両輪\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eは改善について、\n「ポスト資本主義社会」p81「第2章 組織社会の到来」にて以下のように述べています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e第一に、組織はその行うことすべてについて、\n絶えざる改善、日本語でいうカイゼンを行わなければならない。\n歴史上のあらゆる芸術家が、\nカイゼンすなわち体系的かつ継続的な自己改善を行ってきた。\nしかし今日までのところ、日本だけが、\nおそらく禅の影響だろうが、企業組織の日常の活動と仕事をカイゼンしている。\nカイゼンの目的は、製品やサービスを改善して二、三年後にはまったく\n新しい製品やサービスにしてしまうことである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eドラッカーは元々日本ひいきで、\nこの本が出たのが1993年なのもありますが、\n継続的な改善、特に労働者が関わることについては、\n製造業以外ではほとんど見られません。\n「なぜ製造業でできることが他の業種ではできないのか？」というのが、\n自分の中の課題です。\u003c/p\u003e\n\u003ch2 id=\"イノベーションを行うための前提条件\"\u003eイノベーションを行うための前提条件\u003c/h2\u003e\n\u003cp\u003eドラッカーはこれとは別に、イノベーションを行うためには\n体系的廃棄、継続的改善、成功の追求が必要と書いています。\u003c/p\u003e\n\u003cp\u003e明日を支配するもの p95より\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eチェンジ・リーダーたるための第四の条件がイノベーションである。\nこれこそ今日最も注目されている分野である。\nしかしこれは、チェンジ・リーダーたるための条件としては、最も重要なものではない。\n体系的廃棄、継続的改善、成功の追求の仕組みのほうが、意味のある場合が多い。\nむしろそれらの仕組みなくしては、いかなる組織もイノベーションを行なうことはできない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eドラッカーはこの直後に、イノベーションを行えない理由を書いています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eチェンジ・リーダーはイノベーションを行なう。\nしかし、体系的なイノベーションの仕組みを必要とするのは、\nイノベーションそのものよりも、チェンジ・リーダーたらんとする姿勢を組織中に浸透させるためである。\n組織の隅々にいたるまで、変化を機会とみるようにさせるためである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eよく見られるのが、残業時間の削減などの効率化\u003cstrong\u003eよりも\u003c/strong\u003eイノベーションを追求すべきという考え方です。\u003c/p\u003e\n\u003cp\u003eこの考え方は完全に間違っています。\nなぜなら、目の前のことをこなすことだけで精一杯の組織では「新しいことを始める＝残業時間が増える」でしかないからです。\u003c/p\u003e\n\u003cp\u003e徹底的な効率化によって、変化するのが当たり前という組織風土こそがイノベーションを行なうための近道です。\u003c/p\u003e\n\u003cp\u003eこの「体系的廃棄」「継続的改善」「成功の追求」「イノベーション」の4つを図にしてみました。\n正確ではありませんが、雰囲気はつかめるかと思います。\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"change-leader.png\" alt=\"\"\u003e\u003c/p\u003e\n\u003ch2 id=\"ゴミ屋敷では新しいものは生まれない\"\u003eゴミ屋敷では新しいものは生まれない\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eがわざわざ「おそらく\u003ca href=\"/dic/zen/\"\u003e禅\u003c/a\u003eの影響だろうが」というのは、\nおそらく、「シンプルなところ」をイメージしてるのかと思います。\n「改善＝片付け」をしてシンプルな生活にしてこそ、\n新しいものが生まれる余力が生まれます。\u003c/p\u003e\n\u003ch2 id=\"問題の改善方法\"\u003e問題の改善方法\u003c/h2\u003e\n\u003ch3 id=\"問題意識を感じたときに効率的に良い状況に変えるためのアクションリスト\"\u003e問題意識を感じたときに「効率的に良い状況に変える」ためのアクションリスト\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://blog.shibayu36.org/entry/2019/03/04/180000\"\u003e問題意識を感じたときに「効率的に良い状況に変える」ためのアクションリスト - $shibayu36-\u0026gt;blog;\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e個人的に必要だなと思ったのは以下の考え方。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e提案先を考える\u003c/li\u003e\n\u003cli\u003e他の人にやってほしいと思う行動を、自分がやる\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分について言えば「解決案も提示」「自分が率先してやる」というのはできていると思います。\u003c/p\u003e\n\u003ch3 id=\"プロセス改善は人間心理への洞察が必要な奥深い仕事\"\u003eプロセス改善は、人間心理への洞察が必要な奥深い仕事\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://note.mu/yutabnbn/n/n7318fe228cf0\"\u003eプロセス改善は、人間心理への洞察が必要な奥深い仕事｜國分佑太｜note\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e改善がうまくいくためには\u003cstrong\u003e信頼されること\u003c/strong\u003eが大事。\nあと地道な積み重ねが必要。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478372632/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478372632.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478372632/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n明日を支配するもの―21世紀のマネジメント革命\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Google Chrome",
    "url": "https://www.ikemo3.com/manual/google-chrome/",
    "contents": "\u003ch2 id=\"よく使うもの\"\u003eよく使うもの\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eURLバーから履歴を削除\n\u003cul\u003e\n\u003cli\u003eMac: Shift + Fn + delete\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"開発者ツール\"\u003e開発者ツール\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developers.google.com/web/tools/chrome-devtools/console/expressions\"\u003e式の評価\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developers.google.com/web/tools/chrome-devtools/console/expressions?hl=ja#_2\"\u003e要素の選択\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e$(): CSSセレクタに一致する最初の要素\u003c/li\u003e\n\u003cli\u003e$$(): CSSセレクタに一致する全ての要素のArray\u003c/li\u003e\n\u003cli\u003e$x(): 指定された\u003ca href=\"/dic/xpath/\"\u003eXPath\u003c/a\u003eに一致する要素のArray\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"使っている拡張\"\u003e使っている拡張\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gsb.ikemo3.com/\"\u003eゴシップサイトブロッカー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://add0n.com/stylus.html\"\u003eStylus\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eスタイルシートを上書き指定できるもの。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo\"\u003eTamperMonkey\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e任意のJavaScriptを実行できるもの。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://chrome.google.com/webstore/detail/esarea/pjhancoeamcahkmbmgoonbaggjbpijoc\"\u003eesarea\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e任意のテキストエリアを\u003ca href=\"https://esa.io/\"\u003eesa\u003c/a\u003eライクにするもの。特にGitHubで便利。\u003c/li\u003e\n\u003cli\u003e使い方は\u003ca href=\"/manual/esa/\"\u003emanual/esa\u003c/a\u003eに記載。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Linux: スワップファイルが作成できない場合の対処",
    "url": "https://www.ikemo3.com/inverted/linux/cannot-create-swapfile/",
    "contents": "\u003ch2 id=\"現象\"\u003e現象\u003c/h2\u003e\n\u003cp\u003eスワップファイルを作成するときに、\n以下のようなエラーが起きます。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eswapon: /swapfile: swapon failed: Invalid argument\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e以下の条件で発生しました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCentOS 7.4\u003c/li\u003e\n\u003cli\u003eXFS\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"確認方法\"\u003e確認方法\u003c/h2\u003e\n\u003cp\u003e/var/log/message に以下のように書かれています。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003elocalhost kernel: swapon: swapfile has holes\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"原因\"\u003e原因\u003c/h2\u003e\n\u003cp\u003eCentOSのXFSでは、ファイルを作成するときに、fallocateを使うと、\nスパースファイルになってしまうからのようです。\u003c/p\u003e\n\u003ch2 id=\"修正手順\"\u003e修正手順\u003c/h2\u003e\n\u003cp\u003efallocateの代わりに、ddコマンドでスワップファイルを作成します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edd \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e/dev/zero of\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003eswapfile count\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e1024\u003c/span\u003e bs\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e1MiB\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Windows",
    "url": "https://www.ikemo3.com/manual/windows/",
    "contents": "\u003ch2 id=\"設定\"\u003e設定\u003c/h2\u003e\n\u003cp\u003eこちらで検証したものを載せていますが、レジストリをいじる設定もあるため、\n万が一問題が起きても責任は取れません。ご了承ください。\u003c/p\u003e\n\u003ch3 id=\"高速シャットダウンをオフ\"\u003e高速シャットダウンをオフ\u003c/h3\u003e\n\u003cp\u003e仮想PCでシャットダウンしようとすると、再起動されてしまう。\nこれを避けるためには、Windowsの電源設定で高速シャットダウンを無効化する。\u003c/p\u003e\n\u003ch3 id=\"エクスプローラでフォルダに含まれるファイルの種類によって表示を切り替える機能をオフ\"\u003eエクスプローラで、フォルダに含まれるファイルの種類によって表示を切り替える機能をオフ\u003c/h3\u003e\n\u003cp\u003eエクスプローラでは、フォルダに含まれるファイルの種類によって、自動的に表示が切り替わります。\nですが、常に「詳細」で表示したい自分にとっては不要な機能です。\u003c/p\u003e\n\u003cp\u003eレジストリに以下の設定をすることで、オフにできます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.atmarkit.co.jp/fwin2k/win2ktips/1022foldertype/foldertype.html\"\u003eWindows Vistaのエクスプローラにおける自動フォルダ・タイプ設定を無効にする － ＠IT\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"タッピングをオフにする\"\u003eタッピングをオフにする\u003c/h3\u003e\n\u003cp\u003e機種によって異なるが\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、以下のように設定する。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e「設定」を開く。\u003c/li\u003e\n\u003cli\u003e「デバイス」を選択する。\u003c/li\u003e\n\u003cli\u003e「マウス」を選択する。\u003c/li\u003e\n\u003cli\u003e右側から「その他のマウスオプション」を選択\u003c/li\u003e\n\u003cli\u003e「拡張」を選択\u003c/li\u003e\n\u003cli\u003e「拡張機能の設定」を選択\u003c/li\u003e\n\u003cli\u003e「タッチパッド」を選択\u003c/li\u003e\n\u003cli\u003e「タッピングの設定」を選択\u003c/li\u003e\n\u003cli\u003eタッピングを有効にする→オフ\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"インデックス対処のフォルダを変更する\"\u003eインデックス対処のフォルダを変更する\u003c/h3\u003e\n\u003cp\u003e以下はWindows 10で確認済みです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e「設定」を開く。\u003c/li\u003e\n\u003cli\u003e検索ボックスに「インデックス」と入力する\u003c/li\u003e\n\u003cli\u003e検索結果に「インデックスのオプション」が出るので、これを開く。\u003c/li\u003e\n\u003cli\u003e「インデックスのオプション」画面になるので、「変更」ボタンを押す。\u003c/li\u003e\n\u003cli\u003eフォルダのチェックマークを追加/削除する。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"windows-updateをオフにする\"\u003eWindows Updateをオフにする\u003c/h3\u003e\n\u003cp\u003e当然ですが、自分でWindows Updateを適用できる人以外はオフにしないこと。自分は定期タスクに入れてます。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://freesoft.tvbok.com/win10/tips/windowsupdate_noautoupdate.html\"\u003eWindows 10: Windows Updateの自動更新を無効もしくは手動更新のみにする方法 - ぼくんちのTV 別館\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"便利なもの\"\u003e便利なもの\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eソフトウェアキーボードの出し方: Windowsを検索で\u003ccode\u003eosk\u003c/code\u003eを打つ。\u003c/li\u003e\n\u003cli\u003e起動時の設定: \u003ccode\u003emsconfig\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"スクリーンショット\"\u003eスクリーンショット\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWindowsキー + Shift + S\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnipping Toolというアプリはありますが、別の機能に置き換わるようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://forest.watch.impress.co.jp/docs/serial/yajiuma/1131054.html\"\u003e「Snipping Tool」は廃止へ ～「Windows 10 RS5」でスクショの取り方はこうなる！ - やじうまの杜 - 窓の杜\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"環境変数一覧\"\u003e環境変数一覧\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://technet.microsoft.com/ja-jp/library/mt299197%28v=vs.85%29.aspx?f=255\u0026amp;MSPPError=-2147217396\"\u003e認識される環境変数 (Windows)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"スタートアップの場所\"\u003eスタートアップの場所\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eC:\\Users\\ユーザ名\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\u003c/code\u003e\u003c/p\u003e\n\u003ch2 id=\"powershell\"\u003ePowerShell\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eディレクトリをごっそり削除(\u003ccode\u003erm -rf\u003c/code\u003e 相当): \u003ccode\u003eRemove-Item -Recurse -Force ディレクトリ\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/1752677/how-to-recursively-delete-an-entire-directory-with-powershell-2-0\"\u003ewindows - How to recursively delete an entire directory with PowerShell 2.0? - Stack Overflow\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e以下の手順はおそらくdynabookです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Windows: ウィンドウがはみ出てしまったときの復旧方法",
    "url": "https://www.ikemo3.com/inverted/windows/recovery-window-position/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eWindowsでウィンドウが何らかの理由ではみ出してしまったときの対処方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eタスクバーのボタンをクリックして、アクティブにする。\u003c/li\u003e\n\u003cli\u003eAlt + Space\u003c/li\u003e\n\u003cli\u003e「M」キーを押す\u003c/li\u003e\n\u003cli\u003e方向キーでウィンドウを動かし、Enterで確定\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n"
  }, 
  {
    "title": "java.time",
    "url": "https://www.ikemo3.com/dic/java.time/",
    "contents": "\u003ch2 id=\"javatimeとは\"\u003ejava.timeとは\u003c/h2\u003e\n\u003cp\u003eJava SE 8から導入された、時間を扱うためのクラスです。\u003c/p\u003e\n\u003ch2 id=\"joda-time\"\u003eJoda-Time\u003c/h2\u003e\n\u003cp\u003eJSR-310のリードは、Joda-Timeの作者です。\u003c/p\u003e\n\u003ch2 id=\"たくさんのクラスがある\"\u003eたくさんのクラスがある\u003c/h2\u003e\n\u003cp\u003e以下のように、パッケージとクラスがたくさんあります。\nいずれもJava SE 8での数字です。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eパッケージ\u003c/th\u003e\n          \u003cth\u003eインタフェース\u003c/th\u003e\n          \u003cth\u003eクラス\u003c/th\u003e\n          \u003cth\u003e列挙型\u003c/th\u003e\n          \u003cth\u003e例外\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003ejava.time\u003c/td\u003e\n          \u003ctd\u003e0\u003c/td\u003e\n          \u003ctd\u003e15\u003c/td\u003e\n          \u003ctd\u003e2\u003c/td\u003e\n          \u003ctd\u003e1\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003ejava.time.chrono\u003c/td\u003e\n          \u003ctd\u003e6\u003c/td\u003e\n          \u003ctd\u003e11\u003c/td\u003e\n          \u003ctd\u003e4\u003c/td\u003e\n          \u003ctd\u003e0\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003ejava.time.format\u003c/td\u003e\n          \u003ctd\u003e0\u003c/td\u003e\n          \u003ctd\u003e3\u003c/td\u003e\n          \u003ctd\u003e4\u003c/td\u003e\n          \u003ctd\u003e1\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003ejava.time.temporal\u003c/td\u003e\n          \u003ctd\u003e7\u003c/td\u003e\n          \u003ctd\u003e6\u003c/td\u003e\n          \u003ctd\u003e2\u003c/td\u003e\n          \u003ctd\u003e1\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003ejava.time.zone\u003c/td\u003e\n          \u003ctd\u003e0\u003c/td\u003e\n          \u003ctd\u003e4\u003c/td\u003e\n          \u003ctd\u003e1\u003c/td\u003e\n          \u003ctd\u003e1\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e合計\u003c/td\u003e\n          \u003ctd\u003e13\u003c/td\u003e\n          \u003ctd\u003e39\u003c/td\u003e\n          \u003ctd\u003e13\u003c/td\u003e\n          \u003ctd\u003e4\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"多くが不変かつfinal\"\u003e多くが不変かつfinal\u003c/h2\u003e\n\u003cp\u003eほとんどのクラスは以下のどれかのパターンで作成されています。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003efinalかつ、不変かつ、継承なし(Objectを直接継承)\n\u003cul\u003e\n\u003cli\u003e例外クラスは継承を使うのが良いため除外\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e抽象クラスだが、継承したクラスがfinalかつ不変であることを要求\u003c/li\u003e\n\u003cli\u003e2.を継承したクラスで、finalかつ不変\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e例外は以下の1クラスのみです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ejava.time.format.DateTimeFormatBuilder\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Kotlin",
    "url": "https://www.ikemo3.com/manual/kotlin/",
    "contents": "\u003ch2 id=\"文法\"\u003e文法\u003c/h2\u003e\n\u003ch3 id=\"class\"\u003eclass\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://kotlinlang.org/docs/reference/classes.html\"\u003eClasses and Inheritance - Kotlin Programming Language\u003c/a\u003e\u003c/p\u003e\n\u003ch4 id=\"コンストラクタの定義\"\u003eコンストラクタの定義\u003c/h4\u003e\n\u003cp\u003eプライマリコンストラクタという概念があって、ヘッダに書く。\nprivateの場合は\u003ccode\u003eprivate constructor\u003c/code\u003eと書く。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-kotlin\" data-lang=\"kotlin\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ePerson\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003econstructor\u003c/span\u003e(firstName: String) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003econstructorはアノテーションとかvisibility modifiers(privateとか)が\nない場合は省略可能。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-kotlin\" data-lang=\"kotlin\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ePerson\u003c/span\u003e(firstName: String) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch4 id=\"コンストラクタの実装\"\u003eコンストラクタの実装\u003c/h4\u003e\n\u003cp\u003eコンストラクタの実装は、initキーワードつきのブロック(イニシャライザ)を使う。\n(RubyのinitializeとかObjective-Cのinitとかと同じですね)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-kotlin\" data-lang=\"kotlin\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003einit\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eイニシャライザは複数定義可能で、\n複数定義した場合、上から処理される。\u003c/p\u003e\n\u003ch4 id=\"セカンダリコンストラクタ\"\u003eセカンダリコンストラクタ\u003c/h4\u003e\n\u003cp\u003eセカンダリコンストラクタはプライマリコンストラクタを呼ぶ必要がある。\n\u003ccode\u003ethis(name)\u003c/code\u003eがその呼び出し。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-kotlin\" data-lang=\"kotlin\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ePerson\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003eval\u003c/span\u003e name: String) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003econstructor\u003c/span\u003e(name: String, parent: Person) : \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e(name) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    parent.children.add(\u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch4 id=\"インスタンス化\"\u003eインスタンス化\u003c/h4\u003e\n\u003cp\u003e\u003ca href=\"https://kotlinlang.org/docs/reference/classes.html#creating-instances-of-classes\"\u003ehttps://kotlinlang.org/docs/reference/classes.html#creating-instances-of-classes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eメソッド呼び出しのようにする。\n(newキーワードは存在しない)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-kotlin\" data-lang=\"kotlin\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e customer = Customer(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Joe Smith\u0026#34;\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch4 id=\"継承\"\u003e継承\u003c/h4\u003e\n\u003cp\u003eデフォルトは\u003ccode\u003eAny\u003c/code\u003eを継承。Objectではない。\n\u003ccode\u003eAny\u003c/code\u003eは\u003ccode\u003eequals()\u003c/code\u003e, \u003ccode\u003ehashCode()\u003c/code\u003e, \u003ccode\u003etoString()\u003c/code\u003e以外は持たない。\nつまり、以下のメソッドがない。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eclone()\u003c/li\u003e\n\u003cli\u003efinalize()\u003c/li\u003e\n\u003cli\u003egetClass()\u003c/li\u003e\n\u003cli\u003enotify() / wait()系\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e継承をするときには、\u003ccode\u003e:\u003c/code\u003eで区切って右側にスーパークラスを書く。\n継承可能なクラスには\u003ccode\u003eopen\u003c/code\u003eを付ける。\nJavaとは逆。素晴らしい。\u003c/p\u003e\n\u003ch4 id=\"メソッドのオーバーライド\"\u003eメソッドのオーバーライド\u003c/h4\u003e\n\u003cp\u003eWIP\u003c/p\u003e\n\u003ch4 id=\"データクラス\"\u003eデータクラス\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://kotlinlang.org/docs/reference/data-classes.html\"\u003eData Classes - Kotlin Programming Language\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://kotlinlang.org/docs/reference/idioms.html#creating-dtos-pojospocos\"\u003eCreating DTOs (POJOs/POCOs)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eC言語における構造体、あるいはDDDにおけるValue Objectなどを扱うために便利そう。\n解説では[DTO](Data Transfer Object)のためと書かれています。\u003c/p\u003e\n\u003cp\u003e自動で以下のものが定義される。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003egetter\u003c/li\u003e\n\u003cli\u003e(varで定義した場合)setter\u003c/li\u003e\n\u003cli\u003eequals\u003c/li\u003e\n\u003cli\u003ehashCode\u003c/li\u003e\n\u003cli\u003etoString\u003c/li\u003e\n\u003cli\u003ecopy 何?\u003c/li\u003e\n\u003cli\u003ecomponent1(), component2(), 何?\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"シールクラス\"\u003eシールクラス\u003c/h4\u003e\n\u003cp\u003e\u003ca href=\"https://kotlinlang.org/docs/reference/sealed-classes.html\"\u003ehttps://kotlinlang.org/docs/reference/sealed-classes.html\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e継承を制限する。具体的には、同じ[クラス]に定義されたクラス以外では継承できない。\n\u003cul\u003e\n\u003cli\u003ewhen(switchのようなもの)を使うときに、\u003ccode\u003eelse\u003c/code\u003eが不要になる。\n\u003cul\u003e\n\u003cli\u003eenumと似ている。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://blog.takuji31.jp/entry/2017/12/07/183613\"\u003eKotlinのSealed Classを使いこなす - Takuji-\u0026gt;find;\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e個人的な経験だと、最初はクラスで十分だと思っていたが、\n後でインタフェースに変えたときに泣く泣く継承を使って実現したケースがあるので(クラスとインタフェースは互換性がない)、そういうときに使えるかもしれない。\u003c/p\u003e\n\u003ch3 id=\"コメント\"\u003eコメント\u003c/h3\u003e\n\u003cp\u003eJavaと違ってブロックコメントのネストが可能。\u003c/p\u003e\n\u003ch2 id=\"文字列\"\u003e文字列\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://kotlinlang.org/docs/reference/basic-types.html#strings\"\u003ehttps://kotlinlang.org/docs/reference/basic-types.html#strings\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://kotlinlang.org/docs/reference/basic-syntax.html#using-string-templates\"\u003ehttps://kotlinlang.org/docs/reference/basic-syntax.html#using-string-templates\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://kotlinlang.org/docs/reference/basic-types.html#string-templates\"\u003ehttps://kotlinlang.org/docs/reference/basic-types.html#string-templates\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下の2つがある。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eエスケープ済み文字列(escaped string)\n\u003cul\u003e\n\u003cli\u003e通常のJava文字列とほぼ同じ。ただし、\u003ccode\u003e$\u003c/code\u003eはテンプレートとして展開されてるため、\u003ccode\u003e\\$\u003c/code\u003eのようにする。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e生文字列(raw string)\n\u003cul\u003e\n\u003cli\u003eダブルクォーテーション3つ(\u003ccode\u003e\u0026quot;\u0026quot;\u0026quot;\u003c/code\u003e)で挟む。\u003c/li\u003e\n\u003cli\u003eエスケープできない。\u003ccode\u003e$\u003c/code\u003e自体を書くときは\u003ccode\u003e${'$'}\u003c/code\u003eのように書く。\u003c/li\u003e\n\u003cli\u003e前の空白を削除したいときはtrimMarginを使う。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"文字列テンプレート\"\u003e文字列テンプレート\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003e$i\u003c/code\u003eまたは\u003ccode\u003e${i}\u003c/code\u003e形式で書ける(bashとかと同じ)。\n生文字列中に\u003ccode\u003e$\u003c/code\u003e自体を書くときは\u003ccode\u003e${'$'}\u003c/code\u003eのように書く。\n(生文字列はエスケープできない)。\u003c/p\u003e\n\u003ch2 id=\"unit\"\u003eUnit\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html\"\u003ehttps://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJavaにおけるvoidと同じ。\u003c/p\u003e\n\u003ch2 id=\"var--val\"\u003evar / val\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003evar: 書き換え可能(mutable)\u003c/li\u003e\n\u003cli\u003eval: 書き換え不可能(immutable)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"if\"\u003eif\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://kotlinlang.org/docs/reference/control-flow.html#if-expression\"\u003ehttps://kotlinlang.org/docs/reference/control-flow.html#if-expression\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJavaとの違い\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eif文が値を返す(Rubyと同じ)\u003c/li\u003e\n\u003cli\u003eブロックの最後の値を返す(Rubyと同じ)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"for\"\u003efor\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://kotlinlang.org/docs/reference/control-flow.html#for-loops\"\u003ehttps://kotlinlang.org/docs/reference/control-flow.html#for-loops\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efor (item in items)\u003c/code\u003e JavaScriptライク?\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eindices\u003c/code\u003e: インデックス\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ewithIndex()\u003c/code\u003e: インデックス付きループ(Rubyで便利なやつ)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"when\"\u003ewhen\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://kotlinlang.org/docs/reference/control-flow.html#when-expression\"\u003ehttps://kotlinlang.org/docs/reference/control-flow.html#when-expression\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eswitchと意味合い的には同じ。ただ柔軟性がある。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e0, 1 =\u0026gt; ...\u003c/code\u003eのようにカンマ区切りで複数指定ができる\u003c/li\u003e\n\u003cli\u003e任意の式の結果が使える\n\u003cul\u003e\n\u003cli\u003e例が分かりにくいが、以下のように \u003ccode\u003ex\u003c/code\u003e が \u003ccode\u003eparseInt(s)\u003c/code\u003e と同じかどうかで分岐できる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-kotlin\" data-lang=\"kotlin\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eimport\u003c/span\u003e java.lang.Integer.parseInt\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e \n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efun\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efoo\u003c/span\u003e(s: String, x: Int) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ewhen\u003c/span\u003e (x) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    parseInt(s) \u003cspan style=\"color:#f92672\"\u003e-\u0026gt;\u003c/span\u003e print(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;s encodes x\u0026#34;\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eelse\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e-\u0026gt;\u003c/span\u003e print(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;s does not encode x\u0026#34;\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e \n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efun\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emain\u003c/span\u003e(args: Array\u0026lt;String\u0026gt;) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  foo(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;1\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e) \u003cspan style=\"color:#75715e\"\u003e// -\u0026gt; s encodes x\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  foo(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;2\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e) \u003cspan style=\"color:#75715e\"\u003e// -\u0026gt; s does not encode x\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cul\u003e\n\u003cli\u003e範囲(range)による指定ができる\n\u003cul\u003e\n\u003cli\u003e例: \u003ccode\u003ein 1..10\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e!\u003c/code\u003eで否定も可能\u003c/li\u003e\n\u003cli\u003e例: \u003ccode\u003e!in 1..10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eis\u003c/code\u003e(スマートキャスト)\u003c/li\u003e\n\u003cli\u003e普通の\u003ccode\u003eif-else if\u003c/code\u003e の代わりにもなる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"null関連\"\u003enull関連\u003c/h2\u003e\n\u003ch3 id=\"オペレータ\"\u003e\u003ccode\u003e!!\u003c/code\u003eオペレータ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://kotlinlang.org/docs/reference/null-safety.html#the--operator\"\u003ehttps://kotlinlang.org/docs/reference/null-safety.html#the--operator\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e強制的にアンラップして非nullとして扱う。\n当然nullが入っている場合はNullPointerExceptionになる。\nちなみにSwiftは\u003ccode\u003e!\u003c/code\u003e\u003c/p\u003e\n\u003ch2 id=\"safe-cast\"\u003eSafe Cast\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://kotlinlang.org/docs/reference/null-safety.html#safe-casts\"\u003ehttps://kotlinlang.org/docs/reference/null-safety.html#safe-casts\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003easを使うことで、キャストに失敗したときはnullを返すようにできる。\u003c/p\u003e\n\u003ch2 id=\"スマートキャスト\"\u003eスマートキャスト\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://kotlinlang.org/docs/reference/typecasts.html#smart-casts\"\u003ehttps://kotlinlang.org/docs/reference/typecasts.html#smart-casts\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003einstanceofとキャストを同時に行う機能。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-kotlin\" data-lang=\"kotlin\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efun\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003edemo\u003c/span\u003e(x: Any) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (x \u003cspan style=\"color:#66d9ef\"\u003eis\u003c/span\u003e String) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    print(x.length)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eJavaで書くとこんな感じ(のはず)。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003edemo\u003c/span\u003e(Object x) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (x \u003cspan style=\"color:#66d9ef\"\u003einstanceof\u003c/span\u003e String) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    System.\u003cspan style=\"color:#a6e22e\"\u003eout\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eprint\u003c/span\u003e(((String)x).\u003cspan style=\"color:#a6e22e\"\u003elength\u003c/span\u003e());\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eブロックの中でなくても、キャストして問題ないと判断できる場所では使用可能。\n例は以下の通り(インデントがずれてる?)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-kotlin\" data-lang=\"kotlin\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (x \u003cspan style=\"color:#f92672\"\u003e!is\u003c/span\u003e String) \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  print(x.length)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "MITライセンス",
    "url": "https://www.ikemo3.com/dic/mit-license/",
    "contents": "\u003ch2 id=\"mitライセンスとは\"\u003eMITライセンスとは\u003c/h2\u003e\n\u003cp\u003e緩やかなオープンソースライセンスです。\u003c/p\u003e\n\u003ch2 id=\"使い方\"\u003e使い方\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://wiki.openstack.org/wiki/LegalIssuesFAQ#Incorporating_BSD.2FMIT_Licensed_Code\"\u003eOpenStackのFAQ\u003c/a\u003eに書かれている記述が一番良さそうです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eソースコードのヘッダに、ライセンス表示をコピーする。\u003c/li\u003e\n\u003cli\u003eトップレベルのLICENSEファイル\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eに、著作権表示、ライセンス、免責事項をコピーして説明を記載。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eあるいは\u003ccode\u003eCOPYING\u003c/code\u003eでもいいと思います。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Time",
    "url": "https://www.ikemo3.com/tags/time/",
    "contents": ""
  }, 
  {
    "title": "ルーチン",
    "url": "https://www.ikemo3.com/dic/routine/",
    "contents": "\u003ch2 id=\"ルーチンとは\"\u003eルーチンとは\u003c/h2\u003e\n\u003cp\u003e定期的なタスクのことです。\nタスクシュートでは特に重要な概念です。\u003c/p\u003e\n\u003ch2 id=\"対応している周期\"\u003e対応している周期\u003c/h2\u003e\n\u003cp\u003eルーチンタスクは以下のような周期があります。\n(TaskChute Cloud基準)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e日ごと(毎日、2日ごと、・・・)\u003c/li\u003e\n\u003cli\u003e完了日ごと(完了から1日ごと、2日ごと、・・・)\u003c/li\u003e\n\u003cli\u003e週ごと\n\u003cul\u003e\n\u003cli\u003e間隔: 毎週、2週ごと、・・・\u003c/li\u003e\n\u003cli\u003e曜日: 月、金のみなど\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e月ごと\n\u003cul\u003e\n\u003cli\u003e間隔: 毎月、2か月ごと、・・・\u003c/li\u003e\n\u003cli\u003e以下のどちらか\n\u003cul\u003e\n\u003cli\u003e日付: 1〜31日、最終日\u003c/li\u003e\n\u003cli\u003e曜日: 第1日曜日など\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e年ごと\n\u003cul\u003e\n\u003cli\u003e間隔: 毎年、2年ごと、・・・\u003c/li\u003e\n\u003cli\u003e月: 1〜12月\u003c/li\u003e\n\u003cli\u003e以下のどちらか\n\u003cul\u003e\n\u003cli\u003e日付: 1〜31日、最終日\u003c/li\u003e\n\u003cli\u003e曜日: 第1日曜日など\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e平日\u003c/li\u003e\n\u003cli\u003e土日祝\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"忘れないためでもあり忘れるためでもある\"\u003e「忘れないため」でもあり「忘れるため」でもある\u003c/h2\u003e\n\u003cp\u003eルーチンタスクはもちろん「忘れないため」に作るものですが、\nこれは同時に、「忘れるため」でもあります。\u003c/p\u003e\n\u003cp\u003e例えば、爪切りというタスクを6日間隔でセットしています。\nもちろんこれは爪切りを忘れないためですが、\n同時に、爪を切る日・時間以外は爪切りのことは完全に頭から忘れられます。\u003c/p\u003e\n\u003cp\u003eもし、何となく「作業をするのが億劫だな」と感じたら、\n間隔を長くすればいいし、逆に不安だと感じるのなら、間隔を短くすればいいです。\nそれを調節することで、自分が安心できる最適な間隔を作ることができます。\u003c/p\u003e\n"
  }, 
  {
    "title": "デバッグ",
    "url": "https://www.ikemo3.com/tags/debug/",
    "contents": ""
  }, 
  {
    "title": "ファイル",
    "url": "https://www.ikemo3.com/tags/file/",
    "contents": ""
  }, 
  {
    "title": "音楽",
    "url": "https://www.ikemo3.com/tags/music/",
    "contents": ""
  }, 
  {
    "title": "仏教",
    "url": "https://www.ikemo3.com/tags/buddhism/",
    "contents": ""
  }, 
  {
    "title": "法律",
    "url": "https://www.ikemo3.com/tags/law/",
    "contents": ""
  }, 
  {
    "title": "IntelliJ IDEA",
    "url": "https://www.ikemo3.com/manual/intellij-idea/",
    "contents": "\u003ch2 id=\"eclipseとの違い\"\u003eEclipseとの違い\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eファイルは自動保存される。\u003c/li\u003e\n\u003cli\u003e未コミットのファイルの表示\n\u003cul\u003e\n\u003cli\u003eEclipse: \u003ccode\u003e\u0026gt;\u003c/code\u003eのような記号が付く\u003c/li\u003e\n\u003cli\u003eIntelliJ IDEA: 色が変わる\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"コミット状態による色の変更\"\u003eコミット状態による色の変更\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.jetbrains.com/help/idea/file-status-highlights.html\"\u003eFile Status Highlights - Help | IntelliJ IDEA\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eGitで確認しているので、他だと違うかもしれません。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e状態\u003c/th\u003e\n          \u003cth\u003eIntelliJ IDEAでの状態\u003c/th\u003e\n          \u003cth\u003e色\u003c/th\u003e\n          \u003cth\u003eデフォルトのカラーコード\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e未コミット\u003c/td\u003e\n          \u003ctd\u003eUnknown\u003c/td\u003e\n          \u003ctd\u003e赤\u003c/td\u003e\n          \u003ctd\u003eD1675A\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e変更あり\u003c/td\u003e\n          \u003ctd\u003eModified\u003c/td\u003e\n          \u003ctd\u003e青\u003c/td\u003e\n          \u003ctd\u003e6897BB\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e変更なし\u003c/td\u003e\n          \u003ctd\u003eUp to date\u003c/td\u003e\n          \u003ctd\u003eなし\u003c/td\u003e\n          \u003ctd\u003eなし\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"バックスラッシュ\"\u003eバックスラッシュ\u003c/h2\u003e\n\u003cp\u003eMacでは\u0026rsquo;'を押しても、円マークになってしまい、\nバックスラッシュが入力されません。\nいろいろ対策はあるようですが、とりあえずOption + \u0026lsquo;'で入力可能です。\u003c/p\u003e\n\u003ch2 id=\"主なキーバインド\"\u003e主なキーバインド\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.jetbrains.com/help/idea/keymap-reference.html\"\u003eKeymap Reference - Help | IntelliJ IDEA\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://resources.jetbrains.com/storage/products/intellij-idea/docs/IntelliJIDEA_ReferenceCard.pdf\"\u003eIntelliJ IDEA DEFAULT KEYMAP(PDF)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e空白のところは存在しないのではなく、未確認です。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e操作内容\u003c/th\u003e\n          \u003cth\u003emacOS\u003c/th\u003e\n          \u003cth\u003eWindows\u003c/th\u003e\n          \u003cth\u003eメニュー操作\u003c/th\u003e\n          \u003cth\u003e正式な操作名称\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eアクティブなエディタタブを閉じる\u003c/td\u003e\n          \u003ctd\u003eCommand + W\u003c/td\u003e\n          \u003ctd\u003eCtrl + F4\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003eClose active editor tab\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e最近使ったファイルの表示\u003c/td\u003e\n          \u003ctd\u003eCommand + E\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003eRecent files popup\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eクイックフィックス\u003c/td\u003e\n          \u003ctd\u003eCommand + Return\u003c/td\u003e\n          \u003ctd\u003eAlt + Enter\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003eShow intention actions and quick-fixes\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eパラメータの情報表示\u003c/td\u003e\n          \u003ctd\u003eCommand + P\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003eParameter info\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eメソッドドキュメントの表示\u003c/td\u003e\n          \u003ctd\u003eCtrl + J\u003c/td\u003e\n          \u003ctd\u003eCtrl + Q\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003eQuick documentation lookup\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e探す\u003c/td\u003e\n          \u003ctd\u003eShiftを2回\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003eSearch everywhere\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e実行\u003c/td\u003e\n          \u003ctd\u003eCtrl + R\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003eRun/Debug\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eコードの整形\u003c/td\u003e\n          \u003ctd\u003eCommand + Option + L\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003eCode→Reformat Code\u003c/td\u003e\n          \u003ctd\u003eReformat code\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e実装に移動\u003c/td\u003e\n          \u003ctd\u003eCommand + Option + B\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e右クリック→Go To→Implementation(s)\u003c/td\u003e\n          \u003ctd\u003eGo to implementation(s)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eコード補完\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003eCtrl + Space\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003eBasic code completion\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e型階層の表示\u003c/td\u003e\n          \u003ctd\u003eCtrl + H\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003eType hierarchy\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e呼び出し階層の表示\u003c/td\u003e\n          \u003ctd\u003eCtrl + Option + H\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003eNavigate→Call hierarchy\u003c/td\u003e\n          \u003ctd\u003eCall hierarchy\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eインポートの最適化\u003c/td\u003e\n          \u003ctd\u003eCtrl + Option + O\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003eOptimize imports\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e次のエラーにハイライト\u003c/td\u003e\n          \u003ctd\u003eF2\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"キーマップ\"\u003eキーマップ\u003c/h2\u003e\n\u003cp\u003e記載がない限り、macOS版です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCtrl + DをEmacsと同じDelete扱いにする\n\u003cul\u003e\n\u003cli\u003eRun → DebugからCtrl + Dを削除\u003c/li\u003e\n\u003cli\u003eEditor Actions → DeleteにCtrl + Dを追加\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eCtrl + Kでクリップボードにコピーされないようにする\n\u003cul\u003e\n\u003cli\u003eEditor Actions → Cut up to Line EndからCtrl + Kを削除\u003c/li\u003e\n\u003cli\u003eEditor Actions → Delete to Line EndにCtrl + Kを追加\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"プロジェクトの作り方\"\u003eプロジェクトの作り方\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eアプリを起動\u003c/li\u003e\n\u003cli\u003eCreate New Project\u003c/li\u003e\n\u003cli\u003eプロジェクトの種類を選択\n\u003cul\u003e\n\u003cli\u003e試しに、Javaのみを選択\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eテンプレートからプロジェクトを作成するかどうか\n\u003cul\u003e\n\u003cli\u003e今回はmain()が含まれるものを作りたいので、チェックする。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eプロジェクト名とかを記入\n\u003cul\u003e\n\u003cli\u003eProject name: 適当\u003c/li\u003e\n\u003cli\u003eProject location: 好みで\u003c/li\u003e\n\u003cli\u003eBase package: 個人の場合は、メールアドレスを逆にしたものがいいかなと思います。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"ターミナルから起動する方法\"\u003eターミナルから起動する方法\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eTools → Create Command-line Launcher\u0026hellip;を選択\u003c/li\u003e\n\u003cli\u003eパスが表示されるので入力(/usr/local/bin/idea)\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eこれでideaコマンドが使えるようになります。\nヘルプは以下の通り。基本は\u003ccode\u003eidea [project_dir]\u003c/code\u003eでいいと思います。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eUsage:\n  /usr/local/bin/idea -h | -? | --help\n  /usr/local/bin/idea [project_dir]\n  /usr/local/bin/idea [-l|--line line] [project_dir|--temp-project] file[:line]\n  /usr/local/bin/idea diff \u0026lt;left\u0026gt; \u0026lt;right\u0026gt;\n  /usr/local/bin/idea merge \u0026lt;local\u0026gt; \u0026lt;remote\u0026gt; [base] \u0026lt;merged\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/circled9/items/af27ad3d4d5a442382f3\"\u003eTerminalからIntelliJ IDEAを開く - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e通常は入力してたら勝手に補完されます。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "IntelliJ IDEA: 初期設定",
    "url": "https://www.ikemo3.com/inverted/intellij-idea/initial/",
    "contents": "\u003ch2 id=\"インストールmacos\"\u003eインストール(macOS)\u003c/h2\u003e\n\u003cp\u003eコミュニティ版 ideaIC-2017.3.3.dmg で試しています。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003e.dmg\u003c/code\u003eファイルを開く\u003c/li\u003e\n\u003cli\u003eアプリケーションをドラッグして、\u003ccode\u003e/Applications/\u003c/code\u003eにコピー。\u003c/li\u003e\n\u003cli\u003eアプリケーションを開く\u003c/li\u003e\n\u003cli\u003eImport IntelliJ IDEA settings from: と聞かれる\n\u003cul\u003e\n\u003cli\u003e初回はDo not import settingsで問題ない\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eプライバシーポリシーが表示されるので、中身を読んでAccept\u003c/li\u003e\n\u003cli\u003eUIのテーマを選択\n\u003cul\u003e\n\u003cli\u003eどちらでもあとで変えられるので問題ないが、Darculaの方をよく見かける。\u003c/li\u003e\n\u003cli\u003eあとで変える場合は、Preferences | Appearance \u0026amp; Behavior | Appearance\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eキーマップの選択\n\u003cul\u003e\n\u003cli\u003e初めて使う場合はデフォルトのAdapted for OS Xでいいかも。\u003c/li\u003e\n\u003cli\u003eあとで変える場合は、Preferences | Keymap\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e起動スクリプトを作るかどうかを聞かれる\n\u003cul\u003e\n\u003cli\u003e自分はCUIから起動できると嬉しいので、設定する。\u003c/li\u003e\n\u003cli\u003eあとで作る場合は、Tools | Create Command-Line Launcher\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eデフォルトプラグインの選択\n\u003cul\u003e\n\u003cli\u003eビルドツール\n\u003cul\u003e\n\u003cli\u003eデフォルトのAnt, Maven, Gradleで問題なさそう。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eバージョンコントロール\n\u003cul\u003e\n\u003cli\u003eデフォルトではCVS, Git, GitHub, Mercurial, Subversion\u003c/li\u003e\n\u003cli\u003eCVSとMercurialは使う予定はなさそうなのでオフ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eテストツール\n\u003cul\u003e\n\u003cli\u003eJUnit, TestNG-J, Coverageの3つがデフォルト。\n\u003cul\u003e\n\u003cli\u003eCoverageはIntelliJ IDEA組み込み、EMMA, JaCoCoの3つがある模様\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://testng.org/\"\u003eTestNG\u003c/a\u003eは使う予定はなさそうなのでオフ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSwing\n\u003cul\u003e\n\u003cli\u003e使う予定はなさそうなのでオフ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAndroid\n\u003cul\u003e\n\u003cli\u003e使う予定はなさそうなのでオフ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eその他のツール\n\u003cul\u003e\n\u003cli\u003eBytecode Viewer\u003c/li\u003e\n\u003cli\u003eEclipse(\u003ca href=\"https://www.jetbrains.com/help/idea/eclipse.html\"\u003e移行ツール\u003c/a\u003eのことかな?)\u003c/li\u003e\n\u003cli\u003eJava Stream Debugger\u003c/li\u003e\n\u003cli\u003eTask Management\u003c/li\u003e\n\u003cli\u003eTerminal\u003c/li\u003e\n\u003cli\u003eYAML\u003c/li\u003e\n\u003cli\u003eXSLT and XPath\u003c/li\u003e\n\u003cli\u003e分からないけど全てオン\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eプラグイン開発\n\u003cul\u003e\n\u003cli\u003e使う予定はなさそうなのでオフ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFeatured plugins(注目のプラグイン?)\n\u003cul\u003e\n\u003cli\u003eScala\n\u003cul\u003e\n\u003cli\u003e使う予定はないので入れない\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eIdeaVim\n\u003cul\u003e\n\u003cli\u003e面白そうだけど入れない\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eIDE Features Trainer\n\u003cul\u003e\n\u003cli\u003e最初なので入れてみる\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"日本語化\"\u003e日本語化\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.willbrains.jp/page/4\"\u003eIntelliJ や PhpStorm などの日本語化\u003c/a\u003e参照。\u003c/p\u003e\n\u003ch2 id=\"プラグイン\"\u003eプラグイン\u003c/h2\u003e\n\u003cp\u003eあとで入れてみる予定。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCheckStyle\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://plugins.jetbrains.com/plugin/1065-checkstyle-idea\"\u003eCheckStyle-IDEA :: JetBrains Plugin Repository\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFindBugs\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://plugins.jetbrains.com/plugin/3847-findbugs-idea\"\u003eFindBugs-IDEA :: JetBrains Plugin Repository\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eミューテーションテスト\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://plugins.jetbrains.com/plugin/7119-pit-mutation-testing-idea-plugin\"\u003ePIT mutation testing Idea plugin :: JetBrains Plugin Repository\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e点数が低いのが気になりましたが、実質2件なので何とも言えませんね。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"設定preferences--setting\"\u003e設定(Preferences / Setting)\u003c/h2\u003e\n\u003cp\u003eプリファレンスのうち、現在のプロジェクトだけに影響するものは、マークが付きます\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\nWelcome画面の場合は、デフォルト設定に影響します。\u003c/p\u003e\n\u003ch3 id=\"appearance--behavior\"\u003eAppearance \u0026amp; Behavior\u003c/h3\u003e\n\u003ch4 id=\"system-settings\"\u003eSystem Settings\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eReopen last project on startup: オフ\n\u003cul\u003e\n\u003cli\u003eデフォルトでは最後に使用したプロジェクトを起動するが、不要なケースが多いため。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"editor\"\u003eEditor\u003c/h3\u003e\n\u003ch4 id=\"general\"\u003eGeneral\u003c/h4\u003e\n\u003ch5 id=\"auto-import\"\u003eAuto Import\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003eExclude from Import and Completion(補完対象から除外)\n\u003cul\u003e\n\u003cli\u003e必要ならクラス、パッケージを追加。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"color-scheme\"\u003eColor Scheme\u003c/h4\u003e\n\u003ch5 id=\"general-1\"\u003eGeneral\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003eErrors and Warnings\n\u003cul\u003e\n\u003cli\u003e(検討中)以下のようにWarningとWeak warningを入れ替える。DarcuraテーマだとWarningが目立たず、Weak warningが目立ちすぎるので。。。\u003c/li\u003e\n\u003cli\u003eWarning\n\u003cul\u003e\n\u003cli\u003eError stripe mark: 756D56\u003c/li\u003e\n\u003cli\u003eEffects: AEAE80, Underwaved\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWeak warning\n\u003cul\u003e\n\u003cli\u003eBackground: 52503A\u003c/li\u003e\n\u003cli\u003eError stripe mark: BE9117\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"code-style\"\u003eCode Style\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eScheme: Default IDE(IDEの設定として管理される)\u003c/li\u003e\n\u003cli\u003eFormatter Control\n\u003cul\u003e\n\u003cli\u003eEnable formatter markers in comments: オン\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5 id=\"java\"\u003eJava\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003eImports\n\u003cul\u003e\n\u003cli\u003eClass count to use import with \u0026lsquo;*\u0026rsquo;: 99\n\u003cul\u003e\n\u003cli\u003e\u0026lsquo;*\u0026lsquo;でインポートすべきではないため。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eNames count to use static import with \u0026lsquo;*\u0026rsquo;: 1\n\u003cul\u003e\n\u003cli\u003e逆にstaticの場合は常に\u0026rsquo;*\u0026lsquo;を使うようにしている(いいんだっけ)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"inspections\"\u003eInspections\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eGeneral\n\u003cul\u003e\n\u003cli\u003eDuplicated Code\n\u003cul\u003e\n\u003cli\u003eTestsを\u0026rsquo;No highlighting, only fix\u0026rsquo;としている。\u003c/li\u003e\n\u003cli\u003eテストコードは無理に重複を排除せず、シンプルにしたほうがいいため。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eInternationalization\n\u003cul\u003e\n\u003cli\u003eNon-ASCII characters\n\u003cul\u003e\n\u003cli\u003eTestsを\u0026rsquo;No highlighting, only fix\u0026rsquo;としている。\u003c/li\u003e\n\u003cli\u003eプロジェクトによるが、テストクラスのみ、日本語を許容している。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eJava\n\u003cul\u003e\n\u003cli\u003eDeclaration redundancy\n\u003cul\u003e\n\u003cli\u003eActual method parameter is the same constant: Weak Warning\n\u003cul\u003e\n\u003cli\u003eパラメータが全て同じ定数の場合の警告。あえてそうしているケースもあるため、弱めた。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDeclaration access can be weaker: Weak Warning\n\u003cul\u003e\n\u003cli\u003eTestsを\u0026rsquo;No highlighting, only fix\u0026rsquo;としている。\u003c/li\u003e\n\u003cli\u003e公開APIとして作ったものが警告になってしまうため。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUnused declaration\n\u003cul\u003e\n\u003cli\u003eEntry points\n\u003cul\u003e\n\u003cli\u003eAnnotationsに以下のアノテーションを追加\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emockit.Mock\u003c/code\u003e(JMockit)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eError handling\n\u003cul\u003e\n\u003cli\u003eCatch block may ignore exception\n\u003cul\u003e\n\u003cli\u003e2番目のDo not warn when \u0026lsquo;catch\u0026rsquo; block is not emptyをオフ\n\u003cul\u003e\n\u003cli\u003ecatchの引数が使われないときに警告を出すため。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eJavadoc\n\u003cul\u003e\n\u003cli\u003eDeclaration has Javadoc problems\n\u003cul\u003e\n\u003cli\u003eTestsを\u0026rsquo;No highlighting, only fix\u0026rsquo;としている。\u003c/li\u003e\n\u003cli\u003eClass\n\u003cul\u003e\n\u003cli\u003eScope: public\n\u003cul\u003e\n\u003cli\u003epublicクラスはJavadocが必須\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMethod\n\u003cul\u003e\n\u003cli\u003eScope: public\n\u003cul\u003e\n\u003cli\u003epublicメソッドはJavadocが必須\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eInner class\n\u003cul\u003e\n\u003cli\u003eScope: public\n\u003cul\u003e\n\u003cli\u003epublic内部クラスはJavadocが必須\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eProbable bugs\n\u003cul\u003e\n\u003cli\u003e\u0026rsquo;equals()\u0026rsquo; method which does not check class of parameter: オフ\n\u003cul\u003e\n\u003cli\u003eApache Commons LangのEqualsBuilder#reflectionEquals()を使うと警告になるた\u0026gt;め。実際は良きに計らえしてくれるので問題ない。\u003c/li\u003e\n\u003cli\u003eValueObjectは別の方法で作成するため不要になるかも。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e@NotNull/@Nullable problems\n\u003cul\u003e\n\u003cli\u003e自前で@NotNull/@Nullableアノテーションを定義しているときは、Configure annotationsで追加する。あるいはデフォルトを設定する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003etoString() issues\n\u003cul\u003e\n\u003cli\u003eClass does not override \u0026rsquo;toString()\u0026rsquo; method: オン\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"file-and-code-templates\"\u003eFile and Code Templates\u003c/h4\u003e\n\u003ch5 id=\"files---class\"\u003eFiles -\u0026gt; Class\u003c/h5\u003e\n\u003cp\u003e以下のように、\u003ccode\u003efinal\u003c/code\u003eを付ける。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e#if (${PACKAGE_NAME} \u0026amp;\u0026amp; ${PACKAGE_NAME} != \u0026#34;\u0026#34;)package ${PACKAGE_NAME};#end\n#parse(\u0026#34;File Header.java\u0026#34;)\npublic final class ${NAME} {\n}\n\u003c/code\u003e\u003c/pre\u003e\u003ch4 id=\"file-encodings\"\u003eFile Encodings\u003c/h4\u003e\n\u003cp\u003eファイルのエンコーディングが設定可能。\u003c/p\u003e\n\u003ch3 id=\"version-control\"\u003eVersion Control\u003c/h3\u003e\n\u003ch4 id=\"confirmation\"\u003eConfirmation\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWhen file are created: Do not add\n\u003cul\u003e\n\u003cli\u003e一部のファイルだけコミット対象にできるGitのメリットが失われるため。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"build-execution-deployment\"\u003eBuild, Execution, Deployment\u003c/h3\u003e\n\u003ch4 id=\"compiler\"\u003eCompiler\u003c/h4\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.jetbrains.com/help/idea/code-coverage.html\"\u003eCode Coverage - Help | IntelliJ IDEA\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.jetbrains.com/help/idea/2017.3/settings-preferences-dialog.html\"\u003eSettings / Preferences Dialog - Help | IntelliJ IDEA\u003c/a\u003eの右側のNoteより。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "IntelliJ IDEAでGradleを使用する方法",
    "url": "https://www.ikemo3.com/inverted/intellij-idea/gradle/",
    "contents": "\u003ch2 id=\"注意\"\u003e注意\u003c/h2\u003e\n\u003cp\u003eここでは、「Gradle Kotlin DSL」を使用します\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"プロジェクト作成まで\"\u003eプロジェクト作成まで\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eCreate New Project\u003c/li\u003e\n\u003cli\u003e「Gradle (Kotlin DSL)」を選択\u003c/li\u003e\n\u003cli\u003eライブラリを追加\n\u003cul\u003e\n\u003cli\u003eJava\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eGroupId, ArtifactId, Versionを入力\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/manual/maven/naming/\"\u003eMaven/ネーミング\u003c/a\u003e参照\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eオプションを入力\n\u003cul\u003e\n\u003cli\u003eUse auto-import: 調査中\u003c/li\u003e\n\u003cli\u003eGroup modules: 調査中\u003c/li\u003e\n\u003cli\u003eCreate separate module per source set: 調査中\u003c/li\u003e\n\u003cli\u003eStore generated project files externally: 調査中\u003c/li\u003e\n\u003cli\u003egradle\n\u003cul\u003e\n\u003cli\u003eUse default gradle wrapper (recommended)でOK\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eProject name, Project location\n\u003cul\u003e\n\u003cli\u003eそのままでOKと思われる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eGradleの書式は苦痛だったので。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "IntelliJ IDEAでMavenを使用する方法",
    "url": "https://www.ikemo3.com/inverted/intellij-idea/maven/",
    "contents": "\u003ch2 id=\"プロジェクト作成まで\"\u003eプロジェクト作成まで\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eCreate New Project\u003c/li\u003e\n\u003cli\u003eMavenを選択\u003c/li\u003e\n\u003cli\u003earchetypeを選択\n\u003cul\u003e\n\u003cli\u003eorg.apache.maven.archetypes:maven-archetype-quickstart がシンプルプロジェクトに対応しているとか。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eGroupId, ArtifactId, Versionを記入\u003c/li\u003e\n\u003cli\u003eMavenの設定\n\u003cul\u003e\n\u003cli\u003e多分そのままでよい\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eプロジェクトが作成されるが、以下の点が変なので直す\n\u003cul\u003e\n\u003cli\u003eurl: \u003ca href=\"http://maven.apache.org\"\u003ehttp://maven.apache.org\u003c/a\u003e になっているので、自分管理のものに\u003c/li\u003e\n\u003cli\u003ejunitが古い\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://mvnrepository.com/artifact/junit/junit/4.12\"\u003e4.12\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e5\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api\"\u003ejunit-jupiter-api\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"既存のプロジェクトをmaven対応にする\"\u003e既存のプロジェクトをMaven対応にする\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.jetbrains.com/help/idea/maven.html#maven_add_module\"\u003eAdding a new Maven module to an existing project\u003c/a\u003eより。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eリポジトリをチェックアウト\u003c/li\u003e\n\u003cli\u003eCreate New Project\u003c/li\u003e\n\u003cli\u003eNew Project画面で以下のように選択。\n\u003cul\u003e\n\u003cli\u003eMaven\u003c/li\u003e\n\u003cli\u003eModule SDK: 1.8\u003c/li\u003e\n\u003cli\u003eCreate from archetype: チェックしない\n\u003cul\u003e\n\u003cli\u003e使えそうなものがあればチェックしたいが。。。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eGroupId, ArtifactId, Versionを記入\u003c/li\u003e\n\u003cli\u003eProject nameとProject locationを選択\n\u003cul\u003e\n\u003cli\u003eProject nameは任意\u003c/li\u003e\n\u003cli\u003eProject locationは既存のプロジェクトの場所を選択\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Kotlin",
    "url": "https://www.ikemo3.com/tags/kotlin/",
    "contents": ""
  }, 
  {
    "title": "Java: toString()に頼るべきではない",
    "url": "https://www.ikemo3.com/theme/java/do-not-rely-tostring/",
    "contents": "\u003ch2 id=\"何が悩みか\"\u003e何が悩みか\u003c/h2\u003e\n\u003cp\u003e例えば、文字列をValueObjectの考え方で、\nオブジェクトとして扱いたい場合があります。\n以下のようなコードです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eclass\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eItemCode\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eprivate\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efinal\u003c/span\u003e String itemCode;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eItemCode\u003c/span\u003e(String itemCode) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eitemCode\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e itemCode;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこのようなときに、元のitemCodeを取得したい場合に、\nどの方式を選ぶかというのが悩みでした。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003etoString()\u003c/li\u003e\n\u003cli\u003egetItemCode(), itemCode()のようなゲッター\u003c/li\u003e\n\u003cli\u003eformat(formatter)\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e結論としては、3\u0026gt;2\u0026gt;1の順でよく、\u003cstrong\u003eログ以外では1は避けるべき\u003c/strong\u003eという認識です。\u003c/p\u003e\n\u003ch2 id=\"理由\"\u003e理由\u003c/h2\u003e\n\u003ch3 id=\"フォーマット指定が柔軟\"\u003eフォーマット指定が柔軟\u003c/h3\u003e\n\u003cp\u003eまず、3.の方式がいい理由は、柔軟に対応できるからです。\u003c/p\u003e\n\u003cp\u003e例えば、java.timeに含まれているクラスの多くには、formatメソッドがあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/ZonedDateTime.html#format-java.time.format.DateTimeFormatter-\"\u003eZonedDateTime#format(DateTimeFormatter)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれに限らず必要な文字列表現は1つとは限らないため、書式を指定できるといいでしょう。\u003c/p\u003e\n\u003ch3 id=\"呼び出し元を見つけるのに苦労する\"\u003e呼び出し元を見つけるのに苦労する\u003c/h3\u003e\n\u003cp\u003e次に、ゲッターよりtoString()の方がよくない理由です。\nそれは、\u003cstrong\u003e呼び出し元をIDEで見つけられないから\u003c/strong\u003eです。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/dic/eclipse/\"\u003eEclipse\u003c/a\u003eでは(Oxygenで確認)オーバーライドされたメソッドの呼び出しを、\n元のメソッド呼び出しと区別して検索できません。\nなので、toString()の呼び出し元を調べると、\nObject#toString()の呼び出しがずらっと表示されます。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/dic/intellij-idea/\"\u003eIntelliJ IDEA\u003c/a\u003eはObject#toString()の呼び出しなのか、\nオーバーライドされたメソッドのみの呼び出しなのか、明示的に指定して検索できます。\u003c/p\u003e\n\u003cp\u003eしかし、\u003ccode\u003e\u0026quot;object: \u0026quot; + obj\u003c/code\u003e のような、toString()の暗黙的呼び出しについては、\nIntelliJ IDEAでも対応できません。\u003c/p\u003e\n\u003cp\u003eなので、toString()を使うと、\u003cstrong\u003e変更が必要なときの影響調査で死にます\u003c/strong\u003e。\nログだけに使うのが賢明です。\u003c/p\u003e\n\u003ch2 id=\"tostringの実装方法\"\u003etoString()の実装方法\u003c/h2\u003e\n\u003cp\u003etoStringはCommons Langの\u003ca href=\"https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/builder/ToStringBuilder.html\"\u003eToStringBuilder\u003c/a\u003eクラスを用いて、\n自オブジェクトの中身を表示するのが最も分かりやすいと思います。\u003c/p\u003e\n\u003ch2 id=\"tostringは形式を明示しないと書く\"\u003etoString()は形式を明示しないと書く\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/effective-java/\"\u003eEffective Java\u003c/a\u003eの「項目10 toStringを常にオーバーライドする」には、\n以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eもし、形式を明示しないと決めたのであれば、\nドキュメンテーションコメントは、次のように書かれるべきです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eその後にJavadocコメントの例がありますが、\n「変更されることがあります」と書いておけばよいかと思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "Java: 配列は使うべきでない",
    "url": "https://www.ikemo3.com/theme/java/should-not-use-array/",
    "contents": "\u003ch2 id=\"配列よりもリスト\"\u003e配列よりもリスト\u003c/h2\u003e\n\u003cp\u003e基本的に、Javaでは、配列は使うべきではありません。\nリストを使うべきです。\u003c/p\u003e\n\u003ch2 id=\"理由\"\u003e理由\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/effective-java/\"\u003eEffective Java\u003c/a\u003eにも書かれているのですが、\n自分の言葉で書きます。\u003c/p\u003e\n\u003ch3 id=\"tostring\"\u003etoString()\u003c/h3\u003e\n\u003cp\u003e自分の中では、リストを使うべき一番の理由は、「ログ」です。\n「ログ」には通常toString()メソッドを使いますが、\n配列の場合、配列の中身を表示しません。\n一方で、リストに対してtoString()を使うと、\nリストの要素をそれぞれ表示してくれます。\u003c/p\u003e\n\u003ch3 id=\"効率は\"\u003e効率は?\u003c/h3\u003e\n\u003cp\u003e原理上は、配列よりリストの方がメモリを食います。速度も配列の方が速いです。\nしかし、そもそも、最初からメモリ効率や速度を気にするのが間違いです。\nなぜなら、最初からメモリを気にするのは、\u003ca href=\"/dic/premature-optimization-is-the-root-of-all-evil/\"\u003e早すぎる最適化\u003c/a\u003eだからです。\nメモリ効率による問題よりも、他の問題の方が圧倒的に多いです。\u003c/p\u003e\n\u003cp\u003eもちろん、計測した結果ボトルネックになることもあるので、\n参考までに、速度を計測した記事へのリンクを載せておきます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://d.hatena.ne.jp/chiheisen/20090928/1254154372\"\u003e配列 vs ArrayList、速くて軽いのはどっち！？ - 地平線に行く\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ralitblog.wordpress.com/2014/02/10/java%E3%81%AE%E3%83%AA%E3%82%B9%E3%83%88%E9%80%9F%E5%BA%A6%E5%AF%BE%E6%B1%BA/\"\u003eJavaのリスト速度対決 | ralitblog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Jenkins + GitBucket: gitでエラー",
    "url": "https://www.ikemo3.com/inverted/jenkins/scan-multibranch-git-error/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e以下の組み合わせでエラーが出たときの対処。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJenkins\u003c/li\u003e\n\u003cli\u003eGitBucket\u003c/li\u003e\n\u003cli\u003eMultibranch Pipeline\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003estderr: remote: Counting objects: 1\nremote: internal server error\nfatal: protocol error: bad pack header\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGit関連のファイルを削除\n\u003cul\u003e\n\u003cli\u003e/var/lib/jenkins/caches\u003c/li\u003e\n\u003cli\u003e/var/lib/jenkins/workspace\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n\u003cp\u003eこれで回避はできましたが、本当の原因はまだ追求できていません。\u003c/p\u003e\n"
  }, 
  {
    "title": "Kindle",
    "url": "https://www.ikemo3.com/dic/kindle/",
    "contents": "\u003ch2 id=\"kindleとは\"\u003eKindleとは\u003c/h2\u003e\n\u003cp\u003eAmazonが発売している端末、\nもしくは、\u003ca href=\"/dic/ios/\"\u003eiOS\u003c/a\u003eや\u003ca href=\"/dic/macos/\"\u003emacOS\u003c/a\u003e、\u003ca href=\"/dic/windows/\"\u003eWindows\u003c/a\u003eなどで使えるアプリを含む、\n電子書籍のプラットフォームです。\u003c/p\u003e\n\u003ch2 id=\"安さには逆らえない\"\u003e「安さ」には逆らえない\u003c/h2\u003e\n\u003cp\u003e正直Kindleは最初はどうかなぁと思ってたのですが、\n今では電子書籍のメインはKindleです。\u003c/p\u003e\n\u003cp\u003e「どうかなぁ」と思った理由は、Kindleは特に優秀ではなかったからです。\n例えば、\u003ca href=\"http://k-kinoppy.jp/\"\u003eKinoppy\u003c/a\u003eはKindleが始まる前から頑張ってました。\nしかし、\u003ca href=\"/dic/twitter/\"\u003eTwitter\u003c/a\u003eにいるような人たちはこれを評価しませんでした。\n「舶来であること」が、最大の価値だったからです。\u003c/p\u003e\n\u003cp\u003eまあ、と言ってもセールとかで安く買えるのは魅力的です。\nそこは否定できません。\u003c/p\u003e\n"
  }, 
  {
    "title": "理性と直感",
    "url": "https://www.ikemo3.com/theme/humanity/intuition-vs-rationality/",
    "contents": "\u003ch2 id=\"この問題とは\"\u003eこの問題とは\u003c/h2\u003e\n\u003cp\u003e理性と直感(直観)のどちらが優位かという問題は、\n古典的ですが、重要な問題です。\n実はこの問題はものすごく簡単なのですが、なかなか理解されていません。\u003c/p\u003e\n\u003ch2 id=\"補助線を引く\"\u003e補助線を引く\u003c/h2\u003e\n\u003cp\u003eこの問題に結論を付けるためには、以下の2つの補助線を引く必要があります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e「直感(直観)」と「感情」の分離\u003c/li\u003e\n\u003cli\u003e「主観的確率論」\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e結論から言うと、「直感(直観)」の方がだいたいは正しいです。\n正しくないのは、だいたいはサンプルが偏っているからです。\u003c/p\u003e\n\u003ch2 id=\"感情的になるのは常にアウト\"\u003e「感情的になる」のは常にアウト\u003c/h2\u003e\n\u003cp\u003e「感情的になる」というのをどう定義すべきかは悩むところですが、\n少なくとも「感情的になる」というのは、良いことはありません。\nなぜなら、「感情的になる」というのは、正しい判断を放棄したことだからです。\n別の言い方をすると、同じ結論でも、ネチネチネチネチ問い詰める\n方が効果が高いのに、その方法を取らないのは、損だからです。\u003c/p\u003e\n\u003ch2 id=\"直感は確率論\"\u003e直感は確率論\u003c/h2\u003e\n\u003cp\u003eもう一つ重要なのは、多くの場合、直感というのは、\n確率論、言い換えると、「経験」に依っているからです。\n確率論というのは曖昧ではありますが、理論的です。\u003c/p\u003e\n\u003ch2 id=\"解像度が高い\"\u003e解像度が高い\u003c/h2\u003e\n\u003cp\u003e「理性」といった時の論理は、基本的にはゼロイチです。\n一方で、「直感」を確率論的に捉えた時に、\nその論理は、基本的には、0と1の間を滑らかに移動します。\nしたがって、「直感」の方が制度が高いのは「当たり前」なんですね。\u003c/p\u003e\n"
  }, 
  {
    "title": "ナナロク世代",
    "url": "https://www.ikemo3.com/dic/76-generation/",
    "contents": "\u003ch2 id=\"ナナロク世代とは\"\u003eナナロク世代とは\u003c/h2\u003e\n\u003cp\u003e1976年、またはその前後の世代です。\nインターネットの起業家が多いみたいです。\n一応自分も1976年生まれです。\u003c/p\u003e\n\u003ch2 id=\"お金の臭いがしない\"\u003eお金の臭いがしない\u003c/h2\u003e\n\u003cp\u003e同世代だからといってどうこう言うつもりはないし、\n成功しても人格的に駄目な人もいるのでうらやましいとも思いませんが、\n上の世代とは決定的に違うところがあるなと思います。\u003c/p\u003e\n\u003cp\u003e一番大きいのは、「お金の臭いがしない」ことです。\n数年上の世代になると、お金にガツガツしている人が大きくて、\n正直うわぁという感じです。\u003c/p\u003e\n"
  }, 
  {
    "title": "バブル時代",
    "url": "https://www.ikemo3.com/dic/bubble-era/",
    "contents": "\u003ch2 id=\"バブル時代とは\"\u003eバブル時代とは\u003c/h2\u003e\n\u003cp\u003e日本が\u003cstrong\u003e一番貧しかった\u003c/strong\u003e時代です。\u003c/p\u003e\n\u003ch2 id=\"貧しい理由\"\u003e貧しい理由\u003c/h2\u003e\n\u003cp\u003e一番は「モノが多い＝豊か」という価値観に縛られていたからです。\n就職が楽という話もありますが、\n当時は「何もできなくても就職は簡単だった」ため、後で苦労したからです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Evernote",
    "url": "https://www.ikemo3.com/dic/evernote/",
    "contents": "\u003ch2 id=\"evernoteとは\"\u003eEvernoteとは\u003c/h2\u003e\n\u003cp\u003e情報を貯蓄するためのソフトウェアです。\u003c/p\u003e\n\u003ch2 id=\"ライフログ以外は使わない\"\u003eライフログ以外は使わない\u003c/h2\u003e\n\u003cp\u003e以前はEvernoteを積極的に使っていて、プレミアムを継続していたのですが、\n解約して、今後は少しずつ役割を減らしていこうと思っています。\n理由は次の通りです。\u003c/p\u003e\n\u003ch3 id=\"ソフトウェアの品質が悪い\"\u003eソフトウェアの品質が悪い\u003c/h3\u003e\n\u003cp\u003e特に\u003ca href=\"https://discussion.evernote.com/topic/100578-we%E2%80%99re-sorry-please-update-evernote-for-mac/\"\u003eデータ喪失バグ\u003c/a\u003eは痛いです。\nこれ何が問題かというと、「消えたことが分からない」ことです。\n空のノートがあったときに、単に何も書いてないだけなのか、\nバグのせいで消えたのかも分からないです。\u003c/p\u003e\n\u003ch3 id=\"カスタマーサポートの対応\"\u003eカスタマーサポートの対応\u003c/h3\u003e\n\u003cp\u003e個人的には、こちらの方が大きいです。\n自分は以前、以下の2つの問題を報告しました。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eMacで等幅フォントを指定しても、Windowsで等幅で表示する方法がない\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003e「公式の」Webクリップ機能を使うと、Windowsでフォントがおかしくなる\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eこの問題は今は解消された(少なくとも中華フォントにならない)のですが、\nその時に「お前の使い方が悪い」という回答をされて、\nそれ以来、サポートを信用していません。\n「分かりました、開発に報告しておきます」だけでも良かったんですけどね。。。\u003c/p\u003e\n\u003ch3 id=\"markdown--gitの方が良い\"\u003eMarkdown + Gitの方が良い\u003c/h3\u003e\n\u003cp\u003eここまではネガティブな話ですが、もっと前向きな話。\n最初はEvernoteでソースコードのハイライトとかを考えてたのですが、\nそういうときに、\u003ca href=\"/dic/markdown/\"\u003eMarkdown\u003c/a\u003eがデファクトになりそうなのを知って、\n少しずつ資料を移行しています。\u003c/p\u003e\n\u003cp\u003eまた、Evernoteの履歴はいつ取られるか分からなくて不安だったのですが、\n\u003ca href=\"/dic/git/\"\u003eGit\u003c/a\u003eで管理すればいいと気づいたので\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e、不安はなくなりました。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eソースコードを表示したいなど\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"http://blog.mino3.com/entry/2015/06/02/210358\"\u003eWindows版Evernoteの一部フォントが汚い問題を解決する（暫定処置） - みのわーるど::Blog\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003eもちろんGitリポジトリのバックアップは必要ですが\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Hugo: 0.32以降でビルドできない",
    "url": "https://www.ikemo3.com/inverted/hugo/0.32-compatibility/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eHugo 0.31.1まではビルドできたが、\nHugo 0.32からはビルドできない場合の修正方法\u003c/p\u003e\n\u003ch2 id=\"現象\"\u003e現象\u003c/h2\u003e\n\u003cp\u003e「テーマが見つからない」ような現象が発生します。\n自分の場合は、以下のような現象が発生しました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e定義されているはずのshortcodeが読み込めない\u003c/li\u003e\n\u003cli\u003eHTMLが全く出力されない\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"035から直る直りました\"\u003e0.35から直る?→直りました\u003c/h2\u003e\n\u003cp\u003eこの問題はconfig.tomlの書き方に問題があるという話でしたが、\n以下の修正がマージされたため、\u003cdel\u003e直るかもしれません。\u003c/del\u003e\n0.35で修正されたことを確認しました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gohugoio/hugo/issues/4352\"\u003etheme param \u0026ldquo;theme\u0026rdquo; breaks build. · Issue #4352 · gohugoio/hugo\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"原因\"\u003e原因\u003c/h2\u003e\n\u003cp\u003e\u003cdel\u003eHugoのバグではなく、config.tomlの書き方に問題があります。\u003c/del\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e[params.theme]\nname = \u0026#34;cerulean\u0026#34;\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eこのように書くと、0.31.1までは有効だったのですが、\n0.32からはthemeの設定を上書きしてしまいます。\u003c/p\u003e\n\u003ch2 id=\"修正方法\"\u003e修正方法\u003c/h2\u003e\n\u003cp\u003e\u003cdel\u003e設定のキーに別のものを使用するように修正してください。\u003c/del\u003e\u003c/p\u003e\n"
  }, 
  {
    "title": "MySQL",
    "url": "https://www.ikemo3.com/manual/mysql/",
    "contents": "\u003ch2 id=\"設定\"\u003e設定\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eONLY_FULL_GROUP_BY: バグの元となる曖昧なSQLを抑制\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://tech.hapicky.com/archives/71\"\u003etech-memo » MySQLのGROUP BYは、寛容すぎて気持ちが悪い。\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"サーバの状態を出力\"\u003eサーバの状態を出力\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eshow processlist;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"いろいろ\"\u003eいろいろ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eデータベース一覧を出力: \u003ccode\u003eshow databases;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e変数を出力: \u003ccode\u003eshow variables;\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e絞る時はlikeを使用する。例: \u003ccode\u003eshow variables like %char%;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eテーブル一覧を出力: \u003ccode\u003eshow tables;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eテーブル定義を出力: \u003ccode\u003eshow create table テーブル名;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e最後のセミコロンの代わりに \u003ccode\u003e\\G\u003c/code\u003e で終わることで、縦長に表示します。\u003c/p\u003e\n\u003ch2 id=\"timestampとdatetimeの違い\"\u003eTIMESTAMPとDATETIMEの違い\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTIMESTAMP = Unix Time\u003c/li\u003e\n\u003cli\u003eDATETIME = 独自\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDATETIMEは'0000-00-00\u0026rsquo;を許容するなど怪しいが、2038年以降のことを考えると、通常はDATETIMEの方がいいかも。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://qiita.com/ykawakami/items/2449a24e3b82ff0cbab6\"\u003eMySQLのDATETIME型とTIMESTAMP型の違いを検証してみた\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"区切りはハイフンとアンダースコアどちらでも構わない\"\u003e区切りはハイフンとアンダースコアどちらでも構わない\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://dev.mysql.com/doc/refman/5.6/ja/program-variables.html\"\u003eMySQL :: MySQL 5.6 リファレンスマニュアル :: 4.2.8 プログラム変数の設定へのオプションの使用\u003c/a\u003eより、\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eお好みで、変数名内の下線をダッシュとして指定できます。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"変数設定\"\u003e変数設定\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e表示用SQL: \u003ccode\u003eshow variables like '変数名'\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e変数\u003c/th\u003e\n          \u003cth\u003e設定内容\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://dev.mysql.com/doc/refman/5.6/ja/server-system-variables.html#sysvar_character_set_client\"\u003echaracter_set_client\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eクライアントから到達するステートメントの文字コード\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://dev.mysql.com/doc/refman/5.6/ja/server-system-variables.html#sysvar_character_set_connection\"\u003echaracter_set_connection\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eサーバが処理するための文字コード(らしい)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://dev.mysql.com/doc/refman/5.6/ja/server-system-variables.html#sysvar_character_set_database\"\u003echaracter_set_database\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eデータベースの文字コード\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://dev.mysql.com/doc/refman/5.6/ja/server-system-variables.html#sysvar_character_set_filesystem\"\u003echaracter_set_filesystem\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eファイルシステムの文字コード(要するにファイル名ですね)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://dev.mysql.com/doc/refman/5.6/ja/server-system-variables.html#sysvar_character_set_results\"\u003echaracter_set_results\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e結果をクライアントに返すための文字コード\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://dev.mysql.com/doc/refman/5.6/ja/server-system-variables.html#sysvar_character_set_server\"\u003echaracter_set_server\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003eサーバのデフォルト文字コード\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://dev.mysql.com/doc/refman/5.6/ja/server-system-variables.html#sysvar_max_connections\"\u003emax_connections\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e最大接続数\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://dev.mysql.com/doc/refman/5.6/ja/innodb-parameters.html#sysvar_innodb_lock_wait_timeout\"\u003einnodb_lock_wait_timeout\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e行ロックが解除されるまでトランザクションが待機する時間の長さ(秒)\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"結局utf-8を使うにはどうすればいいのか\"\u003e結局UTF-8を使うにはどうすればいいのか?\u003c/h2\u003e\n\u003cp\u003eパラメータが多すぎて分かりません。\nネットで検索しても微妙に書いてあることが違うので。\u003c/p\u003e\n\u003cp\u003eただ、ヒントとなる設定は以下の公式サイトのFAQにあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dev.mysql.com/doc/refman/5.6/ja/faqs-cjk.html#faq-cjk-why-cjk-question-marks\"\u003eA.11.2. CJK 文字をテーブルに挿入しました。SELECT でそれらが「?」文字として表示されるのはなぜですか。\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e確認手順として、以下の文が書かれています。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eSHOW VARIABLES LIKE \u0026#39;char%\u0026#39;;\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eあと、最後に以下の記述例があります。\nbig5になっていますが、これをutf8にしても問題なさそうです。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e[mysqld]\ncharacter-set-server=big5\n[client]\ndefault-character-set=big5\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cdel\u003eあと、\u003ccode\u003ecollation-server = utf8_general_ci\u003c/code\u003e あたりもあると良さそうです。\nソースは、MariaDB 5.5のDockerのサンプルにあったからです。\u003c/del\u003e\u003c/p\u003e\n\u003cp\u003e最近はutf8よりは、utf8mb4の方が良さそうです。\u003c/p\u003e\n\u003cp\u003e参考: \u003ca href=\"https://www.slideshare.net/tmtm/mysql-62004569\"\u003eMySQLの文字コード事情\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"collation\"\u003eCollation\u003c/h2\u003e\n\u003cp\u003e個人的にはutf8_binまたはutf8mb4_binがいいと思います。\u003c/p\u003e\n\u003cp\u003e理由は「大文字小文字を区別しない」のが必要な場合は少なく、むしろバグの元になるからです。\u003c/p\u003e\n"
  }, 
  {
    "title": "税金",
    "url": "https://www.ikemo3.com/dic/tax/",
    "contents": "\u003ch2 id=\"税金とは\"\u003e税金とは\u003c/h2\u003e\n\u003cp\u003e公共の福祉のために徴収するお金です。\u003c/p\u003e\n\u003ch2 id=\"年貢ではない\"\u003e年貢ではない\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/twitter/\"\u003eTwitter\u003c/a\u003eにいるようなネット民は「税金＝年貢」みたいな\n扱いをすることが多いですが、あくまで公共の福祉のためのお金です。\u003c/p\u003e\n\u003cp\u003eアメリカなんかNPOや寄付文化が根付いているので、\n「政府に使われるくらいなら自分で使い道を決める」ために、\n税金を減らしたいというのは理解できます。\nでも、ネット民の税金減らせはただのクレクレ厨ですね。\u003c/p\u003e\n\u003ch2 id=\"使い方が問題\"\u003e使い方が問題\u003c/h2\u003e\n\u003cp\u003e自分は昔\u003ca href=\"/dic/job-offer-cancellation/\"\u003e内定取消\u003c/a\u003eで無職になったとき、\n福祉の必要さがよく実感できました。\nこれからの社会は本質的に不確実性が増すのは確実です。\nなので、そのためにもセーフティネットを整える必要があります。\u003c/p\u003e\n"
  }, 
  {
    "title": "野菜スープ",
    "url": "https://www.ikemo3.com/manual/vegetable-soup/",
    "contents": "\u003ch2 id=\"作り方\"\u003e作り方\u003c/h2\u003e\n\u003cp\u003e自分でちょっと作ってた時のレシピです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eにんじん（小）を1本、角状に切って水を入れてレンジする（根菜）。終わったら鍋に入れる。\u003c/li\u003e\n\u003cli\u003e玉ねぎを半分、8等分して鍋に入れる。\u003c/li\u003e\n\u003cli\u003e冷凍コーンを100g計ってそのまま鍋に入れる\u003c/li\u003e\n\u003cli\u003eウインナーソーセージを3本、小さく切って鍋に入れる\u003c/li\u003e\n\u003cli\u003e鍋に水を浸かるくらい入れて火にかける。\u003c/li\u003e\n\u003cli\u003e沸騰して2分ほどした頃にコンソメを入れてさらに5分間煮る\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Debugger",
    "url": "https://www.ikemo3.com/tags/debugger/",
    "contents": ""
  }, 
  {
    "title": "delve",
    "url": "https://www.ikemo3.com/manual/delve/",
    "contents": "\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003ch3 id=\"macosの場合\"\u003emacOSの場合\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"/manual/homebrew/\"\u003eHomebrew\u003c/a\u003eを使います。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ebrew install go-delve/delve/delve\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e…が、そこでは失敗します。\nエラーの最後に、GitHubのURLが書かれていますが、\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eThese open issues may also help:\nUpgrade to delve fails https://github.com/go-delve/homebrew-delve/issues/20\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"https://github.com/go-delve/homebrew-delve/issues/19#issuecomment-330442033\"\u003ehttps://github.com/go-delve/homebrew-delve/issues/19#issuecomment-330442033\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eに書かれている手順をすると成功します。\u003c/p\u003e\n\u003cp\u003eちなみに、インストールした証明書は以下の方法で見ることができます。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eキーチェーンアクセス.appを起動\u003c/li\u003e\n\u003cli\u003eキーチェーン「システム」、分類「証明書」を選択\u003c/li\u003e\n\u003cli\u003e名前「div-cert」のものが、インストールした証明書\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"起動\"\u003e起動\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003edlv exec 実行バイナリ --wd カレントディレクトリ\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"デバッガコマンド\"\u003eデバッガコマンド\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eb \u0026lt;関数名\u0026gt;\u003c/code\u003e: ブレークポイントを設定\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ep \u0026lt;変数名\u0026gt;\u003c/code\u003e: 変数名を表示\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ec\u003c/code\u003e: 続行\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003en\u003c/code\u003e: ステップ実行\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebt\u003c/code\u003e: スタックトレースの表示\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Go(言語)",
    "url": "https://www.ikemo3.com/manual/golang/",
    "contents": "\u003ch2 id=\"macosでのインストール\"\u003emacOSでのインストール\u003c/h2\u003e\n\u003cp\u003emacOS High Sierra 10.13.2で試しています。\u003c/p\u003e\n\u003ch3 id=\"手順\"\u003e手順\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/dl/\"\u003eDownloads\u003c/a\u003eに移動\u003c/li\u003e\n\u003cli\u003eStable versionsから、以下のリンクをクリック\n\u003cul\u003e\n\u003cli\u003eFile name: \u003ccode\u003ego\u0026lt;バージョン\u0026gt;-darwin-amd64.pkg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eKind: Installer\u003c/li\u003e\n\u003cli\u003eOS: macOS\u003c/li\u003e\n\u003cli\u003eArch: x86-64\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eダウンロードしたパッケージをダブルクリック\n\u003cul\u003e\n\u003cli\u003e以下macOSの標準のインストーラで操作します。特に迷うことはありません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eパッケージは \u003ccode\u003e/usr/local/go\u003c/code\u003e 以下に入るようです。\n勝手に \u003ccode\u003e/usr/local/go/bin\u003c/code\u003e がPATHに追加されているようですが、\nこれは、 \u003ccode\u003e/etc/profile\u003c/code\u003e 経由で、\n\u003ccode\u003e/usr/libexec/path_helper\u003c/code\u003e というプログラムが動いているためのようです。\u003c/p\u003e\n\u003ch2 id=\"コンパイル\"\u003eコンパイル\u003c/h2\u003e\n\u003ch3 id=\"基本コマンド\"\u003e基本コマンド\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ego build\u003c/code\u003e: ビルド\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ego install\u003c/code\u003e: インストール\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"パッケージ名\"\u003eパッケージ名\u003c/h2\u003e\n\u003cp\u003eざっとhelp読んだだけでまだ試していないので間違いがある可能性は高いです。\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ego get\u003c/code\u003eなどに指定するものはパッケージ名だが、\nパッケージ名にはリポジトリのURLが指定可能[^1]。\u003c/p\u003e\n\u003cp\u003eただし、リポジトリがどのVCSを使っているかどうかは分からないため、\nURLの最後に\u003ccode\u003e.git\u003c/code\u003eなどをつける。\u003c/p\u003e\n\u003cp\u003e例外的に、GitHubなどは以下のように\u003ccode\u003e.git\u003c/code\u003eとかつけなくてOK\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eimport \u0026#34;github.com/user/project\u0026#34;\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eビルドにはHEADが使われる。\n指定する方法はない模様。。。\u003c/p\u003e\n\u003ch2 id=\"main\"\u003emain\u003c/h2\u003e\n\u003cp\u003e以下のものがmainと判定される。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emainパッケージ\u003c/li\u003e\n\u003cli\u003emain関数\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003epackage\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emain\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efunc\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emain\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"package\"\u003epackage\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/ref/spec#Packages\"\u003ePackages\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e構文は \u0026ldquo;package\u0026rdquo; + パッケージ名\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003epackage\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emain\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"import\"\u003eimport\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/ref/spec#Import_declarations\"\u003eImport declarations\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e構文は以下のどちらか\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;io\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eまとめてインポートする場合\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e (\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;io\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;log\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eパッケージ名を指定できる。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e   \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;lib/math\u0026#34;\u003c/span\u003e  \u003cspan style=\"color:#75715e\"\u003e// -\u0026gt; math.Sinのようにアクセスする\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003em\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;lib/math\u0026#34;\u003c/span\u003e  \u003cspan style=\"color:#75715e\"\u003e// -\u0026gt; m.Sinのようにパッケージ名でアクセスする\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e . \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;lib/math\u0026#34;\u003c/span\u003e  \u003cspan style=\"color:#75715e\"\u003e// -\u0026gt; Sinのようにパッケージ名なしでアクセスする\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e_\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;lib/math\u0026#34;\u003c/span\u003e  \u003cspan style=\"color:#75715e\"\u003e// -\u0026gt; 参照されていないパッケージを組み込む必要がある場合\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"if\"\u003eif\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/ref/spec#If_statements\"\u003eIf statements\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"変数定義が可能\"\u003e変数定義が可能\u003c/h3\u003e\n\u003cp\u003e簡易文付きifという書き方で、ブロックだけで有効な変数定義が書ける。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ex\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ef\u003c/span\u003e(); \u003cspan style=\"color:#a6e22e\"\u003ex\u003c/span\u003e \u0026lt; \u003cspan style=\"color:#a6e22e\"\u003ey\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"注意点\"\u003e注意点\u003c/h3\u003e\n\u003cp\u003eifのあとのカッコは不要\u003c/p\u003e\n\u003ch2 id=\"演算子\"\u003e演算子\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/ref/spec#Operators\"\u003eOperators\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e整数同士の割り算の結果は整数になるのに注意。\u003c/p\u003e\n\u003ch2 id=\"switch\"\u003eswitch\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/ref/spec#Switch_statements\"\u003eSwitch statements\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003e文法はswitch〜case\n\u003cul\u003e\n\u003cli\u003eデフォルトはフォールスルーしない(最近の言語に多い)\u003c/li\u003e\n\u003cli\u003efallthrough予約語あり。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ecaseに条件式も書くことが可能。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"型アサーション\"\u003e型アサーション\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://tour.golang.org/methods/15\"\u003eA Tour of Go\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/ref/spec#Type_assertions\"\u003eType assertions\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eJavaで言えばClass#castのようなものか。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003ex\u003c/span\u003e.(\u003cspan style=\"color:#a6e22e\"\u003eT\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eただしこれは失敗してしまうとpanicが発生してプログラムが停止する。\nこれを避けるためには以下のように2つの値に代入させる。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003ei\u003c/span\u003e, \u003cspan style=\"color:#a6e22e\"\u003eisInt\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ex\u003c/span\u003e.(\u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"配列\"\u003e配列\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e書き方が特殊\n\u003cul\u003e\n\u003cli\u003e例: \u003ccode\u003ea := [5]int {1,2,3,4,5}\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e要素が少な0い場合は0で埋められる\n\u003cul\u003e\n\u003cli\u003e例: \u003ccode\u003ea := [5]int {1,2, 3}\u003c/code\u003e =\u0026gt; \u003ccode\u003e{1,2,3,0,0}\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e0以外で埋められる例\n\u003cul\u003e\n\u003cli\u003eboolean: false\u003c/li\u003e\n\u003cli\u003ecomplex: 0+0i\u003c/li\u003e\n\u003cli\u003estring: \u0026ldquo;\u0026quot;(空文字列)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e要素数の省略\n\u003cul\u003e\n\u003cli\u003e例: \u003ccode\u003ea := [...]int{1,2,3}\u003c/code\u003e =\u0026gt; \u003ccode\u003e[3]int{1,2,3}\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e代入可能\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e [\u003cspan style=\"color:#f92672\"\u003e...\u003c/span\u003e]\u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e{\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e,\u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e,\u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003ea\u003c/span\u003e[\u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e] = \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003ea\u003c/span\u003e[\u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e] = \u003cspan style=\"color:#f92672\"\u003e...\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e配列は型が同じで要素数が同じ場合のみ代入可能\n代入時は全てコピーになる(p84)\u003c/p\u003e\n\u003ch3 id=\"スライスに変換する方法\"\u003eスライスに変換する方法\u003c/h3\u003e\n\u003cp\u003e簡易スライス式を使う。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e [\u003cspan style=\"color:#ae81ff\"\u003e5\u003c/span\u003e]\u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e{\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e4\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e5\u003c/span\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003es\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ea\u003c/span\u003e[:]\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"defer\"\u003edefer\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/ref/spec#Defer_statements\"\u003eDefer statements\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eJavaなどにおけるfinallyのように、リソースの開放処理に使われる。\n注意点としては\u003cstrong\u003e複数定義した場合は最後の方から呼ばれる\u003c/strong\u003e。\u003c/p\u003e\n\u003ch2 id=\"error\"\u003eerror\u003c/h2\u003e\n\u003cp\u003eスターティングGo言語p.235より。\u003c/p\u003e\n\u003cp\u003e戻り値などによく使われるが、これはerrorインタフェースを表す。\nエラーを返さないときはnilを返す。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efunc\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eRaiseError\u003c/span\u003e() \u003cspan style=\"color:#66d9ef\"\u003eerror\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enil\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"string\"\u003estring\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/ref/spec#String_literals\"\u003eString literals\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/ref/spec#String_types\"\u003eString types\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/pkg/strings/\"\u003estrings - The Go Programming Language\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/pkg/strconv/\"\u003estrconv - The Go Programming Language\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"基本\"\u003e基本\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eダブルクォートで囲ったものがstring型になる。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\\n\u003c/code\u003eなどは処理を行う(改行コードになる)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003estringはバイト列。→Unicode的な文字はrune\u003c/p\u003e\n\u003cp\u003e以下のようにすると、「あ」のUTF-8表現 0xE3 0x81 0x82 の先頭バイト 0xE3 = 227 が表示される。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003epackage\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emain\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;fmt\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efunc\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emain\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\t\u003cspan style=\"color:#a6e22e\"\u003estr\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;あいう\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\t\u003cspan style=\"color:#a6e22e\"\u003efmt\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ePrint\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003estr\u003c/span\u003e[\u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e])\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"raw文字列\"\u003eRAW文字列\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eバッククォートで囲む。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\\n\u003c/code\u003eなど処理を行わない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"rune\"\u003erune\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/ref/spec#Rune_literals\"\u003eRune literals\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/pkg/unicode/utf8/\"\u003ePackage utf8\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/pkg/strings/\"\u003ePackage string\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"charのようなもの\"\u003echarのようなもの\u003c/h3\u003e\n\u003cp\u003estringはバイト列。runeは文字単位でアクセスできる。\nruneはint32の別名。入っているのはUTF-32\u003c/p\u003e\n\u003ch3 id=\"stringとの変換\"\u003estringとの変換\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003estring → rune: \u003ccode\u003e[]rune(s)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003erune → string: \u003ccode\u003estring(r)\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003epackage\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emain\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;fmt\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efunc\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emain\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#a6e22e\"\u003es\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;あいう\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003er\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e []rune(\u003cspan style=\"color:#a6e22e\"\u003es\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003es2\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e string(\u003cspan style=\"color:#a6e22e\"\u003er\u003c/span\u003e[\u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e])\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#a6e22e\"\u003efmt\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ePrint\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003es2\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"fmtprintf\"\u003efmt.Printf\u003c/h2\u003e\n\u003cp\u003eスターティングGo言語p54より。\nいわゆる普通のprintf\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/pkg/fmt/\"\u003efmt - The Go Programming Language\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e書式指定や引数の数に間違いがあるときは出力にエラーの内容が出る。\u003c/p\u003e\n\u003ch3 id=\"go特有の書式\"\u003eGo特有の書式\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e%v: どんな型でもOK\u003c/li\u003e\n\u003cli\u003e%#v: Goのリテラル形式\u003c/li\u003e\n\u003cli\u003e%T: 型情報\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"type\"\u003etype\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/ref/spec#Type_declarations\"\u003eType declarations\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e構文は以下のどちらか\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003etype\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eNewMutex\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eMutex\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eまとめて定義する場合\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003etype\u003c/span\u003e (\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eNewMutex\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eMutex\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eGo言語でのtypeはC言語のtypedefのようなもの。\nただし順番が逆。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eC言語: \u003ccode\u003etypedef unsigned char byte\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGo言語: \u003ccode\u003etype byte uint8\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"json\"\u003ejson\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/pkg/encoding/json/\"\u003ejson - The Go Programming Language\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://blog.golang.org/json-and-go\"\u003eJSON and Go - The Go Blog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/nayuneko/items/2ec20ba69804e8bf7ca3\"\u003eGo言語でJSONを扱う - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eポイントとしては、構造体のフィールド名は大文字にすること。\nGo言語では大文字 = publicの扱いなので当たり前と言えば当たり前ですが。。。\u003c/p\u003e\n\u003cp\u003e以下に構造体の例。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-go\" data-lang=\"go\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003etype\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ePage\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003estruct\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003eTitle\u003c/span\u003e   \u003cspan style=\"color:#66d9ef\"\u003estring\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e`json:\u0026#34;title\u0026#34;`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003eUrl\u003c/span\u003e     \u003cspan style=\"color:#66d9ef\"\u003estring\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e`json:\u0026#34;url\u0026#34;`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003eContent\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003estring\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e`json:\u0026#34;content\u0026#34;`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"ライブラリ\"\u003eライブラリ\u003c/h2\u003e\n\u003ch3 id=\"cli\"\u003ecli\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urfave/cli\"\u003eurfave/cli: A simple, fast, and fun package for building command line apps in Go\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/gatchan0807/items/4ffdf65f7affe8faec5a\"\u003eGolangでcliツール作るならこれで！ - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"yaml\"\u003eyaml\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/go-yaml/yaml\"\u003ego-yaml/yaml: YAML support for the Go language.\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://godoc.org/gopkg.in/yaml.v2\"\u003eyaml - GoDoc\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/yamasaki-masahide/items/d6e406c4c11d5870a1c6\"\u003ego で yaml 等を「map[interface{}]interface{}」型で読み込んだ際の動的型の参照方法 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://tweeeety.hateblo.jp/entry/2017/06/04/231043\"\u003e【go】golangでyamlを読み込んでstructに入れるメモ - gopkg.in/yaml.v2 - tweeeetyのぶろぐ的めも\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e[^1] \u003ccode\u003ego help importpath\u003c/code\u003e\u003c/p\u003e\n"
  }, 
  {
    "title": "Nintendo Labo",
    "url": "https://www.ikemo3.com/dic/nintendo-labo/",
    "contents": "\u003ch2 id=\"nintendo-labとは\"\u003eNintendo Labとは\u003c/h2\u003e\n\u003cp\u003e2018-04-20に発売予定のゲーム(?)です。\u003c/p\u003e\n\u003ch2 id=\"謎の技術\"\u003e謎の技術\u003c/h2\u003e\n\u003cp\u003e公式サイトに動画があるのですが、\n特に「ピアノ」と「リモコンカー」は目を疑いました。\u003c/p\u003e\n\u003cp\u003eピアノはどうやら、\n\u003ca href=\"https://topics.nintendo.co.jp/c/article/06bba8b4-f5ca-11e7-86dc-063b7ac45a6d.html\"\u003eモーションIRカメラ\u003c/a\u003eで押された位置を読み取っているようです。\nリモコンカーはどうやら、\u003ca href=\"https://topics.nintendo.co.jp/c/article/73d9531a-6bbe-11e7-8cda-063b7ac45a6d.html\"\u003eHD振動\u003c/a\u003eで移動しているみたいです。\n振動で移動とか、意味が分かりませんね。。。\u003c/p\u003e\n"
  }, 
  {
    "title": "Maven",
    "url": "https://www.ikemo3.com/manual/maven/",
    "contents": "\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e最新版の\u003ca href=\"https://maven.apache.org/download.cgi\"\u003eダウンロード\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://archive.apache.org/dist/maven/maven-3/\"\u003eアーカイブ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"リリースノート\"\u003eリリースノート\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e本体: \u003ca href=\"https://maven.apache.org/docs/history.html\"\u003eMaven – Maven Releases History\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eプラグイン\n\u003cul\u003e\n\u003cli\u003e見つからないときは\u003ca href=\"https://mail-archives.apache.org/mod_mbox/maven-announce/\"\u003eannounce@maven.apache.org Archives\u003c/a\u003eを探すのがいいと思います。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"プロパティ\"\u003eプロパティ\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e${X}\u003c/code\u003eという書き方は、プロパティを表す。\n\u003ccode\u003e\u0026lt;proprerties\u0026gt;\u003c/code\u003eの中に書いたり、Javaのシステムプロパティを使うことができる。\u003c/p\u003e\n\u003ch2 id=\"テストをスキップ\"\u003eテストをスキップ\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003emvn install -DskipTests\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003etrue\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003ereleaseプラグインなど、中でさらにMavenを呼び出している場合は\nスキップ方法が異なる可能性があるのに注意。\u003c/p\u003e\n\u003ch2 id=\"javaのバージョンを指定\"\u003eJavaのバージョンを指定\u003c/h2\u003e\n\u003cp\u003e以下のプロパティをセットする\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emaven.compiler.target\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eJava 8 なら\u003ccode\u003e1.8\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emaven.compiler.source\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eJava 8 なら\u003ccode\u003e1.8\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ネーミング\"\u003eネーミング\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://maven.apache.org/guides/mini/guide-naming-conventions.html\"\u003eMaven – Guide to Naming Conventions\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"groupid\"\u003egroupId\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e自分が管理しているドメインを使う\n\u003cul\u003e\n\u003cli\u003eJavaのパッケージ管理と同じ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eサブグループは必要なら作る\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこのドメインの場合、\u003ccode\u003ecom.ikemo3\u003c/code\u003eまでは確定で、その下につけるかどうかですね。\u003c/p\u003e\n\u003ch3 id=\"artifactid\"\u003eartifactId\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJarファイルからバージョンを取り除いたもの\u003c/li\u003e\n\u003cli\u003e小文字と「変でない記号」からなる\n\u003cul\u003e\n\u003cli\u003e実際は\u003ccode\u003e-\u003c/code\u003eか\u003ccode\u003e_\u003c/code\u003eくらいだと思います。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"バージョン\"\u003eバージョン\u003c/h3\u003e\n\u003cp\u003eドット付きのもの。\n他のソフトを見てればだいたい分かるかと。。。\u003c/p\u003e\n\u003ch2 id=\"アーキタイプ\"\u003eアーキタイプ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://maven.apache.org/guides/introduction/introduction-to-archetypes.html\"\u003eMaven – Introduction to Archetypes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://maven.apache.org/archetypes/index.html\"\u003eApache Maven Archetypes – Maven Archetypes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.ne.jp/asahi/hishidama/home/tech/apache/maven/archetype.html\"\u003eMavenアーキタイプメモ(Hishidama\u0026rsquo;s Apache Maven archetype Memo)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"アーキタイプの種類\"\u003eアーキタイプの種類\u003c/h3\u003e\n\u003cp\u003e使わないと思いますが、\u003ccode\u003emaven-archetype-portlet\u003c/code\u003eは、\n\u003ca href=\"https://jcp.org/ja/jsr/detail?id=286\"\u003eJSR 286\u003c/a\u003eのために使うもののようです。\nMavenのページには\u003ca href=\"https://jcp.org/en/jsr/detail?id=268\"\u003eJSR 268\u003c/a\u003eと書かれていますが、\nこれはSmart Card I/O APIなので多分記述ミスですね。。。\u003c/p\u003e\n\u003ch2 id=\"wagon\"\u003eWagon\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://maven.apache.org/wagon/index.html\"\u003eApache Maven Wagon – Introduction\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://mvnrepository.com/artifact/org.apache.maven.wagon/wagon-scm\"\u003eMaven Repository: org.apache.maven.wagon » wagon-scm\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://maven.apache.org/wagon/wagon-providers/wagon-scm/dependencies.html\"\u003eApache Maven Wagon :: Providers :: SCM Provider – Project Dependencies\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e送受信を抽象化するもの。\nWagonのページは他と違って、上部にメニューがあるのに注意。\u003c/p\u003e\n"
  }, 
  {
    "title": "Software Design",
    "url": "https://www.ikemo3.com/dic/software-design/",
    "contents": "\u003ch2 id=\"software-designとは\"\u003eSoftware Designとは\u003c/h2\u003e\n\u003cp\u003e技術評論社が出している雑誌です。\u003c/p\u003e\n\u003ch2 id=\"買っている理由\"\u003e買っている理由\u003c/h2\u003e\n\u003cp\u003e2018年1月現在、定期購読しているのはこの雑誌だけです。\nだいたいはオンラインの情報で十分な自分がこの雑誌を買っている理由は、\n自分の視界に入ってこないソフトの情報が得られるからです。\nと言っても\u003ca href=\"/dic/oss/\"\u003eオープンソース\u003c/a\u003eのプログラミングや\nサーバ以外は基本的に興味ないので、\nこれらの情報が多い、この雑誌が自分に合ってるかなと。\u003c/p\u003e\n"
  }, 
  {
    "title": "SSL",
    "url": "https://www.ikemo3.com/manual/ssl/",
    "contents": "\u003ch2 id=\"開発用オレオレ証明書\"\u003e開発用オレオレ証明書\u003c/h2\u003e\n\u003cp\u003eこんなツールがあるみたいです。\nルート証明書を自前で作ってブラウザにインストールさせて、\nそのルート証明書を使ってどのサイトもSecureっぽくしちゃうようです。\nもちろん開発用です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FiloSottile/mkcert\"\u003eFiloSottile/mkcert: A simple zero-config tool to make locally-trusted development certificates with any names you\u0026rsquo;d like.\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "オープンソースカンファレンス",
    "url": "https://www.ikemo3.com/dic/osc/",
    "contents": "\u003ch2 id=\"オープンソースカンファレンスとは\"\u003eオープンソースカンファレンスとは\u003c/h2\u003e\n\u003cp\u003e全国で行っている、オープンソースのイベントです。\u003c/p\u003e\n\u003ch2 id=\"気軽に行ける\"\u003e気軽に行ける\u003c/h2\u003e\n\u003cp\u003eこういう技術者向けのイベントは首都圏や関西など、\n人が多いところに集まりがちですが、\nこのイベントは全国で行っていて、参加費も無料なので行きやすいです。\nSoftware Designのレポートを見るとお酒や食べ物の話が多くて、\nそっちがメインじゃないかと思ってしまいますが、\n楽しいのが一番です( ´ω`)\u003c/p\u003e\n"
  }, 
  {
    "title": "料亭 山田屋",
    "url": "https://www.ikemo3.com/dic/usukifugu-yamadaya/",
    "contents": "\u003ch2 id=\"料亭-山田屋とは\"\u003e料亭 山田屋とは\u003c/h2\u003e\n\u003cp\u003e臼杵にある高級料亭です。\u003c/p\u003e\n\u003ch2 id=\"一人料亭\"\u003e一人料亭\u003c/h2\u003e\n\u003cp\u003eこの店には3回行ったことあります。\n1回めと2回目は大分の\u003ca href=\"/dic/osc/\"\u003eオープンソースカンファレンス\u003c/a\u003eの帰りに、\n3回目は、妻と旅行に行った帰りに行きました。\u003c/p\u003e\n\u003cp\u003e1回目は前もって電話はしましたが、\nほとんど飛び込みだったので、よく断られなかったなと思いました。\n我ながら無茶や。。。(ヽ´ω`)\u003c/p\u003e\n\u003ch2 id=\"本店はそう高くない\"\u003e本店はそう高くない\u003c/h2\u003e\n\u003cp\u003e高級料亭と言うとめちゃくちゃ高いイメージですが、\n本店は東京の西麻布店と比べると、同じようなコースが半額で食べられます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.usukifugu-yamadaya.jp/usuki#page5\"\u003e本店\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.azabu-yamadaya.jp/azabu#page7\"\u003e西麻布店\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eまあ、1万円以上なのでどちらにしても高いのですが、\nどれだけ東京で生活するのが大変かが分かる値段ですね。。。\u003c/p\u003e\n"
  }, 
  {
    "title": "Go(言語)",
    "url": "https://www.ikemo3.com/dic/golang/",
    "contents": "\u003ch2 id=\"go言語とは\"\u003eGo(言語)とは\u003c/h2\u003e\n\u003cp\u003eプログラミング言語です。\u003c/p\u003e\n\u003ch2 id=\"使ってみた印象\"\u003e使ってみた印象\u003c/h2\u003e\n\u003cp\u003e学んでからちょっとだけプログラム書いてみました。\nGoは癖がありますが、慣れると使いやすそうなイメージがあります。\n特に気に入ったのが以下の点です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e継承がない\u003c/li\u003e\n\u003cli\u003e継承がない\u003c/li\u003e\n\u003cli\u003e継承がない\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ego fmt\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4798142417/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4798142417.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4798142417/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nスターティングGo言語 (CodeZine BOOKS)\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Homebrew",
    "url": "https://www.ikemo3.com/dic/homebrew/",
    "contents": "\u003ch2 id=\"homebrewとは\"\u003eHomebrewとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/macos/\"\u003emacOS\u003c/a\u003e上のパッケージマネージャです。\u003c/p\u003e\n\u003ch2 id=\"formula\"\u003eformula\u003c/h2\u003e\n\u003cp\u003eHomebrewではformulaという単語を使っていますが、\n一般的な「パッケージ」と同じ意味で解釈しても問題ないです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e少なくとも問題になったことはないです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Homebrew",
    "url": "https://www.ikemo3.com/manual/homebrew/",
    "contents": "\u003ch2 id=\"formula\"\u003eformula\u003c/h2\u003e\n\u003cp\u003eHomebrewでは、パッケージのことをformulaと呼びます。\nformulaは数学の式というよりは「調理法」のようです。\nmanを見るとformulaeという単語が出てきますが、\nこれは、formulaの複数形です。\u003c/p\u003e\n\u003ch2 id=\"基本的なコマンド\"\u003e基本的なコマンド\u003c/h2\u003e\n\u003cp\u003e以下のコマンドでは、パッケージ名をFORMULAとします。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHomebrewのアップデート: \u003ccode\u003ebrew update\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eDebian系における\u003ccode\u003eapt-get update\u003c/code\u003eと同じようなものです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eインストールされているパッケージをリスト表示: \u003ccode\u003ebrew list\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eパッケージのインストール: \u003ccode\u003ebrew install FORMULA\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eパッケージのアップデート: \u003ccode\u003ebrew upgrade FORMULA\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eパッケージの検索: \u003ccode\u003ebrew search text\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebrew search /text/\u003c/code\u003e とすると、正規表現が使えるようです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"削除\"\u003e削除\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e依存関係がないものをリスト: \u003ccode\u003ebrew leaves\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eパッケージの削除: \u003ccode\u003ebrew uninstall FORMULA\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eパッケージの削除(全バージョン): \u003ccode\u003ebrew uninstall --force FORMULA\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"クリーンアップ古いバージョンを削除\"\u003eクリーンアップ(古いバージョンを削除)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edry-run: \u003ccode\u003ebrew cleanup -n\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e削除実行: \u003ccode\u003ebrew cleanup\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"アップデート\"\u003eアップデート\u003c/h2\u003e\n\u003cp\u003eHomebrewのパッケージは、Gitによって管理されているので、これをfetchするようです。\nこんな感じで、Gitリポジトリが見つかりました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e/usr/local/Homebrew → \u003ca href=\"https://github.com/Homebrew\"\u003ehttps://github.com/Homebrew\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e/usr/local/Homebrew/Library/Taps が.gitignoreで管理対象外になってます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core → \u003ca href=\"https://github.com/Homebrew/homebrew-core\"\u003ehttps://github.com/Homebrew/homebrew-core\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask → \u003ca href=\"https://github.com/Homebrew/homebrew-cask\"\u003ehttps://github.com/Homebrew/homebrew-cask\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"複数バージョンの共存\"\u003e複数バージョンの共存\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e切り替え: \u003ccode\u003ebrew switch FORMULA VERSION\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"実現方法\"\u003e実現方法\u003c/h3\u003e\n\u003cp\u003e導入されたパージョンは、/usr/local/Cellar/FORMULA/VERSION 以下に格納されます。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e$ ls /usr/local/Cellar/hugo/\n0.35\t0.36.1\t0.37.1\t0.38.2\t0.39\t0.40.2\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eそして、 /usr/local/bin/ 以下にシンボリックリンクを作成しています。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003els -l /usr/local/bin/hugo\n(略) /usr/local/bin/hugo -\u0026gt; ../Cellar/hugo/0.40.2/bin/hugo\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eこれにより、複数バージョンをインストールして、切り替えることが可能になります。\u003c/p\u003e\n\u003ch3 id=\"古いバージョンを使用したいとき\"\u003e古いバージョンを使用したいとき\u003c/h3\u003e\n\u003cp\u003ehomebrew-cask-versionsで対応している場合があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Homebrew/homebrew-cask-versions\"\u003eHomebrew/homebrew-cask-versions: 🔢 Alternate versions of Casks\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e使い方は以下の通り。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ebrew tap homebrew/cask-versions\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ebrew cask install \u0026lt;パッケージ名\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eそれ以外の場合は例えば以下のようにします。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e古いバージョンのFormulaを探す\n\u003cul\u003e\n\u003cli\u003e例: Hugo 0.60.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://raw.githubusercontent.com/Homebrew/homebrew-core/3c449db81f6235a4df6a55d7c9a341c93a1e0ccc/Formula/hugo.rb\"\u003ehttps://raw.githubusercontent.com/Homebrew/homebrew-core/3c449db81f6235a4df6a55d7c9a341c93a1e0ccc/Formula/hugo.rb\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ebrew unlink hugo\u003c/li\u003e\n\u003cli\u003ebrew install 「1のURL」\u003c/li\u003e\n\u003cli\u003ebrew install hugo\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "mod_rewrite",
    "url": "https://www.ikemo3.com/manual/mod-rewrite/",
    "contents": "\u003ch2 id=\"注意点\"\u003e注意点\u003c/h2\u003e\n\u003ch3 id=\"rewritecondを複数のrewriteruleに適用できない\"\u003eRewriteCondを複数のRewriteRuleに適用できない\u003c/h3\u003e\n\u003cp\u003e以下のように書いても、2番目のRewriteRuleにはRewriteCondが適用されない。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eRewriteCond ...\nRewrireRule ...\nRewriteRule ...\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"rewritecond解釈の前にrewriteruleが解釈される\"\u003eRewriteCond解釈の前に、RewriteRuleが解釈される\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://httpd.apache.org/docs/current/rewrite/intro.html\"\u003eApache mod_rewrite Introduction\u003c/a\u003eの\nRegex Back-Reference Availabilityのところに記載されていますが、上から順番ではなく、\nRewriteRuleを先に解釈します。\nRewriteCondに\u003ccode\u003e$1\u003c/code\u003eとか書けるようにするためのようです。\u003c/p\u003e\n\u003ch2 id=\"lets-encryptをリライト対象から除外\"\u003eLet\u0026rsquo;s Encryptをリライト対象から除外\u003c/h2\u003e\n\u003cp\u003e以下のように書きます。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eRewriteCond %{REQUEST_URI} !^/\\.well\\-known/acme-challenge/\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ccode\u003e.well-known\u003c/code\u003eは\u003ca href=\"https://tools.ietf.org/html/rfc5785\"\u003eRFC 5785\u003c/a\u003eで定義されているので\n\u003ccode\u003e.well-known\u003c/code\u003eだけ除外すればいいかと思ったんですが、\nそもそもLet\u0026rsquo;s Encrypt以外HTTPでアクセスする必要性がないため、除外する理由がないですね。。。\u003c/p\u003e\n\u003ch2 id=\"sslでも同じ設定を使いたい場合\"\u003eSSLでも同じ設定を使いたい場合\u003c/h2\u003e\n\u003cp\u003e以下のようにしてください。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;VirtualHost _default_:443\u0026gt;\nRewriteEngine On\nRewriteOptions Inherit\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"クエリパラメータがないときだけ追加\"\u003eクエリパラメータがないときだけ追加\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eRewriteCond %{QUERY_STRING} !param=\nRewriteRule \u0026#34;^/path$\u0026#34; \u0026#34;/path?param=value\u0026#34; [L]\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"ログ出力\"\u003eログ出力\u003c/h2\u003e\n\u003ch3 id=\"apache-24\"\u003eApache 2.4\u003c/h3\u003e\n\u003cp\u003e以下のように設定してください。error_logにログが出力されます。\nただし、ログが急激に増えるため、デバッグ時のみ使用してください。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eLogLevel info rewrite:trace8\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"apache-22\"\u003eApache 2.2\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritelog\"\u003eRewriteLog\u003c/a\u003eで設定します。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eRewriteLog /var/log/httpd/rewrite.log\nRewriteLogLevel 8\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"フラグ\"\u003eフラグ\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://httpd.apache.org/docs/current/rewrite/flags.html\"\u003eRewriteRule Flags - Apache HTTP Server Version 2.4\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eRewriteRule pattern target [Flag1,Flag2,Flag3]\u003c/code\u003eのように記載する。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eL\u003c/code\u003e(last): ルールセットの処理をここで打ち切る。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eP\u003c/code\u003e(proxy): mod_proxyを使って処理を行う。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eQSA\u003c/code\u003e(qsappend): クエリ文字列を追加する。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eR\u003c/code\u003e(redirect): リダイレクトする。デフォルトは302\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[R=305]\u003c/code\u003eとすると、HTTPステータスコード305でリダイレクトする。\u003c/li\u003e\n\u003cli\u003e3xxのステータスコードは\u003ca href=\"https://tools.ietf.org/html/rfc7231#section-6.4\"\u003eRFC 7231 6.4\u003c/a\u003e参照。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"正規表現\"\u003e正規表現\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://httpd.apache.org/docs/current/rewrite/intro.html#regex\"\u003eRegular Expressions\u003c/a\u003e参照。\u003c/p\u003e\n\u003ch2 id=\"ディレクトリトラバーサルは気にしなくてよいはず\"\u003eディレクトリトラバーサルは気にしなくてよい(はず)\u003c/h2\u003e\n\u003cp\u003eHTTP 1.0/1.1で、パスに\u003ccode\u003e..\u003c/code\u003eを含む場合、404 Bad Requestになる\n(どこで規定されているかは未調査)のため、\nディレクトリトラバーサルは気にしなくてよいです。\u003c/p\u003e\n"
  }, 
  {
    "title": "DNS",
    "url": "https://www.ikemo3.com/manual/dns/",
    "contents": "\u003ch2 id=\"xipio-nipio\"\u003exip.io, nip.io\u003c/h2\u003e\n\u003cp\u003eバーチャルホストのテストで、\n同じIPアドレスに複数のホスト名を割り当てたい場合があります。\n通常はDNSに設定するのですが、xip.ioまたはnip.ioを使うと、設定無しで使用可能です。\u003c/p\u003e\n\u003ch2 id=\"caaレコード設定\"\u003eCAAレコード設定\u003c/h2\u003e\n\u003cp\u003eLet\u0026rsquo;s Encryptの場合は以下の値を設定する。\n(参考: \u003ca href=\"https://help.sakura.ad.jp/hc/ja/articles/115000139062-DNS-CAA-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E8%A8%AD%E5%AE%9A%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6\"\u003eDNS CAA レコード設定について – さくらのサポート情報\u003c/a\u003e)\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e0 issue \u0026#34;letsencrypt.org\u0026#34;\n\u003c/code\u003e\u003c/pre\u003e"
  }, 
  {
    "title": "motd",
    "url": "https://www.ikemo3.com/manual/motd/",
    "contents": "\u003ch2 id=\"動的表示\"\u003e動的表示\u003c/h2\u003e\n\u003cp\u003eDebian / Ubuntuとかでは動的に表示できるようですが、\nRed Hat / CentOSとかでは動的な内容表示はちょっと面倒なようです。\n作った人もいるみたいですが、正直面倒なようです。。。\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/p\u003e\n\u003cp\u003emotdとはちょっと違いますが、\nログイン時にメッセージを表示させたいのであれば、\n\u003ccode\u003e/etc/profile.d\u003c/code\u003e 以下にスクリプトを置くのが一番いいかなぁと思ってます\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://gist.github.com/cha55son/6042560\"\u003eRHEL (Centos/Fedora) dynamic motd\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003ebash限定で、suしたときにもでますが、それくらいなら問題ないので。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "OpenJDK",
    "url": "https://www.ikemo3.com/dic/openjdk/",
    "contents": "\u003ch2 id=\"openjdkとは\"\u003eOpenJDKとは\u003c/h2\u003e\n\u003cp\u003eオープンソースのJava SEの実装です。\u003c/p\u003e\n\u003ch2 id=\"ライセンス\"\u003eライセンス\u003c/h2\u003e\n\u003cp\u003eOpenJDKのライセンスは「GPL + クラスパス例外」です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n正直「GPL + クラスパス例外」と「LGPL」の違いがあまり分かってないのですが、\n検索したら「LGPLはC/C++の言葉を使ってるから他の言語にはふさわしくない」\nみたいな感じの回答がありました\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"oracle-jdkとの違いがなくなっていく\"\u003eOracle JDKとの違いがなくなっていく?\u003c/h2\u003e\n\u003cp\u003eまだハッキリと言えるものではなさそうですが、\nOpenJDKとOracle JDKとの違いはだんだんなくなっていくかもしれません。\nインストールも楽なので、OpenJDK一本でいいかもしれませんね。。。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.infoq.com/jp/news/2017/11/Java10JEPs\"\u003eJava 10 - これまでの経緯\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://openjdk.java.net/legal/gplv2+ce.html\"\u003eOpenJDK: GPLv2 + Classpath Exception\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://softwareengineering.stackexchange.com/questions/119436/what-does-gpl-with-classpath-exception-mean-in-practice/326325#326325\"\u003ejava - What does \u0026ldquo;GPL with classpath exception\u0026rdquo; mean in practice? - Software Engineering Stack Exchange\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "React",
    "url": "https://www.ikemo3.com/dic/react/",
    "contents": "\u003ch2 id=\"reactとは\"\u003eReactとは\u003c/h2\u003e\n\u003cp\u003eユーザインタフェースを作成するためのライブラリです。\u003c/p\u003e\n\u003ch2 id=\"勉強中\"\u003e勉強中\u003c/h2\u003e\n\u003cp\u003eここから先は勉強中で、全く調べてない、\n推測によるものも含みます。\u003c/p\u003e\n\u003cp\u003e以下の要素があるような感じ。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e仮想DOM\u003c/li\u003e\n\u003cli\u003eJSX\u003c/li\u003e\n\u003cli\u003eサーバサイドレンダリング(SSR)\u003c/li\u003e\n\u003cli\u003eコンポーネント\u003c/li\u003e\n\u003cli\u003e状態管理\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e仮想DOMは別記事で書いたとおり、JavaScriptオブジェクト。\nこれを作ることがサーバサイドレンダリングそのものとも言える。\nで、\u003ccode\u003eh\u003c/code\u003e関数を使うらしく、それでは分かりにくいために生まれたのが、\n\u003ccode\u003eh\u003c/code\u003e関数をHTMLっぽい記述にしたもの。それがJSX。\u003c/p\u003e\n\u003cp\u003eコンポーネントはReactとは独立しているが、\n大雑把に言えば「独自要素」を作るようなもの。\u003ccode\u003e\u0026lt;todo\u0026gt;\u003c/code\u003eとか。\u003c/p\u003e\n\u003cp\u003e仮想DOMを前提とするなら、実装は変わってもそんなに概念は変わらないと思われるが、\n5の状態管理が独自性がいろいろありそうな感じ。\u003c/p\u003e\n\u003cp\u003eあと、独自要素を作るなら、以下の概念は必要と思われる。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e表示を制御する方法\u003c/li\u003e\n\u003cli\u003e操作を制御する方法\u003c/li\u003e\n\u003cli\u003e状態を管理する方法\u003c/li\u003e\n\u003cli\u003e他のコンポーネントとの関係性\n\u003cul\u003e\n\u003cli\u003e親子関係や、id参照\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"状態管理\"\u003e状態管理\u003c/h2\u003e\n\u003cp\u003e以前はRedux一択と言われていたのですが、個人的には気に入らないです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://mae.chab.in/archives/2937\"\u003eあなたはReduxを必要としないかもしれない – You Might Not Need Redux by Dan Abramov | maesblog\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eRedux作者による忠告。local stateにReduxを使うべきでないという話。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://zenn.dev/yoshiko/articles/607ec0c9b0408d\"\u003e「3種類」で管理するReactのState戦略\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e状態を3種類に分けた方がいいという話。上のlocal stateと同じ話もある。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://mmiyauchi.com/?p=2852\"\u003eReactの高度な状態管理にRedux+Sagaが定番となっていることについての疑問 – MMiyauchi Blog\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eRedux+Sagaが定番となっていることについての疑問。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eなので、自分としてはこんな感じ。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eまずはContextを使う。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://mizchi.dev/202005271609-react-app-context\"\u003eReact Context を用いた簡易 Store - mizdev\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e大きくなってきたら専用のライブラリを導入する。\n\u003cul\u003e\n\u003cli\u003eReduxを使う場合は\u003ca href=\"https://redux-toolkit.js.org/\"\u003eRedux Toolkit\u003c/a\u003eを使う。こっちの方がパッと見た目シンプル。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://recoiljs.org/\"\u003eRecoil\u003c/a\u003eや\u003ca href=\"https://react-query.tanstack.com/\"\u003eReact Query\u003c/a\u003eという手も。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "サーバサイドレンダリング",
    "url": "https://www.ikemo3.com/dic/server-side-rendering/",
    "contents": "\u003cp\u003eまだ勉強中なのでてきとーな記事です。\u003c/p\u003e\n\u003ch2 id=\"サーバサイドレンダリングとは\"\u003eサーバサイドレンダリングとは\u003c/h2\u003e\n\u003cp\u003eサーバ側でHTMLっぽいものを組み立てるみたいです。\n実際は\u003ca href=\"/dic/virtual-dom/\"\u003e仮想DOM\u003c/a\u003eっぽいですけど。。。(まだ勉強中)\u003c/p\u003e\n\u003ch2 id=\"メリット\"\u003eメリット\u003c/h2\u003e\n\u003cp\u003e検索するとSEOばっかりなんですが、正直どうなんでしょ。\nやってみないとわからないのですが、\nブラウザからDOM構築のところを分離するので、\n単体テストはしやすそうに見えますが。。。\u003c/p\u003e\n"
  }, 
  {
    "title": "Bootstrap",
    "url": "https://www.ikemo3.com/dic/bootstrap/",
    "contents": "\u003ch2 id=\"bootstrapとは\"\u003eBootstrapとは\u003c/h2\u003e\n\u003cp\u003eフロントエンドのライブラリです。\u003c/p\u003e\n\u003ch2 id=\"このサイトでも使用\"\u003eこのサイトでも使用\u003c/h2\u003e\n\u003cp\u003e最初に参考にしたHugoのテーマがBootstrapを使っていたのですが、\n新規に組み直したときにも、Bootstrapを使っています。\nモバイル対応はちゃんとやろうとするとめんどくさいのですが、\nBootstrapはだいぶ楽です。\u003c/p\u003e\n\u003cp\u003e見た目は\u003ca href=\"https://bootswatch.com/\"\u003eBootswatch\u003c/a\u003eというテーマを使っています。\n基本それなりで、気になるところだけ変えていけばいいので、導入が楽です。\u003c/p\u003e\n"
  }, 
  {
    "title": "iPod",
    "url": "https://www.ikemo3.com/log/ipod/",
    "contents": "\u003ch2 id=\"ipod購入履歴\"\u003eiPod購入履歴\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e2004-07-09頃: iPod mini購入\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003e2007-09-06: iPod touch 16GB購入\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003e不明\n\u003cul\u003e\n\u003cli\u003eiPod nano(第1世代)\n\u003cul\u003e\n\u003cli\u003e記憶が確かなら交換プログラムで第6世代になったはず。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eiPod nano(第6世代)\n\u003cul\u003e\n\u003cli\u003e手元にある唯一のiPodです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eiPod mini自体の領収書はないんですが、この日にApple StoreでiPod mini Dockを買ったので。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eApple Storeでの注文日。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ハッシュ",
    "url": "https://www.ikemo3.com/dic/hash/",
    "contents": "\u003ch2 id=\"ハッシュとは\"\u003eハッシュとは\u003c/h2\u003e\n\u003cp\u003eある入力データに対応する、短い値(文字列)です。\u003c/p\u003e\n\u003ch2 id=\"衝突可能性\"\u003e衝突可能性\u003c/h2\u003e\n\u003cp\u003eハッシュは、元の入力データよりも遥かに短い文字列なので(入力データが短い場合を除く)、\n違う2つのデータに対し、ハッシュ値が同じになる可能性があります。\u003c/p\u003e\n\u003cp\u003e原理上は非常に低い確率ですが、MD5やSHA-1については、\n「同じハッシュ値を持つデータが作ることが可能」なことが示されています\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\nなので「インターネットで一般に公開されるもの」については、SHA-256などを使うべきです。\u003c/p\u003e\n\u003ch2 id=\"md5やsha-1でもいい場合\"\u003eMD5やSHA-1でもいい場合\u003c/h2\u003e\n\u003cp\u003e例えば、このサイトのCSSファイル、JavaScriptファイルに付けている\n\u003ca href=\"/dic/cache-busting/\"\u003eキャッシュバスティング\u003c/a\u003eはMD5を使用しています。\nなぜなら、このサイトで使用している目的は、\n「ファイルの内容が変わったときに別のファイルとみなす」ためであって、\n同じハッシュ値を使って別のファイルができたから困ることはないからです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eSHA-1の場合は\u003ca href=\"https://shattered.io/\"\u003eSHAttered\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "リップサービス",
    "url": "https://www.ikemo3.com/dic/lip-service/",
    "contents": "\u003ch2 id=\"リップサービスとは\"\u003eリップサービスとは\u003c/h2\u003e\n\u003cp\u003e日本語だと「きれいごと」に近い感じです。\u003c/p\u003e\n\u003ch2 id=\"良いきれいごとと悪いきれいごと\"\u003e「良いきれいごと」と「悪いきれいごと」\u003c/h2\u003e\n\u003cp\u003eふと思いついたのですが、\n自分が「きれいごと」を見分けるときは、\nそれが「自分を飾り立てるものかどうか」なのか、\n「他の人のため」なのかだと思いました。\u003c/p\u003e\n\u003cp\u003e例えば、「頑張れば夢はかなう」というのは正しくありませんが、\nそれが本人のためになるのなら、それは「良いきれいごと」です。\n一方で、自分のキャリアのために「きれいごと」を言うのは、\n「悪いきれいごと」です。\u003c/p\u003e\n\u003cp\u003eその意味では、「既にキャリアがある人がきれいごとを言う」のは、\nあまり気になりません。気になるのはあくまで、\n「自分がのし上がるためにきれいごとを言う」人かなと。\u003c/p\u003e\n\u003ch2 id=\"汚い言葉の方が信用できる\"\u003e汚い言葉の方が信用できる?\u003c/h2\u003e\n\u003cp\u003eこれもふと思いついたのですが、もし上のことが言えるなら、\n「汚い言葉を使って綺麗事を言う人」は信用できるかもしれません。\nまあそういう人は見たことないんですけどね。。。\u003c/p\u003e\n"
  }, 
  {
    "title": "須田帆布",
    "url": "https://www.ikemo3.com/dic/sudahanp/",
    "contents": "\u003ch2 id=\"須田帆布とは\"\u003e須田帆布とは\u003c/h2\u003e\n\u003cp\u003eバッグを作っている会社です。\u003c/p\u003e\n\u003ch2 id=\"東急ハンズ\"\u003e東急ハンズ\u003c/h2\u003e\n\u003cp\u003e須田帆布は首都圏に居た頃\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\n町田の東急ハンズで見かけて買いました。\u003c/p\u003e\n\u003cp\u003e何で買ったか覚えてないんですが、\nたぶん丈夫だったからかなぁと。\n今でもそうなんですが、職人的なところが好きです。\u003c/p\u003e\n\u003ch2 id=\"使ったもの\"\u003e使ったもの\u003c/h2\u003e\n\u003cp\u003e最初に使ったのは覚えてないんですが、\nその後も2回注文しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2010年: \u003ca href=\"http://www.sudahanp.com/item/SH-204/\"\u003eがんがん・トート\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e2013年: \u003ca href=\"http://www.sudahanp.com/item/SH-286/\"\u003eキャリー・オール M\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e普段は少し小さめのバッグを使っているのですが、\nA4サイズのものを持ち運ぶときは、今でも現役です。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e2002〜2008年のどこか\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "LinkChecker",
    "url": "https://www.ikemo3.com/manual/linkchecker/",
    "contents": "\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003ch3 id=\"macos\"\u003emacOS\u003c/h3\u003e\n\u003cp\u003emacOS High Sierra 10.13.2で確認しています。\u003c/p\u003e\n\u003cp\u003emacOSでは\u003ccode\u003e.dmg\u003c/code\u003eがないので以下のようにしてCUI版を入れます\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003epip install git+https://github.com/linkchecker/linkchecker.git\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"基本的な使い方\"\u003e基本的な使い方\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003elinkchecker \u0026lt;URL\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e例えば、\u003ca href=\"/dic/hugo/\"\u003eHugo\u003c/a\u003eをローカルで動かしているときは以下のようにします。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003elinkchecker http://localhost:1313\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eスレッド数が\u003ccode\u003e-t\u003c/code\u003eオプションで設定できますが、\n自分の環境では効果は見られませんでした。\u003c/p\u003e\n\u003ch3 id=\"ディレクトリ指定の場合\"\u003eディレクトリ指定の場合\u003c/h3\u003e\n\u003cp\u003eディレクトリを指定する場合は、\nデフォルトでは \u003ccode\u003e/article\u003c/code\u003e のようなリンクを辿らないため、\nlinkcheckerrcファイル(詳細は\u003ccode\u003eman linkcheckerrc\u003c/code\u003e)に以下のように書く必要があります。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e[checking]\nlocalwebroot=パス\n\n[filtering]\ncheckextern=1\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eただ、パス指定が面倒なのでやらないほうが良さそうです\n(CI環境でDockerを使うならパスを固定できますが)\u003c/p\u003e\n\u003ch3 id=\"フィルタ\"\u003eフィルタ\u003c/h3\u003e\n\u003cp\u003e参照させたくない場合はlinkcheckerrcファイル(詳細は\u003ccode\u003eman linkcheckerrc\u003c/code\u003e)で\n以下のように書きます。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e[filtering]\nignore=\n  ws-fe.amazon-adsystem.com\n  pagead2.googlesyndication.com\n  https://www.amazon.co.jp/\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"結果の見方\"\u003e結果の見方\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eParent URL: リンク元のURL\u003c/li\u003e\n\u003cli\u003eReal URL: リンク先のURL\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "乱数",
    "url": "https://www.ikemo3.com/dic/random/",
    "contents": "\u003ch2 id=\"乱数とは\"\u003e乱数とは\u003c/h2\u003e\n\u003cp\u003e次に何が出るか予測できない数値です。\u003c/p\u003e\n\u003ch2 id=\"devrandom-vs-devurandom\"\u003e/dev/random vs /dev/urandom/\u003c/h2\u003e\n\u003cp\u003eLinuxでは/dev/random と /dev/urandom の2つがあって、\n前者は環境ノイズを使った乱数ですが、後者は暗号論的擬似乱数生成器です。\u003c/p\u003e\n\u003cp\u003e前者の方が「真の乱数」のようですが、以下の2つの問題があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eインストールした直後などに、エントロピー不足でブロックされることがある。\u003c/li\u003e\n\u003cli\u003e「環境ノイズ」が予測される可能性がある(仮想マシンなど)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://linuxjm.osdn.jp/html/LDP_man-pages/man4/random.4.html\"\u003emanページ\u003c/a\u003eには以下のように書かれています。\n理論上は環境ノイズを用いた乱数より弱いが、\n(一般向けに)現実的に弱いという話は見ていません。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e/dev/urandom デバイスから読み出しでは、\nエントロピーがより高くなるのを待つためのブロックは行われない。\n十分なエントロピーがない場合、\n要求されたバイトを作成するのに疑似乱数生成器が使用される。\nその結果、この場合の返り値はこのドライバで使われている\nアルゴリズムに基づく暗号攻撃に対して、論理的には弱くなることになる。\nこの攻撃をどのように行うかという事については、\n現在研究論文などの形で入手できる資料はない、\nしかし、そのような攻撃は論理的に存在可能である。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eなので、ほとんどの場合は /dev/urandom でいいんじゃないかなぁと思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "Node.js",
    "url": "https://www.ikemo3.com/manual/nodejs/",
    "contents": "\u003ch2 id=\"バージョニング\"\u003eバージョニング\u003c/h2\u003e\n\u003cp\u003e以下に書かれています。\nLTS対象となるのは\u003cstrong\u003e偶数バージョン\u003c/strong\u003eのみです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://nodejs.org/ja/about/releases/\"\u003eReleases | Node.js\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eUNSTABLE: 不安定なもの\u003c/li\u003e\n\u003cli\u003eCURRENT: 活発に開発されているもの\u003c/li\u003e\n\u003cli\u003eACTIVE: アクティブに開発されているもの\u003c/li\u003e\n\u003cli\u003eMAINTENANCE: 保守モード\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e最新版を追っかけたいならCURRENT、LTSのACTIVEかMAINTENANCEを使うのでいいんじゃないかなと。\u003c/p\u003e\n\u003ch2 id=\"module\"\u003emodule\u003c/h2\u003e\n\u003ch3 id=\"一部の拡張子は省略可能\"\u003e一部の拡張子は省略可能\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://nodejs.org/api/modules.html#modules_file_modules\"\u003eFile Modules\u003c/a\u003eによれば、\n\u003ccode\u003erequire\u003c/code\u003eの引数は以下のように解釈されます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eファイルがない場合は、\u003ccode\u003e.js\u003c/code\u003e, \u003ccode\u003e.json\u003c/code\u003e, \u003ccode\u003e.node\u003c/code\u003eの順に補完して開けるか試す。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e/\u003c/code\u003eから始まる場合は絶対パス\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e./\u003c/code\u003eから始まる場合は現在のディレクトリからの相対パス\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e/\u003c/code\u003e, \u003ccode\u003e./\u003c/code\u003e, \u003ccode\u003e../\u003c/code\u003eのいずれからも始まらない場合は、\u003ccode\u003enode_modules\u003c/code\u003eフォルダからのパスになる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e記述がないですが、\u003ccode\u003e../\u003c/code\u003eから始まる場合は親ディレクトリからの相対パスで間違いないはず。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Webpack",
    "url": "https://www.ikemo3.com/tags/webpack/",
    "contents": ""
  }, 
  {
    "title": "webpack: ContextReplacementPluginの使い方",
    "url": "https://www.ikemo3.com/inverted/webpack/context-replacement/",
    "contents": "\u003ch2 id=\"目的\"\u003e目的\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003erequire\u003c/code\u003eの引数に変数がある場合に、\nwebpackはその変数を「全ての文字列」として解釈し、\nマッチする全てのファイルをバンドル対象としますが、\nその処理を上書きして、一部のファイルのみバンドル対象とするために使います。\u003c/p\u003e\n\u003ch2 id=\"使い方\"\u003e使い方\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://webpack.js.org/plugins/context-replacement-plugin/#usage\"\u003eUsage\u003c/a\u003eには以下のように定義されています。\n2〜4番目の引数(\u003ccode\u003e?\u003c/code\u003eがあるもの)は任意項目のようですが、\nJavaScriptにこのような記法があるわけではなく、\n自前で引数の型をチェックして、\nどの項目が指定されたかどうかを判定しています\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ewebpack\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eContextReplacementPlugin\u003c/span\u003e(\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eresourceRegExp\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e RegExp,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003enewContentResource\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e?:\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003estring\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003enewContentRecursive\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e?:\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eboolean\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003enewContentRegExp\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e?:\u003c/span\u003e RegExp\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e一番簡単な例として、Moment.jsのロケール設定を置き換えるものが挙げられています。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ewebpack\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eContextReplacementPlugin\u003c/span\u003e(\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#e6db74\"\u003e/moment[\\/\\\\]locale$/\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#e6db74\"\u003e/de|fr|hu/\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e1番目の引数は\u003ccode\u003eresourceRegExp\u003c/code\u003e、2番目の引数は\u003ccode\u003enewContentRegExp\u003c/code\u003eなのですが、\nこれをどう指定すればいいのか、\nそれはMoment.jsのソースコードを読む必要があります。\u003c/p\u003e\n\u003cp\u003eMoment.js 2.20.1の1844行目あたりに以下のコードがあります。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003evar aliasedRequire = require;\naliasedRequire(\u0026#39;./locale/\u0026#39; + name);\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e1行目はrequireのaliasを作っているだけなので、問題は2行目です。\nどうやらこれをwebpackが解釈する時に、\n\u003ccode\u003ename\u003c/code\u003e変数を任意の文字列にマッチさせています。\u003c/p\u003e\n\u003cp\u003eここでは\u003ccode\u003e./locale/.*\u003c/code\u003eになっていますが、\n実際はMoment.jsの内部でのrequireなので、\n実ファイルでは、\u003ccode\u003enode_modules/moment/locale/.*\u003c/code\u003eにマッチします。\u003c/p\u003e\n\u003cp\u003eこのとき、置き換え前のディレクトリは\u003ccode\u003emoment/locale\u003c/code\u003e,\nマッチする正規表現は\u003ccode\u003e.*\u003c/code\u003eになっています。\nこれをそれぞれ、\u003ccode\u003e/moment[\\/\\\\]locale$/\u003c/code\u003e,\n\u003ccode\u003e/de|fr|hu/\u003c/code\u003eという正規表現に置き換えるのがこのプラグインの目的です。\u003c/p\u003e\n\u003cp\u003eなお、この\u003ccode\u003e/moment/locale$/\u003c/code\u003e でなく \u003ccode\u003e/moment[\\/\\\\]locale$/\u003c/code\u003e になっている\n理由は、Windows対応のためのようです。\u003c/p\u003e\n\u003cp\u003eまた、\u003ccode\u003enewContentRegexp\u003c/code\u003eに拡張子がついていないのは、\n\u003ca href=\"/manual/nodejs/module/\"\u003emodule\u003c/a\u003eには拡張子は不要(自動補完される)ためです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/webpack/webpack/blob/master/lib/ContextReplacementPlugin.js\"\u003ewebpack/ContextReplacementPlugin.js at master · webpack/webpack\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "セキュリティ",
    "url": "https://www.ikemo3.com/dic/security/",
    "contents": "\u003ch2 id=\"セキュリティとは\"\u003eセキュリティとは\u003c/h2\u003e\n\u003cp\u003e何かを安全に保護することです。\nここでは、基本的にはコンピュータ関連のことを書きます。\u003c/p\u003e\n\u003ch2 id=\"インフラ\"\u003eインフラ\u003c/h2\u003e\n\u003ch3 id=\"原則\"\u003e原則\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eセキュリティアップデートはなるべく早く適用する。\u003c/li\u003e\n\u003cli\u003e容易に止められないシステムの場合は、脆弱性の内容を検証し、後回しにしていいか判断する。\n\u003cul\u003e\n\u003cli\u003eリモートから攻撃されるものは早めに適用する。\u003c/li\u003e\n\u003cli\u003eローカルのみしか攻撃されないものは、システムによっては適用を遅らせても構わない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/selinux/\"\u003eSELinux\u003c/a\u003eはオンにする。\u003c/li\u003e\n\u003cli\u003e不要なサービス、ポートは開けない。\u003c/li\u003e\n\u003cli\u003eサーバの情報は露呈させないほうがいいが、あくまでも攻撃されにくくするためであり、本質的な解決案ではない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"開発時\"\u003e開発時\u003c/h2\u003e\n\u003ch3 id=\"正しい方法を知る\"\u003e正しい方法を知る\u003c/h3\u003e\n\u003cp\u003e例えばクライアントが渡す全てのパラメータは変更(改ざん)できると認識すること。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eフォームで渡すパラメータ\u003c/li\u003e\n\u003cli\u003eアップロードするファイル\u003c/li\u003e\n\u003cli\u003eUser-Agent\u003c/li\u003e\n\u003cli\u003eHTTPヘッダ\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"要件が大事\"\u003e要件が大事\u003c/h3\u003e\n\u003cp\u003eセキュリティを考える時に重要なのは、要件です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eどの情報を秘匿すべきか\n\u003cul\u003e\n\u003cli\u003eパスワードはもちろん第三者に漏れてはいけません。\u003c/li\u003e\n\u003cli\u003eメールアドレスはパスワードに比べると秘匿度は低いです。\u003c/li\u003e\n\u003cli\u003eセキュリティだけでなく、プライバシーの観点からも必要です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e誰から守るものか\n\u003cul\u003e\n\u003cli\u003eインターネットの悪意を持った人(クラッカー)\u003c/li\u003e\n\u003cli\u003e社内の悪意の利用者は仮定すべきか\u003c/li\u003e\n\u003cli\u003eサーバのローカルアカウントからの攻撃は仮定すべきか\u003c/li\u003e\n\u003cli\u003e物理的にアクセスできる人からの攻撃を仮定すべきか\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eどのプロトコルを使うか\n\u003cul\u003e\n\u003cli\u003ehttpsによるアクセスは、第三者からの盗聴はほぼ気にしなくてよい。\n\u003cul\u003e\n\u003cli\u003eブラウザの拡張機能や、XSS攻撃による問題はあります。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eメールは外部から盗聴される可能性がある。\n\u003cul\u003e\n\u003cli\u003eWebメールはhttpsなことが多いですが、元々転送を前提としていて、暗号化は後付けのため。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ehttpや「不正な証明書(いわゆるオレオレ証明書)」は全く安全ではない。\n\u003cul\u003e\n\u003cli\u003ehttpは盗聴が容易。\u003c/li\u003e\n\u003cli\u003e不正な証明書は中間者攻撃をされる可能性がある。\u003c/li\u003e\n\u003cli\u003e不正な証明書でも安全な方法で取得してクライアントに入れれば安全とは言えるが、基本的には面倒なだけ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eどれくらいの強度が必要か\n\u003cul\u003e\n\u003cli\u003eすぐに無効化できるなら問題ない(ワンタイムパスワード)\u003c/li\u003e\n\u003cli\u003e絶対に破られてはいけない\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eといった情報が重要です。\u003c/p\u003e\n\u003ch3 id=\"アルゴリズムを隠すことで安全性を担保してはいけない\"\u003eアルゴリズムを隠すことで安全性を担保してはいけない\u003c/h3\u003e\n\u003cp\u003eこれは「ケルクホフスの原理」として知られています。\n\u003ca href=\"/dic/oss/\"\u003eオープンソース・ソフトウェア\u003c/a\u003eや標準化された暗号は\nアルゴリズムが公開されることを前提に、安全性を確保しています。\u003c/p\u003e\n\u003cp\u003eこれはソースコードを公開しろと言っているのではなく、\n「ソースコードを公開してもその仕組みは安全ですか?」という問いかけですね。\u003c/p\u003e\n"
  }, 
  {
    "title": "餃子",
    "url": "https://www.ikemo3.com/manual/gyoza/",
    "contents": "\u003cp\u003e自分で作った時のレシピです。\u003c/p\u003e\n\u003ch2 id=\"材料\"\u003e材料\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e餃子の皮30枚分(もち粉入りがオススメ\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e)\u003c/li\u003e\n\u003cli\u003e以下合わせて300g程度\n\u003cul\u003e\n\u003cli\u003e豚ひき肉\u003c/li\u003e\n\u003cli\u003e野菜(白菜、キャベツ、ニラ)\n\u003cul\u003e\n\u003cli\u003e野菜は食感が複雑な白菜がベスト。キャベツもOK。\u003c/li\u003e\n\u003cli\u003eニラは風味はいいが食感は単調なので、アクセントとして少し入れる程度。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e生姜(チューブ): 大さじ1くらい\u003c/li\u003e\n\u003cli\u003eにんにく(チューブ): 大さじ1くらい\u003c/li\u003e\n\u003cli\u003e鶏がらスープ: ふた振りくらい\u003c/li\u003e\n\u003cli\u003e酒: 一振りくらい\u003c/li\u003e\n\u003cli\u003e水\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"調理用具\"\u003e調理用具\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eまな板(野菜を切る)\u003c/li\u003e\n\u003cli\u003e菜箸、ヘラ、ターナー(裏返す)\u003c/li\u003e\n\u003cli\u003eボウル(中サイズ)(材料を入れる)\u003c/li\u003e\n\u003cli\u003eフライパン(蓋つき)(焼く)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"作り方\"\u003e作り方\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e野菜をみじん切りにする。\u003c/li\u003e\n\u003cli\u003e豚ひき肉、生姜、にんにく、調味料を入れて混ぜる。\u003c/li\u003e\n\u003cli\u003e餃子の皮に材料を入れて包む\u003c/li\u003e\n\u003cli\u003eフライパンに軽く油を敷いてあっためる\u003c/li\u003e\n\u003cli\u003e餃子を入れて軽く焦げ目がつくまで焼く\u003c/li\u003e\n\u003cli\u003e水を入れてふたをして3分ほど蒸す\u003c/li\u003e\n\u003cli\u003eふたを取って好みに応じて焼く\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"食べ方\"\u003e食べ方\u003c/h2\u003e\n\u003cp\u003eポン酢で食べてました。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e皮はもち粉入りの方が包みやすく、焼いた時も固いところが残らないので楽。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Tax",
    "url": "https://www.ikemo3.com/tags/tax/",
    "contents": ""
  }, 
  {
    "title": "オープンソースソフトウェア",
    "url": "https://www.ikemo3.com/manual/oss/",
    "contents": "\u003ch2 id=\"探し方\"\u003e探し方\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e活発なコミュニティがあるサイトを検索\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/\"\u003eGitHub\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.apache.org/\"\u003eApache Software Foundation\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e以下の内容を見て、使えそうか判断する\n\u003cul\u003e\n\u003cli\u003eスターの数\u003c/li\u003e\n\u003cli\u003e最終コミット(1年以上コミットがないと躊躇)\u003c/li\u003e\n\u003cli\u003eただし、言語のライブラリなど、別のエコシステムがある場合はそちらも参照(後述)\u003c/li\u003e\n\u003cli\u003e公式サイト\n\u003cul\u003e\n\u003cli\u003eモバイル未対応サイトのままの場合はちょっと危ない。\u003c/li\u003e\n\u003cli\u003e一人で活発に開発している場合など、それだけで判断できるものではないが、一つの基準にはなる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e軽く使ってみる。\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e使いにくいようなら深入りしない\u003c/strong\u003e。代替案がある場合が多い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"別のエコシステムがある場合\"\u003e別のエコシステムがある場合\u003c/h2\u003e\n\u003cp\u003e以下の言語やフレームワークなどは、別のサイトの情報も基準にしたほうがよい。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNode.js: \u003ca href=\"https://www.npmjs.com/\"\u003enpm\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eダウンロード数が一つの基準。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/ruby/\"\u003eRuby\u003c/a\u003e: \u003ca href=\"https://rubygems.org/\"\u003eRubyGems\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "ふるさと納税",
    "url": "https://www.ikemo3.com/dic/furusato-nouzei/",
    "contents": "\u003ch2 id=\"ふるさと納税とは\"\u003eふるさと納税とは\u003c/h2\u003e\n\u003cp\u003e都道府県、市区町村への寄附です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"実質的な税額控除\"\u003e「実質的な」税額控除\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/tax-return/\"\u003e確定申告\u003c/a\u003eをすると分かるのですが、控除には\n「所得控除」と「税額控除」の2種類の控除があります。\u003c/p\u003e\n\u003cp\u003eふるさと納税は自己負担額の2000円を除いて、原則として全額が控除されます。\nその意味では「税額控除」なのですが、\n計算式は少しややこしいです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e所得税からの控除: (ふるさと納税額 - 2000円) × 所得税の税率\u003c/li\u003e\n\u003cli\u003e住民税からの控除(基本分): (ふるさと納税額 - 2000円) × 10%\u003c/li\u003e\n\u003cli\u003e住民税からの控除(特例分): 以下の少ない方\n\u003cul\u003e\n\u003cli\u003e(ふるさと納税額 - 2000円) × (100% - 10% - 所得税の税率)\u003c/li\u003e\n\u003cli\u003e(住民税所得割額) × 20%\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eなぜややこしいことになってるのかというと、\n以下の2つの理由からです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e従来の寄付金控除と被らないようにする必要がある。\u003c/li\u003e\n\u003cli\u003eふるさと納税としての控除は住民税からでないといけない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e「自己負担額(2000円)」と「所得税からの控除」と「住民税からの控除(基本分)」は、\n両方とも、既存の寄附金控除そのものです\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\n「住民税からの控除(特例分)」がふるさと納税によるもので、\n税額控除になるように計算式を調節しています。\u003c/p\u003e\n\u003cp\u003e普段は意識しないのですが、確定申告のときに\n「ふるさと納税は税額控除なのに所得控除として扱われている?」と\n勘違いしがちです。\u003c/p\u003e\n\u003ch2 id=\"ふるさと故郷ではない\"\u003e「ふるさと＝故郷」ではない\u003c/h2\u003e\n\u003cp\u003e別に生まれ育った場所である必要はありません。\nと言っても自分はお礼の内容で寄付先を選ぶのは好きじゃないので、\n故郷(\u003ca href=\"/dic/ozu/\"\u003e大洲市\u003c/a\u003e)に寄付しています。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.soumu.go.jp/main_sosiki/jichi_zeisei/czaisei/czaisei_seido/furusato/about/\"\u003e総務省｜ふるさと納税ポータルサイト｜よくわかる！ふるさと納税\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.soumu.go.jp/main_sosiki/jichi_zeisei/czaisei/czaisei_seido/79172_2_kojin.html\"\u003e個人住民税\u003c/a\u003eと\u003ca href=\"https://www.nta.go.jp/shiraberu/ippanjoho/pamph/koho/kurashi/html/04_3.htm\"\u003e所得税\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "モチベーション",
    "url": "https://www.ikemo3.com/dic/motivation/",
    "contents": "\u003ch2 id=\"モチベーションとは\"\u003eモチベーションとは\u003c/h2\u003e\n\u003cp\u003e動機づけのことです。\u003c/p\u003e\n\u003ch2 id=\"報酬は衛生的要因\"\u003e報酬は衛生的要因\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eは、「明日を支配するもの」p23「第1章 マネジメントの常識が変わる」において、\nフレデリック・ハーツバーグの研究を元に、報酬だけで動機づけはできないということを言っています。\n(漢数字→アラビア数字への変更のみ引用者)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eすでに50年も前から、金銭だけで動機づけすることはできないことが\n明らかになっている。報酬に不満があれば、やる気は失われる。\nだが報酬への満足は、40年前にフレデリック・ハーツバーグが、\nその著『仕事の動機づけ』(1959)において名づけたように、\n衛生的要因の充足にすぎない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e動機づけ、とくに知識労働者の動機づけは、\nボランティアの動機づけと同じである。\n周知のように、ボランティアは、まさに報酬を手にしないがゆえに、\n仕事そのものから満足を得なければならない。\n何にもまして、挑戦の機会を与えられなければならない。\n組織の使命を知り、それを最高のものと信じられなければならない。\nよりよい仕事のための訓練を受けられなければならない。\n成果を理解できなければならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e例えば、年収200万の人によっては、\nいくら仕事の内容が良くても、より報酬が大きい会社があれば、簡単に移ります。\n逆に、年収2000万の人にとっては\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\n多少報酬が大きい仕事があったとしても、そちらを選ぶとは限りません。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478372632/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478372632.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478372632/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n明日を支配するもの―21世紀のマネジメント革命\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e残念ながら自分のことではありません。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "医療費控除",
    "url": "https://www.ikemo3.com/dic/medical-expenses-deduction/",
    "contents": "\u003ch2 id=\"医療費控除とは\"\u003e医療費控除とは\u003c/h2\u003e\n\u003cp\u003e病院や薬局に払ったお金を、所得から控除するための仕組みです。\u003c/p\u003e\n\u003ch2 id=\"簡略化された\"\u003e簡略化された\u003c/h2\u003e\n\u003cp\u003e平成29年(2017年)の確定申告から、\n医療費控除の記入が簡略化されました\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e医療費集計フォームの書式も変更されています\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch3 id=\"まとめ\"\u003eまとめ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e明細をまとめて入力可能\u003c/li\u003e\n\u003cli\u003e「医療費のお知らせ」があれば、その分は明細を書かなくてよく、領収書の保存も不要\u003c/li\u003e\n\u003cli\u003eそれ以外の医療費は領収書の保管が必要だが、提出は不要。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"明細をまとめて入力可能\"\u003e明細をまとめて入力可能\u003c/h3\u003e\n\u003cp\u003eこれまでは明細を1件ずつ入力していたのが、人と場所ごとにまとめてでOKになりました。\nドラッグストアなど買った場合は、氏名をまとめて記載可能です(\u003ca href=\"http://www.nta.go.jp/publication/pamph/pdf/iryohikozyoQA.pdf\"\u003eQA\u003c/a\u003eのNo.3)。\u003c/p\u003e\n\u003cp\u003e端数処理がされている場合は、どちらを使用しても構いません(\u003ca href=\"http://www.nta.go.jp/publication/pamph/pdf/iryohikozyoQA.pdf\"\u003eQA\u003c/a\u003eのNo.10)\u003c/p\u003e\n\u003ch3 id=\"医療費のお知らせがあればその分は明細を書かなくてよい\"\u003e「医療費のお知らせ」があれば、その分は明細を書かなくてよい\u003c/h3\u003e\n\u003cp\u003e健康保険組合\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003eが発行する「医療費のお知らせ」がある場合(様式を満たしている必要あり)は、\nその合計金額だけを書けば、明細を書かなくてよく、領収書の保存も不要です(\u003ca href=\"http://www.nta.go.jp/publication/pamph/pdf/iryohikozyoQA.pdf\"\u003eQA\u003c/a\u003eのNo.1)。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eまた、医療保険者が発行するもので次の①から⑥までに掲げる６項目の記載がある\n「医療費通知」を確定申告書に添付する場合（注２）は、「医療費控除の明細書」\nの記載を簡略化することができ、医療費の領収書の保存も不要となります。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"領収書の提出が不要保管が必要\"\u003e領収書の提出が不要(保管が必要)\u003c/h3\u003e\n\u003cp\u003eそれ以外の場合も、領収書の提出が不要になりました。\nただし、領収書の5年間の保管が必要です(\u003ca href=\"http://www.nta.go.jp/publication/pamph/pdf/iryohikozyoQA.pdf\"\u003eQA\u003c/a\u003eのNo.1)\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e平成 29 年分以後の所得税の確定申告において医療費控除の適用を受ける場合は、\n医療費の領収書に基づいて必要事項を記載した「医療費控除の明細書」を\n確定申告書に添付して提出することとされました。\nなお、この場合、医療費の領収書を確定申告期限等から５年間ご自宅等で保存する\n必要があります（注１）のでご注意ください。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eドラッグストアなどで買った薬の領収書の保存は必要ですが、\nだいぶ簡素化されますね。\u003c/p\u003e\n\u003ch2 id=\"主な対象外\"\u003e主な対象外\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e予防接種\u003c/li\u003e\n\u003cli\u003e健康診断(例外あり)\u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003e栄養ドリンク\n\u003cul\u003e\n\u003cli\u003e風邪薬代わりに使われる\u003ca href=\"/dic/katsujin/\"\u003e活蔘\u003c/a\u003eでも駄目でした\u003csup id=\"fnref:6\"\u003e\u003ca href=\"#fn:6\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e6\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/kampo/\"\u003e漢方\u003c/a\u003eの補剤はおそらく大丈夫だと思います\u003csup id=\"fnref:7\"\u003e\u003ca href=\"#fn:7\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e7\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.nta.go.jp/tetsuzuki/shinkoku/shotoku/tokushu/info-iryouhikoujo2.htm\"\u003e（詳細ページ）医療費控除の提出書類が簡略化されました：平成29年分 確定申告特集\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.nta.go.jp/tetsuzuki/shinkoku/shotoku/tokushu/iryouhikoujo.htm\"\u003e医療費控除の準備：平成29年分 確定申告特集（準備編）\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e正確には「保険者」ですが、「健康保険法」または「国民健康保険法」で定義されている、いわゆる健康保険組合を指します。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e正確には「確定申告期限等から5年間」と書かれています。2017年度分は2018年3月15日が期限なので、保管期限は2023年3月15日でしょうか。\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.nta.go.jp/taxanswer/shotoku/1122_qa.htm\"\u003eNo.1122 医療費控除の対象となる医療費｜所得税｜国税庁\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:6\"\u003e\n\u003cp\u003e税務署に確認済み。\u0026#160;\u003ca href=\"#fnref:6\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:7\"\u003e\n\u003cp\u003e病気の治療に使われることもあるので。\u0026#160;\u003ca href=\"#fnref:7\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Fiddler",
    "url": "https://www.ikemo3.com/manual/fiddler/",
    "contents": "\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003cp\u003eWindows 10で確認しています。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://www.telerik.com/fiddler\"\u003eFiddler - Free Web Debugging Proxy - Telerik\u003c/a\u003e に移動\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFree Download\u003c/code\u003eをクリック\u003c/li\u003e\n\u003cli\u003e項目を入力してダウンロード\n\u003cul\u003e\n\u003cli\u003eメールアドレスは必須です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eインストール\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"フォームの送信パラメータ書き換え\"\u003eフォームの送信パラメータ書き換え\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eFiddlerを起動する\n\u003cul\u003e\n\u003cli\u003e(この時点でパケットは全てfiddler経由なのに注意)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e左下の「All Processes」の右側の空欄をクリック\u003c/li\u003e\n\u003cli\u003eフォーム送信\u003c/li\u003e\n\u003cli\u003eFiddlerで該当する通信をダブルクリック\n\u003cul\u003e\n\u003cli\u003e右側のペインで書き換える\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eこれ以上書き換えが不要なら、「All Processes」の右側のところを空欄になるまでクリック\u003c/li\u003e\n\u003cli\u003e上部の「Go」ボタンをクリック\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Grep",
    "url": "https://www.ikemo3.com/tags/grep/",
    "contents": ""
  }, 
  {
    "title": "Java",
    "url": "https://www.ikemo3.com/manual/java/",
    "contents": "\u003ch2 id=\"ドキュメント\"\u003eドキュメント\u003c/h2\u003e\n\u003ch3 id=\"公式\"\u003e公式\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.oracle.com/technetwork/jp/java/java-sun-1440465-ja.html\"\u003e日本語ドキュメントアーカイブ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJava SE 10\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/10/\"\u003eドキュメント\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/10/docs/api/\"\u003eAPI\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eJava SE 9\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/9/\"\u003eドキュメント\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/9/docs/api/\"\u003eAPI\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eモジュールに分かれているので、慣れないと分かりづらいです。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ejava.base\u003c/code\u003eが最もよく使うパッケージのようです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/\"\u003eJava SE 8\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/7/api/index.html\"\u003eJava SE 7\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/6/api/index.html\"\u003eJava SE 6\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"公式以外\"\u003e公式以外\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.ne.jp/asahi/hishidama/home/tech/java/index.html\"\u003eJavaメモ(ひしだまさん)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/akullpp/awesome-java\"\u003eAwesome Java\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e日本語訳: \u003ca href=\"http://qiita.com/h_network21/items/7868996e3eb5fa55f11a\"\u003eAwesome Java : 素晴しい Java フレームワーク・ライブラリ・ソフトウェアの数々 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/disc99/items/727b51dbe737602a5c91\"\u003eJavaを使うなら知っておきたい技術、フレームワーク、ライブラリ、ツールまとめ - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"コーディング規約\"\u003eコーディング規約\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGoogle Java Style Guide\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://google.github.io/styleguide/javaguide.html\"\u003e公式\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://kazurof.github.io/GoogleJavaStyle-ja/\"\u003e非公式和訳\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"よく忘れるクラス\"\u003eよく忘れるクラス\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/util/concurrent/TimeUnit.html\"\u003eTimeUnit\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"個人的なガイドライン\"\u003e個人的なガイドライン\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eクラスはfinalにしているか?\u003c/li\u003e\n\u003cli\u003e中身を返すだけのgetterを定義していないか?\u003c/li\u003e\n\u003cli\u003eプリミティブ型を使っていないか?(特にString)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"コレクション\"\u003eコレクション\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/technotes/guides/collections/index.html\"\u003eCollections Framework\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下作成中。。。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollection: 基底インタフェース\n\u003cul\u003e\n\u003cli\u003eList: 順序付き\u003c/li\u003e\n\u003cli\u003eSet: 重複要素がない\u003c/li\u003e\n\u003cli\u003eQueue: いわゆるキュー。\n\u003cul\u003e\n\u003cli\u003eDeque: 両端から追加削除できるキュー\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"拡張for\"\u003e拡張for\u003c/h2\u003e\n\u003cp\u003eJava SE 5から導入された拡張for文は、以下のインタフェースを実装することで、\n自前でも実装可能です。\u003c/p\u003e\n\u003cp\u003e別記事にしました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/inverted/java/for-each/\"\u003eJava: 自分で作成したクラスで拡張forを使用する方法\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"文字コード\"\u003e文字コード\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/nio/charset/Charset.html\"\u003eCharset\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"厳密にエラーをチェックしたい場合\"\u003e厳密にエラーをチェックしたい場合\u003c/h3\u003e\n\u003cp\u003e例えば\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/io/InputStreamReader.html\"\u003ejava.io.InputStreamReader\u003c/a\u003eでは、\nデフォルトでは不正な入力があった場合、置換文字に置き換えられます。\n厳密にエラーをチェックしたい場合は、 \u003ccode\u003eCharset#newDecoder()\u003c/code\u003e メソッドを使って、\nデフォルトのデコーダを使うようにすると良いです。\u003c/p\u003e\n\u003ch2 id=\"データベース\"\u003eデータベース\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://d.hatena.ne.jp/seraphy/20140202\"\u003eオフラインのResultSetとしてCachedRowSetを使う方法 - seraphyの日記\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"時刻\"\u003e時刻\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.ne.jp/asahi/hishidama/home/tech/java/datetime.html\"\u003eJava日付時刻APIメモ(Hishidama\u0026rsquo;s Java8 Date and Time API Memo)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"javatime\"\u003ejava.time\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/ikemo/items/61b334ffe7f68ff40abd\"\u003eJavaのDate and Time APIの設計思想が面白い - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eパッケージ\n\u003cul\u003e\n\u003cli\u003ejava.time\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/package-summary.html\"\u003eJDK 8\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ejava.time.chrono\n\u003cul\u003e\n\u003cli\u003e暦をあらわすもの\u003c/li\u003e\n\u003cli\u003echronoという単語は普段は目にしませんが、「クロノ・トリガー」で連想するといいです。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/chrono/package-summary.html\"\u003eJDK 8\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ejava.time.format\n\u003cul\u003e\n\u003cli\u003e日付の出力と解析\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/format/package-summary.html\"\u003eJDK 8\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ejava.time.temporal\n\u003cul\u003e\n\u003cli\u003e日時の一部分をアクセスするために使うもの。\u003c/li\u003e\n\u003cli\u003e音楽とかの「テンポ」で連想すると良さそうです。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/temporal/package-summary.html\"\u003eJDK 8\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ejava.time.zone\n\u003cul\u003e\n\u003cli\u003eタイムゾーン。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/zone/package-summary.html\"\u003eJDK 8\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e基本クラス\n\u003cul\u003e\n\u003cli\u003ejava.time.LocalDateTime: ローカル時刻(タイムゾーンなし)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/LocalDateTime.html\"\u003eJDK 8\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ejava.time.ZonedDateTime: タイムゾーンあり\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/ZonedDateTime.html\"\u003eJDK 8\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ejava.time.OffsetDateTime: オフセット付き時刻\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/OffsetDateTime.html\"\u003eJDK 8\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ejava.time.Instant: 時点\n\u003cul\u003e\n\u003cli\u003eUnix時刻に近いものです。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/Instant.html\"\u003eJDK 8\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etoEpochMilli()を使うことでミリ秒で取得が可能ですが、ナノ秒の情報が失われることに注意。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eよく使うもの\n\u003cul\u003e\n\u003cli\u003e日付の追加など: plusDays()とかを使用する。\u003c/li\u003e\n\u003cli\u003e切り捨て: truncatedTo()を使用する。\n\u003cul\u003e\n\u003cli\u003e切り捨ての単位は\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/temporal/TemporalUnit.html\"\u003eTemporalUnit\u003c/a\u003eインタフェース。実装は以下の2箇所にある。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/temporal/ChronoUnit.html\"\u003eChronoUnit\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eインタフェースを実装した列挙型\u003c/li\u003e\n\u003cli\u003e通常はこっちでOK\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/temporal/IsoFields.html\"\u003eIsoFields\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e定数として定義されています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e既存のクラスとの相互運用\n\u003cul\u003e\n\u003cli\u003eInstant\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eInstant.now().toEpochMilli()\u003c/code\u003eと\u003ccode\u003eSystem.currentTimeMillis()\u003c/code\u003eは同じです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ejava.sql.Timestamp\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/sql/Timestamp.html\"\u003eJDK 8\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etoInstant()\u003c/code\u003e と \u003ccode\u003efrom(Instant instant)\u003c/code\u003eメソッドが定義されています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"よく使うパターン\"\u003eよく使うパターン\u003c/h4\u003e\n\u003cp\u003e書式は\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/time/format/DateTimeFormatter.html\"\u003eDateTimeFormatter\u003c/a\u003eに書かれています。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e形式\u003c/th\u003e\n          \u003cth\u003e例\u003c/th\u003e\n          \u003cth\u003eメソッド\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eYYYY-MM-DD\u003c/td\u003e\n          \u003ctd\u003e2018-01-27\u003c/td\u003e\n          \u003ctd\u003eLocalDate.parse(str)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eYYYYMMDD\u003c/td\u003e\n          \u003ctd\u003e20180127\u003c/td\u003e\n          \u003ctd\u003eLocalDate.parse(str, DateTimeFormatter.BASIC_ISO_DATE)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eYYYY-MM-DD hh:mm:ss\u003c/td\u003e\n          \u003ctd\u003e2018-01-27 21:09:19\u003c/td\u003e\n          \u003ctd\u003eLocalDateTime.parse(\u0026ldquo;2018-01-27 21:01:54\u0026rdquo;, DateTimeFormatter.ofPattern(\u0026ldquo;yyyy-MM-dd HH:mm:ss\u0026rdquo;)\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch4 id=\"フォーマッターを自前で構築する場合\"\u003eフォーマッターを自前で構築する場合\u003c/h4\u003e\n\u003cp\u003e\u003ccode\u003eyyyy-MM-dd HH:mm:ss\u003c/code\u003eに相当するフォーマッターはこんな感じです。\n(エラーも含めて厳密に正しいかどうかは自信ありません)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eDateTimeFormatter formatter \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e DateTimeFormatterBuilder()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    .\u003cspan style=\"color:#a6e22e\"\u003eappend\u003c/span\u003e(DateTimeFormatter.\u003cspan style=\"color:#a6e22e\"\u003eISO_LOCAL_DATE\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    .\u003cspan style=\"color:#a6e22e\"\u003eappendLiteral\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39; \u0026#39;\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    .\u003cspan style=\"color:#a6e22e\"\u003eappend\u003c/span\u003e(DateTimeFormatter.\u003cspan style=\"color:#a6e22e\"\u003eISO_LOCAL_TIME\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    .\u003cspan style=\"color:#a6e22e\"\u003etoFormatter\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"ファイルパス\"\u003eファイルパス\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/nio/file/Path.html\"\u003ePath (Java Platform SE 8 )\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/nio/file/Paths.html\"\u003ePaths (Java Platform SE 8 )\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/io/File.html\"\u003eFile (Java Platform SE 8 )\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/nio/file/Files.html\"\u003eFiles (Java Platform SE 8 )\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/nio/file/StandardCopyOption.html\"\u003eStandardCopyOption (Java Platform SE 8 )\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/nio/file/LinkOption.html\"\u003eLinkOption (Java Platform SE 8 )\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/nio/file/FileSystem.html\"\u003eFileSystem (Java Platform SE 8 )\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/nio/file/FileSystems.html\"\u003eFileSystems (Java Platform SE 8 )\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"よく使うメソッド\"\u003eよく使うメソッド\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePathの作成\n\u003cul\u003e\n\u003cli\u003ePaths#get(String first, String\u0026hellip; more)\u003c/li\u003e\n\u003cli\u003eデフォルトのFileSystemのメソッドを呼び出します。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eファイル操作: \u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/nio/file/Files.html\"\u003eFiles\u003c/a\u003eのstaticメソッドを呼び出すとよいです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"プリミティブ型\"\u003eプリミティブ型\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html\"\u003eChapter 4. Types, Values, and Variables\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebyte[]のコピー: \u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/util/Arrays.html\"\u003eArrays#copyOf\u003c/a\u003eを使用する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ボクシング\"\u003eボクシング\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://docs.oracle.com/javase/specs/jls/se9/html/jls-5.html#jls-5.1.7\"\u003eChapter 5. Conversions and Contexts\u003c/a\u003e\u003c/p\u003e\n\u003ch4 id=\"new-integerよりintegervalueofを使う\"\u003enew IntegerよりInteger.valueOf()を使う\u003c/h4\u003e\n\u003cp\u003e\u003ca href=\"https://docs.oracle.com/javase/specs/jls/se9/html/jls-5.html#jls-5.1.7\"\u003eBoxing Conversion\u003c/a\u003e、または\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Integer.html#valueOf-int-\"\u003eInteger#valueOf()\u003c/a\u003eの定義より、\n-128から127の値は\u003ccode\u003ea == b\u003c/code\u003eとなります。\nこれは、よく使われる値は、Flyweightパターンを使用してオブジェクトを共有しているためです。\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003enew Integer\u003c/code\u003eでは常に新規オブジェクトが割り当てられてしまうため、\n\u003ccode\u003eInteger.valueOf()\u003c/code\u003eを使うことが望ましいです。\u003c/p\u003e\n\u003cp\u003eこれは他のボクシング型や、BigDecimalも該当します。\u003c/p\u003e\n\u003ch2 id=\"プロセス起動\"\u003eプロセス起動\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Process.html\"\u003ejava.lang.Process\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/lang/ProcessBuilder.html\"\u003ejava.lang.ProcessBuilder\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"互換性\"\u003e互換性\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eバイナリ互換性: \u003ca href=\"https://docs.oracle.com/javase/specs/jls/se8/html/jls-13.html\"\u003eChapter 13. Binary Compatibility\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例えばクラスとインタフェースは互換性がありません。\n詳細は\u003ca href=\"/theme/java/class-and-interface-is-incompatible\"\u003eJavaのクラスとインタフェースはバイナリ互換性がない\u003c/a\u003e参照。\u003c/p\u003e\n\u003ch2 id=\"keytool\"\u003ekeytool\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/technotes/tools/unix/keytool.html\"\u003ekeytool\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e証明書ファイルの場所は、java.home\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eの下の \u003ccode\u003ejre/lib/security/cacerts\u003c/code\u003e になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eキーストアの中身のリスト: \u003ccode\u003ekeystore -keystore key.jks -list\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eキーストア・エントリの表示: \u003ccode\u003ekeystore -keystore key.jks -list -alias keystore_alias\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eOpenJDKだと最終的に \u003ccode\u003e/usr/lib/jvm/java-*\u003c/code\u003e みたいです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Javadoc",
    "url": "https://www.ikemo3.com/tags/javadoc/",
    "contents": ""
  }, 
  {
    "title": "Jenkins",
    "url": "https://www.ikemo3.com/manual/jenkins/",
    "contents": "\u003ch2 id=\"jenkinsfileの書き方\"\u003eJenkinsfileの書き方\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://jenkins.io/doc/book/pipeline/jenkinsfile/\"\u003eUsing a Jenkinsfile\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"基本\"\u003e基本\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"/manual/groovy/\"\u003eGroovy\u003c/a\u003eで書きます。\u003c/p\u003e\n\u003ch3 id=\"文法\"\u003e文法\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://jenkins.io/doc/book/pipeline/syntax/#steps\"\u003estep\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://jenkins.io/doc/book/pipeline/syntax/#script\"\u003escript\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ステップ\"\u003eステップ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://jenkins.io/doc/pipeline/steps/\"\u003ePipeline Steps Reference\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eソースコード管理: \u003ca href=\"https://jenkins.io/doc/pipeline/steps/workflow-scm-step/#checkout-general-scm\"\u003ePipeline: SCM Step\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eシェルスクリプト: \u003ca href=\"https://jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#code-sh-code-shell-script\"\u003ePipeline: Nodes and Processes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eアーカイブ: \u003ca href=\"https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#archive-archive-artifacts\"\u003ePipeline: Basic Steps\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"nodeとpipelineの違い\"\u003enodeとpipelineの違い\u003c/h2\u003e\n\u003cp\u003enodeは「スクリプト的」で、pipelineは「宣言的」な書き方。\n基本的には「宣言的」な書き方の方が推奨されているように思われる\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eScripted PipelineをDelarative Pipelineに変えるときは、\n\u003ca href=\"https://jenkins.io/doc/book/pipeline/syntax/#script\"\u003escript\u003c/a\u003eを使うと良さそう\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"グローバル変数\"\u003eグローバル変数\u003c/h2\u003e\n\u003ch3 id=\"参照方法\"\u003e参照方法\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://jenkins.io/doc/book/pipeline/getting-started/#global-variable-reference\"\u003eGlobal Variable Reference\u003c/a\u003eを参照してください。\n実際は、動いているJenkinsから参照するようです。\u003c/p\u003e\n\u003ch3 id=\"主な変数\"\u003e主な変数\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eenv(環境変数)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esh 'printenv'\u003c/code\u003eとかすると、現在の環境が表示されます。\u003c/li\u003e\n\u003cli\u003eenv.JOB_NAME: プロジェクト名\u003c/li\u003e\n\u003cli\u003eenv.BUILD_NUMBER: ビルド番号\u003c/li\u003e\n\u003cli\u003eenv.BUILD_URL: ビルドのURL\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ecurrentBuild\n\u003cul\u003e\n\u003cli\u003ecurrentBuild.result: ビルド結果を表す文字列\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003eSUCCESS / UNSTABLE / FAILUREのいずれかを取ります。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://stackoverflow.com/questions/44657896/jenkins-pipeline-jenkinsfile-node-and-pipeline-directives\"\u003eJenkins Pipeline Jenkinsfile: \u0026rsquo;node\u0026rsquo; and \u0026lsquo;pipeline\u0026rsquo; directives - Stack Overflow\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://qiita.com/Takumon/items/e266146c225d07b82c13\"\u003eDeclarative PipelineでJenkinsfileを書いてみた(Checkstyle,Findbugs,PMD,CPDとか) - Qiita\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e文字列とは書かれてないですが、文字列と比較して問題なかったようなので。。。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "JenkinsでJavadocを使う方法",
    "url": "https://www.ikemo3.com/inverted/jenkins/javadoc/",
    "contents": "\u003ch2 id=\"書き方\"\u003e書き方\u003c/h2\u003e\n\u003cp\u003eどこにもマニュアルが無かったのですが、こんな感じでいいかと。。。\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003estep([$class: \u0026#39;JavadocArchiver\u0026#39;, javadocDir: \u0026#39;target/site/apidocs/\u0026#39;, keepAll: true])\n\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003ejavadocDirはMavenのパスです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Perl",
    "url": "https://www.ikemo3.com/tags/perl/",
    "contents": ""
  }, 
  {
    "title": "スタブ",
    "url": "https://www.ikemo3.com/dic/stub/",
    "contents": "\u003ch2 id=\"スタブとは\"\u003eスタブとは\u003c/h2\u003e\n\u003cp\u003e応答を返すものです。\u003c/p\u003e\n\u003ch2 id=\"http通信のテスト\"\u003eHTTP通信のテスト\u003c/h2\u003e\n\u003cp\u003estubby4jというのを使ってますが、なかなか良いです。\n\u003ca href=\"/dic/yaml/\"\u003eYAML\u003c/a\u003eで、マッチするリクエストと、\nその応答を記載します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/azagniotov/stubby4j\"\u003estubby4j\u003c/a\u003e: Javaで書かれたもの\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrak/stubby4node\"\u003estubby4node\u003c/a\u003e: Node.jsで書かれたもの\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "テスト(プログラミング)",
    "url": "https://www.ikemo3.com/dic/test/",
    "contents": "\u003ch2 id=\"テストプログラミングとは\"\u003eテスト(プログラミング)とは\u003c/h2\u003e\n\u003cp\u003eソフトウェアの品質が確保されているかどうかをチェックすることです。\u003c/p\u003e\n\u003ch2 id=\"スタブとかの分類\"\u003eスタブとかの分類\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.martinfowler.com/articles/mocksArentStubs.html#TheDifferenceBetweenMocksAndStubs\"\u003eThe Difference Between Mocks and Stubs\u003c/a\u003eによれば、\n以下のように使い分けられているようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eダミー: 何もしないオブジェクト\n\u003cul\u003e\n\u003cli\u003e不要なパラメータの引数とかを挙げてます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eフェイク: 機能はするが、本番での使用に耐えるものではない\n\u003cul\u003e\n\u003cli\u003e例として、インメモリデータベースを挙げてます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eスタブ: 決まりきった応答をするもの。テストのみに使用。\u003c/li\u003e\n\u003cli\u003eスパイ: 機能としては同じだが、呼ばれたことを記録しておくもの。\u003c/li\u003e\n\u003cli\u003eモック: 期待されている通りに呼び出されているかどうかに使うオブジェクト\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eスタブとモックの違いは、スタブがただ応答を返すことを想定されているのに対し、\nモックは呼び出され方もチェックすることかなと。\u003c/p\u003e\n"
  }, 
  {
    "title": "正規表現",
    "url": "https://www.ikemo3.com/manual/regular-expression/",
    "contents": "\u003ch2 id=\"ここでチェック\"\u003eここでチェック\u003c/h2\u003e\n\u003cp\u003ePHP, JavaScript, Python, Golangは以下のサイトでチェックできる。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://regex101.com/\"\u003eOnline regex tester and debugger: PHP, PCRE, Python, Golang and JavaScript\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"perl\"\u003ePerl\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://perldoc.jp/docs/perl/5.24.1/perlreref.pod\"\u003eprelreref\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"java\"\u003eJava\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003ejava.util.regex.Pattern\u003c/code\u003eクラスを使う。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/6/api/java/util/regex/Pattern.html\"\u003eJava SE 6\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/util/regex/Pattern.html\"\u003eJava SE 8\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ruby\"\u003eRuby\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/doc/spec=2fregexp.html\"\u003e正規表現\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"javascript\"\u003eJavaScript\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions\"\u003e正規表現 | MDN\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"文法\"\u003e文法\u003c/h2\u003e\n\u003ch3 id=\"文字クラス\"\u003e文字クラス\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\\w: 単語構成文字\u003c/li\u003e\n\u003cli\u003e\\W: 非単語文字\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"k\"\u003e\\K\u003c/h3\u003e\n\u003cp\u003e使ったことないですが、便利ですねこれ。。。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/33573920/what-does-k-mean-in-this-regex\"\u003ebash - What does \u0026lsquo;\\K\u0026rsquo; mean in this regex? - Stack Overflow\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/13542950/support-of-k-in-regex\"\u003eSupport of \\K in regex - Stack Overflow\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "ベーシックインカム",
    "url": "https://www.ikemo3.com/dic/basic-income/",
    "contents": "\u003ch2 id=\"ベーシックインカムとは\"\u003eベーシックインカムとは\u003c/h2\u003e\n\u003cp\u003e誰もが定期的にお金がもらえるという制度です。\u003c/p\u003e\n\u003ch2 id=\"検討する価値あり\"\u003e検討する価値あり\u003c/h2\u003e\n\u003cp\u003eまだちゃんと計算したことはないので何とも言えませんが、\n検討する価値は十分あると思います。\n理由は以下の通りです。\u003c/p\u003e\n\u003cp\u003e一つ目は、事務コストの削減になることです。\n社会保障制度は結構複雑なのですが、\nベーシックインカムがあれば、複雑さを抑えられます\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e二つ目は、「生きるため」に苦痛な仕事をしなくてよくなるからです。\nベーシックインカムの一番の懸念点は、「働かなくなる」ことですが、\nそれはありえません。なぜなら、働くのは楽しいからです。\nそれに、働かなくてもお金がもらえると言っても、\n生活に必要な最低限度のお金です。\n多少苦痛でも、お金に見合った仕事をする人はたくさんいます。\u003c/p\u003e\n\u003cp\u003eまた、ベーシックインカムが実施される場合、\n最低賃金は引き下げられるか、撤廃される可能性もあります。\nその場合、人が集まらないのは、「全く儲からない」か、\n「報酬に見合わないほどの苦痛」かどちらです。\nどちらも社会的にはいらないものです。\u003c/p\u003e\n\u003ch2 id=\"財源は\"\u003e財源は?\u003c/h2\u003e\n\u003cp\u003e財源はちゃんと計算してないのですが、\nそもそもの前提として、「現在の社会保障の置き換え」がある程度発生します。\n生活保護とか、年金がそうです。\n高所得者層にある程度負担してもらうとか\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e、\n相続税を増やすとかいろいろありますが。\u003c/p\u003e\n\u003ch2 id=\"負の所得税\"\u003e負の所得税\u003c/h2\u003e\n\u003cp\u003eベーシックインカムと似て異なる制度に、負の所得税があります。\n事務コストの削減というメリットはないのですが、\n「働いても収入が増えない」という\n生活保護のデメリットを解消する力はあります。\u003c/p\u003e\n\u003cp\u003e一気にベーシックインカムを全面導入するのは難しいので、\n最初は負の所得税や、少額のベーシックインカムを採用しつつ、\n徐々に制度をシンプルにするのが良いんじゃないかなぁと思ってます。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e他の制度をなくすとは言えないと思うので。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e「全員」に支給する以上、税率がそのままだと高所得者層に有利なので。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Docker",
    "url": "https://www.ikemo3.com/manual/docker/",
    "contents": "\u003ch2 id=\"初期設定\"\u003e初期設定\u003c/h2\u003e\n\u003ch3 id=\"centos-7\"\u003eCentOS 7\u003c/h3\u003e\n\u003cp\u003erootユーザ以外で使用したい場合は、以下のようにする。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003e/etc/sysconfig/docker\u003c/code\u003e を開く。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOPTIONS\u003c/code\u003eの最後に\u003ccode\u003e-G dockerroot\u003c/code\u003eを付ける。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-G\u003c/code\u003e: Unixソケットのグループを指定するオプション\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e実行したいユーザを\u003ccode\u003edockerroot\u003c/code\u003eグループに追加する。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"デタッチキーの設定\"\u003eデタッチキーの設定\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.docker.com/engine/reference/commandline/cli/\"\u003eUse the Docker command line | Docker Documentation\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eデフォルトだとCtrl + Pがデタッチキーの一部のため、\n.docker/config.jsonに以下のように記載する。\n(当初はCtrl + Eにしていたが、これもEmacsキーバインドの1つなので)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-json\" data-lang=\"json\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;detachKeys\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;ctrl-\\\\\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"流れ\"\u003e流れ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/pottava/items/452bf80e334bc1fee69a\"\u003e効率的に安全な Dockerfile を作るには - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"イメージ\"\u003eイメージ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eイメージのリスト: \u003ccode\u003edocker images\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eイメージの削除: \u003ccode\u003edocker rmi \u0026lt;IMAGE ID\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"イメージを取得\"\u003eイメージを取得\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eIMAGE_NAME\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003ecentos\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eTAG\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e7\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# タグlatestを取得\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker pull \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eIMAGE_NAME\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# タグを指定して取得\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker pull \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eIMAGE_NAME\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e:\u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eTAG\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"イメージの内容を表示\"\u003eイメージの内容を表示\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.docker.com/engine/reference/commandline/inspect/\"\u003edocker inspect\u003c/a\u003eを使う。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ビルド\"\u003eビルド\u003c/h2\u003e\n\u003cp\u003e最後のドットはカレントディレクトリのことです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eIMAGE_NAME\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003emyimage\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eTAG\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e1.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# タグlatestで作成\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker build -t \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eIMAGE_NAME\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e .\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker build -t myimage .\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e$ タグを指定して\b作成\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker build -t \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eIMAGE_NAME\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e:\u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eTAG\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e .\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker build -t myimage:1.0 .\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cul\u003e\n\u003cli\u003eオプション\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--pull\u003c/code\u003e: 毎回イメージの最新バージョンがあるかどうかを確認する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"コンテナの実行\"\u003eコンテナの実行\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eNAME\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003emycontainer\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eIMAGE_NAME\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003eubuntu\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eTAG\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e18.04\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\bCOMMAND\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e/bin/bash\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# タグlatestを実行\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker run -it --name \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eNAME\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eIMAGE_NAME\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker run -it --name mycontainer ubuntu\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# タグを指定して実行\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker run -it --name \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eNAME\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eIMAGE_NAME\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e:\u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eTAG\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker run -it --nane mycontainer ubuntu:18.04\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# コマンド(CMD)を上書きして実行\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker run -it --name \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eNAME\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eIMAGE_NAME\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eCOMMAND\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker run -it --name mycontainer ubuntu /bin/bash\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cul\u003e\n\u003cli\u003eオプション\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-i\u003c/code\u003e: 標準入力の有効化(端末でないと使えないのに注意)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-d\u003c/code\u003e: バックグラウンドで実行(\u003ccode\u003e--detach\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-t\u003c/code\u003e: 疑似ターミナルの有効化\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-rm\u003c/code\u003e: 終了時に削除\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-e \u0026lt;名前\u0026gt;=\u0026lt;値\u0026gt;\u003c/code\u003e: 環境変数の割り当て\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-v \u0026lt;ホスト側のパス\u0026gt;:\u0026lt;コンテナ側のパス\u0026gt;\u003c/code\u003e: ボリュームを割り当て\n\u003cul\u003e\n\u003cli\u003eホスト側のパスとコンテナ側のパスは両方とも絶対パスの必要があります。\u003c/li\u003e\n\u003cli\u003e相対パスを指定したいとき\n\u003cul\u003e\n\u003cli\u003eファイル名からパス: \u003ccode\u003e$(cd \u0026quot;$(dirname $FILEPATH)\u0026quot;; pwd)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eファイル名のみ: \u003ccode\u003e$(basename $FILEPATH)\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eプロセスリスト: \u003ccode\u003edocker ps\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edocker ps -a\u003c/code\u003e: 停止中のもの合わせて表示\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e入る: \u003ccode\u003edocker exec -i -t \u0026lt;コンテナ名\u0026gt; \u0026lt;コマンド(bashなど)\u0026gt;\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edocker exec -u 0\u003c/code\u003e: rootで入る\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e停止: \u003ccode\u003edocker stop \u0026lt;コンテナ名\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e削除: \u003ccode\u003edocker rm \u0026lt;コンテナ名\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ポート割り当て\"\u003eポート割り当て\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://docs.docker.com/engine/reference/run/#expose-incoming-ports\"\u003eEXPOSE (incoming ports)\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-P\u003c/code\u003e: 自動割り当て\n\u003cul\u003e\n\u003cli\u003eローカル側のポート番号は空いているポートに割り当てられる。どのポート番号に割り当てられたかは、\u003ccode\u003edocker ps\u003c/code\u003eコマンドで確認可能。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-p \u0026lt;ホスト側ポート\u0026gt;:\u0026lt;コンテナ側ポート\u0026gt;\u003c/code\u003e: 手動割り当て\n\u003cul\u003e\n\u003cli\u003eホスト側ポートは\u003ccode\u003e\u0026lt;ホスト側IPアドレス\u0026gt;:\u0026lt;ホスト側ポート\u0026gt;\u003c/code\u003eとすることで、ホスト側のIPアドレスが複数ある場合に割り当てることが可能です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ログ\"\u003eログ\u003c/h2\u003e\n\u003cp\u003e特に\u003ccode\u003e-d\u003c/code\u003e(detached)オプションを使う場合に有効だが、\nそれ以外でも普通に使える。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker logs コンテナID\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"ファイルコピー\"\u003eファイルコピー\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://docs.docker.jp/engine/reference/commandline/cp.html\"\u003ecp — Docker-docs-ja 17.06.Beta ドキュメント\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下のようにする。\nパスに\u003ccode\u003e-\u003c/code\u003eを指定すると、標準入力または標準出力を使用する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker cp コンテナID:パス ローカルパス\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker cp ローカルパス コンテナID:パス\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"永続化\"\u003e永続化\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.docker.com/storage/\"\u003eManage data in Docker | Docker Documentation\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e上の文書によれば、以下の3つが記載されています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eボリューム\u003c/li\u003e\n\u003cli\u003eバインドマウント\u003c/li\u003e\n\u003cli\u003etmpfsマウント\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eData Volume Containerがよく見つかりますが、もういらない子みたいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://02yutori16.blog.fc2.com/blog-entry-85.html\"\u003eデータ・ボリューム・コンテナは不要どころかもう使えない子 - PentiumMノート現役で使い倒した\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ボリューム\"\u003eボリューム\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e作成: \u003ccode\u003edocker volume create ボリューム名\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eリスト: \u003ccode\u003edocker volume ls\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e情報表示: \u003ccode\u003edocker volume inspect ボリューム名\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e削除: \u003ccode\u003edocker volume rm ボリューム名\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e一括削除: \u003ccode\u003edocker volume prune\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eボリュームの格納場所は \u003ccode\u003e/var/lib/docker/volumes/\u0026lt;volume-name\u0026gt;\u003c/code\u003eですが、\nmacOSやWindowsの場合は仮想PC上で動いているため、以下のようにして入る必要があります。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://qiita.com/uni-3/items/9e912d0d8aa87a398cfc\"\u003eDocker for Macのvolumesの場所 - Qiita\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eバックアップが目的なら、以下の方法でも良さそうです。\n要はバックアップ用にコンテナを作ってマウントすると。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/moby/moby/issues/32263\"\u003edocker volume save/load · Issue #32263 · moby/moby\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ネットワーク\"\u003eネットワーク\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDNSサーバを明示的に指定: \u003ccode\u003e--dns=IPアドレス\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"dockerfile\"\u003eDockerfile\u003c/h2\u003e\n\u003ch3 id=\"linter\"\u003eLinter\u003c/h3\u003e\n\u003cp\u003eまだ使ったことないですが、こういうのが便利そう。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goodwithtech/dockle\"\u003egoodwithtech/dockle: Container Image Linter for Security, Helping build the Best-Practice Docker Image, Easy to start\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"レイヤ数は最大127\"\u003eレイヤ数は最大127\u003c/h3\u003e\n\u003cp\u003e例えば、以下のようなRUNの行がたくさんあるDockerfileがあったとします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Dockerfile\" data-lang=\"Dockerfile\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eFROM\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003ecentos:7\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eRUN\u003c/span\u003e dd \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e/dev/urandom of\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e/root/foo bs\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e128\u003c/span\u003e count\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# この行が延々と続く\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこれを実行すると、125回目のRUNで、以下のようなエラーになりました。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emax depth exceeded\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eしかし、ENVではレイヤが作られないため(下記)、\n以下のようなDockerfileではエラーが出ません。\ndocker historyでは出ます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Dockerfile\" data-lang=\"Dockerfile\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eFROM\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003ecentos:7\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eENV\u003c/span\u003e FOO foo \u003cspan style=\"color:#75715e\"\u003e# この行が延々と続く\u003c/span\u003e\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"runはでつなげる\"\u003eRUNは\u0026amp;\u0026amp;でつなげる\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#minimize-the-number-of-layers\"\u003eMinimize the number of layers\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eRUN/COPY/ADDを使うと、レイヤが追加されます。\n特にRUNは分けて書くとレイヤが増えやすいので、\u0026amp;\u0026amp;でつなげるのが基本です。\u003c/p\u003e\n\u003cp\u003eyum/apt-getのように、パッケージをインストールする際は、\n差分を分かりやすくするために、\n1行1パッケージで、アルファベット順に並べると良いです。\u003c/p\u003e\n\u003cp\u003e規約はないようですが、\u003ccode\u003e\u0026amp;\u0026amp;\u003c/code\u003eは行の先頭に付けることが多いようです。\u003c/p\u003e\n\u003ch3 id=\"cmdとentrypointの使い分け\"\u003eCMDとENTRYPOINTの使い分け\u003c/h3\u003e\n\u003cp\u003eENTRYPOINTにメインのコマンドを書いて、\nCMDはオプションとして使うと良いと書かれている\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e例えば、\u003ccode\u003ehugo\u003c/code\u003eコマンドの場合、ヘルプコマンドは\u003ccode\u003e--help\u003c/code\u003eとなるため、\n以下のように指定するとよいかもしれません。\n(この場合引数なしができないっぽいので良くないかも。。。)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Dockerfile\" data-lang=\"Dockerfile\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eENTRYPOINT\u003c/span\u003e [\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;/opt/hugo\u0026#34;\u003c/span\u003e]\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eCMD\u003c/span\u003e [\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;--help\u0026#34;\u003c/span\u003e]\u003cspan style=\"color:#960050;background-color:#1e0010\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"envとargの使い分け\"\u003eENVとARGの使い分け\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.docker.com/engine/reference/builder/#env\"\u003eENV\u003c/a\u003e: 環境変数。Dockerfile以外でも使える。\n\u003cul\u003e\n\u003cli\u003e書式\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eENV \u0026lt;key\u0026gt; \u0026lt;value\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eENV \u0026lt;key1\u0026gt;=\u0026lt;value1\u0026gt; \u0026lt;key2\u0026gt;=\u0026lt;value2\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.docker.com/engine/reference/builder/#arg\"\u003eARG\u003c/a\u003e: ビルド時の変数。Dockerfileのみで使える。\n\u003cul\u003e\n\u003cli\u003e書式\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eARG \u0026lt;name\u0026gt;[=\u0026lt;default value\u0026gt;]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"docker-hubへのpush\"\u003eDocker Hubへのpush\u003c/h2\u003e\n\u003ch3 id=\"自動ビルドの場合\"\u003e自動ビルドの場合\u003c/h3\u003e\n\u003cp\u003e事前準備として、GitHubまたはBitBucketと連携しておく。\n連携および作成手順は簡単なので省略。\u003c/p\u003e\n\u003cp\u003eただし、初回ビルドは自動で行われないので、以下のようにする。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eリポジトリを選択\u003c/li\u003e\n\u003cli\u003eBuild Settingsタブを開く\u003c/li\u003e\n\u003cli\u003e対象ブランチのTriggerボタンをクリックする。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"手動でpushする場合\"\u003e手動でpushする場合\u003c/h3\u003e\n\u003cp\u003e事前準備として、アカウントを作成する。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eDocker Hubでリポジトリを作成する。\u003c/li\u003e\n\u003cli\u003eタグを作成する。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edocker tag 元のイメージ名[:タグ] リポジトリのイメージ名[:タグ]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e元のイメージ名は\u003ccode\u003edocker images\u003c/code\u003eで出てくるREPOSITORY\u003c/li\u003e\n\u003cli\u003eリポジトリのイメージ名は作成したもの。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eログインする。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edocker login\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eプロンプトでユーザ名、パスワードを入力する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eプッシュする。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edocker push リポジトリのイメージ名\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"docker-compose\"\u003eDocker Compose\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.docker.com/compose/compose-file/\"\u003eCompose file version 3 reference | Docker Documentation\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下で確認している。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDocker 18.03.1-ce\u003c/li\u003e\n\u003cli\u003edocker-compose 1.21.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"概要\"\u003e概要\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eファイル名はdocker-compose.yml。YAMLで定義する。\n\u003cul\u003e\n\u003cli\u003edocker-compose.override.yml というファイルで上書き定義が可能。一時的に環境変数を変更するなど。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/urouro_net/items/6a026eb635cc7d0e034f\"\u003eチームの docker-compose.yml をローカルでだけ上書きしたい - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eトップレベルには以下の4つが定義できる。\n\u003cul\u003e\n\u003cli\u003eversion(文字列): \u0026lsquo;3\u0026rsquo;とか'3.6\u0026rsquo;とかのファイルフォーマットを指定\u003c/li\u003e\n\u003cli\u003eservices: コンテナのこと。\u003c/li\u003e\n\u003cli\u003enetworks: ネットワーク\u003c/li\u003e\n\u003cli\u003evolumes: ボリューム\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"services\"\u003eservices\u003c/h3\u003e\n\u003cp\u003eハッシュで定義する。キーがサービス名。\n指定可能なものの例。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: ビルド情報。ハッシュか、単なる文字列か。文字列の場合はcontextになる。\n\u003cul\u003e\n\u003cli\u003e例: \u003ccode\u003ebuild: .\u003c/code\u003e → \u003ccode\u003edocker build .\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003econtext: ビルドするパス\u003c/li\u003e\n\u003cli\u003edockerfile: Dockerfileのファイル名\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eimage: ビルドするイメージの名前\u003c/li\u003e\n\u003cli\u003econtainer_name: コンテナ名\u003c/li\u003e\n\u003cli\u003edepends_on: サービスの依存関係\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.docker.com/compose/compose-file/#depends_on\"\u003ehttps://docs.docker.com/compose/compose-file/#depends_on\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eサービスの起動順番は制御できるが、サービスがReadyになったかどうかは制御できない(ラッパーが必要)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eports(Array): \u003ccode\u003e-p\u003c/code\u003e オプションと同じ\u003c/li\u003e\n\u003cli\u003evolumes(Array): \u003ccode\u003e-v\u003c/code\u003e オプションと同じ\u003c/li\u003e\n\u003cli\u003eenvironment(Hash): \u003ccode\u003e-e\u003c/code\u003e オプションと同じ\u003c/li\u003e\n\u003cli\u003elinks: サービスをリンクする\n\u003cul\u003e\n\u003cli\u003eレガシー機能らしい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"起動順番を制御\"\u003e起動順番を制御\u003c/h3\u003e\n\u003cp\u003e例えば、Webを起動するときに先にDBが起動していることを保証したい場合。\u003c/p\u003e\n\u003cp\u003e以下のように、Web側に \u003ccode\u003ewait-for-it\u003c/code\u003e を入れて、待機させる。\nなお、この \u003ccode\u003ewait-for-it\u003c/code\u003e はDebianパッケージがある(README.mdに記載されている)。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.docker.com/compose/startup-order/\"\u003eControl startup and shutdown order in Compose | Docker Documentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vishnubob/wait-for-it\"\u003evishnubob/wait-for-it: Pure bash script to test and wait on the availability of a TCP host and port\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"コマンドがない場合の対応\"\u003eコマンドがない場合の対応\u003c/h2\u003e\n\u003ch3 id=\"psコマンド\"\u003epsコマンド\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUbuntu: procps, iputils-ping, net-tools\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/manabuishiirb/items/26de8c9740a1d2c7cfdd\"\u003edocker イメージの中にpingとかないとき - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://blog.pinkumohikan.com/entry/install-ps-command-to-debian\"\u003eDockerHubのnginx:latestイメージでpsコマンド叩いたら「そんなもの無い」って言われたのでインストールする - モヒカンメモ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eCentOS: procps-ng\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/kammy1231/items/6ad8a016e7c4f3d6f70a\"\u003epsコマンドのインストール方法 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"nodejs\"\u003eNode.js\u003c/h2\u003e\n\u003cp\u003eまだまとまってないのでリンクだけ。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e公式イメージ\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://hub.docker.com/_/node/\"\u003elibrary/node - Docker Hub\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nodejs/docker-node\"\u003enodejs/docker-node: Official Docker Image for Node.js\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nodejs/docker-node/blob/master/docs/BestPractices.md\"\u003eベストプラクティス\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"コンテナレジストリ\"\u003eコンテナレジストリ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e公式: \u003ca href=\"https://hub.docker.com/search?q=\"\u003eExplore Docker\u0026rsquo;s Container Image Repository | Docker Hub\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAWS: \u003ca href=\"https://gallery.ecr.aws/docker/\"\u003eDocker\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://docs.docker.com/engine/reference/commandline/dockerd/\"\u003edockerd | Docker Documentation\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#entrypoint\"\u003eBest practices for writing Dockerfiles | Docker Documentation\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Document Object Model(DOM)",
    "url": "https://www.ikemo3.com/dic/dom/",
    "contents": "\u003ch2 id=\"document-object-modeldomとは\"\u003eDocument Object Model(DOM)とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/html/\"\u003eHTML\u003c/a\u003eや\u003ca href=\"/dic/xml/\"\u003eXML\u003c/a\u003eを扱うためのインタフェースです。\u003c/p\u003e\n\u003ch2 id=\"基本的な用語\"\u003e基本的な用語\u003c/h2\u003e\n\u003cp\u003eざっくりとした説明。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNode: 英語では「節点」など。以下のものを全て含む抽象的な概念。\n\u003cul\u003e\n\u003cli\u003eDocument: XML/HTMLドキュメント自体を表すもの\u003c/li\u003e\n\u003cli\u003eElement: \u003ccode\u003e\u0026lt;foo\u0026gt;\u003c/code\u003eのようなタグで囲まれた要素\u003c/li\u003e\n\u003cli\u003eCharacterData: 文字、文字列\n\u003cul\u003e\n\u003cli\u003eText: テキスト\u003c/li\u003e\n\u003cli\u003eComment: コメント(\u003ccode\u003e\u0026lt;!--\u003c/code\u003e 〜 \u003ccode\u003e--\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCDATASection: CDATAセクション(\u003ccode\u003e\u0026lt;![CDATA[\u003c/code\u003e 〜 \u003ccode\u003e]]\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eProcessingInstruction: 処理命令(\u003ccode\u003e\u0026lt;?\u003c/code\u003e 〜 \u003ccode\u003e?\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocumentFragment: ドキュメントの断片\u003c/li\u003e\n\u003cli\u003eDocumentType: DOCTYPE宣言(\u003ccode\u003e\u0026lt;!DOCTYPE ...\u0026gt;\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eその他Notation, Entity, EntityReferenceがありますが、\nDTDを表すもので、もはや使うこともない(使ったこともない)ので略。\u003c/p\u003e\n\u003cp\u003eProcessingIntstruction, CDATASectionはXMLを使うときには\n意識することがありますが、HTMLでは不要でしょう。\nAttrも意識することはないでしょう。\u003c/p\u003e\n"
  }, 
  {
    "title": "Jenkins: Multibranchで古いビルドの手動削除",
    "url": "https://www.ikemo3.com/inverted/jenkins/remove-old-build/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eJenkinsのMultibranchで、古いビルドを手動削除する方法です。\n少し古いバージョン使ってるので、最新版で直るかもしませんが。。。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eJenkins 2.79\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eスクリプトコンソールを使用します。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e「Jenkinsの管理」に移動\u003c/li\u003e\n\u003cli\u003e「スクリプトコンソール」に移動\u003c/li\u003e\n\u003cli\u003e以下のスクリプトを流す。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eprintln(Jenkins.instance.getItemByFullName('job/branch').builds)\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e以下のスクリプトを流す。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eJenkins.instance.getItemByFullName('job/branch').builds.findAll { it.number \u0026gt;= 1 \u0026amp;\u0026amp; it.number \u0026lt;= 100 }.each { it.delete() }\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n"
  }, 
  {
    "title": "Jenkins: 初期設定",
    "url": "https://www.ikemo3.com/inverted/jenkins/initial/",
    "contents": "\u003ch2 id=\"初期パスワードの場所\"\u003e初期パスワードの場所\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e$JENKINS_HOME/secrets/initialAdminPassword\u003c/code\u003eにある。\nDockerの場合は \u003ccode\u003e/var/jenkins_home\u003c/code\u003e 以下。\u003c/p\u003e\n\u003ch2 id=\"jdk\"\u003eJDK\u003c/h2\u003e\n\u003ch3 id=\"guiでの設定場所\"\u003eGUIでの設定場所\u003c/h3\u003e\n\u003cp\u003eJenkinsの管理→Global Tool Configuration\u003c/p\u003e\n\u003ch3 id=\"groovyでの設定\"\u003eGroovyでの設定\u003c/h3\u003e\n\u003cp\u003eスクリプトコンソールなどでは以下のようにできます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-groovy\" data-lang=\"groovy\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e jenkins.model.*\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e hudson.model.*\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eJenkins\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003einstance\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003esetJDKs\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e([\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e JDK\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;JDK 8\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;/opt/jdk8\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e)])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"maven\"\u003eMaven\u003c/h2\u003e\n\u003ch3 id=\"groovyでの設定-1\"\u003eGroovyでの設定\u003c/h3\u003e\n\u003cp\u003eスクリプトコンソールなどでは以下のようにできます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-groovy\" data-lang=\"groovy\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e jenkins.model.*\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e hudson.tasks.*\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e mvnDescriptor \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e Jenkins\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003einstance\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003egetDescriptor\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003eMaven\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003emvnDescriptor\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003esetInstallations\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Maven\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003eMavenInstallation\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;3.3.9\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;/opt/apache-maven-3.3.9\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Vagrant Boxの作成",
    "url": "https://www.ikemo3.com/inverted/vagrant/create-box/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eVagrant Boxをゼロから作成します。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e以下で動作確認しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVagrant 1.9.3(Mac)\u003c/li\u003e\n\u003cli\u003eVirtualBox 5.1.22(Mac)\u003c/li\u003e\n\u003cli\u003eCentOS-7-x86_64-Minimal-1708.iso\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n\u003cp\u003eVirtualBox Guest Additionsを入れていないため、\n共有フォルダの設定があると、エラーになります。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e【注意】以下の手順だとネットワーク周りがおかしいです。\n何か手順漏れっぽいですね。。。あとで追記します。\u003c/p\u003e\n\u003ch3 id=\"osのインストールまで\"\u003eOSのインストールまで\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eVMの作成\n\u003col\u003e\n\u003cli\u003eVirtualBoxを起動(libvirtではダメかも?\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e)\u003c/li\u003e\n\u003cli\u003e「New」ボタンを押す\u003c/li\u003e\n\u003cli\u003e以下のように入力\n\u003cul\u003e\n\u003cli\u003eName: Vagrant\u003c/li\u003e\n\u003cli\u003eType: Linux\u003c/li\u003e\n\u003cli\u003eVersion: Red Hat (64bit)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eメモリはデフォルト(1024MB)\u003c/li\u003e\n\u003cli\u003eディスク設定\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eCreate a virtual hard disk now\u003c/code\u003eを選択\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCreate\u003c/code\u003eボタンを押す\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHard disk file type: \u003ccode\u003eVDI (VirtualBox Disk Image)\u003c/code\u003eを選択\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDynamically allocated\u003c/code\u003eを選択\u003c/li\u003e\n\u003cli\u003eサイズを設定(例: 50GB)\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003eディスクイメージの設定\n\u003col\u003e\n\u003cli\u003eSettingsを選択\u003c/li\u003e\n\u003cli\u003eStorageを選択\u003c/li\u003e\n\u003cli\u003eController: IDEのAttributesのOptical Driveの右側のアイコンをクリック\u003c/li\u003e\n\u003cli\u003eChoose Virtual Optical Disk File\u0026hellip;を選択\u003c/li\u003e\n\u003cli\u003eISOイメージを選択\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003eCentOSのインストール\n\u003cul\u003e\n\u003cli\u003eネットワークとホスト名を開いて、「オン」にする。\u003c/li\u003e\n\u003cli\u003erootのパスワードは\u003ccode\u003evagrant\u003c/code\u003eにすること\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eyum update\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"vagrant固有の設定について\"\u003eVagrant固有の設定について\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.vagrantup.com/docs/boxes/base.html#default-user-settings\"\u003eDefault User Settings\u003c/a\u003eの内容を設定します。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003euseradd vagrant\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho -n vagrant | passwd --stdin vagrant\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eecho 'vagrant ALL=(ALL) NOPASSWD: ALL' \u0026gt; /etc/sudoers.d/vagrant\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esu - vagrant\u003c/code\u003eして、以下の作業を行う。\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003emkdir ~/.ssh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003echmod 0700 ~/.ssh\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecurl -o ~/.ssh/authorized_keys https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003echmod 0600 ~/.ssh/authorized_keys \u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"vagrant-boxの作成\"\u003eVagrant Boxの作成\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003evagrant package --base Vagrant\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"動作確認\"\u003e動作確認\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003evagrant box add --name my-centos7 package.box\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evagrant box list\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e適当な空ディレクトリを作成\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evagrant init my-centos7\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evagrant up\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evagrant ssh\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/vagrant-libvirt/vagrant-libvirt/issues/748\"\u003ePackage for libvirt · Issue #748 · vagrant-libvirt/vagrant-libvirt\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.vagrantup.com/docs/boxes/base.html#root-password-quot-vagrant-quot-\"\u003ehttps://www.vagrantup.com/docs/boxes/base.html#root-password-quot-vagrant-quot-\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "GitHub",
    "url": "https://www.ikemo3.com/dic/github/",
    "contents": "\u003ch2 id=\"githubとは\"\u003eGitHubとは\u003c/h2\u003e\n\u003cp\u003eGitのホスティングサービスです。\u003c/p\u003e\n\u003ch2 id=\"oss開発のデファクトスタンダード\"\u003eOSS開発のデファクトスタンダード\u003c/h2\u003e\n\u003cp\u003eGitのホスティングサービスは他にもありますが、\n\u003ca href=\"/dic/oss/\"\u003eOSS\u003c/a\u003eなものはデファクトスタンダードと言っていいくらいここに集まってます。\nなので、新規にライブラリを探すときは、まずGitHubを探します。\u003c/p\u003e\n\u003ch2 id=\"microsoftによる買収\"\u003eMicrosoftによる買収\u003c/h2\u003e\n\u003cp\u003e個人的にはGitHubは中立地帯の方が良かったかなぁと思いますが(営利企業ですが)、\nMicrosoftはGit好き過ぎてWindowsにGit採用するために\nファイルシステム作るくらいなんで、ある意味笑えました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.infoq.com/jp/news/2017/02/GVFS\"\u003e大規模リポジトリの問題を解決するGit Virtual File System\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://ascii.jp/elem/000/001/688/1688374/\"\u003eASCII.jp：「MSはマイクラもLinkedInも大事にしている。だから買収に合意した」GitHubのCEO\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "HTML5",
    "url": "https://www.ikemo3.com/dic/html5/",
    "contents": "\u003ch2 id=\"html5とは\"\u003eHTML5とは\u003c/h2\u003e\n\u003cp\u003eHTMLの最新版です。\u003c/p\u003e\n\u003ch2 id=\"パーサの仕様を定義\"\u003eパーサの仕様を定義\u003c/h2\u003e\n\u003cp\u003eブラウザの互換性を妨げるものとして、\n「HTMLとして不正だが、IEのパーサがゆるく解釈してくれるため、IEでしか表示されない」\nという問題がありましたが、パーサの仕様を厳密に定義することにより、\nその問題を(ほぼ?)解決しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://html.spec.whatwg.org/multipage/parsing.html\"\u003eHTML Standard\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.publickey1.jp/blog/10/html5_5.html\"\u003eHTML5ではパーサの動作も仕様に明記。ブラウザ間の互換性が高くなる！ － Publickey\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"xhtmlは\"\u003eXHTMLは?\u003c/h2\u003e\n\u003cp\u003e元々HTMLとXHTMLはそんなに違いがないので、HTML5になっても基本的には変わりません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eContent-Typeは \u003ccode\u003eapplication/xhtml+xml\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003etext/html\u003c/code\u003eとしたときに、XHTMLというのはダメみたいです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eNamespace宣言を追加する。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elang\u003c/code\u003e→\u003ccode\u003exml:lang\u003c/code\u003eにする\u003c/li\u003e\n\u003cli\u003eその他、XMLとして整形式にする\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eContent-Typeの仕様があるので、XMLとして処理したい場合を除いて、\nXHTMLで書く理由はないように見えますね。。。\u003c/p\u003e\n"
  }, 
  {
    "title": "Referer",
    "url": "https://www.ikemo3.com/dic/referer/",
    "contents": "\u003ch2 id=\"refererとは\"\u003eRefererとは\u003c/h2\u003e\n\u003cp\u003eHTTPヘッダの1つで、リンク元を示すためのものです。\n英単語としては\u003ccode\u003ereferrer\u003c/code\u003eが正しいですが、\nHTTPヘッダとしては、歴史的な経緯により、\nミススペルである\u003ccode\u003ereferer\u003c/code\u003eが定着しています。\nただし、以下のように、新規に策定されるものは、正しいスペルになっています。\u003c/p\u003e\n\u003ch2 id=\"referrer-policy\"\u003eReferrer-Policy\u003c/h2\u003e\n\u003cp\u003eプライバシーの理由により、参照元を出したくない場合があります\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\nそういうときにサーバ側で制御を行うのが、\u003ccode\u003eReferrer-Policy\u003c/code\u003eヘッダです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eセッションIDなど、セキュリティ的に漏れてはいけない情報はそもそもGETで渡すべきではないので、セキュリティ的な理由はないはず。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "オンラインストレージ",
    "url": "https://www.ikemo3.com/dic/online-storage/",
    "contents": "\u003ch2 id=\"オンラインストレージとは\"\u003eオンラインストレージとは\u003c/h2\u003e\n\u003cp\u003eネットの向こうにファイルを保存するサービスです。\n「クラウドストレージ」と呼ばれることもあります。\u003c/p\u003e\n\u003ch2 id=\"容量無制限はありえない\"\u003e「容量無制限」はありえない\u003c/h2\u003e\n\u003cp\u003eオンラインストレージは、\nあくまでネットの向こう側にあるだけで、\n記録されるときは、HDDやSSDを使います。\nそのため、大量のファイルを使うにはお金がかかります。\u003c/p\u003e\n\u003cp\u003e数多くのサービスが容量無制限を宣伝してきましたが、\n次々と終了しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://pronama.azurewebsites.net/2015/11/03/unlimited-online-storage/\"\u003e終了した容量無制限オンラインストレージサービスまとめ – プログラミング生放送\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e容量無制限のままのサービスもありますが、以下のどちらかです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eオンラインストレージとしては制限が多い(例: \u003ca href=\"/dic/backblaze\"\u003eBackblaze\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e利用規約で過剰な量の仕様を禁止している(例: Box\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eもっとも、\u003ca href=\"https://www.dropbox.com/ja/help/billing/cost\"\u003eDropbox\u003c/a\u003eの有料プランは1TBあるので、\n普通の使い方をしている人なら問題ないと思います。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.box.com/ja-jp/legal/termsofservice\"\u003eBox サービス利用規約\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "早すぎる最適化",
    "url": "https://www.ikemo3.com/dic/premature-optimization/",
    "contents": "\u003ch2 id=\"早すぎる最適化とは\"\u003e早すぎる最適化とは\u003c/h2\u003e\n\u003cp\u003e諸悪の根源です。\u003c/p\u003e\n\u003cp\u003e元は、ドナルド・クヌース先生の有名な格言「早すぎる最適化は諸悪の根源」です。\nWikiquoteには以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003epremature optimization is the root of all evil (or at least most of it) in programming.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"アンチパターン\"\u003eアンチパターン\u003c/h2\u003e\n\u003cp\u003eこれはもちろんアンチパターンです。\u003c/p\u003e\n\u003cp\u003eなぜかというと、ほとんどのシステムでは、\n「コンピュータのコスト」より、「人のコスト」の方が圧倒的に高いからです。\n最初のうちは\u003ca href=\"/dic/fugouteki-programming/\"\u003e富豪的プログラミング\u003c/a\u003eでやって、\nもし処理速度やメモリ利用率に問題がある、\nあるいは最適化をする余裕ができてから取り掛かるのがよいです。\u003c/p\u003e\n\u003cp\u003eもちろん最適化は当てずっぽうではなく、\nちゃんとプロファイラを使って行うべきです。\u003c/p\u003e\n"
  }, 
  {
    "title": "CPU",
    "url": "https://www.ikemo3.com/tags/cpu/",
    "contents": ""
  }, 
  {
    "title": "esa",
    "url": "https://www.ikemo3.com/dic/esa/",
    "contents": "\u003ch2 id=\"esaとは\"\u003eesaとは\u003c/h2\u003e\n\u003cp\u003eドキュメント共有サービスです。\u003c/p\u003e\n\u003ch2 id=\"1人esa\"\u003e1人esa\u003c/h2\u003e\n\u003cp\u003eこの手のサービスは5人以上とかのケースが多いのですが、\nesaは1人500円/月というシンプルな料金体系なので、\n1人でも使うことができます。\u003c/p\u003e\n"
  }, 
  {
    "title": "JAX-RS",
    "url": "https://www.ikemo3.com/dic/jax-rs/",
    "contents": "\u003ch2 id=\"jax-rsとは\"\u003eJAX-RSとは\u003c/h2\u003e\n\u003cp\u003eJavaのWebサービス用APIです。\u003c/p\u003e\n\u003ch2 id=\"javaにしては仕様がシンプル\"\u003e(Javaにしては)仕様がシンプル\u003c/h2\u003e\n\u003cp\u003eJavaのAPIは仕様が複雑で微妙なものが多いのですが\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\nJAX-RSは仕様もシンプルです。\n仕様書をダウンロードしてざっと読めるくらいの分量です。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e「抽象化」のために仕様が複雑になっているのはいいですが、使えないAPIは本当に困ります。。。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Wikipedia",
    "url": "https://www.ikemo3.com/dic/wikipedia/",
    "contents": "\u003ch2 id=\"wikipediaとは\"\u003eWikipediaとは\u003c/h2\u003e\n\u003cp\u003eオンライン百科事典です。\u003c/p\u003e\n\u003ch2 id=\"日本語版は酷い\"\u003e日本語版は酷い\u003c/h2\u003e\n\u003cp\u003e英語版はまあそうでもないかなと思うんですが、\n日本語版はちょっとありえないレベルで酷いです。\n例えばある人物\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eの関連情報がこんな感じになっています。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://gyazo.com/cc13cc51a095e3a0ea4d932ad3f24404\"\u003e\u003cimg src=\"https://i.gyazo.com/cc13cc51a095e3a0ea4d932ad3f24404.png\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eこういうのは直せばいいと言われそうですが、\nそのためにアカウント取るのも嫌だし、IPアドレスが記録されるのも嫌だし\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e、\n何より、こういうことを書く人とまともに話ができるはずがないので\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e、\nもう無視しています。\u003c/p\u003e\n\u003ch2 id=\"このサイトでの扱い\"\u003eこのサイトでの扱い\u003c/h2\u003e\n\u003cp\u003eこのサイトでもWikipediaにリンクしているケースもありますが、\n一応、「ある程度は問題ないだろう」とは確認しています。\nしかし、今後は減らしていきたいです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eクリックすれば誰かは分かります。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e固定IPアドレスなので。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e「全体主義かつリバタリアン」というのが矛盾していると言って聞いてくれる人だったらこんなことはないんですけどね。。。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "飲み会",
    "url": "https://www.ikemo3.com/dic/nomikai/",
    "contents": "\u003ch2 id=\"飲み会とは\"\u003e飲み会とは\u003c/h2\u003e\n\u003cp\u003eみんなで飯食ったり飲んだりすることです。\u003c/p\u003e\n\u003ch2 id=\"幹事はつらい\"\u003e幹事はつらい\u003c/h2\u003e\n\u003cp\u003e飲み会の幹事は\u003ca href=\"/dic/ibm-japan/\"\u003e日本IBM\u003c/a\u003eに入社した直後に1度だけやったんですが、\n正直やりたくないものの1つですね\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n以下の理由で、新人にやらせるのは酷だと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e新人なので、周りにどんな店があるか分からない。\u003c/li\u003e\n\u003cli\u003e新人なので、去年行った店が分からない。\u003c/li\u003e\n\u003cli\u003e新人なので、段取りが分からない\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e面白いなと思ったのは、飲み会の幹事はマネージャがやるべきという話があります\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\n偉い人が「自分がこれ食いたいから店はここ。お金は会社からでるぞー」というのは\n結構楽しそうな気もします。\nやりたい人がいれば別ですが、この提案はいいですね。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e今から考えたら嫌だったなぁというだけで、今更どうこう言うつもりはないですが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e学生のときにやってた人は別ですが。その意味では、新入生にやらせるのも同じ問題があります。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"http://nabokov.blog.jp/archives/1108176.html\"\u003enabokov7; rehash : 【忘年会シーズン向け】飲み会の幹事は新入りじゃなくてマネージャーの仕事ですよ\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "活蔘",
    "url": "https://www.ikemo3.com/dic/katsujin/",
    "contents": "\u003ch2 id=\"活蔘とは\"\u003e活蔘とは\u003c/h2\u003e\n\u003cp\u003e栄養ドリンクの1つです。\u003c/p\u003e\n\u003ch2 id=\"風邪にも効く\"\u003e風邪にも効く\u003c/h2\u003e\n\u003cp\u003eレディ薬局で勧められてから愛用しているのですが、風邪にも効きます。\n風邪に効くといってもウイルスをやっつけるのではなく、\n抵抗力を上げる力が強いんじゃないかなと。\u003c/p\u003e\n\u003ch2 id=\"効果を考えると安い\"\u003e効果を考えると安い\u003c/h2\u003e\n\u003cp\u003e活蔘28は10本で4000円くらいで買えます\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n体感的に、これより効果が高いのは、ユンケルの上位クラスくらいです。\nこれで1本400円というのはかなりいいです。\u003c/p\u003e\n\u003ch2 id=\"取扱店舗が少ない\"\u003e取扱店舗が少ない\u003c/h2\u003e\n\u003cp\u003eですが、取扱店舗は少ないです。\n愛媛県だとレディ薬局のみです。\u003c/p\u003e\n\u003cp\u003e売っている店を見つけたら追加していきます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eレディ薬局\u003c/li\u003e\n\u003cli\u003eコクミンドラッグ\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"成分\"\u003e成分\u003c/h2\u003e\n\u003cp\u003e検索方法\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://www.pmda.go.jp/\"\u003e独立行政法人 医薬品医療機器総合機構\u003c/a\u003eに移動\u003c/li\u003e\n\u003cli\u003e「一般用・要指導医薬品」をクリック\u003c/li\u003e\n\u003cli\u003e「販売名」を入力して「検索」をクリック\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e分類は以下のサイトによるものです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.hal.msn.to/kankaisetu/chuyaku-ichiran.html\"\u003e漢方・中医学用語説明（生薬）中薬一覧\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e\u003c/th\u003e\n          \u003cth\u003e分類\u003c/th\u003e\n          \u003cth\u003e効能\u003c/th\u003e\n          \u003cth\u003e\u003ca href=\"http://www.pmda.go.jp/PmdaSearch/otcDetail/370060_J0601005126_04_01\"\u003e活蔘28\u003c/a\u003e\u003c/th\u003e\n          \u003cth\u003e\u003ca href=\"http://www.pmda.go.jp/PmdaSearch/otcDetail/370060_K1606000008_02_01\"\u003e活蔘28V\u003c/a\u003e\u003c/th\u003e\n          \u003cth\u003e\u003ca href=\"http://www.pmda.go.jp/PmdaSearch/otcDetail/370060_J0901000009_04_01\"\u003e活蔘28ROYAL\u003c/a\u003e\u003c/th\u003e\n          \u003cth\u003e\u003ca href=\"http://www.pmda.go.jp/PmdaSearch/otcDetail/370060_J0901000010_04_01\"\u003e活蔘力\u003c/a\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"http://www.snowden.co.jp/koujin/\"\u003eコウジン\u003c/a\u003e(ニンジン)エキス\u003c/td\u003e\n          \u003ctd\u003e補気薬\u003c/td\u003e\n          \u003ctd\u003e強壮など\u003c/td\u003e\n          \u003ctd\u003e600.0mg\u003c/td\u003e\n          \u003ctd\u003e750.0mg\u003c/td\u003e\n          \u003ctd\u003e1500.0mg\u003c/td\u003e\n          \u003ctd\u003e600.0mg\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://www.yunker.jp/syoyaku/ss03/\"\u003eオウギ\u003c/a\u003eエキス(黄耆)\u003c/td\u003e\n          \u003ctd\u003e補気薬\u003c/td\u003e\n          \u003ctd\u003e利尿、血圧降下など\u003c/td\u003e\n          \u003ctd\u003e35.7mg\u003c/td\u003e\n          \u003ctd\u003e35.7mg\u003c/td\u003e\n          \u003ctd\u003e428.6mg\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://www.yunker.jp/syoyaku/ss36/\"\u003eショウキョウ\u003c/a\u003eエキス(生姜)\u003c/td\u003e\n          \u003ctd\u003e辛温解表剤\u003c/td\u003e\n          \u003ctd\u003e冷え性、健胃など\u003c/td\u003e\n          \u003ctd\u003e41.0mg\u003c/td\u003e\n          \u003ctd\u003e41.0mg\u003c/td\u003e\n          \u003ctd\u003e20.5mg\u003c/td\u003e\n          \u003ctd\u003e50.0mg\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://www.yunker.jp/syoyaku/ss11/\"\u003eゴミシ\u003c/a\u003eエキス(五味子)\u003c/td\u003e\n          \u003ctd\u003e収渋薬\u003c/td\u003e\n          \u003ctd\u003e滋養強壮、鎮咳など\u003c/td\u003e\n          \u003ctd\u003e105.3mg\u003c/td\u003e\n          \u003ctd\u003e105.3mg\u003c/td\u003e\n          \u003ctd\u003e157.9mg\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://www.yunker.jp/syoyaku/ss09/\"\u003eクコシ\u003c/a\u003eエキス(枸杞子)\u003c/td\u003e\n          \u003ctd\u003e補陰薬\u003c/td\u003e\n          \u003ctd\u003eめまい、血圧など\u003c/td\u003e\n          \u003ctd\u003e111.1mg\u003c/td\u003e\n          \u003ctd\u003e111.1mg\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e110mg\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://www.yunker.jp/syoyaku/ss19/\"\u003eタイソウ\u003c/a\u003eエキス(大棗)\u003c/td\u003e\n          \u003ctd\u003e補気薬\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e357.1mg\u003c/td\u003e\n          \u003ctd\u003e357.1mg\u003c/td\u003e\n          \u003ctd\u003e476.2mg\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eロクジョウチンキ(鹿茸)\u003c/td\u003e\n          \u003ctd\u003e補陽薬\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e0.05mL\u003c/td\u003e\n          \u003ctd\u003e0.05mL\u003c/td\u003e\n          \u003ctd\u003e0.105mL\u003c/td\u003e\n          \u003ctd\u003e0.03mL\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://www.yunker.jp/syoyaku/sd05/\"\u003eローヤルゼリー\u003c/a\u003e\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e食欲不振など\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e100.0mg\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://www.yunker.jp/syoyaku/ss04/\"\u003eオウセイ\u003c/a\u003eエキス(黄精)\u003c/td\u003e\n          \u003ctd\u003e補陰薬\u003c/td\u003e\n          \u003ctd\u003e血圧など\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e45.5mg\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"https://www.yunker.jp/syoyaku/ss30/\"\u003eリュウガンニク\u003c/a\u003eエキス(竜眼肉)\u003c/td\u003e\n          \u003ctd\u003e補血薬\u003c/td\u003e\n          \u003ctd\u003e鎮静など\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e30.3mg\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eトウキエキス(当帰)\u003c/td\u003e\n          \u003ctd\u003e補血薬\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e20.0mg\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eリボフラビンリン酸エステルナトリウム\u003c/td\u003e\n          \u003ctd\u003eビタミンB2\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e5.0mg\u003c/td\u003e\n          \u003ctd\u003e5.0mg\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eピリドキシン塩酸塩\u003c/td\u003e\n          \u003ctd\u003eビタミンB6\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e10.0mg\u003c/td\u003e\n          \u003ctd\u003e10.0mg\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e10.0mg\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eニコチン酸アミド\u003c/td\u003e\n          \u003ctd\u003eビタミンB3\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e25.0mg\u003c/td\u003e\n          \u003ctd\u003e25.0mg\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e無水カフェイン\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e50.0mg\u003c/td\u003e\n          \u003ctd\u003e50.0mg\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eアミノエチルスルホン酸(タウリン)\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e500.0mg\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eケイヒ末(桂皮)\u003c/td\u003e\n          \u003ctd\u003e辛温解表剤\u003c/td\u003e\n          \u003ctd\u003e\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e-\u003c/td\u003e\n          \u003ctd\u003e50mg\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eレディ薬局の実売価格より。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "統合開発環境",
    "url": "https://www.ikemo3.com/tags/ide/",
    "contents": ""
  }, 
  {
    "title": "Amazon EC2",
    "url": "https://www.ikemo3.com/dic/ec2/",
    "contents": "\u003ch2 id=\"amazon-ec2とは\"\u003eAmazon EC2とは\u003c/h2\u003e\n\u003cp\u003eAmazon Web Services(AWS)のうち、\n仮想サーバのことを指します。\u003c/p\u003e\n\u003ch2 id=\"インスタンス\"\u003eインスタンス\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e汎用\n\u003cul\u003e\n\u003cli\u003eT2: Web、開発、ビルドなど\n\u003cul\u003e\n\u003cli\u003eCPU高め\u003c/li\u003e\n\u003cli\u003eネットワーキングパフォーマンスが低め\u003c/li\u003e\n\u003cli\u003eA1(ARM)もこのへん\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eM4, M5: DBなどメモリ中心\n\u003cul\u003e\n\u003cli\u003eM5a: AMD EPYCプロセッサ搭載。10%ほど安い。\u003c/li\u003e\n\u003cli\u003eM5d: NVMe SSDローカルストレージ搭載。ただしローカルストレージなので再起動で消える。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eコンピューティング最適化: C5, C4\u003c/li\u003e\n\u003cli\u003eメモリ最適化: x1e, X1, R4\u003c/li\u003e\n\u003cli\u003e高速コンピューティング(GPU): P3\u003c/li\u003e\n\u003cli\u003eストレージ最適化: H1, I3, D2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ストレージ\"\u003eストレージ\u003c/h2\u003e\n\u003cp\u003eルートボリュームはEBSとインスタンスストアが使えると説明がある\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\nしかし、インスタンスストアを選択する方法が不明。\nまあ、EBS推奨なので、考えなくてもいいかも。\u003c/p\u003e\n\u003ch2 id=\"ネットワーク\"\u003eネットワーク\u003c/h2\u003e\n\u003cp\u003eグローバルの場合はElastic IPを使う。\nプライベートの場合はサブネットを明示的に指定すると、IPアドレスが設定可能。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/RootDeviceStorage.html\"\u003eAmazon EC2 ルートデバイスボリューム - Amazon Elastic Compute Cloud\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Gradle",
    "url": "https://www.ikemo3.com/dic/gradle/",
    "contents": "\u003ch2 id=\"gradleとは\"\u003eGradleとは\u003c/h2\u003e\n\u003cp\u003eビルドを行うためのツールです。\u003c/p\u003e\n\u003ch2 id=\"3回くらい挫折継続中\"\u003e3回くらい挫折(継続中)\u003c/h2\u003e\n\u003cp\u003e[Groovy][]という言語を元に作られているのですが、\n文法がさっぱり理解できませんでした。\n最初は、[Groovy][]をよく知らないからかなぁと思ったのですが、\n同じように[Groovy][]を採用している\u003ca href=\"/dic/jenkins/\"\u003eJenkins\u003c/a\u003e(Jenkinsfile)は\n多少苦労しましたが、それなりに使えてます。\u003c/p\u003e\n\u003cp\u003e違いはなんだろうと疑問に思っていたのですが、\n以下の記述を見て理解できました\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eこれはめちゃめちゃ混乱させられたんですが、実はGradleは、素のGroovyではなく、Groovyの文法をAST変換を使用して拡張しています。GradleはGroovyの上位互換言語だったんですね。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこれを読んで、理解できない理由が分かりました。\nプログラムを読むときに脳内で文法解析(\u003ca href=\"/dic/lex-in-the-brain/\"\u003e脳内lex\u003c/a\u003e)をしているのですが、\nAST変換が行われることによって、\n脳内の文法解析機がエラーを出していたのが原因です。\u003c/p\u003e\n\u003ch2 id=\"kotlin対応\"\u003eKotlin対応\u003c/h2\u003e\n\u003cp\u003eそんなことが3回くらいあって、\n\u003ca href=\"/dic/maven/\"\u003eMaven\u003c/a\u003eでまあそんなに困ってないのでいいやという感じですが、\n開発元も文法の難しさを理解していたのか、\u003ca href=\"/dic/kotlin/\"\u003eKotlin\u003c/a\u003eに対応したようです。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/dic/kotlin/\"\u003eKotlin\u003c/a\u003eは今後の主流となる可能性も高く、使ってみたい言語なので、\nせっかくだから、こちらを使ってみたいですね。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://d.hatena.ne.jp/takayukis/20160427/1461778975\"\u003eGradleの謎文法(2) タスクの定義 - takayukisの日記\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Vagrant",
    "url": "https://www.ikemo3.com/manual/vagrant/",
    "contents": "\u003ch2 id=\"プラグイン\"\u003eプラグイン\u003c/h2\u003e\n\u003ch3 id=\"よく使うプラグイン\"\u003eよく使うプラグイン\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evagrant-hosts: ゲストOSの/etc/hostsを書き換え\u003c/li\u003e\n\u003cli\u003evagrant-hostsupdater: ホストOSの/etc/hostsを書き換え\n\u003cul\u003e\n\u003cli\u003eただし、DHCPのときは使えない模様。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003evagrant-timezone: タイムゾーン設定\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"kvmlibvirtを使う場合\"\u003eKVM(libvirt)を使う場合\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eyum install libvirt-devel\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003evagrant plugin install vagrant-libvirt\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"parallelsを使った起動\"\u003eParallelsを使った起動\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003evagrant plugin install vagrant-parallels\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"box\"\u003eBox\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://app.vagrantup.com/boxes/search\"\u003eDiscover Vagrant Boxes - Vagrant Cloud\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"基本操作\"\u003e基本操作\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e追加: \u003ccode\u003evagrant box add \u0026lt;Box名 or URL or パス\u0026gt;\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e名前をつける時は \u003ccode\u003evagrant box add --name \u0026lt;Box名\u0026gt; \u0026lt;Box名 or URL or パス\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eリスト: \u003ccode\u003evagrant box list\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e削除: \u003ccode\u003evagrant box remove \u0026lt;Box名\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e更新: \u003ccode\u003evagrant box update --box \u0026lt;Box名\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"作成\"\u003e作成\u003c/h3\u003e\n\u003cp\u003eVagrantが起動した状態で、Vagrantfileがあるディレクトリで\n\u003ccode\u003evagrant package\u003c/code\u003eコマンドを使う。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.vagrantup.com/docs/cli/package.html\"\u003ePackage\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003evagrant package --output output.box\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e以下のように書かれているが、libvirtでも問題なし。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis packages a currently running VirtualBox or Hyper-V environment into a re-usable box.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"再作成\"\u003e再作成\u003c/h3\u003e\n\u003cp\u003eインストールしたVagrant Boxから、\u003ccode\u003e.box\u003c/code\u003eファイルを再作成するときは、\n\u003ccode\u003evagrant repackage\u003c/code\u003eコマンドを使う。\n生成されたファイルは、\u003ccode\u003epackage.box\u003c/code\u003e固定。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.vagrantup.com/docs/cli/box.html#box-repackage\"\u003eBox Repackage\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003evagrant repackage NAME PROVIDER VERSION\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e例えば、\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNAME: Box名\u003c/li\u003e\n\u003cli\u003ePROVIDER: プロバイダ名\u003c/li\u003e\n\u003cli\u003eVERSION: バージョン\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例えば、\u003ccode\u003evagrant box list\u003c/code\u003eで出てくる以下のものを再パッケージしたい場合\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ecentos/7   (virtualbox, 1803.01)\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e次のように指定する。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNAME: \u003ccode\u003ecentos/7\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePROVIDER: \u003ccode\u003evirtualbox\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eVERSION: \u003ccode\u003e1803.01\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"プラグイン-1\"\u003eプラグイン\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hashicorp/vagrant/wiki/Available-Vagrant-Plugins\"\u003eAvailable Vagrant Plugins · hashicorp/vagrant Wiki\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.vagrantup.com/docs/plugins/usage.html\"\u003ePlugin Usage - Plugins - Vagrant by HashiCorp\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"使い方\"\u003e使い方\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eリスト: \u003ccode\u003evagrant plugin list\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eインストール\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003evagrant plugin install プラグイン名\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e修復\n\u003cul\u003e\n\u003cli\u003eまず\u003ccode\u003evagrant plugin repair\u003c/code\u003e、次に\u003ccode\u003evagrant plugin update\u003c/code\u003eでだいたいは行けるはず。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"有用なプラグイン\"\u003e有用なプラグイン\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmatilai/vagrant-timezone\"\u003evagrant-timezone\u003c/a\u003e: タイムゾーンの設定\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sciurus/vagrant-mutate\"\u003evagrant-mutate\u003c/a\u003e: Vagrant Boxを他のプロバイダ用に変換するもの\n\u003cul\u003e\n\u003cli\u003eVirtualBoxで作ったものをlibvirt用に変換するときに使いました。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oscar-stack/vagrant-hosts\"\u003evagrant-hosts\u003c/a\u003e: ホスト名を設定するプラグイン\n\u003cul\u003e\n\u003cli\u003e他にも似たようなのがありますが、これがシンプルで良かったので使っています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"起動まで\"\u003e起動まで\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003evagrant init \u0026lt;Box名\u0026gt;\nvi Vagrantfile\nvagrant up\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"よく使うコマンド\"\u003eよく使うコマンド\u003c/h2\u003e\n\u003cp\u003eコマンドのあとに\u003ccode\u003e-h\u003c/code\u003eオプションを付けると、使い方が出ます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003evagrant up\u003c/code\u003e: 起動\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evagrant halt\u003c/code\u003e: シャットダウン\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evagrant destroy\u003c/code\u003e: 削除(注意!)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evagrant snapshot save スナップショット名\u003c/code\u003e: スナップショットの作成\n\u003cul\u003e\n\u003cli\u003eただし、libvirtでは使えない -\u0026gt; \u003ca href=\"https://github.com/vagrant-libvirt/vagrant-libvirt/issues/529\"\u003eSupport vagrant 1.8 snapshots · Issue #529 · vagrant-libvirt/vagrant-libvirt\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"パスワード\"\u003eパスワード\u003c/h2\u003e\n\u003cp\u003eデフォルトでは以下のユーザとパスワードが有効なようです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003evagrant:vagrant\u003c/li\u003e\n\u003cli\u003eroot:vagrant\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"プロバイダ\"\u003eプロバイダ\u003c/h2\u003e\n\u003ch3 id=\"parallels\"\u003eParallels\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eインストール: \u003ccode\u003evagrant plugin install vagrant-parallels\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eドキュメント: \u003ca href=\"http://parallels.github.io/vagrant-parallels/docs/\"\u003eVagrant Parallels Provider Documentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBox: \u003ca href=\"https://app.vagrantup.com/boxes/search?provider=parallels\"\u003ehttps://app.vagrantup.com/boxes/search?provider=parallels\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Parallels/vagrant-parallels/wiki/Migration-from-VirtualBox-to-Parallels-provider\"\u003eVirtualBoxからの移行手順\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://app.vagrantup.com/bento/boxes/centos-7.4\"\u003eCentOS 7.4\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBentoはChef開発で、Packerを使っています。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chef/bento\"\u003echef/bento: Packer templates for building minimal Vagrant baseboxes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eIPアドレスはParallels標準のものを使う。\n\u003cul\u003e\n\u003cli\u003e独自にネットワークを設定しても、\u003ccode\u003eThe specified host network collides with a non-hostonly network\u003c/code\u003eと出る感じがする。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"virtualbox\"\u003eVirtualBox\u003c/h3\u003e\n\u003cp\u003e環境にもよるかもしれないが、デフォルトの設定だと以下の理由で遅くなる。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eコントローラがIDE\u003c/li\u003e\n\u003cli\u003eSSDを使う設定になっていない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOracle 12cを起動するまでの時間を測定したが、ものすごく差がついている。\n(いずれも可変ストレージなのに注意)\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e設定\u003c/th\u003e\n          \u003cth\u003eメモリ\u003c/th\u003e\n          \u003cth\u003eコントローラ\u003c/th\u003e\n          \u003cth\u003eSSDを使う設定\u003c/th\u003e\n          \u003cth\u003eOracle 12c起動までの時間\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eデフォルト\u003c/td\u003e\n          \u003ctd\u003e2GB\u003c/td\u003e\n          \u003ctd\u003eIDE\u003c/td\u003e\n          \u003ctd\u003eオフ\u003c/td\u003e\n          \u003ctd\u003e4分30秒\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSSD\u003c/td\u003e\n          \u003ctd\u003e2GB\u003c/td\u003e\n          \u003ctd\u003eIDE\u003c/td\u003e\n          \u003ctd\u003eオン\u003c/td\u003e\n          \u003ctd\u003e3分53秒\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSATA\u003c/td\u003e\n          \u003ctd\u003e2GB\u003c/td\u003e\n          \u003ctd\u003eSATA\u003c/td\u003e\n          \u003ctd\u003eオフ\u003c/td\u003e\n          \u003ctd\u003e1分27秒\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSATA + SSD\u003c/td\u003e\n          \u003ctd\u003e2GB\u003c/td\u003e\n          \u003ctd\u003eSATA\u003c/td\u003e\n          \u003ctd\u003eオン\u003c/td\u003e\n          \u003ctd\u003e48秒\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSATA + SSD\u003c/td\u003e\n          \u003ctd\u003e3GB\u003c/td\u003e\n          \u003ctd\u003eSATA\u003c/td\u003e\n          \u003ctd\u003eオン\u003c/td\u003e\n          \u003ctd\u003e39秒\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSATA + SSD\u003c/td\u003e\n          \u003ctd\u003e4GB\u003c/td\u003e\n          \u003ctd\u003eSATA\u003c/td\u003e\n          \u003ctd\u003eオン\u003c/td\u003e\n          \u003ctd\u003e29秒\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSATA + SSD\u003c/td\u003e\n          \u003ctd\u003e5GB\u003c/td\u003e\n          \u003ctd\u003eSATA\u003c/td\u003e\n          \u003ctd\u003eオン\u003c/td\u003e\n          \u003ctd\u003e29秒\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eVagrantfileから変更する方法はまだできていません。\n以下の記事が参考になるかも。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://stackoverflow.com/questions/21574260/change-default-disk-controller-in-vagrant\"\u003evirtualbox - Change default disk controller in Vagrant - Stack Overflow\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"libvirt\"\u003elibvirt\u003c/h3\u003e\n\u003ch4 id=\"ネットワーク\"\u003eネットワーク\u003c/h4\u003e\n\u003cp\u003eデフォルトでは \u003ccode\u003e192.168.121.0/24\u003c/code\u003e が使われる\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch4 id=\"boxを削除した場合\"\u003eBoxを削除した場合\u003c/h4\u003e\n\u003cp\u003e以下の警告が出る。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVagrant-libvirt plugin removed box only from you LOCAL ~/.vagrant/boxes directory\nFrom libvirt storage pool you have to delete image manually(virsh, virt-manager or by any other tool)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e以下のように対処する。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003evirsh pool-list\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evirsh vol-list \u0026lt;プール名\u0026gt;\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e特になければプール名は\u003ccode\u003edefault\u003c/code\u003eのはず。。。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evirsh vol-delete \u0026lt;ボリューム名\u0026gt; --pool \u0026lt;プール名\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"フォルダの同期\"\u003eフォルダの同期\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.vagrantup.com/docs/synced-folders/\"\u003eSynced Folders - Vagrant by HashiCorp\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNFS: 高速なのがメリット。rootで動かす必要がある(sudoの設定が記載されている)\u003c/li\u003e\n\u003cli\u003ersync: \u003ccode\u003evagrant up\u003c/code\u003e or \u003ccode\u003evagrant reload\u003c/code\u003e時のみ。rsyncコマンドが使えれば、特別な設定は不要。\u003c/li\u003e\n\u003cli\u003eSMB: (未確認)ホストがWindows / macOSのみ。\u003c/li\u003e\n\u003cli\u003eVirtualBox: VirtualBoxの機能を使って同期\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eその他プラグインは以下の場所で探せます。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/hashicorp/vagrant/wiki/Available-Vagrant-Plugins#shared-folders\"\u003eShared Folders\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"vagrant-sshfsが良さそう\"\u003evagrant-sshfsが良さそう\u003c/h3\u003e\n\u003cp\u003eプラグインの中では、\u003ca href=\"https://github.com/dustymabe/vagrant-sshfs\"\u003evagrant-sshfs\u003c/a\u003eが良さそうな感じです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003esshなのでホストOS、ゲストOSの条件がゆるい\n\u003cul\u003e\n\u003cli\u003eCentOSの場合、openssh-server / openssh-clientsパッケージがあればOK\u003c/li\u003e\n\u003cli\u003eゲストOSにはCentOSの場合fuse-sshfsというRPMが入るようです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eパフォーマンスはNFSに比べると劣る\u003c/li\u003e\n\u003cli\u003eデフォルトではホスト→ゲストの同期に時間がかかる\n\u003cul\u003e\n\u003cli\u003e未確認ですが、キャッシュをオフにすればいいみたいです。\u003c/li\u003e\n\u003cli\u003eゲスト→ホストの同期は問題なさそうです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eインストールは以下の通り(他と同じ)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003evagrant plugin install vagrant-sshfs\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"複数マシンサポート\"\u003e複数マシンサポート\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.vagrantup.com/docs/multi-machine/\"\u003eMulti-Machine - Vagrant by HashiCorp\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eプロバイダ固有設定をマシンごとに書くには、ネストすればよいが、うまく動かなかったのと、\n見通しが悪くなったため、止めた方がいいかも。\u003c/p\u003e\n\u003cp\u003e…と思ったが、単に分かってなかったかもしれない。\n以下の\u003ccode\u003eweb.vm.provider\u003c/code\u003eを\u003ccode\u003econfig.vm.provider\u003c/code\u003eと書いてしまって失敗した模様。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eVagrant\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003econfigure(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;2\u0026#34;\u003c/span\u003e) \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003econfig\u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  config\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003evm\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003edefine \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;web\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003eweb\u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    web\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003evm\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eprovider \u003cspan style=\"color:#e6db74\"\u003e:virtualbox\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003ev\u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      v\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003ename \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;...\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  config\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003evm\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003edefine \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;db\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003edb\u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    db\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003evm\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eprovider \u003cspan style=\"color:#e6db74\"\u003e:virtualbox\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003ev\u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      v\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003ename \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;...\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ca href=\"https://stackoverflow.com/questions/24072916/multi-vm-in-one-vagrantfile-could-i-set-different-memory-size-for-each-of-them\"\u003evirtualbox - Multi VM in one Vagrantfile. Could I set different memory size for each of them? - Stack Overflow\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"docker\"\u003eDocker\u003c/h2\u003e\n\u003cp\u003eDockerfileと同じディレクトリにVagrantfileを置いて、以下のようにします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eVagrant\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003econfigure(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;2\u0026#34;\u003c/span\u003e) \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003econfig\u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  config\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003evm\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eprovider \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;docker\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003ed\u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    d\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003ename \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;コンテナ名\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    d\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003ebuild_dir \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;.\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    d\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eports \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;80:80\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# 80番ポートを接続する場合。-pオプションの内容と同じ\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"ansible\"\u003eAnsible\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.vagrantup.com/docs/provisioning/ansible.html\"\u003eAnsible - Provisioning - Vagrant by HashiCorp\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.vagrantup.com/docs/provisioning/ansible_common.html\"\u003eCommon Ansible Options - Provisioning - Vagrant by HashiCorp\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e基本的な書き方は以下になる。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eVagrant.configure(\u0026#34;2\u0026#34;) do |config|\n\n  #\n  # Run Ansible from the Vagrant Host\n  #\n  config.vm.provision \u0026#34;ansible\u0026#34; do |ansible|\n    ansible.playbook = \u0026#34;playbook.yml\u0026#34;\n  end\n\nend\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"インベントリファイルの場所\"\u003eインベントリファイルの場所\u003c/h3\u003e\n\u003cp\u003eVagrantfileからの相対パスで、\n\u003ccode\u003e.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory\u003c/code\u003e にある。\u003c/p\u003e\n\u003ch3 id=\"インベントリファイルに変数を追加する方法\"\u003eインベントリファイルに変数を追加する方法\u003c/h3\u003e\n\u003cp\u003eVagrantfileに以下のように追加する\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eansible\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003ehost_vars \u003cspan style=\"color:#f92672\"\u003e=\u0026gt;\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;default\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u0026gt;\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    {\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;http_port\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u0026gt;\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e80\u003c/span\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.vagrantup.com/docs/boxes/base.html#default-user-settings\"\u003eCreating a Base Box - Vagrant by HashiCorp\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/vagrant-libvirt/vagrant-libvirt#management-network\"\u003eManagement Network\u003c/a\u003eの \u003ccode\u003emanagement_network_address\u003c/code\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u0026ldquo;default\u0026quot;は特に指定しない時のホスト名っぽいです。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Vps",
    "url": "https://www.ikemo3.com/tags/vps/",
    "contents": ""
  }, 
  {
    "title": "ゼルダの伝説 神々のトライフォース",
    "url": "https://www.ikemo3.com/dic/zelda-kamitora/",
    "contents": "\u003ch2 id=\"ゼルダの伝説-神々のトライフォースとは\"\u003eゼルダの伝説 神々のトライフォースとは\u003c/h2\u003e\n\u003cp\u003e以下の両方のゲームソフトを扱います\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eゼルダの伝説 神々のトライフォース\n\u003cul\u003e\n\u003cli\u003eスーパーファミコンで発売されたゲームソフト\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eゼルダの伝説 神々のトライフォース2\n\u003cul\u003e\n\u003cli\u003eニンテンドー3DSで発売されたゲームソフト\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下では前者を「神トラ」、後者を「神トラ2」と書きます。\u003c/p\u003e\n\u003ch2 id=\"今でも遊べる神トラ\"\u003e今でも遊べる「神トラ」\u003c/h2\u003e\n\u003cp\u003e昔のゲームはなかなか遊ぶ気がしないのですが、\nその例外の一つが、神トラです。\n(まあ新作を買うことが多いのでそんなには遊んでないですが)\u003c/p\u003e\n\u003ch2 id=\"続編である意味がある神トラ2\"\u003e続編である意味がある「神トラ2」\u003c/h2\u003e\n\u003cp\u003eゼルダの伝説シリーズは新作が出るたびにタイトルが変わるので、\nこのようにタイトルに「2」が出るのは異例なのですが、\nこのゲームに関しては、「2」である意味があります。\u003c/p\u003e\n\u003cp\u003eなぜかというと、「壁に入る」というアイデア1つで、\n同じマップでもゲーム性が全く異なるからです。\nこのアイデアを実感するためには、\n全く新規のマップではなく、むしろ馴染みのある神トラのマップの方が\nふさわしいわけです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e記事が大きくなったら分けるかもしれませんが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "デスクリムゾン",
    "url": "https://www.ikemo3.com/dic/death-crimson/",
    "contents": "\u003ch2 id=\"デスクリムゾンとは\"\u003eデスクリムゾンとは\u003c/h2\u003e\n\u003cp\u003eセガサターンで発売された、伝説のクソゲーです。\u003c/p\u003e\n\u003ch2 id=\"阪大でバイト募集していた\"\u003e阪大でバイト募集していた\u003c/h2\u003e\n\u003cp\u003e発売したのはエコールソフトウェアという会社ですが、\n\u003ca href=\"/dic/osaka-university/\"\u003e大阪大学\u003c/a\u003eでバイトの募集をしていました\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\nもらった時期は、以下の理由から、1996年の春だと推測されます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e「春休みからの勤務可能」と書いてあった。\u003c/li\u003e\n\u003cli\u003e自分がエコールソフトウェアを知らなかった\n\u003cul\u003e\n\u003cli\u003eデス様発売後なら、ゲーム雑誌を読んでいた自分が名前を知らないはずがないので。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分はチラシをもらっただけなんですが、\nもしこのバイトに応募していたら、\nデスクリムゾンの開発者になってたかもしれません。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e会社は大阪で、\u003ca href=\"https://ja.wikipedia.org/wiki/%E7%9C%9F%E9%8D%8B%E8%B3%A2%E8%A1%8C\"\u003e社長\u003c/a\u003eが阪大出身なので、まあ普通の行動ですね。。。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "脳内lex",
    "url": "https://www.ikemo3.com/dic/lex-in-the-brain/",
    "contents": "\u003ch2 id=\"脳内lexとは\"\u003e脳内lexとは\u003c/h2\u003e\n\u003cp\u003elex, flex(字句解析器)というプログラムをもじって、\n自分の脳の中にある、ソースコードを単語に分割する能力を表します。\n似たような表現に、yacc, bison(構文解析器)というプログラムをもじって、\n「脳内yacc」という単語があります。\u003c/p\u003e\n"
  }, 
  {
    "title": "a要素",
    "url": "https://www.ikemo3.com/dic/html-a/",
    "contents": "\u003ch2 id=\"a要素htmlとは\"\u003ea要素(HTML)とは\u003c/h2\u003e\n\u003cp\u003eリンクを作る要素です。\u003c/p\u003e\n\u003ch2 id=\"こちらリンクは良くない\"\u003e「こちら」リンクは良くない\u003c/h2\u003e\n\u003cp\u003e「こちら」にリンクを貼る例がありますが、それはよくありません\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\nアクセシビリティ的な問題が一番大きいですが、\nSEO的にもマズイみたいです。\u003c/p\u003e\n\u003cp\u003eまあ、Markdownだと本文とリンクを分離して記載できるので\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e、\n「こちら」リンクはむしろ作りにくいんですけどね。。。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://webtan.impress.co.jp/e/2015/11/24/20818\"\u003eリンク先がわからないサイトを改善する3つの解決アプローチ | デザイニングWebアクセシビリティ | Web担当者Forum\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://qiita.com/kimama1997/items/d305d49b5a27e92d132a\"\u003e意外と知られてないっぽいMarkDownのリンクの書き方 - Qiita\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "XUL電卓",
    "url": "https://www.ikemo3.com/dic/xulcalc/",
    "contents": "\u003ch2 id=\"xul電卓とは\"\u003eXUL電卓とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Mozilla/Tech/XUL\"\u003eXUL\u003c/a\u003eで書かれた電卓のデモです。\nMozilla.party.jpで発表しました。\u003c/p\u003e\n\u003ch2 id=\"xml--css--javascript\"\u003eXML + CSS + JavaScript\u003c/h2\u003e\n\u003cp\u003eXUL電卓は、XMLベースのXULという独自言語でレイアウトを決めて、\nCSSで見た目をWindowsの電卓に似せて、\nJavaScriptで電卓の挙動を実現しました。\u003c/p\u003e\n"
  }, 
  {
    "title": "もじら組",
    "url": "https://www.ikemo3.com/dic/mozilla-gr-jp/",
    "contents": "\u003ch2 id=\"もじら組とは\"\u003eもじら組とは\u003c/h2\u003e\n\u003cp\u003e日本で最初の Mozilla コミュニティです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"mozillapartyjp\"\u003eMozilla.party.jp\u003c/h2\u003e\n\u003cp\u003e自分も関係者の一人だったんですが、\n2000年4月8日のMozilla.party.jpがその始まりでした。\u003c/p\u003e\n\u003cp\u003e自分は\u003ca href=\"/dic/xulcalc/\"\u003eXUL電卓\u003c/a\u003eというアプリのデモをしました。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e公式サイトより\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Git: 過去のコミットAuthorを全て修正",
    "url": "https://www.ikemo3.com/inverted/git/amend-all-author/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/git/\"\u003eGit\u003c/a\u003eで過去のコミットのAuthorを全て修正する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egit push -f\u003c/code\u003eしても問題ないこと\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下のコマンドを打ってから、\u003ccode\u003egit push -f\u003c/code\u003eをする。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003egit filter-branch -f --env-filter \u0026#34;\\\nGIT_AUTHOR_NAME=\u0026#39;Hideki Ikemoto\u0026#39;;\\\nGIT_AUTHOR_EMAIL=\u0026#39;test@example.com\u0026#39;;\\\nGIT_COMMITTER_NAME=\u0026#39;Hideki Ikemoto\u0026#39;;\\\nGIT_COMMITTER_EMAIL=\u0026#39;test@example.com\u0026#39;;\\\n\u0026#34; HEAD\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n"
  }, 
  {
    "title": "JavaScript: script要素のURLからパラメータを取得",
    "url": "https://www.ikemo3.com/inverted/javascript/get-parameter-from-script/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e\u0026lt;script src=\u0026quot;...?foo=bar\u0026quot;\u0026gt;\u003c/code\u003eのように、パラメータを埋め込んで、\nスクリプトから取得する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e以下の環境で確認しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNode.js 8.9.1\u003c/li\u003e\n\u003cli\u003eGoogle Chrome\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e以下の機能を使います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/Document/currentScript\"\u003edocument.currentScript\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/URL/URL\"\u003eURL(MDN)\u003c/a\u003e or \u003ca href=\"https://nodejs.org/api/url.html\"\u003eURL(Node.js)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eurl\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003erequire\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;url\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003esrc\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eurl\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eparse\u003c/span\u003e(document.\u003cspan style=\"color:#a6e22e\"\u003ecurrentScript\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003esrc\u003c/span\u003e, \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003equery\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003esrc\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003equery\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eWHATWG URL APIの方が良いかと思いますが、うまく使えませんでした。\n(多分単純なミスですが)\u003c/p\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n\u003cp\u003eIEでは動きません(\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/Document/currentScript\"\u003edocument.currentScript\u003c/a\u003eが未サポート)\u003c/p\u003e\n"
  }, 
  {
    "title": "仮想DOM",
    "url": "https://www.ikemo3.com/dic/virtual-dom/",
    "contents": "\u003ch2 id=\"仮想domとは\"\u003e仮想DOMとは\u003c/h2\u003e\n\u003cp\u003eJavaScriptのオブジェクトのことです。\u003c/p\u003e\n\u003ch2 id=\"コロンブスの卵\"\u003eコロンブスの卵\u003c/h2\u003e\n\u003cp\u003e仮想DOMという名前から、なんかものすごいものを想像してましたが、\n実際はただのJavaScriptのオブジェクトでした。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/dic/hyperapp/\"\u003ehyperapp\u003c/a\u003eという300行ほどの軽量ライブラリが紹介されていたので、\nソースコードを読んでみたんですね。\nそのpatch関数を見たときに、orzと崩れ落ちました。\n単にオブジェクトの差分をチェックして、\n差分があったら、実DOMに反映させているだけでした。\u003c/p\u003e\n\u003cp\u003eどうやら仮想DOMの仕組みはこのようになっているようです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eDOMの構造を表すJavaScriptオブジェクトを作成する\u003c/li\u003e\n\u003cli\u003eJavaScriptオブジェクトから実DOMを作る\u003c/li\u003e\n\u003cli\u003eDOMを更新したいときは、対応するJavaScriptオブジェクトを作成する\u003c/li\u003e\n\u003cli\u003e現在のJavaScriptオブジェクトと、更新後のJavaScriptオブジェクトを比較して、その内容を実DOMに反映する。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eついでに、以下の2つのことも分かりました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eh関数は、そのノードを作成する\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003eJSXは、HTMLからh関数を呼び出す形式に変換する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"実domを触るライブラリが使えない\"\u003e実DOMを触るライブラリが使えない\u003c/h2\u003e\n\u003cp\u003e仮想DOMを使うことは、すなわち、実DOMは基本的に使えません。\njQueryが使えないのはそういうことです\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e自分は、\u003ca href=\"/dic/ruby/\"\u003eRuby\u003c/a\u003eの\u003ca href=\"https://docs.ruby-lang.org/ja/latest/library/cgi.html\"\u003ecgi\u003c/a\u003eライブラリを思い出しました。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e検索すると「jQueryは遅れてる」みたいなことを言う似非エンジニアばかりでうんざいりますが。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Docker",
    "url": "https://www.ikemo3.com/dic/docker/",
    "contents": "\u003ch2 id=\"dockerとは\"\u003eDockerとは\u003c/h2\u003e\n\u003cp\u003eコンテナ型の仮想化環境です。\u003c/p\u003e\n\u003ch2 id=\"dockerの特徴\"\u003eDockerの特徴\u003c/h2\u003e\n\u003cp\u003eそこそこDockerを使っていますが、他と比べた特徴は以下のようなものです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e再現性が高い\u003c/li\u003e\n\u003cli\u003eビルド・実行が高速\u003c/li\u003e\n\u003cli\u003eゲストOSに制限がある\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"再現性が高い\"\u003e再現性が高い\u003c/h3\u003e\n\u003cp\u003eビルド済みのイメージの場合は、\nオプションが同じならほとんど同じように動きます。\u003c/p\u003e\n\u003cp\u003eビルドする時も、前提となるパッケージが更新されることによって\nズレる可能性はありますが、他の方法と比べると、再現性が高いです。\u003c/p\u003e\n\u003cp\u003e再現性が高いため、バグ報告に使われることもあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://otiai10.hatenablog.com/entry/2017/12/04/013819\"\u003eCgoを使ったパッケージと「Docker as Bug Report/Reproduce」というOSS運用について - DRYな備忘録\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ビルド実行が高速\"\u003eビルド・実行が高速\u003c/h3\u003e\n\u003cp\u003eVMを1から起動するのに比べると、実行が高速です。\nビルドも1度行ったものはキャッシュして再利用するため、高速です。\u003c/p\u003e\n\u003ch3 id=\"ゲストosに制限がある\"\u003eゲストOSに制限がある\u003c/h3\u003e\n\u003cp\u003eDockerの最大の弱点は、ゲストOSに制限があることです。\nLinuxカーネルの機能をフルに利用しているため、基本的にはLinuxのみです。\n例外的にWindowsでは、Windowsをゲストに使うことができるようです。\u003c/p\u003e\n\u003ch2 id=\"イメージ\"\u003eイメージ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.docker.com/docker-hub/official_repos/\"\u003eOfficial repositories on Docker Hub | Docker Documentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/mumoshu/items/edd76958ea170a6b8e3d\"\u003eDockerベースイメージの特徴と比較・選び方 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.infoq.com/jp/news/2017/10/choosing-container-image\"\u003eLinuxコンテナイメージの選び方\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eどれを選ぶか正直悩むところです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDocker公式(Debian)\u003c/li\u003e\n\u003cli\u003e慣れているOS(CentOS)\u003c/li\u003e\n\u003cli\u003e軽量OS(Alpine)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eいろいろ使ってみましたが、基本的にはDebianで、慣れてきたらAlpineかなと思います。\nDebianは慣れが必要だが、それほど難しくないです。\n慣れが必要なのも、OS特有のロケールやタイムゾーンの扱いくらいですね。\u003c/p\u003e\n\u003ch2 id=\"ネットワーク\"\u003eネットワーク\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.docker.com/network/\"\u003eOverview | Docker Documentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/zembutsu/items/1da05cb6a60e1c5acc25\"\u003e参考訳：Docker コンテナ・ネットワークの理解 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.slideshare.net/yuichi110/docker-introduction-42455180\"\u003eDocker入門: コンテナ型仮想化技術の仕組みと使い方\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "HTML",
    "url": "https://www.ikemo3.com/dic/html/",
    "contents": "\u003ch2 id=\"htmlとは\"\u003eHTMLとは\u003c/h2\u003e\n\u003cp\u003eHyperText Markup Languageの略です。\u003c/p\u003e\n\u003ch2 id=\"whatwg-or-w3c\"\u003eWHATWG or W3C?\u003c/h2\u003e\n\u003cp\u003e2000年頃まではW3Cの活動はとても良かったのですが、\nそれ以降は活動が停滞している感じなので、\nWHATWGの方でいいんじゃないかなぁと思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "HTTP",
    "url": "https://www.ikemo3.com/dic/http/",
    "contents": "\u003ch2 id=\"httpとは\"\u003eHTTPとは\u003c/h2\u003e\n\u003cp\u003eHyperText Transfer Protocolの略です。\u003c/p\u003e\n\u003ch2 id=\"rfc\"\u003eRFC\u003c/h2\u003e\n\u003cp\u003eHTTP/1.1については、RFC 7230～7235が最新です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n\u003cstrong\u003eRFC 2616は死にました。\u003c/strong\u003e\u003c/p\u003e\n\u003ch2 id=\"httpステータスコード\"\u003eHTTPステータスコード\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://tools.ietf.org/html/rfc7231\"\u003eRFC 7231\u003c/a\u003eで定義されています。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.mnot.net/blog/2014/06/07/rfc2616_is_dead\"\u003emnot’s blog: RFC2616 is Dead\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "HTTP",
    "url": "https://www.ikemo3.com/manual/http/",
    "contents": "\u003ch2 id=\"javaでのライブラリ\"\u003eJavaでのライブラリ\u003c/h2\u003e\n\u003cp\u003e決済サービスのSquareのOSSライブラリ、\u003ca href=\"http://square.github.io/okhttp/\"\u003eOkHttp\u003c/a\u003eが良いです。\n以前は\u003ca href=\"http://hc.apache.org/\"\u003eApache HttpComponents\u003c/a\u003eを使っていたのですが、\n\u003cstrong\u003eマイナーバージョンアップで\u003c/strong\u003eAPIが変わってコンパイルできなくなった事があって、\n信頼できないので、おすすめしません。\u003c/p\u003e\n\u003cp\u003eREST APIを叩く場合は、\n同じくSquare社のOSSライブラリの\u003ca href=\"http://square.github.io/retrofit/\"\u003eRetrofit\u003c/a\u003eが良い感じです。\u003c/p\u003e\n"
  }, 
  {
    "title": "nofollow",
    "url": "https://www.ikemo3.com/dic/nofollow/",
    "contents": "\u003ch2 id=\"nofollowとは\"\u003enofollowとは\u003c/h2\u003e\n\u003cp\u003e「このリンクをたどらない」という指示です。\n\u003ccode\u003e\u0026lt;a href=\u0026quot;...\u0026quot; rel=\u0026quot;nofollow\u0026quot;\u0026gt;link\u0026lt;/a\u0026gt;\u003c/code\u003eのように使います。\u003c/p\u003e\n\u003ch2 id=\"使い道\"\u003e使い道\u003c/h2\u003e\n\u003cp\u003eこのサイトでもいくつか使っていますが、以下のような場合です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eリンク先に不快な情報がある場合\u003c/li\u003e\n\u003cli\u003eリンク先に信頼できないコンテンツがある場合\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"javascriptで付ける意味はあるか\"\u003eJavaScriptで付ける意味はあるか?\u003c/h2\u003e\n\u003cp\u003e調べてみましたが、GooglebotについてはJavaScriptを解釈できるため、付ける意味はありそうです。\nただ、実際に実験したらうまくいかなかったという報告もあります。\n(処理の順番が原因ではとのことですが)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/9044245/is-it-useless-to-add-nofollow-using-javascript\"\u003eseo - Is it useless to add nofollow using Javascript? - Stack Overflow\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157\"\u003eWe Tested How Googlebot Crawls Javascript And Here\u0026rsquo;s What We Learned\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "二等分法",
    "url": "https://www.ikemo3.com/dic/bisection-method/",
    "contents": "\u003ch2 id=\"二等分法とは\"\u003e二等分法とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/do-it-tomorrow/\"\u003eマニャーナの法則\u003c/a\u003eにある、大きいタスクを進めるための手法です。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4799319809/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4799319809.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4799319809/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n仕事に追われない仕事術 マニャーナの法則・完全版\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"対象\"\u003e対象\u003c/h2\u003e\n\u003cp\u003e手間がかかるタスク(プロジェクト)が対象です。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eプロジェクトをバランスよく半分にできるカテゴリーを探す\u003c/li\u003e\n\u003cli\u003e1.の作業を「抵抗感が問題にならない状態」になるまで続ける\u003c/li\u003e\n\u003cli\u003e分割した作業を行う。\u003c/li\u003e\n\u003cli\u003e1.〜3.の作業を繰り返す。\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "彼らが最初共産主義者を攻撃したとき",
    "url": "https://www.ikemo3.com/dic/first-they-came/",
    "contents": "\u003ch2 id=\"彼らが最初共産主義者を攻撃したときとは\"\u003e彼らが最初共産主義者を攻撃したときとは\u003c/h2\u003e\n\u003cp\u003e原文がよく分からないままプロパガンダとして使われている言葉です。\u003c/p\u003e\n\u003ch2 id=\"実際はどうだったか\"\u003e実際はどうだったか\u003c/h2\u003e\n\u003cp\u003eWikipediaの\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%8A%E3%83%81%E5%85%9A%E3%81%AE%E6%A8%A9%E5%8A%9B%E6%8E%8C%E6%8F%A1\"\u003eナチ党の権力掌握\u003c/a\u003eによれば、\n1932年頃から1933年にいろんなことをやっていますが、\n重要なのは、このうちかなりのことが「非合法」だったことです。\n特に決定的なのは、1933年3月23日の全権委任法成立です。\u003c/p\u003e\n\u003cp\u003eつまり、少なくともこの全権委任法が成立したあとは、\nドイツはまともな国家でないのは明らかなので、\nそのために立ち上がるか、ドイツから逃げなければおかしいです。\n実際、\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eはナチスが権力を掌握してから数週間後に\nドイツから脱出しています。\u003c/p\u003e\n\u003ch2 id=\"使わないほうがよい\"\u003e使わないほうがよい\u003c/h2\u003e\n\u003cp\u003e自分はこの用語は使わないほうがいいと考えています。\n理由は以下のとおりです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eこの話が本当かどうかも分からない\n\u003cul\u003e\n\u003cli\u003e時系列も、対象となっている人もバラバラで、歴史的事実を元にしたとは言えません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e基準が不明確で納得できない\n\u003cul\u003e\n\u003cli\u003eそれが「弾圧」なのか「正当な逮捕」なのかを判断するすべが書かれていない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eあくまで、自分は「非合法」であることを基準にしたいと考えています。\u003c/p\u003e\n"
  }, 
  {
    "title": "目標",
    "url": "https://www.ikemo3.com/dic/goal/",
    "contents": "\u003ch2 id=\"目標とは\"\u003e目標とは\u003c/h2\u003e\n\u003cp\u003e目指す場所です。\u003c/p\u003e\n\u003ch2 id=\"目標を立てる意味\"\u003e目標を立てる意味\u003c/h2\u003e\n\u003cp\u003e正直自分はこれまでほとんど目標を立ててなかったのですが、\n一つだけ、目標を立てる意味を思いつきました。\nそれは、「コミットメント」との関係です。\u003c/p\u003e\n\u003cp\u003eこの記事を書いた2018-01-03に、タスクが多すぎて、\nしかもそのほとんどが進んでない状態でした。\nそれをどうしようかと思った時に、ふと思いついたのが、\n以前立てた「目標」と、今進んでいる「\u003ca href=\"/dic/project/\"\u003eプロジェクト\u003c/a\u003e」の2つでした。\u003c/p\u003e\n\u003cp\u003eこの2つのどちらにも当てはまらないものをバッサリと消したら\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\n8割のタスクが消えてなくなりました。\n逆に言えば、目標を立てる理由は、「残すべきタスクを決める」ためです。\u003c/p\u003e\n\u003ch2 id=\"目標の期間\"\u003e目標の期間\u003c/h2\u003e\n\u003cp\u003e人によっては長期的な目標を立てる人もいますが、\n自分はあまり計画に沿って行動するのは好きじゃないため、短めの方が好きです。\nと言っても最近は全然時間がないため、1週間だとほとんど達成できなくて辛い\nことになるので、現在は3ヶ月〜半年くらいがしっくり来ます。\u003c/p\u003e\n\u003ch2 id=\"目標を立てないという選択\"\u003e目標を立てないという選択\u003c/h2\u003e\n\u003cp\u003e「転職の思考法」という本によれば、99%の人は「やりたいこと」ではなく\n「状態」に重きを置いているそうです。自分もそのタイプですね。\u003c/p\u003e\n\u003cp\u003e逆にそういう人にとっては「仕事は楽しいかね?」にある次の目標がしっくりくるかもしれません。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e明日は今日と違う自分になる\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e正確には「やらない」とログに残しました。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "プログラミング",
    "url": "https://www.ikemo3.com/dic/programming/",
    "contents": "\u003ch2 id=\"プログラミングとは\"\u003eプログラミングとは\u003c/h2\u003e\n\u003cp\u003e狭義では、プログラミング言語を使ってプログラムを書くことです。\u003c/p\u003e\n\u003ch2 id=\"論理が組めること\"\u003e論理が組めること\u003c/h2\u003e\n\u003cp\u003e「狭義では」と書いたのは、論理が組めることは、\nほとんどプログラミングと同じだからです。\u003c/p\u003e\n\u003cp\u003e例えば、手順書を文章で書くとしても、\nそれを正確に書くためには、以下のような考え方が必要です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e手順から曖昧さを排除し、正確に記載する。\u003c/li\u003e\n\u003cli\u003e「漏れがないかどうか」を見極める。\n\u003cul\u003e\n\u003cli\u003eif〜then〜elseみたいなのを書く時に必要です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e「ここは別のここと同じ」というのを見極める。\n\u003cul\u003e\n\u003cli\u003e要は変数の説明です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e逆に言えば、これらが正確に書けるなら、\nプログラミング言語を習得するのは難しくないはずです。\u003c/p\u003e\n\u003cp\u003e別の言い方をすると、これができない人は、\n無茶な要求をしているようなものです。\nその意味では、全ての人にプログラミング教育は必要です。\u003c/p\u003e\n"
  }, 
  {
    "title": "確定申告",
    "url": "https://www.ikemo3.com/dic/tax-return/",
    "contents": "\u003ch2 id=\"確定申告とは\"\u003e確定申告とは\u003c/h2\u003e\n\u003cp\u003e所得などを確定して、税金の支払い、\nもしくは還付手続きを行うためのものです。\u003c/p\u003e\n\u003ch2 id=\"スケジュール\"\u003eスケジュール\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e1/4頃: 確定申告書作成コーナーがオープン\u003c/li\u003e\n\u003cli\u003e1/10頃: 特定口座年間取引報告書が入手可能\u003c/li\u003e\n\u003cli\u003e2月中旬〜3月中旬頃: 所得税の申告書の受付期間\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただし、所得税等の還付申告は早めに提出可能です。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e所得税等の還付申告は、平成30年2月15日（木）以前でも提出することができます。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"個人でもやった方がいい人\"\u003e個人でもやった方がいい人\u003c/h2\u003e\n\u003cp\u003e以下のような人はやった方がいいです(あるいはやらないといけません)。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e医療費が多い場合(医療費控除)\u003c/li\u003e\n\u003cli\u003e寄付金がある場合(寄付金控除)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/furusato-nouzei/\"\u003eふるさと納税\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eワンストップ特例制度を使えば不要です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/furusato-nouzei/\"\u003eふるさと納税\u003c/a\u003eは税額控除ですが、確定申告の書類では所得控除になっています(残りは住民税から控除されます)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eその他の所得がある人\n\u003cul\u003e\n\u003cli\u003e配当金\u003c/li\u003e\n\u003cli\u003e雑所得\u003c/li\u003e\n\u003cli\u003eなど\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"pcで作成すれば楽\"\u003ePCで作成すれば楽\u003c/h2\u003e\n\u003cp\u003e自分は2013年からずっと確定申告をしていますが、案外楽です。\n少なくとも、申請書はPCで作成するのをおすすめします\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e個人的には医療費控除などがあるので、確定申告をしています。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e電子申告はしてません。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "無名関数",
    "url": "https://www.ikemo3.com/dic/anonymous-function/",
    "contents": "\u003ch2 id=\"無名関数とは\"\u003e無名関数とは\u003c/h2\u003e\n\u003cp\u003eその名の通り、名前がない関数です。\u003c/p\u003e\n\u003ch2 id=\"例\"\u003e例\u003c/h2\u003e\n\u003cp\u003e例えば、JavaScriptでは、\u003ccode\u003efunction()\u003c/code\u003eを使って書くことができます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-JavaScript\" data-lang=\"JavaScript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003esetTimeout\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e() { \u003cspan style=\"color:#a6e22e\"\u003econsole\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003elog\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Hello World\u0026#34;\u003c/span\u003e); }, \u003cspan style=\"color:#ae81ff\"\u003e1000\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"変数の定義と名前付けを分離\"\u003e変数の定義と名前付けを分離\u003c/h2\u003e\n\u003cp\u003e例えば、先程の無名関数は、以下のように書くこともできます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-JavaScript\" data-lang=\"JavaScript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehello\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003econsole\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003elog\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Hello World\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003esetTimeout\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003ehello\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e1000\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e実は、この関数\u003ccode\u003ehello\u003c/code\u003eの定義には、以下の2つが混じっています。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e処理の定義(console.logに\u0026quot;Hello World\u0026quot;と書く)\u003c/li\u003e\n\u003cli\u003e名前付け(\u003ccode\u003ehello\u003c/code\u003e)\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eこの2つを分離できると、何かと便利なことがあります。\nそれを実現するには、以下の2つが必要です。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e処理の定義は「関数オブジェクト」を返す\u003c/li\u003e\n\u003cli\u003e「関数オブジェクト」をデータと同じように扱えるようにする。\n\u003cul\u003e\n\u003cli\u003e「代入」という操作によって、名前付けが可能です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eこの性質を「第一級オブジェクト」\nあるいは「ファーストクラスオブジェクト」と呼びます。\nこの考え方に沿って書くと、以下のようになります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-JavaScript\" data-lang=\"JavaScript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehello\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003econsole\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003elog\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Hello World\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003esetTimeout\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003ehello\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e1000\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"ラムダ式\"\u003eラムダ式\u003c/h2\u003e\n\u003cp\u003e「ラムダ式」という言葉も出てきますが、本質的には無名関数との違いはなく、\n単に無名関数の記法を指すんじゃないかなぁと思います\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eWikipedia(en)の\u003ca href=\"https://en.wikipedia.org/wiki/Anonymous_function\"\u003eAnonymous function\u003c/a\u003eには区別して書かれてないようなので。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "IUS",
    "url": "https://www.ikemo3.com/dic/ius/",
    "contents": "\u003ch2 id=\"iusとは\"\u003eIUSとは\u003c/h2\u003e\n\u003cp\u003eエンタープライズLinuxディストリビューション向けに\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\n新しいバージョンのパッケージを提供するためのコミュニティプロジェクトです。\u003c/p\u003e\n\u003ch2 id=\"動機\"\u003e動機\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/rhel/\"\u003eRed Hat Enterprise Linux\u003c/a\u003eはエンタープライズ向けなので、\n一度新しいメジャーリリース(6.0とか7.0)が出ると、\nそれ以降のマイナーアップデートでは、\nパッケージのバージョンアップはほとんど行われません。\u003c/p\u003e\n\u003cp\u003eしかし、どうしても最新版が使いたいケースもあります。\nそのため、最新バージョンをRPMで提供するのが、IUSです。\nもちろんコミュニティベースなので、Red Hatからのサポートは受けられません。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e実際は\u003ca href=\"/dic/rhel/\"\u003eRed Hat Enterprise Linux\u003c/a\u003eと\u003ca href=\"/dic/centos/\"\u003eCentOS\u003c/a\u003e向けです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Mii",
    "url": "https://www.ikemo3.com/dic/mii/",
    "contents": "\u003ch2 id=\"miiとは\"\u003eMiiとは\u003c/h2\u003e\n\u003cp\u003e任天堂のゲーム機などで使える、\n自分の分身として使えるキャラクターです。\u003c/p\u003e\n\u003ch2 id=\"自分でないけど自分っぽい何か\"\u003e自分でないけど自分っぽい何か\u003c/h2\u003e\n\u003cp\u003e自分のMiiはこんな感じです。\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"mii.jpg\" alt=\"\"\u003e\n\u003cimg src=\"mii2.jpg\" alt=\"\"\u003e\u003c/p\u003e\n\u003cp\u003eこれが自分に似ているかと言われると、正直微妙です。\nただ、これくらいの方が使いやすいです。\n自分の顔をネットにアップロードするのには抵抗がありますが、\nMiiなら抵抗はありません。\u003c/p\u003e\n"
  }, 
  {
    "title": "Mii",
    "url": "https://www.ikemo3.com/tags/mii/",
    "contents": ""
  }, 
  {
    "title": "Mii: Nintendo 3DSのMiiをPCへコピーする",
    "url": "https://www.ikemo3.com/inverted/mii/3ds-mii-to-image/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eMiiの画像をPCへコピーする方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/nintendo-3ds/\"\u003eNintendo 3DS\u003c/a\u003eを使っていることを前提とします。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e「Miiスタジオ」を起動\u003c/li\u003e\n\u003cli\u003e最下部の「QRコード・画像」をタッチ\u003c/li\u003e\n\u003cli\u003e最下部の「Miiを画像にする」をタッチ\u003c/li\u003e\n\u003cli\u003eMiiを選んで「決定」をタッチ\u003c/li\u003e\n\u003cli\u003e「顔アップ」または「全身」を選択して少し待つ。\u003c/li\u003e\n\u003cli\u003e以下のどちらかの手順を行う。\n\u003cul\u003e\n\u003cli\u003eSDカード(microSDカード)を抜いてPCにコピー。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.nintendo.co.jp/support/3ds/microsdmanagement/index.html\"\u003eパソコンでmicroSDカードを管理する｜ニンテンドー3DS サポート情報｜Nintendo\u003c/a\u003eの手順に従って無線LAN経由でコピー\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eWindows 10では問題なくコピーできましたが、macOSでは認証時にエラーになります。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Nintendo-3ds",
    "url": "https://www.ikemo3.com/tags/nintendo-3ds/",
    "contents": ""
  }, 
  {
    "title": "Node.js",
    "url": "https://www.ikemo3.com/dic/nodejs/",
    "contents": "\u003ch2 id=\"nodejsとは\"\u003eNode.jsとは\u003c/h2\u003e\n\u003cp\u003eイベント駆動のサーバサイドJavaScript環境です。\u003c/p\u003e\n\u003ch2 id=\"本質\"\u003e本質\u003c/h2\u003e\n\u003cp\u003eNode.jsを紹介する時に真っ先に「サーバサイドJavaScript」と\n紹介されている記事が目立ちますが、それは\u003cstrong\u003e大きな誤解\u003c/strong\u003eです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\nなぜかというと、順番が異なるからです。\u003c/p\u003e\n\u003ch3 id=\"c10kクライアント1万台問題\"\u003eC10K(クライアント1万台)問題\u003c/h3\u003e\n\u003cp\u003eまず重要なのは、クライアントが1万台接続する環境が必要になったことです。\n従来はプロセスやスレッドで対応していましたが、\nこの仕組みではリソースを食いつぶしてしまいます。\u003c/p\u003e\n\u003ch3 id=\"イベント駆動\"\u003eイベント駆動\u003c/h3\u003e\n\u003cp\u003eそのために採用されたのがイベント駆動という方式でした。\nI/O待ちが起きる可能性があるときにブロックするのではなく、\nハンドラを登録して待つ方法です。\u003c/p\u003e\n\u003ch3 id=\"javascriptを選ぶのが自然\"\u003eJavaScriptを選ぶのが自然\u003c/h3\u003e\n\u003cp\u003eイベント駆動で書こうとすると、既存の言語だといろいろとめんどくさいです。\n普通にファイルを書こうとするだけでアウトです。\n一方で、JavaScriptはイベント駆動ネイティブと言ってもいいくらいです。\nなので、サーバ側の開発言語としてJavaScriptを選ぶのは自然です。\u003c/p\u003e\n\u003cp\u003eただし、これが唯一の解ではなく、\n元々はスレッドが使うメモリが多すぎるのが原因なので、\n軽量化したスレッドを使う手もあります\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eなぜ強く言うのかというと、これで自分が被害にあったからです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003ecoroutine, goroutine, fiberあたりがキーワード\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "インデアンカレー",
    "url": "https://www.ikemo3.com/dic/indiancurry/",
    "contents": "\u003ch2 id=\"インデアンカレーとは\"\u003eインデアンカレーとは\u003c/h2\u003e\n\u003cp\u003e大阪を中心とした、カレーチェーンです。\n兵庫(芦屋)や東京(丸の内)にもあるみたいです。\u003c/p\u003e\n\u003ch2 id=\"あとから来る辛さ\"\u003eあとから来る辛さ\u003c/h2\u003e\n\u003cp\u003eこのカレーですが、最初の一口は「あれ?」という感じですが、\n後から辛さが来ます。玉子入りを選ぶことで多少マイルドになりますが、\n辛いのが苦手な人はおすすめしません。\u003c/p\u003e\n\u003ch2 id=\"回転の速さ\"\u003e回転の速さ\u003c/h2\u003e\n\u003cp\u003e自分がよく行っているのが阪急三番街店ですが、\nここの回転の速さはすごいです。\n店員の無駄のない手さばきに合わせて自分も無駄なく食べるのが好きです。\u003c/p\u003e\n"
  }, 
  {
    "title": "インデアンカレー",
    "url": "https://www.ikemo3.com/manual/indiancurry/",
    "contents": "\u003cp\u003e自分がよく行く\u003ca href=\"http://www.indiancurry.jp/shop/sambangai.html\"\u003e三番街店\u003c/a\u003eでの頼み方です。\u003c/p\u003e\n\u003ch2 id=\"頼む前の準備\"\u003e頼む前の準備\u003c/h2\u003e\n\u003cp\u003e席が狭いので、荷物が多い人は注意してください。\u003c/p\u003e\n\u003ch2 id=\"頼み方\"\u003e頼み方\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e行列の最後尾で待つ\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003eメニューを決める。\n\u003cul\u003e\n\u003cli\u003e辛いのが好きな人は「レギュラー」、苦手な人は「レギュラー玉子入り」でいいと思います。\u003c/li\u003e\n\u003cli\u003e詳細は\u003ca href=\"http://www.indiancurry.jp/menu.html\"\u003eメニュー\u003c/a\u003e参照。\u003ca href=\"http://www.indiancurry.jp/shop/sambangai.html\"\u003e三番街店\u003c/a\u003eはカレーの他はハヤシライスのみです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e会計の人に呼ばれたら、メニューを言って、お金を払う。\n\u003cul\u003e\n\u003cli\u003eフライングしないように注意\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003eチップをもらいます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e店内の行列に詰めて並ぶ。\u003c/li\u003e\n\u003cli\u003e店員に人数を聞かれるので答える。\u003c/li\u003e\n\u003cli\u003e店員に席を勧められたら、その席に座る。\n\u003cul\u003e\n\u003cli\u003e荷物は椅子の下に置きます。\u003c/li\u003e\n\u003cli\u003eコートなどは来たまま。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eワクワクしながら待ちます。\u003c/li\u003e\n\u003cli\u003eカレーとピクルスが来たら食べます。\n\u003cul\u003e\n\u003cli\u003e腕が隣の人と当たらないように。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e食べ終わったら「ごちそうさまでした」と言って外に出る。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e長々と書きましたが、別にマナーが厳しい店でも、\n食べる時間に決まりがあるわけではありません。\nただ、この店は回転率が高いので、\n流れ作業のように黙々と味わって食べるのが個人的には好きです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e行列がない日はないので。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e何度かフライングして恥ずかしい思いをしましたorz\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "大阪",
    "url": "https://www.ikemo3.com/tags/osaka/",
    "contents": ""
  }, 
  {
    "title": "不祥事",
    "url": "https://www.ikemo3.com/dic/scandal/",
    "contents": "\u003ch2 id=\"不祥事とは\"\u003e不祥事とは\u003c/h2\u003e\n\u003cp\u003e何か良くないことをやらかしたことです。\u003c/p\u003e\n\u003ch2 id=\"会社の不祥事には3段階ある\"\u003e会社の不祥事には3段階ある\u003c/h2\u003e\n\u003cp\u003e自分は、ある会社で不祥事を行った場合、\n3段階のどれに当てはまりそうかを見ています。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e一個人の問題\u003c/li\u003e\n\u003cli\u003e組織的な問題\u003c/li\u003e\n\u003cli\u003e会社全体の問題\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e個人の問題は、会社の組織としては問題ないが、\nたまたまその一人がやらかした場合です。\n組織的な問題は、一個人ではなく、\n組織的な構造に問題が出ているケースです。\n会社全体の問題は、不祥事が「社是」になっているケースです。\u003c/p\u003e\n\u003ch2 id=\"見極めは難しい\"\u003e見極めは難しい\u003c/h2\u003e\n\u003cp\u003e当たり前ですが、まともな企業、特に上場している企業のトップが自ら、\n不正しろというケースはまずありません。\n無茶な目標を掲げたり、大言壮語だから不正をするとは限りません。\n逆に、常にキレイ事ばかり言っているが、\nとんでもないことをしていたケースもあります(「大歳卓麻 盗撮」で検索)。\u003c/p\u003e\n"
  }, 
  {
    "title": "大阪国際空港(伊丹空港)",
    "url": "https://www.ikemo3.com/dic/osaka-airport/",
    "contents": "\u003ch2 id=\"大阪国際空港伊丹空港とは\"\u003e大阪国際空港(伊丹空港)とは\u003c/h2\u003e\n\u003cp\u003e大阪の北の方にある空港です。\n国際空港となっていますが、現在は国内線のみです。\u003c/p\u003e\n\u003ch2 id=\"お店\"\u003eお店\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eたこ焼きは検査場を入った先にもあります(食べたことないですが)\u003c/li\u003e\n\u003cli\u003e551蓬莱は検査場入った先にはありません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"乗り継ぎ\"\u003e乗り継ぎ\u003c/h2\u003e\n\u003cp\u003eリムジンバスがありますが、梅田行き(640円)はモノレール + 阪急より高いです。\nなんば行き(640円)はモノレール + 阪急 + 地下鉄(650円)より安いです。\nもちろん値段だけでなく「楽さ」も重要ですが。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.okkbus.co.jp/index2.html\"\u003eリムジンバスの大阪空港交通\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"閉店551蓬莱のレストラン\"\u003e(閉店)551蓬莱のレストラン\u003c/h2\u003e\n\u003cp\u003eターミナルビル改修に伴い、2018-04-18を持って閉店しました\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e伊丹空港には、\u003ca href=\"/dic/551/\"\u003e551蓬莱\u003c/a\u003eのレストランがあります。\nセットもありますが、単品でも頼めます。豚まん1個からでもOKです。\n例えばこんなメニューがあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e豚まん(170円)\n\u003cul\u003e\n\u003cli\u003eいつもの豚まんです。もちろんテーブルに辛子が置いてあります。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e焼餃子(200円)\n\u003cul\u003e\n\u003cli\u003e小ぶりですが、5個で200円と頼みやすい値段です。\u003c/li\u003e\n\u003cli\u003e味はスタンダードな餃子です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e揚げ焼売の甘酢あんかけ(230円)\n\u003cul\u003e\n\u003cli\u003eこの店のオリジナルメニューだそうです\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003eあまり揚げてる感じはしませんでしたが、甘酢好きならおすすめ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.osaka-airport.co.jp/shop-and-dine/notices/1209\"\u003eターミナルビル改修に伴う４月１７日店舗閉店のお知らせ | お知らせ | 大阪国際空港（伊丹空港）\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.jtrip.co.jp/magazine_kansai/article/meal/9479/\"\u003e大阪国際空港のおすすめグルメ 出発までにサクッとごはん | J-TRIP Smart Magazine 関西\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "東横イン",
    "url": "https://www.ikemo3.com/dic/toyoko-inn/",
    "contents": "\u003ch2 id=\"東横インとは\"\u003e東横インとは\u003c/h2\u003e\n\u003cp\u003eビジネスホテルのチェーン店です。\u003c/p\u003e\n\u003ch2 id=\"めんどくさがりに良い\"\u003eめんどくさがりに良い\u003c/h2\u003e\n\u003cp\u003e自分は一人で旅行、出張に行くときは、\n第一候補に東横インを選びます。\n何でかというと、選ぶのがめんどくさいからです。\u003c/p\u003e\n\u003cp\u003e他のホテルだと評判とか設備とかいちいち調べないといけないのですが、\n東横インは慣れているので、調べなくてもだいたい分かっています。\n10回泊まると1回分無料になるカード会員システム\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eもあるので。\u003c/p\u003e\n\u003ch2 id=\"朝食\"\u003e朝食\u003c/h2\u003e\n\u003cp\u003e東横インと言えば朝食が無料です。\n無料なのでメニューは大したことないですが、\n店によって工夫があって、これはこれでOKです。\n本気でいい朝食を食べるなら、外に食べに行くので。。。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.toyoko-inn.com/club/\"\u003e東横INNクラブについて－ホテル・ビジネスホテル予約\u003c/a\u003e、クレジット機能のないカードを使ってます。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "診察券",
    "url": "https://www.ikemo3.com/dic/patient-registration-card/",
    "contents": "\u003ch2 id=\"診察券とは\"\u003e診察券とは\u003c/h2\u003e\n\u003cp\u003e病院でもらうものです。\u003c/p\u003e\n\u003ch2 id=\"診察券は保存すべきか\"\u003e診察券は保存すべきか?\u003c/h2\u003e\n\u003cp\u003e調べてみたのですが、正直断言はできませんでした。\u003c/p\u003e\n\u003cp\u003e残す理由として挙げられているのは2つあります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e再診のために必要\u003c/li\u003e\n\u003cli\u003e障害年金申請のために必要\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"再診のため\"\u003e再診のため\u003c/h3\u003e\n\u003cp\u003e医師法第二十四条に以下のように記載されています\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e第二十四条　医師は、診療をしたときは、遅滞なく診療に関する事項を診療録に記載しなければならない。\n２　前項の診療録であつて、病院又は診療所に勤務する医師のした診療に関するものは、その病院又は診療所の管理者において、その他の診療に関するものは、その医師において、五年間これを保存しなければならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eつまり、5年以内に再診で受ける可能性があるなら、保存しておくのが良いでしょう。\nまあ、捨てても大丈夫だと思いますが。\u003c/p\u003e\n\u003ch3 id=\"障害年金申請\"\u003e障害年金申請\u003c/h3\u003e\n\u003cp\u003e障害年金の受診状況等証明書\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003eが添付できない時に、\n代わりに「診察券」が利用可能となっていますが、\n診察券でないといけないわけではありません。\u003c/p\u003e\n\u003cp\u003e正確さを期すならお薬手帳か領収書ですが、\n領収書はかさばるので、普通の人はお薬手帳を残しておけばいいかと思います。\u003c/p\u003e\n\u003cp\u003e…と思ったんですが、「診察をして薬をもらわなかった」可能性があるんですよね。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://elaws.e-gov.go.jp/search/elawsSearch/elaws_search/lsg0500/detail?lawId=323AC0000000201\u0026amp;openerCode=1#116\"\u003e医師法\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.nenkin.go.jp/service/jukyu/todoke/shougai/20140421-20.html\"\u003e受診状況等証明書を提出しようとするとき｜日本年金機構\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "病院",
    "url": "https://www.ikemo3.com/tags/hospital/",
    "contents": ""
  }, 
  {
    "title": "Vagrant + CentOS: yum updateで停止する場合の修正方法",
    "url": "https://www.ikemo3.com/inverted/vagrant/yum-update-stalled/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eVagrantでCentOS Boxを使う場合、\n初回のyum updateがものすごく遅いのを解消する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVagrant 1.9.6\u003c/li\u003e\n\u003cli\u003eCentOS(ゲスト): centos/7  (libvirt, 1710.01)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003eこの問題の原因は、初回の\u003ccode\u003eyum update\u003c/code\u003e実行時に、\nfastestmirrorプラグインの実行が行われる前にリポジトリ情報を取得するため、\n速度が出てないためです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e以下のAnsible Playbookを流すことで対処できます。\n(他の方法は思いつきませんでした)\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e- command: timeout -sKILL 1 yum update\n  args:\n    creates: /var/cache/yum/x86_64\n  failed_when: false\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eこれは以下のようなことをしています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003etimeoutコマンドを使って、1秒後にKILLシグナルを送る。\u003c/li\u003e\n\u003cli\u003eコマンドを使用すると、\u003ccode\u003e/var/cache/yum/x86_64\u003c/code\u003eが作成される。\u003c/li\u003e\n\u003cli\u003eコマンドが失敗するが、無視する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e推測ですが、標準出力の内容からほぼ間違いないと思います。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "シェルスクリプト",
    "url": "https://www.ikemo3.com/dic/shellscript/",
    "contents": "\u003ch2 id=\"シェルスクリプトとは\"\u003eシェルスクリプトとは\u003c/h2\u003e\n\u003cp\u003ebash, shなどを使ったプログラムです。\nWindowsのバッチファイルに相当します。\u003c/p\u003e\n\u003ch2 id=\"shellcheck\"\u003eShellCheck\u003c/h2\u003e\n\u003cp\u003e何度か使ったことがあるのですが、\n\u003ca href=\"https://www.shellcheck.net/\"\u003eShellCheck\u003c/a\u003eというWebサイト、あるいはコマンドが便利です。\u003c/p\u003e\n"
  }, 
  {
    "title": "ねんがんの アイスソードをてにいれたぞ!",
    "url": "https://www.ikemo3.com/dic/nengan-no-ice-sword/",
    "contents": "\u003ch2 id=\"ねんがんの-アイスソードをてにいれたぞとは\"\u003eねんがんの アイスソードをてにいれたぞ!とは\u003c/h2\u003e\n\u003cp\u003eロマンシング サ・ガ(ロマサガ)の有名なセリフです。\u003c/p\u003e\n\u003ch2 id=\"ハードの制限が生んだ奇跡\"\u003eハードの制限が生んだ奇跡\u003c/h2\u003e\n\u003cp\u003e元のゲームはスーパーファミコン(スーファミ)で発売されたのですが、\nスーファミはハードの制限上、漢字が思うように出せませんでした\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\nそのため、ロマサガでは一部の漢字を自前で持ってたようですが、\n漢字がひらがなより大きくなっていました。\nなので、結果的に以下の選択肢が強調されていました。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eメ几\n木又してでも　うばいとる\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"応用性が高い\"\u003e応用性が高い\u003c/h2\u003e\n\u003cp\u003eゲームではアイスソードでしたが、\n他のアイテムにも簡単に置き換えられるので、応用性が高いです。\nただしこの台詞を使うと年齢がバレますが。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eそのはず。。。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "情報リテラシー",
    "url": "https://www.ikemo3.com/dic/information-literacy/",
    "contents": "\u003ch2 id=\"情報リテラシーとは\"\u003e情報リテラシーとは\u003c/h2\u003e\n\u003cp\u003e情報を適切に摂取し、適切に吐き出すための能力です。\u003c/p\u003e\n\u003ch2 id=\"コンピュータリテラシーではない\"\u003eコンピュータリテラシーではない\u003c/h2\u003e\n\u003cp\u003eもうほとんど覚えていないので推測で書きますが、\n自分が情報リテラシーという概念を知ったのは、\n2002年、\u003ca href=\"/dic/ibm-japan/\"\u003e日本IBM\u003c/a\u003eでの研修のプレゼン資料を作成しているときでした。\nその資料は残っていないのですが、プレゼンの主題が「情報リテラシー」でした。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/dic/bakatter/\"\u003eバカッター\u003c/a\u003eのように、いくらコンピュータを使いこなしてても、\nデマをデマと判断できない人は、情報リテラシーがあるとは言えません。\n2002年頃は、コンピュータリテラシーが大切だという話を\nたびたび耳にしてて、「これは違うんじゃないの?」と思って、\nそのプレゼンを作りました。\u003c/p\u003e\n"
  }, 
  {
    "title": "内定取消",
    "url": "https://www.ikemo3.com/dic/job-offer-cancellation/",
    "contents": "\u003ch2 id=\"内定取消とは\"\u003e内定取消とは\u003c/h2\u003e\n\u003cp\u003e自分が体験した辛い出来事です。\u003c/p\u003e\n\u003ch2 id=\"経緯\"\u003e経緯\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e2008年1月頃から転職活動をしていた。\u003c/li\u003e\n\u003cli\u003e2008年2月29日に内定をもらった。\u003c/li\u003e\n\u003cli\u003e2008年3月末で\u003ca href=\"/dic/ibm-japan/\"\u003e日本IBM\u003c/a\u003eを退社した。\n\u003cul\u003e\n\u003cli\u003eこの時点では2008年6月1日から入社予定だった。\u003c/li\u003e\n\u003cli\u003e2ヶ月間あるが、リフレッシュ期間だと思ってのんびり過ごすつもりだった。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e2008年4月25日に、内定を白紙にしたいという連絡が来た。\u003c/li\u003e\n\u003cli\u003e2008年4月28日に、正式に内定取消された。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"人間万事塞翁が馬\"\u003e人間万事塞翁が馬\u003c/h2\u003e\n\u003cp\u003eリフレッシュ休暇のつもりが突然無職になってものすごく焦って、\n実家に戻ることになったのですが、\n結果的には、これをきっかけに、物事がプラスに回るようになってきました。\u003c/p\u003e\n\u003ch2 id=\"時期が悪かった\"\u003e時期が悪かった\u003c/h2\u003e\n\u003cp\u003eつい最近(2017年)まで気づかなかったのですが、\n今思えば、急に内定取り消しされてもしょうがない事情がありました。\nそれは2007年からの世界金融危機です。\n当時は切羽詰ってたとはいえ、動くには最悪の時期だったんですね。\n結果的にプラスだったのもあって、\n少なくともその会社については恨む気持ちは完全になくなりました。\u003c/p\u003e\n"
  }, 
  {
    "title": "北大路魯山人",
    "url": "https://www.ikemo3.com/dic/rosanjin/",
    "contents": "\u003ch2 id=\"北大路魯山人とは\"\u003e北大路魯山人とは\u003c/h2\u003e\n\u003cp\u003e日本の芸術家です。\u003c/p\u003e\n\u003ch2 id=\"美食家\"\u003e美食家\u003c/h2\u003e\n\u003cp\u003e美食家として有名です。\n青空文庫には、たくさんの作品が載っています。\n一つ一つが短いので、ちょっとした空き時間に読むのにおすすめです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"真摯さを感じる\"\u003e真摯さを感じる\u003c/h2\u003e\n\u003cp\u003e気難しい人として知られているようですが、自分はむしろ、真摯さを感じます。\nたぶん、求めるレベルが高すぎて、周りに理解されないために、\n結果的に気難しい人と見られるようになったのだと思います。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e良いからおすすめするわけで、暇つぶしではないですよ。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "MP",
    "url": "https://www.ikemo3.com/dic/mp/",
    "contents": "\u003ch2 id=\"mpとは\"\u003eMPとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/dq/\"\u003eドラクエ\u003c/a\u003eなどのRPGでよく使われる単語で、\n「マジック・パワー」もしくは「マジック・ポイント」の略です。\n魔力を指します。\u003c/p\u003e\n\u003ch2 id=\"精神力\"\u003e精神力\u003c/h2\u003e\n\u003cp\u003eこれを転じて、精神力を指すこともあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://rashita.net/blog/?p=9730\"\u003eセルフコントロール力との付き合い方　あるいはMP戦略 – R-style\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://cyblog.jp/11771\"\u003e脳はMPを節約しようと躍起になっている | シゴタノ！\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://cyblog.jp/26030\"\u003e週に一度のメンテナンスで時間と気力の浪費を防ぐ | シゴタノ！\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://cyblog.jp/29845\"\u003e調子が良くても時間がきたらやめる | シゴタノ！\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://cyblog.jp/25889\"\u003e「割り込み」の通知は最小限に抑えないと時間とMPのロスになる | シゴタノ！\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://cyblog.jp/27232\"\u003e秋山好古のミニマリスト的な生き方、その先にある「突出」した成果の出し方 | シゴタノ！\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "スタック",
    "url": "https://www.ikemo3.com/dic/stack/",
    "contents": "\u003ch2 id=\"スタックとは\"\u003eスタックとは\u003c/h2\u003e\n\u003cp\u003eデータ構造の一つで、最後に入れたものから順番に取り出すものです。\u003c/p\u003e\n\u003ch2 id=\"深入り危険\"\u003e深入り危険\u003c/h2\u003e\n\u003cp\u003e最近思っているのが、難しいことをやると、スタックが深くなりがちということです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eAをしたい\u003c/li\u003e\n\u003cli\u003e途中でBが気になったので調べる\u003c/li\u003e\n\u003cli\u003e途中でCをやらないといけないと気づいたので調べる\u003c/li\u003e\n\u003cli\u003e途中でDをやらないといけないと気づいたので調べる\u003c/li\u003e\n\u003cli\u003e以下続く。。。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eこんな感じで、AをやるためにB、BをやるためにC、CをやるためにDと進めていくと、\nそもそも何のためにしているのか分からなくなりがちです。\nこういうのって、スタックに積んでいくようなイメージがあります。\nネストが深くなるでもいいのですが、\nスタックだと「スタックオーバーフロー」という破綻を表す言葉があるので、\n分かりやすいかなと。。。\u003c/p\u003e\n\u003cp\u003eスタックオーバーフローを避けるためには、深入りしそうなときは一旦引いて、\n何をすべきかを整理して、スタックを深くするのではなく、\n順番に進めていくようにすればいいと思います。\u003c/p\u003e\n"
  }, 
  {
    "title": "メモ",
    "url": "https://www.ikemo3.com/dic/memo/",
    "contents": "\u003ch2 id=\"メモとは\"\u003eメモとは\u003c/h2\u003e\n\u003cp\u003e思いついたことなどを書くことです。\u003c/p\u003e\n\u003ch2 id=\"メモはいつ取るか\"\u003eメモはいつ取るか\u003c/h2\u003e\n\u003cp\u003eメモを取るタイミングは「思いついたとき」です。\n忘れたくないと判断したときはすぐ、\nそうでないときは、10秒経っても忘れられないものは全て記録します。\nなぜそういう基準にするかというと、\n10秒経って忘れるのはそれほど大したことではなく、\n10秒経っても忘れられないものは、何かしら覚えておきたいものだからです。\nもしメモをしないと、ずっと覚え続ける必要があり、\u003ca href=\"/dic/mp/\"\u003eMP\u003c/a\u003eを消耗します。\u003c/p\u003e\n\u003ch2 id=\"どのようなメモを取るか\"\u003eどのようなメモを取るか\u003c/h2\u003e\n\u003cp\u003e基本的には「全部」ですが、以下の2つが多いです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e思いついたタスク・アイデア\u003c/li\u003e\n\u003cli\u003e今やっていること(手順)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e逆に感想はあまり書かないですね。\u003c/p\u003e\n\u003ch2 id=\"何でメモを取るか\"\u003e何でメモを取るか\u003c/h2\u003e\n\u003cp\u003e「深く考えるための最強のノート術」には、以下の条件が書かれています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eB5サイズ\n\u003cul\u003e\n\u003cli\u003eただし自分が使いやすいものがベスト\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eリングタイプ\n\u003cul\u003e\n\u003cli\u003e立った状態でも書ける\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e罫線なし\n\u003cul\u003e\n\u003cli\u003e罫線は自由な発想を妨げる\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B079DKD21V/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B079DKD21V.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B079DKD21V/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n深く考えるための 最強のノート術: ――年収1億稼ぐための思考法\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"メモはいつ処理するか\"\u003eメモはいつ処理するか\u003c/h2\u003e\n\u003cp\u003eメモはまず一元管理されていない場合は、一元管理します。\n自分はSimplenoteというアプリを使ってメモを取りますが、\n一旦Noteshelf 2というアプリに移します。\nタスク管理は別のシステムのため、まずそこに移します。\u003c/p\u003e\n\u003cp\u003eこの作業は気づいたときに素早く、遅くてもその日中に行います。\nなぜなら、メモ書きは、iPhoneで書かれたものが多く、\n次の日になると、何をやりたいか分からないからです。\n例えば以下のような感じで書き換えます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e「生しぐれ」→「生志ぐれを食べる」\u003c/li\u003e\n\u003cli\u003e「葛根湯なんとか」→「葛根湯加川芎辛夷を買う」\u003c/li\u003e\n\u003cli\u003e「自炊」→「自炊についての記事を書く」\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003eメモの重要性について書かれている書籍について書いていきます。\u003c/p\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/477594181X/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/477594181X.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/477594181X/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n1440分の使い方 ──成功者たちの時間管理15の秘訣 (フェニックスシリーズ)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B079DKD21V/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B079DKD21V.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B079DKD21V/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n深く考えるための 最強のノート術: ――年収1億稼ぐための思考法\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eどこに行くにも持参するものは何かと尋ねられたとき、\nブランソンは最重要アイテムとして、あるものを選んだ。\n2006年5月5日のインタビューで、次のように答えている。\u003c/p\u003e\n\u003cp\u003eくだらないことのように聞こえるかもしれないが、常にズボンの後ろポケットに小さなノートを入れておくこと。\nこれが最も重要だろう。私が旅行のときに持っていくものの筆頭は、そのノートだと思う。\n(中略)そうした数枚の紙切れなくして、ヴァージン・グループを現在の規模にまで発展させることは、\n決してできなかっただろう。\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "自炊",
    "url": "https://www.ikemo3.com/dic/self-catering/",
    "contents": "\u003ch2 id=\"自炊とは\"\u003e自炊とは\u003c/h2\u003e\n\u003cp\u003e自分で食事を作ることです。\u003c/p\u003e\n\u003ch2 id=\"お金がなかった半分趣味\"\u003eお金がなかった→半分趣味\u003c/h2\u003e\n\u003cp\u003e大学の頃はお金もなかったのでほとんど自炊でしたが、\n社会人になってからも自炊をよくしていました。\nレパートリーはそんなにないのですが、\n調理用具の使い方とか、他の人よりはできるみたいです。\u003c/p\u003e\n\u003ch2 id=\"初心者向けメニュー\"\u003e初心者向けメニュー\u003c/h2\u003e\n\u003cp\u003e自分がよく作ってたのはこんなメニューです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eカレー\n\u003cul\u003e\n\u003cli\u003eじゃがいも、にんじん、たまねぎ、鶏もものスタンダードなカレーです。\u003c/li\u003e\n\u003cli\u003e同じ材料でシチューも作れます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e肉野菜炒め\n\u003cul\u003e\n\u003cli\u003e野菜はキャベツ、もやしなど\u003c/li\u003e\n\u003cli\u003e肉は豚肉が火が通りやすくて良いです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e一人鍋\n\u003cul\u003e\n\u003cli\u003e中華スープとコチュジャンを使った鍋を冬はよく食べていました。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "新世紀エヴァンゲリオン",
    "url": "https://www.ikemo3.com/dic/evangelion/",
    "contents": "\u003ch2 id=\"新世紀エヴァンゲリオンとは\"\u003e新世紀エヴァンゲリオンとは\u003c/h2\u003e\n\u003cp\u003e1995年〜1996年に放映されたアニメです。\u003c/p\u003e\n\u003ch2 id=\"リアルタイムで見ていた\"\u003eリアルタイムで見ていた\u003c/h2\u003e\n\u003cp\u003e自分が\u003ca href=\"/dic/osaka-university/\"\u003e大阪大学\u003c/a\u003eに入ったのが1995年で、その年の10月に始まりました。\nそれまではアニメと言えば一般向けで、\nどちらかと言えばマニアックな作品は初めてでした。\nテレビ東京系のアニメを見たのもこれが初めてで、運がいいのかもしれません。\u003c/p\u003e\n\u003ch2 id=\"オタクが理解できなかった\"\u003eオタクが理解できなかった\u003c/h2\u003e\n\u003cp\u003eエヴァをリアルタイムで見た他の人と違うのは、\nTVの第弐拾伍話、最終話の感想ですね。\nあの2話が理解できなかった人が多いようですが、\n自分は素直に「こう来るかぁ」と思いました。\u003c/p\u003e\n\u003cp\u003e自分の中でもう満足したので、劇場版は見に行かず、あとでDVDで見ました。\n劇場版も素直に「こう来るかぁ」と満足しましたが。\u003c/p\u003e\n\u003cp\u003e自分の中では、アニメは見るよりは感じるものなので、\nエヴァについていろいろ考察をする人(オタク)が正直理解できませんでした。\n理解はできませんでしたが、「こういう人もいるんだなぁ」と\nちょっとびっくりした程度です。\u003c/p\u003e\n\u003ch2 id=\"エヴァ世代\"\u003eエヴァ世代\u003c/h2\u003e\n\u003cp\u003e自分にとってエヴァはインパクトも強く、思い入れのあるタイトルの一つです。\nもうほとんどアニメは見ないのですが、\n「ヱヴァンゲリヲン新劇場版」は今のところ全部見に行っています。\n新作はまだかなー。\u003c/p\u003e\n"
  }, 
  {
    "title": "MariaDB",
    "url": "https://www.ikemo3.com/manual/mariadb/",
    "contents": "\u003cp\u003eMySQL / MariaDB共通の情報は\u003ca href=\"/manual/mysql/\"\u003eMySQL\u003c/a\u003eに記載しています。\u003c/p\u003e\n\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003ch3 id=\"前提条件\"\u003e前提条件\u003c/h3\u003e\n\u003cp\u003eCentOS 7.4.1708、MariaDB 10.2で確認しています。\u003c/p\u003e\n\u003ch3 id=\"ansible-playbook\"\u003eAnsible Playbook\u003c/h3\u003e\n\u003cp\u003eMariaDBの\u003ca href=\"https://downloads.mariadb.org/mariadb/repositories/\"\u003eDownloads\u003c/a\u003eからyumの設定が取得できます。\n対応するAnsibleの設定は以下になります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eadd MariaDB repository\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003eyum_repository\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003emariadb\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003edescription\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eMariaDB\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003ebaseurl\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ehttp://yum.mariadb.org/10.2/centos7-amd64\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003egpgkey\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ehttps://yum.mariadb.org/RPM-GPG-KEY-MariaDB\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003egpgcheck\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eyes\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eミラーサーバが適切に設定されていないのか、なぜか遅いみたいです。\u003c/p\u003e\n"
  }, 
  {
    "title": "炎上",
    "url": "https://www.ikemo3.com/dic/enjoh/",
    "contents": "\u003ch2 id=\"炎上とは\"\u003e炎上とは\u003c/h2\u003e\n\u003cp\u003e心無い人に向けられた罰です。\u003c/p\u003e\n\u003ch2 id=\"flameとは異なる\"\u003eflameとは異なる\u003c/h2\u003e\n\u003cp\u003e似たような表現として、flame(フレーム)というのがありますが、\n自分の経験上\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、炎上とflameは微妙に違うと思います。\u003c/p\u003e\n\u003cp\u003eなぜなら、flameはどちらかと言えば「議論が白熱した結果、感情的になってしまう」\nことを指しているからです。基本的には「賛否両論」です。\n一方で、炎上はどちらかと言えば「批判殺到」です。\n少なくとも自分は、別物だと考えています。\u003c/p\u003e\n\u003ch2 id=\"炎上はなかなか鎮火しない\"\u003e炎上はなかなか鎮火しない\u003c/h2\u003e\n\u003cp\u003eこれも自分の経験ですが、フレームはあまり炎は広がりません。\nなぜなら、そういう人は暴論のようでも、どこか優しさが感じられるからです。\u003c/p\u003e\n\u003cp\u003e一方で、炎上はなかなか鎮火しません。\nそういう人ってだいたいどこか別の場所でも憎まれているんですよね。\n「何で俺が?」と思ったらもう手遅れです。\u003c/p\u003e\n\u003cp\u003eそういうのは見てれば分かります。なぜなら、「本気度」が違うからです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eお察しください。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Moment.js",
    "url": "https://www.ikemo3.com/manual/momentjs/",
    "contents": "\u003ch2 id=\"webpack\"\u003ewebpack\u003c/h2\u003e\n\u003cp\u003eグローバルに\u003ccode\u003emoment().format('YYYYMMDD')\u003c/code\u003eのように使いたい場合は、\nwebpack.config.jsに以下のように記載します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ewebpack\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003erequire\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;webpack\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003emodule\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eexports\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eplugins\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ewebpack\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eContextReplacementPlugin\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e/moment[\\/\\\\]locale$/\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e/en|ja/\u003c/span\u003e),\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ewebpack\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eProvidePlugin\u003c/span\u003e({\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003emoment\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;moment\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    })\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Nodejs",
    "url": "https://www.ikemo3.com/tags/nodejs/",
    "contents": ""
  }, 
  {
    "title": "Npm",
    "url": "https://www.ikemo3.com/tags/npm/",
    "contents": ""
  }, 
  {
    "title": "webpack",
    "url": "https://www.ikemo3.com/manual/webpack/",
    "contents": "\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm install --save-dev webpack\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm install --save-dev webpack-cli\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eコマンドは \u003ccode\u003e./node_modules/.bin/webpack\u003c/code\u003e に格納されます。\u003c/p\u003e\n\u003cp\u003eまた、package.json(\u003ca href=\"/manual/npm/\"\u003enpm\u003c/a\u003e)に以下のように書くと、\n\u003ccode\u003enpm run build\u003c/code\u003eで実行できるようになります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-json\" data-lang=\"json\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;scripts\u0026#34;\u003c/span\u003e: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;build\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;webpack --mode production\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"基本的な概念\"\u003e基本的な概念\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEntry: 入力\u003c/li\u003e\n\u003cli\u003eOutput: 出力\u003c/li\u003e\n\u003cli\u003eLoader: JavaScriptファイル以外を扱えるようにするためのもの\u003c/li\u003e\n\u003cli\u003ePlugins: プロセス中に加工するもの\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"設定\"\u003e設定\u003c/h2\u003e\n\u003ch3 id=\"基本フォーマット\"\u003e基本フォーマット\u003c/h3\u003e\n\u003cp\u003e以下のような感じです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003emodule\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eexports\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eentry\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;./index.js\u0026#39;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eoutput\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003efilename\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;bundle.js\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"webpackconfigjsの書式\"\u003ewebpack.config.jsの書式\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eentryは複数書ける→\u003ca href=\"https://webpack.github.io/docs/multiple-entry-points.html\"\u003emultiple entry points\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[name]\u003c/code\u003eがエントリ名に置換される模様。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"entry\"\u003eentry\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://webpack.js.org/configuration/entry-context/#entry\"\u003eEntry and Context\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://webpack.js.org/concepts/#entry\"\u003eConcepts\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://webpack.js.org/concepts/entry-points/\"\u003eEntry Points\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ccode\u003eentry: './index.js'\u003c/code\u003eのように文字列を渡すと、名前は\u0026rsquo;main\u0026rsquo;になっているようです。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIf a string or array of strings is passed, the chunk is named main.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"module\"\u003emodule\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://webpack.js.org/configuration/module/\"\u003eModule\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://webpack.js.org/concepts/module-resolution/\"\u003eModule Resolution\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下の3つが指定可能\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e絶対パス\u003c/li\u003e\n\u003cli\u003e相対パス(\u003ccode\u003e.\u003c/code\u003eか\u003ccode\u003e..\u003c/code\u003eで始まる)\u003c/li\u003e\n\u003cli\u003eモジュールパス\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/manual/webpack/config/resolve/\"\u003eresolve.modules\u003c/a\u003e参照\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"output\"\u003eoutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://webpack.js.org/configuration/output/\"\u003eOutput\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e主なオプション\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://webpack.js.org/configuration/output/#output-filename\"\u003efilename\u003c/a\u003e: 出力ファイル名\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://webpack.js.org/configuration/output/#output-path\"\u003epath\u003c/a\u003e: 出力パス(絶対パス)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://webpack.js.org/configuration/output/#output-librarytarget\"\u003elibraryTarget\u003c/a\u003e: ライブラリのエクスポート方法\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://webpack.js.org/guides/author-libraries/\"\u003eAuthoring Libraries\u003c/a\u003eも参照。\u003c/li\u003e\n\u003cli\u003eよく使いそうなのは以下の2つかなと。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evar\u003c/code\u003e: 変数として定義\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eumd\u003c/code\u003e: 環境によって自動割り当て\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://webpack.js.org/configuration/output/#output-library\"\u003elibrary\u003c/a\u003e: \u003ccode\u003evar\u003c/code\u003eの場合は変数名\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ewebpack.config.jsには以下のように記載する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003epath\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003erequire\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;path\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003emodule\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eexports\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eoutput\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003epath\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003epath\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eresolve\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003e__dirname\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;dist/assets\u0026#39;\u003c/span\u003e),\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003efilename\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;bundle.js\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"resolve\"\u003eresolve\u003c/h3\u003e\n\u003ch4 id=\"主なオプション\"\u003e主なオプション\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://webpack.js.org/configuration/resolve/#resolve-alias\"\u003ealias\u003c/a\u003e: importしたときのパスのaliasをつくる\n\u003cul\u003e\n\u003cli\u003e表を見てピンとこないときは、まず\u003ca href=\"https://webpack.js.org/concepts/module-resolution/\"\u003eModule Resolution\u003c/a\u003eを見たほうが良さそう\u0026gt;です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"alias\"\u003ealias\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026lsquo;$\u0026lsquo;で終わる場合は、完全一致になります。\u003c/li\u003e\n\u003cli\u003e解決した結果がディレクトリの場合は\u003ccode\u003eindex.js\u003c/code\u003eとなっていますが、これはpackage.json(\u003ca href=\"/manual/npm/\"\u003enpm\u003c/a\u003e)で別のものにできるようです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"プラグイン\"\u003eプラグイン\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eバンドル対象の上書き: \u003ca href=\"/inverted/webpack/context-replacement/\"\u003eContextReplacementPlugin\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://webpack.js.org/plugins/provide-plugin/\"\u003eProvidePlugin\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"最小化\"\u003e最小化\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://webpack.js.org/guides/production/#minification\"\u003eMinification\u003c/a\u003e参照。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eUglifyJSPluginを使う\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--optimize-minimize\u003c/code\u003eを使う\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"requireに変数があるときの挙動\"\u003erequireに変数があるときの挙動\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://webpack.js.org/guides/dependency-management/#require-with-expression\"\u003erequire with expression\u003c/a\u003eによれば、\n\u003ccode\u003erequire(\u0026quot;./template/\u0026quot; + name + \u0026quot;.ejs\u0026quot;);\u003c/code\u003eのように、\n変数\u003ccode\u003ename\u003c/code\u003eを含むようなパターンがあるときは、\n「全ての文字」にマッチするように正規表現が作られます。\u003c/p\u003e\n\u003cp\u003eこれによって、全てのファイルが取り込まれ、\n正常に動作しますが、その代償として、不要なファイルが含まれる可能性があります。\nこれを制御するためには、\u003ca href=\"/inverted/webpack/context-replacement/\"\u003eContextReplacementPlugin\u003c/a\u003eを使うとよいです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Investment",
    "url": "https://www.ikemo3.com/tags/investment/",
    "contents": ""
  }, 
  {
    "title": "ガチャ",
    "url": "https://www.ikemo3.com/dic/gacha/",
    "contents": "\u003ch2 id=\"ガチャとは\"\u003eガチャとは\u003c/h2\u003e\n\u003cp\u003e愚者から金を毟り取る装置です。\n\u003cstrong\u003eガチャガチャ\u003c/strong\u003eとは異なります。\u003c/p\u003e\n\u003ch2 id=\"確率が分かっていない\"\u003e確率が分かっていない\u003c/h2\u003e\n\u003cp\u003e自分は以前に比べるとアイテム課金に寛容になったのですが、\nそれでもガチャはダントツでありえないです。\u003c/p\u003e\n\u003cp\u003eなぜかというと\u003ca href=\"/dic/probability/\"\u003e確率\u003c/a\u003eが分からない愚者であることを\n誇示しているようなものだからです。\u003c/p\u003e\n\u003cp\u003e結城浩さんが\u003ca href=\"/dic/twitter/\"\u003eTwitter\u003c/a\u003eで行ったアンケートによると、\n以下のガチャの確率を正しく計算できた人はわずか39%です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eガチャを1回回すと0.022%で当たり\u003c/li\u003e\n\u003cli\u003eガチャを1回回すと300円かかる\u003c/li\u003e\n\u003cli\u003e90万円かけてこのガチャを回した時に、アイテムが1回もゲットできない確率は?\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e正解は52%です。計算ミスの可能性もありますが、\n少なくとも「数%(0ではない)」と答えた人は、ガチャに騙されるタイプです。\u003c/p\u003e\n\u003ch2 id=\"ガチャ算\"\u003eガチャ算\u003c/h2\u003e\n\u003cp\u003e上の話を少し変えて、定式化すると、以下のように考えられます。\u003c/p\u003e\n\u003cp\u003e「1/nの確率で当たりが出るガチャをn回引いた時に全て外れる確率は?」\nこれは以下の数式で計算できます。\u003c/p\u003e\n\u003cp\u003e$$ ( 1 - 1/n )^n  $$\u003c/p\u003e\n\u003cp\u003e％にするために100倍するとこんな感じです。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003en\u003c/th\u003e\n          \u003cth\u003e確率\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e100\u003c/td\u003e\n          \u003ctd\u003e36.603\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e1000\u003c/td\u003e\n          \u003ctd\u003e36.769\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e10000\u003c/td\u003e\n          \u003ctd\u003e36.786\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e100000\u003c/td\u003e\n          \u003ctd\u003e36.788\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003e数学科出身な自分としてはこれは収束するかどうかが気になるのですが、\n以下のように収束します。\u003c/p\u003e\n\u003cp\u003e$$ \\lim_{n \\to +\\infty} (1 - 1/n)^n = 1 / e$$\u003c/p\u003e\n\u003cp\u003eせっかくなので、これをガチャ算とでも呼んでおきます。\u003c/p\u003e\n\u003ch2 id=\"宝くじ未満\"\u003e宝くじ未満\u003c/h2\u003e\n\u003cp\u003eこれなら宝くじ買いますね。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e\u003c/th\u003e\n          \u003cth\u003e宝くじ\u003c/th\u003e\n          \u003cth\u003eガチャ\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e値段\u003c/td\u003e\n          \u003ctd\u003e300円\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003e300円\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e得する可能性\u003c/td\u003e\n          \u003ctd\u003e低いがある\u003c/td\u003e\n          \u003ctd\u003eない\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e確率\u003c/td\u003e\n          \u003ctd\u003e事前に公開されている\u003c/td\u003e\n          \u003ctd\u003e不透明\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e収益\u003c/td\u003e\n          \u003ctd\u003eみんなのために使われる\u003c/td\u003e\n          \u003ctd\u003e一企業の私腹に入る\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://rentwi.hyuki.net/?717643395036880896\"\u003e結城浩の連ツイ\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eもっと安いものはありますが一応。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ハタハタ",
    "url": "https://www.ikemo3.com/dic/hatahata/",
    "contents": "\u003ch2 id=\"ハタハタとは\"\u003eハタハタとは\u003c/h2\u003e\n\u003cp\u003e日本海で食用にされている魚です。\u003c/p\u003e\n\u003ch2 id=\"山陰のハタハタ\"\u003e山陰のハタハタ\u003c/h2\u003e\n\u003cp\u003eハタハタと言えば秋田のイメージがあるみたいですが(食ったことない)、\n自分は山陰のハタハタがおすすめです。\u003c/p\u003e\n\u003cp\u003e鳥取のハタハタは「とろはた」とも呼ばれ、脂が乗ってます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://portal.nifty.com/kiji/150114166061_1.htm\"\u003eハタハタだらけのハタハタフェスティバルがあった！ - デイリーポータルZ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.pref.tottori.lg.jp/dd.aspx?menuid=178132\"\u003eハタハタ/食のみやこ鳥取県/とりネット/鳥取県公式サイト\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"のどぐろより安い\"\u003eのどぐろより安い\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://www.pref.tottori.lg.jp/item/995669.htm\"\u003e2015年9月9日　沖底（境港市場）/水産試験場/とりネット/鳥取県公式サイト\u003c/a\u003eには以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e相場的には、ハタハタは1番は5～6000円/箱（5kg）とまずまずですが、漁獲の主体の3\u0026gt;～5番手は1000円/箱を切るそうです。\u003c/p\u003e\n\u003cp\u003eあと、アカムツ（のどぐろ）は大きいサイズだと2～3万円/箱だそうです（高い）。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eもちろんのどぐろは美味しいのですが、ハタハタも十分美味しいです。\nなので、自分が買うならハタハタを選びます\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eもちろんもらうなら両方欲しいです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "上場ゴール",
    "url": "https://www.ikemo3.com/dic/ipo-goal/",
    "contents": "\u003ch2 id=\"上場ゴールとは\"\u003e上場ゴールとは\u003c/h2\u003e\n\u003cp\u003eIPO(上場)は本来は成長の資金を集めるための手段なのですが、\n経営者が株を売り抜けるための目的として使われる上場のことです。\u003c/p\u003e\n\u003ch2 id=\"本質的価値がゼロ\"\u003e本質的価値がゼロ\u003c/h2\u003e\n\u003cp\u003eもちろん、上場しても結果的に利益がでず、会社がなくなったり、\n大企業に買収されてしまうこともあります。\nしかし、そのような企業は上場ゴールと言われることはありません。\n以下のような企業は上場ゴールではありません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e上場以降の株価は低迷しているが、利益を出している企業\u003c/li\u003e\n\u003cli\u003e良い製品、サービスを出しているが、結果的に競争に負けた企業\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eどちらも、社会に貢献することで利益を出そうとしている企業です。\u003c/p\u003e\n\u003cp\u003e一方で上場ゴールとは、社会を騙すことで利益を出そうとしている企業です。\nだから、上場前はいい言葉ばかり並び立て、\n上場して経営者が売り抜けたら、悪材料がどんどん出てきます。\u003c/p\u003e\n\u003ch2 id=\"it金融メディアの共同責任\"\u003eIT・金融・メディアの共同責任\u003c/h2\u003e\n\u003cp\u003e本来はこんなことはありえないはずです。\nあらかじめ分かっている、想像できる悪材料があるなら、\n上場前に開示するのが当然です。\u003c/p\u003e\n\u003cp\u003eなぜできないのか、それは「お友達に甘い」からでしょう。\n上場ゴールのほとんどは、自称ベンチャーIT企業です。\n本質的に価値のない事業をしている自称ベンチャーIT企業を、\nメディアがすごいと囃し立て、\n金融・証券業界が上場まで持っていき、上場ゴールで売り抜ける、\nそういう「商売」だと言われても当然のことをやっています。\u003c/p\u003e\n"
  }, 
  {
    "title": "大腸検査",
    "url": "https://www.ikemo3.com/dic/daicho-kensa/",
    "contents": "\u003ch2 id=\"大腸検査とは\"\u003e大腸検査とは\u003c/h2\u003e\n\u003cp\u003e大腸に異常がないか検査することです。\n最近主流なのは大腸内視鏡検査です。\u003c/p\u003e\n\u003ch2 id=\"準備が大変\"\u003e準備が大変\u003c/h2\u003e\n\u003cp\u003e大腸検査はあまり人気がないですが、\nその理由は、準備が大変だからです。\n一番イヤなのは、2Lくらい飲む下剤がマズイことです。\n二番目にイヤなのは、前日の食事を我慢することです。\u003c/p\u003e\n\u003ch2 id=\"検査自体は大したことない\"\u003e検査自体は大したことない\u003c/h2\u003e\n\u003cp\u003e準備はイヤですが、検査自体は大したことないです。\nなぜなら、麻酔が効いているからです。\u003c/p\u003e\n\u003ch2 id=\"グループとステージ\"\u003eグループとステージ\u003c/h2\u003e\n\u003cp\u003e大腸ポリープを取った場合、\n組織検査をしたあと、結果に「グループ◯」と言われることがあります。\nですが、ネットで検索して「ステージ◯」と見間違えて\nショックを受ける人がいるみたいです。\u003c/p\u003e\n\u003cp\u003e「ステージ」はガンの中での分類で、\n「グループ」はポリープの分類で、全く異なるものなので、注意しましょう。\u003c/p\u003e\n\u003cp\u003e「グループ」は、だいたい3までが良性、4がグレー、5が悪性です。\nガンになると転移の可能性がありますが、\n良性のうちに取ってしまえば問題ありません。\u003c/p\u003e\n\u003ch2 id=\"費用\"\u003e費用\u003c/h2\u003e\n\u003cp\u003e3割負担の場合、検査のみで5000円程度でした。\nそのまま切除する場合は10000円くらいかかったと思います。\n検査食は1200円+税でした。\u003c/p\u003e\n\u003ch2 id=\"検査間隔\"\u003e検査間隔\u003c/h2\u003e\n\u003cp\u003e基本的には担当医の指示に従えばOKですが、\n学会や医師による参考資料を挙げておきます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.jges.net/faq/faq_answer19.html\"\u003eＱ１９．昨年検診で便潜血反応異常を指摘され、大腸内視鏡検査を受けました。今年も受ける必要がありますか？\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://naisikyou.com/hongo/kankaku.html\"\u003eポリープ切除後の再検査間隔について\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.jps21.jp/jps/about-JPS.html\"\u003e臨床試験の概要・目的-JPS-\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://rokushin.blog.so-net.ne.jp/2013-09-27\"\u003e大腸癌検診としての大腸内視鏡検査の効果：北品川藤クリニック院長のブログ：So-netブログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分の場合はポリープを取ったときには、来年にも来てくれと言われました。\nその次の年に異常がないと言われたときは、2〜3年後でいいと言われました。\n別の医師の話では、異常がない場合は定期的に受けるとしても\n5年に一度でいいと言われました。\u003c/p\u003e\n\u003cp\u003e医師によってバラバラですが、その理由は、日本で統一的な基準がないのと、\nあくまで「\u003ca href=\"/dic/probability/\"\u003e確率\u003c/a\u003e」なので、どれくらいが妥当とは言えても\n個々人にとってどの感覚が正解かは決められないからです。\u003c/p\u003e\n\u003cp\u003eただし、便潜血検査は毎年受けた方がいいです。\u003c/p\u003e\n\u003ch2 id=\"医療費控除\"\u003e医療費控除\u003c/h2\u003e\n\u003cp\u003e検査をして異常がないときは、医療費控除の対象にはなりません。\nただし、ポリープを取ったときは、検査も医療費控除の対象になります。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.nta.go.jp/taxanswer/shotoku/1122_qa.htm\"\u003eNo.1122 医療費控除の対象となる医療費｜所得税｜国税庁\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"医療保険の適用\"\u003e医療保険の適用\u003c/h2\u003e\n\u003cp\u003e保険金支払いは対象となる場合と、ならない場合があります。\n自分は規約上対象外でした。\u003c/p\u003e\n\u003ch2 id=\"医療保険生命保険への加入\"\u003e医療保険・生命保険への加入\u003c/h2\u003e\n\u003cp\u003e当然ですが、手術なので告知は必要です。\nグループと保険次第ですが、グループ3までなら良性なので、\n保険会社次第ですが、生命保険への新規加入は可能です。\n医療保険は厳しいので難しいかもしれません\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eそもそも医療保険の必要性も微妙ですが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "大腸検査",
    "url": "https://www.ikemo3.com/manual/daicho-kensa/",
    "contents": "\u003ch2 id=\"準備\"\u003e準備\u003c/h2\u003e\n\u003cp\u003e自分の場合は、昼間に検査しましたが、こんな感じでした。\u003c/p\u003e\n\u003ch3 id=\"休みにするかどうか\"\u003e休みにするかどうか\u003c/h3\u003e\n\u003cp\u003e自分の場合は、前日は普通に出勤して、当日は休暇を取りました。\n前日仕事しても問題ないですが、夕食後に下剤を飲む必要があるので、\n残業はしない方がいいです。\n当日は検査する時間にもよりますが、基本的には休みにしたほうがいいでしょう。\u003c/p\u003e\n\u003ch3 id=\"医師に聞いておくこと\"\u003e医師に聞いておくこと\u003c/h3\u003e\n\u003cp\u003e以下のことを聞いておくと良いです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e飲んでいい飲み物\u003c/li\u003e\n\u003cli\u003e薬がある場合は飲んでよいか\u003c/li\u003e\n\u003cli\u003e検査後の食事・飲み物・お風呂\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"前日の食事\"\u003e前日の食事\u003c/h3\u003e\n\u003cp\u003e検査食のみ食べました。\n自分は\u003ca href=\"https://www.glico.com/jp/product/food_curry/kensasyoku/15269/\"\u003eeコロン\u003c/a\u003eというのを食べましたが、\n会社で食べるには、「食器」と「スプーン」、「電子レンジ」が必須です。\n食器はタッパー(プラスチック容器)でOKなので、\n会社に電子レンジがあれば問題ないと思います。\u003c/p\u003e\n\u003cp\u003e外出時でも食べやすいメニューもあるので、\n選べる人はそっちの方がいいかと思います。\u003c/p\u003e\n\u003cp\u003eなお、味は「水っぽい」だけで、良くも悪くもありません。\u003c/p\u003e\n\u003ch3 id=\"前日の飲み物\"\u003e前日の飲み物\u003c/h3\u003e\n\u003cp\u003eはっきり言って病院によってバラバラですが、\nだいたいはこんな感じです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e問題なし: 水、お茶、スポーツ飲料\u003c/li\u003e\n\u003cli\u003eダメ: お酒、乳製品飲料、ジュース\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分はコーヒーをよく飲むのですが、\nコーヒーはミルクは駄目で、砂糖はOKという記述が多いですが、\n飲むとしても夕方までにしておいた方がいいでしょう\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n炭酸飲料も悪いという話はありませんでした。\u003c/p\u003e\n\u003cp\u003eはっきり駄目なものはどうやら以下の2種類くらいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e腸内に残る固めの食べ物。\u003c/li\u003e\n\u003cli\u003e腸内を活発にする食べ物、飲み物。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただ、はっきり聞いたわけではないので、病院で聞いたほうがいいでしょう。\n正直なところ、理由もないのに禁止されるのはイヤなので、\n統一指針を出してほしいんですけどね。\u003c/p\u003e\n\u003ch3 id=\"前日の夜\"\u003e前日の夜\u003c/h3\u003e\n\u003cp\u003e夕食後30分経ってから\u003ca href=\"http://www.interq.or.jp/ox/dwm/se/se72/se7213018.html\"\u003eマグコロール\u003c/a\u003eという下剤を飲みました。\nこれはスポーツドリンクみたいな味でそこそこうまいです。\nそのあと1時間してから水を飲みますが、その30分後くらいに便意が来ます。\nそれからしばらくはトイレへ往復する時間になります。\u003c/p\u003e\n\u003ch3 id=\"当日の朝\"\u003e当日の朝\u003c/h3\u003e\n\u003cp\u003eここが一番キツイです。\n\u003ca href=\"http://www.interq.or.jp/ox/dwm/se/se79/se7990100.html\"\u003eニフレック\u003c/a\u003eという薬を2Lの水に溶かして飲んだのですが、\n正直言って美味しくないです。経口補水液みたいな味がします。\n冷やすとだいぶマシになるので、一気に飲んで、\n口直しに水でも飲むのがいいかと思います。\u003c/p\u003e\n\u003cp\u003e2L飲むとなっていますが、1L飲んでからは様子を見ながらで構いません。\n最終的に固形物がなくなっていればOKです。\n自分は1.5L飲んだあたりで十分な状態になって、気分も悪くなったので止めました。\nちなみにいくら頑張っても色は透明にはなりません\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"検査\"\u003e検査\u003c/h2\u003e\n\u003cp\u003e服を着替えますが、お尻のところに穴が空いている特別製の服です。\u003c/p\u003e\n\u003cp\u003eそれから検査室に行って、\n麻酔を受けてから検査が始まります。\n検査自体は麻酔が効いているのでぼーっとしている間に終わります。\n時間的には準備を含めて30分くらいでした(検査自体はもっと短い)。\u003c/p\u003e\n\u003ch2 id=\"検査後\"\u003e検査後\u003c/h2\u003e\n\u003cp\u003eポリープを取らなかった場合は特に問題ないです。\u003c/p\u003e\n\u003cp\u003eポリープを取った場合はこんな感じです\n(いろいろ調べた結果で、聞いたわけではないです)。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e冷たい飲み物、アイスは厳禁\u003c/li\u003e\n\u003cli\u003e当日はシャワーで済ませる\u003c/li\u003e\n\u003cli\u003e当日はおかゆかうどん、3日間は脂っこいものを避ける\u003c/li\u003e\n\u003cli\u003e一週間は禁酒\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eあと、ポリープを取った場合は血が出ることがありますが、\n少しの場合は様子見で構いません。\n明らかにヤバイ出血の場合は、深夜でも電話して診てもらってください。\u003c/p\u003e\n\u003cp\u003e検査後しばらくはおならが出るのにも注意してください。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e本当は医師に聞いておくべきだった\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e心配なら画像検索すればいいかと思います(おすすめはしません)\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "小さな政府",
    "url": "https://www.ikemo3.com/dic/small-government/",
    "contents": "\u003ch2 id=\"小さな政府とは\"\u003e小さな政府とは\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e実行\u003c/strong\u003eをしない政府のことです。\u003c/p\u003e\n\u003ch2 id=\"低福祉国家ではない\"\u003e低福祉国家ではない\u003c/h2\u003e\n\u003cp\u003e元はドラッカーの「断絶の時代」ですが、\nよく誤解されることに、小さな政府＝低福祉国家という\u003cstrong\u003e間違い\u003c/strong\u003eがあります。\n例えば医療保険について、p220「第10章 政府の病い」において、以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e今日最も経済的でかつ効果的な医療サービスは、\nイギリスの医療制度でもアメリカのメディケアでもない。\nそれははるか昔からあるドイツの保険システムである。\nこのシステムでも全員が前払いの医療費を強制的に納めさせられている。\nしかし公立私立を問わずいかなる医療機関でも選べるようになっている。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eイギリスとアメリカの制度はよく知りませんが、\n日本の医療制度も、どの医療機関を選べるようになっています。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAKIQ.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集7 断絶の時代\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "人工甘味料",
    "url": "https://www.ikemo3.com/dic/artificial-sweeteners/",
    "contents": "\u003ch2 id=\"人工甘味料とは\"\u003e人工甘味料とは\u003c/h2\u003e\n\u003cp\u003e天然に存在しない甘味料です。\u003c/p\u003e\n\u003ch2 id=\"安全性\"\u003e安全性\u003c/h2\u003e\n\u003cp\u003eエビデンスを元に検証しているため、\n普通に摂取している限りは問題ありません。\nもちろん大量に摂取したら問題になる可能性はあります\n(醤油の一気飲みが駄目なのと同じ)。\u003c/p\u003e\n\u003cp\u003e少なくとも、エビデンスを無視して\n危険だと煽り立てる人たちの言うことは信用してはいけません\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n危険だというのなら、科学的に実証すればいいだけです。\u003c/p\u003e\n\u003ch2 id=\"主な人工甘味料\"\u003e主な人工甘味料\u003c/h2\u003e\n\u003cp\u003eよく使われるのが以下の3つです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eアセスルファムK\u003c/li\u003e\n\u003cli\u003eスクラロース\u003c/li\u003e\n\u003cli\u003eアスパルテーム(L-フェニルアラニン化合物)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eですが、人工甘味料を使っているものを比較してみたところ、\nアスパルテームを使っているものがちょっと苦手なのかなぁと思いました。\nどうやら、後を引く甘さなんですよね。\u003c/p\u003e\n\u003cp\u003e個人的にはスッキリとする甘さの方が好きなので、\n飲み物はアスパルテームが入ってないほうがいいかなと思います。\nその意味だと砂糖も後を引く甘さなので、あまり好きじゃないです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e「買ってはいけない」というデマ本とか。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "統治と実行の分離",
    "url": "https://www.ikemo3.com/dic/separate-of-governance-and-execution/",
    "contents": "\u003ch2 id=\"統治と実行の分離とは\"\u003e統治と実行の分離とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eが唱えた、\u003ca href=\"/dic/reprivatization/\"\u003e再民間化(民営化)\u003c/a\u003eの本質です。\u003c/p\u003e\n\u003ch2 id=\"権限の移譲ではない\"\u003e権限の移譲ではない\u003c/h2\u003e\n\u003cp\u003e断絶の時代p238〜239「第10章 政府の病い」に以下のように書かれています。\n(漢数字→アラビア数字のみ変更)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e政府の仕事は、社会のために意味ある正しい意思決定を行うことである。\n社会のエネルギーを結集させることである。\n問題を浮かび上がらせることである。\n選択を提示することである。換言するならば統治することである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eしかしこのことは、すでに明らかなように実行することとは両立しない。\n統治と実行を両立させようとすれば、統治の能力が麻痺する。\n意思決定のための機関に実行させても貧弱な実行しかできない。\nそれらの機関は実行に焦点を合わせていない。\n体制がそうなっていない。そもそも関心が薄い。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e今日軍や行政府や病院がマネジメントのコンセプト、原理、方法について\n企業を参考にしていることには、理由がある。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e企業はこれまでの30年間、今日の政府が直面している問題すなわち\n統治と実行の両立に取り組んできた。その結果アメリカの企業の経営陣は、\nこの両者を分離し、特にトップの機関すなわち意思決定者を実行から\n分離させなければならないことを学んだ。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eもちろんこの言葉は誤解されやすい。\nトップマネジメントの弱体化を意味しかねない。\nだが構造と秩序の原理としての分権化の目的は、\nトップマネジメントを強化し、トップとしての仕事を行えるようにすることにある。\n実行はそれぞれの使命と目的をもつ現場のマネジメントに任せ、\n中央のトップが意思決定と全体の方向づけに集中できるようにすることにある。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e国にこの教訓を適用するならば、実行の任にあたるものは、\nまさに政府以外の組織でなければならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e国における分権化とは、地方政府が実行の任にあたるという連邦制のことではない。\n実施、活動、成果という実行に関わる部分は、政府以外の組織が行うという原則のことである。\nこの原則は、再民間化と呼ぶことができる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAKIQ.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集7 断絶の時代\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e民営化というと「政府がやっていることをそのまま民間がやる」と\n誤解されがちですが、あくまで実行の分離です。\u003c/p\u003e\n\u003ch2 id=\"日本における成功例\"\u003e日本における成功例\u003c/h2\u003e\n\u003cp\u003e統治と実行の分離がうまくいっている例として、\n日本の通信事業が挙げられます。\nしかし、完全な自由競争をさせていたら、\n採算が取れない過疎地域は電話もインターネットも使えなくなってしまいます。\u003c/p\u003e\n\u003cp\u003eそのため、\u003ca href=\"http://www.soumu.go.jp/main_sosiki/joho_tsusin/universalservice/\"\u003eユニバーサルサービス制度\u003c/a\u003eによって、\nNTT東西に交付金を提供することにより、ユニバーサルサービスを提供しています。\nもちろん、この交付金はNTT東西のいいなりの金額ではなく、\n総務省が決めた算定方式に基づき、決められます。\u003c/p\u003e\n\u003cp\u003eこの場合は、ユニバーサルサービスを提供するNTT東西が「実行」であり、\n補填額を決める総務省が「統治」と分離されています。\u003c/p\u003e\n\u003ch2 id=\"統治こそが問題\"\u003e統治こそが問題\u003c/h2\u003e\n\u003cp\u003e民営化を「統治と実行の分離」として考えることで、問いが見つかります。\nそれは「統治」とは何かです。\n事業者に対し何を要求すべきか。サービスなのか、安全性なのか、\n金銭で解決できる問題なのか、公平さのためにどれだけ出せるか、\nどこまで完全性が必要かといった方向性を決めることです。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAKIQ.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集7 断絶の時代\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "551蓬莱",
    "url": "https://www.ikemo3.com/dic/551/",
    "contents": "\u003ch2 id=\"551蓬莱とは\"\u003e551蓬莱とは\u003c/h2\u003e\n\u003cp\u003e大阪で売ってる豚まん、\nおよびそれを作っている店です。\u003c/p\u003e\n\u003ch2 id=\"大阪にいくといつも買ってる\"\u003e大阪にいくといつも買ってる\u003c/h2\u003e\n\u003cp\u003eたまに大阪に行くのですが、\n毎回のように551の豚まんを買ってます。\nこれを買わないと大阪に来た気がしないんですよね。\n首都圏に行くときにだいたい買ってる弁当と\n双璧をなすものになってます。\u003c/p\u003e\n"
  }, 
  {
    "title": "JSON",
    "url": "https://www.ikemo3.com/dic/json/",
    "contents": "\u003ch2 id=\"jsonとは\"\u003eJSONとは\u003c/h2\u003e\n\u003cp\u003eデータ・フォーマットです。\nJavaScript Object Notationの略です。\u003c/p\u003e\n\u003ch2 id=\"データ型\"\u003eデータ型\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.json.org/\"\u003eJSON\u003c/a\u003eより。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003estring\u003c/li\u003e\n\u003cli\u003enumber\u003c/li\u003e\n\u003cli\u003eobject\n\u003cul\u003e\n\u003cli\u003e他の言語ではHashかDictionaryと呼ばれるもの。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003earray\u003c/li\u003e\n\u003cli\u003etrue/false\u003c/li\u003e\n\u003cli\u003enull\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"制限がキツイ\"\u003e制限がキツイ\u003c/h2\u003e\n\u003cp\u003eJSONがJavaScriptとして解釈できるのは良い点ですが、キツイ点もあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eキーは文字列として\u003ccode\u003e\u0026quot;\u003c/code\u003eで囲まないといけない\u003c/li\u003e\n\u003cli\u003e配列などの最後に余分な\u003ccode\u003e,\u003c/code\u003eがあってはいけない\u003c/li\u003e\n\u003cli\u003eコメントが書けない\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"/dic/yaml/\"\u003eYAML\u003c/a\u003eと違って文法に曖昧さがないのは良いですが、これはこれで辛いです。\n\u003ca href=\"/dic/json5/\"\u003eJSON5\u003c/a\u003eがうまくいけばいいなぁと思ってるのですが。\u003c/p\u003e\n"
  }, 
  {
    "title": "JSON5",
    "url": "https://www.ikemo3.com/dic/json5/",
    "contents": "\u003ch2 id=\"json5とは\"\u003eJSON5とは\u003c/h2\u003e\n\u003cp\u003eJSONを拡張したものとして提案されているフォーマットです。\u003c/p\u003e\n\u003ch2 id=\"主な特徴\"\u003e主な特徴\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eObject\n\u003cul\u003e\n\u003cli\u003eキー名を\u003ccode\u003e\u0026quot;\u003c/code\u003eで囲む必要がない\u003c/li\u003e\n\u003cli\u003eキー名を\u003ccode\u003e'\u003c/code\u003eで囲むことができる\u003c/li\u003e\n\u003cli\u003e最後に余分な\u003ccode\u003e,\u003c/code\u003eがあっても問題ない\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eArray\n\u003cul\u003e\n\u003cli\u003e配列の最後に余分な\u003ccode\u003e,\u003c/code\u003eがあっても問題ない\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eString\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e'\u003c/code\u003eで囲むことができる\u003c/li\u003e\n\u003cli\u003eバックスラッシュ + 改行を使うことで、複数行に分けて記載可能\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eNumber\n\u003cul\u003e\n\u003cli\u003eHEX記法が可能\u003c/li\u003e\n\u003cli\u003e小数点を最初か最後につけても問題ない(\u003ccode\u003e.1\u003c/code\u003eとか\u003ccode\u003e10.\u003c/code\u003eとか)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eInfinity\u003c/code\u003e, \u003ccode\u003e-Infinity\u003c/code\u003e, \u003ccode\u003eNaN\u003c/code\u003e, \u003ccode\u003e-NaN\u003c/code\u003eが使える\u003c/li\u003e\n\u003cli\u003e明示的に\u003ccode\u003e+\u003c/code\u003eで始めることが可能(\u003ccode\u003e+10\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eコメントが使用可能(\u003ccode\u003e//\u003c/code\u003eまたは\u003ccode\u003e/* ～ */\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "MOTHER2",
    "url": "https://www.ikemo3.com/dic/mother2/",
    "contents": "\u003ch2 id=\"mother2とは\"\u003eMOTHER2とは\u003c/h2\u003e\n\u003cp\u003eスーパーファミコン用のRPGです。\u003c/p\u003e\n\u003ch2 id=\"開発が破綻しかかっていた\"\u003e開発が破綻しかかっていた\u003c/h2\u003e\n\u003cp\u003e有名なエピソードですが、MOTHER2の開発は破綻しかけてて、\n当時HAL研究所の社長だった\u003ca href=\"/dic/satoru-iwata/\"\u003e岩田聡\u003c/a\u003eさんが立て直した話があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.1101.com/iwata/2007-09-10.html\"\u003e07 プログラマーとしての思考モデル: 任天堂の岩田社長が遊びに来たので、みんなでご飯を食べながら話を聞いたのだ。\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.4gamer.net/games/999/G999905/20151225009/\"\u003e【岩田 聡氏 追悼企画】岩田さんは最後の最後まで“問題解決”に取り組んだエンジニアだった。「ゲーマーはもっと経営者を目指すべき！」特別編 - 4Gamer.net\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこのときの「問題を片付けいくための道具を作っていく」というのが、\n自分にとって共感しました。\u003c/p\u003e\n"
  }, 
  {
    "title": "アメリカを動かす『ホワイト・ワーキング・クラス』という人々",
    "url": "https://www.ikemo3.com/dic/white-working-class/",
    "contents": "\u003ch2 id=\"アメリカを動かすホワイトワーキングクラスという人々とは\"\u003eアメリカを動かす『ホワイト・ワーキング・クラス』という人々とは\u003c/h2\u003e\n\u003cp\u003e本のタイトルです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4087860906/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4087860906.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4087860906/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nアメリカを動かす『ホワイト・ワーキング・クラス』という人々 世界に吹き荒れるポピュリズムを支える\u0026#34;真・中間層\u0026#34;の実体\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"なぜ読もうと思ったのか\"\u003eなぜ読もうと思ったのか\u003c/h2\u003e\n\u003cp\u003e自分は世情には疎いのですが、\n2016年のアメリカ大統領選挙の結果を知った時に直感的に、\n「これは何かあるなー」と思って掘り下げてみようと思い、\n定期的にウォッチしています。\u003c/p\u003e\n\u003ch2 id=\"ズレている\"\u003eズレている\u003c/h2\u003e\n\u003cp\u003eこの本で書かれていることは事実としてはおそらくそれなりに正しいですが、\n文章から受ける印象は正直言って悪いです。\nおそらく、「自分たちがおかしい」という事実を\nまだ十分認識していないのではと思います。\u003c/p\u003e\n\u003cp\u003e例えば以下の文章なんかがそうです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eどんな人間的特徴を高く評価するかを尋ねると、\nワーキング・クラスのアメリカ人は白人も黒人も、道徳的な特徴を挙げる。\n道徳心よりも優秀さを自尊心の糧にしているエリートとは対照的だ。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eそのエリートが重視しない、ワーキング・クラスが重視する道徳的特徴の中には\n「責任感」や「誠実」といった、\n人間として持ってないといけないものすら含まれています。\u003c/p\u003e\n\u003cp\u003e自分は「働く＝楽しみ\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e」であるエリートの考え方も理解できるのですが、\nあくまでそれは「人としてこれだけは守らないといけない」という\n道徳心があってのことで、優秀だけど道徳心のかけらもない人が\n賞賛されるのは変だと思います\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e逆に、傍から見てたら遊んでいるようにしか見えない人こそ、\n誠実な人であることを見せ続けないといけないとすら思います。\u003c/p\u003e\n\u003ch2 id=\"日本には当てはまるか\"\u003e日本には当てはまるか?\u003c/h2\u003e\n\u003cp\u003e自分は、少なくともアメリカの話をそのまま日本には当てはまらないと思います。\n例えば、「現在のアメリカには、ドイツのように肉体労働者が\n尊敬される文化が存在しない」とありますが、\n日本は職人を尊敬する文化があります\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eまた、日本は地方への配慮も比較的厚め(少なくともアメリカよりは)で、\n格差も少なめです\u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e逆にアメリカと同じなのは、エリート層の傲慢さです。\nと言っても政治家とかではなくて、\n\u003ca href=\"/dic/to-kyo-jin/\"\u003eトーキョー人\u003c/a\u003eの発する言葉が差別的だなーと感じることです。\n「マイルドヤンキー」という言葉なんかはまさに\nエリートの傲慢を表している単語だと思いますね。\u003c/p\u003e\n\u003ch2 id=\"関係修復には数十年かかる\"\u003e関係修復には数十年かかる\u003c/h2\u003e\n\u003cp\u003eこの本はまあそれなりに事実を反映していると思いますが、\nまだまだ「自分たちが正しい側にいる」というところから抜けきってません。\nこの本によれば\u003csup id=\"fnref:6\"\u003e\u003ca href=\"#fn:6\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e6\u003c/a\u003e\u003c/sup\u003e、1970年代からこの関係悪化は始まったようです。\nそれから40年以上経った結果がこれなら、解決するのにも数十年かかると思います。\u003c/p\u003e\n\u003ch2 id=\"なぜ自分はワーキングクラス側の肩を持つのか\"\u003eなぜ自分はワーキング・クラス側の肩を持つのか?\u003c/h2\u003e\n\u003cp\u003e正直仕事だけ言えばむしろエリート層に近いのですが、\n自分はとことん「反エリート」なんですよね。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e第3章 なぜ、ワーキング・クラスは貧困層に反感を抱くのか?\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"/theme/life-management/work-until-x-years-old/\"\u003ex歳まで働く\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e普段なら「マイナーだと思います」ですが、人としてありえないので。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.nhk.or.jp/professional/2015/0601/\"\u003e清掃の職人\u003c/a\u003eがTV放映されて評価されるくらいなので。\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003e個人的には地方の方が豊かじゃないの?と思っていますが。\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:6\"\u003e\n\u003cp\u003e「公民権法成立により、南部の白人と袂を分かつことになった」あたり\u0026#160;\u003ca href=\"#fnref:6\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "データ圧縮",
    "url": "https://www.ikemo3.com/dic/data-compression/",
    "contents": "\u003ch2 id=\"データ圧縮とは\"\u003eデータ圧縮とは\u003c/h2\u003e\n\u003cp\u003eデジタルデータを元の内容を保持したまま、\nサイズを小さくする方法です。\n元のデータと「完全に」一致するものを可逆圧縮とよび、\n「より圧縮するために再現度を落としたもの」を非可逆圧縮と呼びます。\u003c/p\u003e\n\u003ch2 id=\"圧縮アルゴリズム\"\u003e圧縮アルゴリズム\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eツール、フォーマット名\u003c/th\u003e\n          \u003cth\u003e使用しているアルゴリズム\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003egzip\u003c/td\u003e\n          \u003ctd\u003eLZ77 + Huffman\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eあと見つけたら書きます。。。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.gzip.org/algorithm.txt\"\u003ehttp://www.gzip.org/algorithm.txt\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "トーキョー人",
    "url": "https://www.ikemo3.com/dic/to-kyo-jin/",
    "contents": "\u003ch2 id=\"トーキョー人とは\"\u003eトーキョー人とは\u003c/h2\u003e\n\u003cp\u003e自分の中で、\u003ca href=\"/dic/edokko/\"\u003e江戸っ子\u003c/a\u003eと\u003ca href=\"/dic/tokyoite/\"\u003e東京人\u003c/a\u003eと並ぶ概念で、以下の特徴を持っています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e意識が高いが中身が伴っていない。\u003c/li\u003e\n\u003cli\u003e他の人を見下す。\u003c/li\u003e\n\u003cli\u003e「東京にいること」自体に価値を持っている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下のような人が該当します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e在京マスメディア\u003c/li\u003e\n\u003cli\u003e日本でしか通用しない自称ベンチャー企業\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "ガス抜き",
    "url": "https://www.ikemo3.com/dic/degassing/",
    "contents": "\u003ch2 id=\"ガス抜きとは\"\u003eガス抜きとは\u003c/h2\u003e\n\u003cp\u003e不満を発散させるなどして、爆発させないようにすることです。\u003c/p\u003e\n\u003ch2 id=\"ガス抜きは必要不可欠\"\u003eガス抜きは必要不可欠\u003c/h2\u003e\n\u003cp\u003eもちろん根本的な解決をするのがベストですが、\n時間が解決するものに関しては、ガス抜きで十分なこともあるのではと思います。\n少なくとも、ガス抜きすらできないのは論外ですね。\u003c/p\u003e\n"
  }, 
  {
    "title": "クレーンゲーム",
    "url": "https://www.ikemo3.com/dic/crane-game/",
    "contents": "\u003ch2 id=\"クレーンゲームとは\"\u003eクレーンゲームとは\u003c/h2\u003e\n\u003cp\u003eゲームセンターによくある、\n景品をクレーンで取っていくゲームです。\u003c/p\u003e\n\u003ch2 id=\"2日で2万円\"\u003e2日で2万円\u003c/h2\u003e\n\u003cp\u003e大学の頃、2日で2万円使ったことがあります。\n使った金額を肯定するとか、\nまるで\u003ca href=\"/dic/gacha/\"\u003eガチャ\u003c/a\u003eに湯水の如く金を使う\u003ca href=\"/dic/kimowota/\"\u003eキモヲタ\u003c/a\u003eみたいな行動ですが、\nまあ若かったなぁという感じです。\u003c/p\u003e\n\u003cp\u003eただ、2万円使ったのは「取れなかった」からではなく、\n「取りまくるのが楽しかったから」ではあるんですが。\u003c/p\u003e\n"
  }, 
  {
    "title": "ねんどれナンドレラッツの跡じまん",
    "url": "https://www.ikemo3.com/dic/nendore-nandore/",
    "contents": "\u003ch2 id=\"ねんどれナンドレラッツの跡じまんとは\"\u003eねんどれナンドレラッツの跡じまんとは\u003c/h2\u003e\n\u003cp\u003eピタゴラスイッチ内の1コーナーです。\u003c/p\u003e\n\u003ch2 id=\"ラッツ\"\u003eラッツ\u003c/h2\u003e\n\u003cp\u003eラッツって何か分かりません。。。\u003c/p\u003e\n\u003ch2 id=\"落花生\"\u003e落花生\u003c/h2\u003e\n\u003cp\u003e落花生の跡が地味に怖いです。\u003c/p\u003e\n"
  }, 
  {
    "title": "江戸っ子",
    "url": "https://www.ikemo3.com/dic/edokko/",
    "contents": "\u003ch2 id=\"江戸っ子とは\"\u003e江戸っ子とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/to-kyo-jin/\"\u003eトーキョー人\u003c/a\u003eや\u003ca href=\"/dic/tokyoite/\"\u003e東京人\u003c/a\u003eと並ぶ概念で、以下のような特徴を持ちます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e東京生まれの東京育ち\u003c/li\u003e\n\u003cli\u003e地元愛が強い\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "十三",
    "url": "https://www.ikemo3.com/dic/juso/",
    "contents": "\u003ch2 id=\"十三とは\"\u003e十三とは\u003c/h2\u003e\n\u003cp\u003e大阪の北部にある地名、またはそこにある阪急十三駅のことを指します。\u003c/p\u003e\n\u003ch2 id=\"交通の要所\"\u003e交通の要所\u003c/h2\u003e\n\u003cp\u003e大阪の中心は梅田駅(大阪駅)ですが、十三駅も交通の要所です。\nなぜかというと、阪急の3路線が集結しているからです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e神戸本線\u003c/li\u003e\n\u003cli\u003e宝塚本線\u003c/li\u003e\n\u003cli\u003e京都本線\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"歓楽街\"\u003e歓楽街\u003c/h2\u003e\n\u003cp\u003e十三は歓楽街としても有名です。\nいわゆる18禁な店もあったり、893な人を見たこともあります。\nただ、893な人を見たと言っても吉野家で食べているのを見ただけで、\n治安が悪い感じはありませんでした。\u003c/p\u003e\n\u003cp\u003e統計を見ても、そんなに悪くないです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.city.osaka.lg.jp/shimin/page/0000036925.html\"\u003e大阪市：大阪市の犯罪発生状況 （…\u0026gt;防犯\u0026gt;犯罪発生状況）\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.city.osaka.lg.jp/toshikeikaku/cmsfiles/contents/0000379/379310/H27kokusei-jinkou-gaiyou.pdf\"\u003e年齢別人口\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "投資",
    "url": "https://www.ikemo3.com/dic/investment/",
    "contents": "\u003ch2 id=\"投資とは\"\u003e投資とは\u003c/h2\u003e\n\u003cp\u003e増やすために資源を投入することです。\n資源には「お金」や「時間」があります。\u003c/p\u003e\n\u003ch2 id=\"投資と投機の違い\"\u003e投資と投機の違い\u003c/h2\u003e\n\u003cp\u003e簡単に言えばこのようなものです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e投資: プラスサムゲーム\u003c/li\u003e\n\u003cli\u003e投機: ゼロサム・マイナスサムゲーム\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e別の言い方をすると、「本質的価値によってプラスになるもの」が投資で、\n「本質的価値は(ほとんど)なく、全体としては儲からないもの」が投機です。\u003c/p\u003e\n\u003cp\u003e例えば、株式は「利益を生み出す」という株式会社の本質的価値によるもので、\n基本的には投資です。一方で、「貴金属投資」と呼ばれているものは、\nそれ自体では利益を生み出すことはないため、自分は投資とは認めていません。\n(資産としての価値は認めますが)\u003c/p\u003e\n\u003ch2 id=\"投資の4パターン\"\u003e投資の4パターン\u003c/h2\u003e\n\u003cp\u003e何となく思いついたのが以下の4パターンです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eデイトレ型\n\u003cul\u003e\n\u003cli\u003e投資よりも投機。素早く行動することを重視する\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eバフェット型\n\u003cul\u003e\n\u003cli\u003e投機よりも投資。本質的価値を見定めることを重視する\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e騙され型\n\u003cul\u003e\n\u003cli\u003e「楽して儲けたい」人。騙される。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e無関心型\n\u003cul\u003e\n\u003cli\u003eそもそも儲けることに関心がない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e何となく4パターンあるなと思っただけで、\nこれは変わることはあります。自分の場合は4.→2.ですね。\n1.が2.になったりその逆になることは多分ないです。\u003c/p\u003e\n\u003ch2 id=\"未来のための予算は一定に保つ\"\u003e未来のための予算は一定に保つ\u003c/h2\u003e\n\u003cp\u003eドラッカーの「明日を支配するもの」p100より。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eチェンジ・リーダーたるためには、二つの予算が必要である。\nその一つが現在の事業のための予算である。これは、事業を継続して行なっていくうえで最小限必要なものである。\n規模は、全予算の八〇パーセントから九〇パーセントである。不況期には下方修正する必要がある。\nただし、好況期にあっても、自動的に上方修正してはならない。少なくとも、売り上げや利益と同じように上げてはならない。\nもう一つが未来のための予算である。これは、好不況にかかわらず一定に保つべきものである。規模は、全予算の一〇パーセントから二〇パーセントである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e未来のための予算は、理想的な結果をもたらすために必要とされるものである。\n組織の存亡にかかわる破局的な自体に陥ったときを除き、景気や業績のいかんにかかわらず、\n一定のレベルに維持すべきものである。前述の成功の追求のための予算も、この未来のための予算に含まれる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003chr\u003e\n\u003cp\u003eここでは予算の話をしていますが、「時間」についても同様のことが言えます。\n未来のため、別の言い方をすると「緊急ではないが重要」に割くための時間は、一定を確保する必要があります。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478372632/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478372632.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478372632/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n明日を支配するもの―21世紀のマネジメント革命\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "東京人",
    "url": "https://www.ikemo3.com/dic/tokyoite/",
    "contents": "\u003ch2 id=\"東京人とは\"\u003e東京人とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/to-kyo-jin/\"\u003eトーキョー人\u003c/a\u003e、\u003ca href=\"/dic/edokko/\"\u003e江戸っ子\u003c/a\u003eと並ぶ概念で、以下のような人を指しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e自分の仕事にプライドがある\u003c/li\u003e\n\u003cli\u003e責任感がある\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下のような仕事をしている人が主に該当します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e政治家などの要職の人\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003eグローバル企業のトップ\u003c/li\u003e\n\u003cli\u003eインフラ系など、地味な仕事をしている人\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eもちろん足を引っ張るだけの人は除きます。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "劣化なんとか",
    "url": "https://www.ikemo3.com/dic/degradation/",
    "contents": "\u003ch2 id=\"劣化なんとかとは\"\u003e劣化なんとかとは\u003c/h2\u003e\n\u003cp\u003eあるすごい人に表面だけ似せて、中身を似せてない人のことを指します。\n例えば、\u003ca href=\"/dic/steve-jobs/\"\u003eスティーブ・ジョブズ\u003c/a\u003eの傲慢さは、\n最高のものを追い求める気質と表裏一体ですが、\n傲慢さだけ真似てもただのイヤな人です。\u003c/p\u003e\n"
  }, 
  {
    "title": "Creative Commons",
    "url": "https://www.ikemo3.com/dic/creative-commons/",
    "contents": "\u003ch2 id=\"creative-commonsとは\"\u003eCreative Commonsとは\u003c/h2\u003e\n\u003cp\u003e画像などの著作物を適切にライセンスするための仕組みです。\nざっくりと言うと、「プログラム以外に、オープンソースの概念を持ち込んだようなもの」です。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003e正確なところは\u003ca href=\"https://creativecommons.jp/licenses/\"\u003eライセンス\u003c/a\u003eを参照してもらうとして、\nおおざっぱに理解したものを書いておきます。\u003c/p\u003e\n\u003ch3 id=\"ライセンスの条件\"\u003eライセンスの条件\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBY: 表示(クレジットの表示)\u003c/li\u003e\n\u003cli\u003eNC: 非営利\u003c/li\u003e\n\u003cli\u003eND: 改変禁止\u003c/li\u003e\n\u003cli\u003eSA: 継承(改変した場合は同じライセンスを使用すること)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ライセンスの組み合わせ\"\u003eライセンスの組み合わせ\u003c/h3\u003e\n\u003cp\u003e条件は4つありますが、以下の理由より、6種類のようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBY(表示)は全てに付いている\n\u003cul\u003e\n\u003cli\u003e「著作権表示は不要だが商用利用は禁止」みたいなものを選ぶ理由はないからです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eND(改変禁止)とSA(継承)は排他的\n\u003cul\u003e\n\u003cli\u003e改変を禁止した時点でライセンスは同じでないとおかしいからです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eよって、「非営利のあるなしで2種類」×「改変禁止と継承(両方除く)で3種類」=6種類になります。\u003c/p\u003e\n\u003ch2 id=\"同人マーク\"\u003e同人マーク\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eクリエイティブ・コモンズとは違う\u003c/strong\u003eのですが、同人マークというのがありました。\n結局二次著作物は親告罪のままになったので、使わなくてもよい(使わないほうがよい?)ようです。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://twitter.com/KenAkamatsu/status/716581188161314816\"\u003ehttps://twitter.com/KenAkamatsu/status/716581188161314816\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e該当の条文はこれですね\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n「原作のまま複製」「利益が不当に害されることとなる場合に限る」と書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e第百二十三条　第百十九条、第百二十条の二第三号及び第四号、第百二十一条の二並びに前条第一項の罪は、告訴がなければ公訴を提起することができない。\n２　前項の規定は、次に掲げる行為の対価として財産上の利益を受ける目的又は有償著作物等の提供若しくは提示により著作権者等の得ることが見込まれる利益を害する目的で、次の各号のいずれかに掲げる行為を行うことにより犯した第百十九条第一項の罪については、適用しない。\n一　有償著作物等について、原作のまま複製された複製物を公衆に譲渡し、又は原作のまま公衆送信（自動公衆送信の場合にあつては、送信可能化を含む。次号において同じ。）を行うこと（当該有償著作物等の種類及び用途、当該譲渡の部数、当該譲渡又は公衆送信の態様その他の事情に照らして、当該有償著作物等の提供又は提示により著作権者等の得ることが見込まれる利益が不当に害されることとなる場合に限る。）。\n二　有償著作物等について、原作のまま複製された複製物を公衆に譲渡し、又は原作のまま公衆送信を行うために、当該有償著作物等を複製すること（当該有償著作物等の種類及び用途、当該複製の部数及び態様その他の事情に照らして、当該有償著作物等の提供又は提示により著作権者等の得ることが見込まれる利益が不当に害されることとなる場合に限る。）。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://elaws.e-gov.go.jp/search/elawsSearch/elaws_search/lsg0500/detail/345AC0000000048_20271231/0?revIndex=4\u0026amp;lawId=345AC0000000048\u0026amp;openerCode=1#358\"\u003e著作権法(環太平洋パートナーシップ協定が日本国について効力を生ずる日 第百二十三条)\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ゴディバ",
    "url": "https://www.ikemo3.com/dic/godiva/",
    "contents": "\u003ch2 id=\"ゴディバとは\"\u003eゴディバとは\u003c/h2\u003e\n\u003cp\u003e高級\u003ca href=\"/dic/chocolate/\"\u003eチョコレート\u003c/a\u003eメーカーです。\u003c/p\u003e\n\u003ch2 id=\"4コマ経由で知った\"\u003e4コマ経由で知った\u003c/h2\u003e\n\u003cp\u003e自分は\u003ca href=\"/dic/chocolate/\"\u003eチョコレート\u003c/a\u003e好きではあるんですが、\n高級チョコレートには縁がないので、\nゴディバの名前を知ったのも、社会人になってから読んだ、\n4コマ漫画の「おねがい朝倉さん」の神田さん経由でした。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4832262351/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4832262351.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4832262351/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nおねがい朝倉さん 1 (まんがタイムコミックス)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"ホワイトデーもあるよ\"\u003eホワイトデーもあるよ\u003c/h2\u003e\n\u003cp\u003eゴディバは高級チョコレートなので、\nバレンタインデーに選ばれることが多いですが、\nホワイトデーもやってます。\n高級感もあっておすすめです( ´ω`)\u003c/p\u003e\n"
  }, 
  {
    "title": "王将",
    "url": "https://www.ikemo3.com/dic/ohsho/",
    "contents": "\u003ch2 id=\"王将とは\"\u003e王将とは\u003c/h2\u003e\n\u003cp\u003e以下の3つが多いです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"/dic/shogi/\"\u003e将棋\u003c/a\u003eの駒のこと。\u003c/li\u003e\n\u003cli\u003e餃子の王将のこと。俗に「京都王将」\u003c/li\u003e\n\u003cli\u003e大阪王将のこと。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eここでは2.と3.の話をします。\u003c/p\u003e\n\u003ch2 id=\"どっちがいい\"\u003eどっちがいい?\u003c/h2\u003e\n\u003cp\u003e大学のときは餃子の王将ばかりで、\n大阪王将は行ってなかったのですが、今は正直どっちでもいいです。\nそれなりに安く餃子が食えるので。\u003c/p\u003e\n\u003cp\u003eでも、大阪王将はフライブルグ店が閉店しちゃったんですよね(´・ω・｀)\u003c/p\u003e\n\u003cp\u003e餃子の王将は衣山にあるので\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、とりあえずは問題ないです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e衣山の餃子の王将があるところは中華料理店ができては潰れる場所でしたが、今のところ順調なようです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "吉本隆明",
    "url": "https://www.ikemo3.com/dic/takaaki-yoshimoto/",
    "contents": "\u003ch2 id=\"吉本隆明さんとは\"\u003e吉本隆明さんとは\u003c/h2\u003e\n\u003cp\u003e思想家です。\u003c/p\u003e\n\u003ch2 id=\"波長が合いそう\"\u003e波長が合いそう\u003c/h2\u003e\n\u003cp\u003eまだほとんど知らないのですが、\nいくつかの話を聞く限り、自分と波長が合いそうな感じかなぁと思いました。\n特に\u003ca href=\"http://www.1101.com/yoshimoto_voice/speech/sound-a020.html\"\u003e宗教と自立\u003c/a\u003eのところがぐっと来ます。\u003c/p\u003e\n\u003cp\u003e逆にマルクスのところは正直分からないのですが、\n実際のところは読んでみないと分からないです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eマルクス主義者は嫌いですが、そういう人の振りまいた誤解を解こうとしているようにも見えるので。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "大局観",
    "url": "https://www.ikemo3.com/dic/taikyokukan/",
    "contents": "\u003ch2 id=\"大局観とは\"\u003e大局観とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/shogi/\"\u003e将棋\u003c/a\u003eなどのボードゲームで、全体を見て判断するための能力です。\n\u003ca href=\"/dic/shogi/\"\u003e将棋\u003c/a\u003eに限らず、一般的に使われることもあります。\nそのまんまのタイトルの本もあります。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4047102768/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4047102768.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4047102768/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n大局観  自分と闘って負けない心 (角川oneテーマ21)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"冷静さ偏りのなさ\"\u003e冷静さ、偏りのなさ\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/shogi/\"\u003e将棋\u003c/a\u003eをやってたので大局観については\n感覚的には身についていると思いますが、\nうまく説明しづらい概念です。\u003c/p\u003e\n\u003cp\u003eふと思いついたのですが、「冷静さ」が近いかなぁと思いました。\n大局観が何であるかは説明しづらいのですが、\n「大局観がない」という状態は説明しやすいです。\n例えば、一つのことに集中しすぎて、周りが見えてない状態は、\n大局観がない状態です。\u003c/p\u003e\n\u003cp\u003eで、周りが見えてないときは結構な割合で、冷静さを欠いています。\n実際は、冷静だけど集中しすぎて〜というケースもありますが、\n少なくとも、偏りがあるのは間違いないです。\u003c/p\u003e\n"
  }, 
  {
    "title": "つみたてNISA",
    "url": "https://www.ikemo3.com/dic/tsumitate-nisa/",
    "contents": "\u003ch2 id=\"つみたてnisaとは\"\u003eつみたてNISAとは\u003c/h2\u003e\n\u003cp\u003e2018年1月から始まる、投資に対する非課税制度です。\u003c/p\u003e\n\u003ch2 id=\"使いやすくなった\"\u003e使いやすくなった\u003c/h2\u003e\n\u003cp\u003eNISAは既存の株主にとってはあまり恩恵がないので\n結局ほとんど使ってませんが\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\nつみたてNISAは投資信託のみで、期間も長いのでやりやすいです。\u003c/p\u003e\n\u003cp\u003e自分は諸事情により今は始められないのですが、\n投資する余裕ができたら、やってみたいですね。\u003c/p\u003e\n\u003ch2 id=\"金融庁フィルタ\"\u003e金融庁フィルタ\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://www.fsa.go.jp/policy/nisa2/about/tsumitate/overview/\"\u003e概要\u003c/a\u003eに書かれていますが、\nNISAと違って対象商品をかなり絞り込んでいます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e販売手数料はゼロ\u003c/li\u003e\n\u003cli\u003e信託報酬は一定以下\u003c/li\u003e\n\u003cli\u003e毎月分配型(詐欺商品)でないこと\u003c/li\u003e\n\u003cli\u003eヘッジ\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e以外のデリバティブ運用を行ってないこと\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"販売手数料はゼロ信託報酬は一定以下\"\u003e販売手数料はゼロ、信託報酬は一定以下\u003c/h3\u003e\n\u003cp\u003eまず「売ったもの勝ち」にならないように、報酬を制限しています。\nアクティブファンドを除いて、1%未満です。\n投資は複利で効いてくるので、手数料はバカにならないです\u003csup id=\"fnref1:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch3 id=\"毎月分配型詐欺商品は除外\"\u003e毎月分配型(詐欺商品)は除外\u003c/h3\u003e\n\u003cp\u003eはっきりいいます。これは\u003cstrong\u003e詐欺商品\u003c/strong\u003eです。\nよく言われる例えですが、タコが自分の足を食っているようなものです。\u003c/p\u003e\n\u003ch3 id=\"ヘッジ以外のデリバティブ運用を行っていないこと\"\u003eヘッジ以外のデリバティブ運用を行っていないこと\u003c/h3\u003e\n\u003cp\u003e多くの人は「デリバティブ＝ヤバい」というイメージがあると思うので、\nまあそのへんは妥当なところです。\u003c/p\u003e\n\u003cp\u003eここでの「ヘッジ」というのは、為替ヘッジのことです\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\n例えば米国債に投資する場合、\n為替変動による影響があるので、その影響を抑えることです。\n自分ならなるだけコストを減らしたいので、\nリスクが多くてもヘッジなしですね。\u003c/p\u003e\n\u003ch2 id=\"地雷商品がほぼない\"\u003e地雷商品がほぼない\u003c/h2\u003e\n\u003cp\u003e金融庁フィルタのおかげで、\n買ってはいけない商品がフィルタされているのは良いです。\nアクティブファンドやバランスファンドもいらないという話もありますが\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e、\nまあこれくらいでも十分かと思います。\u003c/p\u003e\n\u003cp\u003eただ、アクティブファンドは成績がイマイチなものもあるので\u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e、\nもう少し厳しくても良かったかと思います。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e今から思えば投資信託買っておけばよかったかも。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e自分もこれに気づかずに痛い目(というほどではないですが)にあいました。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref1:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e他にあるのかは知らない。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e\u003ca href=\"http://diamond.jp/articles/-/152746\"\u003e「つみたてNISA」は他の投資にも応用が利く優れた教育教材だ | 山崎元のマルチスコープ | ダイヤモンド・オンライン\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003e\u003ca href=\"http://money-bu-jpx.com/news/article005897/\"\u003eつみたてＮＩＳＡ　アクティブファンドの実⼒は？ | 東証マネ部！\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "npm",
    "url": "https://www.ikemo3.com/dic/npm/",
    "contents": "\u003cp\u003eまだ勉強中なので、「みたいです」みたいな記述が多いです。\u003c/p\u003e\n\u003ch2 id=\"npmとは\"\u003enpmとは\u003c/h2\u003e\n\u003cp\u003eJavaScriptのパッケージマネージャです。\nたぶんrpmみたいなもんです。\u003c/p\u003e\n\u003ch2 id=\"packagejson\"\u003epackage.json\u003c/h2\u003e\n\u003cp\u003eプロジェクトごとの設定ファイルを管理するもののようです。\nMavenにおけるpom.xmlのようなものみたいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/sinmetal/items/395edf1d195382cfd8bc\"\u003enpmでnode.jsのpackageを管理する - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "npm",
    "url": "https://www.ikemo3.com/manual/npm/",
    "contents": "\u003ch2 id=\"gitの設定gitignore\"\u003eGitの設定(.gitignore)\u003c/h2\u003e\n\u003cp\u003eコマンドを実行すると\u003ccode\u003enode_modules\u003c/code\u003eディレクトリができるが、\nこれは管理対象外なので、\u003ccode\u003e.gitignore\u003c/code\u003eに入れること。\n以下のようにgiboを使うと楽。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egibo Node \u0026gt;\u0026gt; .gitignore\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"コマンド\"\u003eコマンド\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enpm list\u003c/code\u003e, \u003ccode\u003enpm ls\u003c/code\u003e: インストールされたパッケージをリストにする\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enpm uninstall パッケージ名\u003c/code\u003e: パッケージをアンインストール\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"npx\"\u003enpx\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/npm/npx\"\u003enpm/npx: npm package executor\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ccode\u003enode_modules/.bin/\u003c/code\u003e の下にバイナリが格納されるんですが、指定するのが面倒なので代わりに使えます。\n対話型シェルでは \u003ccode\u003eexport PATH=$PATH:node_modules/.bin\u003c/code\u003e でもいいと思います(コマンドの補完が効くので)\u003c/p\u003e\n\u003ch3 id=\"初期化init\"\u003e初期化(init)\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://docs.npmjs.com/cli/init\"\u003einit | npm Documentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e書式\n\u003cul\u003e\n\u003cli\u003e以下のいずれか。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enpm init オプション\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enpm init \u0026lt;initializer\u0026gt;\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003einitializerはnpxというコマンドに渡すようだが、何が指定可能かは調査中。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eオプション\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--yes\u003c/code\u003e: 通常は対話的に行うが、その対話をスキップ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"パッケージのリストls-list\"\u003eパッケージのリスト(ls, list)\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://docs.npmjs.com/cli/ls\"\u003els | npm Documentation\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm ls\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm ls --depth\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# 直下のもののみリスト\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm ls -g \u003cspan style=\"color:#75715e\"\u003e# グローバルにインストールされているものを表示\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"インストールinstall-i\"\u003eインストール(install, i)\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://docs.npmjs.com/cli/install\"\u003einstall | npm Documentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enpm install パッケージ名\u003c/code\u003e: パッケージをインストール\n\u003cul\u003e\n\u003cli\u003eパッケージ名の後に\u003ccode\u003e@バージョン番号\u003c/code\u003eと入れると、特定のバージョンを入れる。\u003c/li\u003e\n\u003cli\u003e最新のものを入れたい場合は、 \u003ccode\u003e@latest\u003c/code\u003e と入れる\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eオプション\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-g\u003c/code\u003e: グローバル領域にインストールする。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--save\u003c/code\u003e: 実行時に必要なモジュールとして、\u003ccode\u003epackage.json\u003c/code\u003eに記録\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--save-dev\u003c/code\u003e: 開発時に必要なモジュールとして、\u003ccode\u003epackage.json\u003c/code\u003eに記録\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"アンインストールuninstall-rm\"\u003eアンインストール(uninstall, rm)\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://docs.npmjs.com/cli/uninstall\"\u003euninstall | npm Documentation\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm uninstall パッケージ名\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm uninstall --save パッケージ名\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm uninstall --save-dev パッケージ名\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm uninstall -g パッケージ名\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"packagejson\"\u003epackage.json\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.npmjs.com/files/package.json\"\u003epackage.json | npm Documentation\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"主なパラメータ\"\u003e主なパラメータ\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.npmjs.com/files/package.json#main\"\u003emain\u003c/a\u003e: \u003ccode\u003erequire()\u003c/code\u003e されたときに呼ばれるエントリポイント。通常はメインスクリプト。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.npmjs.com/files/package.json#license\"\u003elicense\u003c/a\u003e(string): ライセンス。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://spdx.org/licenses/\"\u003eSPDX License List | Software Package Data Exchange (SPDX)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMITライセンスの場合は \u003ccode\u003eMIT\u003c/code\u003e と書くとよい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"dependencies\"\u003edependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.npmjs.com/files/package.json\"\u003eドキュメント\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003edependencies(object)\n\u003cul\u003e\n\u003cli\u003ename(string): パッケージ名。\u003c/li\u003e\n\u003cli\u003eversion(string): バージョン。後述。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eバージョンの記載方法\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eversion\u003c/code\u003e: バージョンが完全一致\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026gt;version\u003c/code\u003e: 指定されたバージョンより上\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026gt;=version\u003c/code\u003e: 指定されたバージョン以上\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;version\u003c/code\u003e: 指定されたバージョン未満\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;=version\u003c/code\u003e: 指定されたバージョン以下\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~version\u003c/code\u003e: 指定されたバージョンとだいたい同じ\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e^version\u003c/code\u003e: 指定されたバージョンと互換性がある\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"scripts\"\u003escripts\u003c/h3\u003e\n\u003cp\u003epackage.jsonに記載する設定で、\nよく使うコマンドを登録しておくものです。\n(詳細は使っていないのでまだ今度)\u003c/p\u003e\n\u003cp\u003e例えばwebpackを使う場合、以下のように書くと、\n\u003ccode\u003enpm run build\u003c/code\u003eで実行できるようになります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-json\" data-lang=\"json\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;scripts\u0026#34;\u003c/span\u003e: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;build\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;webpack --mode production\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ccode\u003eDo a \u0026lt;name\u0026gt;@\u0026lt;tag\u0026gt; install, where \u0026lt;tag\u0026gt; is the \u0026quot;tag\u0026quot; config. (See npm-config. The config's default value is latest.)\u003c/code\u003e と書かれています。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ゴミ出し",
    "url": "https://www.ikemo3.com/manual/gomi/",
    "contents": "\u003ch2 id=\"ゴミ袋が開かないとき\"\u003eゴミ袋が開かないとき\u003c/h2\u003e\n\u003cp\u003e手を軽く濡らすのがいいっぽい。\u003c/p\u003e\n\u003ch2 id=\"ゴミ捨ての基本\"\u003eゴミ捨ての基本\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e素材が合わさった製品は、最も多く占める素材で判断する\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"迷うものの捨て方\"\u003e迷うものの捨て方\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e品名\u003c/th\u003e\n          \u003cth\u003e分別\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSDカード\u003c/td\u003e\n          \u003ctd\u003e可燃\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e靴\u003c/td\u003e\n          \u003ctd\u003e可燃\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eクリアファイル\u003c/td\u003e\n          \u003ctd\u003e可燃\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eケーブル\u003c/td\u003e\n          \u003ctd\u003e粗大\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e電池\u003c/td\u003e\n          \u003ctd\u003e乾電池\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003eは「埋立」、ボタン電池は「水銀」、充電池は「回収箱\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e」\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eハンガー\u003c/td\u003e\n          \u003ctd\u003e袋に入らないものは「粗大」、金属製は「金物・ガラス」、それ以外は「可燃」\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eビニールもの\u003c/td\u003e\n          \u003ctd\u003eビニール包装、ビニール袋は「プラ」、それ以外は可燃\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eマグネット\u003c/td\u003e\n          \u003ctd\u003eシート状のものは「可燃」、それ以外は「埋立」\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eごみ分別はやわかり帳p15より。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e正確には水銀を使ってないものだが、日本ではほぼ流通してなさそう(参考: \u003ca href=\"/dic/battery/\"\u003e電池\u003c/a\u003e)。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e家電量販店、スーパーなど。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003eマークが付いているもののみプラだと思われる。\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "甘言",
    "url": "https://www.ikemo3.com/dic/sweet-words/",
    "contents": "\u003ch2 id=\"甘言とは\"\u003e甘言とは\u003c/h2\u003e\n\u003cp\u003e相手を騙すための甘い言葉です。\u003c/p\u003e\n\u003ch2 id=\"誰もが利益を増やすという矛盾\"\u003e誰もが利益を増やすという矛盾\u003c/h2\u003e\n\u003cp\u003eドラッカーの「経済人」の終わりp16「第1章 反ファシズム陣営の幻想」に、ナチスのゲッベルスが行った、\n矛盾した公約について書かれています。\n(漢数字→アラビア数字のみ変更)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e大衆は、ヒトラーの公約の一つひとつが互いに矛盾することを知っていた。\n教会を罵倒しつつ、一方で教会そのものを救うと公約しても納得する人はいるかもしれない。\nしかし、100年に及ぶ協同組合の経験をもつ農民や、\n60年に及ぶ労働組合運動と団体交渉の経験をもつ労働者が、\n例えばゲッベルスが1932年のある演説で行ったような、\n明らかに矛盾する公約に気づかないはずはない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e彼はそのとき、「農民は穀物の値上げ、労働者はパンの値下げ、\nパン屋と食品店はより大きな利益を獲得する」といった。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eなお、原文だと以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ethe farmer would receive more for his grain,\nthe worker pay less for his bread,\nand the baker and grocer have a higher wholesale and retail margin.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"生産性は自動的には上がらない\"\u003e生産性は自動的には上がらない\u003c/h2\u003e\n\u003cp\u003eもちろん、生産性を上げれば誰もが得することは可能です。\nしかし、生産性を上げるためには、どこか妥協する、\nもしくは、不断の努力によって生産性を上げるしかありません。\n「◯◯さえ導入すれば生産性は上がる」という甘い考えはさっさと捨てましょう\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAOW8/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAOW8.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAOW8/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集9 「経済人」の終わり\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e例えば「ITを導入すれば生産性が上がる」と考えるはダメで、「生産性を上げるためにITを導入する」という考え方はありです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Ansible: チェックモードでエラーが起きて停止してしまう場合の修正",
    "url": "https://www.ikemo3.com/inverted/ansible/fix-error-in-check-mode/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/ansible/\"\u003eAnsible\u003c/a\u003eにおいて、チェックモード(\u003ccode\u003e-C\u003c/code\u003e)を使ったときにエラーが出るときの修正方法です。\n例えば、以下のような場合に発生します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eユーザを追加するタスクがある\u003c/li\u003e\n\u003cli\u003eその直後に、ユーザのホームディレクトリ以下をいじる\n\u003cul\u003e\n\u003cli\u003eチェックモードだと、ユーザ追加が行われないとエラーになってしまう。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eAnsible 2.4.0.0で確認しています。\nAnsible 2.1以上なら使えるようです。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下のドキュメントの「Information about check mode in variables」に記載があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/playbooks_checkmode.html\"\u003eCheck Mode (“Dry Run”) — Ansible Documentation\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eチェックモードを実行するが、エラーを無視する場合: \u003ccode\u003eignore_errors: \u0026quot;{{ ansible_check_mode }}\u0026quot;\u003c/code\u003e を付ける。\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eチェックモードを実行しない場合: \u003ccode\u003ewhen: not ansible_check_mode\u003c/code\u003eを付ける。\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Satoru-Iwata",
    "url": "https://www.ikemo3.com/tags/satoru-iwata/",
    "contents": ""
  }, 
  {
    "title": "Windows: メジャーアップデートごとにすること",
    "url": "https://www.ikemo3.com/inverted/windows/windows10-major-update/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eWindows 10のメジャーアップデート後にすることです。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"ユーザインタフェースのフォントを変更\"\u003eユーザインタフェースのフォントを変更\u003c/h3\u003e\n\u003cp\u003eフォントが「游ゴシックUI」になってしまう\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eのを修正する方法です。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://tatsu.life.coocan.jp/MySoft/WinCust/\"\u003eWindowsカスタマイズシリーズ\u003c/a\u003eから「Meiryo UIも大っきらい!!」をダウンロード\u003c/li\u003e\n\u003cli\u003eファイルを解凍\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enoMeiryoUI.exe\u003c/code\u003eを実行\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eすべてのフォント\u003c/code\u003eの右側の\u003ccode\u003e選択...\u003c/code\u003eを押す\u003c/li\u003e\n\u003cli\u003e好きなフォントを選ぶ\n\u003cul\u003e\n\u003cli\u003e自分は\u003ccode\u003eメイリオ 9pt\u003c/code\u003eを選んでます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e一括設定\u003c/code\u003eボタンを押す。\n\u003cul\u003e\n\u003cli\u003e時間がかかるので待つ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"高速スタートアップを無効化\"\u003e高速スタートアップを無効化\u003c/h3\u003e\n\u003cp\u003eParallels環境で電源を落としても再起動してしまう問題があるので、オフにしています。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eWindowsの設定を開く\u003c/li\u003e\n\u003cli\u003e「システム」→「電源とスリープ」→「電源の追加設定」の順にクリック\u003c/li\u003e\n\u003cli\u003e「電源ボタンの動作を選択する」→「現在利用可能ではない設定を変更します」の順にクリック\u003c/li\u003e\n\u003cli\u003e「高速スタートアップを有効にする(推奨)」をオフにして、変更を保存。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e高DPI環境でないのと、\u003ccode\u003eUI\u003c/code\u003eフォントは嫌いだからです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "パスワード",
    "url": "https://www.ikemo3.com/dic/password/",
    "contents": "\u003ch2 id=\"パスワードとは\"\u003eパスワードとは\u003c/h2\u003e\n\u003cp\u003e何かを通る(パスする)ために必要な合言葉(ワード)です。\u003c/p\u003e\n\u003ch2 id=\"パスワードの定期変更は非常識\"\u003eパスワードの定期変更は非常識\u003c/h2\u003e\n\u003cp\u003eなぜか常識ということにされている\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、パスワードの定期変更ですが、\n定期変更は一部の例外を除いて\u003cstrong\u003e非常識\u003c/strong\u003eです。\nそれを説明します。\u003c/p\u003e\n\u003cp\u003eなぜかというと、パスワードを定期変更して欲しいということは、\n「一定期間以上同じパスワードを使うと解析されてしまう」\nということを意図しています。\u003c/p\u003e\n\u003cp\u003eしかし、それは以下の場合に限ります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eハッシュ化されたパスワードが攻撃者の手元にある\u003c/li\u003e\n\u003cli\u003e総当り攻撃すればバレる程度の強度しかない(4桁数字なら最大でも10000回)\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eしかし、ハッシュ化されたパスワードが攻撃者の手元にある時点で、\nそれは既に攻撃に成功しています。なので、\n「攻撃されてハッシュ化されたパスワードが流出してしまったので、\nパスワードを変更してください」と言うべきです。\u003c/p\u003e\n\u003cp\u003e2.は3回間違えれば使えなくなる銀行のATMならともかく、\nそのようなパスワードを使う(使える)こと自体が間違いです。\u003c/p\u003e\n\u003cp\u003e「一部の例外」というのは、パスワードを共有している場合です。\nこのへんは以下の記事が良いと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.itmedia.co.jp/enterprise/articles/1705/30/news046.html\"\u003eパスワードの定期変更、強制はダメ？　その理由と1つの例外 (1/2) - ITmedia エンタープライズ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこの件は正直「当たり前」なので、\nいつの間に間違いが常識になってしまったのか謎です。\u003c/p\u003e\n\u003ch2 id=\"パスワードは文字の種類よりも長さが重要\"\u003eパスワードは文字の種類よりも長さが重要\u003c/h2\u003e\n\u003cp\u003e定期変更は論外ですが、こちらは少し微妙な話です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://japan.zdnet.com/article/35105725/\"\u003eあの「面倒なパスワード作成ルール」、作った人も後悔していた - ZDNet Japan\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eパスワード設定時に、アルファベット大文字や記号を必須にするシステムが多いですが、\nそういうのは良くなかったという話です。\u003c/p\u003e\n\u003cp\u003e確かに、記号が混ざった8文字より、\nアルファベット小文字のみで12文字の方が試行回数が多いので\n破られにくいというのは理屈では合ってます\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eただ、いくら長くても、辞書にある言葉を3つ組み合わせる程度だと、\n破られやすいんじゃないかなぁと思います。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://news.mynavi.jp/article/20130731-itsummit/\"\u003e\u0026ldquo;パスワードの定期変更\u0026quot;はもはや無意味! セキュリティの現実を直視すべし─NTTデータ先端技術、辻氏 | マイナビニュース\u003c/a\u003eでは「パスワードの定期変更という\u0026quot;常識\u0026quot;は現実的ではない!?」という書き方で、まるで定期変更が常識みたいに書かれています。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://qiita.com/shojit/items/79dca0a95fce7d31d588\"\u003eどっちが強い？ 英字だけの長いパスワード vs 記号を含めた短いパスワード - Qiita\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "岩田聡",
    "url": "https://www.ikemo3.com/dic/satoru-iwata/",
    "contents": "\u003ch2 id=\"岩田聡さんとは\"\u003e岩田聡さんとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/nintendo/\"\u003e任天堂\u003c/a\u003eの元社長です。\nファンの間からは「いわっち」と呼ばれています。\u003c/p\u003e\n\u003ch2 id=\"プログラマーとして\"\u003eプログラマーとして\u003c/h2\u003e\n\u003cp\u003e個人的にはバルーンファイト\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eのプログラマーの印象が強いです。\nファミコンの初期のゲームは単調なものが多いのですが、\nバルーンファイトは今でも結構楽しめます。\n完成によるもどかしさも含め、操作性が抜群にいいんですね。\u003c/p\u003e\n\u003ch2 id=\"経営者として\"\u003e経営者として\u003c/h2\u003e\n\u003cp\u003e思い出したら書きます。\u003c/p\u003e\n\u003ch2 id=\"ジョブズと並び立つ\"\u003eジョブズと並び立つ\u003c/h2\u003e\n\u003cp\u003e人間的には似てないのですが、\n個人的には\u003ca href=\"/dic/steve-jobs/\"\u003eスティーブ・ジョブス\u003c/a\u003eと並び立つ人物だと思ってて、\nなんとなく共通点があるなぁと思っています。\nMacメインで使ってたとか。(悲しいですけど)亡くなった年齢もほぼ同じです。\n「日本ではジョブズは生まれない」と言われることもありますが、\n「日本ではジョブズは生まれなかったが、いわっちは生まれた」くらいは言います\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"伝記\"\u003e伝記\u003c/h2\u003e\n\u003cp\u003e同級生によって書かれた本があります。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01I3589FQ/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B01I3589FQ.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01I3589FQ/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nゲーム界のトップに立った天才プログラマー　岩田聡の原点: 高校同期生26人の証言\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e3DS版: \u003ca href=\"https://www.nintendo.co.jp/titles/50010000007262\"\u003eバルーンファイト | ニンテンドー3DS | 任天堂\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eジョブズみたいな人が何人いても正直困ると思うんですけどね。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "強み",
    "url": "https://www.ikemo3.com/dic/strength/",
    "contents": "\u003ch2 id=\"強みとは\"\u003e強みとは\u003c/h2\u003e\n\u003cp\u003e自分がよく分からんけどよくできることです。\u003c/p\u003e\n\u003ch2 id=\"強みの例\"\u003e強みの例\u003c/h2\u003e\n\u003ch3 id=\"読む人間か聞く人間か\"\u003e読む人間か、聞く人間か\u003c/h3\u003e\n\u003cp\u003eドラッカーの「明日を支配するもの」p201より。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e仕事の仕方について初めて知っておくべきことが、自分は読む人間か、聞く人間かである。\n世の中には読み手と聞き手がいるということ、しかも、\n両方できる人はほとんどいないということを知らない人が多い。\n自分がそのいずれであるかを認識している人はさらに少ない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e聞いて理解する人に長い資料を渡しても理解されないし、\n読んで理解する人に口頭で説明しても理解されない。\u003c/p\u003e\n\u003cp\u003eちなみに自分は圧倒的に\u003cstrong\u003e読む人間\u003c/strong\u003eです。\n長い仕様書を読むのは苦になりませんが、口頭のみで指示を出されると全く理解できません。\u003c/p\u003e\n\u003cp\u003e具体的にチェックするには以下の本が有効です。\nこの本では「資格優位者」「言語優位者」「聴覚優位者」でそれぞれ2パターンの6種類に分けています。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B009KZ45RU/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B009KZ45RU.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B009KZ45RU/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n医師のつくった「頭のよさ」テスト～認知特性から見た６つのパターン～ (光文社新書)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"得意な仕事の仕方\"\u003e得意な仕事の仕方\u003c/h3\u003e\n\u003cp\u003eドラッカーの「経営者の条件」p132より、\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e強みを生かすことは、仕事の仕方についても重要である。\nどのような方法ならば自らが最も成果をあげられるかを知ることはさほど難しいことではない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e成人する頃には誰でも、朝と夜のどちらが仕事をしやすいかを知っている。\n大まかに下書きをしてから書くのと、じっくり完璧な文章を一つひとつ書くのと、\nいずれがよい文章を書けるかを知っている。\n原稿を準備した場合と、メモだけの場合と、まったく何もなしの場合と、\nいずれがよいスピーチをできるかを知っている。\nさらには、チームの一員としてか、一人でか、\nいずれがよい仕事をできるかを知っている。チームの一員としてはまったく駄目かもしれない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e通常、これらのことは人の強みや弱みについていうときに頭に浮かべることではない。\n強みや弱みというと、通常は専門分野に関する知識や実務に関する能力についてである。\nしかし成果をあげるうえで、人の気質は重大な要素である。\n普通の大人であれば自らの気質はすでに知っている。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"強みを知る方法\"\u003e強みを知る方法\u003c/h2\u003e\n\u003ch3 id=\"フィードバック分析\"\u003eフィードバック分析\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eは、強みをフィードバック分析という方法で見つけ出していました。\nプロフェッショナルの条件p112「Part3 2章 自らの強みを知る」において、以下のように書いています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e強みを知る方法は一つしかない。フィードバック分析である。\n何かをすることに決めたならば、何を期待するかをただちに書きとめておく。\n九ヶ月後、一年後に、その期待と実際の結果を照合する。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"労力の割に周りが認めてくれること\"\u003e労力の割に周りが認めてくれること\u003c/h3\u003e\n\u003cp\u003e逆に、周りの評価によって強みを知る方法を、\n\u003ca href=\"/dic/satoru-iwata/\"\u003e岩田聡さん\u003c/a\u003eが書いています\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e岩田氏：\n　この話はですね，私は毎年，会社説明会で学生さんにお話しているんです。よく「自分の強みを見つけろ！」みたいな話を学校で言われると思うんですけど，普通は，学生時代に「何が自分の強みなのか」なんて，なかなか簡単には分かんないわけじゃないですか。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e川上氏：\n　そうですよね。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e岩田氏：\n　だから，「“労力の割に周りが認めてくれること”が，きっとあなたに向いてること。それが“自分の強み”を見つける分かりやすい方法だよ！」って，いつも学生さんに喋ってるんですね。「さっさと得意なことが分かった方が，人生はいいぞ！」って話なんですが（笑）\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"どちらでもよい\"\u003eどちらでもよい\u003c/h3\u003e\n\u003cp\u003e強みを知る方法として、自己評価によるものと、\n他人の評価によるものと2つ挙げましたが、\nこれはどちらが良いというわけではないと思います。\u003c/p\u003e\n\u003cp\u003e自己評価によるものの方がおそらく正確ですが、\nドラッカーのやっていることは「目標を立てる」なので、\n意外と目標って立てづらいんですよね。\n一方で、岩田さん\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003eの、他人による評価は、\n「気づくこと」が重要で、割とすんなり入りやすいです。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300593/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478300593.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300593/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nプロフェッショナルの条件――いかに成果をあげ、成長するか (はじめて読むドラッカー (自己実現編))\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478372632/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478372632.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478372632/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n明日を支配するもの―21世紀のマネジメント革命\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7Z20/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081M7Z20.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7Z20/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集1 経営者の条件\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B009KZ45RU/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B009KZ45RU.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B009KZ45RU/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n医師のつくった「頭のよさ」テスト～認知特性から見た６つのパターン～ (光文社新書)\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.4gamer.net/games/999/G999905/20141226033/index_3.html\"\u003e任天堂・岩田氏をゲストに送る「ゲーマーはもっと経営者を目指すべき！」最終回――経営とは「コトとヒト」の両方について考える「最適化ゲーム」 - 4Gamer.net\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e個人的には「いわっち」と書きたいところ\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "風邪",
    "url": "https://www.ikemo3.com/dic/kaze/",
    "contents": "\u003ch2 id=\"風邪とは\"\u003e風邪とは\u003c/h2\u003e\n\u003cp\u003e長引くと辛いものです(ヽ´ω`)\u003c/p\u003e\n\u003cp\u003e英語ではcoldです。\u003c/p\u003e\n\u003ch2 id=\"咳をするとき\"\u003e咳をするとき\u003c/h2\u003e\n\u003cp\u003e咳をするときは上着の内側や袖を使うのがエチケットだそうです。\n手でおさえるのは何で駄目なん?と思ったら、\nその手で触ったものにウイルスが付くからのようです(そりゃそうだわな)。\nといっても手でおさえるしかないケースもあるので、\nそういうときはすぐに手を洗うのがいいかと。\u003c/p\u003e\n\u003ch2 id=\"風邪の後\"\u003e風邪の後\u003c/h2\u003e\n\u003cp\u003e鼻に臭いがすることがありますが、\nそれは急性副鼻腔炎のためです。\u003c/p\u003e\n"
  }, 
  {
    "title": "TOML",
    "url": "https://www.ikemo3.com/manual/toml/",
    "contents": "\u003cp\u003ev0.4.0の記述をざっと書いています。\u003c/p\u003e\n\u003ch2 id=\"基本仕様\"\u003e基本仕様\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecase sensitive\u003c/li\u003e\n\u003cli\u003eUTF-8\u003c/li\u003e\n\u003cli\u003e空白はタブ(0x09)またはスペース(0x20)\u003c/li\u003e\n\u003cli\u003e改行コードはLF or CRLF\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"コメント\"\u003eコメント\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e#\u003c/code\u003eのあと行が終わるまで。\u003c/p\u003e\n\u003ch2 id=\"キーバリューペア\"\u003eキー・バリューペア\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eキー名\u003c/code\u003e + \u003ccode\u003e=\u003c/code\u003e + \u003ccode\u003e値\u003c/code\u003e形式\u003c/li\u003e\n\u003cli\u003eキーと値の周りの空白は無視される\u003c/li\u003e\n\u003cli\u003e途中で改行が入ってはダメ(値が複数行にまたがる場合は除く)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"キー\"\u003eキー\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBare keys(生のキー)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eA-Za-z0-9_-\u003c/code\u003eのみからなる。\u003c/li\u003e\n\u003cli\u003eキーは数字のみからなる場合もOK\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eQuoted keys(囲まれたキー)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026quot;\u003c/code\u003eか\u003ccode\u003e'\u003c/code\u003eで囲む?(記述が見つからない)\u003c/li\u003e\n\u003cli\u003eほとんど制限なく文字が使える。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eキーが空白のときはQuotedにする必要があるが非推奨\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"値\"\u003e値\u003c/h3\u003e\n\u003cp\u003e以下のいずれか。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eString\u003c/li\u003e\n\u003cli\u003eInteger\u003c/li\u003e\n\u003cli\u003eFloat\u003c/li\u003e\n\u003cli\u003eBoolean\u003c/li\u003e\n\u003cli\u003eDateTime\u003c/li\u003e\n\u003cli\u003eArray\u003c/li\u003e\n\u003cli\u003eInline Table\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"string\"\u003eString\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBasic strings\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026quot;\u003c/code\u003eで囲む\u003c/li\u003e\n\u003cli\u003eいくつかの文字はエスケープが必要\u003c/li\u003e\n\u003cli\u003eよく使うものはエスケープシーケンスあり\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMulti-line basic strings\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026quot;\u0026quot;\u0026quot;\u003c/code\u003eで初めて\u003ccode\u003e\u0026quot;\u0026quot;\u0026quot;\u003c/code\u003eで終わる\u003c/li\u003e\n\u003cli\u003e改行コードの扱いはプラットフォーム依存\u003c/li\u003e\n\u003cli\u003eバックスラッシュで終わる行だといろいろあるらしいがよく分からん\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eLiteral strings\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e'\u003c/code\u003eで囲む\u003c/li\u003e\n\u003cli\u003eWindowsのパスとかを表すのに便利\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMuti-line literal strings\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e'''\u003c/code\u003eで囲む\u003c/li\u003e\n\u003cli\u003e詳細は未チェック\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"integer\"\u003eInteger\u003c/h3\u003e\n\u003cp\u003e数値\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e先頭に符号が付くことがある(\u003ccode\u003e-\u003c/code\u003eか\u003ccode\u003e+\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_\u003c/code\u003eをつけて区切ることが可能\u003c/li\u003e\n\u003cli\u003e先頭に\u003ccode\u003e0\u003c/code\u003eを付けることはできない(\u003ccode\u003e0800\u003c/code\u003eなどか。\u003ccode\u003e-0\u003c/code\u003eと\u003ccode\u003e+0\u003c/code\u003eはOK)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e0x\u003c/code\u003eから始まると16進法(0-9, a-f, A-F)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e0o\u003c/code\u003eから始まると8進法\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e0b\u003c/code\u003eから始まると2進法\u003c/li\u003e\n\u003cli\u003e範囲は64ビット符号付き\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"float\"\u003eFloat\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIEEE 754 binary64\u003c/li\u003e\n\u003cli\u003eドット付き(fractional)\u003c/li\u003e\n\u003cli\u003e指数形式(exponent), \u003ccode\u003ee\u003c/code\u003eまたは\u003ccode\u003eE\u003c/code\u003eを使用。\u003c/li\u003e\n\u003cli\u003eまたはその両方\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_\u003c/code\u003eによる区切りも使える。\u003c/li\u003e\n\u003cli\u003e特殊な値(小文字のみ)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003einf\u003c/code\u003e, \u003ccode\u003e+inf\u003c/code\u003e: 正の無限大\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-inf\u003c/code\u003e: 負の無限大\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enan\u003c/code\u003e, \u003ccode\u003e-nan\u003c/code\u003e: NaN。実装依存\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"boolean\"\u003eBoolean\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003etrue\u003c/code\u003e または \u003ccode\u003efalse\u003c/code\u003e (小文字のみ)を使用\u003c/p\u003e\n\u003ch3 id=\"datetime\"\u003eDateTime\u003c/h3\u003e\n\u003cp\u003eタイムゾーンあり、なし、日付のみ、時刻のみ。\u003c/p\u003e\n\u003ch3 id=\"array\"\u003eArray\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[\u003c/code\u003eと\u003ccode\u003e]\u003c/code\u003eで囲んで、区切りは\u003ccode\u003e,\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eネストできる\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e値に複数の型を混ぜてはいけない\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e複数行に渡って記述可能。\u003c/li\u003e\n\u003cli\u003e最後の\u003ccode\u003e,\u003c/code\u003eはOK\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"table\"\u003eTable\u003c/h3\u003e\n\u003cp\u003eいわゆる「ハッシュテーブル」とか「辞書」とか。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[\u003c/code\u003e + キー + \u003ccode\u003e]\u003c/code\u003eで書く。\u003c/li\u003e\n\u003cli\u003eネストするときはドットを使用する。\u003c/li\u003e\n\u003cli\u003eネストするときも親は記述不要\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"inline-table\"\u003eInline Table\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003e{\u003c/code\u003eと\u003ccode\u003e}\u003c/code\u003eで囲む形式。1行で書くこと。\u003c/p\u003e\n\u003ch3 id=\"array-of-tables\"\u003eArray of Tables\u003c/h3\u003e\n\u003cp\u003eArrayの各要素を\u003ccode\u003e[[\u003c/code\u003e と \u003ccode\u003e]]\u003c/code\u003eで囲む。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eXMLとかだと数字から始まるものはNGなので、対比している模様。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "YAML",
    "url": "https://www.ikemo3.com/dic/yaml/",
    "contents": "\u003ch2 id=\"yamlとは\"\u003eYAMLとは\u003c/h2\u003e\n\u003cp\u003e読むだけなら簡単ですが、\n書くと大変な設定ファイル用言語です。\u003c/p\u003e\n\u003ch2 id=\"文字列の曖昧さ\"\u003e文字列の曖昧さ\u003c/h2\u003e\n\u003cp\u003eYAMLは正直、\u003ca href=\"/dic/ansible/\"\u003eAnsible\u003c/a\u003eで採用されているため、仕方なく使っているものです。\n個人的にYAMLの嫌いなところは、曖昧さです。\u003c/p\u003e\n\u003cp\u003e例えば、このサイトで使っているAmazonへのリンクに使っている、\n本のデータは以下のように定義されています。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;The Effective Executive\u0026#34;\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003easin\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;0060833459\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003etitle\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;The Effective Executive\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ccode\u003eThe Effective Executive\u003c/code\u003eがキーで、これがダブルクォートが必要なのは分かります。\nしかし、このasinはダブルクォートで囲まないと、\n数値として扱われ、先頭の0が無視されてしまいます。\u003c/p\u003e\n\u003cp\u003eまあ、慣れればコツが分かってくるし、読みやすいといえば読みやすいのですが、\n仕様も複雑ですし\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、積極的に推す気にはなれないです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://yaml.org/spec/1.2/spec.html\"\u003eYAML Ain’t Markup Language (YAML™) Version 1.2\u003c/a\u003eの長さだけで、複雑さが分かります。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "フリクション",
    "url": "https://www.ikemo3.com/dic/frixion/",
    "contents": "\u003ch2 id=\"フリクションとは\"\u003eフリクションとは\u003c/h2\u003e\n\u003cp\u003e消せるボールペンです。\u003c/p\u003e\n\u003ch2 id=\"使いまくり\"\u003e使いまくり\u003c/h2\u003e\n\u003cp\u003eフリクションを使うようになってからは、\n9割くらいはこれで書いています。\nいつでも消せるという心理的な安心感がかなり大きいです。\u003c/p\u003e\n\u003cp\u003eあまりにこればかり使っているので、\nこれまでのボールペンを「消えないボールペン」と呼んでいるくらいです。\n(\u003ca href=\"/dic/retronym/\"\u003eレトロニム\u003c/a\u003e)\u003c/p\u003e\n\u003ch2 id=\"やや書きにくいのが難点\"\u003eやや書きにくいのが難点\u003c/h2\u003e\n\u003cp\u003e消せるのがいいのでよく使ってますが、\nこれまでのボールペンと比べると、ややかすれやすいです。\nなので、裏紙に書くときなどは、これまでのボールペンを使うこともあります。\u003c/p\u003e\n\u003cp\u003eですが、太いよりは細いほうが好きなので、\n自分は0.38mmのタイプを良く使っています。\u003c/p\u003e\n"
  }, 
  {
    "title": "ボヘミアンと貴族",
    "url": "https://www.ikemo3.com/dic/bohemian-vs-aristocratic/",
    "contents": "\u003ch2 id=\"ボヘミアンと貴族とは\"\u003eボヘミアンと貴族とは\u003c/h2\u003e\n\u003cp\u003e元々はXMLのスキーマ言語の策定に関わる対立を表した表現です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.atmarkit.co.jp/news/200302/22/xml.html\"\u003e＠IT：XML1.1を巡る「ボヘミアン」と「貴族」の階級闘争\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.atmarkit.co.jp/fxml/tanpatsu/24bohem/01.html\"\u003e＠IT：XMLにおける「ボヘミアンと貴族の階級闘争」を読み解く\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"センスのない貴族\"\u003eセンスのない貴族\u003c/h2\u003e\n\u003cp\u003e自分は仕事柄、XMLベースのAPIも多く使うのですが\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\nXMLでスキーマ言語を使って開発したことは一度もありません。\nなぜかというと、スキーマがなくて苦労するのは最初だけで、\n学習コストが見合わないからです。\u003c/p\u003e\n\u003cp\u003e根本的な問題は「厳密にしなくてもなんとかなる」というのを\n貴族側が分かってないということです。\nこれはセンスの問題で、どうしようもありません。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eJSONベースのAPIも増えてきてますが、まだXMLベースが多いです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Hugoテンプレート: スライドを作成する方法",
    "url": "https://www.ikemo3.com/inverted/hugo/slide/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eHugoを使ってスライドを作成する方法です。\u003c/p\u003e\n\u003cp\u003eこのページにつけてたのですが廃止しました。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e以下で確認しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHugo 0.31\u003c/li\u003e\n\u003cli\u003ereveal.js 3.5.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://gohugo.io/templates/output-formats/\"\u003eCustom Output Formats\u003c/a\u003eを使います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eテンプレートを作成\u003c/li\u003e\n\u003cli\u003econfig.tomlにスライドの設定を追加\u003c/li\u003e\n\u003cli\u003e出力したHTMLをreveal.jsで解釈できるようにするためのJavaScript\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ereveal.jsはMarkdownをそのまま解釈する機能がありますが、\nその機能は使いません\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。理由は、Hugoのshortcodeが使えなくなるからです。\u003c/p\u003e\n\u003ch3 id=\"テンプレート\"\u003eテンプレート\u003c/h3\u003e\n\u003cp\u003eテーマディレクトリ以下の\u003ccode\u003elayouts/_default/\u003c/code\u003e以下に\n\u003ccode\u003esingle.slide.html\u003c/code\u003eというファイルを作成します。\u003c/p\u003e\n\u003cp\u003e面倒なのでそのまま載せちゃいます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elink-css\u003c/code\u003eは\u003ccode\u003e\u0026lt;link\u0026gt;\u003c/code\u003eを作成、\u003ccode\u003elink-script\u003c/code\u003eは\u003ccode\u003e\u0026lt;script\u0026gt;\u003c/code\u003eを作成します。\u003c/li\u003e\n\u003cli\u003eタイトルは\u003ccode\u003e\u0026lt;h1\u0026gt;\u003c/code\u003eで囲んでください。1ページ目に使われます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;html\u0026gt;\n  {{ \u0026#34;\u0026lt;!-- _default/single.slide.html start --\u0026gt;\u0026#34; | safeHTML }}\n  \u0026lt;head\u0026gt;\n    \u0026lt;meta charset=\u0026#34;utf-8\u0026#34; /\u0026gt;\n    {{ partialCached \u0026#34;link-css\u0026#34; \u0026#34;reveal/css/reveal.css\u0026#34; \u0026#34;reveal.css\u0026#34; }}\n    {{ partialCached \u0026#34;link-css\u0026#34; \u0026#34;reveal/css/theme/white.css\u0026#34; \u0026#34;white.css\u0026#34; }}\n    {{ partialCached \u0026#34;link-css\u0026#34; \u0026#34;css/reveal-custom.css\u0026#34; \u0026#34;reveal-custom.css\u0026#34; }}\n    {{ with .OutputFormats.Get \u0026#34;html\u0026#34; -}}\n    \u0026lt;base href=\u0026#34;{{ .Permalink }}\u0026#34; /\u0026gt;\n    {{- end }}\n    \u0026lt;title\u0026gt;{{ .Title }}\u0026lt;/title\u0026gt;\n  \u0026lt;/head\u0026gt;\n  \u0026lt;body\u0026gt;\n    \u0026lt;div id=\u0026#34;contents\u0026#34;\u0026gt;\n      {{ .Content }}\n    \u0026lt;/div\u0026gt;\n    \u0026lt;div class=\u0026#34;reveal\u0026#34;\u0026gt;\n      \u0026lt;div class=\u0026#34;slides\u0026#34;\u0026gt;\n        \u0026lt;section\u0026gt;\u0026lt;h1\u0026gt;{{ .Title }}\u0026lt;/h1\u0026gt;\u0026lt;/section\u0026gt;\n      \u0026lt;/div\u0026gt;\n    \u0026lt;/div\u0026gt;\n    {{ partialCached \u0026#34;link-script\u0026#34; \u0026#34;js/reveal.js\u0026#34; \u0026#34;reveal-custom.js\u0026#34; }}\n    {{ partialCached \u0026#34;link-script\u0026#34; \u0026#34;reveal/js/reveal.js\u0026#34; \u0026#34;reveal.js\u0026#34; }}\n    \u0026lt;script\u0026gt;\n      Reveal.initialize();\n    \u0026lt;/script\u0026gt;\n  \u0026lt;/body\u0026gt;\n  {{ \u0026#34;\u0026lt;!-- _default/single.slide.html end --\u0026gt;\u0026#34; | safeHTML }}\n\u0026lt;/html\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"configtoml\"\u003econfig.toml\u003c/h3\u003e\n\u003cp\u003eoutputFormatsの定義と、outputsの定義(\u003ccode\u003eSLIDE\u003c/code\u003eを追加)が必要です。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e[outputFormats.slide]\nname = \u0026#34;SLIDE\u0026#34;\nmediaType = \u0026#34;text/html\u0026#34;\npath = \u0026#34;slide\u0026#34;\nisHTML = true\n\n[outputs]\npage = [\u0026#34;HTML\u0026#34;, \u0026#34;SLIDE\u0026#34;, \u0026#34;ATOM\u0026#34;, \u0026#34;PDF\u0026#34;]\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"javascript\"\u003eJavaScript\u003c/h3\u003e\n\u003cp\u003ereveal.jsにinitialize()というメソッドを定義しています。\n生のJavaScriptで書いたので長いですが、要は\u003ccode\u003eh1\u003c/code\u003e〜\u003ccode\u003eh6\u003c/code\u003eおよび\u003ccode\u003ehr\u003c/code\u003eを区切りとして、\n\u003ccode\u003esection\u003c/code\u003eで囲んでいるだけです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e試したけどしっくり来なかった。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "KTT",
    "url": "https://www.ikemo3.com/dic/ktt/",
    "contents": "\u003ch2 id=\"kttとは\"\u003eKTTとは\u003c/h2\u003e\n\u003cp\u003e金髪・ツインテール・ツンデレの略です。\u003c/p\u003e\n\u003ch2 id=\"なぜこの3つがテンプレなのか\"\u003eなぜこの3つがテンプレなのか\u003c/h2\u003e\n\u003cp\u003e正直分かってないのですが、何となく次の2つの組み合わせかなと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e金持ちのお嬢様(金髪 + ツンデレ)\u003c/li\u003e\n\u003cli\u003e精神的に幼い\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eキャラ(ツインテール + ツンデレ)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e幼いと言っても中学生くらいのイメージですね。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "XML",
    "url": "https://www.ikemo3.com/dic/xml/",
    "contents": "\u003ch2 id=\"xmlとは\"\u003eXMLとは\u003c/h2\u003e\n\u003cp\u003eExtensible Markup Languageのことです。\u003c/p\u003e\n\u003ch2 id=\"簡略されたsgml\"\u003e簡略されたSGML\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/html/\"\u003eHTML\u003c/a\u003eとXMLは、同じSGMLという規格から派生していますが、\n役割が異なっています。\u003c/p\u003e\n\u003cp\u003eHTMLはSGMLの規格にそった言語です。\n一方で、XMLは、SGMLを簡略化して、ネームスペースなどを加えた、メタ言語です。\nなので、XMLは、SGML由来の「DTD」や「CDATAセクション」というのがあったりします。\u003c/p\u003e\n"
  }, 
  {
    "title": "メガネ",
    "url": "https://www.ikemo3.com/dic/glasses/",
    "contents": "\u003ch2 id=\"メガネとは\"\u003eメガネとは\u003c/h2\u003e\n\u003cp\u003e目が悪い人が使う道具です。\u003c/p\u003e\n\u003ch2 id=\"昔ダサい今オシャレ\"\u003e昔＝ダサい、今＝オシャレ\u003c/h2\u003e\n\u003cp\u003e1990年頃のメガネと言えば牛乳瓶の底のような厚いもので、\nデザインを選ぶほど種類がありませんでした。\u003c/p\u003e\n\u003cp\u003e今は種類も多く、機能だけでなく、デザインでも選べるようになってきて、\nいい時代だなと思います。\u003c/p\u003e\n\u003ch2 id=\"老眼の始まりには要注意\"\u003e老眼の始まりには要注意\u003c/h2\u003e\n\u003cp\u003e老眼は早い人なら30代後半に始まるのですが、\n「ちょっとおかしいな」と思ったら早めに眼科に行ったほうがいいです。\u003c/p\u003e\n\u003cp\u003eはっきりと書かれていないので老眼かどうかは分からないのですが、\n将棋棋士でも、メガネが合っていないと成績が落ちるようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://shogipenclublog.com/blog/2011/07/01/%E4%B8%AD%E5%8E%9F%E5%8D%81%E5%85%AD%E4%B8%96%E5%90%8D%E4%BA%BA%E3%81%8B%E3%82%89%E7%BE%BD%E7%94%9F%E5%90%8D%E4%BA%BA%E3%81%B8%E3%81%AE%E4%BC%9D%E8%A8%80/\"\u003e中原十六世名人から羽生名人への伝言 | 将棋ペンクラブログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分の老眼の始まりのときも、頭痛がしたり、\nメガネを外して考えたくなることが結構ありました。\u003c/p\u003e\n"
  }, 
  {
    "title": "知識社会",
    "url": "https://www.ikemo3.com/dic/knowledge-society/",
    "contents": "\u003ch2 id=\"知識社会とは\"\u003e知識社会とは\u003c/h2\u003e\n\u003cp\u003eこれからの社会です。\u003c/p\u003e\n\u003ch2 id=\"高度の競争社会\"\u003e高度の競争社会\u003c/h2\u003e\n\u003cp\u003e知識社会は、高度な競争社会です。\nドラッカーは、ネクスト・ソサエティp5「第Ⅰ部 第1章 ネクスト・ソサエティの姿」で次のように書いています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eネクスト・ソサエティは知識社会である。知識が中核の資源となり、\n知識労働者が中核の働き手となる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e知識社会としてのネクスト・ソサエティには、三つの特質がある。\n第一に、知識は資金よりも容易に移動するがゆえに、\nいかなる境界もない社会となる。\n第二に、万人に教育の機会が与えられるがゆえに、\n上方への移動が自由な社会となる。\n第三に、万人が生産手段としての知識を手に入れ、\nしかも万人が勝てるわけではないがゆえに、成功と失敗の並存する社会となる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eこれら三つの特質のゆえに、ネクスト・ソサエティは、\n組織にとっても一人ひとりの人間にとっても、高度に競争的な社会となる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"この流れは避けられない\"\u003eこの流れは避けられない\u003c/h2\u003e\n\u003cp\u003e最近ようやく実感できたのですが、\nこの知識社会への流れは避けられないと実感できました。\u003c/p\u003e\n\u003cp\u003eなぜかと言うと、生産性を上げなければいけないというのが実感できたからです。\n生産性を上げるためには、知識労働者一人一人の生産性を上げるしかなく、\n知識労働者一人一人の生産性を上げるためには、\nシステムだけでは不十分で、一人一人の学びが必須だからです。\n別の言い方をすると、\n\u003cstrong\u003e低い方に合わせていては生産性が上がらない\u003c/strong\u003eのが分かったからです。\u003c/p\u003e\n\u003ch2 id=\"格差社会にはならないしてはいけない\"\u003e格差社会にはならない(してはいけない)\u003c/h2\u003e\n\u003cp\u003e注意しないといけないのは、知識社会は競争社会ですが、\n格差社会ではないということです。\n「万人に教育の機会が与えられ」「上方への移動が自由な社会」です。\nただし、教育の機会の確保は必要です。\nでないと、成功者が学び続けることによってさらに成功者になる、\n格差社会になってしまいます。\u003c/p\u003e\n\u003ch2 id=\"愚痴ってる暇などない\"\u003e愚痴ってる暇などない\u003c/h2\u003e\n\u003cp\u003e知識社会は競争社会ですが、一方で、\n誰でも頑張ればある程度の成功が望める社会です。\nネクスト・ソサエティp28「第Ⅰ部 第1章 ネクスト・ソサエティの姿」に以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eこれからの知識社会においては、きわめて多くの人間、\nおそらく過半の人間が、金銭的な安定よりもはるかに重要なこと、\nすなわち自らの社会的な位置づけと豊かさを実感することになる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eただし、その豊かさは自動的にもたらされることはありません。\n学び続けることによることによってもたらされます。\n愚痴っても何も解決しません。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478190453/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478190453.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478190453/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nネクスト・ソサエティ ― 歴史が見たことのない未来がはじまる\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Ramen",
    "url": "https://www.ikemo3.com/tags/ramen/",
    "contents": ""
  }, 
  {
    "title": "コンピュータ未満の知能",
    "url": "https://www.ikemo3.com/dic/intelligence-less-than-computer/",
    "contents": "\u003ch2 id=\"コンピュータ未満の知能とは\"\u003eコンピュータ未満の知能とは\u003c/h2\u003e\n\u003cp\u003e考えることを放棄した人間のことです。\u003c/p\u003e\n\u003ch2 id=\"コンピュータ未満の知能のパターン\"\u003eコンピュータ未満の知能のパターン\u003c/h2\u003e\n\u003cp\u003eコンピュータ未満の知能だと感じる人には、\n以下のパターンがあります。\u003c/p\u003e\n\u003ch3 id=\"簡単な論理しか使えない\"\u003e簡単な論理しか使えない\u003c/h3\u003e\n\u003cp\u003e「論理的」であることは良いとされていますが、\nその「論理的」であることが狭いと、問題です。\n「知的」な職業の人には特に、こういう人がたくさんいます。\u003c/p\u003e\n\u003cp\u003eひどいのになると、「会話に◯◯という単語が含まれているから反対」みたいな、\n100行のプログラムでかけるような単純な思考も見られます。\u003c/p\u003e\n\u003ch3 id=\"学習しない\"\u003e学習しない\u003c/h3\u003e\n\u003cp\u003e何度も同じようなデマに騙されるなど、学習しない人も問題です。\n最近の\u003ca href=\"/dic/artificial-intelligence/\"\u003e人工知能\u003c/a\u003eと呼ばれるものは学習能力が大きく発展しているんですよね。\u003c/p\u003e\n"
  }, 
  {
    "title": "学習の高速道路",
    "url": "https://www.ikemo3.com/dic/learning-highway/",
    "contents": "\u003ch2 id=\"学習の高速道路とは\"\u003e学習の高速道路とは\u003c/h2\u003e\n\u003cp\u003eインターネットによって\u003ca href=\"/dic/shogi/\"\u003e将棋\u003c/a\u003eが強くなるための\n高速道路が一気に敷かれたという話です。\u003c/p\u003e\n\u003cp\u003e元ネタは「ウェブ進化論」ですが、手元にないので、\nこちらのリンクを載せておきます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://pixy10.org/archives/585508.html\"\u003e羽生善治さんの学習の高速道路論\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"米長さんの似たような例え\"\u003e米長さんの似たような例え\u003c/h2\u003e\n\u003cp\u003eこれが元ネタとまでは分かりませんが、\n米長邦雄永世棋聖が、羽生さんと対談した時の本「勉強の仕方―頭がよくなる秘密」のp214〜218「第五章 今は、すでに過去である」に、\n似たような記述があります(数字のみ漢数字→アラビア数字に変更)。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e米長 つまり、われわれの時代は35歳が最盛期という感じだった。\n40半ばまでは保つんだ。最盛期が持続するというか。\nそれから先は、はっきり落ちていく。\nそれをどう食い止めるか、ということなんだね。\nだから、力は35歳までダラダラ上がっていくという感じだった。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eところが、最近はいきなりワーッと、垂直に壁を上るように急激に上がってくる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eそれは、そういう勉強法を採ったということです。\nつまり早く強くなる勉強法で強くなった。\nところが、早く強くなる勉強法と、力を持続する勉強法は、別ものです。\n力を持続する勉強法が昔に比べて疎かになっている。社会一般においてもそうです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eところが、25歳、30歳と5年刻みに、それ以降は1年刻みの感じで\nカーブが出てきたり、坂道になってたりする。\nだんだんそういう道が出てくるわけだ。今は高速道路ばかり走っている人が増えた。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eわれわれは高速道路なんてない時代に生まれているからね。\nギアのチェンジを覚えてきました。でも、これからは高速道路をそのまま走って、\n崖から落っこっちゃうという人がどんどん出てくるよ。\n高速道路を降りたあと、どういうふうに運転していくかがむずかしい。\nそのあとの運転の仕方が一つの問題だと思うんです。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e「高速道路＝早く強くなる勉強法」という意味では、\n羽生さんの高速道路論と同じです。\u003c/p\u003e\n\u003ch2 id=\"高速道路は若者だけの特権ではない\"\u003e高速道路は若者だけの特権ではない\u003c/h2\u003e\n\u003cp\u003eここからは自分の私見です。\u003c/p\u003e\n\u003cp\u003e学習の高速道路を使うべきかどうかは分かりませんが、\n1つだけはっきりしていることがあります。\u003c/p\u003e\n\u003cp\u003e学習のための高速道路が敷かれたとしても、\nその利益は決して若者だけの特権ではありません。\n\u003ca href=\"/dic/continuous-learning/\"\u003e継続学習\u003c/a\u003eのためにも、高速道路は使えます。\n自分の知識が古くなったのなら、若い人と同じ学習法を取ればいいんです。\n若い人に教えを請えばいいんです。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4396311192/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4396311192.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4396311192/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n勉強の仕方―頭がよくなる秘密 (ノン・ポシェット)\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "台湾ラーメン",
    "url": "https://www.ikemo3.com/dic/taiwan-ramen/",
    "contents": "\u003ch2 id=\"台湾ラーメンとは\"\u003e台湾ラーメンとは\u003c/h2\u003e\n\u003cp\u003e名古屋名物のラーメンです。\n公式ページが複数ありましたが、\n兄弟で別々の店を経営しているだけのようです。\u003c/p\u003e\n\u003ch2 id=\"これぞ名古屋めし初級編-台湾ラーメンアメリカン\"\u003eこれぞ名古屋めし初級編 台湾ラーメンアメリカン\u003c/h2\u003e\n\u003cp\u003e名古屋名物の台湾ラーメンというだけでも面白いのですが、\n「これぞ名古屋めし初級編 台湾ラーメンアメリカン」のインパクトが大きいです。\u003c/p\u003e\n\u003cp\u003e販売してたのは寿がきやのようですが、\n残念ながらこのカップ麺は今は売ってないようです。\u003c/p\u003e\n\u003cp\u003e「アメリカン」は辛さ控えめ、「イタリアン」は激辛までは知ってましたが、\n八事店には\u003cstrong\u003eアフリカン\u003c/strong\u003eがあるらしいです。\u003c/p\u003e\n\u003ch2 id=\"食ってみた\"\u003e食ってみた\u003c/h2\u003e\n\u003cp\u003e偶然生協で見つけたので食べてみました。\n\u003ca href=\"http://www.misen-ganso.jp/\"\u003e郭 政良 味仙\u003c/a\u003eさんのところの袋麺です。\u003c/p\u003e\n\u003cp\u003e辛うまーでした( ´ω`)\u003c/p\u003e\n"
  }, 
  {
    "title": "年賀状",
    "url": "https://www.ikemo3.com/dic/nengajo/",
    "contents": "\u003ch2 id=\"年賀状とは\"\u003e年賀状とは\u003c/h2\u003e\n\u003cp\u003e新年のあいさつに使われるものです。\u003c/p\u003e\n\u003ch2 id=\"生存報告\"\u003e生存報告\u003c/h2\u003e\n\u003cp\u003e昔は年賀状をほとんど出さなかったのですが、\n結婚を期に、出すようにしました。\n一番の理由は「生存報告」だからです。\nあと、「現住所の確認」にもなります。\u003c/p\u003e\n\u003cp\u003eIT技術者的には「pingのようなもの」でいいかと。\u003c/p\u003e\n\u003ch2 id=\"誰に送るか\"\u003e誰に送るか\u003c/h2\u003e\n\u003cp\u003e基本的には「去年送った人」をそのまま続けてますが、\nだいたい次のような感じです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e親戚\n\u003cul\u003e\n\u003cli\u003e結婚式に来た人、お礼をもらった人に送っています。\u003c/li\u003e\n\u003cli\u003e結婚してない、付き合いがないなら、親経由で繋がってれば送らなくてもいいと思います。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e友人\n\u003cul\u003e\n\u003cli\u003eネットでつながりがある人もいますが、リアルの友人は送るようにしています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e会社\n\u003cul\u003e\n\u003cli\u003e送っていません。社長からは毎年もらっているので、送っています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eその他\n\u003cul\u003e\n\u003cli\u003eもらった場合は返すようにしています。よっぽどつながりを切りたい場合は別ですが。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e送っても来ない人もいますが、\nあくまで自分が送りたいというのが基準なので、気にしてません。\u003c/p\u003e\n\u003ch2 id=\"宛先\"\u003e宛先\u003c/h2\u003e\n\u003cp\u003eこれも悩むところですが、自分はこうしています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e相手と個人的なつながりがある場合: 氏名まで書く\u003c/li\u003e\n\u003cli\u003e個人的なつながりがないが、顔を合わせたことはある: 「ご家族様」と書く\u003c/li\u003e\n\u003cli\u003e全く面識もない場合: 書かない\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e逆に、差出人の名前は使い分けていません。\u003c/p\u003e\n\u003ch2 id=\"マナーは気にしすぎない\"\u003eマナーは気にしすぎない\u003c/h2\u003e\n\u003cp\u003e年賀状のマナーで検索するとうんざりするくらいなのですが、\n気にしすぎてもしょうがないです。\n気にするのはこれくらいでいいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e名前を間違わない\u003c/li\u003e\n\u003cli\u003e敬称をつける\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e愛媛県を愛知県と書かない\u003c/strong\u003e\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003e喪中の相手には送らない\n\u003cul\u003e\n\u003cli\u003e本当の喪中の意味とは違うのですが、送らないほうが無難です。\u003c/li\u003e\n\u003cli\u003eただし、相手から「送っていいよ」と言われた場合は送ってOK\u003c/li\u003e\n\u003cli\u003e詳細は下記。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e逆に、こういうのを受け取ることがありますが、気にしてません。\nマナー違反と書かれているサイトもありますが、気にしなくて構いません\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e横書き\u003c/li\u003e\n\u003cli\u003eボールペン書き\u003c/li\u003e\n\u003cli\u003eメッセージなし\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"差出人の住所は表にあるとよい\"\u003e差出人の住所は表にあるとよい\u003c/h2\u003e\n\u003cp\u003e毎年年賀状の季節が終わったら、\n宛先の確認(郵便番号程度)と、お年玉の番号を控えているのですが、\nその時に、裏面だけしか住所がないと微妙にやりづらいです。\nなるだけ住所は表面にあるといいなぁと思います。\u003c/p\u003e\n\u003ch2 id=\"喪中\"\u003e喪中\u003c/h2\u003e\n\u003cp\u003e喪中はがきは12月中旬までに出すのがマナーのようです。\nなので、本格的な年賀状の準備はそれ以降になりますね(短い。。。)。\u003c/p\u003e\n\u003cp\u003e喪中はあくまで「こちらから出さない」なので、\n相手からもらってはいけないということではありません。\u003c/p\u003e\n\u003cp\u003eただ、喪中はがきをもらった人は年賀はがきを出さないのが普通なので、\n喪中はがきに「喪中に関係なく送ってください」と書くといいです。\u003c/p\u003e\n\u003ch2 id=\"保存期間\"\u003e保存期間\u003c/h2\u003e\n\u003cp\u003e自分はずっと前から保存していましたが\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e、\nさすがに多くなってきたので捨てることにしました。\n以下の基準で運用することにします。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://yu-bin.jp/letters/otoshidama/\"\u003eお年玉抽選\u003c/a\u003eが終わるまでは残す(2018年1月14日)\u003c/li\u003e\n\u003cli\u003e最新のものは残す(営業のもの除く)\u003c/li\u003e\n\u003cli\u003e思い出になっている年賀状は残す\u003c/li\u003e\n\u003cli\u003eそれ以外のものは捨てる\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e間違えた人はいないのでもちろんジョークですが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e相手から「こうしてほしい」と言われてないのにぐだぐだ言う人がいたら、縁を切ってもいいくらいです。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e自分もメッセージ書かないで出すことが多いので。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003eそもそも送る相手ももらう相手もほとんどいなかったので。\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ドラゴンクエストX 目覚めし五つの種族 オンライン",
    "url": "https://www.ikemo3.com/log/dq10/",
    "contents": "\u003ch2 id=\"スキルシミュレータ\"\u003eスキルシミュレータ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?a-bXYACBACMg4SPMoQziSOkZMfAy8DEEqAA5ugxCDgwMEgxcKWA5HQawBsYgMI_FBUjZMTBwgXkWAmBKQ4ERbCYDKsUMAA\"\u003e2013-05-12\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axHUYICBAAYjMO3DIMzAwaDMwAvmSQGhEZjNB1ajAhbVBWIhBgcgKQHEXAwpQPUQoAPEMDMZGYLg4iwMLmC2HZjHBRe3YBCAszUYFIB6EIBUtiwzAA\"\u003e2013-06-04\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axHUYICBAAYjMO3DIM7AwaDKwAvmSQGhEZjNB1ajAxa1B2IhBndGXgYJIIuLIYVBDUizA7EOAw8DzExGhiAGhPkQtieYzcWgDBW1YBAA2gUBGgwKQD0IQCpblhkA\"\u003e2013-08-13\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axHUYICBAAYjMO3DIM7AwaAKFZUCQiMGXiCLD6xGByzqDcRCDO6MvAwSQBYXQwqDGtwcPwaYmYwMQXA2A5TtCWZzMSjDxc3hdmkwKAD1IACpbFlmAA\"\u003e2013-08-15\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axHUZIAAdoYABnsgrQ7mxbJrQMV1GdQYzMEsRSAOYNBhgIEghgBGXTCLlaGCQQNJHMZmxMIWY7AF81Xg6s3hajQZtBhk4OIGDNJwtgxQPwLgYssyAwA\"\u003e2014-03-26\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axHUZIAAdoYALncgrQ7mpTBoQMV1GdQYzMEsRSAOYNBhgIEghgAmXTCLFUk9SBzGZsTCFmOwBfNV4OrN4Wo0GbQY5ODiBgyySGxGBgTAxZZlBgA\"\u003e2014-04-05\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axHUZIAAdoYABg8grQ7m5TFoQMV1GdQYzMEsFS4GoBodBhgIYghg0uUCsVgZKuDqQeIwNiMaG6RXlssWYhpcvTlcjSaDFoMyXNyNQQ7ONgDqBwIumFkIwAgXBZrNDAA\"\u003e2014-04-23\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axHUZIAAdoYABi8grQ7m5TFoQMV1GdQYzMEsFS4GoBodBhgIYghg0uUCsVgZKuDqQeIwNiMa2whIy3LZQkyDqzeHq9Fk0GJQhou7MSjC2QZA_UDABTMLARjhokCzmQE\"\u003e2014-05-10\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axHUZIAAdoYABh8Gdi4tMC-PQQMqrsugxmAOZqkAcQCQDwNBDAFMEB4rQwVcPUgczOZiYGCEsRkgbCMgLcvgB-ZjqAcCTQYtBk24eABUPJgLoh8BcLFlmQE\"\u003e2014-05-19\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axHUZIAAdoYABh8Gdi4tMC-PQQMqrsugxmAOZqkAcQCQDwNBDAFMEB4rQwVcPUgczOZiYGCEsRkgbCMgLcvgB-ZrMATDdcDUaDJoMWjBRQOg4sFcEP0IgIstywwA\"\u003e2014-05-22\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axHUZICBAIYAZgYGOSBLlKGCQQMqqsqgx2DBIAnlRQF5IOANxEIMAUwMDClAlhGDGFy9PgMTnM3IEITCNgKzUsAkTDwYiA3gbkhhMIWz87g04OwAoH4EwMWWZQYA\"\u003e2014-08-13\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axE0YmBngIAAhgA2BgZxIMuIIYXBlCGNBSLOwWDFoAZXYwSm7YBYjSGAmYEhAqxeiUGLAQaCGLSBJCuUDTKfkQXGBoFsMAlih4FZLAyOQJIXrKaCwRxuTiE7xMxgkBoWRgYEwMIG65ZlBgA\"\u003e2014-10-19\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axE0YgABCSAOYAhg12QQAfOLGUwZvBkgQI3BmkEdyg5ggKgPBGIphgBmiGgTgxJUPBSIxRiMwWyQZBBYXBLMD4KqyQaTZgzsUDNTGFyBJMTeGjZzqCg3QyYXRL0_EMswMDIgAC62LDMA\"\u003e2014-11-10\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axE0YoCBKIZQdgYGcTC7h8GdgYUNIt7E4MogwQ1hpzBA1EcC-UIMAcwwFUoMMHOygdgUzOICwiCweDbUJCO4CgYGK6h6RaAafyAtzgax1xxICnBD7DJGchsjAwJgYYN1yzIDAA\"\u003e2015-01-10\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axE0ZmBgkOYFEgwBDKHsDAziICZDD4M3gwwDBDSB2OwwtjGYjgTyhRgCmBmgqsUYjKCqU4DYlAEGgsDidmA2TE02mHRkUOGF6QgAknJQk8yBpAA7Ay9I3BhuThQDIwMC4GLLMgMA\"\u003e2015-01-12\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axG0YGBgkOYFEgwBDKHsDAziICZDD4M3gwwDBDSB2Owwti2YjgTyhRgCmBmgqsUYTKGqU4AYxmZgCGIwAZJ2YLYYgzGYzgaTHgwqvDAdwUBSDmoSyD0C7Ay8IHEnuDlRDIwMCICLLcsMAA\"\u003e2015-01-27\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axG0YGBgUGMAgQCGUHYQzcgQypDC4M2gChblZsgDssUZJMG8PAZbMJ0PxEIMAcwMDEVAliqDGIMpAwSkMPBA2RIM7AxBDCZAlgyYH8RgDKazwKQHgxtURxBDMJA0B7MrGEDuYWNQALvHiQEGooCuQgBcbFlmAA\"\u003e2015-01-28\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://cpro.jp/dq10/skillsimulator/?axG0ZYAAQ4YAhlAOHQZGIJuXoZEhhEGJgQXIZmdoYghlYmAwAbJlGFIZ3BhYwerNGIIYgpkZGCIYmBmMgWrNoeYIAcXNGYAaGBSAOIjBAkiqgGWCGCzBdCIQiwFtA4EusDqQ-UZgfpOIBQMMlEHVgETygHZkw2UYGRiwsmWZAQ\"\u003e2015-05-06\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "ほぼ日手帳",
    "url": "https://www.ikemo3.com/dic/hobonichi-techo/",
    "contents": "\u003ch2 id=\"ほぼ日手帳とは\"\u003eほぼ日手帳とは\u003c/h2\u003e\n\u003cp\u003eアナログな手帳です。\u003c/p\u003e\n\u003ch2 id=\"読む手帳\"\u003e読む手帳\u003c/h2\u003e\n\u003cp\u003e自分はほとんどの作業をデジタルで行っているのですが、\n手書きで何かしたいという欲求は常にあって、\nそのために選ぶのはほぼ日手帳というのは変わっていません\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eなぜかというと、この手帳は「読む手帳」だからです。\nオリジナルの場合1日1ページなのですが、\nその左下にいろんな言葉が書かれています。\nこればかりは他では真似できません。\nなので、「ほぼ白手帳」となることがあっても、これを買っています。\nまあ、「ほぼ白手帳」となってしまう一番の原因は、\n単に「習慣がない」だと分かったのですが。\u003c/p\u003e\n\u003ch2 id=\"ロフトでも取り扱ってる\"\u003eロフトでも取り扱ってる\u003c/h2\u003e\n\u003cp\u003eほぼ日手帳はオフィシャルのほぼ日ストアで買うのが一番ですが、\n多くは、ロフトでも取り扱っています。\u003c/p\u003e\n\u003cp\u003eロフトは近くにないよという人も\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e、\n\u003ca href=\"https://loft.omni7.jp/top\"\u003eロフトネットストア\u003c/a\u003eには置いています。意外な盲点です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.1101.com/store/techo/place/\"\u003e取り扱い店舗\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e中断してた時期もあったり、買うタイプが変わってたりはするのですが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e松山はエミフル松前にあるんで行けなくはないんですが。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ほぼ日手帳",
    "url": "https://www.ikemo3.com/log/hobonichi-techo/",
    "contents": "\u003ch2 id=\"2019年\"\u003e2019年\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e本体\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.1101.com/store/techo/ja/2018/pc/detail_cover/ob18_avec.html\"\u003eオリジナル avec(月曜はじまり)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eカバーはサターンバレーを継続使用\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eオプション\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.1101.com/store/techo/ja/2019/pc/detail_toolstoys/tt_pagekeeper.html\"\u003eほぼ日のページキーパー\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"理由\"\u003e理由\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e2018年に試したavecがちょうどいいサイズだった。レシートが貼れるのがよい。\u003c/li\u003e\n\u003cli\u003eホワイトボードカレンダーと手帳本体だと微妙な値段だったので、ページキーパーを追加。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"2018年\"\u003e2018年\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e本体\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.1101.com/store/techo/ja/2018/pc/detail_cover/ob18_avec.html\"\u003eオリジナル avec(月曜はじまり)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eカバーはサターンバレーを継続使用\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eオプション\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.1101.com/store/techo/ja/2018/pc/detail_toolstoys/tt_liner.html\"\u003eほぼ日の下敷き\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"理由-1\"\u003e理由\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eバッグで持ち歩くものが増えたので、持ち運ばなくなった。\u003c/li\u003e\n\u003cli\u003eオリジナル(本体)が208gなのに対し、avec(本体)が1冊117gなので91g軽い。\u003c/li\u003e\n\u003cli\u003eカバーは変えたいと思うものがなかった。\u003c/li\u003e\n\u003cli\u003e下敷きは無くしてしまったので。。。あのサイズの下敷きは売ってなかった。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"2017年\"\u003e2017年\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e本体\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.1101.com/store/techo/pc/ja/2017/detail_cover/r_o_r.html\"\u003eオリジナル(月曜始まり)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eカバー\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.1101.com/store/techo/pc/ja/detail_archive/#c_mother_saturn\"\u003e2016年アーカイブのサターンバレー\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eオプション\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.1101.com/store/techo/pc/ja/2017/detail_toolstoys/s_frixioneraser.html\"\u003eフリクションイレーザー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.1101.com/store/techo/pc/ja/2017/detail_toolstoys/tt_deardoctors.html\"\u003eほぼ日の健康手帳\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.1101.com/store/techo/pc/ja/2017/detail_toolstoys/tt_liner.html\"\u003eほぼ日の下敷き\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.1101.com/store/techo/pc/ja/2017/detail_toolstoys/s_clipruler.html\"\u003eクリップルーラー(ブルー)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"理由-2\"\u003e理由\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWEEKSは一言が1週間1つなので寂しい。\u003c/li\u003e\n\u003cli\u003eWEEKSだと予定表の欄が無駄になってしまう。\u003c/li\u003e\n\u003cli\u003eウェストポーチからバッグに変えたので、大きいものを入れるのが楽になった。\u003c/li\u003e\n\u003cli\u003eどせいさんは知ってるけどMOTHER2やったことなかった。\n\u003cul\u003e\n\u003cli\u003e嘘でした。\u003c/li\u003e\n\u003cli\u003e1度やったことあったけど忘れてただけだった。\u003c/li\u003e\n\u003cli\u003e2度目プレイして、エンディングでプレイしてたことを思い出した。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"背割れ疑惑の件\"\u003e背割れ疑惑(?)の件\u003c/h2\u003e\n\u003cp\u003e「本体の背割れがまれに起きる可能性があるので、補強したものを送ります」\nという話、自分も聞いたことがあって、\nもしかしたら送られて来たかなぁと思ったんですがいつの話かわからないので、\nとりあえずリンクだけ貼っておきます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.1101.com/itoi_20th/2018-06-09.html\"\u003e第4回 ほぼ日手帳が売れたときは‥‥？（明るいビル時代のほぼ日 #1） - 糸井重里、ほぼ日の20年を語る。 - ほぼ日刊イトイ新聞\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "牛タン",
    "url": "https://www.ikemo3.com/dic/gyutan/",
    "contents": "\u003ch2 id=\"牛タンとは\"\u003e牛タンとは\u003c/h2\u003e\n\u003cp\u003e牛の舌です。\u003c/p\u003e\n\u003cp\u003e自分の好物ですヽ(´ー｀)ノ\u003c/p\u003e\n\u003ch2 id=\"厚切り\"\u003e厚切り\u003c/h2\u003e\n\u003cp\u003eタンは焼肉の中でも好きな部位だったのですが、\n仙台の牛タンを食ってから、普通の牛タンが物足りなくなってきました。\u003c/p\u003e\n\u003cp\u003eいよてつ髙島屋でたまに利休の出展があって、\nそのときは毎回牛タン弁当を買っています\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n1度だけ別の店がきたときがあったのですが(店名忘れました。。。)、\nそのときも美味しかったので、やっぱり厚切りが良いです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e久しぶりに食べたその日に記事を書きました( ´ω`)\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "任天堂",
    "url": "https://www.ikemo3.com/dic/nintendo/",
    "contents": "\u003ch2 id=\"任天堂とは\"\u003e任天堂とは\u003c/h2\u003e\n\u003cp\u003eゲーム機、ゲームを作っている会社です。\u003c/p\u003e\n\u003ch2 id=\"トランプもあるよ\"\u003eトランプもあるよ\u003c/h2\u003e\n\u003cp\u003eもちろん今のメインはゲーム事業で、\n「その他の商品」扱いになってますが、\nトランプなどの製造も行っています\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.nintendo.co.jp/others/\"\u003eその他の商品｜Nintendo\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e個人的には花札のイメージが大きいです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B001FLYYHI/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B001FLYYHI.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B001FLYYHI/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n任天堂 花札 大統領 黒\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e最近はキャラクター事業にも力を入れているので、\nもっといろんなグッズが出るかも。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e2016年度で17億円の売上なので、規模は小さくないんですよね。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "バックアップ",
    "url": "https://www.ikemo3.com/dic/backup/",
    "contents": "\u003ch2 id=\"バックアップとは\"\u003eバックアップとは\u003c/h2\u003e\n\u003cp\u003eデータが壊れた時に備えて、コピーを保存しておくことです。\u003c/p\u003e\n\u003ch2 id=\"バックアップが必要な理由\"\u003eバックアップが必要な理由\u003c/h2\u003e\n\u003cp\u003e昔は「HDDが壊れるから」というのが一番の理由でしたが、\n最近は「誤操作による上書き」と、「ランサムウェア対策」も大きいです。\u003c/p\u003e\n\u003ch2 id=\"321ルール\"\u003e321ルール\u003c/h2\u003e\n\u003cp\u003eバックアップの理想的なルールとして、321ルールというのがあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eデータは3つ持つ(バックアップを2つ持つ)\u003c/li\u003e\n\u003cli\u003e2種類のメディアでバックアップを保存\u003c/li\u003e\n\u003cli\u003e1つは違う場所で保存\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例えば、自分は\u003ca href=\"/dic/macbook-pro/\"\u003eMacBook Pro\u003c/a\u003eのバックアップを、\nTime Machine(外付けHDD)と、\u003ca href=\"/dic/backblaze/\"\u003eBackblaze\u003c/a\u003eを使っています。\nなので、以下のように、321ルールが満たせてます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eバックアップ: 本体\u003ca href=\"/dic/ssd/\"\u003eSSD\u003c/a\u003e + 外付けHDD + Backblazeの3つ\u003c/li\u003e\n\u003cli\u003eメディア: \u003ca href=\"/dic/ssd/\"\u003eSSD\u003c/a\u003e + HDD + クラウドの3種類\u003c/li\u003e\n\u003cli\u003e場所: 自宅とクラウドの2種類\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Backblaze",
    "url": "https://www.ikemo3.com/dic/backblaze/",
    "contents": "\u003ch2 id=\"backblazeとは\"\u003eBackblazeとは\u003c/h2\u003e\n\u003cp\u003eオンラインのバックアップサービスです。\u003c/p\u003e\n\u003ch2 id=\"容量無制限\"\u003e容量無制限\u003c/h2\u003e\n\u003cp\u003e容量無制限のサービスがいくつも現れて消えていきましたが、\nここはずっと容量無制限を続けています。\u003c/p\u003e\n\u003cp\u003e容量無制限のサービスが続かない一番の理由は、\n容量無制限にすると、こういう行為をする人が出てくるからです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://internet.watch.impress.co.jp/docs/yajiuma/741576.html\"\u003e【やじうまWatch】容量無制限のAmazonプライムフォトに10GBの画像をアップするユーザー出現、波紋を広げる - INTERNET Watch\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eそれでもBackblazeが容量無制限を続けられている理由は、\nバックアップに特化しているからです。\u003c/p\u003e\n\u003cp\u003e逆に言えば、ファイル共有とかの機能はありません。\n徹底的にバックアップに特化しているのがいいです。\u003c/p\u003e\n\u003ch2 id=\"hddの故障率レポートでも有名\"\u003eHDDの故障率レポートでも有名\u003c/h2\u003e\n\u003cp\u003eBackblazeはオンラインのバックアップサービスなので、\nもちろんHDDを大量に使います。\nその故障率を公開しています。\nこれを知ってから、SeagateのHDDは買う気がなくなりました\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.backblaze.com/blog/hard-drive-failure-rates-q3-2017/\"\u003e2017 Hard Drive Reliability by Drive Size and Brand\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eAmazonプライムフォトはまだ無制限のようですが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eもちろんデータセンター向けのHDDでないのは知ってますが、それを差し引いても結構壊れた話を聞くんですよね。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Backup",
    "url": "https://www.ikemo3.com/tags/backup/",
    "contents": ""
  }, 
  {
    "title": "esa",
    "url": "https://www.ikemo3.com/manual/esa/",
    "contents": "\u003ch2 id=\"よく使いそうなもの\"\u003eよく使いそうなもの\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.esa.io/posts/8\"\u003eキーボードショートカット\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.esa.io/posts/7\"\u003e投稿テンプレート\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.esa.io/posts/15\"\u003e記事の書き方\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"esarea\"\u003eesarea\u003c/h2\u003e\n\u003cp\u003eいろんな場所でesaの入力が使えるもの。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://chrome.google.com/webstore/detail/esarea/pjhancoeamcahkmbmgoonbaggjbpijoc\"\u003eesarea - Chrome ウェブストア\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fukayatsu/esarea\"\u003efukayatsu/esarea: Enjoy (( ⁰⊖⁰)/) markdown!\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eキーバインド\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOption + Shift + Space: ToDoのトグル\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Esa",
    "url": "https://www.ikemo3.com/tags/esa/",
    "contents": ""
  }, 
  {
    "title": "esa.io: あるパスに移動する",
    "url": "https://www.ikemo3.com/inverted/esa/move-to-today-path/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://esa.io/\"\u003eesa\u003c/a\u003eにおいて、今日のパスに移動する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e以下のブラウザで動作確認しています。\n他のブラウザでも多分動くと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGoogle Chrome 63.0.3239.84\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://www.eonet.ne.jp/~wdf/software/bookmarklet_creator.html\"\u003eWDF - Software : ブックマークレット作成スクリプト\u003c/a\u003eにアクセスする。\u003c/li\u003e\n\u003cli\u003eテキストフィールドに以下の内容を貼り付ける。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e作成\u003c/code\u003eボタンを押す。\u003c/li\u003e\n\u003cli\u003eリンクが作成されるので、ブックマークバーにドラッグする。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"今日の場合\"\u003e今日の場合\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003econst host = \u0026#34;ikemo333.esa.io\u0026#34;;\nconst base_path = \u0026#34;ジャーナル;\nvar day = new Date();\nlocation.href=\u0026#34;https://\u0026#34; + host + \u0026#34;/#path=/\u0026#34; + base_path + \u0026#34;/\u0026#34;\n    + day.getFullYear()\n    + \u0026#34;/\u0026#34;\n    + (\u0026#34;0\u0026#34; + (day.getMonth() + 1)).slice(-2)\n    + \u0026#34;/\u0026#34;\n    + (\u0026#34;0\u0026#34; + day.getDate()).slice(-2)\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"昨日の場合\"\u003e昨日の場合\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003evar day = new Date();\nday.setDate(day.getDate() - 1);\nlocation.href=\u0026#34;https://\u0026#34; + host + \u0026#34;/#path=/\u0026#34; + base_path + \u0026#34;/\u0026#34;\n    + day.getFullYear()\n    + \u0026#34;/\u0026#34;\n    + (\u0026#34;0\u0026#34; + (day.getMonth() + 1)).slice(-2)\n    + \u0026#34;/\u0026#34;\n    + (\u0026#34;0\u0026#34; + day.getDate()).slice(-2)\n\u003c/code\u003e\u003c/pre\u003e"
  }, 
  {
    "title": "Togetter",
    "url": "https://www.ikemo3.com/dic/togetter/",
    "contents": "\u003ch2 id=\"togetterとは\"\u003eTogetterとは\u003c/h2\u003e\n\u003cp\u003e晒し上げ支援プラットフォームです。\u003c/p\u003e\n\u003ch2 id=\"どうしてもというときだけ使う\"\u003eどうしてもというときだけ使う\u003c/h2\u003e\n\u003cp\u003eまあそれでも自分はTwitterでは鍵アカウントなので、\n広めて貰う方法は他にないんですよね。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://nextstep.shogizuki.com/drucker-does-not-say/\"\u003e戸田信子がドラッカーの名誉毀損をした事例\u003c/a\u003eのときに泣く泣く使ったくらいです。\u003c/p\u003e\n"
  }, 
  {
    "title": "玉突き理論",
    "url": "https://www.ikemo3.com/dic/pileup-theory/",
    "contents": "\u003ch2 id=\"玉突き理論とは\"\u003e玉突き理論とは\u003c/h2\u003e\n\u003cp\u003e理論というほどではないですが、以下のようなものです。\u003c/p\u003e\n\u003cp\u003eある事象A、B、Cがあったときに、「Aが起きた」と「Cが起きた」\nを因果関係があるように言っているが、\n実際はAがBを引き起こし、Cを起こしたというものです。\u003c/p\u003e\n\u003ch2 id=\"スマホと据え置きゲーム\"\u003eスマホと据え置きゲーム\u003c/h2\u003e\n\u003cp\u003e自分がこの言葉を使うのは、\n「据え置きゲームが売れないのはスマホの影響」という珍説を否定するときです。\u003c/p\u003e\n\u003cp\u003e「スマホでゲームをする人が増えている\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e」と、\n「据え置きゲームの売上が減っている」という事象があったときに、\nアナリスト(\u003ca href=\"/dic/empty-analyst/\"\u003e節穴リスト\u003c/a\u003eを含め、多くの人は\n「据え置きゲームが売れないのはスマホのため」と結論づけてしまいます。\n時間の奪い合いという側面があるとはいえ、\nまともなゲーマーなら直感的に変だと感じるはずです。\u003c/p\u003e\n\u003cp\u003e実際には、以下のような現象が起きていました。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eスマホが携帯ゲーム機で遊ぶ時間を奪った。\u003c/li\u003e\n\u003cli\u003e携帯ゲーム機が据え置きゲーム機の市場を奪った。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e結果として、携帯ゲーム機(\u003ca href=\"/dic/nintendo-3ds/\"\u003eNintendo 3DS\u003c/a\u003eなど)は\n表面的にはさほど影響を受けてないように見えます。\u003c/p\u003e\n\u003cp\u003e携帯できる据え置き機である、\u003ca href=\"/dic/nintendo-switch/\"\u003eNintendo Switch\u003c/a\u003eが売れたことから、ますますはっきりしました。\n本質的には、「テレビの前でじっくりゲームをする」というスタイルが\nマイナーになってきたんですね\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e実際はゲームとも言えないものが多いですが、そこは今回は追求しません。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eこれは日本での話で、欧米だとPCゲーム市場の影響が大きいです。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "節穴リスト",
    "url": "https://www.ikemo3.com/dic/empty-analyst/",
    "contents": "\u003ch2 id=\"節穴リストとは\"\u003e節穴リストとは\u003c/h2\u003e\n\u003cp\u003e「節穴」＋「アナリスト」を合わせた造語です。\n同じような使い方をする人は稀に見られます。\u003c/p\u003e\n"
  }, 
  {
    "title": "Herb",
    "url": "https://www.ikemo3.com/tags/herb/",
    "contents": ""
  }, 
  {
    "title": "カモミール",
    "url": "https://www.ikemo3.com/dic/kamille/",
    "contents": "\u003ch2 id=\"カモミールとは\"\u003eカモミールとは\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eハーブティとして飲まれる草\u003c/li\u003e\n\u003cli\u003e魔法先生ネギま!に登場するオコジョの妖精(カモミール・アルベール)\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eここでは1.について書きます。\u003c/p\u003e\n\u003ch2 id=\"綴り\"\u003e綴り\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eドイツ語: \u003ccode\u003ekamille\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e英語: \u003ccode\u003echamomile\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eフランス語: \u003ccode\u003ecamomille\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこのページのURLがドイツ語なのは、\n以下のカモミールをよく飲んでいるからです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B003UDBHSI/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B003UDBHSI.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B003UDBHSI/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nメスマー カモミール 25P\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"意外と売ってない\"\u003e意外と売ってない\u003c/h2\u003e\n\u003cp\u003eカモミールはメジャーなハーブティなのですが、意外と売ってないので困ります。\n\u003ca href=\"https://www.kaldi.co.jp/\"\u003eKALDI\u003c/a\u003eには置いてあるのですが・・・、よく売り切れてしまいます。\n(以下は楽天のリンク)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2 id=\"リラックス効果\"\u003eリラックス効果\u003c/h2\u003e\n\u003cp\u003eカモミールはリラックス効果があるので、\nちょっと高ぶってるときに飲むといいです。\n不眠にも効果があるようです(利尿作用があるようなのであまり夜には飲みませんが)。\u003c/p\u003e\n\u003cp\u003eただ、リラックス効果が強すぎて、\n昼間飲むと眠くなることもあります。\u003c/p\u003e\n"
  }, 
  {
    "title": "将棋の神様",
    "url": "https://www.ikemo3.com/dic/god-of-shogi/",
    "contents": "\u003ch2 id=\"将棋の神様とは\"\u003e将棋の神様とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/shogi/\"\u003e将棋\u003c/a\u003eのことを全て知っているという仮想的な存在です。\u003c/p\u003e\n\u003ch2 id=\"神様が角を落として羽生さんがやっと勝てる\"\u003e神様が角を落として、羽生さんがやっと勝てる\u003c/h2\u003e\n\u003cp\u003e有名なエピソードに、\n羽生さん\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eが神様に角を落としてもらって、やっと勝てるという発言があります。\n\u003ca href=\"/dic/yonenaga-kunio/\"\u003e米長邦雄永世棋聖\u003c/a\u003eとの対談「人生、惚れてこそ」という本のp35「第一章 頂上を見て生きる」に書いてありました。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e羽生語録1\n「将棋の神さまと、角落ちならなんとか、香落ちでは駄目ですね。\n人間は将棋を理解していません。まだ知ることが、たくさんあります」\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4396311192/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4396311192.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4396311192/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n勉強の仕方―頭がよくなる秘密 (ノン・ポシェット)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e「対局する言葉」という本のp82「第四章 日本語という天才」にも書いてありました。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e柳瀬――とんでもない。でもどうなんですか、将棋の神様とやって角落ちなら勝てるとか。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e羽生――角落ちは、そうですね、辛勝という感じですかね。かろうじて残せるかな、という気はしますけど。香落ちはもう全然だめですね。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4309473113/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4309473113.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4309473113/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n対局する言葉―羽生\u0026#43;ジョイス (河出文庫)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eただ、どちらもその場で発言したのではなく、\n過去に発言したことを取り上げてるだけのようです。\nこの著書は両方とも七冠独占した直後の本なので、\n七冠独占したとき、あるいはその頃の発言かなぁと思ってます\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e現役でタイトル持ちなので、称号が定まらないのと、個人的に親しみを込めたいので「さん」付けにしています。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e有名な発言なのですが、古すぎるためか、見つかりませんした。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "天才",
    "url": "https://www.ikemo3.com/dic/genius/",
    "contents": "\u003ch2 id=\"天才とは\"\u003e天才とは\u003c/h2\u003e\n\u003cp\u003e生まれつき才能に恵まれた人のことらしいです。\u003c/p\u003e\n\u003ch2 id=\"生まれつきはあるか\"\u003e「生まれつき」はあるか?\u003c/h2\u003e\n\u003cp\u003e体つきは遺伝的要素が大きいので、\n天才というのは何となく理解できますが、\n頭を使うことは後天的要素が大きいので、\n「天才」というのは違和感があるんですよね。\u003c/p\u003e\n\u003ch2 id=\"天然で才能豊かな人\"\u003e天然で才能豊かな人\u003c/h2\u003e\n\u003cp\u003eなので、自分は「天才」というときは、\n「天然で才能豊かな人」という感じで使います。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/dic/shogi/\"\u003e将棋\u003c/a\u003eで言えば、加藤一二三九段が一番「天才」のイメージです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Effective Java",
    "url": "https://www.ikemo3.com/dic/effective-java/",
    "contents": "\u003ch2 id=\"effective-javaとは\"\u003eEffective Javaとは\u003c/h2\u003e\n\u003cp\u003e定評のあるJavaの本です。\nいま出ているのは第2版ですが、第3版が2018-01-07に出る予定です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\nKindle版は既に出ています。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4621066056/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4621066056.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4621066056/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nEFFECTIVE JAVA 第2版 (The Java Series)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/0134685997/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/0134685997.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/0134685997/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nEffective Java (3rd Edition)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e日本語版は出る予定ですが、時期はまだ未定のようです\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"難しいが役に立つ\"\u003e難しいが役に立つ\u003c/h2\u003e\n\u003cp\u003eEffective Javaは良い本ですが、内容を理解するのは難しいです。\nなぜかというと、\u003cstrong\u003e経験しないと必要性が分からない\u003c/strong\u003eからです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e継承よりコンポジション\u003c/li\u003e\n\u003cli\u003e例外の使い方\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eとか、何度も痛い目見てようやく理解しました\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"あえて外すケースも\"\u003eあえて外すケースも\u003c/h2\u003e\n\u003cp\u003eこの本に書いてあることは基本的には正しいですが、\nあえて外すケースもあります。\n例えば、不正にnullが渡された時に、この本では\nNullPointerException([ぬるぽ][])を投げるのが良いと書かれていますが、\n自分は、IllegalArgumentExceptionを投げるようにしています。\nこちらの方が意図がはっきりして好きだからです。\u003c/p\u003e\n\u003ch2 id=\"目次\"\u003e目次\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e第1章 はじめに\u003c/li\u003e\n\u003cli\u003e第2章 オブジェクトの生成と消滅\n\u003cul\u003e\n\u003cli\u003e項目1 コンストラクタの代わりに static ファクトリーメソッドを検討する\u003c/li\u003e\n\u003cli\u003e項目2 数多くのコンストラクタパラメータに直面した時にはビルダーを検討する\u003c/li\u003e\n\u003cli\u003e項目3 private のコンストラクタか enum 型でシングルトン特性を強制する\u003c/li\u003e\n\u003cli\u003e項目4 private のコンストラクタでインスタンス化不可能を強制する\u003c/li\u003e\n\u003cli\u003e項目5 不必要なオブジェクトの生成を避ける\u003c/li\u003e\n\u003cli\u003e項目6 廃れたオブジェクト参照を取り除く\u003c/li\u003e\n\u003cli\u003e項目7 ファイナライザを避ける\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e第3章 すべてのオブジェクトに共通のメソッド\n\u003cul\u003e\n\u003cli\u003e項目8 equals をオーバーライドする時は一般契約に従う\u003c/li\u003e\n\u003cli\u003e項目9 equals をオーバーライドする時は、常に hashCode をオーバーライドする.\u003c/li\u003e\n\u003cli\u003e項目10 toString を常にオーバーライドする\n\u003cul\u003e\n\u003cli\u003e関連: \u003ca href=\"/dic/java/do-not-rely-tostring/\"\u003etoString()に頼ってはいけない\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e項目11 clone を注意してオーバーライドする\u003c/li\u003e\n\u003cli\u003e項目12 Comparable の実装を検討する\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e第4章 クラスとインタフェース\n\u003cul\u003e\n\u003cli\u003e項目13 クラスとメンバーへのアクセス可能性を最小限にする\u003c/li\u003e\n\u003cli\u003e項目14 public のクラスでは、public のフィールドではなく、アクセッサーメソッドを使う\u003c/li\u003e\n\u003cli\u003e項目15 可変性を最小限にする\u003c/li\u003e\n\u003cli\u003e項目16 継承よりコンポジションを選ぶ\u003c/li\u003e\n\u003cli\u003e項目17 継承のために設計および文書化する、でなければ継承を禁止する\u003c/li\u003e\n\u003cli\u003e項目18 抽象クラスよりインタフェースを選ぶ\u003c/li\u003e\n\u003cli\u003e項目19 型を定義するためだけにインタフェースを使用する\u003c/li\u003e\n\u003cli\u003e項目20 タグ付クラスよりクラス階層を選ぶ\u003c/li\u003e\n\u003cli\u003e項目21 戦略を表現するために関数オブジェクトを使用する\u003c/li\u003e\n\u003cli\u003e項目22 非 static のメンバークラスより static のメンバークラスを選ぶ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e第5章 ジェネリックス\n\u003cul\u003e\n\u003cli\u003e項目23 新たなコードで原型を使用しない\u003c/li\u003e\n\u003cli\u003e項目24 無検査警告を取り除く\u003c/li\u003e\n\u003cli\u003e項目25 配列よりリストを選ぶ\n\u003cul\u003e\n\u003cli\u003e関連: \u003ca href=\"/dic/java/array-should-not-be-used/\"\u003e配列は使うべきでない\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e項目26 ジェネリック型を使用する\u003c/li\u003e\n\u003cli\u003e項目27 ジェネリックメソッドを使用する\u003c/li\u003e\n\u003cli\u003e項目28 API の柔軟性向上のために境界ワイルドカードを使用する\u003c/li\u003e\n\u003cli\u003e項目29 型安全な異種コンテナーを検討する\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e第6章 enum とアノテーション\n\u003cul\u003e\n\u003cli\u003e項目30 int 定数の代わりに enum を使用する\u003c/li\u003e\n\u003cli\u003e項目31 序数の代わりにインスタンスフィールドを使用する\u003c/li\u003e\n\u003cli\u003e項目32 ビットフィールドの代わりに EnumSet を使用する\u003c/li\u003e\n\u003cli\u003e項目33 序数インデックスの代わりに EnumMap を使用する\u003c/li\u003e\n\u003cli\u003e項目34 拡張可能な enum をインタフェースで模倣する\u003c/li\u003e\n\u003cli\u003e項目35 命名パターンよりアノテーションを選ぶ\u003c/li\u003e\n\u003cli\u003e項目36 常に Override アノテーションを使用する\u003c/li\u003e\n\u003cli\u003e項目37 型を定義するためにマーカーインタフェースを使用する\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e第7章 メソッド\n\u003cul\u003e\n\u003cli\u003e項目38 パラメータの正当性を検査する\u003c/li\u003e\n\u003cli\u003e項目39 必要な場合には、防御的にコピーする\u003c/li\u003e\n\u003cli\u003e項目40 メソッドのシグニチャを注意深く設計する\u003c/li\u003e\n\u003cli\u003e項目41 オーバーロードを注意して使用する\u003c/li\u003e\n\u003cli\u003e項目42 可変長引数を注意して使用する\u003c/li\u003e\n\u003cli\u003e項目43 null ではなく、空配列か空コレクションを返す\u003c/li\u003e\n\u003cli\u003e項目44 すべての公開 API 要素に対してドキュメントコメントを書く\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e第8章 プログラミング一般\n\u003cul\u003e\n\u003cli\u003e項目45 ローカル変数のスコープを最小限にする\u003c/li\u003e\n\u003cli\u003e項目46 従来の for ループより for-each ループを選ぶ\u003c/li\u003e\n\u003cli\u003e項目47 ライブラリーを知り、ライブラリーを使う\u003c/li\u003e\n\u003cli\u003e項目48 正確な答えが必要ならば、 float と double を避ける\u003c/li\u003e\n\u003cli\u003e項目49 ボクシングされた基本データより基本データ型を選ぶ\u003c/li\u003e\n\u003cli\u003e項目50 他の型が適切な場所では、文字列を避ける\u003c/li\u003e\n\u003cli\u003e項目51 文字列結合のパフォーマンスに用心する\u003c/li\u003e\n\u003cli\u003e項目52 インタフェースでオブジェクトを参照する\u003c/li\u003e\n\u003cli\u003e項目53 リフレクションよりインタフェースを選ぶ\u003c/li\u003e\n\u003cli\u003e項目54 ネイティブメソッドを注意して使用する\u003c/li\u003e\n\u003cli\u003e項目55 注意して最適化する\u003c/li\u003e\n\u003cli\u003e項目56 一般的に受け入れられている命名規約を守る\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e第9章 例外\n\u003cul\u003e\n\u003cli\u003e項目57 例外的状態にだけ例外を使用する\u003c/li\u003e\n\u003cli\u003e項目58 回復可能な状態にはチェックされる例外を、プログラミングエラーには実行時例外を使用する\u003c/li\u003e\n\u003cli\u003e項目59 チェックされる例外を不必要に使用するのを避ける\u003c/li\u003e\n\u003cli\u003e項目60 標準例外を使用する\u003c/li\u003e\n\u003cli\u003e項目61 抽象概念に適した例外をスローする\u003c/li\u003e\n\u003cli\u003e項目62 各メソッドがスローするすべての例外を文書化する\u003c/li\u003e\n\u003cli\u003e項目63 詳細メッセージにエラー記録情報を含める\u003c/li\u003e\n\u003cli\u003e項目64 エラーアトミック性に努める\u003c/li\u003e\n\u003cli\u003e項目65 例外を無視しない\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e第10章 並行性\n\u003cul\u003e\n\u003cli\u003e項目66 共有された可変データへのアクセスを同期する\u003c/li\u003e\n\u003cli\u003e項目67 過剰な同期は避ける\u003c/li\u003e\n\u003cli\u003e項目68 スレッドよりエグゼキューターとタスクを選ぶ\u003c/li\u003e\n\u003cli\u003e項目69 wait と notify よりコンカレンシーユーティリティを選ぶ\u003c/li\u003e\n\u003cli\u003e項目70 スレッド安全性を文書化する\u003c/li\u003e\n\u003cli\u003e項目71 遅延初期化を注意して使用する\u003c/li\u003e\n\u003cli\u003e項目72 スレッドスケジューラに依存しない\u003c/li\u003e\n\u003cli\u003e項目73 スレッドグループを避ける\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e第11章 シリアライズ\n\u003cul\u003e\n\u003cli\u003e項目74 Serializable を注意して実装する\u003c/li\u003e\n\u003cli\u003e項目75 カスタムシリアライズ形式の使用を検討する\u003c/li\u003e\n\u003cli\u003e項目76 防御的に readObject を書く\u003c/li\u003e\n\u003cli\u003e項目77 インスタンス制御に対しては、 readResolve より enum 型を選ぶ\u003c/li\u003e\n\u003cli\u003e項目78 シリアライズされたインスタンスの代わりに、シリアライズ・プロキシを検討する\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e何度も遅れてるようですが。。。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"http://yshibata.blog.so-net.ne.jp/2017-12-24\"\u003e『Effective Java Third Edition』：柴田 芳樹 (Yoshiki Shibata)：So-netブログ\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003eお察しください\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Long Term Support(LTS)",
    "url": "https://www.ikemo3.com/dic/long-term-support/",
    "contents": "\u003ch2 id=\"long-term-supportltsとは\"\u003eLong Term Support(LTS)とは\u003c/h2\u003e\n\u003cp\u003e以下のようなリリースポリシーです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLTS版とそれ以外で分ける\u003c/li\u003e\n\u003cli\u003eLTS版はサポート期間を長めに取り、それ以外はサポートは短め(次が出たらすぐサポート終了のことも)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ltsを採用している主なプロジェクト\"\u003eLTSを採用している主なプロジェクト\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eJava(18.9より)\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/linux-kernel/\"\u003eLinux kernel\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/firefox/\"\u003eMozilla Firefox\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUbuntu\u003c/li\u003e\n\u003cli\u003eWindows 10\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.oracle.com/technetwork/jp/java/eol-135779-ja.html\"\u003eOracle Java SE サポート･ロードマップ\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "バカッター",
    "url": "https://www.ikemo3.com/dic/bakatter/",
    "contents": "\u003ch2 id=\"バカッターとは\"\u003eバカッターとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/twitter/\"\u003eTwitter\u003c/a\u003eと\u0026quot;バカ\u0026quot;を組み合わせた言葉です。\u003c/p\u003e\n\u003ch2 id=\"itリテラシーが低い人だけ\"\u003eITリテラシーが低い人だけ?\u003c/h2\u003e\n\u003cp\u003eWikipediaの\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%90%E3%82%AB%E3%83%83%E3%82%BF%E3%83%BC\"\u003eバカッター\u003c/a\u003eの項目には、\nまるで、バカッターの原因=ITリテラシーの低さのように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eインターネット上で犯罪行為を告白するユーザーの多くは、ITリテラシーが低くネットに不慣れな初心者が多い。このようなユーザーは、インターネットを匿名だと思い、さらに投稿の公開範囲を理解していない者が多い。加えてツイッターは思いついたことを極めて簡単に投稿できてしまう事も、バカッター発生原因のひとつとして考えられている。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ca href=\"http://dic.nicovideo.jp/a/%E3%83%90%E3%82%AB%E3%83%83%E3%82%BF%E3%83%BC\"\u003eニコニコ大百科\u003c/a\u003eの方がまだ実態を表しています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eまた若者だけでなく、代議士や政令指定都市市長、大学教授など高い社会的地位にあるものが失言や暴言を投稿することもあり、これらも一種のバカッターである。「バカな若者が発見される」という意味と「偉い先生が意外にバカであることがバレる」という2つの意味合いを持つ。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"多くふぁぼやrtされるほどつまらない\"\u003e多く「ふぁぼ」や「RT」されるほどつまらない\u003c/h2\u003e\n\u003cp\u003e全てがそうではありませんが、\n多くふぁぼ(お気に入り)やRTされるツイートほどつまらないです。\n体感的に、数千RTされたものの8割は的はずれです。\u003c/p\u003e\n\u003cp\u003eつまらない、ネガティブな内容のツイートや、デマが何千RTもされ、\nポジティブな内容のツイートや、デマの訂正はほとんどされません。\u003c/p\u003e\n\u003ch2 id=\"エセ技術者の愚痴もいらない\"\u003eエセ技術者の愚痴もいらない\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/oss/\"\u003eオープンソース・ソフトウェア\u003c/a\u003eを開発しているような技術者は別ですが\n(そもそもそういう人はあまり愚痴らないですね)、\n自分の環境がいかに悪いかを自慢するようなツイートをする人が多くて困ります\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\nそういう人はこれでも読んだらいいと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://axia.co.jp/2017-09-20\"\u003e給料が低いと不満を垂れ流し続ける人はなぜ何も行動しないのか - 株式会社アクシア\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"自分の言葉で語れ\"\u003e自分の言葉で語れ\u003c/h2\u003e\n\u003cp\u003eポジティブな内容のRTはいいのですが、\nネガティブな内容のRTばかりする人\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003eに言いたいことがあります。\n\u003cstrong\u003e自分の言葉で語れ。\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e結局、RTばかりしている人は、自分の言葉で語れない、卑怯者です。\n安全地帯から石を投げるだけの、卑怯者です。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e「嫌なことがあった」くらいなら問題ありません。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eRTしてはいけないというわけではないですが、5割以上がRTで占められていたらア\u0026gt;ウトという認識です。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "メディアタイプ",
    "url": "https://www.ikemo3.com/dic/media-types/",
    "contents": "\u003ch2 id=\"メディアタイプとは\"\u003eメディアタイプとは\u003c/h2\u003e\n\u003cp\u003e以前はMIMEタイプとも呼ばれていたもので、\nコンテンツの形式を表現するものです。\u003c/p\u003e\n\u003ch2 id=\"例\"\u003e例\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHTML: \u003ccode\u003etext/html\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eXML: \u003ccode\u003eapplication/xml\u003c/code\u003e, \u003ccode\u003etext/xml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eJSON: \u003ccode\u003eapplication/json\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"特殊用途\"\u003e特殊用途\u003c/h2\u003e\n\u003cp\u003e特別な用途に使われるものがいくつか定義されています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ex.\u003c/code\u003e: ローカルで使用するとき\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eprs.\u003c/code\u003e: 個人使用フォーマット\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evnd.\u003c/code\u003e: ベンダ固有フォーマット\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e登録プロセスは簡単になったので、\u003ccode\u003ex.\u003c/code\u003eは原則として使わないようにとRFC 6838で書かれています。\n以前は\u003ccode\u003ex-\u003c/code\u003eがローカルで使用するために予約されていましたが、変わったようですね。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHowever, with the simplified registration procedures described above for vendor and personal trees, it should rarely, if ever, be necessary to use unregistered types.  Therefore, use of types in the \u0026ldquo;x.\u0026rdquo; tree is strongly discouraged.\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "睡眠",
    "url": "https://www.ikemo3.com/dic/sleep/",
    "contents": "\u003ch2 id=\"睡眠とは\"\u003e睡眠とは\u003c/h2\u003e\n\u003cp\u003e( ˘ω˘)ｽﾔｧ…\u003c/p\u003e\n\u003ch2 id=\"寝ないと生産性が落ちる\"\u003e寝ないと生産性が落ちる\u003c/h2\u003e\n\u003cp\u003e睡眠時間についてはいろいろ言われていますが、\n自分がはっきりと分かっているのは、\u003cstrong\u003e少なすぎると生産性が落ちる\u003c/strong\u003eことくらいです。\n自分の場合はこんな感じです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e7.5時間以上〜: 快適\u003c/li\u003e\n\u003cli\u003e6.5時間〜7.5時間: 問題なし(眠くならない)\u003c/li\u003e\n\u003cli\u003e6.0時間〜6.5時間: ちょっと眠い(生産性が落ちる)\u003c/li\u003e\n\u003cli\u003e6.0時間未満: 眠くて明らかに使い物にならない\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e最近(2017-12)は0時前に寝て、7時前に起きる生活をしています。\u003c/p\u003e\n"
  }, 
  {
    "title": "Base64",
    "url": "https://www.ikemo3.com/dic/base64/",
    "contents": "\u003ch2 id=\"base64とは\"\u003eBase64とは\u003c/h2\u003e\n\u003cp\u003eバイナリをASCII文字に変換するためのエンコーディング方式です。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eA-Z,a-z,0-9の62文字 + 2文字 + パディング用の文字が定義されていますが、\n用途に応じて少し異なってます。\n特によく使われるのが、URLセーフと呼ばれる、URLやファイル名に使える文字からなるエンコーディングです。\n(基本パターンだと\u003ccode\u003e/\u003c/code\u003eが使えない)\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eタイプ\u003c/th\u003e\n          \u003cth\u003e62\u003c/th\u003e\n          \u003cth\u003e63\u003c/th\u003e\n          \u003cth\u003eパディング\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e基本\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e+\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e/\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e=\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eURLセーフ\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e-\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e_\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e=\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ccode\u003ebase64url\u003c/code\u003eと呼ばれるときもあります。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Base64",
    "url": "https://www.ikemo3.com/manual/base64/",
    "contents": "\u003ch2 id=\"bsd版とgnulinux版の互換性\"\u003eBSD版とGNU(Linux)版の互換性\u003c/h2\u003e\n\u003cp\u003eBSD版はデコードが \u003ccode\u003e-D\u003c/code\u003e なのに対し、GNU(Linux)版は \u003ccode\u003e-d\u003c/code\u003e である。\nこの互換性を回避するのは難しいので、opensslコマンドを使うとよい。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eopenssl enc -d -base64 -A\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"デコード方法java\"\u003eデコード方法(Java)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eJava 8以降: \u003ca href=\"https://docs.oracle.com/javase/jp/8/docs/api/java/util/Base64.html\"\u003ejava.util.Base64\u003c/a\u003eを使用する。\u003c/li\u003e\n\u003cli\u003eJava 7以前: \u003ca href=\"https://commons.apache.org/proper/commons-codec/\"\u003eApache Commons Codec\u003c/a\u003eを使用する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"apache-commons-codec\"\u003eApache Commons Codec\u003c/h2\u003e\n\u003cp\u003eデコードはURLセーフかどうかを考慮する必要はない\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThe URL-safe parameter is only applied to encode operations. Decoding seamlessly handles both modes.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/binary/Base64.html\"\u003eBase64 (Apache Commons Codec 1.11 API)\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Hex",
    "url": "https://www.ikemo3.com/manual/hex/",
    "contents": "\u003ch2 id=\"java\"\u003eJava\u003c/h2\u003e\n\u003ch3 id=\"byte--16進文字列\"\u003ebyte[] → 16進文字列\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/jp/9/docs/api/javax/xml/bind/DatatypeConverter.html\"\u003ejavax.xml.bind.DatatypeConverter\u003c/a\u003e(Java 6より)を使用します。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ebyte[] val = new byte[] { 15, 16, -1 };\nSystem.out.println(DatatypeConverter.printHexBinary(val));\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eパッケージ名を見ると、XML用のライブラリですが、これを使うのがベストです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e標準ライブラリなので、追加インストールが不要。\u003c/li\u003e\n\u003cli\u003e標準ライブラリなので、原則として互換性が保たれる。\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Red Hat",
    "url": "https://www.ikemo3.com/dic/redhat/",
    "contents": "\u003ch2 id=\"red-hatとは\"\u003eRed Hatとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/linux/\"\u003eLinux\u003c/a\u003eディストリビューションを開発している会社です。\n俗称で赤帽と呼ばれることもあります\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"oss化に積極的\"\u003eOSS化に積極的\u003c/h2\u003e\n\u003cp\u003eRed Hatは結構信用できる会社だと思っています。\n自分は仕事で使ってるのもあるのですが、\n一番の理由は、\u003ca href=\"/dic/oss/\"\u003eオープンソース\u003c/a\u003e化に積極的なことです。\u003c/p\u003e\n\u003cp\u003e最近だと\u003ca href=\"/dic/ansible/\"\u003eAnsible\u003c/a\u003e買収時はプロプライエタリ・ソフトウェアだった\nAnsible Towerを、オープンソース化しています\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e最近はあまり聞かないですね。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ansible/awx\"\u003eansible/awx: AWX Project\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "RSA: PEM形式の公開鍵からmodulusを整数で取得する方法",
    "url": "https://www.ikemo3.com/inverted/rsa/get-modulus-from-pem-public-key/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003ePEM形式のRSA公開鍵\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eから、modulusを整数で取得する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebcコマンドが入っていること。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eecho \u0026#34;ibase=16;\u0026#34; $(openssl rsa -inform PEM -pubin -modulus -in pubkey.pem -noout | awk \u0026#39;BEGIN{FS=\u0026#34;=\u0026#34;}{print $2}\u0026#39;) | bc | tr -d \u0026#39;\\\\\\n\u0026#39;\n\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ccode\u003e------BEGIN PUBLIC KEY-----\u0026quot;\u003c/code\u003e で始まって \u003ccode\u003e------END PUBLIC KEY-----\u003c/code\u003e で終わる形式です。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ZERO to ONE",
    "url": "https://www.ikemo3.com/dic/zero-to-one/",
    "contents": "\u003ch2 id=\"zero-to-oneとは\"\u003eZERO to ONEとは\u003c/h2\u003e\n\u003cp\u003eピーター・ティールの著書です。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4140816589/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4140816589.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4140816589/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nゼロ・トゥ・ワン 君はゼロから何を生み出せるか\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"頭の強い人\"\u003e頭の強い人\u003c/h2\u003e\n\u003cp\u003e正直この本を読むまでピーター・ティールのことは全く知りませんでしたが\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\nこの本を読んだ時に、「頭が強い人だな」と思いました。\n自分は他の人を「賢い人だな」とか「頭の良い人だな」と思うことはよくありますが、\n「頭の強い人だな」と感じることはめったにありません。\u003c/p\u003e\n\u003cp\u003eこう思う人はだいたい数学か哲学専攻なのですが、予想通り(?)、哲学専攻でした。\u003c/p\u003e\n\u003ch2 id=\"幸福な企業はみなそれぞれに違う\"\u003e幸福な企業はみなそれぞれに違う\u003c/h2\u003e\n\u003cp\u003eこの本で個人的に面白いと思ったのが、\n「幸福な企業はみなそれぞれに違う」という言葉です。\u003c/p\u003e\n\u003cp\u003e競争はみんなを不幸にするという意味で使っていますが、\nこの元ネタは\u003ca href=\"/dic/all-happy-families-are-alike\"\u003eアンナ・カレーニナの冒頭\u003c/a\u003eなんですね。\n個人的によく知っているからでもありますが、\nこういう例えができる人はいいなと思いました。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eもちろん彼が創業したPayPalは知ってます(使ってます)。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "アルファブロガー",
    "url": "https://www.ikemo3.com/dic/alpha-blogger/",
    "contents": "\u003ch2 id=\"アルファブロガーとは\"\u003eアルファブロガーとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/new-vested-interests/\"\u003e新たな既得権層\u003c/a\u003eのことです。\u003c/p\u003e\n\u003ch2 id=\"ブログを書かなくなった\"\u003eブログを書かなくなった\u003c/h2\u003e\n\u003cp\u003e今でも続いているサイトもありますが\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\n\u003ca href=\"/dic/twitter/\"\u003eTwitter\u003c/a\u003eや、有料メルマガなどに行ってからブログを書かなくなった人が多いです。\n単にプラットフォームを移しただけならいいのですが、\nだんだん言葉の質が落ちている人が目立ちます。\nだから、自分は\u003ca href=\"/dic/new-vested-interests/\"\u003e新たな既得権層\u003c/a\u003eと呼んでいます。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eそういうサイトはだいたい質が良いですね。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "幸せな家族はどれもみな似ているが、不幸な家族にはそれぞれの不幸の形がある",
    "url": "https://www.ikemo3.com/dic/all-happy-families-are-alike/",
    "contents": "\u003ch2 id=\"幸せな家族はどれもみな似ているが不幸な家族にはそれぞれの不幸の形があるとは\"\u003e幸せな家族はどれもみな似ているが、不幸な家族にはそれぞれの不幸の形があるとは\u003c/h2\u003e\n\u003cp\u003eトルストイの「アンナ・カレーニナ」の冒頭の一文です。\u003c/p\u003e\n\u003cp\u003e手元にあるのは光文社古典新訳文庫ですが(買い直し)、\n読んだのは新潮文庫だったと思います。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4334751598/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4334751598.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4334751598/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nアンナ・カレーニナ〈1〉 (光文社古典新訳文庫)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4102060014/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4102060014.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4102060014/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nアンナ・カレーニナ〈上〉 (新潮文庫)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"魔法先生ネギまで知った\"\u003e魔法先生ネギま！で知った\u003c/h2\u003e\n\u003cp\u003e自分がアンナ・カレーニナを知ったのは、魔法先生ネギま!経由です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4063635872/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4063635872.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4063635872/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n魔法先生ネギま!(12) (講談社コミックス)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e検索すると、ネギま経由でトルストイ読んだという話がないのを\n嘆いている人もいましたが\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e \u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e、自分は読んでました。\u003c/p\u003e\n\u003ch2 id=\"今は逆かもしれない\"\u003e今は逆かもしれない\u003c/h2\u003e\n\u003cp\u003e今はむしろ逆かもしれないなぁと思っています。\nなぜかというと、幸せな人は他人と比較しないからです。\n他人と比較しないので、それぞれの幸せの形があります。\n一方で、他人と比較する人は、似たように不幸になります。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e107時間目 いじめっコ大将、エヴァ\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://ameblo.jp/petronius/entry-10014435836.html\"\u003e物語を楽しむのに必要な教養～ネギまをもっと楽しむには？｜旧館：物語三昧～できればより深く物語を楽しむために\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"http://d.hatena.ne.jp/kaien/20060708/p2\"\u003e萌えカルチャーと教養主義　その１　教養主義の衰退 - Something Orange\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "新たな既得権層",
    "url": "https://www.ikemo3.com/dic/new-vested-interests/",
    "contents": "\u003ch2 id=\"新たな既得権層とは\"\u003e新たな既得権層とは\u003c/h2\u003e\n\u003cp\u003eインターネットによって生まれた、既得権層のことです。\u003c/p\u003e\n\u003ch2 id=\"社会は変わっていない\"\u003e社会は変わっていない\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/the-internet-was-tokyoized/\"\u003eインターネットは東京化された\u003c/a\u003eに書いたとおり、\nインターネットによって便利になりましたが、社会はほとんど変わっていません。\u003c/p\u003e\n\u003cp\u003e大きく社会の枠組みが変わるわけでもなく、\n社会が変わらないがみんなが幸せになるわけでもなく、\nただ、「インターネットで成功した人」が既得権者層になっただけです。\u003c/p\u003e\n\u003cp\u003eどこに行っても同じような顔ぶれで、\nつまらないプロレスのような、形だけの小競り合いがあるだけです。\u003c/p\u003e\n\u003ch2 id=\"アメリカでも\"\u003eアメリカでも?\u003c/h2\u003e\n\u003cp\u003eピーター・ティールはZERO to ONEの冒頭 No.238(Kindle)で、以下のように書いています。\nなお、スタンフォード大学はアメリカのカリフォルニアにある大学で、IT関係の人材を多く輩出しています。ピーター・ティール自身もスタンフォード大学出身です。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eスタンフォードやシリコンバレーだけに未来を独占させていいわけがない\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e自分から見ると、シリコンバレーはベンチャー企業が多く、\n成功者は慈善活動を行う人が多いため、良いところだと思っていましたが、\n自分が想像する以上に、社会の断絶を感じていたのかもしれません。\u003c/p\u003e\n"
  }, 
  {
    "title": "Git: pushしていないディレクトリがないか調査する方法",
    "url": "https://www.ikemo3.com/inverted/git/check-pushed/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e特定のディレクトリ以下に、pushしていないディレクトリがないか調査する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e以下で確認しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emacOS High Sierra\u003c/li\u003e\n\u003cli\u003eCentOS 7.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003eかなりゴリ押しですが、以下のスクリプトで可能です。\n別のディレクトリを使用する場合は、最初の\u003ccode\u003eDIR\u003c/code\u003eを変えてください。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eDIR\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e~\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efor\u003c/span\u003e i in \u003cspan style=\"color:#e6db74\"\u003e`\u003c/span\u003efind $DIR -name .git -type d\u003cspan style=\"color:#e6db74\"\u003e`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cd \u003cspan style=\"color:#e6db74\"\u003e`\u003c/span\u003edirname $i\u003cspan style=\"color:#e6db74\"\u003e`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  pwd\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  git status | egrep \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;ahead|Changes|Untracked|Unmerged\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  echo\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003edone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Metascore",
    "url": "https://www.ikemo3.com/dic/metascore/",
    "contents": "\u003ch2 id=\"metascoreとは\"\u003eMetascoreとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/\"\u003eMetacritic\u003c/a\u003eが運営するレビューサイトのスコアです。\n特にゲームのレビューで有名です。\u003c/p\u003e\n\u003ch2 id=\"どれくらい信用できるか\"\u003eどれくらい信用できるか?\u003c/h2\u003e\n\u003cp\u003eいろいろな情報を総合する限り\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、ある程度は参考にできると思います。\u003c/p\u003e\n\u003cp\u003e一番大きいのは、このサイトが「レビューの点数の平均値を取っている」ことです\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\nなので、もし偏りのあるサイトがあっても、平均値は大きく影響しません。\n90点つけたゲームと80点つけたゲームがあっても\n必ずしも90点の方が良いとは限りませんが、\n90点つけたゲームと40点しかつかなかったゲームでは、\nほぼ間違いなく90点つけたゲームの方が良いです\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e気をつけないといけないのはむしろ、\nここは海外のサイトからレビューを集めているので、\n日本人と嗜好が合わない可能性があります\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e自分が信頼できる人の話を聞いて総合的に判断\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eこのサイトを日本語訳すると「メタ批評」なのはそういうわけです。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003eもちろんゲームの面白さは主観が大きいんですが。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003eまあ、\u003ca href=\"/dic/dq/\"\u003eドラクエ\u003c/a\u003eでも\u003ca href=\"http://www.metacritic.com/search/game/dragon%20quest/results\"\u003eコンスタントに80点は取れてる\u003c/a\u003eるようです。\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "冪等性",
    "url": "https://www.ikemo3.com/dic/idempotence/",
    "contents": "\u003ch2 id=\"冪等性とは\"\u003e冪等性とは\u003c/h2\u003e\n\u003cp\u003eある操作を1回行っても複数回行っても結果が同じことです。\u003c/p\u003e\n\u003ch2 id=\"数学\"\u003e数学\u003c/h2\u003e\n\u003cp\u003e例えば数字に1を掛けるという操作は何度行っても結果は同じです。\u003c/p\u003e\n\u003ch2 id=\"ansible\"\u003eAnsible\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/ansible/\"\u003eAnsible\u003c/a\u003eのほとんどの操作は、何度実行しても結果が同じになるようになっています。\n違うのは、1回目は多くの場合\u003ccode\u003eChanged\u003c/code\u003eになって、2回目以降は\u003ccode\u003eOK\u003c/code\u003eになるくらいです。\nもちろん、shell/commandのように自前で冪等性の確保が必要なモジュールもありますが、\n自前で作ると大変な処理を肩代わりしてくれるので楽です。\u003c/p\u003e\n"
  }, 
  {
    "title": "Cache Busting",
    "url": "https://www.ikemo3.com/dic/cache-busting/",
    "contents": "\u003ch2 id=\"cache-bustingとは\"\u003eCache Bustingとは\u003c/h2\u003e\n\u003cp\u003eWebブラウザの仕様により、ファイルのURLが同じ場合は、\nサーバに取りに行かずに、ブラウザが持っているキャッシュファイルを\n使用することがあります。\u003c/p\u003e\n\u003cp\u003eしたがって、サーバが同じファイル名で中身だけ更新すると、\nクライアントに反映されない可能性があります。\nこれを避けるための技術がCache Bustingです。\u003c/p\u003e\n\u003cp\u003e日本語ではそのまま「キャッシュバスティング」と呼ばれます。\u003c/p\u003e\n\u003ch2 id=\"キャッシュバスティングの手法\"\u003eキャッシュバスティングの手法\u003c/h2\u003e\n\u003cp\u003e主に3パターンがあります\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eファイル名を変える。\u003c/li\u003e\n\u003cli\u003eディレクトリを名を変える。\u003c/li\u003e\n\u003cli\u003eURLの最後にクエリ文字列を付ける。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eフレームワークが対応していれば1か2が望ましいですが、\n導入しやすいため、3がよく使われます。\nただし、そもそもキャッシュされていないと意味が無いため、\n\u003ccode\u003eCache-Control\u003c/code\u003eヘッダの設定など行ってください。\u003c/p\u003e\n\u003ch2 id=\"このサイトで使っている手法\"\u003eこのサイトで使っている手法\u003c/h2\u003e\n\u003cp\u003eURLの最後に、クエリ文字列としてMD5ハッシュをつけています。\nMD5を使っているのは、長さが最も短いのと、\nこの用途では、衝突する可能性を考えなくてもいいからです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.keycdn.com/support/what-is-cache-busting/\"\u003eWhat is Cache Busting? - KeyCDN Support\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Cache-Busting",
    "url": "https://www.ikemo3.com/tags/cache-busting/",
    "contents": ""
  }, 
  {
    "title": "Hugo: 静的ファイルに対してCache Bustingを行う方法(0.43以降)",
    "url": "https://www.ikemo3.com/inverted/hugo/cache-busting/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/hugo/\"\u003eHugo\u003c/a\u003eのテンプレートで、\n静的ファイルに対して、キャッシュバスティングを行う方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eHugo 0.43以降が必要です。\u003c/p\u003e\n\u003ch2 id=\"概要\"\u003e概要\u003c/h2\u003e\n\u003cp\u003eHugo 0.43から導入された、\u003ca href=\"https://gohugo.io/hugo-pipes/\"\u003eHugo Pipes\u003c/a\u003e機能を使用します。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e例として、\u003ccode\u003estatic/js/foo.js\u003c/code\u003eに組み込む手順を記載します。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eファイルを\u003ccode\u003eassets\u003c/code\u003eディレクトリに移動します。パスは\u003ccode\u003eassets/js/foo.js\u003c/code\u003eになります。\u003c/li\u003e\n\u003cli\u003eテンプレートファイルに以下のように記載します\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-html\" data-lang=\"html\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{{- $js := resources.Get \u0026#34;js/foo.js\u0026#34; | fingerprint -}}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003escript\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003esrc\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;{{ $js.RelPermalink }}\u0026#34;\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003escript\u003c/span\u003e\u0026gt;{{ \u0026#34;\u0026#34; -}}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003eこの記事では別の解決方法を書いていましたが、その記述は削除しました。\n何が書いてあるか知りたい場合は魚拓を参照してください。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://megalodon.jp/2018-0727-1138-36/https://www.ikemo3.com:443/inverted/hugo/cache-busting/\"\u003e【魚拓】逆引きマニュアル: Hugoテンプレート: 静的ファイルに対してCache Bustingを行う方法 - Hideki Ikemoto\u0026rsquo;s Site\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e最後の\u003ccode\u003e{{ \u0026quot;\u0026quot; -}}\u003c/code\u003eは、改行を取るための手法です。参考→\u003ca href=\"/inverted/hugo-template/pretty-html/\"\u003e出力されるHTMLを整形する\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "レーシック",
    "url": "https://www.ikemo3.com/dic/lasik/",
    "contents": "\u003ch2 id=\"レーシックとは\"\u003eレーシックとは\u003c/h2\u003e\n\u003cp\u003e近視を直すといわれている技術です。\u003c/p\u003e\n\u003ch2 id=\"危険\"\u003e危険\u003c/h2\u003e\n\u003cp\u003eレーシックは\u003cstrong\u003e危険極まりない\u003c/strong\u003e手術です。\nその理由はレーシック手術に失敗した人のことを知ってるからです。\nネットでは有名な\u003ca href=\"http://somei2012.hatenablog.com/\"\u003e染井吉野さん\u003c/a\u003eです。\u003c/p\u003e\n\u003cp\u003e知っているといってもオンラインだけ\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eですが、\n自分は、術後の変わり方を\u003cstrong\u003eリアルタイム\u003c/strong\u003eで知ってるので。\u003c/p\u003e\n\u003cp\u003eこのような人たちを「レーシック難民」と呼び、集団訴訟にもなっています。\u003c/p\u003e\n\u003ch2 id=\"リスクに見合わない\"\u003eリスクに見合わない\u003c/h2\u003e\n\u003cp\u003eはっきりとコンタクトレンズが不可となっている職業は以下の2つです。\n競輪選手は問題ありません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.jra.go.jp/school/entry/jockey/\"\u003e競馬騎手\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.boatrace.jp/extent/pc/racerbosyu/be_a_boat_racer/\"\u003e競艇選手\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eましてや、普通の人はメガネかコンタクトレンズで十分です。\n昔は「メガネ＝ダサい」というイメージがありましたが、\n今はむしろ「メガネ＝おしゃれアイテム」ですね。\u003c/p\u003e\n\u003cp\u003eレーシックはリスクに見合うものかどうか、よく考えましょう。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eGoogle+です\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "テクノロジー・モニタリング",
    "url": "https://www.ikemo3.com/dic/technology-monitoring/",
    "contents": "\u003ch2 id=\"テクノロジーモニタリングとは\"\u003eテクノロジー・モニタリングとは\u003c/h2\u003e\n\u003cp\u003e技術が与える影響を観察することです。\u003c/p\u003e\n\u003ch2 id=\"未来は予測できない\"\u003e未来は予測できない\u003c/h2\u003e\n\u003cp\u003eこの言葉は\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eのマネジメント(上)(1974年)において\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\n「テクノロジー・アセスメント(技術の社会影響評価)」を\n批判する時に使われた言葉です。\u003c/p\u003e\n\u003cp\u003eなぜ「テクノロジー・アセスメント」が失敗するのかというと、\nそれは「未来予測」だからです。\n事前に予測をするが、その後は放置するのではなく、\n予測は最小限にし、観察を重視するのが、テクノロジー・モニタリングです。\u003c/p\u003e\n\u003cp\u003e実際、「これからは◯◯が伸びる」と言われたものが、常に伸びるとは限りません。\n例えばグルーポンに代表される「フラッシュマーケティング」は\nあっという間に廃れました。\u003c/p\u003e\n\u003ch2 id=\"観察は費用対効果が高い\"\u003e観察は費用対効果が高い\u003c/h2\u003e\n\u003cp\u003e一方で、観察はさほどコストがかかりません。\n現在はインターネットがあるので、定期的に調べれば何となく雰囲気が分かります。\nもちろん、観察するのは、全てのことにコミットできないからであって、\n何もせず、批評家気取りでTwitterに書き込むためではありません。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e「テクノロジストの条件」では初出はバックマン編「労働・技術・生産性」となっていますが、この本が見つからなかったので、マネジメント(上)を挙げておきました。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "リカレント教育",
    "url": "https://www.ikemo3.com/dic/continuous-learning/",
    "contents": "\u003ch2 id=\"リカレント教育とは\"\u003eリカレント教育とは\u003c/h2\u003e\n\u003cp\u003eこれまでの「一度卒業したら学校に戻らずに働き続ける」のとは逆に、\n「一度卒業しても、ずっと学び続け、時には学校に戻る」ことを指します。\u003c/p\u003e\n\u003cp\u003e「リカレント教育」、「継続教育」、「再教育」、\n「学び直し」や「職業訓練」など、いろいろな言葉を取っていますが、\n本質的には以下の2点が重要です。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e年齢に関係なく行うこと。\u003c/li\u003e\n\u003cli\u003e趣味ではなく、本人の成長のために行うこと。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"高齢者の趣味ではない\"\u003e高齢者の趣味ではない\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"/dic/twitter/\"\u003eTwitter\u003c/a\u003eでデマが流れていましたが、あくまで本質は働くための教育です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.netlorechase.net/entry/2017/12/10/114243\"\u003e高齢者の学び直しに5000億円使われるのか、滅びの言葉は誰が言う - ネットロアをめぐる冒険\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"将来どんな知識が必要なのか分からない\"\u003e将来どんな知識が必要なのか分からない\u003c/h2\u003e\n\u003cp\u003e以下では、ドラッカーに合わせて、「継続教育」という単語を使います。\u003c/p\u003e\n\u003cp\u003e継続教育が必要な理由は、\n次々に新しい技術が生まれていますが、\nその技術を使うためには、新しい知識が必要だからです。\u003c/p\u003e\n\u003cp\u003e例えば、iPhoneが生まれるまでは、\niPhoneアプリを作るための技術は世の中に必要とされませんでした。\nしかし、アプリ市場が生まれたことで、\n多くの開発者が、iPhoneアプリ開発の技術を学ぶ必要が生まれました\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eは、断絶の時代(1969) p321「第IV部 知識の時代 第14章 教育革命の必然」で次のように書いています\n(数字のみ漢数字→アラビア数字に変更)。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e　しかし仕事に知識を適用する時代にあっては、\n継続教育すなわち経験と実績のある成人を何度も学校に帰らせることが必要になる。\nそしてそのとき、将来必要となるものをすべて学ばせるという\n今日の学校の意図が意味をなさなくなる。ばかげたものとなる。\n　そもそも10年後15年後にいかなる知識が必要になるかがわからない。\nはっきりしていることは、まだ手に入れることのできない知識が必要になる\nということだけである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAKIQ.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集7 断絶の時代\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"継続教育はこれからの常識\"\u003e継続教育はこれからの常識\u003c/h2\u003e\n\u003cp\u003e継続教育は、若い人はもちろん、\n自分のような1970年代生まれの人にとっても当たり前になります。\n逆に言えば、\u003cstrong\u003e継続活動ができない人は社会のお荷物になる\u003c/strong\u003eと言っても\n言い過ぎではありません。\u003c/p\u003e\n\u003cp\u003e実際、はっきりとお荷物だと言っている人もいます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://axia.co.jp/2017-10-27\"\u003e会社に育ててもらう気満々の人は企業からうざいと思われている - 株式会社アクシア\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"学びは本来楽しいもの\"\u003e学びは本来楽しいもの\u003c/h2\u003e\n\u003cp\u003e常に学び続けないといけないと聞くと、辛いことのようですが、\n実際はその逆で、どんどん新しい知識を手に入れるのはとても楽しいことです。\nこれまでは学歴によってその後の人生が決まることが多かったのですが、\nこれからは学歴や年齢に関係なく、チャンスが開けた社会になります。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e自分は\u003ca href=\"/dic/nextstep/\"\u003eNEXTSTEP\u003c/a\u003e使ってたので、運良く\u003ca href=\"/dic/objective-c/\"\u003eObjective-C\u003c/a\u003eを知ってましたが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Metascore",
    "url": "https://www.ikemo3.com/log/metascore/",
    "contents": "\u003cp\u003e\u003ca href=\"/dic/nintendo-switch/\"\u003eNintendo Switch\u003c/a\u003eのゼルダとマリオが97点と\nめっちゃ高い数字が出てちょっと気になったので、\n過去のプラットフォームで95点以上はどれくらいなのかをざっとまとめてみました。\u003c/p\u003e\n\u003cp\u003eなお、歴代順位はこちらから見れます。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/score/metascore/all/all/filtered?sort=desc\"\u003ehttp://www.metacritic.com/browse/games/score/metascore/all/all/filtered?sort=desc\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"95点以上のタイトル\"\u003e95点以上のタイトル\u003c/h2\u003e\n\u003ch3 id=\"dreamcast\"\u003eDreamcast\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/dreamcast/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/dreamcast/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e98点\n\u003cul\u003e\n\u003cli\u003eSoulCalibur\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e97点\n\u003cul\u003e\n\u003cli\u003eTony Hawk\u0026rsquo;s Pro Skater 2\u003c/li\u003e\n\u003cli\u003eNFL 2K1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"game-boy-advance\"\u003eGame Boy Advance\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/gba/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/gba/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e95点\n\u003cul\u003e\n\u003cli\u003eThe Legend of Zelda: A Link to the Past\u003c/li\u003e\n\u003cli\u003eTony Hawk\u0026rsquo;s Pro Skater 2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"gamecube\"\u003eGameCube\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/gamecube/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/gamecube/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e97点\n\u003cul\u003e\n\u003cli\u003eMetroid Prime\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e96点\n\u003cul\u003e\n\u003cli\u003eResident Evil 4\u003c/li\u003e\n\u003cli\u003eThe Legend of Zelda: Twilight Princess\u003c/li\u003e\n\u003cli\u003eThe Legend of Zelda: The Wind Waker\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e95点\n\u003cul\u003e\n\u003cli\u003eThe Legend of Zelda Collector\u0026rsquo;s Edition\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"psp\"\u003ePSP\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/psp/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/psp/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eなし\u003c/p\u003e\n\u003ch3 id=\"n64\"\u003eN64\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/n64/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/n64/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e99点\n\u003cul\u003e\n\u003cli\u003eThe Legend of Zelda: Ocarina of Time\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e97点\n\u003cul\u003e\n\u003cli\u003ePerfect Dark\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e96点\n\u003cul\u003e\n\u003cli\u003eGoldenEye 007\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e95点\n\u003cul\u003e\n\u003cli\u003eThe Legend of Zelda: Majora\u0026rsquo;s Mask\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ds\"\u003eDS\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/ds/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/ds/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eなし\u003c/p\u003e\n\u003ch3 id=\"wii\"\u003eWii\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/wii/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/wii/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e97点\n\u003cul\u003e\n\u003cli\u003eSuper Mario Galaxy\u003c/li\u003e\n\u003cli\u003eSuper Mario Galaxy 2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e95点\n\u003cul\u003e\n\u003cli\u003eThe Legend of Zelda: Twilight Princess\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"xbox\"\u003eXbox\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/xbox/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/xbox/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e97点\n\u003cul\u003e\n\u003cli\u003eHalo: Combat Evolved\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e96点\n\u003cul\u003e\n\u003cli\u003eGrand Theft Auto Double Pack\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e95点\n\u003cul\u003e\n\u003cli\u003eHalo 2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"xbox-360\"\u003eXbox 360\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/xbox360/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/xbox360/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e98点\n\u003cul\u003e\n\u003cli\u003eGrand Theft Auto IV\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e97点\n\u003cul\u003e\n\u003cli\u003eGrand Theft Auto V\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e96点\n\u003cul\u003e\n\u003cli\u003eBioShock\u003c/li\u003e\n\u003cli\u003eThe Orange Box\u003c/li\u003e\n\u003cli\u003eMass Effect 2\u003c/li\u003e\n\u003cli\u003eThe Elder Scrolls V: Skyrim\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e95点\n\u003cul\u003e\n\u003cli\u003eRed Dead Redemption\u003c/li\u003e\n\u003cli\u003ePortal 2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ps1\"\u003ePS1\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/ps/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/ps/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e98点\n\u003cul\u003e\n\u003cli\u003eTony Hawk\u0026rsquo;s Pro Skater 2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e96点\n\u003cul\u003e\n\u003cli\u003eTekken 3\u003c/li\u003e\n\u003cli\u003eGran Turismo\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ps2\"\u003ePS2\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/ps2/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/ps2/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e97点\n\u003cul\u003e\n\u003cli\u003eTony Hawk\u0026rsquo;s Pro Skater 3\u003c/li\u003e\n\u003cli\u003eGrand Theft Auto III\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e96点\n\u003cul\u003e\n\u003cli\u003eResident Evil 4\u003c/li\u003e\n\u003cli\u003eMetal Gear Solid 2: Sons of Liberty\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e95点\n\u003cul\u003e\n\u003cli\u003eGrand Theft Auto: San Andreas\u003c/li\u003e\n\u003cli\u003eGrand Theft Auto: Vice City\u003c/li\u003e\n\u003cli\u003eGran Turismo 3: A-Spec\u003c/li\u003e\n\u003cli\u003eMadden NFL 2003\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ps3\"\u003ePS3\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e98点\n\u003cul\u003e\n\u003cli\u003eGrand Theft Auto IV\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e97点\n\u003cul\u003e\n\u003cli\u003eGrand Theft Auto V\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e96点\n\u003cul\u003e\n\u003cli\u003eUncharted 2: Among Thieves\u003c/li\u003e\n\u003cli\u003eBatman: Arkham City\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e95点\n\u003cul\u003e\n\u003cli\u003eLittleBigPlanet\u003c/li\u003e\n\u003cli\u003eRed Dead Redemption\u003c/li\u003e\n\u003cli\u003eThe Last of Us\u003c/li\u003e\n\u003cli\u003ePortal 2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ios\"\u003eiOS\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/ios/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/ios/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e96点\n\u003cul\u003e\n\u003cli\u003eWorld of Goo HD\u003c/li\u003e\n\u003cli\u003eWorld of Goo\u003c/li\u003e\n\u003cli\u003eSuper QuickHook\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e95点\n\u003cul\u003e\n\u003cli\u003eThe World Ends with You: Solo Remix for iPad\u003c/li\u003e\n\u003cli\u003eVVVVVV\u003c/li\u003e\n\u003cli\u003eSuper Stickman Gold 3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ps-vita\"\u003ePS Vita\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/vita/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/vita/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eなし\u003c/p\u003e\n\u003ch3 id=\"3ds\"\u003e3DS\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/3ds/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/3ds/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eなし\u003c/p\u003e\n\u003ch3 id=\"wii-u\"\u003eWii U\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/wii-u/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/wii-u/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e96点\n\u003cul\u003e\n\u003cli\u003eThe Legend of Zelda: Breath of the Wild\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"pc\"\u003ePC\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/pc/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/pc/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e96点\n\u003cul\u003e\n\u003cli\u003eHalf-Life 2\u003c/li\u003e\n\u003cli\u003eGrand Theft Auto V\u003c/li\u003e\n\u003cli\u003eOut of the Park Baseball 2007\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003eThe Orange Box\u003c/li\u003e\n\u003cli\u003eHalf-Life\u003c/li\u003e\n\u003cli\u003eBioShock\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e95点\n\u003cul\u003e\n\u003cli\u003eBaldur\u0026rsquo;s Gate II: Shadows of Amn\u003c/li\u003e\n\u003cli\u003ePortal 2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ps4\"\u003ePS4\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/ps4/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/ps4/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e97点\n\u003cul\u003e\n\u003cli\u003eGrand Theft Auto V\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e95点\n\u003cul\u003e\n\u003cli\u003eThe Last of Us Remastered\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"xbox-one\"\u003eXbox One\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/xboxone/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/xboxone/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e97点\n\u003cul\u003e\n\u003cli\u003eGrand Theft Auto V\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e95点\n\u003cul\u003e\n\u003cli\u003eMetal Gear Solid V: The Phantom Pain\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"nintendo-switch\"\u003eNintendo Switch\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.metacritic.com/browse/games/release-date/available/switch/metascore\"\u003ehttp://www.metacritic.com/browse/games/release-date/available/switch/metascore\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e97点\n\u003cul\u003e\n\u003cli\u003eThe Legend of Zelda: Breath of the Wild\u003c/li\u003e\n\u003cli\u003eSuper Mario Odyssey\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eユーザスコアがやたら低いんですが。。。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Scrapbox",
    "url": "https://www.ikemo3.com/dic/scrapbox/",
    "contents": "\u003ch2 id=\"scrapboxとは\"\u003eScrapboxとは\u003c/h2\u003e\n\u003cp\u003eNota Inc.が開発している情報管理ツールです。\u003c/p\u003e\n\u003ch2 id=\"このサイトの発想の元\"\u003eこのサイトの発想の元\u003c/h2\u003e\n\u003cp\u003eしばらく使ってなかったのですが、\nこのサイトの構成にもっとも影響したのが、このScrapboxです。\u003c/p\u003e\n\u003cp\u003eScrapboxの良さは、「リンクで簡単に繋がる」という点ですが、\n構造化されていないため、発想を広げるのには良くても、\n発想を整理するにはちょっと足りないなあという感じがしました。\u003c/p\u003e\n\u003cp\u003eあと、ScrapboxはいわゆるWikiシステムでもあるのですが、\nWikiは1単語1ページなので、混ぜてはいけないものが混ざっている、\nそんな印象を受けました。\u003c/p\u003e\n\u003cp\u003eこれはScrapboxの思想で、それ自体を否定するつもりはないのですが、\nScrapboxを使ううちに、自分が欲しいものが見えてきました。\u003c/p\u003e\n\u003cp\u003eただ、このサイトを作る上で気をつけたのが、\n「ページをつなげる」ことです。\n全く関係ないページをつなげるのは難しくても、\n似たような構成のページをつなげることはできそうだなと思ったので、\nセクション間を繋げられるようにしています。\u003c/p\u003e\n\u003ch2 id=\"料金と利用規約\"\u003e料金と利用規約\u003c/h2\u003e\n\u003cp\u003e仕事でも一人で利用する場合は無料です。\n利用規約にも、何か気をつけないといけない点はなさそうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://scrapbox.io/pricing\"\u003eScrapbox - プランと価格のご案内\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://scrapbox.io/terms\"\u003eScrapbox - サービス利用規約\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "SSH: サーバのfingerprintを表示",
    "url": "https://www.ikemo3.com/inverted/ssh/display-server-fingerprint/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003esshを使って接続するときに、初回接続時にサーバのfingerprintを表示して、\n受け入れるかどうかを聞いてきます。\nこのfingerprintを確認するために、\u003cstrong\u003e接続先で\u003c/strong\u003efingerprintを表示するための手順です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/centos/\"\u003eCentOS\u003c/a\u003e 7.3で確認しています。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003eECDSAの場合(\u003ca href=\"/dic/macos/\"\u003emacOS\u003c/a\u003eなど)は以下のようにします。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eawk \u0026#39;{print $2}\u0026#39; /etc/ssh/ssh_host_ecdsa_key.pub | base64 -d | sha256sum -b | sed \u0026#39;s/ .*$//\u0026#39; | xxd -r -p | base64 \n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e最後のパディングのみ\u003ca href=\"/dic/macos/\"\u003emacOS\u003c/a\u003e側だと\u003ccode\u003e.\u003c/code\u003eで表示されて、\u003ca href=\"/dic/centos/\"\u003eCentOS\u003c/a\u003e側だと\u003ccode\u003e=\u003c/code\u003eと表示されます\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eBase64のパディングとしては\u003ccode\u003e=\u003c/code\u003eが正しいようです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "インボックス",
    "url": "https://www.ikemo3.com/dic/inbox/",
    "contents": "\u003ch2 id=\"インボックスとは\"\u003eインボックスとは\u003c/h2\u003e\n\u003cp\u003e未処理のものを入れておく箱です。\u003c/p\u003e\n\u003ch2 id=\"インボックスは最小限に\"\u003eインボックスは最小限に\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/gtd/\"\u003eGTD\u003c/a\u003e本のp65「第2章 生活をコントロールする」に、インボックスは最小限にすると書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eインボックスの数は自分の管理能力を超えないよう、\n必要最小限にするのがポイントだ。\n気になることがいつどこで現れるかわからないので、\nどんな状況下でもそれを把握できるようにしておかないといけない。\nただ、集める場所が多すぎると処理が煩雑になったり、\n定期的に集めたりすることが難しくなってくる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eデジタルだと今のところ\u003ca href=\"/dic/simplenote/\"\u003eSimplenote\u003c/a\u003eが一番良いですが、\nApple Watch非対応なのだけ悩んでます。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4576151878/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4576151878.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4576151878/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n全面改訂版 はじめてのGTD ストレスフリーの整理術\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "SOAP",
    "url": "https://www.ikemo3.com/dic/soap/",
    "contents": "\u003ch2 id=\"soapとは\"\u003eSOAPとは\u003c/h2\u003e\n\u003cp\u003eWebサービスのプロトコルです。\n元は\u003ccode\u003eSimple Object Access Protocol\u003c/code\u003eの頭字語でしたが、\n今は頭字語ではないそうです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"uddiこけたら皆こけた\"\u003eUDDIこけたら皆こけた\u003c/h2\u003e\n\u003cp\u003eSOAPは今でも使う機会はありますが、もう今ではレガシープロトコルになっています。\nRESTと比較する向きもありますが、SOAPがレガシープロトコルになった理由は、\nUDDIがこけたからだと思っています。\u003c/p\u003e\n\u003cp\u003e2002年頃のWebサービスの技術は、SOAP、WSDL、UDDIの3点セットで語られていました。\nしかし、そもそも未知のWebサービスを見つける必要性がないので、UDDIが廃れました。\nUDDIが廃れると、プログラムで自動的にAPIの仕様を解釈する必要性がなくなります。\nなので、WSDLが廃れました。\u003c/p\u003e\n\u003cp\u003eWSDLとUDDIが廃れると、\nWebサービスをRPCのように呼び出せる機能の必要性がなくなりました。\nすると、SOAPの機能は冗長になってしまいました。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.w3.org/TR/soap12-part1/\"\u003eSOAP Version 1.2 Part 1: Messaging Framework (Second Edition)\u003c/a\u003eに\u003ccode\u003en previous versions of this specification the SOAP name was an acronym. This is no longer the case.\u003c/code\u003eと書かれています。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Yum",
    "url": "https://www.ikemo3.com/manual/yum/",
    "contents": "\u003ch2 id=\"ミラーサイトの指定\"\u003eミラーサイトの指定\u003c/h2\u003e\n\u003cp\u003eいずれも有名だから記載するが、未確認。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003einclude_only=.jpとすることでjpのみ対応\u003c/li\u003e\n\u003cli\u003eprefer=xxx の指定を入れることで、特定のサイトのみ対応\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCLIでは指定できる情報が見つかってない。\u003c/p\u003e\n\u003ch2 id=\"グループ単位のインストール\"\u003eグループ単位のインストール\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eグループをリスト\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e: \u003ccode\u003eLANG=C yum grouplist\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eグループ単位のインストール\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e: \u003ccode\u003eyum groupinstall \u0026lt;グループ名\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ccode\u003eLANG=C\u003c/code\u003eを付けるのは、\u003ccode\u003eyum install\u003c/code\u003eにつける引数を調べたいため。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eGNOMEをインストールするためには\u003ccode\u003eyum groupinstall \u0026quot;GNOME Desktop\u0026quot;\u003c/code\u003eでも\u003ccode\u003eyum groupinstall GNOME\u003c/code\u003eでも良いみたいですが、なぜ両方ともOKなのかは未調査。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ゲーム",
    "url": "https://www.ikemo3.com/dic/game/",
    "contents": "\u003ch2 id=\"ゲームとは\"\u003eゲームとは\u003c/h2\u003e\n\u003cp\u003e「遊び」や「試合」などを含みますが、\nここでは一般的に「コンピュータゲーム」を指します。\n以下では「コンピュータゲーム」を単に「ゲーム」と書きます。\u003c/p\u003e\n\u003ch2 id=\"自分がゲームをやる理由\"\u003e自分がゲームをやる理由\u003c/h2\u003e\n\u003cp\u003e自分はゲーム機でのゲームしか基本的にやらないのですが、\nその理由は、自分がゲームに求めているものが、「極上の体験」だからです。\u003c/p\u003e\n\u003ch2 id=\"極上の体験とは\"\u003e極上の体験とは\u003c/h2\u003e\n\u003cp\u003eいくつかの観点があります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e「記憶に残る」ゲーム\u003c/li\u003e\n\u003cli\u003e「他でも応用できる」ゲーム\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e「記憶に残る」ゲームは、\n例えば小学校の頃にやったファミコンの\nドラクエ3は今でもある程度思い出すことができます。\nこのようなゲームは、人生を豊かにしてくれます。\u003c/p\u003e\n\u003cp\u003e「他でも応用できる」ゲームというのは、\n例えば、最近だと「ゲーミフィケーション」という単語に代表されるように、\nゲームのユーザインタフェース、プレイ体験を、\nゲーム以外の分野でも活かせることです。\nまあ、実際はっきりと活かせる機会は今のところないんですが、\n他の人よりはユーザインタフェースにこだわりはあります。\u003c/p\u003e\n\u003ch2 id=\"暇つぶしはいらない\"\u003e「暇つぶし」はいらない\u003c/h2\u003e\n\u003cp\u003e逆に言えば、ゲームに「暇つぶし」は求めてません。\nゲームで暇つぶしをするくらいなら、\n音楽でも聴くか、漫画でも読んだほうがいいです。\u003c/p\u003e\n"
  }, 
  {
    "title": "禅",
    "url": "https://www.ikemo3.com/dic/zen/",
    "contents": "\u003ch2 id=\"禅とは\"\u003e禅とは\u003c/h2\u003e\n\u003cp\u003e宗教のようなそうでないようなものです。\u003c/p\u003e\n\u003ch2 id=\"禅ハイパーバイザ説\"\u003e禅＝ハイパーバイザ説\u003c/h2\u003e\n\u003cp\u003e個人的に考えている仮説に、「禅＝ハイパーバイザ説」があります。\n\u003ca href=\"/dic/hypervisor/\"\u003eハイパーバイザ\u003c/a\u003eは1台のコンピュータで複数のOSを動かすための技術で、\n最小限の機能だけ持っています。\u003c/p\u003e\n\u003cp\u003e日本人の多く\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eは、いろいろな宗教活動に関わっていますが、\nそれをコンピュータで例えると、軽量OSをハイパーバイザとして持ち、\nその上に仏教などのOSをインストールしてるようなものです。\u003c/p\u003e\n\u003cp\u003eそのときに\u003ca href=\"/dic/hypervisor/\"\u003eハイパーバイザ\u003c/a\u003eに相当するものは何かと考えると、\n禅じゃないかなと思います。禅は確かに宗教ですが、\n坐禅修行のように宗教とみなされない活動とみなされることも多いからです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e主語を大きくしてますが、基本的には自分のことです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "無宗教",
    "url": "https://www.ikemo3.com/dic/zero-religion/",
    "contents": "\u003ch2 id=\"無宗教とは\"\u003e無宗教とは\u003c/h2\u003e\n\u003cp\u003e以下の3つのパターンがあります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e信じる宗教がないこと(本来の意味)\u003c/li\u003e\n\u003cli\u003e理神教信者が自称するもの\u003c/li\u003e\n\u003cli\u003e「無」を信じる宗教\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eここで書くのは3.の件です。\u003c/p\u003e\n\u003ch2 id=\"複数の宗教が共存できる理由\"\u003e複数の宗教が共存できる理由\u003c/h2\u003e\n\u003cp\u003e日本人は多くの場合、複数の宗教活動をしています。\n初詣や行事は神社に行き、結婚式はキリスト教式、葬式は仏式が多いです。\nあえて言うなら葬式の仏教がメインの宗教かもしれませんが、\n1つの宗教だけ信じている人の方がむしろ変わりものだと感じます。\u003c/p\u003e\n\u003cp\u003eこの根底には\u003ca href=\"/dic/zen/\"\u003e禅\u003c/a\u003eの思想があるんじゃないかなぁと思ってます。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003eまだうまく語れませんが、自分が考えていることに近いのがこの本です。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4047101753/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4047101753.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4047101753/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n無宗教こそ日本人の宗教である (角川oneテーマ21)\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Google",
    "url": "https://www.ikemo3.com/manual/google/",
    "contents": "\u003ch2 id=\"基本検索パラメータ\"\u003e基本検索パラメータ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eq: 検索する単語\u003c/li\u003e\n\u003cli\u003eie: エンコーディング(通常はUTF-8)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"英語で検索する方法\"\u003e英語で検索する方法\u003c/h2\u003e\n\u003cp\u003e以下の2つのパラメータを設定します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003egl=us(国=アメリカ合衆国)\u003c/li\u003e\n\u003cli\u003ehl=en(言語=英語)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"便利な検索単語\"\u003e便利な検索単語\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e似たような技術用語を検索\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003evs\u003c/code\u003e: 例えば\u003ccode\u003eHugo vs\u003c/code\u003eで検索すると、Hugoに似たソフトが候補に出てきます。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ealternatives\u003c/code\u003e: \u003ca href=\"https://alternativeto.net/\"\u003eAlternativeTo\u003c/a\u003eというそのまんまのサイトもあります。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ブックマークレット\"\u003eブックマークレット\u003c/h2\u003e\n\u003ch3 id=\"英語で検索\"\u003e英語で検索\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003ejavascript\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e(){\u003cspan style=\"color:#a6e22e\"\u003elocation\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003elocation\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u0026amp;gl=us\u0026amp;hl=en\u0026#34;\u003c/span\u003e})();)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"アカウント\"\u003eアカウント\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://myaccount.google.com/security\"\u003eセキュリティ\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eパスワードなどはここ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://myaccount.google.com/permissions\"\u003eGoogleでログイン\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eGoogleアカウントでのログイン(OpenID Connect, OAuth 2)の確認\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"googlebotへの更新通知\"\u003eGooglebotへの更新通知\u003c/h2\u003e\n\u003cp\u003ePubSubHubbubを一応公式には対応しているらしいです。\nただHugoだとどう実現したらいいのか分からないので保留中。\u003c/p\u003e\n\u003cp\u003e今のところ2日前のはクロールされてますが、\n今日作成されたものはクロールされていないようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.suzukikenichi.com/blog/does-google-still-support-pubsubhubbub-or-websub/\"\u003ePubSubHubbub/WebSubをGoogleは今でもサポートしているのか？ | 海外SEO情報ブログ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pubsubhubbub.appspot.com/\"\u003eGoogle Pubsubhubbub Hub\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Search-Engine",
    "url": "https://www.ikemo3.com/tags/search-engine/",
    "contents": ""
  }, 
  {
    "title": "イノベーション",
    "url": "https://www.ikemo3.com/dic/innovation/",
    "contents": "\u003ch2 id=\"イノベーションとは\"\u003eイノベーションとは\u003c/h2\u003e\n\u003cp\u003eよく分かっているようなよく分からないような概念です。\u003c/p\u003e\n\u003ch2 id=\"イノベーションの特徴\"\u003eイノベーションの特徴\u003c/h2\u003e\n\u003cp\u003e自分ではこのように感じています。\u003c/p\u003e\n\u003ch3 id=\"イノベーションは非連続的\"\u003eイノベーションは非連続的\u003c/h3\u003e\n\u003cp\u003eアメリカだとイノベーションは気軽に使われるためか、\nわざわざ「イノベーション」を連続的か、非連続的化で分けているようですが、\n日本語では連続的イノベーションは「改善(カイゼン)」という言葉があるので、\n自分の中では、「イノベーション＝非連続的」だと解釈しています。\u003c/p\u003e\n\u003cp\u003e別の言い方をすると、イノベーションと改善は別物です。\nただ、最近はイノベーションが過大評価されて、\n改善が過小評価されているようですが。\u003c/p\u003e\n\u003ch3 id=\"イノベーションハイテクではない\"\u003e「イノベーション＝ハイテク」ではない\u003c/h3\u003e\n\u003cp\u003eイノベーションを「技術革新」と訳したために誤解が生じたようですが、\nイノベーションは技術ではありません。\nドラッカーも「イノベーションと企業家精神」 No.213(Kindle)\n「第1部 イノベーションの方法 第2章 イノベーションのための七つの機会」にて以下のように述べています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eイノベーションは技術に限らない。モノである必要さえない。\nそれどころか社会に与える影響力において、\n新聞や保険をはじめとする社会的イノベーションに匹敵するものはない。\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "タグは甘え",
    "url": "https://www.ikemo3.com/dic/tag-ha-amae/",
    "contents": "\u003ch2 id=\"タグは甘えとは\"\u003eタグは甘えとは\u003c/h2\u003e\n\u003cp\u003e「資料にタグをつけて分類した気になってるんじゃないの?」という意味です。\u003c/p\u003e\n\u003ch2 id=\"タグ付ける前に考える\"\u003eタグ付ける前に考える\u003c/h2\u003e\n\u003cp\u003eもちろんこのサイトも\u003ca href=\"/tags/\"\u003eタグ\u003c/a\u003eを使っているので半分冗談ですが、\n前々からタグ管理に疑問を持っていました。\u003c/p\u003e\n\u003cp\u003eその疑問とは、「タグなし」の存在です。\nタグはいくつも付けることができますが、逆に1つもつけないこともできます。\nしかし、タグがないということは、\nデスクトップにずらっとファイルを並べるのと同じで、\n数個程度ならいいですが、何百個も並べると、混沌としてきます。\nかといって、思いつくままタグを付けてもほとんど役立ちません。\u003c/p\u003e\n\u003cp\u003eタグに頼らないとすると、フォルダ管理が必要です。\nしかし、フォルダは、こうもり問題を引き起こす可能性があります。\nそのため、確実に分類できる方法を考えた結果、\n「行動を伴うもの」と「行動を伴わないもの」という分類に行き着きました。\u003c/p\u003e\n\u003ch2 id=\"本来は分けるべきものが分けられていない\"\u003e本来は分けるべきものが分けられていない\u003c/h2\u003e\n\u003cp\u003eこうもり問題のような本質的に分類できない場合もありますが、\n多くの場合は、「2つに分けるべきものが分けられていない」ケースが多いです。\n例えば、\u003ca href=\"/dic/ansible/\"\u003eAnsible\u003c/a\u003eの使い方(マニュアル)の説明の中に、\n「そもそもAnsibleとは」という知識が入ると冗長になってしまいます。\nこれが本なら一緒にまとまっていても問題ありませんが、\nここはあくまでWebサイトなので、厳密に分離するように心がけています\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eもちろん最初から完璧なものは作れないので、気づいた時に直しています。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ドメイン駆動設計",
    "url": "https://www.ikemo3.com/dic/ddd/",
    "contents": "\u003ch2 id=\"ドメイン駆動設計とは\"\u003eドメイン駆動設計とは\u003c/h2\u003e\n\u003cp\u003eソフトウェアの設計手法です。\n英語ではDomain Driven Designと書かれるので、略してDDDとも呼ばれます。\n原著は「エリック・エヴァンスのドメイン駆動設計」です。\nいわゆる\u003cstrong\u003eDDD本\u003c/strong\u003eとして知られています。\u003c/p\u003e\n\u003ch2 id=\"言行一致\"\u003e言行一致\u003c/h2\u003e\n\u003cp\u003e実は、自分はドメイン駆動設計の本を読む前(2016年末頃)にいろいろ試した結果、\n「自分が使う言葉をそのままコードにすれば良さそうだな」\nというのは何となく感じていました。\nなので、DDD本を読んだときも、基本的な考え方は割とすぐ理解できました。\u003c/p\u003e\n\u003cp\u003e自分の中でドメイン駆動設計を一言で表すと、「言行一致」です。\n自分が言っていることを、コード(行動)と一致させるからです。\u003c/p\u003e\n\u003ch2 id=\"役割駆動設計\"\u003e役割駆動設計\u003c/h2\u003e\n\u003cp\u003eちょっといいなと思ったのが、「役割駆動設計」という呼び方です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/MinoDriven/items/2a378a09638e234d8614\"\u003e役割駆動設計で巨大クラスを爆殺する - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"本には書いていないオブジェクト指向\"\u003e本には書いていないオブジェクト指向\u003c/h2\u003e\n\u003cp\u003e以下のサイトはDDDとは直接関係ありませんが、\nオブジェクト指向の設計として役立つ記事があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.arksystems.co.jp/closeupit/object_oriented/\"\u003e本には書いてないオブジェクト指向 - 株式会社アークシステム(infoARK)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例えば\u003ca href=\"https://www.arksystems.co.jp/closeupit/object_oriented/0302.html\"\u003e小粒クラス\u003c/a\u003eはValue Objectのことで、\n\u003ca href=\"https://www.arksystems.co.jp/closeupit/object_oriented/0303.html\"\u003eリンゴ一個とリンゴ一山は異なるクラス\u003c/a\u003eはAggregateを指しています。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4798121967/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4798121967.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4798121967/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nエリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/479813161X/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/479813161X.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/479813161X/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n実践ドメイン駆動設計 (Object Oriented SELECTION)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/477419087X/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/477419087X.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/477419087X/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n"
  }, 
  {
    "title": "リバタリアニズム",
    "url": "https://www.ikemo3.com/dic/libertarianism/",
    "contents": "\u003ch2 id=\"リバタリアニズムとは\"\u003eリバタリアニズムとは\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e消極的自由主義\u003c/strong\u003eのことです。\u003c/p\u003e\n\u003ch2 id=\"リバタリアニズムを自称する人が少ない理由\"\u003eリバタリアニズムを自称する人が少ない理由\u003c/h2\u003e\n\u003cp\u003e自分は、リバタリアニズムを自称する人が少ない理由は、2つあると思っています。\u003c/p\u003e\n\u003cp\u003e1つ目は、「アナキズム(無政府主義)」と近いからです。\n無政府主義者を自称する人はほとんどいません。\u003c/p\u003e\n\u003cp\u003e2つ目は、リバタリアニズムはある意味、\n「当たり前過ぎて語る必要がない」からです。\n日本のネットでは、自由であることが当たり前すぎて、\n少しでも制限を設けようとすると(公共の福祉でさえも)、\n否定的な言動がよく見られます\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"他の思想と矛盾しない\"\u003e他の思想と矛盾しない\u003c/h2\u003e\n\u003cp\u003eリバタリアニズムとはっきりと対立する思想は\u003ca href=\"/dic/liberalism/\"\u003eリベラリズム\u003c/a\u003eくらいで、\n他の思想とはそれほど対立しません。\u003c/p\u003e\n\u003cp\u003e基本的にはあくまで「消極的自由」であり、\n生まれた環境に影響されることを否定しません。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e単なるクレクレ厨なケースも多いですが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "リベラリズム",
    "url": "https://www.ikemo3.com/dic/liberalism/",
    "contents": "\u003ch2 id=\"リベラリズムとは\"\u003eリベラリズムとは\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e正義主義\u003c/strong\u003eのことです。\u003c/p\u003e\n\u003ch2 id=\"リベラリズム自由主義ではない\"\u003e「リベラリズム＝自由主義」ではない\u003c/h2\u003e\n\u003cp\u003e又聞きですが、リベラリズムは「自由主義」のことだと思われてますが、\n実際は「正義主義」の方がふさわしいという話があります。\u003c/p\u003e\n\u003cp\u003eこの定義が正しいかどうかは分かりませんが、\n自分の中では、「リベラリズム＝正義主義」と考えると、しっくり来ます。\u003c/p\u003e\n\u003cp\u003eどうしてもこの解釈がイヤだという人は、\nせめて「積極的自由」「積極的自由主義」という言葉を使って、\n「消極的自由主義者」を「自由主義者でない」というのは今すぐ止めてください。\u003c/p\u003e\n\u003ch2 id=\"結果の平等はどこへ消えた\"\u003e結果の平等はどこへ消えた?\u003c/h2\u003e\n\u003cp\u003eひねくれた見方ですが、自分がリベラリズム、\nリベラルに感じる違和感を一言で表すと、\n「結果の平等が消えてしまった」ことです。\u003c/p\u003e\n\u003cp\u003e例えば、以下の2つは自分から見るとどちらも不平等であって、\nどちらを解消すべきかという優先度はない、\nあるいは、どれだけ不平等になっているかという点で、優先度が変わるものです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e差別により機会の不平等になっている人\u003c/li\u003e\n\u003cli\u003e競争により結果の不平等になっている人\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eしかし、2.の不平等を語る人はどこかへ消えてしまったように見えます。\nその理由が何かは分かりませんが\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、違和感しかありません。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eある程度目星は付いていますが。。。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "忘れないチェックリストを作る方法",
    "url": "https://www.ikemo3.com/theme/productivity/forgot-checklist/",
    "contents": "\u003ch2 id=\"チェックリストは忘れられやすい\"\u003eチェックリストは忘れられやすい\u003c/h2\u003e\n\u003cp\u003eチェックリストはよく忘れられます。\n自分もチェックリストアプリをいろいろ試してみましたが、\nなかなか定着しません。\u003c/p\u003e\n\u003cp\u003eしかし、なぜ定着しないかの理由が何となくつかめてきました。\u003c/p\u003e\n\u003ch2 id=\"チェックリストにはストーリーがない\"\u003eチェックリストにはストーリーがない\u003c/h2\u003e\n\u003cp\u003eチェックリストが忘れられやすい理由は、\nそれが「ストーリー」でないからです。\u003c/p\u003e\n\u003cp\u003eチェックリストは基本的にはリスト形式で、箇条書きで書かれます。\nこれが「買い物リスト」や「旅行時の持ち物リスト」なら\nシンプルなので間違いはありません。\u003c/p\u003e\n\u003cp\u003eしかし、例えば、「ブログの記事を書く」時に、\n以下のようなチェックリストがあったらどうでしょうか。間違いなく忘れます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eてにをはが正しく使われているか\u003c/li\u003e\n\u003cli\u003e英語のスペルは正しいか\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"作業手順書と考える\"\u003e作業手順書と考える\u003c/h2\u003e\n\u003cp\u003e逆に言えば、ストーリーがあればチェックリストは使えるものになります。\n先程の例を以下のように書き換えてみます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e書いた内容を一度音読する\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003e記事に出てくる英単語を検索にかけてみる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e何をすればいいか明確なので、忘れる確率が減ります。\n理想的には、全体を作業手順書にすれば必ずその手順書を見ながら作業するので、\n忘れることはありません。\u003c/p\u003e\n\u003cp\u003eもちろん、チェックリストを使うのは非ルーチンワークが多いので、\n100%忘れない保証はありませんが。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eあくまで例で、実際はやらないんですけどね。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Vagrant: Boxのプロバイダを変更する方法",
    "url": "https://www.ikemo3.com/inverted/vagrant/convert-box/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/vagrant/\"\u003eVagrant\u003c/a\u003eで対応していないプロバイダを使いたい場合に、変換する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e以下の環境で確認しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCentOS 7.3 + Vagrant 1.9.6\u003c/li\u003e\n\u003cli\u003emacOS High Sierra 10.13.4 + Vagrant 2.0.3\n\u003cul\u003e\n\u003cli\u003eqemu-imgコマンドが必要なため、別途QEMUをインストールしてください。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/sciurus/vagrant-mutate\"\u003evagrant-mutate\u003c/a\u003eを使用してください。\nlibvirtを使う場合は以下のように実行します。\u003c/p\u003e\n\u003cp\u003e例えば\u003ca href=\"http://cloud.centos.org/centos/7/vagrant/x86_64/images/\"\u003eCentOS 7\u003c/a\u003eの場合、\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003evagrant plugin install vagrant-libvirt\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evagrant plugin install vagrant-mutate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evagrant mutate http://cloud.centos.org/centos/7/vagrant/x86_64/images/ libvirt\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "macOS: AACファイルをMP3ファイルに変換する方法",
    "url": "https://www.ikemo3.com/inverted/macos/aac-to-mp3/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e一部のカーナビなど、MP3には対応しているが、\nAACに対応していない場合\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eにAACファイルをMP3ファイルに変換する手順です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eHomebrewなどを使って、ffmpegコマンドが入っていること。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"変換\"\u003e変換\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003effmpeg -i music.m4a -b:a 256k music.mp3\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eまとめて変換するときは以下のようにする(\u003ccode\u003e!\u003c/code\u003eのエスケープがどうやってもうまく行かないため、echoしたものをshで渡すようにした)。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003emkdir mp3; ls *.m4a | \u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e read -r f\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e echo ffmpeg -i \u003cspan style=\"color:#ae81ff\"\u003e\\\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u003c/span\u003e$f\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e\\\u0026#39;\u003c/span\u003e -b:a 256k \u003cspan style=\"color:#ae81ff\"\u003e\\\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;mp3/\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003ef%.m4a\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e.mp3\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e\\\u0026#39;\u003c/span\u003e | sh\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003edone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"フォーマットのチェック\"\u003eフォーマットのチェック\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003effprobe music.mp3\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eそもそもカーナビの説明書見間違えて、AAC普通に対応してましたが…\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Windows: オーバーレイアイコンが表示されない場合の修正方法",
    "url": "https://www.ikemo3.com/inverted/windows/overlay-icon/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eWindowsでオーバーレイアイコン(フォルダなどに被さるアイコン)が\n表示されない場合の修正方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下の手順の\u003ccode\u003eLet me fix it myself\u003c/code\u003eで書かれている作業を行ってください。\nこの記事ではOneDrive for Businessのオーバーレイアイコンが\n表示されない場合の修正ですが、\n他のアプリのオーバーレイアイコンが出ない場合にも対応できます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://support.microsoft.com/ja-jp/help/3079213/sync-icon-overlays-are-missing-from-onedrive-and-onedrive-for-business\"\u003e同期アイコンのオーバーレイが OneDrive for Business の同期済みアイテムに表示されない\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "JavaScript",
    "url": "https://www.ikemo3.com/manual/javascript/",
    "contents": "\u003ch2 id=\"can-i-use\"\u003eCan I use\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://caniuse.com/#home\"\u003eCan I use\u0026hellip; Support tables for HTML5, CSS3, etc\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"文法\"\u003e文法\u003c/h2\u003e\n\u003ch3 id=\"varletconst\"\u003evar/let/const\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/var\"\u003evar - JavaScript | MDN\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eHTML4以前のもので、全てのブラウザで使用可能。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/let\"\u003elet - JavaScript | MDN\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://caniuse.com/#feat=let\"\u003eCan I use\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/const\"\u003econst - JavaScript | MDN\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://caniuse.com/#feat=const\"\u003eCan I use\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"var-let-constの違い\"\u003evar, let, constの違い\u003c/h4\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e宣言\u003c/th\u003e\n          \u003cth\u003eスコープ\u003c/th\u003e\n          \u003cth\u003e再代入可能\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eなし\u003c/td\u003e\n          \u003ctd\u003eグローバル\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003evar\u003c/td\u003e\n          \u003ctd\u003e関数\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003elet\u003c/td\u003e\n          \u003ctd\u003eブロック\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003econst\u003c/td\u003e\n          \u003ctd\u003eブロック\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch4 id=\"varは不要っぽい\"\u003evarは不要っぽい\u003c/h4\u003e\n\u003cp\u003e以下の理由から、もうvarは不要かと思われます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIE11を含む主要ブラウザでサポートされている\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n\u003cul\u003e\n\u003cli\u003eただし、IE11のletは一部問題があるらしい(Can I useより)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e関数スコープが必要なケースがほとんどない、あっても関数の先頭で宣言すればよい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"this\"\u003ethis\u003c/h3\u003e\n\u003cp\u003eJavaScriptではthisが呼び出される文脈によって異なっていたためいろいろと問題があった。\n解決案は2通り。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eアロー関数を使う\u003c/li\u003e\n\u003cli\u003ebindを使う\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efoo.bind(this, arg1, arg2)\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/this\"\u003ethis - JavaScript | MDN\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/bind\"\u003eFunction.prototype.bind() - JavaScript | MDN\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/call\"\u003eFunction.prototype.call() - JavaScript | MDN\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"bind\"\u003ebind\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ebindの1番目の引数はthisを束縛するもの。\u003cstrong\u003enullを指定すると束縛しない\u003c/strong\u003e。\u003c/li\u003e\n\u003cli\u003ebindの2番目以降の引数は関数の引数を束縛する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"アロー関数\"\u003eアロー関数\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://caniuse.com/#feat=arrow-functions\"\u003eCan I use\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/arrow_functions\"\u003eアロー関数 - JavaScript | MDN\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"strictモード\"\u003eStrictモード\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Strict_mode\"\u003eStrict モード - JavaScript | MDN\u003c/a\u003e\u003c/p\u003e\n\u003ch4 id=\"使用方法\"\u003e使用方法\u003c/h4\u003e\n\u003cp\u003e他のいかなる文よりも先に\u003ccode\u003e\u0026quot;use strict\u0026quot;;\u003c/code\u003e, または\u003ccode\u003e'use strict';\u003c/code\u003e\nという文をそのまま追加します。\u003c/p\u003e\n\u003cp\u003eMDNの記事に書かれていますが、\nスクリプトの先頭に書くと、[webpack][]などで連結するときに連結後のスクリプト全体が\nstrictになってしまうので、注意が必要です。\n\u003cstrong\u003e関数ごとに付けるのが安全です\u003c/strong\u003e。\u003c/p\u003e\n\u003ch4 id=\"strictモードによってエラーになるもの\"\u003eStrictモードによってエラーになるもの\u003c/h4\u003e\n\u003cp\u003e詳細はMDNの記事にありますが、\n注意すべきことは以下になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e8進数が禁止される(間違って使われやすいため)\u003c/li\u003e\n\u003cli\u003ewith文が禁止される(最適化のため)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eeval\u003c/code\u003eで宣言した変数は外部に影響しない\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eStrictモード宣言はただの文字列なので、\n未対応ブラウザには影響しません\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\nなので、使ったほうが良いです。\u003c/p\u003e\n\u003ch3 id=\"比較演算子\"\u003e比較演算子\u003c/h3\u003e\n\u003cp\u003e以下のように、\u003ccode\u003e==\u003c/code\u003eは曖昧な比較、\u003ccode\u003e===\u003c/code\u003eは厳密な比較を行う\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eEquality (==)\nThe equality operator converts the operands if they are \u003cstrong\u003enot of the same type\u003c/strong\u003e, then applies strict comparison. If \u003cstrong\u003eboth operands are objects\u003c/strong\u003e, then JavaScript compares internal references which are equal when operands refer to the same object in memory.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e  1   ==  1        // true\n \u0026#39;1\u0026#39;  ==  1        // true\n  1   == \u0026#39;1\u0026#39;       // true\n  0   == false     // true\n  0   == null      // false\nvar object1 = {\u0026#39;value\u0026#39;: \u0026#39;key\u0026#39;}, object2 = {\u0026#39;value\u0026#39;: \u0026#39;key\u0026#39;};\nobject1 == object2 //false\n\n  0   == undefined // false\nnull  == undefined // true\n\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eIdentity / strict equality (===)\nThe identity operator returns true if the operands are strictly equal (see above) with no type conversion.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e3 === 3   // true\n3 === \u0026#39;3\u0026#39; // false\nvar object1 = {\u0026#39;value\u0026#39;: \u0026#39;key\u0026#39;}, object2 = {\u0026#39;value\u0026#39;: \u0026#39;key\u0026#39;};\nobject1 === object2 //false\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"とのどちらを使うべきか\"\u003e\u003ccode\u003e==\u003c/code\u003eと\u003ccode\u003e===\u003c/code\u003eのどちらを使うべきか?\u003c/h3\u003e\n\u003cp\u003e曖昧な比較はバグの元のため、\u003ccode\u003e===\u003c/code\u003eを使うことが望ましい\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch3 id=\"if-fooとif-foo--barのどちらを使うべきか\"\u003e\u003ccode\u003eif (foo)\u003c/code\u003eと\u003ccode\u003eif (foo === bar)\u003c/code\u003eのどちらを使うべきか?\u003c/h3\u003e\n\u003cp\u003eJavaなら\u003ccode\u003eif (foo)\u003c/code\u003eで決まりなんですが、\nJavaScriptでは\u003ca href=\"https://developer.mozilla.org/ja/docs/Glossary/Truthy\"\u003eTruthy\u003c/a\u003eという「真値っぽい\u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e」判定に使われるので、\nなるべくは避けたいところです。\u003c/p\u003e\n\u003cp\u003eたぶんこんな感じかなぁと。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e左辺・右辺ともにboolean: \u003ccode\u003eif (foo)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e左辺・右辺ともにオブジェクト、undefined、nullのみ: \u003ccode\u003eif (foo)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eそれ以外: \u003ccode\u003eif (foo === bar)\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"string\"\u003eString\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String\"\u003eString\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/template_strings\"\u003eテンプレート文字列\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003ebashなどと同じ\u003ccode\u003e${expression}\u003c/code\u003eという形式が使えます。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://caniuse.com/#feat=template-literals\"\u003eCan I use\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"array\"\u003eArray\u003c/h2\u003e\n\u003ch3 id=\"基本操作\"\u003e基本操作\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array\"\u003eArray - JavaScript | MDN\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e追加削除\n\u003cul\u003e\n\u003cli\u003e最後: push / pop\u003c/li\u003e\n\u003cli\u003e先頭: unshift/ shift\u003c/li\u003e\n\u003cli\u003e連結: \u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/concat\"\u003econcat\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e区切る: \u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/join\"\u003ejoin\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"要素のループ\"\u003e要素のループ\u003c/h3\u003e\n\u003cp\u003e以下でいいと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIE対応が必要な場合: \u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach\"\u003eArray.prototype.forEach()\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIE対応が不要な場合: \u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/for...of\"\u003efor\u0026hellip;of\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ccode\u003efor...in\u003c/code\u003eは全てのプロパティを反復する(\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/for...of\"\u003efor\u0026hellip;of\u003c/a\u003e参照)のため、\nおそらく意図した挙動ではありません。\u003c/p\u003e\n\u003ch3 id=\"最初に見つかった要素を返却\"\u003e最初に見つかった要素を返却\u003c/h3\u003e\n\u003cp\u003e以下でいいと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIE以外: \u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/find\"\u003eArray.prototype.find()\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIE: Polyfillを使う\u003csup id=\"fnref:6\"\u003e\u003ca href=\"#fn:6\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e6\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"要素が存在するかどうかをチェック\"\u003e要素が存在するかどうかをチェック\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e要素指定、boolean: \u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/includes\"\u003eArray.prototype.includes()\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eIEでは使用不可\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e要素指定、index: \u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf\"\u003eArray.prototype.indexOf()\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eコールバック指定、boolean: \u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/some\"\u003eArray.prototype.some()\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"nodelistなどから変換\"\u003eNodeListなどから変換\u003c/h3\u003e\n\u003cp\u003e以下のArray.fromがいいと思います(IE以外では動きます)。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/from\"\u003eArray.from() - JavaScript | MDN\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"date\"\u003eDate\u003c/h2\u003e\n\u003ch3 id=\"昨日の日付を取得する\"\u003e昨日の日付を取得する\u003c/h3\u003e\n\u003cp\u003e以下のように、setDate()に日付を1引いたものを与える。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ed\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Date();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003ed\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003esetDate\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003ed\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003egetDate\u003c/span\u003e() \u003cspan style=\"color:#f92672\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e1日の場合も適切に調節してくれるため問題ない[^setDate]。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003edayValue がその月の日付の範囲外の値の場合、\nそれに応じて setDate() が Date オブジェクトを更新します。\n例えば、dayValue に 0 を与えた場合、日付は前月の最終日に設定されます。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"iterator\"\u003eIterator\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e[Symbol.iterator]\u003c/code\u003eというメソッドを定義する(この構文よく分からん)。\u003c/p\u003e\n\u003cp\u003e自分で定義することはないと思いますが、\nDDDにおけるAggregatesを実装したときに実装すると便利です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/28739745/how-to-make-an-iterator-out-of-an-es6-class\"\u003ejavascript - How to make an iterator out of an ES6 class - Stack Overflow\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"urlのエンコード\"\u003eURLのエンコード\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/encodeURI\"\u003eencodeURI\u003c/a\u003eは特殊文字をエンコードしない。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent\"\u003eencodeURIComponent\u003c/a\u003eは特殊文字をエンコードする。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"非同期処理\"\u003e非同期処理\u003c/h2\u003e\n\u003ch3 id=\"promise\"\u003ePromise\u003c/h3\u003e\n\u003cp\u003e値の代わりに返すことができるもの。\nたぶん「約束手形」と同じですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://caniuse.com/#feat=promises\"\u003eCan I use\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Using_promises\"\u003ePromiseを使う - JavaScript | MDN\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"asyncawait\"\u003easync/await\u003c/h3\u003e\n\u003cp\u003ePromiseだけだとしっくりこないのですが、async/awaitを使うと楽になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/async_function\"\u003easync function - JavaScript | MDN\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://caniuse.com/#feat=async-functions\"\u003eCan I use\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/await\"\u003eawait - JavaScript | MDN\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e非同期にする(Promiseを返す)functionにasyncを付けて、\n戻り値を同期にしたいときにawaitを付けるだけなので、楽です。\u003c/p\u003e\n\u003cp\u003e注意点として、forEachとは相性が悪いことです。\nfor .. ofを使います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/37576685/using-async-await-with-a-foreach-loop\"\u003ejavascript - Using async/await with a forEach loop - Stack Overflow\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eまた、(現在は)トップレベルでも使えません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tc39/ecmascript-asyncawait/issues/9\"\u003eClarifying question: can await be used in top-level code? · Issue #9 · tc39/ecmascript-asyncawait\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただ、これは簡単な回避方法はあります。即時関数を使用するだけです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e(\u003cspan style=\"color:#66d9ef\"\u003easync\u003c/span\u003e () =\u0026gt; {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e// ここに処理を書く。\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e})();\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"ajax\"\u003eAjax\u003c/h2\u003e\n\u003cp\u003e従来はXMLHttpRequestが使われていましたが、\n今後はfetchが使われることになりそうです(polyfillもあります)。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/XMLHttpRequest\"\u003eXMLHttpRequest - Web API インターフェイス | MDN\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/Fetch_API/Using_Fetch\"\u003eFetch 概説 - Web API インターフェイス | MDN\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"eval\"\u003eeval\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval\"\u003eMDN(英語)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/eval\"\u003eMDN(日本語)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"安全なeval\"\u003e安全なeval\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mmckegg/notevil\"\u003enotevil\u003c/a\u003eが一番いいです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"notevilによるevalの実装\"\u003enotevilによるevalの実装\u003c/h3\u003e\n\u003cp\u003eたとえば、Moment.jsとsprintfをそのまま使えるようにしたい場合は、\n以下のようにします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efunc\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003esafeEval\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003efuncstr\u003c/span\u003e, {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003emoment\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emoment\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  },\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003esprintf\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e(...\u003cspan style=\"color:#a6e22e\"\u003eargs\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003esprintf\u003c/span\u003e(...\u003cspan style=\"color:#a6e22e\"\u003eargs\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e})\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e関数の定義の場合は以下のようになります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003esafeEval\u003c/span\u003e.Function(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;moment\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;sprintf\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#a6e22e\"\u003evalue\u003c/span\u003e[\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;value\u0026#39;\u003c/span\u003e]).\u003cspan style=\"color:#a6e22e\"\u003ecall\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003ethis\u003c/span\u003e, \u003cspan style=\"color:#a6e22e\"\u003emoment\u003c/span\u003e, \u003cspan style=\"color:#a6e22e\"\u003esprintf\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"モジュール\"\u003eモジュール\u003c/h2\u003e\n\u003ch3 id=\"nodejsでの書き方\"\u003eNode.jsでの書き方\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://nodejs.org/api/modules.html#modules_module_exports\"\u003emodule.exports\u003c/a\u003eを使ってこんな感じで書く。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efoo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003einit\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003emodule\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eexports\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efoo\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e正確には以下のようになるようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eデフォルトでは\u003ccode\u003emodule.exports\u003c/code\u003eと\u003ccode\u003eexports\u003c/code\u003eは同じ\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emodule.exports\u003c/code\u003eにオブジェクトを代入すると、\u003ccode\u003eexports\u003c/code\u003eは使えない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e参考: \u003ca href=\"https://numb86-tech.hatenablog.com/entry/2016/07/20/202744\"\u003eNode.jsのexportsについて - 30歳からのプログラミング\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"es2015の書き方はどうか\"\u003eES2015の書き方はどうか?\u003c/h3\u003e\n\u003cp\u003eモジュールはES2015での書き方もありますが、\n自分としてはまだ流動的なので、しばらくは使わない予定です。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eNode.jsの\u003ca href=\"https://nodejs.org/api/modules.html\"\u003eModules\u003c/a\u003eに記載がない\u003c/li\u003e\n\u003cli\u003eFirefoxでデフォルト対応していない(設定が必要)\u003csup id=\"fnref:7\"\u003e\u003ca href=\"#fn:7\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e7\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003e現状特に困ってない\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e2017年8月現在なので現状と変わっている可能性はありますが、\n現段階ではおすすめしないという記事がありました\u003csup id=\"fnref:8\"\u003e\u003ca href=\"#fn:8\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e8\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"ブラウザの互換性\"\u003eブラウザの互換性\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChrome: submitボタンにonclickを使ってdisabledすると動かない\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/neko_the_shadow/items/1e828a05621aaa3539b1\"\u003eChromeの場合、submitボタン押下時にボタンをdisabledにすると、フォームデータが送信されない。 - Qiita\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eフォームに\u003c/strong\u003e onsubmit()を付ける必要がある。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eIEは11以外は無視して構いません→\u003ca href=\"/dic/ie/\"\u003eIE\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://caniuse.com/#search=strict%20mode\"\u003eCan I use\u0026hellip; Support tables for HTML5, CSS3, etc\u003c/a\u003eによれば、主要ブラウザは全て対応しているようですが。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators\"\u003eComparison operators\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e\u003ca href=\"http://phiary.me/javascript-comparison-operation/\"\u003eJavaScript の比較演算子 == と === の違い\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003e\u003ca href=\"http://blog.livedoor.jp/dankogai/archives/51704592.html\"\u003e404 Blog Not Found:\u0026quot;-y\u0026quot;は「っぽい」って訳していいっぽい\u003c/a\u003eより。\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:6\"\u003e\n\u003cp\u003e検証はしていませんが、いくつか実装が見つかりました。\u0026#160;\u003ca href=\"#fnref:6\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:7\"\u003e\n\u003cp\u003e\u003ca href=\"https://caniuse.com/#feat=es6-module\"\u003eCan I use\u0026hellip; Support tables for HTML5, CSS3, etc\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:7\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:8\"\u003e\n\u003cp\u003e\u003ca href=\"http://teppeis.hatenablog.com/entry/2017/08/es-modules-in-nodejs\"\u003eNode.jsのES Modulesサポートの現状確認と備え - teppeis blog\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:8\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "PBR",
    "url": "https://www.ikemo3.com/dic/pbr/",
    "contents": "\u003ch2 id=\"pbrとは\"\u003ePBRとは\u003c/h2\u003e\n\u003cp\u003ePrice-To-Book Ratio\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eの略で、日本語では株価純資産倍率と呼びます。\nPBRは「株価÷1株あたり純資産」で計算されます。\u003c/p\u003e\n\u003ch2 id=\"割安度の目安\"\u003e割安度の目安\u003c/h2\u003e\n\u003cp\u003ePBRは割安度の目安として使われます。\nなぜかというと、「純資産」は「会社が解散した時に残る資産」であり、\nこれを下回る(1倍未満になる)ことはあまりありません。\u003c/p\u003e\n\u003cp\u003e以下の場合にPBRは1未満になることがあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e今後も経営不振(赤字)が予想される\u003c/li\u003e\n\u003cli\u003e資産が多くても本質的に利益率が低い業種\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただ、PBRが1倍を切っても、1倍まで戻るケースが多いです。\nPBR1倍は株価の下限を表す指標として参考にするのが良いかと思います。\n逆に、PBRが高いから割高とは必ずしも言えません。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u0026ldquo;Price Book-value Ratio\u0026quot;の略としているサイトも多いですが、一般的ではなさそうです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "PER",
    "url": "https://www.ikemo3.com/dic/per/",
    "contents": "\u003ch2 id=\"perとは\"\u003ePERとは\u003c/h2\u003e\n\u003cp\u003ePrice Earnings Ratioの略で、日本語では株価収益率と呼びます。\nPERは「株価÷1株当たり利益」で計算されます。\n株価を判断する指標として、\u003ca href=\"/dic/pbr/\"\u003ePBR\u003c/a\u003eと並んで代表的に使用されます。\u003c/p\u003e\n\u003ch2 id=\"per利率の逆数\"\u003ePER=利率の逆数\u003c/h2\u003e\n\u003cp\u003e株価が1000円で、1株当たり利益が100円なら、PERは10倍になります。\nこのPERの逆数を取ると、0.1になりますが、\nこれは銀行預金で言えば「利率」と同じです。\nもちろん株はリスクが高いため、単純に比較することはできませんが。\u003c/p\u003e\n"
  }, 
  {
    "title": "sudo",
    "url": "https://www.ikemo3.com/manual/sudo/",
    "contents": "\u003ch2 id=\"編集方法\"\u003e編集方法\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e必ずvisudoコマンドを使って編集すること\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e細かな記述については、「man 5 sudoers」で確認すること\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"書式\"\u003e書式\u003c/h2\u003e\n\u003cp\u003eこれだけ覚えておけば使える最小限の書式\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eUser Host \u0026#39;=\u0026#39; \u0026#39;(\u0026#39; Runas \u0026#39;)\u0026#39; Tag Cmnd\n\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003eUser\n\u003cul\u003e\n\u003cli\u003eユーザ名(\u0026lsquo;ikemo\u0026rsquo;) or グループ (\u0026rsquo;%wheel\u0026rsquo;)など\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHost\n\u003cul\u003e\n\u003cli\u003e\u0026lsquo;ALL\u0026rsquo;でOK\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRunas\n\u003cul\u003e\n\u003cli\u003erootで実行したい場合は\u0026rsquo;root\u0026rsquo;\u003c/li\u003e\n\u003cli\u003e任意のユーザで実行したい場合は\u0026rsquo;ALL\u0026rsquo;\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eTag\n\u003cul\u003e\n\u003cli\u003eパスワード無しで実行したい場合は\u0026rsquo;NOPASSWD:'\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eCmnd\n\u003cul\u003e\n\u003cli\u003eコマンド\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"requirettyは不要\"\u003erequirettyは不要\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/rhel/\"\u003eRHEL\u003c/a\u003e / \u003ca href=\"/dic/centos/\"\u003eCentOS\u003c/a\u003eは長らくデフォルトで\u003ccode\u003erequiretty\u003c/code\u003eがオンになってましたが、\n「セキュリティ的な意味はないし、upstream(開発元)から分岐してしまってる」\nということで、バグとして処理されています\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e端末を要求するためのオプションですが、簡単に偽装できるため、意味がないと書かれています。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Technology-Monitoring",
    "url": "https://www.ikemo3.com/tags/technology-monitoring/",
    "contents": ""
  }, 
  {
    "title": "スーパーマリオ オデッセイ",
    "url": "https://www.ikemo3.com/dic/super-mario-odyssey/",
    "contents": "\u003ch2 id=\"スーパーマリオ-オデッセイとは\"\u003eスーパーマリオ オデッセイとは\u003c/h2\u003e\n\u003cp\u003e任天堂より発売された、\u003ca href=\"/dic/nintendo-switch/\"\u003eNintendo Switch\u003c/a\u003e用のゲームです。\u003c/p\u003e\n\u003ch2 id=\"プレイ状況\"\u003eプレイ状況\u003c/h2\u003e\n\u003cp\u003e2017-11-25にクリアしました。\n「とりあえずクリアした」状況です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eプレイ時間: 10時間以上(マイページのプロフィールより)\u003c/li\u003e\n\u003cli\u003eパワームーン: 172個\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"箱庭型3dマリオ\"\u003e箱庭型3Dマリオ\u003c/h2\u003e\n\u003cp\u003eスーパーマリオシリーズは主に3種類の系列があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2Dマリオ\n\u003cul\u003e\n\u003cli\u003eファミコンのスーパーマリオブラザーズの流れをくむ横スクロールアクションゲームです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e3Dマリオ(視点固定)\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\n\u003cul\u003e\n\u003cli\u003e3Dですが視点が固定された、2Dマリオに近い操作性のアクションゲームです。\u003c/li\u003e\n\u003cli\u003eスーパーマリオ3Dランド、スーパーマリオ3Dワールドが該当します。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e3Dマリオ(箱庭)\n\u003cul\u003e\n\u003cli\u003e操作が自由な、完全3Dマリオです。\u003c/li\u003e\n\u003cli\u003eスーパーマリオ64などが該当します。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eスーパーマリオオデッセイはこのうちの「3Dマリオ(箱庭)」に該当します。\n自分はこのタイプのマリオは初めてです\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"操作は難しくない\"\u003e操作は難しくない\u003c/h2\u003e\n\u003cp\u003e3Dマリオ(箱庭)は2Dマリオに比べて日本での\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%83%9E%E3%83%AA%E3%82%AA%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA#.E3.82.B7.E3.83.AA.E3.83.BC.E3.82.BA.E4.B8.80.E8.A6.A7\"\u003e売上\u003c/a\u003eはイマイチです。\nその理由はいくつかありますが、\nその1つに、操作が難しいというのがあります。\u003c/p\u003e\n\u003cp\u003eでも、操作してみると難しくありません。\nこれだけあればクリアできます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e基本操作\n\u003cul\u003e\n\u003cli\u003e左スティック: はしる(移動)\u003c/li\u003e\n\u003cli\u003eBボタン: ジャンプ、泳ぐ\u003c/li\u003e\n\u003cli\u003eYボタン: 帽子を投げる(キャプチャー)、持つ、投げる\u003c/li\u003e\n\u003cli\u003eZLボタン: しゃがむ、土管に入る\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e基本アクション\n\u003cul\u003e\n\u003cli\u003eヒップドロップ: 空中でZLボタン\u003c/li\u003e\n\u003cli\u003e帽子投げホールド\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e: Y長押し\u003c/li\u003e\n\u003cli\u003e壁キック\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e: 壁にくっついてBボタン\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eまとめていて気づいたのが、ダッシュボタンがありません。\nキャプチャー機能を入れたためですが、\nダッシュボタンはシビアな操作が必要なケースが多いため、\n結果的に操作の難易度は下がっています。\u003c/p\u003e\n\u003ch2 id=\"3d酔いしやすい\"\u003e3D酔いしやすい\u003c/h2\u003e\n\u003cp\u003e他は文句ないのですが、このゲームは3D酔いしやすいんですよね。\nあーでもないこーでもないと探索すると、30分で酔うこともあります。\n\u003ca href=\"/dic/zelda-botw/\"\u003eBotW\u003c/a\u003eではそうでもないので、視点移動がちょっとイマイチな感じです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e2.5Dマリオという言い方を思いつきましたが、検索結果がアレなので除外。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eバーチャルコンソールでスーパーマリオ64はちょっと触ったことありますが。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e必須ではないかも\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e2Dマリオでも定番操作の1つ\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "仮想通貨",
    "url": "https://www.ikemo3.com/dic/virtual-currency/",
    "contents": "\u003ch2 id=\"仮想通貨とは\"\u003e仮想通貨とは\u003c/h2\u003e\n\u003cp\u003e通貨のようで通貨でないものです。\u003c/p\u003e\n\u003ch2 id=\"3種類の概念がごっちゃにされている\"\u003e3種類の概念がごっちゃにされている\u003c/h2\u003e\n\u003cp\u003e仮想通貨について語られるときは、\n以下の3つがごっちゃにされていることが多いです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eブロックチェーンなど、仮想通貨に使われるための技術\u003c/li\u003e\n\u003cli\u003eサービスに基づいた価値があるもの\u003c/li\u003e\n\u003cli\u003eサービスに基づいた価値がないもの\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eまず1についてはただの技術なので、\n「役立つかもね」程度しか言うことはありません。\n2についても、主体が企業\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eなら「企業通貨」なので、そのサービスが有用か、\nその企業がどれだけその通貨の価値を担保しているかどうかに帰着します。\n問題は3です。\u003c/p\u003e\n\u003ch2 id=\"暇な金持ちが多い\"\u003e暇な金持ちが多い\u003c/h2\u003e\n\u003cp\u003e3の「サービスに基づいた価値がない」仮想通貨の本質的な価値はゼロです\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\nじゃあ何で買っている人がいるのかというと、「値が上がっている」からです。\nあえて説明をすると、お金が余っている暇人がたくさんいるからです。\u003c/p\u003e\n\u003cp\u003e自分は暇人ではないし、株式投資の方が面白いので、全く興味ありません。\u003c/p\u003e\n\u003ch2 id=\"参考資料\"\u003e参考資料\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4048694170/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4048694170.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4048694170/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n狼と香辛料 (3) (電撃文庫)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e「企業」でなく「企業連合」でも「NPO」でも同じです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e政府の信用性が低い国の件は保留します。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "文学",
    "url": "https://www.ikemo3.com/tags/literature/",
    "contents": ""
  }, 
  {
    "title": "Hugoテンプレート: 出力されるHTMLを整形する",
    "url": "https://www.ikemo3.com/inverted/hugo/pretty-html/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/hugo/\"\u003eHugo\u003c/a\u003eが出すコードを綺麗に整形する方法です。\n半分くらいは自己満足ですが、HTMLが見やすいとメンテナンスしやすいです。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eHugo 0.31で確認しています。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://golang.org/pkg/text/template/\"\u003eGoテンプレート\u003c/a\u003eの空白制御機能を使います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e{{-\u003c/code\u003e: この区切りの前の空白を削除\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-}}\u003c/code\u003e: この区切りの後の空白を削除\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e基本は以下のように、\u003cstrong\u003e前\u003c/strong\u003eを削除です(\u003ccode\u003e{{-\u003c/code\u003e)。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;ul\u0026gt;\n  {{- range . }}\n  \u0026lt;li\u0026gt;\u0026lt;a href=\u0026#34;{{ .URL }}\u0026#34;\u0026gt;{{ .Title }}\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n  {{- end }}\n\u0026lt;/ul\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"partialshortcodeで余計な改行が付くのを修正する\"\u003epartial/shortcodeで余計な改行が付くのを修正する\u003c/h3\u003e\n\u003cp\u003e以下のようにpartial/shortcodeを使う場合に、最後に無駄な改行が付く場合は、\npartial/shortcodeの最後に\u003ccode\u003e{{ \u0026quot;\u0026quot; -}}\u003c/code\u003eを付けると良い場合があります\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;ul\u0026gt;\n  {{- range . }}\n  {{ partial \u0026#34;li\u0026#34; . }}\n  {{- end }}\n\u0026lt;/ul\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003epartial/shortcodeファイルの最後が改行で終わらないようにしてもいいですが、あまりよろしくないので。。。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Ansible: 文字列からファイルを作成",
    "url": "https://www.ikemo3.com/inverted/ansible/create-from-string/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e任意の文字列より、ファイルを作成する方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eAnsible 2.3.2で確認しています。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下のように、\u003ca href=\"http://docs.ansible.com/ansible/latest/copy_module.html\"\u003ecopy\u003c/a\u003eモジュールのcontent引数を使います。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e/var/tmp/abcにからファイルを作成\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003ecopy\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003econtent\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003edest\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e/var/tmp/abc\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "macOS: 文字入りで背景が透明な画像を作成する手順",
    "url": "https://www.ikemo3.com/inverted/macos/create-image-with-char/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eテスト用に、さくっと文字入りの画像を作成する手順です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ePixelmator\u003c/code\u003eが導入されていること。\u003c/li\u003e\n\u003cli\u003eバナーのサイズ、フォーマット、ファイル名を決める(以下は例)\n\u003cul\u003e\n\u003cli\u003e幅: 300\u003c/li\u003e\n\u003cli\u003e高さ: 30\u003c/li\u003e\n\u003cli\u003eフォーマット: PNG\u003c/li\u003e\n\u003cli\u003eファイル名: filename.png\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"pixelmatorで画像を作成\"\u003ePixelmatorで画像を作成\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003ePixelmatorを起動\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e新規書類\u003c/code\u003eを選択\u003c/li\u003e\n\u003cli\u003eサイズを入力\n\u003cul\u003e\n\u003cli\u003e幅: \u003ccode\u003e300\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e高さ: \u003ccode\u003e30\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e解像度: 72ピクセル／インチ(変更なし)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e背景レイヤーの不透明度を変更\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003eレイヤー\u003c/code\u003eパネルを選択\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e不透明度\u003c/code\u003eを\u003ccode\u003e100%\u003c/code\u003e→\u003ccode\u003e0%\u003c/code\u003eにする。\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003eレイヤーを追加\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003eレイヤー\u003c/code\u003eパネルを選択\u003c/li\u003e\n\u003cli\u003e左下の\u003ccode\u003e+\u003c/code\u003eをクリック\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003e画像を拡大\n\u003col\u003e\n\u003cli\u003eメニューから\u003ccode\u003e表示→ズームイン\u003c/code\u003eを選択して、ちょうどいいサイズになるまで調整。\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003e文字を追加\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003eツール\u003c/code\u003eパネルを選択\u003c/li\u003e\n\u003cli\u003e左下にある\u003ccode\u003eT\u003c/code\u003eマークをクリック\u003c/li\u003e\n\u003cli\u003eメインパネルの、ちょうど真ん中をクリック\u003c/li\u003e\n\u003cli\u003e文字を編集\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003eファイルを保存\u003c/li\u003e\n\u003cli\u003eエクスポート\n\u003col\u003e\n\u003cli\u003eメニューから\u003ccode\u003eファイル→書き出す\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePNG\u003c/code\u003eを選択して\u003ccode\u003e次へ\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efilename.png\u003c/code\u003eと入力\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"見た目の確認\"\u003e見た目の確認\u003c/h3\u003e\n\u003cp\u003e以下のHTMLを作成して、画像と同じディレクトリに保存する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-html\" data-lang=\"html\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003ehtml\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003ebody\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003estyle\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;background-color: red\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003ediv\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003estyle\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;border: 1px solid\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003eimg\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003esrc\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;filename.png\u0026#34;\u003c/span\u003e /\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ediv\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ebody\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ehtml\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eその後、ブラウザでHTMLを開く。\u003c/p\u003e\n"
  }, 
  {
    "title": "Google Chrome拡張機能",
    "url": "https://www.ikemo3.com/manual/google-chrome-extension/",
    "contents": "\u003ch2 id=\"利用者としてのgoogle-chrome拡張機能\"\u003e利用者としてのGoogle Chrome拡張機能\u003c/h2\u003e\n\u003cp\u003eこのページは\u003cstrong\u003e開発者\u003c/strong\u003eとしての内容です。\n利用者としてのGoogle Chrome拡張機能は、\u003ca href=\"/manual/google-chrome/\"\u003eGoogle Chrome\u003c/a\u003eに記載しています。\u003c/p\u003e\n\u003ch2 id=\"マニュアル\"\u003eマニュアル\u003c/h2\u003e\n\u003ch3 id=\"webextensions\"\u003eWebExtensions\u003c/h3\u003e\n\u003cp\u003eFirefoxの話ですが、\nGoogle Chromeが採用しているAPIとある程度互換性がある、\nWebExtensions APIがあります。\u003c/p\u003e\n\u003cp\u003eそのため、Firefoxの拡張機能のドキュメントは、\nGoogle Chromeのドキュメントを読むときに、ある程度参考になります。\n翻訳されているものも多いため、概要を理解するには良いでしょう。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/Add-ons/WebExtensions\"\u003eブラウザー拡張機能 - Mozilla | MDN\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"セキュリティ\"\u003eセキュリティ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/Add-ons/WebExtensions/Content_scripts#Loading_content_scripts\"\u003eコンテンツスクリプト - Mozilla | MDN\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下のような制限があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eコンテンツスクリプト\n\u003cul\u003e\n\u003cli\u003e使えるAPIが制限されている。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/extensions/content_scripts#capabilities\"\u003eUnderstand Content Script Capabilities\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebrowserActionなどは使えない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eバックグラウンドスクリプト\n\u003cul\u003e\n\u003cli\u003eWebページのコンテンツにアクセスできない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eなので、Webページのコンテンツにアクセスしつつ、\nバックグラウンドスクリプトでbrowserActionを使う場合は、\nこの2つのスクリプトで通信をする必要があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/extensions/messaging\"\u003eMessage Passing - Google Chrome\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/Add-ons/WebExtensions/Content_scripts#Communicating_with_background_scripts\"\u003eバックグラウンドスクリプトとの通信\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"制限事項\"\u003e制限事項\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/extensions/contentSecurityPolicy\"\u003eContent Security Policy (CSP) - Google Chrome\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003eevalはそれに類するものは使用不可。\n\u003cul\u003e\n\u003cli\u003e対策\n\u003cul\u003e\n\u003cli\u003e基本的にはevalを使わない。\u003c/li\u003e\n\u003cli\u003esandboxを使う。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/extensions/sandboxingEval\"\u003eUsing eval in Chrome Extensions. Safely. - Google Chrome\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eインラインJavaScriptは実行されない。\n\u003cul\u003e\n\u003cli\u003e対策\n\u003cul\u003e\n\u003cli\u003e関数定義は外部ファイルに移動。\u003c/li\u003e\n\u003cli\u003eイベントハンドラはaddEventListenerを使用。\n\u003cul\u003e\n\u003cli\u003eonloadはDOMContentLoadedイベントをハンドリング。\u003c/li\u003e\n\u003cli\u003eDOM構築前でよければ\u003ccode\u003e\u0026quot;run_at\u0026quot;: \u0026quot;document_start\u0026quot;\u003c/code\u003eを使用。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eChrome 46からはbase64エンコードされて、ハッシュ付きならOKの模様。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eローカルのスクリプトとリソースのみ読み込まれる。\n\u003cul\u003e\n\u003cli\u003e対策\n\u003cul\u003e\n\u003cli\u003eファイルをダウンロードしてパッケージに含める。\u003c/li\u003e\n\u003cli\u003eCSPを適切に設定すればリモートのスクリプトも使える?\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eContent Security Policyの変更が可能。\n\u003cul\u003e\n\u003cli\u003emanifest.jsonのキーは\u003ccode\u003econtent_security_policy\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eただし \u003ccode\u003eunsafe-inline\u003c/code\u003e は使えない(see. \u003ca href=\"https://developer.chrome.com/extensions/contentSecurityPolicy#relaxing-inline-script\"\u003eInline Script\u003c/a\u003e)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/extensions/contentSecurityPolicy#interactions\"\u003eContent Scripts\u003c/a\u003eと題していろいろ書かれている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"scaffold足場\"\u003eScaffold(足場)\u003c/h2\u003e\n\u003cp\u003e0から作ると大変なことも多いので、このようなツールを使うといいかもしれません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yeoman/generator-chrome-extension\"\u003eyeoman/generator-chrome-extension: Scaffold out a Chrome extension\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/yoichiro6642/items/d446256e0bd709e2d76b\"\u003e2016年度版 僕が考えたChrome拡張機能を作るときのデザインパターン - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"マニフェストファイル\"\u003eマニフェストファイル\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/extensions/manifest\"\u003eManifest File Format - Google Chrome\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"必須項目\"\u003e必須項目\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emanifest_version(number): マニフェストファイルのバージョン。現在は'2\u0026rsquo;(数値)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/extensions/manifest/name#name\"\u003ename\u003c/a\u003e(string): 拡張機能の名前(45文字以下)。Chrome Web Storeなどで使われる。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/extensions/manifest/version\"\u003eversion\u003c/a\u003e(string): バージョン文字列。自動更新システムが認識するため、厳密な規定あり。ユーザが認識する文字列を指定する時は、version_nameを使う(後述)\n\u003cul\u003e\n\u003cli\u003e1〜4つのドット区切りの整数\u003c/li\u003e\n\u003cli\u003eそれぞれの整数は0〜65535の範囲であること。\u003c/li\u003e\n\u003cli\u003e\u0026lsquo;0\u0026rsquo;以外は'0\u0026rsquo;で始まるものはNG(例: \u0026lsquo;032\u0026rsquo;)\u003c/li\u003e\n\u003cli\u003eバージョンの比較時は、左側から比較する。存在しないフィールドは'0\u0026rsquo;として扱う。\n\u003cul\u003e\n\u003cli\u003e例1: \u0026lsquo;1.2.0\u0026rsquo;は'1.1.9.9999\u0026rsquo;より新しい。\u003c/li\u003e\n\u003cli\u003e例2: \u0026lsquo;1.1.9.9999\u0026rsquo;は'1.1\u0026rsquo;より新しい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"バージョン\"\u003eバージョン\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/extensions/manifest/version#version_name\"\u003eversion_name\u003c/a\u003e: 画面表示に使用するバージョン。\u0026ldquo;beta\u0026rdquo;, \u0026ldquo;rc\u0026quot;などを含めたいときに便利。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"パーミッション\"\u003eパーミッション\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://developer.chrome.com/extensions/declare_permissions\"\u003eDeclare Permissions - Google Chrome\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eAPIを使用する権限を表します。\n\u0026ldquo;permissions\u0026quot;をキーとして、配列で記載します。\u003c/p\u003e\n\u003cp\u003e事前に定義されたものの他に、URLも記載できます。\nWebページ内で実行したい場合は、\u003ca href=\"https://developer.chrome.com/extensions/content_scripts#declaratively\"\u003eInject Declaratively\u003c/a\u003eの方がいいかも。。。\u003c/p\u003e\n\u003ch3 id=\"アイコン\"\u003eアイコン\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://developer.chrome.com/extensions/manifest/icons\"\u003eManifest - Icons - Google Chrome\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e16x16: ファビコン(右上のアイコン)\u003c/li\u003e\n\u003cli\u003e48x48: 拡張機能の管理ページのアイコン\u003c/li\u003e\n\u003cli\u003e128x128: Chrome Web Store で使われる\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"アクション\"\u003eアクション\u003c/h3\u003e\n\u003cp\u003eユーザがツールバー(URLバーの右側)で操作するもの。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/extensions/browserAction\"\u003ebrowser_action\u003c/a\u003e: 常に有効にする場合\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/extensions/pageAction\"\u003epage_action\u003c/a\u003e: ページの内容によって有効にするかどうかが変わる場合\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"content-script\"\u003eContent Script\u003c/h3\u003e\n\u003cp\u003eWebページ上で動くもの。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/extensions/content_scripts\"\u003econtent_scripts\u003c/a\u003e(array):\n\u003cul\u003e\n\u003cli\u003ematches(array): マッチするサイト\n\u003cul\u003e\n\u003cli\u003eワイルドカードが使用可能。詳細は\u003ca href=\"https://developer.chrome.com/extensions/match_patterns\"\u003ematch_patterns\u003c/a\u003e参照。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ecss(array): 読み込まれるCSSファイル\u003c/li\u003e\n\u003cli\u003ejs(array): 読み込まれるJavaScriptファイル\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"background-script\"\u003eBackground Script\u003c/h3\u003e\n\u003cp\u003eバックグラウンドで動くもの。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/extensions/background_pages\"\u003ebackground\u003c/a\u003e(object):\n\u003cul\u003e\n\u003cli\u003escripts(array): 動くスクリプト\u003c/li\u003e\n\u003cli\u003epersistent(boolean): 通常はfalse\n\u003cul\u003e\n\u003cli\u003echrome.webRequestというネットワークリクエストを解析するAPI以外では使わなさそうです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"オプション画面\"\u003eオプション画面\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://developer.chrome.com/extensions/options\"\u003eGive Users Options - Google Chrome\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eoptions_page(string): オプション画面のHTML。新しいタブでオプション画面を表示する。\u003c/li\u003e\n\u003cli\u003eoptions_ui(object): 拡張機能管理ページの中で埋め込み表示\n\u003cul\u003e\n\u003cli\u003epage: オプション画面のHTML。\u003c/li\u003e\n\u003cli\u003eopen_in_tab:\n\u003cul\u003e\n\u003cli\u003etrue: 新しいタブで表示(options_page指定と同じ?)\u003c/li\u003e\n\u003cli\u003efalse: 埋め込み表示\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eオプション画面は内容を書き込むため、storageパーミッションは事実上必須。\u003c/p\u003e\n\u003ch3 id=\"タブ\"\u003eタブ\u003c/h3\u003e\n\u003cp\u003eタブのタイトルとURL、ファビコンURLを取得するには、\u003ca href=\"https://developer.chrome.com/extensions/declare_permissions\"\u003epermissions\u003c/a\u003eに、\u003ccode\u003etabs\u003c/code\u003eをつける必要がある。\n単にアクティブなタブを取得するだけなら不要。\u003c/p\u003e\n\u003ch3 id=\"クリップボード\"\u003eクリップボード\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://developer.chrome.com/extensions/declare_permissions\"\u003epermissions\u003c/a\u003eに \u003ccode\u003eclipboardWrite\u003c/code\u003e または \u003ccode\u003eclipboardRead\u003c/code\u003eをつける必要がある。\u003c/p\u003e\n\u003cp\u003e少なくともChrome 71までは\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/Document/execCommand\"\u003eDocument.execCommand\u003c/a\u003eを使うのがよい。\n以下の記事で書かれているように、テキストエリアを作成\n→全選択→\u003ccode\u003edocument.execCommand(\u0026quot;copy\u0026quot;)\u003c/code\u003eを使用する。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/3436102/copy-to-clipboard-in-chrome-extension\"\u003ejavascript - Copy to Clipboard in Chrome Extension - Stack Overflow\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://developer.chrome.com/apps/clipboard\"\u003echrome.clipboard\u003c/a\u003eというAPIがあるが、Chrome 71から導入(現在の安定版はChrome 69)のもので、\n現在は開発中となっている。\u003c/p\u003e\n\u003cp\u003eまた、説明には「オープン標準が\b\b\bできるまでの一時的な解決案」と書かれている。\nこれは\u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API\"\u003eClipboard API\u003c/a\u003eのことと思われる。\u003c/p\u003e\n\u003ch3 id=\"コンテキストメニュー\"\u003eコンテキストメニュー\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/apps/contextMenus\"\u003echrome.contextMenus\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下の作業が必要。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eパーミッション \u003ccode\u003econtextMenus\u003c/code\u003e を追加\u003c/li\u003e\n\u003cli\u003eバックグラウンドページを追加\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eバックグラウンドで\u0001書く件については以下の記事に記載。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dev.classmethod.jp/ria/google-chrome-extension-7/\"\u003eGoogle Chrome Extensionを作ってみた-その7- ｜ DevelopersIO\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"開発手法\"\u003e開発手法\u003c/h2\u003e\n\u003ch3 id=\"promiseawaitasync\"\u003ePromise/await/async\u003c/h3\u003e\n\u003cp\u003eほとんどが非同期で動く、callback付きで定義されているメソッドのため、\nPromiseでラップして、await/asyncを使う機会が多いです。\nまずこれを学ぶのが良いと思います。\u003c/p\u003e\n\u003ch3 id=\"パッケージ化されていない拡張機能を読み込む\"\u003eパッケージ化されていない拡張機能を読み込む\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e拡張機能の画面を開く\n\u003cul\u003e\n\u003cli\u003emacOSの場合「︙」→「その他のツール」→「拡張機能」で出る。\u003c/li\u003e\n\u003cli\u003e適当な拡張機能を右クリック→「拡張機能を管理」→「拡張機能の名前の左の\u0026rdquo;←\u0026quot;」の方がいいかも。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e「パッケージ化されていない拡張機能を読み込む」を押す。\u003c/li\u003e\n\u003cli\u003eダイアログが出るので、manifest.jsonがあるディレクトリを選択。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e再読込するときは、拡張機能の画面のリロードボタンを押す。\u003c/p\u003e\n\u003ch3 id=\"公開\"\u003e公開\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/webstore/publish\"\u003ePublish in the Chrome Web Store - Google Chrome\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/sqrtxx/items/19fd2114430e9e1fb57f\"\u003eChrome Extension を作って公開する - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003e事前準備\n\u003cul\u003e\n\u003cli\u003eクレジットカード(初回のみ$5必要)\u003c/li\u003e\n\u003cli\u003eスクリーンショット(1〜5枚, 1280x800)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/webstore/images#screenshots\"\u003eScreenshots\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e言語ごと対応可能\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eアイコン\n\u003cul\u003e\n\u003cli\u003e96x96 + パディング16px = 128x128\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eアプリの詳細説明(言語ごと対応可能)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e手順\n\u003col\u003e\n\u003cli\u003eZIP形式で固める\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://chrome.google.com/webstore/developer/dashboard\"\u003eダッシュボード\u003c/a\u003eに行く\u003c/li\u003e\n\u003cli\u003eZIPのアップロード\u003c/li\u003e\n\u003cli\u003eスクリーンショット、アイコン、詳細説明の記入など諸々作業\u003c/li\u003e\n\u003cli\u003eプレビューして問題なければ公開\n\u003cul\u003e\n\u003cli\u003e公開は数分で行われるようですが、キャッシュのためかすぐに反映されないため、シークレットモードで確認すると良さそうです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"api\"\u003eAPI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.chrome.com/extensions/api_index\"\u003eAPI一覧\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e履歴: \u003ca href=\"https://developer.chrome.com/extensions/history\"\u003echrome.history\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e設定の保存: \u003ca href=\"https://developer.chrome.com/extensions/storage\"\u003echrome.storage\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"storage\"\u003estorage\u003c/h3\u003e\n\u003cp\u003eオプションの保存を行う。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003echrome.storage.sync\n\u003cul\u003e\n\u003cli\u003eChrome Syncによる同期を行うもの。\u003c/li\u003e\n\u003cli\u003eSyncを有効化していないときは、localとしてふるまう。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eEven if a user disables syncing, storage.sync will still work. In this case, it will behave identically to storage.local.\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e容量および操作回数の制限が大きいのに注意(\u003ca href=\"https://developer.chrome.com/extensions/storage#property-sync\"\u003echrome.storage.sync\u003c/a\u003e参照)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003echrome.storage.local\n\u003cul\u003e\n\u003cli\u003eローカルのみ保存を行うもの。\u003c/li\u003e\n\u003cli\u003e容量は5MBだが、それ以外の制限はない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003echrome.storage.managed\n\u003cul\u003e\n\u003cli\u003e管理者が設定したポリシー(書き込み不可)。通常は意識しない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eいずれもAPIとしては共通(callbackを受け取る)のため、\n非同期メソッドとして対処が必要。\u003c/p\u003e\n\u003ch4 id=\"注意点\"\u003e注意点\u003c/h4\u003e\n\u003cp\u003e単純なことですが、何度も間違えたので書いておきます。\n\u003ccode\u003e{key: value}\u003c/code\u003eのようなオブジェクトを格納する場合、\ngetとsetは以下のように書きます。\n(例示のためPromiseは使わない)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// set\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003echrome\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003esync\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eset\u003c/span\u003e({\u003cspan style=\"color:#a6e22e\"\u003ekey\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003evalue\u003c/span\u003e}, \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e});\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// get\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003echrome\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003esync\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eget\u003c/span\u003e({\u003cspan style=\"color:#a6e22e\"\u003ekey\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003edefault_value\u003c/span\u003e}, \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003eitems\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003evalue\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eitems\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ekey\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e// items == valueと勘違いしてしまう\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e});\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"国際化\"\u003e国際化\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://developer.chrome.com/extensions/i18n\"\u003echrome.i18n - Google Chrome\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emanifest.json\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026ldquo;default_locale\u0026rdquo;: デフォルトのロケール。基本的には\u0026quot;en\u0026rdquo;\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_locales/${localeCode}/messages.json\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003elocalcode: ロケールコード。英語は\u0026rsquo;en\u0026rsquo;、日本語は\u0026rsquo;ja\u0026rsquo;\u003c/li\u003e\n\u003cli\u003eキー: chrome.i18n.getMessageの最初の引数に使うキー\n\u003cul\u003e\n\u003cli\u003emessage(必須): 取得するメッセージ\u003c/li\u003e\n\u003cli\u003edescription: 翻訳者に対する説明。アプリ内では使わない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emanifest.json, CSS中に\u003ccode\u003e__MSG_\u003c/code\u003eと\u003ccode\u003e__\u003c/code\u003eで囲むと、メッセージが使用可能。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"htmlの国際化\"\u003eHTMLの国際化\u003c/h4\u003e\n\u003cp\u003e別記事にしました。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://localhost:3333/inverted/google-chrome-extension/i18n-html/\"\u003e逆引きマニュアル: Google Chrome拡張機能: HTMLの国際化 - Hideki Ikemoto\u0026rsquo;s Site\u003c/a\u003e\u003c/p\u003e\n\u003ch4 id=\"国際化のテスト\"\u003e国際化のテスト\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWindows: \u003ccode\u003e--lang\u003c/code\u003eオプションを使用\u003c/li\u003e\n\u003cli\u003eLinux: \u003ccode\u003eLANGUAGE\u003c/code\u003e環境変数を使用\u003c/li\u003e\n\u003cli\u003emacOS\n\u003col\u003e\n\u003cli\u003e「システム環境設定」を開く\u003c/li\u003e\n\u003cli\u003e「言語と地域」を開く\u003c/li\u003e\n\u003cli\u003eChromeを再起動\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emacOSだけめんどくさいですね(OSの機能そのままですが)。\u003c/p\u003e\n"
  }, 
  {
    "title": "Hugoテンプレート",
    "url": "https://www.ikemo3.com/dic/hugo-template/",
    "contents": "\u003ch2 id=\"hugoテンプレートとは\"\u003eHugoテンプレートとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/hugo/\"\u003eHugo\u003c/a\u003eで使うテンプレートです。\u003c/p\u003e\n\u003ch2 id=\"主な概念\"\u003e主な概念\u003c/h2\u003e\n\u003cp\u003e特に間違いやすいのがSectionとTaxonomyです。\u003c/p\u003e\n\u003ch3 id=\"section\"\u003e\u003ca href=\"https://gohugo.io/content-management/sections/\"\u003eSection\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eいわゆる「フォルダ」による分類です。\n\u003ca href=\"https://github.com/gohugoio/hugo/releases/tag/v0.22\"\u003eHugo 0.22\u003c/a\u003eからセクションの\nネストが可能になりました。\u003c/p\u003e\n\u003ch3 id=\"taxonomy\"\u003e\u003ca href=\"https://gohugo.io/content-management/taxonomies/\"\u003eTaxonomy\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eTaxonomyは日本語で「分類法」と訳されます。いわゆる「タグ」による分類です。\nデフォルトでは\u0026quot;tags\u0026quot;と\u0026quot;categories\u0026quot;の2つがTaxonomyとして扱われます\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eTermという単語がしばしば出てきますが、\nTaxonomyが分類自体を表すのに対し、Term(またはTaxonomy Term)は\nその分類された1つを表します。例えば、「タグ \u0026ldquo;Hugo\u0026rdquo;」はTermになります。\u003c/p\u003e\n\u003ch2 id=\"基本構造\"\u003e基本構造\u003c/h2\u003e\n\u003cp\u003eテンプレートの基本構造は\u003ca href=\"https://gohugo.io/templates/lists/\"\u003eHugo | Lists of Content in Hugo\u003c/a\u003eに書かれている図が最も参考になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHomepage : Section = 1 : n\u003c/li\u003e\n\u003cli\u003eSection : Page = 1 : n\u003c/li\u003e\n\u003cli\u003eTaxonomy : Term = 1 : n\u003c/li\u003e\n\u003cli\u003eTerm : Page = 1 : n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下よく使っているものを挙げます。\u003c/p\u003e\n\u003ch3 id=\"base-template\"\u003e\u003ca href=\"https://gohugo.io/templates/base/\"\u003eBase Template\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e全てのページのベーステンプレートです。\nどのページでもだいたい同じのもの(\u003ccode\u003e\u0026lt;head\u0026gt;\u003c/code\u003eなど)をこのテンプレートで書き、\n異なる箇所だけ\u003ccode\u003e{{ define \u0026quot;main\u0026quot; }}\u003c/code\u003eのようにブロック化して、\n差分だけ各テンプレートに書くのがおすすめです。\u003c/p\u003e\n\u003ch3 id=\"homepage\"\u003e\u003ca href=\"https://gohugo.io/templates/homepage/\"\u003eHomepage\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eサイトのトップページを表します。\u003c/p\u003e\n\u003ch3 id=\"list\"\u003e\u003ca href=\"https://gohugo.io/templates/lists/\"\u003eList\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eリストのテンプレートです。以下のようなものが該当します。\nHomepageのテンプレートとして使われることもあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSection(例: このサイトだと\u003ca href=\"/dic/\"\u003e辞書\u003c/a\u003eなど)\u003c/li\u003e\n\u003cli\u003eTaxonomy List(例: このサイトだと\u003ca href=\"/tags/\"\u003eタグ\u003c/a\u003eなど)\u003c/li\u003e\n\u003cli\u003eTaxonomy Term List(例: このサイトだと\u003ca href=\"/tags/hugo/\"\u003eタグ: Hugo\u003c/a\u003eなど)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"taxonomy-1\"\u003e\u003ca href=\"https://gohugo.io/templates/taxonomy-templates/\"\u003eTaxonomy\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eTaxonomy(分類法)のページです。\nリストのテンプレートを使ってもいいのですが、\nこのサイトではタグを使っている数の順に並べるために使用しています。\u003c/p\u003e\n\u003ch3 id=\"single-page\"\u003e\u003ca href=\"https://gohugo.io/templates/single-page-templates/\"\u003eSingle Page\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e単一のページを表します。\u003c/p\u003e\n\u003ch3 id=\"partial\"\u003e\u003ca href=\"https://gohugo.io/templates/partials/\"\u003ePartial\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eページの切れ端を表します。\nいろんなページでよく使うものは、このテンプレートを使うと使い回しが出来て便利です\n。\nただし、見通しが悪くなることもあるので、要注意ですが。\u003c/p\u003e\n\u003cp\u003eこのサイトでは、例えばタグのリストを作成するためにPartial Templateを使用していま\nす。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://gohugo.io/content-management/taxonomies/#hugo-taxonomy-defaults\"\u003eHugo Taxonomy Defaults\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "JavaScript",
    "url": "https://www.ikemo3.com/dic/javascript/",
    "contents": "\u003ch2 id=\"javascriptとは\"\u003eJavaScriptとは\u003c/h2\u003e\n\u003cp\u003e主に\u003ca href=\"/dic/browser/\"\u003eウェブブラウザ\u003c/a\u003e上で動くプログラミング言語です。\n\u003ca href=\"/dic/java/\"\u003eJava\u003c/a\u003eとは関係ありません\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"ecmascript\"\u003eECMAScript\u003c/h2\u003e\n\u003cp\u003eJavaScriptは元々はNetscape Navigator用に独自に開発された言語ですが、\n現在は標準化団体\u003ca href=\"https://www.ecma-international.org/\"\u003eEcma\u003c/a\u003eによって仕様が策定されています\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\nなので、JavaScriptのバージョン、あるいは仕様を指す時には、\nECMAScriptを略して \u003ccode\u003eES\u003c/code\u003e と、バージョンまたは年を加えて、\n\u003ccode\u003eES6\u003c/code\u003e や \u003ccode\u003eES2015\u003c/code\u003e などと呼ばれます。\u003c/p\u003e\n\u003cp\u003eちなみに、ECMAScriptは\u003cstrong\u003eエクマスクリプト\u003c/strong\u003eと呼びます。\u003c/p\u003e\n\u003ch2 id=\"プロトタイプベースのオブジェクト指向\"\u003eプロトタイプベースのオブジェクト指向\u003c/h2\u003e\n\u003cp\u003eJavaScriptはオブジェクト指向言語ですが、\nプロトタイプベースの言語です\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\nただし、ES6からはクラスを使った書き方も可能です\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e「インドとインドネシアくらい違う」という例えがよく使われます。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Language_Resources\"\u003eJavaScript 言語情報 - JavaScript | MDN\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Class-Based_vs._Prototype-Based_Languages\"\u003eClass-Based vs. Prototype-Based Languages - JavaScript | MDN\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Classes\"\u003eクラス - JavaScript | MDN\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "JavaScript: AmazonのページからYAMLを作成する方法",
    "url": "https://www.ikemo3.com/inverted/javascript/amazon-page-to-yaml/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eAmazonのページから、以下のように、\nハッシュのキーとしてタイトル名の一部分(スペースの前まで)\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\nその値のハッシュの\u003ccode\u003easin\u003c/code\u003eにAmazonのコード(ASIN)、\n\u003ccode\u003etitle\u003c/code\u003eに本のタイトルを記載したYAMLを作成します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;プロフェッショナルの条件――いかに成果をあげ、成長するか\u0026#34;\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003easin\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e4478300593\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003etitle\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;プロフェッショナルの条件――いかに成果をあげ、成長するか (はじめて読むドラッカー (自己実現編))\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eAmazonのURLが以下のように正規化されているものとします。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.amazon.co.jp/dp/4478300593\"\u003ehttps://www.amazon.co.jp/dp/4478300593\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下の内容をブックマークレットとして保存してください。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003ejavascript\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e( \u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e(){ \u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003etitle\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003egetElementById\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;productTitle\u0026#39;\u003c/span\u003e).\u003cspan style=\"color:#a6e22e\"\u003etextContent\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003etrim\u003c/span\u003e(); \u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ekey\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003etitle\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ematch\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e/^([^ ]+)/\u003c/span\u003e)[\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e]; \u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003easin\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003eURL\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003ematch\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e/([^/]+)$/\u003c/span\u003e)[\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e]; \u003cspan style=\"color:#a6e22e\"\u003eprompt\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;Amazon\u0026#39;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026#34;\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ekey\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026#34;:\\n\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;  asin: \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003easin\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\n\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;  title: \u0026#34;\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003etitle\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026#34;\u0026#39;\u003c/span\u003e) } )();\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eキーとして使用するため、短いほうがいいだろうと。実際は「プロフェッショナルの条件」のように、さらに編集したものを使います。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "JavaScript: 任意のページをYAML化",
    "url": "https://www.ikemo3.com/inverted/javascript/page-to-yaml/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e任意のページのタイトルとURLを以下のようにYAML化したいです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  - \u003cspan style=\"color:#f92672\"\u003etitle\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;プロフェッショナルの条件――いかに成果をあげ、成長するか (はじめて読\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#e6db74\"\u003eむドラッカー (自己実現編)) | P・F. ドラッカー, Peter F. Drucker, 上田 惇生 |本 | 通販 | Amazon\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003eurl\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ehttps://www.amazon.co.jp/dp/4478300593\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eAmazonのURLが以下のように正規化されているものとします。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.amazon.co.jp/dp/4478300593\"\u003ehttps://www.amazon.co.jp/dp/4478300593\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下の内容をブックマークレットとして保存してください。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003ejavascript\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e(){\u003cspan style=\"color:#a6e22e\"\u003eprompt\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;%E4%BB%8A%E8%A6%8B%E3%81%A6%E3%81%84%E3%82%8B%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%E3%81%A8URL\u0026#39;\u003c/span\u003e,\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;  - title: \u0026#34;\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003etitle\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026#34;\\n    url: \u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003edocument.\u003cspan style=\"color:#a6e22e\"\u003eURL\u003c/span\u003e)})();\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Webブラウザ",
    "url": "https://www.ikemo3.com/dic/browser/",
    "contents": "\u003ch2 id=\"webブラウザとは\"\u003eWebブラウザとは\u003c/h2\u003e\n\u003cp\u003eWWW(World Wide Web)を見るためのものです。\u003c/p\u003e\n\u003ch2 id=\"ブラウザと能力の関係\"\u003eブラウザと能力の関係\u003c/h2\u003e\n\u003cp\u003e書籍「ORIGINALS」No.233(Kindle)に以下の記述があります。\n(「ファイアフォックス→Firefox」など、意味を変えない範囲で変更あり)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eつい先ごろ、経済学者のマイケル・ハウスマンは、\n顧客サービス係の勤務が長く続く人とそうでない人がいるのはなぜかを解明する\nプロジェクトを指揮していた。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eハウスマンは、ほかに何らかのヒントがないかと探すうち、\n従業員が職に応募するときにどのブラウザでログインしたかという情報を入手していたことに気づいた。\nふと思いついて、ブラウザの選択が離職に関係しているかどうかを分析してみた。\nどのブラウザを使うかは好みの問題だろうから、関連性を見いだせるとは思ってもみなかったのだが、\n得られた結果に驚いた。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFirefoxまたはChromeを使っていた従業員は、Internet ExplorerまたはSafariを使っていた\n従業員よりも15％長く勤務していたのだ。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eじつは重要なのは、ブラウザを「どのように」入手したかということだった。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFirefoxまたはChromeを入手するには、少しばかり頭を使って別のブラウザをダウンロードしなければならない。\n\u003cstrong\u003e「今あるもの」をそのまま使うのではなく、みずから行動を起こして、よりよい選択肢がないかを探し求める\u003c/strong\u003eわけだ。そしてこの自発的な行動が、どれほど小さいとしても、職場での行動を決定づけるヒントになる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e問題はブラウザ自体の優劣ではなく「ありものではなく自分で選んだ」ということが重要です。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4837957684/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4837957684.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4837957684/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nORIGINALS 誰もが「人と違うこと」ができる時代 (単行本)\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Yaml",
    "url": "https://www.ikemo3.com/tags/yaml/",
    "contents": ""
  }, 
  {
    "title": "アルコール",
    "url": "https://www.ikemo3.com/tags/alcohol/",
    "contents": ""
  }, 
  {
    "title": "ドラゴンクエストXI 過ぎ去りし時を求めて",
    "url": "https://www.ikemo3.com/dic/dq11/",
    "contents": "\u003ch2 id=\"ドラゴンクエストxi-過ぎ去りし時を求めてとは\"\u003eドラゴンクエストXI 過ぎ去りし時を求めてとは\u003c/h2\u003e\n\u003cp\u003eドラゴンクエストの11作目です。\u003c/p\u003e\n\u003ch2 id=\"プレイしてよかった\"\u003eプレイしてよかった\u003c/h2\u003e\n\u003cp\u003eゲームのレビューは苦手なのですが、\nプレイして良かったか否かと言われると、プレイして良かったです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"dq10からのシステムの輸入\"\u003eDQ10からのシステムの輸入\u003c/h2\u003e\n\u003cp\u003e個人的に興味深いのが、「ふしぎな鍛冶」のシステムです。\nこれはほとんど、DQ10の鍛冶システムそのままです。\nただ、DQ10と以下の点が異なっています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e失敗しても素材が失われない\u003c/li\u003e\n\u003cli\u003eみだれ打ちがランダムでない\n\u003cul\u003e\n\u003cli\u003e4マス打つ場所がある場合、4マスそれぞれ1回ずつ叩かれます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e打ち直しが可能\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDQ10はオンラインゲームなのでバランスはキツめなのですが、\nDQ11はオフラインゲームなので、バランスはゆるめです。\u003c/p\u003e\n\u003cp\u003eもし次回作が出る場合も、DQ10からのシステムの輸入があるんじゃないかなぁと。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B06Y5V9FK7/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B06Y5V9FK7.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B06Y5V9FK7/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n【3DS】ドラゴンクエストXI 過ぎ去りし時を求めて\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e点数付け自体が苦手なので、\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ブックマークレット",
    "url": "https://www.ikemo3.com/dic/bookmarklet/",
    "contents": "\u003ch2 id=\"ブックマークレットとは\"\u003eブックマークレットとは\u003c/h2\u003e\n\u003cp\u003eウェブブラウザのブックマークから起動できるスクリプトです。\u003c/p\u003e\n\u003ch2 id=\"content-security-policyとの関係\"\u003eContent Security Policyとの関係\u003c/h2\u003e\n\u003cp\u003eブックマークは開いたページで実行する関係上、\n\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/HTTP/CSP\"\u003eContent Security Poicy\u003c/a\u003eとの競合に注意する必要があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://bugs.chromium.org/p/chromium/issues/detail?id=233903\"\u003e233903 - CSP: Bookmarklets should bypass pages\u0026rsquo; policies. - chromium - Monorail\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこちらによれば、拡張機能を使うことが推奨されています。\u003c/p\u003e\n"
  }, 
  {
    "title": "一元多様性",
    "url": "https://www.ikemo3.com/dic/diversity/",
    "contents": "\u003ch2 id=\"一元多様性とは\"\u003e一元多様性とは\u003c/h2\u003e\n\u003cp\u003eいわゆる「多様性」のことです。\u003c/p\u003e\n\u003ch2 id=\"diverseの語源\"\u003ediverseの語源\u003c/h2\u003e\n\u003cp\u003e英語のdiverseの語源は\u003ccode\u003edi-\u003c/code\u003e(強意) + \u003ccode\u003everse\u003c/code\u003e(形や性質を変える)です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"根っこが同じか\"\u003e根っこが同じか\u003c/h2\u003e\n\u003cp\u003e多様性は良いもののように語られていますが、\n多様性の実態は「一元多様性」です。\nつまり、根っこは1つで、その範囲の中で広がりがあるにすぎません。\u003c/p\u003e\n\u003cp\u003eでは、その根っこは共有できるのでしょうか。\n自分は合意は無理だと考えます。\u003c/p\u003e\n\u003cp\u003eもし根っこが共有できるなら、\n真っ先に共有されるべきは「民主主義」または「法治国家」です。\nしかし、中国という「非民主主義国家」を肯定しているからです。\u003c/p\u003e\n\u003ch2 id=\"一元多様性から多元多様性へ\"\u003e「一元多様性」から「多元多様性」へ\u003c/h2\u003e\n\u003cp\u003e多様性とは、数学で言えば、実数の範囲内で整数、有理数、無理数と\n広がりをもたせたものに対し、多元性とは、数学で言えば、\n虚数単位を導入することです。\u003c/p\u003e\n\u003cp\u003e不毛な争いはもうやめて、社会は一元多様性ではなく、\n多元多様性を追求すべきです。\u003c/p\u003e\n\u003ch2 id=\"デモクラフィー型ダイバーシティ\"\u003eデモクラフィー型ダイバーシティ\u003c/h2\u003e\n\u003cp\u003eこちらの記事にある「デモクラフィー型ダイバーシティ」は、自分の「一元多様性」の一例です。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eデモクラフィー型ダイバーシティとは、性別・国籍・年齢など、属性の多様性のことを意味する言葉です。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://mitsucari.com/blog/task_diversity/\"\u003eタスク型ダイバーシティとは？メリットや活用方法を理解しよう - 人事担当者のためのミツカリ公式ブログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://gogengo.me/roots/240\"\u003e語根 vert, verse の意味 - Gogengo! - 英単語は語源でたのしく\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "男女共同参画",
    "url": "https://www.ikemo3.com/dic/gender-equality/",
    "contents": "\u003ch2 id=\"男女共同参画とは\"\u003e男女共同参画とは\u003c/h2\u003e\n\u003cp\u003eいわゆる「男女平等」のことです。\n日本では、男女共同参画社会基本法によって規定されています。\n以下分かりやすく男女平等と書きます。\u003c/p\u003e\n\u003ch2 id=\"男女平等が必須な理由\"\u003e男女平等が必須な理由\u003c/h2\u003e\n\u003cp\u003e自分は男女平等には基本賛成なのですが、\nちょっとモヤモヤするところがありました。\nそれは、男女平等を唱える女性の中には、内永ゆか子のような、男性を蹴飛ばしてきたタイプが目立つからです。\u003c/p\u003e\n\u003cp\u003eしかし、\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4492533877/?tag=ikemo3-www-22\"\u003eLIFE SHIFT(ライフ・シフト)\u003c/a\u003e\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4492533877/?tag=ikemo3-www-22\"\u003eLIFE SHIFT(ライフ・シフト)\u003c/a\u003e\nに、\n男女平等が必要な理由が明確に書かれていました。\u003c/p\u003e\n\u003cp\u003e男性の方が賃金が高い理由は、\n主に男性が就く職業が\u003cstrong\u003e働き方に柔軟性がない\u003c/strong\u003eからです。\u003c/p\u003e\n\u003cp\u003e逆に言えば、働き方が柔軟な社会にすることが、\n女性に取ってはチャンスをもたらし、男性にとっては助けになります。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4492533877/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4492533877.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4492533877/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nLIFE SHIFT(ライフ・シフト)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.gender.go.jp/about_danjo/law/kihon/9906kihonhou.html\"\u003e男女共同参画社会基本法 | 内閣府男女共同参画局\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Sshd",
    "url": "https://www.ikemo3.com/tags/sshd/",
    "contents": ""
  }, 
  {
    "title": "sshd: sftpサーバの設定",
    "url": "https://www.ikemo3.com/inverted/sshd/sftp/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e以下を満たすsftpサーバを作成します。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e公開鍵認証のみで、パスワード認証は許可しない。\u003c/li\u003e\n\u003cli\u003e専用のディレクトリのみアクセスさせる(chroot使用)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e以下が行われていること。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eユーザの作成\u003c/li\u003e\n\u003cli\u003e公開鍵の作成\u003c/li\u003e\n\u003cli\u003e公開鍵のコピー(\u003ccode\u003essh-copy-id\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCentOS 7.4で確認しています。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003ch3 id=\"パスワード認証を無効化\"\u003eパスワード認証を無効化\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003e/etc/ssh/sshd_config\u003c/code\u003e の\u003cstrong\u003e最後\u003c/strong\u003eに、以下の行を追加してください\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eMatch User sftp-user\nPasswordAuthentication no\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"chroot対応\"\u003eChroot対応\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eMatch User sftp-user\u003c/code\u003eの後のブロックに、以下の設定を追加してください。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eChrootDirectory /var/ftp/sftp-user\nForceCommand internal-sftp\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eまとめると以下のようになります\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eMatch User sftp-user\n    PasswordAuthentication no\n    ChrootDirectory /var/ftp/sftp-user\n    ForceCommand internal-sftp\n\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e「Match行にあるすべての条件が満たされた場合、これ以降の設定項目は次のMatch指令が現れるまでグローバルな設定よりも優先されます。」のため。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e空白によるインデントは見やすくするためです。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ビール",
    "url": "https://www.ikemo3.com/dic/beer/",
    "contents": "\u003ch2 id=\"ビールとは\"\u003eビールとは\u003c/h2\u003e\n\u003cp\u003eアルコール飲料です。\u003c/p\u003e\n\u003ch2 id=\"苦味が美味しいという謎\"\u003e苦味が美味しいという謎\u003c/h2\u003e\n\u003cp\u003e自分はお酒はだいたい飲めるのですが、ビールだけは基本的に受け付けません。\nあの苦味がどうしても受け付けられません。\nブラックコーヒーとかは大丈夫なのですが。\u003c/p\u003e\n\u003cp\u003eそれより謎なのは、ビールの宣伝を見ると、\nなぜか「苦味」を強調したものが多い点です。\n他の食べ物や飲み物、例えばゴーヤやコーヒーではありえません。\u003c/p\u003e\n\u003cp\u003e「子供の味覚」といいますが、子供のほうが味覚が敏感なんですよね。\u003c/p\u003e\n\u003ch2 id=\"白ビールは例外\"\u003e白ビールは例外\u003c/h2\u003e\n\u003cp\u003eただ、自分が飲めるビールがあります。\nそれは、\u003ca href=\"/dic/white-beer/\"\u003e白ビール\u003c/a\u003eです。\n店で見かけたらよく買っていますが、あまりハズレがないです。\u003c/p\u003e\n\u003cp\u003eただ、大手メーカーの製品は「苦味＝美味しい」という価値観で\n作られたものが多いですね。\u003c/p\u003e\n\u003ch2 id=\"酒税法のシンプル化\"\u003e酒税法のシンプル化\u003c/h2\u003e\n\u003cp\u003e発泡酒や第三のビールという税金逃れのためだけの制度はさっさと廃止すべきと\n以前書いたのですが\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、予想通り、酒税法が見直され、よりシンプルになりました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.mof.go.jp/tax_policy/tax_reform/outline/fy2017/explanation/index.html\"\u003e平成29年度税制改正の解説 : 財務省\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.mof.go.jp/tax_policy/tax_reform/outline/fy2017/explanation/pdf/p0919-0950.pdf\"\u003e酒税法等の改正(PDF)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e「酒税法等の改正」に「また、こうした取組は、国内の酒類全体の消費が減少傾向にある中で、ビールメーカーがビール系飲料の税率格差を意識して、海外ではビールと認められない新ジャンルの製造・販売に貴重な経営資源を投入している状況を改め、海外にも通用するビールの開発競争を促し、ビール産業の国際競争力の強化につなげていくという産業政策の観点からも重要であるとの指摘もありました。」と書いてます。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこれは知ってたんですが、ビールの定義も変わるようです。\nまあ、これまでの定義の方がおかしかったわけですが。。。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.nta.go.jp/taxes/sake/senmonjoho/kaisei/mokuji.htm\"\u003e酒税関係法令等の改正｜酒税｜国税庁\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.nta.go.jp/taxes/sake/senmonjoho/kaisei/aramashi2017/index.pdf\"\u003e酒税法等の改正のあらまし(PDF)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e具体的に何が変わったかというと、原料が以下のように追加されました。\n\u003ca href=\"http://elaws.e-gov.go.jp/search/elawsSearch/elaws_search/lsg0500/detail?lawId=337CO0000000097\"\u003e酒税法施行令\u003c/a\u003e 第六条より。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e果実（果実を乾燥させ、若しくは煮つめたもの又は濃縮させた果汁を含む。）又はコリアンダーその他の財務省令で定める香味料\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ca href=\"http://elaws.e-gov.go.jp/search/elawsSearch/elaws_search/lsg0500/detail?lawId=337M50000040026\"\u003e酒税法施行規則\u003c/a\u003e 第四条より(数字を漢数字から変更)。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eこしよう、シナモン、クローブ、さんしようその他の香辛料又はその原料\u003c/li\u003e\n\u003cli\u003eカモミール、セージ、バジル、レモングラスその他のハーブ\u003c/li\u003e\n\u003cli\u003eかんしよ、かぼちやその他の野菜（野菜を乾燥させ、又は煮つめたものを含む。）\u003c/li\u003e\n\u003cli\u003eそば又はごま\u003c/li\u003e\n\u003cli\u003e蜂蜜その他の含糖質物、食塩又はみそ\u003c/li\u003e\n\u003cli\u003e花又は茶、コーヒー、ココア若しくはこれらの調製品\u003c/li\u003e\n\u003cli\u003eかき、こんぶ、わかめ又はかつお節\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eベルギービールに対する酷い仕打ちがこれで解消されることになりました。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://web.archive.org/web/20151119022851/https://nextstep.shogizuki.com/2015/05/blog-post_4.html\"\u003eFrom NeXT To Mac: ビールは減税すべき\u003c/a\u003eより。そのうち復活させるかも。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "タスク管理: 停滞から脱出する方法",
    "url": "https://www.ikemo3.com/inverted/task-management/escape-from-stagnation/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e何もやりたいことがない、タスクが進まないときの対処法です。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e作業をとにかく分解する。\u003c/p\u003e\n\u003cp\u003e「仕事に追われない仕事術 マニャーナの法則・完全版」のCHAPTER 09に以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003e時間がないときや抵抗感が大きい時には、タスクの分解がすぐに取りかかる有効な手段\u003c/strong\u003eになります。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003chr\u003e\n\u003cp\u003eあともう一つ有効なのが、\u003cstrong\u003eタスクの並びかえ\u003c/strong\u003eです。\n手を付けたほうが良さそうなものから並び替えます。\nただし、これは「優先度」ではありません。\nこの考え方は\u003ca href=\"/dic/taskchute/\"\u003eTaskChute\u003c/a\u003e的かなぁと思いますが、\n手元に資料がないので、引用はまた今度。。。\u003c/p\u003e\n\u003ch2 id=\"参考資料\"\u003e参考資料\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4799319809/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4799319809.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4799319809/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n仕事に追われない仕事術 マニャーナの法則・完全版\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "暗黙知の形式知化",
    "url": "https://www.ikemo3.com/inverted/knowledge-management/implicit-knowledge-to-explicit-knowledge/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e頭のなかにある知識(暗黙知)を、明文化する(形式知)方法です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003eこの手順作成自体が、形式知化の一環です。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e何かを実行する前に、その手順を書く。\n\u003cul\u003e\n\u003cli\u003eやっていることは全て書く。\u003c/li\u003e\n\u003cli\u003e判断したことも全て書く。\u003c/li\u003e\n\u003cli\u003eなるべく細かく書く。\u003c/li\u003e\n\u003cli\u003e箇条書きで書く。\u003c/li\u003e\n\u003cli\u003e最初から完璧なものは求めない。\n\u003cul\u003e\n\u003cli\u003e汎用的な書き方を求めない。\u003c/li\u003e\n\u003cli\u003e「たぶん」でも構わない。\u003c/li\u003e\n\u003cli\u003e書いたものをいい加減だと批判しない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e実行して、問題がある箇所を修正する。\u003c/li\u003e\n\u003cli\u003e作業をするたびに改訂して、完成度を上げていく。\n\u003cul\u003e\n\u003cli\u003e間違いがあるところは修正する。\u003c/li\u003e\n\u003cli\u003e曖昧さをなくしていく。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eある程度手順が固まったら、他の人に作業してもらう。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e他の人が作業できるようになったら、形式知になったと言えます。\nあとは以下のように効率化していくといいかと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e無駄な手順を削除する。\u003c/li\u003e\n\u003cli\u003e手順を組み替える。\u003c/li\u003e\n\u003cli\u003e手順を自動化する。\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "AppleScript",
    "url": "https://www.ikemo3.com/manual/applescript/",
    "contents": "\u003ch2 id=\"アクセシビリティの設定\"\u003eアクセシビリティの設定\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003eシステム環境設定\u003c/code\u003eを開く。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eセキュリティとプライバシー\u003c/code\u003eを開く。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eアクセシビリティ\u003c/code\u003eを開く。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eスクリプトエディタ\u003c/code\u003eを追加する。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eAutomator\u003c/code\u003eも追加するとよい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e実際は、スクリプトエディタ実行時にガイドされる。\u003c/p\u003e\n\u003ch2 id=\"コメント\"\u003eコメント\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e1行コメント\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-\u003c/code\u003e または \u003ccode\u003e#\u003c/code\u003e から始まる行\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"マウスを操作する方法\"\u003eマウスを操作する方法\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.bluem.net/en/projects/cliclick/\"\u003eCliclick\u003c/a\u003eを入れて(Homebrewでも可能)、\n以下のように入力する(x座標20、y座標60の場合)。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003edo shell script \u0026#34;/usr/local/bin/cliclick c:20,60\u0026#34;\n\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://applescript.wikia.com/wiki/Comments\"\u003eComments | AppleScript Tutorial Wiki | FANDOM powered by Wikia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "CentOS: 自動アップデート(yum-cron)の設定方法",
    "url": "https://www.ikemo3.com/inverted/centos/auto-update/",
    "contents": "\u003ch2 id=\"自動アップデートyum-cron\"\u003e自動アップデート(yum-cron)\u003c/h2\u003e\n\u003cp\u003e以下の\u003ca href=\"/dic/ansible/\"\u003eAnsible\u003c/a\u003e Playbookを実行する。\nただし、単にアップデートをダウンロードするだけで、\u003cstrong\u003e自動適用は行いません\u003c/strong\u003e\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003ePlaybookの内容は以下になります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eyum-cronパッケージをダウンロード\u003c/li\u003e\n\u003cli\u003e/etc/yum/yum-cron.conf もしくは /etc/yum/yum-cron-hourly.conf の以下の場所を変更\n\u003cul\u003e\n\u003cli\u003eemit_via: \u0026ldquo;email\u0026rdquo; にする\u003c/li\u003e\n\u003cli\u003eemail_to: メールアドレス。例は\u0026rsquo;\u003ca href=\"mailto:yum@example.com\"\u003eyum@example.com\u003c/a\u003e'\u003c/li\u003e\n\u003cli\u003erandom_sleep: デフォルトが360(起動されてから0～360分スリープ)なので、適当な数字に変更する。例は30分。\n\u003cul\u003e\n\u003cli\u003e多数のサーバを抱えている場合は、アップデートを分散させるために大きい数字を指定すると良い。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003einstall yum-cron\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003eyum\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ename=yum-cron\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003echange email_to\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003elineinfile\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003edest\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e/etc/yum/yum-cron.conf\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003eregexp\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e^email_to\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003eline\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;email_to = yum@example.com\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003echange emit_via\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003elineinfile\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003edest\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e/etc/yum/yum-cron.conf\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003eregexp\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e^emit_via\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003eline\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;emit_via = email\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003echange random_sleep\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003elineinfile\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003edest\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e/etc/yum/yum-cron.conf\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003eregexp\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e^random_sleep\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003eline\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;random_sleep = 30\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e内容をチェックしてから適用したいため。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "JavaScript: 日付をフォーマットする",
    "url": "https://www.ikemo3.com/inverted/javascript/format-date/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e日付をYYYY/MM/DD形式などに変換したい。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e地道に頑張る\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://momentjs.com/\"\u003eMoment.js\u003c/a\u003eを使う\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e理由がなければMoment.jsを使うほうが楽ですね。\u003c/p\u003e\n\u003ch3 id=\"地道に頑張る方法\"\u003e地道に頑張る方法\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003egetYMD\u003c/span\u003e()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003enow\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e Date();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eyear\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003enow\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003egetFullYear\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emonth\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003enow\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003egetMonth\u003c/span\u003e() \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003edate\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003enow\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003egetDate\u003c/span\u003e();\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emonthStr\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;0\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emonth\u003c/span\u003e).\u003cspan style=\"color:#a6e22e\"\u003eslice\u003c/span\u003e(\u003cspan style=\"color:#f92672\"\u003e-\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003edateStr\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e (\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;0\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003edate\u003c/span\u003e).\u003cspan style=\"color:#a6e22e\"\u003eslice\u003c/span\u003e(\u003cspan style=\"color:#f92672\"\u003e-\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eyear\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;/\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emonthStr\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;/\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003edateStr\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Nintendo Switch",
    "url": "https://www.ikemo3.com/manual/nintendo-switch/",
    "contents": "\u003ch2 id=\"電源オフ\"\u003e電源オフ\u003c/h2\u003e\n\u003cp\u003e電源ボタンを3秒間押し続けるとメニューが出る。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://support.nintendo.co.jp/app/answers/detail/a_id/33801\"\u003e【Switch】本体の電源をOFFにするにはどうすればよいですか？\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"microsd\"\u003emicroSD\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.nintendo.co.jp/support/switch/data_management/microsdcard/index.html\"\u003emicroSDカードについて｜Nintendo Switch サポート情報｜Nintendo\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e「高速なmicroSDカード」を推奨。基準はこれ。\n\u003cul\u003e\n\u003cli\u003eUHS-I(Ultra High Speed Phase I)対応\u003c/li\u003e\n\u003cli\u003e読み込み速度 60〜95MB/秒\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ascii.jp/elem/000/001/631/1631925/\"\u003eASCII.jp：Nintendo Switchのロードが爆速になるmicroSDカードが凄かった (1/2)｜プリンストンのデジギア道\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e公称読み出し95MB/sのSDカードで起動時間を調査。結構効果出てる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"joy-conストラップの取り付け取り外し方法\"\u003eJoy-Conストラップの取り付け・取り外し方法\u003c/h2\u003e\n\u003cp\u003e本体とストラップの\u003ccode\u003e+\u003c/code\u003eまたは\u003ccode\u003e-\u003c/code\u003eを合わせること。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.nintendo.co.jp/support/switch/controller/joycon/joyconstrap.html\"\u003eJoy-Conストラップの取り付け/取り外し｜Nintendo Switch サポート情報｜Nintendo\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"取り付け方法\"\u003e取り付け方法\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e「+」「-」のマークが合っていることを確認\u003c/li\u003e\n\u003cli\u003eスライドロックが解除されていることを確認\u003c/li\u003e\n\u003cli\u003eレールに沿ってスライド\u003c/li\u003e\n\u003cli\u003eスライドロックをかける\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"取り外し方法\"\u003e取り外し方法\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eスライドロックを外す\n\u003cul\u003e\n\u003cli\u003e紐をスライドロックに引っ掛けるといいかも\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e本体を下に引く\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"間違って逆向きにセットした場合の取り外し方法\"\u003e間違って逆向きにセットした場合の取り外し方法\u003c/h3\u003e\n\u003cp\u003e本質的には手順が上下逆になっただけだが、固くなっているぶん余分な作業が必要。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eスライドロックを外す\u003c/li\u003e\n\u003cli\u003e紐をスライドロックに引っ掛け、手を紐に通す\u003c/li\u003e\n\u003cli\u003e本体を上に引く\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "テクノロジスト",
    "url": "https://www.ikemo3.com/dic/technologist/",
    "contents": "\u003ch2 id=\"テクノロジストとは\"\u003eテクノロジストとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eが好んで使った言葉で、\n知識労働と肉体労働の両方を使う人たちのことを指します。\u003c/p\u003e\n\u003cp\u003e「明日を支配するもの」5章 知識労働の生産性が社会を変える p178より、\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eテクノロジストには、きわめて高度の知識を使う人たちがいる。\n脳内動脈瘤の恐れのある切除手術の前には、\n高度の知識を要する事前診断に数時間をかける。\n手術の最中にも、高度の理論的な知識と判断を必要とする。\nしかし、手術自体は肉体労働である。\n迅速性、正確性、規格性が要求される反復的な動作からなる肉体労働である。\nしかも、テイラーの手法によって分析し、組み立て、\n身につけるべき肉体労働である。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eその直後に、「知識が決定的に重要ではあっても、肉体労働のほうが中心となる人たちもいる」例を挙げています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eたとえば事務員であり、その後継たるコンピュータのオペレーターである。\n彼らは、少なくとも読み書きという、経験では身につけられない知識を必要とする。\n彼らの仕事は、肉体労働が中心であって、知識の部分は小さい。\nしかし、たとえ小さくても、それらの知識は不可欠である。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"ほとんどの労働者はテクノロジスト\"\u003eほとんどの労働者はテクノロジスト\u003c/h2\u003e\n\u003cp\u003eこの定義によれば、テクノロジストでない職業の方が稀です。\n純粋理論学者は例外のようですが、日本では製造業でもカイゼン活動など、\n知識を必要とされる仕事がほとんどで、単純作業のみの仕事はほとんどありません。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300720/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478300720.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300720/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nテクノロジストの条件 (はじめて読むドラッカー (技術編))\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "CentOS",
    "url": "https://www.ikemo3.com/manual/centos/",
    "contents": "\u003ch2 id=\"パッケージ\"\u003eパッケージ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://mirror.centos.org/centos/7/\"\u003eCentOS 7\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/bezeklik/items/9766003c19f9664602fe\"\u003eyumリポジトリ追加リスト 完全版 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"yum\"\u003eyum\u003c/h2\u003e\n\u003ch3 id=\"パッケージの再インストール\"\u003eパッケージの再インストール\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eyum reinstall \u0026lt;パッケージ名\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"ダウンロードが遅い場合のチェック項目\"\u003eダウンロードが遅い場合のチェック項目\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/toshiro3/items/11a97ac67d65cf94ae91\"\u003eyumのダウンロードが遅い事象に対処する - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"vmなどでnicの名前を固定したいとき\"\u003eVMなどでNICの名前を固定したいとき\u003c/h2\u003e\n\u003cp\u003e以下の最後に書かれているものがベストです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/ngyuki/items/ab419688bc9906add97d\"\u003eCentOS 6 の NIC の名前を固定する方法いろいろ - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"centos-7ntpパッケージの変更\"\u003e(CentOS 7)NTPパッケージの変更\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echronyに変わっている。ntpdも使えるが、自動起動しない。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/yunano/items/7883cf295f91f4ef716b\"\u003e新しいNTPクライアント＆サーバ、chrony - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"logrotate\"\u003elogrotate\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecronでなくanacronで動く\u003c/li\u003e\n\u003cli\u003e実行タイミングは3～22時の間\u003c/li\u003e\n\u003cli\u003eよって、例えば01:00に実行したい場合は以下のようにする必要がある。\n\u003cul\u003e\n\u003cli\u003e/etc/logrotate.conf をコピーして書き換える\u003c/li\u003e\n\u003cli\u003ecronで \u003ccode\u003e/usr/sbin/logrotate -f /etc/logrotate-custom.conf\u003c/code\u003e のように、カスタマイズした設定ファイルを読み込ませる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/kiimiiis/items/b9bc67922fb0baf37a1e\"\u003e【logrotateの実行タイミング】/etc/crontabに無い時の確認方法 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ameblo.jp/u-kun-win/entry-11957537789.html\"\u003eCentOSで毎日0時にログローテーション | Ｕ君のブログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"grub\"\u003egrub\u003c/h2\u003e\n\u003cp\u003eCentOS 7.3ではgrubのデフォルトがdebugになってしまっている問題があった。\nチケットはクローズしてないが解決済み?\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://bugs.centos.org/view.php?id=12425\"\u003e0012425: Debug kernel is set as default on upgrade to CentOS 7.3 (build 1611) even when debug kernel is not present. - CentOS Bug Tracker\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e回避策としては、以下のコマンドを打てばよい。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egrubby --set-default\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e`\u003c/span\u003egrubby --default-kernel\u003cspan style=\"color:#e6db74\"\u003e`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこれは以下の2つのコマンドの組み合わせ。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 現在使用しているカーネルを表示\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egrubby --default-kernel\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# デフォルトカーネルの設定\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egrubby --set-default\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e/boot/vmlinuz-***\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e/dev/nullにリンクするとか「正しくない」方法は取らない方がいいでしょうね。。。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "rsync",
    "url": "https://www.ikemo3.com/manual/rsync/",
    "contents": "\u003ch2 id=\"オプション\"\u003eオプション\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-a\u003c/code\u003e: アーカイブモード。-rlptgoDオプションと同じ\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-r\u003c/code\u003e: 再帰的に処理する\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-l\u003c/code\u003e: シンボリックリンクを同じにする\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-p\u003c/code\u003e: パーミッションを同じにする\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-t\u003c/code\u003e: 更新時刻を同じにする\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-g\u003c/code\u003e: グループを同じにする\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-o\u003c/code\u003e: オーナーを同じにする\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-D\u003c/code\u003e: \u0026ndash;devices \u0026ndash;specials と同じ\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--devices\u003c/code\u003e: デバイスファイルを同じにする\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--specials\u003c/code\u003e: 特殊ファイル(ソケットなど)を同じにする\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-z\u003c/code\u003e: 通信を圧縮する\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-u\u003c/code\u003e: コピー先の方が新しい場合スキップする\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Typora",
    "url": "https://www.ikemo3.com/manual/typora/",
    "contents": "\u003ch2 id=\"設定画面の出し方\"\u003e設定画面の出し方\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMac: メニューから \u003ccode\u003eTypora→Prefernces\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWindows: メニューから \u003ccode\u003eFile→Preferences\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"設定内容windows\"\u003e設定内容(Windows)\u003c/h2\u003e\n\u003cp\u003eまだ整理していませんが、今の設定を載せておきます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAppearance\n\u003cul\u003e\n\u003cli\u003eWindows Style: System native\u003c/li\u003e\n\u003cli\u003eStatus Bar: \u003ccode\u003eShow status bar\u003c/code\u003eはオン\u003c/li\u003e\n\u003cli\u003eFont Size: \u003ccode\u003eAuto\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eOutline Panel: \u003ccode\u003eCollapsible Outline Panel\u003c/code\u003eはオン\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMarkdown\n\u003cul\u003e\n\u003cli\u003eSyntax Support\n\u003cul\u003e\n\u003cli\u003eInline math: オン\u003c/li\u003e\n\u003cli\u003eSubscript: オフ\u003c/li\u003e\n\u003cli\u003eSuperscript: オフ\u003c/li\u003e\n\u003cli\u003eHighlight: オフ\u003c/li\u003e\n\u003cli\u003eDiagrams: オン\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSyntax Preference\n\u003cul\u003e\n\u003cli\u003eHeading Style: \u003ccode\u003eatx (#)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUnordered List: \u003ccode\u003e*\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eCode Fences\n\u003cul\u003e\n\u003cli\u003eDisplay line number: オフ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMath Blocks\n\u003cul\u003e\n\u003cli\u003eAuto Numbering Math Equations: オフ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEditor\n\u003cul\u003e\n\u003cli\u003eAuto save: オフ\u003c/li\u003e\n\u003cli\u003eSave without asking when switch files on sidebar: オフ\u003c/li\u003e\n\u003cli\u003eAuto Pair\n\u003cul\u003e\n\u003cli\u003eAuto pair brackets and quoted: オン\u003c/li\u003e\n\u003cli\u003eAuto pair common markdown symbols: オフ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eLive Rendering\n\u003cul\u003e\n\u003cli\u003eDisplay markdown source for simple blocks on focus: オフ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEmoji Autocomplete: \u003ccode\u003eTrigger automatically\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eImage Insert\n\u003cul\u003e\n\u003cli\u003eUse relative path if possible: オン\u003c/li\u003e\n\u003cli\u003eAllow copy images to given folder: オフ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault Copy Behavior\n\u003cul\u003e\n\u003cli\u003eCopy markdown source by default: オン\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eIndent Size on Save: 2\u003c/li\u003e\n\u003cli\u003eDefault Line Ending: LF(Unix Style)\u003c/li\u003e\n\u003cli\u003eSpell Check: オフ\u003c/li\u003e\n\u003cli\u003eTypewriter Mode: Always keep caret in middle of screen when typewriter mode is enabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "ファイル: スクリプトで書き換える",
    "url": "https://www.ikemo3.com/inverted/file/modify-file-by-script/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eファイルをスクリプトで書き換えたいときの手順です。\n基本的なことですがよく忘れるので。。。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eローカルの場合: \u003ccode\u003esed -i\u003c/code\u003eを使う(→\u003ca href=\"/manual/sed/\"\u003esed\u003c/a\u003e)。\n\u003cul\u003e\n\u003cli\u003e複雑な場合は\u003ca href=\"/dic/ruby/\"\u003eRuby\u003c/a\u003eなどのスクリプトで書く。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eリモートの場合: \u003ca href=\"/manual/ansible/\"\u003eAnsible\u003c/a\u003eを使う\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e「大根を正宗で切る」ようなものですが、だいたいこういうときは別の作業もしたいので。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Ansible + Vagrant + CentOS: パスワード認証を有効化する",
    "url": "https://www.ikemo3.com/inverted/ansible/enable-password-authentication/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://app.vagrantup.com/centos/boxes/7\"\u003eCentOS 7のVagrant box\u003c/a\u003eでは、\nデフォルトでパスワード認証が無効になってます。\nパスワード認証を有効にする方法を記載します\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003e以下のバージョンで確認してます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAnsible: 2.3.1\u003c/li\u003e\n\u003cli\u003eVagrant box centos/7: 1708.01\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003eAnsible Playbookに以下のタスクを追加します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ePasswordAuthentication yes\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003elineinfile\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003epath\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e/etc/ssh/sshd_config\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003eline\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ePasswordAuthentication yes\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003eregexp\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e^PasswordAuthentication\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003evalidate\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e/usr/sbin/sshd -T -f %s\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003enotify\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003erestart sshd\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eそして、以下のハンドラを定義します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003erestart sshd\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003eservice\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ename=sshd state=restarted\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eもちろん公開鍵認証がベストなのは承知の上です。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Jenkins: 外部からジョブを起動する",
    "url": "https://www.ikemo3.com/inverted/jenkins/build-from-external/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eJenkinsで、外部からスクリプトで自動起動したい場合です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAPIトークンが発行されていること。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003eパラメータありの場合は以下になります。\nパラメータが複数ある場合は\u003ccode\u003e\u0026amp;\u003c/code\u003eでつなげてください。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ecurl -X POST -u \u0026lt;ユーザID\u0026gt;:\u0026lt;APIトークン\u0026gt; \u0026#34;http://host/job/\u0026lt;フォルダ名\u0026gt;/job/\u0026lt;ジョブ名\u0026gt;/buildWithParameters?\u0026lt;パラメータ名\u0026gt;=\u0026lt;パラメータ値\u0026gt;\u0026#34;\n\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-X\u003c/code\u003e: リクエストメソッド\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-u\u003c/code\u003e: 認証情報を指定\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "バッチファイル",
    "url": "https://www.ikemo3.com/manual/batch-file/",
    "contents": "\u003ch2 id=\"ファイルフォーマット\"\u003eファイルフォーマット\u003c/h2\u003e\n\u003cp\u003e必ずエンコーディングは\u003ccode\u003eShift-JIS\u003c/code\u003e、改行コードは\u003ccode\u003eCR+LF\u003c/code\u003eにすること。\n改行コードが\u003ccode\u003eLF\u003c/code\u003eのみだと途中で動かなくなる。\u003c/p\u003e\n\u003ch2 id=\"よく使うコマンド\"\u003eよく使うコマンド\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecopy \u0026lt;コピー元ファイル\u0026gt; \u0026lt;コピー先ディレクトリ\u0026gt;\u003c/code\u003e: ファイルのコピー\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epushd \u0026lt;移動先ディレクトリ\u0026gt;\u003c/code\u003e: ディレクトリの移動\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecd\u003c/code\u003e コマンドだと、スクリプトが終わったときにディレクトリが変更されたままになってしまう。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epause\u003c/code\u003e: 入力を待つ。スクリプトの最後に書くのが良い。\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Google Chrome: 証明書の中身を表示",
    "url": "https://www.ikemo3.com/inverted/google-chrome/show-certificate-link/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/google-chrome/\"\u003eGoogle Chrome\u003c/a\u003eではデフォルトでは証明書の中身が表示されません。\nDeveloper Toolsを表示すれば可能ですが、もっと確認しやすくする方法があります。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003eVersion 62.0.3202.94で確認しました。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eURLに\u003ccode\u003echrome://flags/#show-cert-link\u003c/code\u003eと入力\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e有効にする\u003c/code\u003eリンクをクリック\u003c/li\u003e\n\u003cli\u003eGoogle Chromeを再起動する\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e表示方法は以下になります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eHTTPSを使ったページにアクセスする。\u003c/li\u003e\n\u003cli\u003eURLの\u003ccode\u003e保護された通信\u003c/code\u003eをクリック\u003c/li\u003e\n\u003cli\u003e証明書リンクが追加されている\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Vue.js",
    "url": "https://www.ikemo3.com/manual/vuejs/",
    "contents": "\u003ch2 id=\"インストール方法\"\u003eインストール方法\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e通常:\u003ccode\u003enpm install vue --save\u003c/code\u003e もしくは \u003ccode\u003enpm install vue@latest --save\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCSP版\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e: \u003ccode\u003enpm install vue@csp --save\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e1.0.28がベースなので古いです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"webpack\"\u003ewebpack\u003c/h2\u003e\n\u003cp\u003eデフォルトはランタイム限定ビルドが使われます\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e完全ビルドを使う場合は、webpack.config.jsに以下の設定が必要です(\u003ca href=\"/manual/webpack/config/resolve/\"\u003eresolve\u003c/a\u003e参照)。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003emodule\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eexports\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eresolve\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003ealias\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#a6e22e\"\u003evue\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;vue/dist/vue.js\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eentryに書かれているJSファイルでは以下のように記載します。\n他の方法は未検証です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eVue\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003erequire\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;vue\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"テンプレートにバインディングできる値\"\u003eテンプレートにバインディングできる値\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eJavaScript式、ただし以下の制限がある\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\n\u003cul\u003e\n\u003cli\u003e単一の式であること。\n\u003cul\u003e\n\u003cli\u003eif文などは使えない。三項演算子を使用。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eテンプレート式はサンドボックスで、Math や Date といったホワイトリストにあるグローバルオブジェクトだけアクセスできます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eeval()とかnew Function()を使わないバージョンです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/vuejs/vue/blob/dev/package.json\"\u003epackage.json\u003c/a\u003eのmainに\u0026quot;dist/vue.runtime.common.js\u0026quot;が記載されているため。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"https://jp.vuejs.org/v2/guide/syntax.html#JavaScript-%E5%BC%8F%E3%81%AE%E4%BD%BF%E7%94%A8\"\u003ehttps://jp.vuejs.org/v2/guide/syntax.html#JavaScript-%E5%BC%8F%E3%81%AE%E4%BD%BF%E7%94%A8\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "タスク管理",
    "url": "https://www.ikemo3.com/dic/task-management/",
    "contents": "\u003ch2 id=\"タスク管理とは\"\u003eタスク管理とは\u003c/h2\u003e\n\u003cp\u003e「やるべきこと」などを管理することです。\u003c/p\u003e\n\u003ch2 id=\"タスク管理は独立した領域ではない\"\u003e「タスク管理」は独立した領域ではない\u003c/h2\u003e\n\u003cp\u003e一般的には「タスク管理」と言いますが、\nタスク管理は独立した領域ではありません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eやるべきこと(ToDo)の管理\u003c/li\u003e\n\u003cli\u003eスケジュール管理\u003c/li\u003e\n\u003cli\u003e資料管理\u003c/li\u003e\n\u003cli\u003e整理術\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eなど、いろいろなものが混在しています。\u003c/p\u003e\n\u003ch2 id=\"自分の趣味\"\u003e自分の趣味\u003c/h2\u003e\n\u003cp\u003e自分にとって、タスク管理は、\n仕事とは関係なく自分の時間やお金を使うものです。\n2005年頃に\u003ca href=\"/dic/gtd/\"\u003eGTD\u003c/a\u003eと出会った頃からいろいろ試してみましたが、\nこの「タスク管理が趣味」という発想は2017年になって初めて気づきました。\u003c/p\u003e\n\u003cp\u003e逆に言えば、ほとんどの人にとっては、タスク管理は楽しくないことです。\nこのことに気づいた時に、ちょっと気が楽になりました。\u003c/p\u003e\n\u003ch2 id=\"todoで埋めてしまわない\"\u003eToDoで埋めてしまわない\u003c/h2\u003e\n\u003cp\u003eToDoを管理しないといけないのはもっともですが、\nToDoで埋めてしまわないことが重要です。\n休息のための時間は必要ですが、\n自分がコミットしていること(\u003ca href=\"/dic/commitment/\"\u003eコミットメント\u003c/a\u003e)と、\nそれ以外のことを区別する必要があります。\u003c/p\u003e\n"
  }, 
  {
    "title": "タスク管理",
    "url": "https://www.ikemo3.com/log/task-management/",
    "contents": "\u003ch2 id=\"scrapbox見直し\"\u003eScrapbox見直し\u003c/h2\u003e\n\u003cp\u003eScrapboxは快調に使っているのですが、\n他のが混じるのが好きじゃないのでいろいろ変更しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eストック情報は別プロジェクトに移動\u003c/li\u003e\n\u003cli\u003e「いつかやりたい」ものはDynalistに移動(試行)\u003c/li\u003e\n\u003cli\u003e日報はScrapboxとNoteshelf両方に書いていたが、Scrapboxは止めた。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e今の悩みは、プロジェクトリストをどう管理するかです。\nこれはNoteshelfが向いているとは思います。\nなぜなら、「順番に辿れる」「1つだけ見れる」ことが重要だからです。\nレビューのときにこれが重要なので。\u003c/p\u003e\n\u003cp\u003eただ、Noteshelfで手書きは難しいかもしれないので、\nちょっと悩みどころです。\u003c/p\u003e\n\u003ch2 id=\"現在使っているツール2018-06-27\"\u003e現在使っているツール(2018-06-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInbox: Gmailなど\n\u003cul\u003e\n\u003cli\u003eiPhoneではEmail Me、Macでは自作Chrome拡張から送る\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e時間管理: たすくま\n\u003cul\u003e\n\u003cli\u003eリマインダーも含む\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eスケジュール管理\n\u003cul\u003e\n\u003cli\u003eメイン: iCloud\u003c/li\u003e\n\u003cli\u003eサブ: Google Calendar\u003c/li\u003e\n\u003cli\u003eデータは2箇所にありますが、見るのは1つのアプリです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eアイデア管理: Noteshelf 2 for iPad\n* タスク管理とは別ノートにしています。\u003c/li\u003e\n\u003cli\u003eプロジェクト管理: Scrapbox\u003c/li\u003e\n\u003cli\u003eタスク管理: OmniFocus 3 for iOS\u003c/li\u003e\n\u003cli\u003eアクション管理: Noteshelf 2 for iPad\n\u003cul\u003e\n\u003cli\u003e方式はマニャーナの法則の「タスク・ダイアリー」形式。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e資料管理\n\u003cul\u003e\n\u003cli\u003eパブリック: Hugo(ここ)\u003c/li\u003e\n\u003cli\u003eプライベート: \u003ca href=\"https://esa.io/\"\u003eesa\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e会社: Hugo\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eほとんど使ってないもの\n\u003cul\u003e\n\u003cli\u003eEvernote: ライフログを除いて削除。\u003c/li\u003e\n\u003cli\u003eDynalist: Scrapboxの方が良さそうなので放置。\u003c/li\u003e\n\u003cli\u003ePocket: いろいろあるけどこちらも放置。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e「アクション管理」という言葉が出てきましたが、\nそれは検索したら見つけたこの記事からです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://jmatsuzaki.com/archives/10696\"\u003eアイデアとイベントとタスクとアクションの４つを明確に分けないと、タスクリストは崩壊する | jMatsuzaki\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"scrapboxを再開した\"\u003eScrapboxを再開した\u003c/h2\u003e\n\u003cp\u003e一旦は休止状態だった\u003ca href=\"/dic/scrapbox/\"\u003eScrapbox\u003c/a\u003eですが、再開しました。\n目的は以下の通り。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eこのサイトに置く前のドラフト\u003c/li\u003e\n\u003cli\u003eプロジェクト用資料\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eScrapboxは確かに便利なんですが、「まとめる」という引力が弱くて、\nつい放置しがちなんですよね。なのでフロー情報だけに絞るようにしています。\u003c/p\u003e\n\u003ch2 id=\"現在使っているツール2018-05-24\"\u003e現在使っているツール(2018-05-24)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInbox\n\u003cul\u003e\n\u003cli\u003eGmail(Email Meから送る)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e時間管理\n\u003cul\u003e\n\u003cli\u003eたすくま\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eタスク管理\n\u003cul\u003e\n\u003cli\u003eNoteshelf 2 for iPad\u003c/li\u003e\n\u003cli\u003e方式はマニャーナの法則の「タスク・ダイアリー」\n\u003cul\u003e\n\u003cli\u003e1年ほど前はOmniFocus + 紙で同じことをやってたのですが、iPadなら紙が無駄にならない分安心できます。\u003c/li\u003e\n\u003cli\u003eあふれた分、コミットしてないものは、別ノートに1ページ1アイデアで記載して寝かせてます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eリマインダー\n\u003cul\u003e\n\u003cli\u003eたすくま\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eカレンダー: 変更なし\u003c/li\u003e\n\u003cli\u003e資料管理\n\u003cul\u003e\n\u003cli\u003eパブリック: Hugo(ここ)\u003c/li\u003e\n\u003cli\u003eプライベート: \u003ca href=\"https://esa.io/\"\u003eesa\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e会社: Hugo\u003c/li\u003e\n\u003cli\u003eEvernoteはライフログを除いて削除。\u003c/li\u003e\n\u003cli\u003eDynalistを試したけどうまく使えなさそうなので放置中。\u003c/li\u003e\n\u003cli\u003ePocketにいろいろあるけどこちらも放置。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"現在使っているツール2018-01-19\"\u003e現在使っているツール(2018-01-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInbox\n\u003cul\u003e\n\u003cli\u003e自作(Bullet Journal風, \u003ca href=\"https://esa.io/\"\u003eesa\u003c/a\u003e使用)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/simplenote/\"\u003eSimplenote\u003c/a\u003e(一時保存用)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e時間管理\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/taskchute-cloud/\"\u003eTaskChute Cloud\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eタスク管理\n\u003cul\u003e\n\u003cli\u003e自作(Bullet Journal風, \u003ca href=\"https://esa.io/\"\u003eesa\u003c/a\u003e使用)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eリマインダー\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/due/\"\u003eDue\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eカレンダー\n\u003cul\u003e\n\u003cli\u003eメイン: iCloud\u003c/li\u003e\n\u003cli\u003eサブ: Google Calendar\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e資料管理\n\u003cul\u003e\n\u003cli\u003eパブリック: Hugo\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003eプライベート: \u003ca href=\"https://esa.io/\"\u003eesa\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e会社: Hugo\u003c/li\u003e\n\u003cli\u003eEvernoteにも色々置いていますが、ライフログを除いて削除予定。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"その他使っているツール\"\u003eその他使っているツール\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWebブラウザ\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/google-chrome/\"\u003eGoogle Chrome\u003c/a\u003e(Mac, Windows)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/safari/\"\u003eApple Safari\u003c/a\u003e(iOS, Mac)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eテキストエディタ\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/vim/\"\u003eVim\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmEditor(会社)\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e今見ているこのサイトです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"/dic/ibm-japan/\"\u003e日本IBM\u003c/a\u003eの研修で使って気に入ったので、個人で買ったライセンスを使ってます。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "データベース",
    "url": "https://www.ikemo3.com/tags/database/",
    "contents": ""
  }, 
  {
    "title": "コマンドラインインタフェース",
    "url": "https://www.ikemo3.com/dic/cli/",
    "contents": "\u003ch2 id=\"コマンドラインインタフェースとは\"\u003eコマンドラインインタフェースとは\u003c/h2\u003e\n\u003cp\u003eいま多くのコンピュータは、マウスやタッチパネルを使っていますが、\nそれとは異なり、キーボードを使った操作をメインとするユーザインタフェースです。\n慣れが必要ですが、パワーユーザ中心に今でも広く使われています。\u003c/p\u003e\n\u003ch2 id=\"どの用語が正しい\"\u003eどの用語が正しい?\u003c/h2\u003e\n\u003cp\u003eこのタイトルは「コマンドラインインタフェース(CLI)」としていますが\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\n同様の意味のものはいくつかあります\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eキャラクタユーザインタフェース(CUI)\u003c/li\u003e\n\u003cli\u003eコンソールユーザインタフェース(CUI)\u003c/li\u003e\n\u003cli\u003eコマンドライン・インタフェース(CLI)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e検索すると一部で「CUIという名称は日本だけ」と出てきますが、\n実際には英語圏でも広く使われています\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eただ自分は、Character User Interfaceという単語は使いません。\nなぜなら、Graphical User Interfaceの\u0026quot;Graphical\u0026quot;は形容詞なのに対し、\nCharacterは名詞なので、文法的に変だからです。\nなので、Character-based User Interfaceという言い方を好みます。\u003c/p\u003e\n\u003cp\u003eただ、英語圏のものを検索するときはCLIでないと引っかからないことが多いので、\n略称はCLIを良く使います。\u003c/p\u003e\n\u003ch2 id=\"text-based-user-intefaceもある\"\u003eText-based User Intefaceもある\u003c/h2\u003e\n\u003cp\u003eCUIと似たものに、Text-based User Interface(TUI)があります。\nCUIがキーボードコマンドを入力し、慣れが必要なのに対し、\nTUIはキーボードは使いますが、GUIのように直感的に使えるようになっています。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e「キャラクタユーザインタフェース」にしてたのですが、「コマンドラインインタフェース」に変更しました。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://en.wikipedia.org/wiki/Command-line_interface\"\u003eCommand-line interface - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e少なくともGoogle検索では英語で多くのサイトが引っかかります。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "地名",
    "url": "https://www.ikemo3.com/tags/place/",
    "contents": ""
  }, 
  {
    "title": "macOS: 初期設定",
    "url": "https://www.ikemo3.com/inverted/macos/initial/",
    "contents": "\u003ch2 id=\"キーボードの設定\"\u003eキーボードの設定\u003c/h2\u003e\n\u003ch3 id=\"ctrl--kでカナに変換する設定\"\u003eCtrl + Kでカナに変換する設定\u003c/h3\u003e\n\u003cp\u003eシステム環境設定→キーボード→入力ソース→Windows風のキー操作をオフにする。\u003c/p\u003e\n\u003ch3 id=\"ctrl--spaceで日本語変換モードに入らない設定\"\u003eCtrl + Spaceで日本語変換モードに入らない設定\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"/dic/intellij-idea/\"\u003eIntelliJ IDEA\u003c/a\u003eでコード補完機能を出す\nキーバインドと被っているため\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、オフにする。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e「システム環境設定」を開く\u003c/li\u003e\n\u003cli\u003e2段目の「キーボード」を開く\u003c/li\u003e\n\u003cli\u003e3列目の「ショートカット」を開く\u003c/li\u003e\n\u003cli\u003e入力ソース→前の入力ソースを選択のチェックを外す\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"touch-bar\"\u003eTouch Bar\u003c/h3\u003e\n\u003cp\u003eFnキーを押した時の挙動は「F1、F2などのキーを表示」にする。\n理由は、\u003ca href=\"/dic/intellij-idea/\"\u003eIntelliJ IDEA\u003c/a\u003eで、ファンクションキーを多用するから。\nまた、Control Stipはそれほど使わないと思われるため。\nアプリケーションごとに設定できればベストですが。。。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e通常は入力してたら勝手に出ますが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Productivity",
    "url": "https://www.ikemo3.com/tags/productivity/",
    "contents": ""
  }, 
  {
    "title": "SELinux",
    "url": "https://www.ikemo3.com/dic/selinux/",
    "contents": "\u003ch2 id=\"selinuxとは\"\u003eSELinuxとは\u003c/h2\u003e\n\u003cp\u003eSecurity-Enhanced Linuxの略です。\u003c/p\u003e\n\u003ch2 id=\"selinuxをオフインフラエンジニアとして恥\"\u003eSELinuxをオフ＝インフラエンジニアとして恥\u003c/h2\u003e\n\u003cp\u003e「よく分からないから」という理由でオフにされることがあるSELinuxですが、\n使ってみると、そんなに難しくないと分かりました。\n単にいいドキュメントがないだけで、本質的に難しいことはありません。\u003c/p\u003e\n\u003cp\u003e正直今でもオフにすることもあるのですが、\n今後こうなって欲しいというのを含めて、\nSELinuxをオフにするのは\u003cstrong\u003eインフラエンジニアとして恥\u003c/strong\u003eと書いておきます\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e自分の本業はプログラマーとアーキテクトなので、本当はインフラエンジニアではないんですけどね。。。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Technologist",
    "url": "https://www.ikemo3.com/tags/technologist/",
    "contents": ""
  }, 
  {
    "title": "静的サイトジェネレータ",
    "url": "https://www.ikemo3.com/dic/static-site-generator/",
    "contents": "\u003ch2 id=\"静的サイトジェネレータとは\"\u003e静的サイトジェネレータとは\u003c/h2\u003e\n\u003cp\u003eWebページをサーバ側で生成するためのツールです。\u003c/p\u003e\n\u003cp\u003e一般的なブログツールは、リクエストがあるたびに、ページを生成します。\nこれに対して、静的サイトジェネレータは、手元のマシンでページを生成します。\u003c/p\u003e\n\u003cp\u003eこのサイトも、\u003ca href=\"/dic/hugo/\"\u003eHugo\u003c/a\u003eという静的サイトジェネレータで構築されています。\u003c/p\u003e\n\u003ch2 id=\"メリット\"\u003eメリット\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e毎回生成する必要がないため、高速に表示される。\n\u003cul\u003e\n\u003cli\u003e「キャッシュ」といった仕組みが不要です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e表示するためのWebサーバ以外は不要なため、セキュリティの心配が少ない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"デメリット\"\u003eデメリット\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e動的に変わるページが作りにくい\n\u003cul\u003e\n\u003cli\u003e代わりに、JavaScriptや外部サイトを使用しているケースが多いです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"先祖返り\"\u003e先祖返り\u003c/h2\u003e\n\u003cp\u003eこの静的サイトジェネレータのことを知った時に、\n自分が昔(1998年頃)に作った日記システムを思い出しました。\u003c/p\u003e\n\u003cp\u003eそのシステムはXMLで日記を書いて、XSLTで変換してHTMLにしたものです。\nアイデアは気に入っていたのですが、XMLを書くのが大変なことと、\n実行に時間がかかるため、途中で別の日記システムに乗り換えました。\u003c/p\u003e\n"
  }, 
  {
    "title": "知識労働者の生産性を高める方法",
    "url": "https://www.ikemo3.com/theme/productivity/productivity-of-knowledge-workers/",
    "contents": "\u003ch2 id=\"知識労働は三種類ある\"\u003e知識労働は三種類ある\u003c/h2\u003e\n\u003cp\u003eプロフェッショナルの条件p61「Part2 1章 生産性をいかにして高めるか」によれば、\n\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eは知識労働を3つに分類しています。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300593/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478300593.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300593/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nプロフェッショナルの条件――いかに成果をあげ、成長するか (はじめて読むドラッカー (自己実現編))\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cblockquote\u003e\n\u003cp\u003e第一に、知識労働のいくつかにおいては、仕事の成果は純粋に質の問題である。\n(中略)\n第二に、質と量をともに成果とすべき知識労働が幅広く存在する。\n(中略)\n第三に、生命保険会社の保険金支払い、病院のベッドメーキングなど、その成果が肉体労働と同種の仕事が多数ある。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eドラッカーは、1.の例として、新薬の研究所を挙げています。\n世界を変える優れた新薬を出すことが、何より重視される仕事です。\n3.の例としては、生命保険会社の保険支払い、\n病院のベッドメーキングといった定型的な仕事を挙げています。\u003c/p\u003e\n\u003ch2 id=\"ほとんどの知識労働には作業労働がある\"\u003eほとんどの知識労働には「作業労働」がある\u003c/h2\u003e\n\u003cp\u003eまた、「知識労働のいくつかにおいては」と書かれていることから、\nドラッカーは「仕事の質だけの労働」が例外的で、\nほとんどの知識労働にとっては、成果に仕事の量が含まれると言っています。\u003c/p\u003e\n\u003cp\u003e例えば、プログラマーにとってプログラムの質は重要です。\nしかし、品質にこだわりすぎて、プログラムが完成しないと意味がありません。\nよって、プログラマーは質と量の両方の観点が必要です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eまた、大企業は一人一人のやることが細分化されていますが、\n中小企業やベンチャー企業の場合は1人がいろいろな仕事を担当しています。\nその中には、作業労働的な仕事が多く含まれています\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eよって、多くの知識労働者の仕事には、「作業労働」が含まれています。\u003c/p\u003e\n\u003ch2 id=\"作業労働の改善が生産性向上の近道\"\u003e「作業労働」の改善が生産性向上の近道\u003c/h2\u003e\n\u003cp\u003eドラッカーは、作業労働の生産性は容易に上げられると言っています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eまた、成果が質と量の両方を意味する仕事については、「何が役に立つか」を\n問うと同時に、仕事のプロセスを一つひとつ分析することが必要である。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e生産性向上は、作業を分解し、分析し、組み立て直すことによって実現できる。\n知識労働の生産性は、このように取り組むならば、容易に向上させられる。\n生産性は一挙に向上する。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eもちろん、何が役に立つかを考えることは重要です。\nしかし、生産性向上のためには、作業を分解し、分析し、\n組み立て直すというプロセスは欠かせません。\u003c/p\u003e\n\u003cp\u003eところが、この作業労働の改善をやっている人はほとんど見たことありません。\n製造業で絶え間ない改善が行われているのとは真逆です。\n日本は製造業の生産性が高く、知識労働の生産性が低いと言われますが。\nその根本的な原因は、この作業労働の改善を行っていないからです。\u003c/p\u003e\n\u003ch2 id=\"appleもプロセスを重視している\"\u003eAppleもプロセスを重視している\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003eは製品によるイノベーションを重視し、\n自由な社風だと思われていますが、\nそれは、必ずしもプロセスが不要ということではありません。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/dic/steve-jobs/\"\u003eスティーブ・ジョブズ\u003c/a\u003eも次のように言っています\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThe system is that there is no system.\nThat doesn\u0026rsquo;t mean we don\u0026rsquo;t have process.\nApple is a very disciplined company, and we have great processes.\nBut that\u0026rsquo;s not what it\u0026rsquo;s about. Process makes you more efficient.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこの引用はイノベーションに対する回答ですが、\nジョブズはプロセスを軽視したわけではありません。\nイノベーションと改善は、車の両輪のようなものです。\u003c/p\u003e\n\u003ch2 id=\"参考文献\"\u003e参考文献\u003c/h2\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300593/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478300593.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300593/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nプロフェッショナルの条件――いかに成果をあげ、成長するか (はじめて読むドラッカー (自己実現編))\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e実際は優秀なプログラマーほど作業量も多いですが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e自分も開発から保守まで多くの仕事をしています。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"https://en.wikiquote.org/wiki/Steve_Jobs#2000-04\"\u003eSteve Jobs - Wikiquote\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "電池",
    "url": "https://www.ikemo3.com/dic/battery/",
    "contents": "\u003ch2 id=\"電池とは\"\u003e電池とは\u003c/h2\u003e\n\u003cp\u003e電気を起こすものです。\u003c/p\u003e\n\u003ch2 id=\"マンガン電池の方が良いこともある\"\u003eマンガン電池の方が良いこともある\u003c/h2\u003e\n\u003cp\u003e一般的によく使う電池(充電池除く)はアルカリ電池ですが、\n使う用途によってはマンガン電池の方がいいようです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e休み休み使うと、電圧が回復するという特徴があります。小さな電流で休み休み使う機器に向いています。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"水銀を使った電池の状況\"\u003e水銀を使った電池の状況\u003c/h2\u003e\n\u003cp\u003e日本国内では、既に乾電池に水銀は使用されていません。\n輸入ものは分かりませんが\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e、まず見ることはないかと思います。\n2020年以降は、一部のボタン型電池を除いて、全面使用禁止になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.baj.or.jp/qa/about/15.html\"\u003e「水銀0」の表示をよく目にしますが、水銀を使っている電池があるのですか？ | 電池工業会\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.env.go.jp/chemi/tmms/tobira/riyo.html\"\u003e環境省_水銀の利用に関すること\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.baj.or.jp/qa/battery/04.html\"\u003eアルカリ乾電池とマンガン乾電池の違いは何ですか？ | 電池工業会\u003c/a\u003eより。ふりがなは取り除いています。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"http://www16.plala.or.jp/toy-hospital/index07/index075.html\"\u003e使用目的に合った電池の選び方\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.meti.go.jp/committee/kenkyukai/safety_security/minamata_jyouyaku/pdf/001_s05_00.pdf\"\u003ehttp://www.meti.go.jp/committee/kenkyukai/safety_security/minamata_jyouyaku/pdf/001_s05_00.pdf\u003c/a\u003e によれば「不明」となっている。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Ruby",
    "url": "https://www.ikemo3.com/manual/ruby/",
    "contents": "\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003cp\u003erbenvが良さそうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/manual/rbenv/\"\u003erbenv\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"よく使うもの\"\u003eよく使うもの\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/\"\u003eリファレンスマニュアル\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/File.html\"\u003eFile\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"文法\"\u003e文法\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/doc/spec=2fdef.html\"\u003eクラス／メソッドの定義\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/doc/spec=2fcall.html\"\u003eメソッド呼び出し\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eメソッド名\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e?\u003c/code\u003e, \u003ccode\u003e!\u003c/code\u003eがメソッド名に使えます\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"case\"\u003ecase\u003c/h3\u003e\n\u003cp\u003e他の言語ではswitch文に相当するもの。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/doc/spec=2fcontrol.html#case\"\u003e制御構造 (Ruby 2.6.0)\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ecase〜when(複数)〜else〜end\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ebreakは不要(バグを引き起こしにくい)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewhenはカンマ区切りで複数指定可能\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e比較には \u003ccode\u003e===\u003c/code\u003e 演算子が使われる\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e===\u003c/code\u003e 演算子は\u003ca href=\"https://docs.ruby-lang.org/ja/latest/method/Object/i/=3d=3d=3d.html\"\u003eObjectで定義されていて\u003c/a\u003e、デフォルトは \u003ccode\u003e==\u003c/code\u003e と同じ。Range, Regexpなどで上書きされている。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"演算子式\"\u003e演算子式\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/doc/spec=2foperator.html\"\u003e演算子式\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e多重代入\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ea, b, c\u003c/code\u003eのようにカンマで区切る。\u003c/li\u003e\n\u003cli\u003e右辺は複数の式、あるいは配列。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ea, b, *c\u003c/code\u003eのように最後に\u003ccode\u003e*\u003c/code\u003eを付けると、残り全部が入る\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ブロック付きメソッド\"\u003eブロック付きメソッド\u003c/h3\u003e\n\u003ch4 id=\"記述方法\"\u003e記述方法\u003c/h4\u003e\n\u003cp\u003e以下の2通りの記述が可能。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e..\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e].\u003c/span\u003eeach {\u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003ei\u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e...\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e..\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e].\u003c/span\u003eeach \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003ei\u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e...\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e違いは以下だけのようです。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e{ \u0026hellip; } の方が do \u0026hellip; end ブロックよりも強く結合します。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e自分はハマったことないですが(どちらかと言えば中括弧使うので)、\nこれで挙動が変わるケースもあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/riocampos/items/43e4431ddff93e01a18d\"\u003eブロックをdo…endで書くか{…}で書くかにより挙動が変わる例 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"制御\"\u003e制御\u003c/h4\u003e\n\u003cp\u003eブロックの中で\u003ccode\u003ereturn\u003c/code\u003eをすると、ブロック自体を抜けてしまう。\n値を返して次のループを回す場合は、\u003ca href=\"https://docs.ruby-lang.org/ja/latest/doc/spec=2fcontrol.html#next\"\u003enext\u003c/a\u003e(\u003ccode\u003enext\u003c/code\u003e, \u003ccode\u003enext val\u003c/code\u003e)を使う。\u003c/p\u003e\n\u003ch3 id=\"ヒアドキュメント\"\u003eヒアドキュメント\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/doc/spec=2fliteral.html#here\"\u003eヒアドキュメント (行指向文字列リテラル)\u003c/a\u003e\u003c/p\u003e\n\u003ch4 id=\"基本\"\u003e基本\u003c/h4\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003estr \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026lt;\u0026lt;EOS\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  abc\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e#{3+2}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eEOS\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e結果は\u003ccode\u003eprint \u0026quot;  abc\\n  def\\n  5\\n\u0026quot;\u003c/code\u003eと同じになります。\n\u003ccode\u003e\u0026lt;\u0026lt;EOS\u003c/code\u003eを\u003ccode\u003e\u0026lt;\u0026lt;\u0026quot;EOS\u0026quot;\u003c/code\u003eと書いても同じです。\u003c/p\u003e\n\u003ch4 id=\"変数展開なし\"\u003e変数展開なし\u003c/h4\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003estr \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026lt;\u0026lt;\u0026#39;EOS\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  abc\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e#{3+2}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eEOS\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ccode\u003e#{3+2}\u003c/code\u003eのところが展開されません。\u003c/p\u003e\n\u003ch4 id=\"コマンド実行\"\u003eコマンド実行\u003c/h4\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003estr \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026lt;\u0026lt;`EOS`\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  expr \u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eEOS\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e文字列の中を実行します。\u003c/p\u003e\n\u003ch4 id=\"終端行をインデント可能にする\"\u003e終端行をインデント可能にする\u003c/h4\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003estr \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026lt;\u0026lt;-EOS\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  abc\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e#{3+2}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eEOS\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch4 id=\"先頭の空白を除く\"\u003e先頭の空白を除く\u003c/h4\u003e\n\u003cp\u003eこれまでの例では先頭に2つのスペースが入っていましたが、\n以下のようにすると、スペース2つが取り除かれます。\n(改行のみの行は無視)\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003estr \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u0026lt;~\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eEOS\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  abc\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e#{3+2}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eEOS\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"例外\"\u003e例外\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e文法: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/doc/spec=2fcontrol.html#raise\"\u003e制御構造\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e例外クラス: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/library/_builtin.html\"\u003e組み込みライブラリ\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eArgumentError: 引数が不正(JavaにおけるIllegalArgumentException)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/RuntimeError.html\"\u003eRuntimeError\u003c/a\u003e: その他の例外(JavaにおけるRuntimeException)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e呼び出し元で処理させたい場合は自前で例外クラスを作る、\nそれ以外は単にraiseを使ってRuntimeExceptionを投げるのでいいと思います。\u003c/p\u003e\n\u003ch2 id=\"数値\"\u003e数値\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e桁数取得\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003en.to_s.size\u003c/code\u003e(正だと分かっている場合)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003en.abs.to_s.size\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMath.log10(n.abs)\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/zakuroishikuro/items/4580e3386ba954dc54f8#%E8%BF%BD%E8%A8%98-mathlog10%E3%81%A7%E6%A1%81%E6%95%B0%E3%82%92%E6%95%B0%E3%81%88%E3%82%8B\"\u003eRubyで数値の各桁を計算で取得することは無駄な努力だった (と思ったらそうでもなかった) - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"乱数\"\u003e乱数\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/method/Kernel/m/rand.html\"\u003eKernel#rand\u003c/a\u003eを使う。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003erand      # 0〜1までの実数\nrand(2)   # 0 or 1\nrand(100) # 0〜99\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e初回呼び出し時には\u003ca href=\"https://docs.ruby-lang.org/ja/latest/method/Kernel/m/srand.html\"\u003eKernel#srand\u003c/a\u003eを使って、\n乱数の種を初期化する。\u003c/p\u003e\n\u003ch2 id=\"文字列\"\u003e文字列\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/String.html\"\u003eclass String\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e分割: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/String.html#I_SPLIT\"\u003eString#split\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e改行コード(LF)で分割: \u003ccode\u003estr.split(\u0026quot;\\n\u0026quot;)\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e数値に変換\n\u003cul\u003e\n\u003cli\u003e安全でない: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/String.html#I_TO_I\"\u003eto_i\u003c/a\u003e (\u0026ldquo;foo\u0026rdquo;.to_i =\u0026gt; 0となってしまう)\u003c/li\u003e\n\u003cli\u003e安全: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Kernel.html#M_-INTEGER\"\u003eInteger(str)\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e変換できないときはArgumentErrorが投げられる\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e文字列の検索: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/String.html#I_INDEX\"\u003eString#index\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e文字列が含まれている(Javaだとcontains): \u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/String.html#I_INCLUDE--3F\"\u003eString#include?\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estart_with?(*prefixes) -\u0026gt; bool\u003c/code\u003e: 先頭がprefixesのいずれかのときtrue\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eend_with?(*strs) -\u0026gt; bool\u003c/code\u003e: 末尾がstrsのいずれかのときtrue\u003c/li\u003e\n\u003cli\u003e最初と最後の1文字を削除: \u003ccode\u003estr = str.slice(1..-2)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eフォーマット: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/String.html#I_--25\"\u003eString#%\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e例: \u003ccode\u003e\u0026quot;%4d\u0026quot; % i\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"正規表現\"\u003e正規表現\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/doc/spec=2fliteral.html#regexp\"\u003e正規表現リテラル\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/doc/spec=2fliteral.html#percent\"\u003e%記法\u003c/a\u003eもある。\u003c/li\u003e\n\u003cli\u003e例: \u003ccode\u003e%r|...|\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e例2: \u003ccode\u003e%r(...)\u003c/code\u003e カッコ(\u003ccode\u003e(\u003c/code\u003e, \u003ccode\u003e[\u003c/code\u003e, \u003ccode\u003e{\u003c/code\u003e, \u003ccode\u003e\u0026lt;\u003c/code\u003e)は閉じカッコに対応\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Regexp.html\"\u003eRegexp\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/MatchData.html\"\u003eMatchData\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eマッチした文字列だけ取り出す場合\n\u003cul\u003e\n\u003cli\u003e1つだけ: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Regexp.html#I_MATCH\"\u003eRegexp#match\u003c/a\u003e または \u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/String.html#I_MATCH\"\u003eString#match\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e例: \u003ccode\u003e\u0026quot;abcdef\u0026quot;.match(/([c-e]+)/)[1] =\u0026gt; \u0026quot;cde\u0026quot;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e配列で取得: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/String.html#I_SCAN\"\u003eString#scan\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eマッチした文字列を置き換える場合は\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/String.html#I_GSUB\"\u003eString#gsub\u003c/a\u003eがよい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRegExp#match の使用例\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ere \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eRegexp\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003ecompile(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;正規表現文字列\u0026#34;\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ematch_data \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e re\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003ematch(str)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e match_data \u003cspan style=\"color:#f92672\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enil\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e# マッチしなかったとき\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eRegExp#match の使用例2\niTunesのURLから、idを取得する方法。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eid \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e%r|/id([0-9]+)|\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003ematch(url)\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"多言語化\"\u003e多言語化\u003c/h3\u003e\n\u003cp\u003e他のソフトのほとんどは内部エンコーディングにUnicode(UTF-8、古いものはUTF-16)を使用しているが、RubyはCSI(Code Set Independent)方式を採用している。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://magazine.rubyist.net/articles/0025/0025-Ruby19_m17n.html\"\u003eRuby M17N の設計と実装\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e使ってみると難しくないです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eデフォルトで外部エンコーディングはロケールを見るので、例えば「viで開いて文字化けしないファイル」には指定は不要。\u003c/li\u003e\n\u003cli\u003eエンコーディングが不明なものはforce_encodingを使って指定する。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://magazine.rubyist.net/articles/0025/0025-Ruby19_m17n.html#stringforce_encoding\"\u003eforce_encoding\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e使うのは限られたケースとなっていますが、例としてHTTP通信やXMLを挙げているので、利用機会は多いです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eよく使うメソッド\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/String.html#I_ENCODE\"\u003eString#encode\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/String.html#I_FORCE_ENCODING\"\u003eString#force_encoding\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e破壊的メソッドのため、推測に使用する場合は\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Object.html#I_CLONE\"\u003eObject#dup\u003c/a\u003eを使っておく。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/String.html#I_VALID_ENCODING--3F\"\u003eString#valid_encoding?\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"エンコーディングのリスト\"\u003eエンコーディングのリスト\u003c/h4\u003e\n\u003cp\u003e以下のコマンドで取得可能。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eruby -e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;puts Encoding.list\u0026#34;\u003c/span\u003e | sort\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"環境変数\"\u003e環境変数\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/ENV.html\"\u003eobject ENV (Ruby 2.6.0)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eENV\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;FOO\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e文字列はfreezeされている(変更不可)\u003c/p\u003e\n\u003ch2 id=\"array\"\u003eArray\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Array.html\"\u003eArrayクラス\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e記法\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/doc/spec=2fliteral.html#array\"\u003e配列式\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e追加: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Array.html#I_APPEND\"\u003eArray#push\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e含まれているか: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Enumerable.html#I_INCLUDE--3F\"\u003eEnumerable#include?\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e評価したものを返す: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Enumerable.html#I_COLLECT\"\u003eEnumerable#map\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"hash\"\u003eHash\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/doc/spec=2fliteral.html#hash\"\u003eハッシュ式\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下の記法が推奨されるようです(RuboCop曰く)。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e{ a:\u0026#34;A\u0026#34;, b:\u0026#34;B\u0026#34;, c:\u0026#34;C\u0026#34; }\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eでも文字列とシンボルは違うものなので、Hashのキーとしては混乱の元ですね。。。\u003c/p\u003e\n\u003ch2 id=\"日付処理\"\u003e日付処理\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Time.html\"\u003eTime(組み込みライブラリ)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Date.html\"\u003eDate(標準ライブラリ)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003e今日の00:00:00: \u003ccode\u003eDate.today\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e昨日の00:00:00: \u003ccode\u003eDate.today - 1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDate -\u0026gt; Time: \u003ccode\u003edate.to_time\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDateの書式指定: \u003ccode\u003eDate#strftime\u003c/code\u003e, \u003ccode\u003eTime#strftime\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e書式は\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Time.html#I_STRFTIME\"\u003eTime#strftime\u003c/a\u003eにまとまっている。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e%Y\u003c/code\u003e: 4桁の年(例: 1997)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%m\u003c/code\u003e: 2桁の月(01〜12)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%d\u003c/code\u003e: 2桁の日(01〜31)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%H\u003c/code\u003e: 2桁の時(00〜23)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%M\u003c/code\u003e: 2桁の分(00〜59)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%S\u003c/code\u003e: 2桁の秒(00〜60)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e日本語の曜日: \u003ccode\u003e%w(日 月 火 水 木 金 土)[time.wday]\u003c/code\u003e (\u003ca href=\"https://qiita.com/ozamasa/items/20853d5fce6677d0f346\"\u003e日本語曜日入り日付フォーマットを1行で書く - Qiita\u003c/a\u003eより)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e%w()\u003c/code\u003eは配列を表す記法です(\u003ca href=\"https://docs.ruby-lang.org/ja/latest/doc/spec=2fliteral.html#percent\"\u003e%記法\u003c/a\u003e)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e解析\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/method/Time/s/parse.html\"\u003eTime#parse\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erequire 'time'\u003c/code\u003eしないと使えないのに注意。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eより柔軟な表現が欲しい場合は\u003ca href=\"https://github.com/mojombo/chronic\"\u003eChronic\u003c/a\u003eを使う。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"enumerable\"\u003eEnumerable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/2.3.0/class/Enumerable.html\"\u003eEnumerable\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emapでindexも使いたい: \u003ccode\u003e.map.with_index\u003c/code\u003eを使う(\u003ca href=\"https://qiita.com/vsanna/items/6dd7247ad8f7dd81fe03\"\u003eRubyのmapやselectでもeach_with_indexみたいにindexを使いたいときはEnumerator#with_index - Qiita\u003c/a\u003e)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ネット\"\u003eネット\u003c/h2\u003e\n\u003ch3 id=\"urluri\"\u003eURL/URI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/URI.html\"\u003eURI\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/URI.html#S_ENCODE_WWW_FORM\"\u003eURI#encode_www_form\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eHashなどからクエリ文字列を作成するにはこちら。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/URI=3a=3aHTTP.html\"\u003eURI::HTTP\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eschemaなどのコンポーネントから作成する場合はこちら。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"http\"\u003eHTTP\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e簡易取得: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/library/open=2duri.html\"\u003eopen-uri\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"httpsでの送信\"\u003ehttpsでの送信\u003c/h4\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003esend_post\u003c/span\u003e(url, params)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  uri \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eURI\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eparse(url)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  https \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eNet\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eHTTP\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003enew(uri\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003ehost, uri\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eport)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  https\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003euse_ssl \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  req \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eNet\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eHTTP\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003ePost\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003enew(uri\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003epath)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  req\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eset_form_data(params)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  res \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e https\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003erequest(req)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  p res\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"htmlxml\"\u003eHTML/XML\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.nokogiri.org/\"\u003eNokogiri\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eXML(DOM,SAX): \u003ca href=\"https://docs.ruby-lang.org/ja/latest/library/rexml.html\"\u003erexml\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"nokogiri\"\u003eNokogiri\u003c/h4\u003e\n\u003cp\u003e以下のように使います。\nオブジェクトは以下のようになります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHTML: \u003ca href=\"http://www.rubydoc.info/github/sparklemotion/nokogiri/Nokogiri/HTML/Document\"\u003eNokogiri::HTML::Document\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erequire \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;nokogiri\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 文字列\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eNokogiri\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eHTML\u003c/span\u003e(str)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# ファイル\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eFile\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eopen(file) { \u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003ef\u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eNokogiri\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eHTML\u003c/span\u003e(f)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# open-uri\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erequire \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;open-uri\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eNokogiri\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eHTML\u003c/span\u003e(open(url))\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# タイトルの取得\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eNokogiri\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e::\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003eHTML\u003c/span\u003e(open(url))\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003etitle\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"パス関連\"\u003eパス関連\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eスクリプトのパス: \u003ccode\u003e__dir__\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 2.0から使用可能です。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Kernel.html#M___DIR__\"\u003eKernel#\u003cstrong\u003edir\u003c/strong\u003e\u003c/a\u003eで定義されています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePathname\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Pathname.html\"\u003eドキュメント\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e拡張子を取得: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Pathname.html#I_EXTNAME\"\u003ePathname#extname\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"json\"\u003eJSON\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/JSON.html\"\u003eJSONクラス\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e準備: \u003ccode\u003erequire 'json'\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eJSONファイルの読み込み: \u003ccode\u003eJSON.parse(str)\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eJSON.parse(str, {:symbolize_names =\u0026gt; true})\u003c/code\u003e とすると、文字列をシンボルにしてくれる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"引数\"\u003e引数\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Object.html#C_-A-R-G-V\"\u003eARGV\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eARGV[0]\u003c/code\u003eが最初の引数。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e複雑な場合は\u003ca href=\"/manual/thor/\"\u003eThor\u003c/a\u003eを使うと良い。\n\u003cul\u003e\n\u003cli\u003eちなみにThorはトールと呼び、雷神の名前のようです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"テスト\"\u003eテスト\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/library/test=2funit.html\"\u003etest/unit\u003c/a\u003eは2.2から自前でインストールしないと使えない。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egem install test-unit\u003c/code\u003eでインストール可能。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://docs.seattlerb.org/minitest/\"\u003eminitest\u003c/a\u003eが良さそう。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"入出力\"\u003e入出力\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e標準入力: \u003ccode\u003e$stdin\u003c/code\u003eまたは\u003ccode\u003eSTDIN\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e標準出力: \u003ccode\u003e$stdout\u003c/code\u003eまたは\u003ccode\u003eSTDOUT\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e標準エラー出力: \u003ccode\u003e$stderr\u003c/code\u003eまたは\u003ccode\u003eSTDERR\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e$stdin\u003c/code\u003e, \u003ccode\u003e$stdout\u003c/code\u003e, \u003ccode\u003e$stderr\u003c/code\u003e は\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Kernel.html\"\u003eKernel\u003c/a\u003eで定義されている。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSTDIN\u003c/code\u003e, \u003ccode\u003eSTDOUT\u003c/code\u003e, \u003ccode\u003eSTDERR\u003c/code\u003e は\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Object.html\"\u003eObject\u003c/a\u003eで定義されている。\u003c/li\u003e\n\u003cli\u003eこれらは全て\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/IO.html\"\u003eIO\u003c/a\u003eクラスのインスタンス。\u003c/li\u003e\n\u003cli\u003eよく使うメソッド\n\u003cul\u003e\n\u003cli\u003e1行読み込み: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/method/IO/i/readline.html\"\u003eIO#readline\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e1行ごと取得してブロック実行: \u003ca href=\"https://docs.ruby-lang.org/ja/latest/method/IO/i/each_line.html\"\u003eIO#each_line\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e全て読み込んで配列として取得\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/method/IO/s/readlines.html\"\u003eIO.readlines\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/method/IO/i/readlines.html\"\u003eIO#readlines\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"標準入力から入力するとカーソルの挙動がおかしい\"\u003e標準入力から入力するとカーソルの挙動がおかしい\u003c/h3\u003e\n\u003cp\u003e少なくともmacでは、標準入力から入力すると、バックスペース(delete)の挙動がおかしい。\n例えば「あいう」のあとdeleteキーを2回押しても、カーソルは「う」の位置で、表示は「あい」になる。\n返された文字列は「あ」で正しい。\u003c/p\u003e\n\u003cp\u003eこの問題を解決するには、\u003ca href=\"https://docs.ruby-lang.org/ja/latest/class/Readline.html\"\u003eReadlineモジュール\u003c/a\u003eを使うのが簡単。\n複数行対応のメソッドはないが、以下のようにすれば複数行対応可能。\n入力終了はCtrl + Dで同じ(この場合\u003ccode\u003eReadline#readline\u003c/code\u003eはnilを返す)。\nEmacsキーバインドも使える。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enote \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003ewhile\u003c/span\u003e (buf \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eReadline\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003ereadline) \u003cspan style=\"color:#f92672\"\u003e!=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enil\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  note \u003cspan style=\"color:#f92672\"\u003e+=\u003c/span\u003e buf \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#ae81ff\"\u003e\\n\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eなお、上のコードは\u003ccode\u003ewhile buf = Readline.readline\u003c/code\u003eでもOKですが、\n\u003ccode\u003e==\u003c/code\u003eの間違いと誤解されるので、あえてnilと比較するようにしました。\u003c/p\u003e\n\u003ch3 id=\"端末にカラー出力\"\u003e端末にカラー出力\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fazibear/colorize\"\u003ecolorize\u003c/a\u003eを使う。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://vorfee.hatenablog.jp/entry/2015/03/17/173635\"\u003eターミナルのechoやprintfに256色で色をつける 完全版 - vorfee\u0026rsquo;s Tech Blog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://misc.flogisoft.com/bash/tip_colors_and_formatting\"\u003ebash:tip_colors_and_formatting - FLOZz\u0026rsquo; MISC\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"aws\"\u003eAWS\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.aws.amazon.com/ja_jp/sdk-for-ruby/v3/developer-guide/welcome.html\"\u003e開発者ガイド\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.aws.amazon.com/sdk-for-ruby/v3/api/index.html\"\u003eAPIリファレンス(v3)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/manual/dynamodb/\"\u003eDynamoDB\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://docs.ruby-lang.org/ja/latest/doc/symref.html\"\u003eRubyで使われる記号の意味（正規表現の複雑な記号は除く） (Ruby 2.5.0)\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "SELinux",
    "url": "https://www.ikemo3.com/manual/selinux/",
    "contents": "\u003ch2 id=\"最低限覚えておくこと\"\u003e最低限覚えておくこと\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003elsの \u003ccode\u003e-Z\u003c/code\u003eオプションでSELinuxのセキュリティコンテキストを表示する。\u003c/li\u003e\n\u003cli\u003echconコマンド。コンテキストを全て指定するか、\u003ccode\u003e-u\u003c/code\u003e, \u003ccode\u003e-r\u003c/code\u003e, \u003ccode\u003e-t\u003c/code\u003e, \u003ccode\u003e-l\u003c/code\u003eオプションでそれぞれ変更\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"ユーザ\"\u003eユーザ\u003c/h2\u003e\n\u003cp\u003eCentOS 7では \u003ccode\u003e/etc/selinux/targeted/seusers\u003c/code\u003e でLinuxのユーザとSELinuxのユーザをマッピングする\n(実際はすべて \u003ccode\u003eunconfined_u\u003c/code\u003e にマップされている模様)\u003c/p\u003e\n\u003ch2 id=\"ロール\"\u003eロール\u003c/h2\u003e\n\u003cp\u003eあまり使われていないように見える。基本は \u003ccode\u003eobject_r\u003c/code\u003e\u003c/p\u003e\n\u003ch2 id=\"タイプ\"\u003eタイプ\u003c/h2\u003e\n\u003cp\u003eこれが本質的らしい。目的に応じてファイルにタイプがつけられている。\u003c/p\u003e\n\u003ch2 id=\"レベル\"\u003eレベル\u003c/h2\u003e\n\u003cp\u003e秘密度のレベル。通常使う場合はs0しか多分使わない。\u003c/p\u003e\n"
  }, 
  {
    "title": "Ansible: command,shellモジュールの結果を検証したい場合",
    "url": "https://www.ikemo3.com/inverted/ansible/check-command-and-shell-result/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003ecommand/shellモジュールの結果をfailed_when, changed_whenで検証したい。\u003c/p\u003e\n\u003ch2 id=\"設定方法\"\u003e設定方法\u003c/h2\u003e\n\u003cp\u003ecommandモジュールの結果検証は面倒なため、\n以下のように、実行と検証を分けるのがよい。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003ecommand\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003exxx\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003eregister\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ecommand\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003efailed_when\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003efalse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003echanged_when\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003efalse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003edebug\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003evar=command\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003eassert\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003ethat\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      - \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;command.rc == 0\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# ここに条件を追加する\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003echanged_when\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;command.rc == 0\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# ここに条件を追加する\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Ansible: sudoで環境を引き継ぎたい場合",
    "url": "https://www.ikemo3.com/inverted/ansible/sudo-environment/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e以下の2パターンがある。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e変更前のユーザの環境を引き継ぎたい場合\u003c/li\u003e\n\u003cli\u003e変更後のユーザの環境を読み込みたい場合\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下のフラグを追加する。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003ebecome_flags: -E\u003c/code\u003e ※こちらは未確認\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebecome_flags: -i\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Ansible: 設定の外部ファイルによる管理",
    "url": "https://www.ikemo3.com/inverted/ansible/use-external-setting/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eAnsibleでwith_itemsの内容を外部ファイルで管理したい。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003eYAMLで定義して、 \u003ccode\u003ewith_items: \u0026quot;{{ somelist }}\u0026quot;\u003c/code\u003e とする。\nこれが柔軟性があって、一番楽。\u003c/p\u003e\n\u003cp\u003eCSVファイルを読み込んでループはできない(commandとか使わない限り)\u003c/p\u003e\n"
  }, 
  {
    "title": "AssertJ",
    "url": "https://www.ikemo3.com/manual/assertj/",
    "contents": "\u003ch2 id=\"自分が書いた記事\"\u003e自分が書いた記事\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/ikemo/items/165f01740995245f9009\"\u003eJavaのテストにはAssertJがオススメ - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/ikemo/items/866bdfa85340dd3c60ab\"\u003eAssertJで独自クラスのリストをテストする方法 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"maven-gradleなどの設定\"\u003eMaven, Gradleなどの設定\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://joel-costigliola.github.io/assertj/assertj-core-quick-start.html\"\u003eQuick start\u003c/a\u003eの1を参照。\u003c/p\u003e\n\u003ch2 id=\"timestampの比較\"\u003eTimestampの比較\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eassertThat(timestamp).\u003cspan style=\"color:#a6e22e\"\u003ehasSameTimeAs\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;2017-05-19\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003esee. \u003ca href=\"https://github.com/joel-costigliola/assertj-core/issues/273\"\u003ehttps://github.com/joel-costigliola/assertj-core/issues/273\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"bigdecimalの比較\"\u003eBigDecimalの比較\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eassertThat(num).\u003cspan style=\"color:#a6e22e\"\u003eisEqualTo\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;1\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"mapの比較\"\u003eMapの比較\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eassertThat(map).\u003cspan style=\"color:#a6e22e\"\u003econtainsEntry\u003c/span\u003e(key, value);\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"optionalの中身の比較\"\u003eOptionalの中身の比較\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://joel-costigliola.github.io/assertj/core-8/api/org/assertj/core/api/AbstractOptionalAssert.html#hasValueSatisfying-java.util.function.Consumer-\"\u003ehttp://joel-costigliola.github.io/assertj/core-8/api/org/assertj/core/api/AbstractOptionalAssert.html#hasValueSatisfying-java.util.function.Consumer-\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eassertThat(optional).\u003cspan style=\"color:#a6e22e\"\u003ehasValueSatisfying\u003c/span\u003e((value) \u003cspan style=\"color:#f92672\"\u003e-\u0026gt;\u003c/span\u003e { ... });\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Javaのインストール・アンインストール方法",
    "url": "https://www.ikemo3.com/inverted/java/install/",
    "contents": "\u003ch2 id=\"oracle-java\"\u003eOracle Java\u003c/h2\u003e\n\u003ch3 id=\"ダウンロードurl\"\u003eダウンロードURL\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.oracle.com/technetwork/java/javase/downloads/index.html\"\u003eJava SE Downloads\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.oracle.com/technetwork/java/javase/archive-139210.html\"\u003eアーカイブ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eなお、Java SE 8では、同じアップデートで、複数のバージョンが提供されていました。\n(8u181からは1つのようです)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e数字が小さい方: セキュリティアップデートのみ\u003c/li\u003e\n\u003cli\u003e数字が大きい方: セキュリティアップデート + バグフィックス\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJava SE 8u162 is a patch-set update,\nincluding all of 8u161 plus additional bug fixes (described in the release notes).\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e通常は数字の大きい方を入れて問題ないと思います。\u003c/p\u003e\n\u003ch3 id=\"ダウンロード手順\"\u003eダウンロード手順\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://www.oracle.com/technetwork/java/javase/downloads/\"\u003eダウンロードページ\u003c/a\u003eを開く\u003c/li\u003e\n\u003cli\u003e入れたいバージョンを選択\u003c/li\u003e\n\u003cli\u003eライセンスを読んで、Accept License Agreementを選択\n\u003cul\u003e\n\u003cli\u003eボタンを押さないと、リンクが有効になりません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eプラットフォームを選択して、横のリンクをクリックしてダウンロード\n\u003cul\u003e\n\u003cli\u003emacOS\n\u003cul\u003e\n\u003cli\u003e64ビット専用です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWindows\n\u003cul\u003e\n\u003cli\u003eJDK 8までは32ビット(x86)と64ビット(x64)があります。JDK 9からは64ビット\n専用です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eLinux\n\u003cul\u003e\n\u003cli\u003eJDK 8までは32ビット(x86)と64ビット(x64)があります。JDK 9からは64ビット\n専用です。\u003c/li\u003e\n\u003cli\u003eRPM版と、tar版があります。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"インストール手順\"\u003eインストール手順\u003c/h3\u003e\n\u003cp\u003eこちらにまとまっているようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/seijikohara/items/56cc4ac83ef9d686fab2\"\u003eMacのBrewで複数バージョンのJavaを利用する + jEnv - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eまだ試してませんが・・・\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emacOS\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003e*.dmg\u003c/code\u003eを開く\u003c/li\u003e\n\u003cli\u003eその先適当に進める(迷うことはないと思います)\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emacOSの場合、インストール先は\u003ccode\u003e/Library/Java/JavaVirtualMachines/\u003c/code\u003eになります。\u003c/p\u003e\n\u003ch2 id=\"openjdk\"\u003eOpenJDK\u003c/h2\u003e\n\u003ch3 id=\"openjdk-10のインストール方法macos\"\u003eOpenJDK 10のインストール方法(macOS)\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://jdk.java.net/10/\"\u003eJDK 10 GA Release\u003c/a\u003eを開く\u003c/li\u003e\n\u003cli\u003eダウンロード\u003c/li\u003e\n\u003cli\u003e展開\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e/Library/Java/JavaVirtualMachines/\u003c/code\u003eにmv\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eこれでなぜか\u003ccode\u003ejava -version\u003c/code\u003eの内容も10になりました。\u003c/p\u003e\n\u003ch2 id=\"アンインストール\"\u003eアンインストール\u003c/h2\u003e\n\u003ch3 id=\"macos\"\u003emacOS\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.oracle.com/javase/8/docs/technotes/guides/install/mac_jdk.html#A1096903\"\u003eJDK 8 Installation for OS X\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/okoshi/items/8ef75fb0104f55fd1a3c\"\u003emacOSで古いJDKをアンインストール - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e/Library/Java/JavaVirtualMachines 以下にあるので、削除したいものを\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003esudo rm -rf\u003c/code\u003eで消してください。\u003c/p\u003e\n\u003ch2 id=\"インストール時に入れたい設定jdk-8\"\u003eインストール時に入れたい設定(JDK 8)\u003c/h2\u003e\n\u003ch3 id=\"乱数ソースの変更\"\u003e乱数ソースの変更\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://otndnld.oracle.co.jp/document/products/E13153_01/wlcp/wlss40/configwlss/jvmrand.html\"\u003e乱数生成に伴う JVM の遅延の回避\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e$JAVA_HOME/jre/lib/security/java.security\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e#securerandom.source=file:/dev/random\nsecurerandom.source=file:/dev/urandom\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eなお、記事によっては\n\u003ccode\u003e-Djava.security.egd=file:/dev/./urandom\u003c/code\u003e を指定するとなっている。\nこれはJDKを入れ替えてもそのまま対応できる利点はあるが、\nおまじないになってしまっている。\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e-Djava.security.egd=file:/dev/./urandom\u003c/code\u003e であって、\n\u003ccode\u003e-Djava.security.egd=file:/dev/urandom\u003c/code\u003e だとダメなのはおそらく互換性のため。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4705093\"\u003eJDK-4705093 : Use /dev/urandom rather than /dev/random if it exists.\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eSecureRandom.getInstance(\u0026ldquo;SHA1PRNG\u0026rdquo;) and do not specify a seed,\n\u003cstrong\u003eOR\u003c/strong\u003e new SecureRandom() but have specified an alternate\njava.security.egd besides \u0026ldquo;file:/dev/urandom\u0026rdquo;,\nit will use the SHA1PRNG which calls into /dev/random and\nmay potentially block.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eOpenJDK 1.8.0_151_b12で試したところ、\n-Djava.security.egd=file:/dev/urandomでも問題なかった。\nどのバージョンでどれを指定すればいいか分からない。。。\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003eなお、/dev/urandom を使用した場合は、暗号論的擬似乱数を使用するため、\n真の乱数ではないがブロックされない。\n通常はこちらを使用して問題ないと判断される(→\u003ca href=\"/dic/random/\"\u003e乱数\u003c/a\u003e)。\u003c/p\u003e\n\u003ch3 id=\"dnsキャッシュがリフレッシュされない問題の回避\"\u003eDNSキャッシュがリフレッシュされない問題の回避\u003c/h3\u003e\n\u003cp\u003eこの設定は未検証。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://qiita.com/tool-taro/items/1d3787e786c6d2ebfedd\"\u003eJavaSE(JDK)をインストールしたら必ずやっておきたい設定\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e$JAVA_HOME/jre/lib/security/java.security\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e#networkaddress.cache.ttl=-1\nnetworkaddress.cache.ttl=600\nnetworkaddress.cache.negative.ttl=10\n\u003c/code\u003e\u003c/pre\u003e"
  }, 
  {
    "title": "Selenium WebDriver",
    "url": "https://www.ikemo3.com/manual/selenium-webdriver/",
    "contents": "\u003ch2 id=\"api\"\u003eAPI\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://seleniumhq.github.io/selenium/docs/api/javascript/\"\u003eJavaScript(Node.js)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ドライバ\"\u003eドライバ\u003c/h2\u003e\n\u003ch3 id=\"google-chrome\"\u003eGoogle Chrome\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://sites.google.com/a/chromium.org/chromedriver/downloads\"\u003eDownloads - ChromeDriver - WebDriver for Chrome\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://chromedriver.chromium.org/capabilities\"\u003eCapabilities \u0026amp; ChromeOptions - ChromeDriver - WebDriver for Chrome\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://chromium.googlesource.com/chromium/src/+/master/docs/user_data_dir.md\"\u003eUser Data Directory\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"mozilla-firefox\"\u003eMozilla Firefox\u003c/h3\u003e\n\u003cp\u003e以下のような場合を想定。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eファイルダウンロード時に確認ダイアログを出さない(blob)\u003c/li\u003e\n\u003cli\u003eプロファイルのパスを指定(Cookieを使用したいため)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"/manual/geb/\"\u003eGeb\u003c/a\u003eを使った例を載せておきます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-GebConfig.groovy\" data-lang=\"GebConfig.groovy\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eSystem\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003esetProperty\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;webdriver.gecko.driver\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;path/to/geckodriver\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eenvironments \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    firefox \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        driver \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            FirefoxOptions options \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e FirefoxOptions\u003cspan style=\"color:#f92672\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            FirefoxProfile profile \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e FirefoxProfile\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e File\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;/path/to/profile\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            profile\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003esetPreference\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;browser.helperApps.neverAsk.saveToDisk\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;application/octet-stream\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            options\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003esetProfile\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003eprofile\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eFirefoxDriver\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003eoptions\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"microsoft-edge\"\u003eMicrosoft Edge\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/\"\u003eWebDriver - Microsoft Edge Development\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.microsoft.com/en-us/microsoft-edge/webdriver\"\u003eWebdriver - Microsoft Edge Development | Microsoft Docs\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/edge/EdgeDriver.html\"\u003eEdgeDriver\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"page-objectパターン\"\u003ePage Objectパターン\u003c/h2\u003e\n\u003cp\u003eページをオブジェクトとして考えるデザインパターンです。\u003c/p\u003e\n\u003ch3 id=\"同じページに対して正常ケースとエラーケースで結果が異なる場合の扱い\"\u003e同じページに対して、正常ケースとエラーケースで結果が異なる場合の扱い\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/wiki/PageObjects\"\u003ePageObjects\u003c/a\u003eによれば、Summaryとして以下の6点が書かれている。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eThe public methods represent the services that the page offers\u003c/li\u003e\n\u003cli\u003eTry not to expose the internals of the page\u003c/li\u003e\n\u003cli\u003eGenerally don\u0026rsquo;t make assertions\u003c/li\u003e\n\u003cli\u003eMethods return other PageObjects\u003c/li\u003e\n\u003cli\u003eNeed not represent an entire page\u003c/li\u003e\n\u003cli\u003eDifferent results for the same action are modelled as different methods\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eよって、メソッドはPageObjectsを返して、Assertionは呼び出し元で行うべき。\u003c/p\u003e\n"
  }, 
  {
    "title": "sshd",
    "url": "https://www.ikemo3.com/manual/sshd/",
    "contents": "\u003ch2 id=\"現在の最大接続数取得\"\u003e現在の最大接続数取得\u003c/h2\u003e\n\u003cp\u003e以下のコマンドで最大接続数が取得できる。\n値の意味はmanコマンドで調べること。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e/usr/sbin/sshd -T | grep maxstartups\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"接続が遅い場合の対処方法\"\u003e接続が遅い場合の対処方法\u003c/h2\u003e\n\u003cp\u003e自分は以下のパターンに遭遇しました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eデフォルトゲートウェイが正しくない場合\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUseDNS yes\u003c/code\u003eでかつ接続元に逆引き設定がされていない場合\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"usednsは通常はnoで構わない\"\u003eUseDNSは通常はnoで構わない\u003c/h3\u003e\n\u003cp\u003eUseDNSを使う必要があるのは、ホストベースの認証を行うときだけです。\nrhostsを使った認証は設定すべきではなく、\n公開鍵認証\u003cstrong\u003eかつ\u003c/strong\u003eホストベースの認証を行ないたいときは稀です。\u003c/p\u003e\n\u003cp\u003eOpenSSHも6.8よりUseDNSはデフォルトで\u003ccode\u003eno\u003c/code\u003eになっています\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003esshd(8): UseDNS now defaults to \u0026rsquo;no\u0026rsquo;. Configurations that match\nagainst the client host name (via sshd_config or authorized_keys)\nmay need to re-enable it or convert to matching against addresses.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"permitrootlogin\"\u003ePermitRootLogin\u003c/h2\u003e\n\u003cp\u003ePermitRootLoginはyes/no以外にもいろいろ書けます。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://man.openbsd.org/sshd_config#PermitRootLogin\"\u003esshd_config(5) - OpenBSD manual pages\u003c/a\u003e\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eパラメータ\u003c/th\u003e\n          \u003cth\u003eパスワード認証\u003c/th\u003e\n          \u003cth\u003e公開鍵認証\u003c/th\u003e\n          \u003cth\u003e公開鍵認証(コマンド実行のみ)\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eyes\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eprohibit-password / without-password\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eforced-commands-only\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eno\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003e\u003ccode\u003eprohibit-password\u003c/code\u003eはOpenSSH 6.9より追加されています(\u003ca href=\"https://www.openssh.com/releasenotes.html\"\u003eリリースノート\u003c/a\u003e参照)。\u003c/p\u003e\n\u003ch2 id=\"環境変数\"\u003e環境変数\u003c/h2\u003e\n\u003cp\u003eデフォルトでは/etc/profileなどが読み込まれないため、\nログインする場合と、SSH経由では主に以下の違いがあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePATHに/usr/local/sbinなどが含まれない\u003c/li\u003e\n\u003cli\u003eHOSTNAME環境変数が設定されない\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePermitUserEnvironmentオプションを有効にすると、\n~/.ssh/environmentファイルを読むことで、環境変数の設定が可能。\u003c/p\u003e\n\u003cp\u003e~/.ssh/rcは設定なしで読み込めるようなので、\nそちらの方がいいかもしれません(未確認)。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.openssh.com/txt/release-6.8\"\u003ehttps://www.openssh.com/txt/release-6.8\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Sudo",
    "url": "https://www.ikemo3.com/tags/sudo/",
    "contents": ""
  }, 
  {
    "title": "sed",
    "url": "https://www.ikemo3.com/manual/sed/",
    "contents": "\u003ch2 id=\"オプション\"\u003eオプション\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-n\u003c/code\u003e: デフォルトではコマンドが終了したらその中身を出力するが、明示的に\u003ccode\u003ep\u003c/code\u003eコマンドで指定しない限り、標準出力に出力しない。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-i \u0026lt;拡張子\u0026gt;\u003c/code\u003e: ファイルの中身を置き換えします(インプレース)。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-i.bak\u003c/code\u003e または \u003ccode\u003e-i .bak\u003c/code\u003e とすると、ファイル名の最後に \u003ccode\u003e.bak\u003c/code\u003e が付いたファイルがバックアップされます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"コマンド\"\u003eコマンド\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e分岐: \u003ccode\u003eb label\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e例\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e/^\u0026quot;.*\u0026quot;$/b double\u003c/code\u003e: 最初と最後が\u003ccode\u003e\u0026quot;\u003c/code\u003eなら、ラベル\u003ccode\u003edouble\u003c/code\u003eに移動\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eb none\u003c/code\u003e: 常にラベル\u003ccode\u003enone\u003c/code\u003eに移動\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e置換: \u003ccode\u003es/正規表現/置換文字列/フラグ\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e通常は\u003ccode\u003e/\u003c/code\u003eが使われるが、多くの任意の文字が使用可能(GNU\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e, BSD\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e)。自分は\u003ccode\u003es|...|...|\u003c/code\u003eをよく使います(スラッシュに見た目が近いので)。\u003c/li\u003e\n\u003cli\u003e正規表現を\u003ccode\u003e\\(\u003c/code\u003eと\u003ccode\u003e\\)\u003c/code\u003eで囲むと、置換文字列に\u003ccode\u003e\\1\u003c/code\u003eのように使うことができる。\u003c/li\u003e\n\u003cli\u003eフラグ\n\u003cul\u003e\n\u003cli\u003eg: 全て置き換える\u003c/li\u003e\n\u003cli\u003ep: 標準出力に表示\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eラベル: \u003ccode\u003e:label\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e例: \u003ccode\u003e:double\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"正規表現\"\u003e正規表現\u003c/h2\u003e\n\u003cp\u003esed の正規表現 は+が使えない。\u003c/p\u003e\n\u003ch2 id=\"特定の文字列以降を表示するスクリプト\"\u003e特定の文字列以降を表示するスクリプト\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esed -e \u0026#39;s/^.*検索対象文字列\\(.*\\)$/\\1/\u0026#39;\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"マッチした次の行を表示するスクリプト\"\u003eマッチした次の行を表示するスクリプト\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esed -ne \u0026#39;s/検索文字列/{n;p}\u0026#39;\n\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.gnu.org/software/sed/manual/sed.html\"\u003esed, a stream editor\u003c/a\u003eの\u003ccode\u003e\\%regexp%\u003c/code\u003eの欄に記載があります。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ccode\u003eman sed\u003c/code\u003eの\u003ccode\u003e[2addr]s\u003c/code\u003eの欄に記載があります。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "tar",
    "url": "https://www.ikemo3.com/manual/tar/",
    "contents": "\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003cp\u003eデフォルトでは以下のものがインストールされています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLinux: GNU Tar\u003c/li\u003e\n\u003cli\u003emacOS: BSD Tar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eLinuxでBSD Tarを使いたい場合(DockerでBSD Tarのテストとか)は、\n以下のパッケージを入れます。コマンドは\u0026rsquo;bsdtar\u0026rsquo;です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDebian GNU/Linux: libarchive-tools\u003c/li\u003e\n\u003cli\u003eCentOS 7: bsdtar\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emacOSでGNU Tarを使いたい場合は、\u003ccode\u003ebrew install gnu-tar\u003c/code\u003eでインストールできます。\nコマンドは\u0026rsquo;gtar\u0026rsquo;です。\u003c/p\u003e\n\u003ch2 id=\"ownergroupの変更\"\u003eowner/groupの変更\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGNU tar\n\u003cul\u003e\n\u003cli\u003eオーナーの変更: \u003ccode\u003e--owner=NAME\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eグループの変更: \u003ccode\u003e--group=NAME\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eオーナー・グループを数値(UID/GID)に変更: \u003ccode\u003e--numeric-owner\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"アーカイブからファイルを削除する方法\"\u003eアーカイブからファイルを削除する方法\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eこのオプションはGNU Tarのみ対応です。BSD Tar(macOSなど)では未対応です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003etar --delete -f archive.tar path/to/exclude\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e圧縮されたtarアーカイブはこの方法が使えない。\n以下のエラーが出る。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etar: Cannot update compressed archives\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこの場合は、一旦圧縮を解除してからやるとよい。\n以下のような方法もある。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://unix.stackexchange.com/questions/80239/efficiently-remove-files-from-large-tgz\"\u003etar - Efficiently remove file(s) from large .tgz - Unix \u0026amp; Linux Stack Exchange\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "イノベーションの七つの機会",
    "url": "https://www.ikemo3.com/dic/7-sources-of-innovative-opportunity/",
    "contents": "\u003ch2 id=\"イノベーションの七つの機会とは\"\u003eイノベーションの七つの機会とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eの「イノベーションと企業家精神」に書かれていることです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAGLC/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAGLC.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAGLC/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集5 イノベーションと企業家精神\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003col\u003e\n\u003cli\u003e予期せぬことの生起\u003c/li\u003e\n\u003cli\u003eギャップの存在\u003c/li\u003e\n\u003cli\u003eニーズの存在\u003c/li\u003e\n\u003cli\u003e産業構造の変化\u003c/li\u003e\n\u003cli\u003e人口構造の変化\u003c/li\u003e\n\u003cli\u003e認識の変化\u003c/li\u003e\n\u003cli\u003e新しい知識の出現\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"順番に意味がある\"\u003e順番に意味がある\u003c/h2\u003e\n\u003cp\u003e「第2章 イノベーションのための七つの機会」に以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eただしこれら七つの機会の順番には意味がある。\n信頼性と確実性の大きい順に並べてある。\n一般に信じられているこことは逆に、発明発見、\n特に科学上の新知識は、イノベーションの機会として、\n信頼性が高いわけでも成功の確率が大きいわけでもない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eイノベーションを日本語で「技術革新」と呼ぶことがあり、\nハイテクなものという先入観を持ってしまいがちですが、\n\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eは逆に、身近なものにイノベーションの機会はあると言っています。\u003c/p\u003e\n\u003ch2 id=\"知識によるイノベーションは時間がかかる\"\u003e知識によるイノベーションは時間がかかる\u003c/h2\u003e\n\u003cp\u003e「第9章 新しい知識を応用する - 第七の機会」に以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eこのように、知識が技術となり、市場で受け入れられるようになるには、\n二五年から三五年を要する。リードタイムの長さは人類の歴史が始まって以来\nさして変わっていない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e例えば、よく「容量を飛躍的に高める発見」が出て話題になります。\nしかし、実際に容量がある時を境に飛躍的に高まることはありません。\nこれは、知識としての発見と、実用化する際の技術の間に\nギャップが存在しているからです。\u003c/p\u003e\n"
  }, 
  {
    "title": "ルーティング",
    "url": "https://www.ikemo3.com/manual/routing/",
    "contents": "\u003ch2 id=\"centos-7\"\u003eCentOS 7\u003c/h2\u003e\n\u003ch3 id=\"ルーティングの表示\"\u003eルーティングの表示\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eip route\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"ルーティングの設定\"\u003eルーティングの設定\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eip route add nnn.nnn.nnn.0/24 via \u0026lt;ローカル側のgateway\u0026gt; dev \u0026lt;デバイス名\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e"
  }, 
  {
    "title": "チェックリスト",
    "url": "https://www.ikemo3.com/dic/checklist/",
    "contents": "\u003ch2 id=\"チェックリストとは\"\u003eチェックリストとは\u003c/h2\u003e\n\u003cp\u003eやるべきこと、確認すべきことをリストにし、\nチェックマークをつけられるようにしたものです。\u003c/p\u003e\n\u003ch2 id=\"チェックリストのアプリが意外とない\"\u003eチェックリストのアプリが意外とない\u003c/h2\u003e\n\u003cp\u003e以下の要件を満たすチェックリストアプリを探しているのですが、\n今のところ全て満たせるものがありません。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eマルチデバイス、特に\u003ca href=\"/dic/apple-watch/\"\u003eApple Watch\u003c/a\u003eでチェックできる\u003c/li\u003e\n\u003cli\u003e繰り返し使用しやすい\u003c/li\u003e\n\u003cli\u003eデータをクラウド同期できる(iCloudやDropboxなど)\n\u003cul\u003e\n\u003cli\u003eMacで入力 \u0026amp; バックアップしたいので\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eほとんどのアプリは「繰り返し使用」を考慮していません。\u003c/p\u003e\n\u003cp\u003e「繰り返し」については、\u003ca href=\"https://itunes.apple.com/jp/app/id1112560810\"\u003eChecksWidget\u003c/a\u003eというアプリがよく出来ています。\nリストを引っ張るだけで、全てのチェックが外れるようになっています。\nクラウド同期機能はありませんが、他の要件は満たせてます。\u003c/p\u003e\n"
  }, 
  {
    "title": "「現金及び預金」と「現金及び現金同等物」の違い",
    "url": "https://www.ikemo3.com/theme/investment/cach-and-cach-equivalents/",
    "contents": "\u003ch2 id=\"現金及び預金と現金及び現金同等物\"\u003e「現金及び預金」と「現金及び現金同等物」\u003c/h2\u003e\n\u003cp\u003eとある企業の決算を見ていたら、以下の2つの数字に大きな違いがあることに気づきました。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e「決算短信」の「連結貸借対照表」にある「現金及び預金」\u003c/li\u003e\n\u003cli\u003e「有価証券報告書」の「キャッシュ・フロー計算書」にある「現金及び現金同等物」\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eその企業では、「現金及び現金同等物」の方がかなり少なくなっていました。\n「現金及び預金」と「現金及び現金同等物」は単語だけ見ると同じように見えますが、\n何が違うのかが気になって調べました。\u003c/p\u003e\n\u003ch2 id=\"現金及び預金の定義\"\u003e「現金及び預金」の定義\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://elaws.e-gov.go.jp/search/elawsSearch/elaws_search/lsg0500/detail?lawId=338M50000040059\u0026amp;openerCode=1#117\"\u003e財務諸表等の用語、様式及び作成方法に関する規則 第十五条\u003c/a\u003eに以下のように書かれています。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e第十五条　次に掲げる資産は、流動資産に属するものとする。\n  一　現金及び預金。ただし、一年内に期限の到来しない預金を除く。\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eこの「現金」と「預金」は\u003ca href=\"http://www.fsa.go.jp/common/law/kaiji/4b.pdf\"\u003e「財務諸表等の用語、様式及び作成方法に関する規則」の取扱いに関する留意事項について（財務諸表等規則ガイドライン）\u003c/a\u003eに掲載されています。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e15－１ 規則第15条第１号の現金及び預金に関しては、次の点に留意する。\n  １ 規則第15条第１号の現金には、小口現金、手元にある当座小切手、送金小切手、送金\n    為替手形、預金手形、郵便為替証書及び振替貯金払出証書等を含むものとする。ただし、\n    未渡小切手は、預金として処理するものとする。\n      なお、期限の到来した公社債の利札その他金銭と同一の性質をもつものは、規則第15\n    条第１号の現金に含めることができるものとする。\n  ２ 規則第 15 条第１号の預金は、金融機関（銀行、協同組織金融機関の優先出資に関する法律（平\n    成５年法律第 44 号）第２条第１項に規定する協同組織金融機関及び金融商品取引法施行令（昭\n    和 40 年政令第 321 号）第１条の９各号に掲げる金融機関をいう。以下同じ。）に対する預金、\n    貯金及び掛金、郵便貯金並びに郵便振替貯金に限るものとする。\n      なお、預金には、契約期間が１年を超える預金で１年内に期限の到来するものを含むものとする。\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"現金及び現金同等物の定義\"\u003e「現金及び現金同等物」の定義\u003c/h2\u003e\n\u003cp\u003e金融庁に「\u003ca href=\"http://www.fsa.go.jp/p_mof/singikai/kaikei/tosin/1a909b2.htm\"\u003e連結キャッシュ・フロー計算書等の作成基準\u003c/a\u003e」という文書があります。ここに「現金及び現金同等物」の定義があります。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e１　現金とは、手許現金及び要求払預金をいう。（注１）\n\n２　現金同等物とは、容易に換金可能であり、かつ、価値の変動について僅少な\n    リスクしか負わない短期投資をいう。（注２）\n\n（注１）要求払預金について\n        要求払預金には、例えば、当座預金、普通預金、通知預金が含まれる。　　　\n\n（注２）現金同等物について\n        現金同等物には、例えば、取得日から満期日又は償還日までの期間が３か月\n        以内の短期投資である定期預金、譲渡性預金、コマーシャル・ペーパー、売戻\n        し条件付現先、公社債投資信託が含まれる。\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"違いは何か\"\u003e違いは何か\u003c/h2\u003e\n\u003cp\u003eこの2つから、金額が大きそうなものを抜粋してみました。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e種別\u003c/th\u003e\n          \u003cth\u003e「現金及び預金」に該当\u003c/th\u003e\n          \u003cth\u003e「現金及び現金同等物」に該当\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e現金\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e小切手、手形\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e預金(貯金)\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e定期預金(3ヶ月以内)\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e定期預金(1年以内)\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e定期預金(1年以上)\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eコマーシャル・ペーパー\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eコマーシャル・ペーパーが現金同等物になっているのは、\n非常にリスクが低いものだからだと思います。\nただ、「現金及び預金」に入らない\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eのはチグハグな感じがしますね。\u003c/p\u003e\n\u003cp\u003e「現金及び現金同等物」の方がかなり少なくなるのは、\n一年以内の定期預金が多い可能性が高いという結論になりました。\u003c/p\u003e\n\u003ch2 id=\"補足\"\u003e補足\u003c/h2\u003e\n\u003cp\u003eどちらの文書も直リンクしていますが、\n金融庁のサイトからたどる方法を掲載しておきます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e「財務諸表等の用語、様式及び作成方法に関する規則」の取扱いに関する留意事項について\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://www.fsa.go.jp/index.html\"\u003e金融庁ホームページ\u003c/a\u003eより、「法令・指針等」をクリック\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.fsa.go.jp/common/law/index.html\"\u003e法令・指針等：金融庁\u003c/a\u003eより、下の方にある「企業内容等開示ガイドライン等」をクリック\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.fsa.go.jp/common/law/kaiji/index.html\"\u003e企業内容等開示ガイドライン等：金融庁\u003c/a\u003eより、『「財務諸表等の用語、様式及び作成方法に関する規則」の取扱いに関する留意事項について（財務諸表等規則ガイドライン）』をクリック\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003e連結キャッシュ・フロー計算書等の作成基準\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://www.fsa.go.jp/index.html\"\u003e金融庁ホームページ\u003c/a\u003eより、下部のサイトマップの「金融庁について」をクリック\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.fsa.go.jp/common/about/fsainfo.html\"\u003e金融庁について：金融庁\u003c/a\u003eより、右側の「金融庁発足以前の情報」をクリック\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.fsa.go.jp/ago/index.html\"\u003e金融庁発足以前の情報 ： 金融庁\u003c/a\u003eより、「大蔵省から引き継いだ情報（金融企画局分）」をクリック\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.fsa.go.jp/p_mof/index.htm\"\u003e大蔵省から引き継いだ情報\u003c/a\u003eより、「企業会計審議会」をクリック\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.fsa.go.jp/p_mof/singikai/kaikei/top.htm\"\u003e企業会計審議会\u003c/a\u003eより、下フレームの「連結キャッシュ・フロー計算書等の作成基準の設定に関する意見書(平成10年３月13日)」をクリック\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.fsa.go.jp/p_mof/singikai/kaikei/tosin/1a909.htm\"\u003e企業会計審議会総会の開催について\u003c/a\u003eより、2番目のリンク「『連結キャッシュ・フロー計算書等の作成基準の設定に関する意見書』」をクリック\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.fsa.go.jp/p_mof/singikai/kaikei/tosin/1a909b1.htm\"\u003e連結キャッシュ・フロー計算書等の作成基準の設定に関する意見書\u003c/a\u003eより、最初のリンク「連結キャッシュ・フロー計算書等の作成基準の設定について」をクリック\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1149706586\"\u003e財務諸表の見方について教えて下さい。 - 貸借対照表上の『現金及び預金』\u0026hellip; - Yahoo!知恵袋\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e検索したら「入らない」という話は見つかりましたが、「入る」という話は見つかりませんでした。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Microsoft Excel",
    "url": "https://www.ikemo3.com/manual/excel/",
    "contents": "\u003ch2 id=\"設定\"\u003e設定\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://scientre.hateblo.jp/entry/2017/03/13/151842\"\u003eスラッシュを入力可能にする\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://support.office.com/ja-jp/article/%E3%82%BB%E3%83%AB%E5%85%A5%E5%8A%9B%E3%81%AE%E3%82%AA%E3%83%BC%E3%83%88%E3%82%B3%E3%83%B3%E3%83%97%E3%83%AA%E3%83%BC%E3%83%88%E6%A9%9F%E8%83%BD%E3%81%AE%E3%82%AA%E3%83%B3%E3%81%A8%E3%82%AA%E3%83%95%E3%82%92%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%82%8B-0f4aa749-b927-4ea7-adaa-86f8d4f9fe20\"\u003eオートコンプリートをオフ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"文字列を右側から取得\"\u003e文字列を右側から取得\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://support.office.com/ja-jp/article/RIGHT-%E9%96%A2%E6%95%B0%E3%80%81RIGHTB-%E9%96%A2%E6%95%B0-240267ee-9afa-4639-a02b-f19e1786cf2f\"\u003eRIGHT 関数、RIGHTB 関数\u003c/a\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eRIGHT(文字列, 文字数)\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"相対位置の指定\"\u003e相対位置の指定\u003c/h2\u003e\n\u003cp\u003eNumbersでも可能。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eROW(): 現在の行番号を返す\u003c/li\u003e\n\u003cli\u003eCOLUMN(): 現在の列番号を返す\u003c/li\u003e\n\u003cli\u003eADDRESS(行, 列): アドレス文字列を作成\u003c/li\u003e\n\u003cli\u003eINDIRECT(アドレス文字列): アドレス文字列に含まれるセルの内容を返す\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例: 1つ上のセルを参照→ \u003ccode\u003eINDIRECT(ADDRESS(ROW() - 1, COLUMN())\u003c/code\u003e\u003c/p\u003e\n\u003ch2 id=\"グループ化で図が折りたたみされない\"\u003eグループ化で図が折りたたみされない\u003c/h2\u003e\n\u003cp\u003e以下のように設定する。\u003c/p\u003e\n\u003cfigure\u003e\u003cimg src=\"property.png\"\n    alt=\"セルに合わせて移動するがサイズ変更はしない\"\u003e\u003cfigcaption\u003e\n      \u003ch4\u003e図の書式設定\u003c/h4\u003e\n    \u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003ch2 id=\"非表示の名前の表示\"\u003e非表示の名前の表示\u003c/h2\u003e\n\u003cp\u003e以下の記事の内容を行います。\nメニューにはVisual Basic Editorは見当たりませんね。。。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dev.classmethod.jp/tool/excel-delete-name/\"\u003e[Excel] シートで非表示になっている名前の定義を消す方法 ｜ Developers.IO\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "白ビール",
    "url": "https://www.ikemo3.com/dic/white-beer/",
    "contents": "\u003ch2 id=\"白ビールとは\"\u003e白ビールとは\u003c/h2\u003e\n\u003cp\u003eビールの一種で、原材料に小麦を多く使用したものです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"主なビールの種類\"\u003e主なビールの種類\u003c/h2\u003e\n\u003cp\u003e基本的には2種類あります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eベルジャン(スタイル)ホワイト\n\u003cul\u003e\n\u003cli\u003eベルギーのビールで、スパイスを多く使うのが特徴です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eヴァイツェン\n\u003cul\u003e\n\u003cli\u003eドイツのビールで、大麦、小麦、ホップだけを使用しています。\u003c/li\u003e\n\u003cli\u003eちなみに、ドイツ語ではWeißbierと書きますが、Weiß=白です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e店頭で探すときは、まず小麦の有無をチェックして、\nそれからスパイスが入っているかどうかのチェックをします。\u003c/p\u003e\n\u003ch2 id=\"自分が唯一飲めるビール\"\u003e自分が唯一飲めるビール\u003c/h2\u003e\n\u003cp\u003e自分はビールがものすごく苦手なのですが、唯一飲めるのがこの白ビールです。\n苦手な理由はホップの苦味\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003eなのですが、この苦味が少ないのが特徴です。\u003c/p\u003e\n\u003ch2 id=\"キリンは自分にはダメ\"\u003eキリンは自分にはダメ\u003c/h2\u003e\n\u003cp\u003e白ビールは基本的にハズレがないのですが、\nキリンビールが作るのは自分には合わない感じです。\n多分今後買うことはないです。\u003c/p\u003e\n\u003cp\u003e手元のメモでは「いかにも\u0026quot;日本のビール会社が作りました\u0026quot;という感じのビール。」\nという感じです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eいわゆる「第三のビール」にある、スピリッツに小麦が入ったものではありません。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e緑茶とかブラックコーヒーとかは飲めるんですけどね。。。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "サイトの構成",
    "url": "https://www.ikemo3.com/site-structure/",
    "contents": "\u003ch2 id=\"このサイトの構成\"\u003eこのサイトの構成\u003c/h2\u003e\n\u003cp\u003eこのサイトは自分なりに、\nナビゲーションしやすさを考えて作っています。\n以下のような構造になっています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eストック情報\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e行動を伴わない\u003c/strong\u003eもの\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/\"\u003e辞書\u003c/a\u003e: \u003cstrong\u003eある1つの単語に対する\u003c/strong\u003e知識を格納。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/theme/\"\u003eテーマ\u003c/a\u003e: \u003cstrong\u003e複数の単語に対する\u003c/strong\u003e知識を格納\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e行動を伴う\u003c/strong\u003eもの\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/setting/\"\u003e設定手順書\u003c/a\u003e: \u003cstrong\u003e導入時に1度だけ\u003c/strong\u003e必要な手順\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/manual/\"\u003eマニュアル\u003c/a\u003e: \u003cstrong\u003e使う時に常に\u003c/strong\u003e参照する手順\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/inverted/\"\u003e逆引きマニュアル\u003c/a\u003e: \u003cstrong\u003e必要なときに\u003c/strong\u003e参照する手順\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eフロー情報\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/log/\"\u003eログ\u003c/a\u003e: \u003cstrong\u003e時系列の\u003c/strong\u003eログ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e廃止されたセクション\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003e引用: 引用とそれに関する考え\u003c/del\u003e\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/data/\"\u003eデータ\u003c/a\u003e: 主観的でない、事実\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"rssatomフィード\"\u003eRSS/Atomフィード\u003c/h2\u003e\n\u003ch2 id=\"なぜこのような形式にしたのか\"\u003eなぜこのような形式にしたのか\u003c/h2\u003e\n\u003cp\u003e例えば、「WindowsでSHA-256ハッシュを取る方法」を例に取ります\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e。\nこのときにいちばん重要なのは、「SHA-256」という単語です。\nよって、「SHA-256」というページ(マニュアル)を作って、\nそこに「Windowsでの取得方法」を書くようにしています。\u003c/p\u003e\n\u003cp\u003eまた、そもそも「SHA-256」とは何かの説明が必要です。\nしかし、SHA-256の取得方法と混ぜると、ページがごちゃごちゃしてきます。\nよって、同様に「SHA-256」というページ(辞書)を作って、\nそもそもSHA-256とは何かを説明するようにしています\u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eこの「辞書」と「マニュアル」が基本です。\n「マニュアル」から初回のみの手順を分離したものが「設定手順書」、\n分量が大きいもの、めったに使わないものを分離したのが「逆引きマニュアル」です。\n「逆引きマニュアル」は必ずタグを付けるようにして、\n「辞書」や「マニュアル」からたどりやすくしています\u003csup id=\"fnref:6\"\u003e\u003ca href=\"#fn:6\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e6\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"書きやすい\"\u003e書きやすい\u003c/h2\u003e\n\u003cp\u003eこの構成はちょっと変わってますが、自分としてはものすごく書きやすいです。\nその理由をいくつか書きます。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eタイトルを考えなくてよい\n\u003cul\u003e\n\u003cli\u003eタイトルは全て「単語そのもの」です。「マニュアル」とか「辞書」とかは、Hugoのテーマ機能でつけてます。\u003c/li\u003e\n\u003cli\u003eSEOには不利かと思いますが、タイトルに悩まなくて済むのは時間の節約になります。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e何が足りないかが分かる\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egame\u003c/code\u003eタグがあるときに、\u003ccode\u003egame\u003c/code\u003eの記事が必要だと分かります。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eansible\u003c/code\u003eのマニュアルがあるときに、\u003ccode\u003eansible\u003c/code\u003eの記事(\u003ccode\u003edic\u003c/code\u003e)が必要だと分かります。\u003c/li\u003e\n\u003cli\u003eこれらのチェックをスクリプトにしている\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e定型化している\n\u003cul\u003e\n\u003cli\u003e辞書は必ず\u003ccode\u003e〜〜とは\u003c/code\u003eからは始まっています。\u003c/li\u003e\n\u003cli\u003e逆引きマニュアルは\u003ccode\u003eやりたいこと\u003c/code\u003e, \u003ccode\u003e前提条件\u003c/code\u003e, \u003ccode\u003e手順\u003c/code\u003eの3つを含めるようにしています。\u003c/li\u003e\n\u003cli\u003e公式サイト、外部リンクなどはYAML Front MatterでURLとタイトルを貼るだけで、いい感じにしてくれます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cdel\u003e分割しやすい\u003c/del\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003eサブセクション機能を使うことにより、分割しやすくなっています。\u003c/del\u003e\u003c/li\u003e\n\u003cli\u003eサブセクションは見通しが悪く、ビルドに時間もかかるので廃止予定です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eランダムボタンがある\n\u003cul\u003e\n\u003cli\u003eたまに自分で押して、レビューに使用しています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"その他のセクション候補\"\u003eその他のセクション候補\u003c/h2\u003e\n\u003cp\u003eこのサイトでは使っていませんが、他で使っているセクションや用語を書いておきます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e「常識」: 仕事では知識の共有が重要なので、最低限共有すべき基本知識を記載しています。これはタグでもいいかも。\u003c/li\u003e\n\u003cli\u003e「成果物」: \u003ca href=\"https://esa.io/\"\u003eesa\u003c/a\u003eで、自分が作った著作物や、二次著作物をまとめるために使っています。\u003c/li\u003e\n\u003cli\u003e「用語集」: このサイトにおける「辞書」と同じです。こっちの方がしっくり来るかも。\u003c/li\u003e\n\u003cli\u003e「記録」: このサイトにおける「ログ」と同じです。\u003c/li\u003e\n\u003cli\u003e「作業手順書」: このサイトにおける「逆引きマニュアル」と同じです。\u003c/li\u003e\n\u003cli\u003e「意思決定」: アーキテクチャや規約、目標などを入れています。\n\u003cul\u003e\n\u003cli\u003e「プロジェクト」: \u003ca href=\"/dic/project/\"\u003eプロジェクト(タスク管理)\u003c/a\u003eのことです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"影響を受けたもの\"\u003e影響を受けたもの\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/scrapbox/\"\u003eScrapbox\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMarkdown系サービス\n\u003cul\u003e\n\u003cli\u003eQiita\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://esa.io/\"\u003eesa\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.martinfowler.com/bliki/\"\u003eBliki\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.ne.jp/asahi/hishidama/home/tech/index.html\"\u003eひしだまのコンピューター関連技術メモ(Hishidama\u0026rsquo;s Programming MemoPage)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e一般的なブログに近いのはここです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eスクリプトなどを含みます。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e引用をまとめる意味がなさそうなので、辞書に統合しました。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e専門的で分かりにくい人もいると思いますが。\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003eまだそのページは作ってないですが。\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:6\"\u003e\n\u003cp\u003e最低2クリック必要なのでまだ分かりづらいですが。\u0026#160;\u003ca href=\"#fnref:6\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ドラゴンクエストX 目覚めし五つの種族 オンライン",
    "url": "https://www.ikemo3.com/dic/dq10/",
    "contents": "\u003ch2 id=\"ドラゴンクエストxとは\"\u003eドラゴンクエストXとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/dq/\"\u003eドラゴンクエストシリーズ\u003c/a\u003eの1つで、オンラインゲームです。\u003c/p\u003e\n\u003ch2 id=\"ネトゲ恐怖症の自分でも楽しめた\"\u003eネトゲ恐怖症の自分でも楽しめた\u003c/h2\u003e\n\u003cp\u003e2017/10現在、個人的事情により休止中ですが、\n\u003ca href=\"/dic/online-game-phobia/\"\u003eネトゲ恐怖症\u003c/a\u003eの自分でも楽しめるゲームでした。\u003c/p\u003e\n"
  }, 
  {
    "title": "ネトゲ恐怖症",
    "url": "https://www.ikemo3.com/dic/online-game-phobia/",
    "contents": "\u003ch2 id=\"ネトゲ恐怖症とは\"\u003eネトゲ恐怖症とは\u003c/h2\u003e\n\u003cp\u003eオンラインゲームが怖くてやれないということです。\nあくまで俗語で、病気ではありません。\u003c/p\u003e\n\u003ch2 id=\"どれくらい苦手か\"\u003eどれくらい苦手か\u003c/h2\u003e\n\u003cp\u003eドリームキャストに\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%83%B3%E3%82%BF%E3%82%B7%E3%83%BC%E3%82%B9%E3%82%BF%E3%83%BC%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3\"\u003eファンタシースターオンライン(PSO)\u003c/a\u003e\nというゲームがあって買ったのですが、\nオンラインに接続するのが怖くて結局オフラインでしかプレイしませんでした。\u003c/p\u003e\n\u003cp\u003e正確にはネットワーク経由で不特定多数の人とプレイするのが苦手で、\nネットワーク経由でも近くの人とプレイするゲーム、\n例えば\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%A4%E3%82%B8_%E3%82%AA%E3%83%96_%E3%82%A8%E3%83%B3%E3%83%91%E3%82%A4%E3%82%A2\"\u003eエイジ オブ エンパイア(AoE)\u003c/a\u003eは大学時代よく遊んでました。\u003c/p\u003e\n\u003cp\u003e特に対戦ゲームが苦手で、\nマリオカート8も全くオンラインでプレイしませんでした。\u003c/p\u003e\n\u003ch2 id=\"ちょっとだけ克服\"\u003eちょっとだけ克服\u003c/h2\u003e\n\u003cp\u003e長らくネトゲ恐怖症が続いていたのですが、少しだけプレイできるゲームができました。\nそれは、\u003ca href=\"/dic/dq10/\"\u003eドラゴンクエストX\u003c/a\u003eと、\u003ca href=\"/dic/splatoon/\"\u003eSplatoon\u003c/a\u003eです。\n実際のところは単なる考え過ぎで、\nオンラインゲームで危険なケースはほとんどありません。\n少なくともネットで記事を書く行為よりは安全です。\u003c/p\u003e\n"
  }, 
  {
    "title": "株式",
    "url": "https://www.ikemo3.com/dic/stock/",
    "contents": "\u003ch2 id=\"株式とは\"\u003e株式とは\u003c/h2\u003e\n\u003cp\u003e会社に出資したときにもらうものです。\n大きく、配当を受け取る権利と、株主総会で議決権を行使する権利の2つがあります。\u003c/p\u003e\n\u003ch2 id=\"株は儲かるのか\"\u003e株は儲かるのか?\u003c/h2\u003e\n\u003cp\u003e株は儲かる儲からないという観点で語られることが多いですが、\n本質的には儲かるようになっています。\u003c/p\u003e\n\u003ch3 id=\"純利益は基本的にプラス\"\u003e純利益は基本的にプラス\u003c/h3\u003e\n\u003cp\u003eその理由は、日本取引所グループの「長期データ(総合)」にあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.jpx.co.jp/markets/statistics-equities/misc/04.html\"\u003eその他統計資料 | 日本取引所グループ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eどのシートでもいいのですが\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\n一番長期的なデータがある「単体総合(単純)」で話をします。\u003c/p\u003e\n\u003cp\u003e1株あたり当期純利益は基本的にずっとプラスになっています。\nすなわち、上場企業の純利益を合計すると、プラスになります\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e純利益は、配当という形で直接投資家に還元されることもあれば、\n利益剰余金\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003eと言う形で保持されることもあります。\u003c/p\u003e\n\u003cp\u003e配当されなくても利益剰余金が増えると、\n将来の配当期待が高まることで、長期的には株価が上がる要因になります。\u003c/p\u003e\n\u003cp\u003eよって、原則として、株は利益が出るようになっています。\u003c/p\u003e\n\u003ch3 id=\"損をするケース3つ\"\u003e損をするケース3つ\u003c/h3\u003e\n\u003cp\u003e例外はいくつかあります。\n1つ目は、当期純利益がマイナスの場合。これは過去に以下のケースがありました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e1999年: アジア通貨危機\u003c/li\u003e\n\u003cli\u003e2002年: ITバブル崩壊\u003c/li\u003e\n\u003cli\u003e2009年: サブプライム問題\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eつまり、歴史に残るような経済問題があったときが該当します。\nただ、これによるマイナスはだいたい1年しかありません。\u003c/p\u003e\n\u003cp\u003e2つ目は、一部の企業がやらかした場合です。\n「連結総合(加重)」の東証2部の2017年8〜9月\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003eがマイナスになってます。\nこれは、東芝による影響で、一時的なものです。\u003c/p\u003e\n\u003cp\u003eこの2つは一時的なものですが、もう一つ大きな問題があります。\nそれは、「手数料」です。\u003c/p\u003e\n\u003cp\u003e東証全体のベンチマークと言えばTOPIX(東証株価指数)ですが、\n仮にTOPIXに連動したインデックスファンドを買う場合、\n信託報酬がかかります。\nもちろん、普通の株を買う場合にも手数料がかかります。\nこれは純粋な損失です。\u003c/p\u003e\n\u003ch2 id=\"長期分散投資が良い\"\u003e長期分散投資が良い\u003c/h2\u003e\n\u003cp\u003eではどれくらい儲かるかというと、\n先程の資料ではPER(株価収益率)がだいたい15〜20の間で推移していると分かります。\nよって、逆数を取ると、5〜6%程度になります。\nこれから「例外」を考慮した上で、\n手数料を引いた割合が長期的に儲かる割合なので、\n長期的には年率4〜5%くらいになるかと思います。\u003c/p\u003e\n\u003cp\u003eもちろん、長期的には儲かる可能性が高いというだけで、\n短期的にはマイナスになる可能性はあります。\nなので、一般に言われているとおり、\nリターンを求めるなら若いうちからの長期投資がベストです\u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e。\nただ、20代なら自分に投資するだけで精一杯だと思いますが。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eおそらく単体より連結、単純より加重が良さそうですが、以下の話に本質的な差はないです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e単純株価平均は会社数や、株式分割にも影響するので、参考にならないです。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003eいわゆる「内部留保」とほぼ同じです。ただしこれは現金とは限りません。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003eこれを書いているのが2017年10月末なので、もう少し続くでしょう。\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003eそういう自分もできてないんですけどね。\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ExcelのテーブルをMarkdownに変換する方法",
    "url": "https://www.ikemo3.com/inverted/excel/excel-table-to-markdown/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eMicrosoft Excelで書いた表をMarkdownしたい場合の方法です。\u003c/p\u003e\n\u003ch2 id=\"方法\"\u003e方法\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://www.tablesgenerator.com/markdown_tables\"\u003eTables Generator\u003c/a\u003eを使用する。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nuitsjp/CopyToMarkdownAddIn\"\u003eCopyToMarkdownAddIn\u003c/a\u003eを導入する\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e手軽なのは前者ですが、ペーストしづらいデータ\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003eを扱う場合は、後者の方法がいいかと思います。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://forest.watch.impress.co.jp/docs/review/1032227.html\"\u003e【レビュー】「Excel」の選択セルをMarkdownのテーブル記法でコピーできる「CopyToMarkdownAddIn」 - 窓の杜\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eTables Generatorは「サーバにデータを保存しない」と言っていますが、認められないケースもあるかと。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Java: ローカル変数は意味のない値で初期化してはいけない",
    "url": "https://www.ikemo3.com/theme/java/do-not-initialize-local-variables/",
    "contents": "\u003ch2 id=\"何がダメなのか\"\u003e何がダメなのか\u003c/h2\u003e\n\u003cp\u003eもちろん「必要な値」で初期化するのはOKですが、\nローカル変数に特に意味もなく \u003ccode\u003eString str = null\u003c/code\u003e とか、\n\u003ccode\u003eString str = \u0026quot;\u0026quot;\u003c/code\u003e という初期化をしてるコードを見ます。\n自分の中では不要な値で初期化をしないのは常識だと思ってるのですが、\n意外と書いている本がありません\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"c言語を引きずっている\"\u003eC言語を引きずっている\u003c/h2\u003e\n\u003cp\u003e意味のない値で初期化する人は、C言語の経験者が多いと思います。\nなぜなら、C言語では、ローカル変数の宣言時の値は\u003cstrong\u003e不定\u003c/strong\u003eだからです。\nつまり、プログラムを実行するたびに値が変わる可能性があります。\nもちろん、コンパイラで警告が出ますが。\u003c/p\u003e\n\u003cp\u003e問題は、C言語のこの慣習をJavaに引きずっていることです。\u003c/p\u003e\n\u003cp\u003eJavaでは、ローカル変数を初期化せずに使うと、\u003cstrong\u003eコンパイルエラー\u003c/strong\u003eになります。\nすなわち、ローカル変数を意味のない値で初期化すると、\nコンパイラが検知できるはずのバグを、検知できなくなります。\u003c/p\u003e\n\u003cp\u003e例えば以下のコードの場合\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e、0より小さい場合は空文字が出力されます。\nこれはおそらく意図した挙動ではありません。\nもし、\u003ccode\u003eString str = \u0026quot;\u0026quot;;\u003c/code\u003e が、 \u003ccode\u003eString str;\u003c/code\u003e と書かれていた場合、\nコンパイルエラーになります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eprint\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e i) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  String str \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (i \u003cspan style=\"color:#f92672\"\u003e==\u003c/span\u003e 0) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    str \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;0です。\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  } \u003cspan style=\"color:#66d9ef\"\u003eelse\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (i \u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e 0) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    str \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;0より大きい数字です。\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  System.\u003cspan style=\"color:#a6e22e\"\u003eout\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eprintln\u003c/span\u003e(str);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eもし、0より小さい場合に本当に空文字を出したい場合は、\n以下のように書くほうがいいでしょう。\nバグではなく、意図的に空文字を出していることが分かります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eprint\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e i) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  String str;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (i \u003cspan style=\"color:#f92672\"\u003e==\u003c/span\u003e 0) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    str \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;0です。\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  } \u003cspan style=\"color:#66d9ef\"\u003eelse\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (i \u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e 0) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    str \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;0より大きい数字です。\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  } \u003cspan style=\"color:#66d9ef\"\u003eelse\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    str \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  System.\u003cspan style=\"color:#a6e22e\"\u003eout\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eprintln\u003c/span\u003e(str);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e絶対ありえないなら、IllegalArgumentExceptionを投げるのがいいでしょう。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003epublic\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eprint\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e i) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  String str;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (i \u003cspan style=\"color:#f92672\"\u003e==\u003c/span\u003e 0) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    str \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;0です。\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  } \u003cspan style=\"color:#66d9ef\"\u003eelse\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (i \u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e 0) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    str \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;0より大きい数字です。\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  } \u003cspan style=\"color:#66d9ef\"\u003eelse\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ethrow\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e IllegalArgumentException(\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;0より小さい数字を渡さないでください!\u0026#34;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  System.\u003cspan style=\"color:#a6e22e\"\u003eout\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eprintln\u003c/span\u003e(str);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e多分あると思いますが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e説明用のコードなので、汚いのは無視してください。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Markdown",
    "url": "https://www.ikemo3.com/manual/markdown/",
    "contents": "\u003ch2 id=\"主なmarkdownの書式\"\u003e主なMarkdownの書式\u003c/h2\u003e\n\u003ch3 id=\"midashi\"\u003e見出し\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e#\u003c/code\u003e→\u003ccode\u003e\u0026lt;h1\u0026gt;\u003c/code\u003e, \u003ccode\u003e##\u003c/code\u003e→\u003ccode\u003e\u0026lt;h2\u0026gt;\u003c/code\u003e, \u0026hellip;\u003c/li\u003e\n\u003cli\u003e見出しにIDを付ける場合は \u003ccode\u003e### 見出し {#midashi}\u003c/code\u003e などとする。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"リンク\"\u003eリンク\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e通常のリンク: \u003ccode\u003e[リンクテキスト](URL)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e名前付きリンク:\n\u003cul\u003e\n\u003cli\u003eリンク: \u003ccode\u003e[リンクテキスト][名前]\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003eリンクテキスト = 名前の場合は\u003ccode\u003e[リンクテキスト][]\u003c/code\u003eのように省略可能\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.github.com/gfm/\"\u003eGitHub Flavored Markdown\u003c/a\u003eの場合は\u003ccode\u003e[リンクテキスト]\u003c/code\u003eのみでOK\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e名前の定義: \u003ccode\u003e[名前]: URL\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"脚注\"\u003e脚注\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eリンク: \u003ccode\u003e[^n]\u003c/code\u003e: nは1から始まる数字\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003e脚注の定義: \u003ccode\u003e[^n]: 説明\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"lint\"\u003eLint\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DavidAnson/vscode-markdownlint\"\u003eDavidAnson/vscode-markdownlint: Markdown linting and style checking for Visual Studio Code\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVS Codeのプラグイン。\u003c/p\u003e\n\u003cp\u003e設定はファイル \u003ccode\u003e.markdownlint.json\u003c/code\u003e に記載する。\n例えChangeLogで同じ名前の見出しをつけている場合、MD024(同じ名前の見出しをつけない)が警告される。\u003c/p\u003e\n\u003cp\u003eこれを抑制するためには、以下のようにする。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-json\" data-lang=\"json\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;MD024\u0026#34;\u003c/span\u003e: {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026#34;siblings_only\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://github.github.com/gfm/#example-527\"\u003eGitHub Flavored Markdown Spec Example 527\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eHugoでは\u003ccode\u003e[^footnote]\u003c/code\u003eのような書き方もできますが、この規則がどこから来ているのかは分かりません。。。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Microsoft Excel",
    "url": "https://www.ikemo3.com/dic/excel/",
    "contents": "\u003ch2 id=\"microsoft-excelとは\"\u003eMicrosoft Excelとは\u003c/h2\u003e\n\u003cp\u003e表計算ソフトです。\u003c/p\u003e\n\u003ch2 id=\"使いやすいけど問題が多い\"\u003e使いやすいけど問題が多い\u003c/h2\u003e\n\u003cp\u003eExcelは確かに使いやすい\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eのですが、\n問題も多いソフトです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e印刷がズレる\n\u003cul\u003e\n\u003cli\u003eズレにくいノウハウはありますが、根本的には無理そうです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e中身は別でも同名のファイルが開けない\n\u003cul\u003e\n\u003cli\u003e回避策はあるようですが。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"/dic/proprietary-software/\"\u003eプロプライエタリ・ソフトウェア\u003c/a\u003eではありますが、\nファイルフォーマットが標準化されている\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003eので、\n個人的にはあまりこだわりはないですね。\u003c/p\u003e\n\u003ch2 id=\"といってもやっぱり止めたい\"\u003eといってもやっぱり止めたい\u003c/h2\u003e\n\u003cp\u003eといってもやっぱりExcelは止めたいです。\n一番の理由は、\u003cstrong\u003eバイナリフォーマット\u003c/strong\u003eだからです。\n\u003ca href=\"/dic/markdown/\"\u003eMarkdown\u003c/a\u003e含めテキストベースで何とかしようというところにこだわってるので。\nあと、Webができる前に作られたソフトなので、\n文書間のリンクがしにくいのが難点ですね。\n逆に言えば、1つで完結するものには便利ですが。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eWordが酷すぎるのでなおさら。。。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eOffice Open XMLという名前で、規格になっています。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Ssd",
    "url": "https://www.ikemo3.com/tags/ssd/",
    "contents": ""
  }, 
  {
    "title": "SSD: 寿命をチェックする方法(Linux)",
    "url": "https://www.ikemo3.com/inverted/ssd/check-lifetime/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eSSDの寿命がどれくらいかを推測する方法です。\u003c/p\u003e\n\u003ch2 id=\"作業手順\"\u003e作業手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e機種を調べる\n\u003col\u003e\n\u003cli\u003e任意のユーザで\u003ccode\u003elsblk\u003c/code\u003eと打ち、対象となるデバイスを探す。\u003c/li\u003e\n\u003cli\u003erootユーザで\u003ccode\u003esmartctl -i \u0026lt;デバイス名\u0026gt;\u003c/code\u003eと打つ。\n\u003cul\u003e\n\u003cli\u003eデバイス名は1.で調べた\u003ccode\u003e/dev/sda\u003c/code\u003eなど。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003eSMARTの値を取得\n\u003cul\u003e\n\u003cli\u003erootユーザで\u003ccode\u003esmartctl -A \u0026lt;デバイス名\u0026gt;\u003c/code\u003eと打つ。\u003c/li\u003e\n\u003cli\u003eこのうち、以下の値が参考になる\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eAvailable_Reservd_Space\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMedia_Wearout_Indicator\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTotal_LBAs_Written\u003c/code\u003e\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e\n\u003cul\u003e\n\u003cli\u003e自分がUPDATEDが\u003ccode\u003eOffline\u003c/code\u003eとなりましたが、これがチェックに影響があるかどうかは分かりません\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e(書き込みをすると値は増えるようです)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"total_lbas_writtenの見方\"\u003e\u003ccode\u003eTotal_LBAS_Written\u003c/code\u003eの見方\u003c/h2\u003e\n\u003cp\u003e機種によって単位が違うようです。\nSanDisk Ultra IIの場合は、単位はGBのようです\u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eTo do it, I turned to our standard endurance testing methodology. Basically, I wrote sequential 128KB data (QD1) to the drive and monitored the SMART values 230 and 241, i.e. Media Wear Out Indicator (MWI) and Total GB Written.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e機種によって変わるかもしれません。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.nkjmkzk.net/?p=1380\"\u003eSSD(Intel X25-M)で寿命を確認するには at nkjmkzk.net\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"http://enear555.blog114.fc2.com/blog-entry-148.html\"\u003e古いパソコンに見合ったSSDを探す。 – 欲しいモノの情報をネットで調べてまとめる\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e\u003ccode\u003eman smartctl\u003c/code\u003eに色々書いていますが、詳細は未チェック。\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.anandtech.com/show/8520/sandisk-ultra-ii-240gb-ssd-review\"\u003eSanDisk Ultra II (240GB) SSD Review\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ドラゴンクエストシリーズ",
    "url": "https://www.ikemo3.com/dic/dq/",
    "contents": "\u003ch2 id=\"ドラゴンクエストシリーズとは\"\u003eドラゴンクエストシリーズとは\u003c/h2\u003e\n\u003cp\u003eスクウェア・エニックスが発売しているRPGです。\u003c/p\u003e\n\u003ch2 id=\"全部プレイ済\"\u003e全部プレイ済\u003c/h2\u003e\n\u003cp\u003e本編に限ればですが、1〜11まで全部プレイしています。\n1と2のみ、\u003ca href=\"/dic/super-famicom/\"\u003eスーパーファミコン\u003c/a\u003eの\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%89%E3%83%A9%E3%82%B4%E3%83%B3%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88I%E3%83%BBII\"\u003eドラゴンクエストI・II\u003c/a\u003eでプレイ\nしましたが、他はリアルタイムでプレイしています。\n\u003ca href=\"/dic/dq11/\"\u003eDQ11\u003c/a\u003eは\u003ca href=\"/dic/nintendo-3ds/\"\u003e3DS\u003c/a\u003eでプレイしました。\n\u003ca href=\"/dic/dq10/\"\u003eDQ10\u003c/a\u003eはVersion 2の範囲までプレイしています\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e個人的事情により休止中\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Git",
    "url": "https://www.ikemo3.com/manual/git/",
    "contents": "\u003ch2 id=\"最新版のインストール方法rhel-centos\"\u003e最新版のインストール方法(RHEL, CentOS)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://ius.io/\"\u003eIUS\u003c/a\u003eの提供するリポジトリを使うのが早いです。\u003c/p\u003e\n\u003cp\u003eCentOS 6の場合は以下のようになります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eyum install https://centos6.iuscommunity.org/ius-release.rpm\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eyum install git2u\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e古いバージョンのGitが入っている場合は、以下のようにコンフリクトします。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eError: git2u conflicts with git-1.7.1-9.el6_9.x86_64\nError: git2u-perl-Git conflicts with perl-Git-1.7.1-9.el6_9.noarch\nError: git2u-core conflicts with git-1.7.1-9.el6_9.x86_64\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこの場合は、エラーが出たパッケージを削除してからインストールしてください。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erpm -e git perl-Git\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eyum install git2u\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"入れておくとよい設定\"\u003e入れておくとよい設定\u003c/h2\u003e\n\u003ch3 id=\"会社とプライベートで分ける\"\u003e会社とプライベートで分ける\u003c/h3\u003e\n\u003cp\u003ev2.13.0から有効なようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/SugarShootingStar/items/64f239f89d25a3b9f520\"\u003egitconfigで会社用アカウントと個人用アカウントを楽に使い分けする - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/htanjo/items/51245c08327a31da73f4\"\u003egit configをプロジェクトによって使い分ける - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"名前メールアドレスの設定\"\u003e名前、メールアドレスの設定\u003c/h3\u003e\n\u003cp\u003eメールアドレスがプロジェクトによって違う場合は、\n名前だけでも構いません。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit config --global user.name \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Hideki Ikemoto\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit config --global user.email \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;ikemo333@gmail.com\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"カラー表示\"\u003eカラー表示\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit config --global color.ui auto\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"日本語ファイル名をそのまま表示したい\"\u003e日本語ファイル名をそのまま表示したい\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://git-scm.com/docs/git-config#git-config-corequotePath\"\u003ecore.quotepath\u003c/a\u003eを設定する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit config --global core.quotepath false\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"エディタの設定centos\"\u003eエディタの設定(CentOS)\u003c/h3\u003e\n\u003cp\u003eCentOS 7では、デフォルトで\u003ccode\u003evi\u003c/code\u003eがエディタとして使われている。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit var GIT_EDITOR\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e通常\u003ccode\u003evi\u003c/code\u003eコマンドを打つと\u003ccode\u003evim\u003c/code\u003eが起動するが、\nこの定義はaliasにすぎないため、\nデフォルトだと\u003ccode\u003e/usr/bin/vi\u003c/code\u003e(Small版\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e])が起動する。\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003evim-enhanced\u003c/code\u003e(Huge版)を有効にするためには、以下のように設定する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit config --global core.editor vim\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"bash\"\u003ebash\u003c/h3\u003e\n\u003cp\u003eパスは環境による。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 補完設定。\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esource /usr/local/etc/bash_completion.d/git-completion.bash\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# プロンプト設定\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esource /usr/local/etc/bash_completion.d/git-prompt.sh\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 変更されたファイルの表示(`*`: unstaged、`+`: staged)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eGIT_PS1_SHOWDIRTYSTATE\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003etrue\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# アップストリームとの違い(`=`: 同じ、`\u0026gt;`: ahead, `\u0026lt;`: behind, `\u0026lt;\u0026gt;`: diverged)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eGIT_PS1_SHOWUPSTREAM\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003etrue\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 新規ファイルの存在(`%`で表示)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eGIT_PS1_SHOWUNTRACKEDFILES\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003etrue\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# スタッシュの存在(`$`で表示)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eGIT_PS1_SHOWSTASHSTATE\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003etrue\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# 色付きで表示(要調査・・・)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eGIT_PS1_SHOWCOLORHINTS\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"基本的な流れ\"\u003e基本的な流れ\u003c/h2\u003e\n\u003cp\u003emasterからdevelブランチを切って作業する場合の大まかな手順です。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eブランチを作成\u0026amp;移動: \u003ccode\u003egit checkout -b devel\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eブランチで作業\u003c/li\u003e\n\u003cli\u003e必要ならsquash\u003c/li\u003e\n\u003cli\u003emasterにマージ\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003egit checkout master\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egit merge devel\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--no-ff\u003c/code\u003eを付けない場合、可能ならばfast-forwardを使います。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"クローンgit-clone\"\u003eクローン(git clone)\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003egit clone \u0026lt;URL\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e最新の履歴だけ取得するには、 \u003ccode\u003egit clone --depth 1 \u0026lt;URL\u0026gt;\u003c/code\u003e のようにする。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/usamik26/items/7bfa61b31344206077fb\"\u003egit リポジトリの最新の履歴だけを取得する shallow clone - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"取得git-fetch--git-pull\"\u003e取得(git fetch / git pull)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eリモートで消されたブランチを削除する: \u003ccode\u003egit fetch --prune\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"コミットgit-commit\"\u003eコミット(git commit)\u003c/h2\u003e\n\u003ch3 id=\"コミットメッセージ\"\u003eコミットメッセージ\u003c/h3\u003e\n\u003cp\u003eこの記事が参考になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/numanomanu/items/45dd285b286a1f7280ed\"\u003e【今日からできる】コミットメッセージに 「プレフィックス」 をつけるだけで、開発効率が上がった話 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただ、参照している\u003ca href=\"https://github.com/angular/angular.js/blob/master/DEVELOPERS.md\"\u003eAngularJS\u003c/a\u003eは1.xのもので、\u003ca href=\"https://github.com/angular/angular/blob/master/CONTRIBUTING.md#-commit-message-guidelines\"\u003eAngular\u003c/a\u003e (2.x以上のことを指す)の方が良さそうです。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;type\u0026gt;(\u0026lt;scope\u0026gt;): \u0026lt;subject\u0026gt;\n\n\u0026lt;body\u0026gt;\n\n\u0026lt;footer\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003etype:\n\u003cul\u003e\n\u003cli\u003ebuild: ビルドシステムや外部ライブラリの変更\n\u003cul\u003e\n\u003cli\u003e.gitignoreもこのtypeが使われている模様。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eci: CI設定やスクリプトの変更\u003c/li\u003e\n\u003cli\u003edocs: ドキュメントのみの修正\u003c/li\u003e\n\u003cli\u003efeat: 機能追加\u003c/li\u003e\n\u003cli\u003efix: バグ修正\u003c/li\u003e\n\u003cli\u003eperf: パフォーマンスの改善\u003c/li\u003e\n\u003cli\u003erefactor: リファクタリング(機能追加でもバグ修正でもない)\u003c/li\u003e\n\u003cli\u003erelease: リリース(Angularのドキュメントには記載がないが、logより)\u003c/li\u003e\n\u003cli\u003estyle: コードに影響しない変更\u003c/li\u003e\n\u003cli\u003etest: テストの追加修正\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003escope: 影響範囲(オプション)\n\u003cul\u003e\n\u003cli\u003eこれはプロジェクトによるが、Angularではnpmのパッケージ名を使用している。\u003c/li\u003e\n\u003cli\u003e例外は以下の通り。\n\u003cul\u003e\n\u003cli\u003epackaging: package.json, d.tsなど全てのパッケージに影響するもの\u003c/li\u003e\n\u003cli\u003echangelog: CHANGELOG.md\u003c/li\u003e\n\u003cli\u003edocs-infra: ドキュメント作成ツール(静的サイトジェネレータ)に関連するもの\u003c/li\u003e\n\u003cli\u003eivy: 新レンダリングエンジンIvyに関するもの\u003c/li\u003e\n\u003cli\u003engcc: Angular Compatibility Compilerに関するもの\u003c/li\u003e\n\u003cli\u003eなし: 全てのパッケージで行われるスタイル、テスト、リファクタリング、特定のパッケージに関連しないドキュメントの変更\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003esubject\n\u003cul\u003e\n\u003cli\u003e現在形、命令形を使用\u003c/li\u003e\n\u003cli\u003e最初の文字を大文字にしない。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.\u003c/code\u003eで終わらない\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ebody\n\u003cul\u003e\n\u003cli\u003esubjectと同じく、現在形、命令形を使用\u003c/li\u003e\n\u003cli\u003e詳細を書く(変更のモチベーションなど)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efooter: 以下のものを書く\n\u003cul\u003e\n\u003cli\u003eクローズするチケットの番号\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBREAKING CHANGE:\u003c/code\u003e(破壊的な変更、互換性に影響があるもの)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"実行権限の追加update-index\"\u003e実行権限の追加(update-index)\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit update-index --chmod\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e+x\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"クリーンgit-clean\"\u003eクリーン(git clean)\u003c/h2\u003e\n\u003cp\u003e必ず-i, -n, -fのいずれかのオプションが必要。\ngitの他の多くのコマンドと違って、取り返しがつかなくなるから。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e-n: 何が起きるかの表示のみ(dry-run)\u003c/li\u003e\n\u003cli\u003e-f: 削除の実行\u003c/li\u003e\n\u003cli\u003e-i: インタラクティブモード\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eその他オプション。-xと-Xの違いはまだ良くわかってません。。。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e-d: ディレクトリも削除\u003c/li\u003e\n\u003cli\u003e-x: .gitignoreなどのファイルを無視。つまり、無視されているファイルも削除対象。\u003c/li\u003e\n\u003cli\u003e-X: Gitが無視しているファイルのみ削除。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"リセットgit-reset\"\u003eリセット(git reset)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esoft: コミットのみ取り消し\u003c/li\u003e\n\u003cli\u003emixed: インデックスへの登録を取り消し\u003c/li\u003e\n\u003cli\u003ehard: 作業ツリーも取り消し\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003esoftはあまり使わないかも。mixed(デフォルト)か、hardがほとんどか。\u003c/p\u003e\n\u003ch3 id=\"リモートに強制的に合わせたい場合\"\u003eリモートに強制的に合わせたい場合\u003c/h3\u003e\n\u003cp\u003eリモートが正しいので強制的に合わせたいとき。\n\u003ccode\u003e--hard\u003c/code\u003eなので当然ローカルの変更は破棄されるのに注意。\nあとコメントも書いてますが、当然master以外の場合は変更する。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit fetch\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# masterの場合\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit reset --hard origin/master\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"チェックアウトgit-checkout\"\u003eチェックアウト(git checkout)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eブランチの切り替え\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e: \u003ccode\u003egit checkout \u0026lt;ブランチ名\u0026gt;\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e自動的に追跡ブランチが作成されることもあります\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eブランチを作成しつつ切り替え: \u003ccode\u003egit checkout -b \u0026lt;ブランチ名\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ブランチgit-branch\"\u003eブランチ(git branch)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e上流ブランチ(upstream branch)を表示: \u003ccode\u003egit branch -vv\u003c/code\u003e(vを2つ並べる)\u003c/li\u003e\n\u003cli\u003eリモート追跡ブランチ(remote-tracking branches)を表示: \u003ccode\u003egit branch -r\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eブランチを削除: \u003ccode\u003egit branch -d \u0026lt;ブランチ名\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"1ファイルだけ別のブランチから取得\"\u003e1ファイルだけ別のブランチから取得\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://qiita.com/oret/items/b646fcada9d89ed308c4\"\u003eGit 1ファイルだけ別のブランチから持ってくる - Qiita\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下のようにする。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit show ブランチ名:ファイル名\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"つまみ食いgit-cherry-pick\"\u003eつまみ食い(git cherry-pick)\u003c/h2\u003e\n\u003cp\u003e特定のコミットのみ適用する機能。\u003c/p\u003e\n\u003cp\u003eマージが入るとそのままではうまくいかない。\n以下のようにする必要がある。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/takc923/items/8e2d87d692f840b14464\"\u003emerge commitをcherry-pickする - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"タグgit-tag\"\u003eタグ(git tag)\u003c/h2\u003e\n\u003ch3 id=\"タグの削除\"\u003eタグの削除\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003egit tag delete タグ名\ngit push origin :refs/tags/タグ名\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"差分git-diff\"\u003e差分(git diff)\u003c/h2\u003e\n\u003cp\u003eブランチ間のファイルの差分を表示するときは以下のようにする。\nワークスペースのファイルを指定するときはブランチ名をつけない。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit diff ブランチ名:ファイル名 ブランチ名:ファイル名\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"ログgit-log\"\u003eログ(git log)\u003c/h2\u003e\n\u003cp\u003e特定のコミットのみ出力するには以下のようにする。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eHASH\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003exxxx\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit log \u003cspan style=\"color:#e6db74\"\u003e${\u003c/span\u003eHASH\u003cspan style=\"color:#e6db74\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cul\u003e\n\u003cli\u003e表示オプション\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--graph\u003c/code\u003e: ツリーをグラフ表示\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--decorate\u003c/code\u003e: ブランチ名、タグ名などを表示\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--oneline\u003c/code\u003e: 1コミット1行表示\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--stat:\u003c/code\u003e 変更行数の表示(人間に読める形式)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--numstat\u003c/code\u003e: 変更行数の表示(プログラム処理用)\n\u003cul\u003e\n\u003cli\u003e表示形式は「追加行数」「削除行数」「ファイル名」の順\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--date=フォーマット\u003c/code\u003e: 日時の表示形式を変更(strftime形式)\n\u003cul\u003e\n\u003cli\u003e例: \u003ccode\u003e--date=format-local:'%Y-%m-%d %H:%M:%S'\u003c/code\u003e : ローカルタイムゾーンで YYYY-MM-DD hh:mm:ss 形式で表示される。\u003c/li\u003e\n\u003cli\u003e常に設定する場合は \u003ccode\u003egit config log.date フォーマット\u003c/code\u003e のようにする。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eパッチ形式で出力: \u003ccode\u003egit log -p\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e差分を検索\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e: \u003ccode\u003egit log -S\u0026lt;検索文字列\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"リモートgit-remote\"\u003eリモート(git remote)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eリモートリポジトリの変更: \u003ccode\u003egit remote set-url \u0026lt;name\u0026gt; \u0026lt;newurl\u0026gt;\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e通常\u003ccode\u003e\u0026lt;name\u0026gt;\u003c/code\u003eはoriginになる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"リベースgit-rebase\"\u003eリベース(git rebase)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E6%A9%9F%E8%83%BD-%E3%83%AA%E3%83%99%E3%83%BC%E3%82%B9\"\u003eGit - リベース\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://git-scm.com/docs/git-rebase\"\u003eGit - git-rebase Documentation\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eexperimentブランチを、masterの先頭に適用したい場合\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e変更したいブランチをチェックアウト(例: \u003ccode\u003egit checkout experiment\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e元となるブランチにリベース(例: \u003ccode\u003egit rebase master\u003c/code\u003e)\n\u003cul\u003e\n\u003cli\u003e単に\u003ccode\u003egit rebase master experiment\u003c/code\u003eで良いみたいです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eserverブランチから派生したclientブランチの変更点を、masterの先頭に適用したい場合\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egit rebase --onto master server client\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"一時退避git-stash\"\u003e一時退避(git stash)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e追加: \u003ccode\u003egit stash\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egit stash push\u003c/code\u003e または \u003ccode\u003egit stash save\u003c/code\u003e も同じ。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egit stash push\u003c/code\u003e は古いバージョンで使えないことがある(1.8.3.1ではなかった)。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egit stash save\u003c/code\u003e は現在は非推奨になっている(2.16.2で確認)。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-u\u003c/code\u003e: 未追跡のファイルも対象とする。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-a\u003c/code\u003e: 全てのファイルも対象とする(ignore対象のものも)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e一覧: \u003ccode\u003egit stash list\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e詳細表示: \u003ccode\u003egit stash show\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e適用: \u003ccode\u003egit stash apply\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e適用 \u0026amp; 削除: \u003ccode\u003egit stash pop\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e削除: \u003ccode\u003egit stash drop\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"検索git-grep\"\u003e検索(git grep)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://git-scm.com/docs/git-grep\"\u003eGit - git-grep Documentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-e\u003c/code\u003e: 基本正規表現\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-E\u003c/code\u003e: 拡張正規表現(\u003ccode\u003e+\u003c/code\u003eなどが使える)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"制御コードを検索\"\u003e制御コードを検索\u003c/h3\u003e\n\u003cp\u003e例: キャリッジリターンを検索したい場合\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit grep -n \u003cspan style=\"color:#e6db74\"\u003e$\u0026#39;\\r\u0026#39;\u003c/span\u003e *.yaml\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"サブモジュールgit-submodule\"\u003eサブモジュール(git submodule)\u003c/h2\u003e\n\u003ch3 id=\"追加\"\u003e追加\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit submodule add \u0026lt;repository\u0026gt; \u0026lt;path\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e内部でやっていると思われること。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eリポジトリをclone\u003c/li\u003e\n\u003cli\u003eリポジトリの情報を.gitsubmoduleに書き込む。\u003c/li\u003e\n\u003cli\u003eリポジトリのハッシュをどこかに書き込む。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003ecloneはちょっとだけ特殊です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ecloneしたリポジトリ以下の.gitはただのファイルっぽい\n\u003cul\u003e\n\u003cli\u003e中身を見ると、本物の.gitのパスが書き込まれている。\u003c/li\u003e\n\u003cli\u003eそのパスは、git submoduleコマンドを実行した親リポジトリの、\u003ccode\u003e.git/module/\u0026lt;path\u0026gt;\u003c/code\u003eに書き込まれるようです。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.git/module/\u0026lt;path\u0026gt;/config\u003c/code\u003eを見ると、core.worktreeに指定があります。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"更新\"\u003e更新\u003c/h3\u003e\n\u003cp\u003e以下のコマンドが簡単です。\n\u003ccode\u003e--remote\u003c/code\u003eと\u003ccode\u003e--rebase\u003c/code\u003eがついているのがポイント。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit submodule update --remote --rebase\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e付け忘れたり、コンフリクトした場合は、サブモジュールのディレクトリに行って、\nrebaseなりmergeなりすればいいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E3%81%95%E3%81%BE%E3%81%96%E3%81%BE%E3%81%AA%E3%83%84%E3%83%BC%E3%83%AB-%E3%82%B5%E3%83%96%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB\"\u003eGit - サブモジュール\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"一括作業\"\u003e一括作業\u003c/h3\u003e\n\u003cp\u003e以下のように、 \u003ccode\u003egit submodule foreach\u003c/code\u003e のあとに実行したいコマンドを記入します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit submodule foreach git status\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"削除\"\u003e削除\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/u1aryz/items/8d1923da79158439eeaa\"\u003egit submoduleを今風な感じで削除する - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit submodule deinit path/to/submodule\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit rm path/to/submodule \u003cspan style=\"color:#75715e\"\u003e# -f必要かも\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e.git/modules 以下には残るため、手動で削除が必要そうです。\u003c/p\u003e\n\u003ch2 id=\"複数の作業ディレクトリgit-worktree\"\u003e複数の作業ディレクトリ(git worktree)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/usamik26/items/0d42db4ea25e2a2ce845\"\u003e複数の作業ディレクトリを作成する git worktree - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit worktree add \u0026lt;path\u0026gt; \u0026lt;branch\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"gitignore\"\u003e.gitignore\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/elzup/items/4c92a2abdab56db3fb4e\"\u003egitignore に書くべきでないものは gitignore_global へ - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003egit config --global core.excludesfile ~/.gitignore_global\nvi ~/.gitignore_global\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e除外設定は以下の場所から取得するのが良い。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/github/gitignore/tree/master/Global\"\u003egitignore/Global\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/github/gitignore/blob/master/Global/Eclipse.gitignore\"\u003eEclipse\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/github/gitignore/blob/master/Global/macOS.gitignore\"\u003emacOS\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/github/gitignore/blob/master/Global/Vim.gitignore\"\u003eVim\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"gibo\"\u003egibo\u003c/h3\u003e\n\u003cp\u003e基本的にはgiboで自動生成が良いようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://git-scm.com/docs/gitignore\"\u003eGit - gitignore Documentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/tmknom/items/c4bcebe17d25381fa45d\"\u003e気付いたら.gitignoreはgiboで自動生成する時代になっていた - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eインストールはHomebrewの場合は以下のようにします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ebrew install gibo\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e例えば、Javaの場合は以下のようにします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit Java \u0026gt;\u0026gt; .gitignore\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e対応している言語・ツールは\u003ccode\u003egibo -l\u003c/code\u003eで表示できますが、\n(自分が)よく使うものは以下になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAnsible\u003c/li\u003e\n\u003cli\u003eGradle\u003c/li\u003e\n\u003cli\u003eJava\u003c/li\u003e\n\u003cli\u003eJetBrains\u003c/li\u003e\n\u003cli\u003eNode\u003c/li\u003e\n\u003cli\u003eRuby\u003c/li\u003e\n\u003cli\u003eVagrant\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"グローバルで書く-vs-リポジトリに格納\"\u003eグローバルで書く vs リポジトリに格納\u003c/h3\u003e\n\u003cp\u003e基本は以下の判断基準でいいと思います。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://qiita.com/elzup/items/4c92a2abdab56db3fb4e\"\u003egitignore に書くべきでないものは gitignore_global へ - Qiita\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003egithub/gitignore にあるか github/gitignore - Global にあるかで判断\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/github/gitignore\"\u003egithub/gitignore\u003c/a\u003eによると、\nだいたい以下のように分かれているようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eグローバル\n\u003cul\u003e\n\u003cli\u003eOS(macOS, Windows, Linuxなど)\u003c/li\u003e\n\u003cli\u003eIDE(Eclipse, JetBrains, NetBeans, JDeveloper, Xcodeなど)\u003c/li\u003e\n\u003cli\u003eエディタ(Vim, Emacs, Kateなど)\u003c/li\u003e\n\u003cli\u003eオフィス(Microsoft Office, LibreOfficeなど)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eそれ以外(リポジトリにコミットすべきもの)\n\u003cul\u003e\n\u003cli\u003eプログラミング言語\u003c/li\u003e\n\u003cli\u003eビルドツール(Gradle, Mavenなど)\u003c/li\u003e\n\u003cli\u003eフレームワーク(Railsなど)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただ、Visual Studioはグローバルではありません。\nツールの性質によるのか、他の理由なのかは謎です。\u003c/p\u003e\n\u003cp\u003eまた、必ずしもこれを守らないといけないわけではないです(のはず)。\n例えば、IDEの設定はリポジトリにあってもいいと思います。\u003c/p\u003e\n\u003ch2 id=\"属性gitattributes\"\u003e属性(gitattributes)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://git-scm.com/docs/gitattributes\"\u003eGit - gitattributes Documentation\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003e設定する場所は以下のどちらか(複数形)。\n\u003cul\u003e\n\u003cli\u003e.git/info/attributes\u003c/li\u003e\n\u003cli\u003e.gitattributes\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eチェックアウト/チェックイン時に影響\n\u003cul\u003e\n\u003cli\u003etext: テキストとして扱う。\n\u003cul\u003e\n\u003cli\u003eEOFの扱いが制御できる。例: \u003ccode\u003e*.c text\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eデフォルトはcore.eol, core.autocrlfに影響\u003c/li\u003e\n\u003cli\u003e値に\u003ccode\u003eauto\u003c/code\u003eを付けると、Gitがテキストファイルだと認識したものに対し、LFに変換します。しかし、CRLFでコミットされたら、変換しません。。。と書かれてますが意味が分かりません(結局テキストファイルでCRLFでコミットしたらどうなるのか。最初にコミットしたときの状況次第か?)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eeol: 改行コード\n\u003cul\u003e\n\u003cli\u003eいろいろありますが意味がわからんので後で調査。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eident: \u003ccode\u003e$Id\u003c/code\u003e: をオブジェクト名に変換\u003c/li\u003e\n\u003cli\u003efilter\n\u003cul\u003e\n\u003cli\u003eclean: チェックイン時のコマンド\u003c/li\u003e\n\u003cli\u003esmudge: チェックアウト時のコマンド\n\u003cul\u003e\n\u003cli\u003eちなみにsmudgeは「汚す」という意味です。cleanの逆ですね。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"暗号化\"\u003e暗号化\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AGWA/git-crypt\"\u003egit-crypt\u003c/a\u003eを入れる。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://dev.classmethod.jp/tool/git/git-crypt/\"\u003egit-crypt を使って秘密情報を版管理する ｜ Developers.IO\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/yuhr/items/52cb02d46aa19b1b9e87\"\u003eリモートリポジトリの特定のファイルを暗号化しておく - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ツール\"\u003eツール\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/manual/ghq/\"\u003eghq\u003c/a\u003eは別ページにまとめました。\u003c/p\u003e\n\u003ch3 id=\"git-open\"\u003egit-open\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003egit open\u003c/code\u003e でGitHubなどを開くツール。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paulirish/git-open\"\u003epaulirish/git-open: Type \u003ccode\u003egit open\u003c/code\u003e to open the GitHub page or website for a repository in your browser.\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eインストールは \u003ccode\u003enpm install --global git-open\u003c/code\u003e とする。\nHomebrewにあるのは別物(未調査)。\u003c/p\u003e\n\u003ch2 id=\"subversion連携\"\u003eSubversion連携\u003c/h2\u003e\n\u003cp\u003e独立した記事にしました。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/inverted/git/use-subversion-repository/\"\u003eGit: Subversion連携\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"/manual/vim/\"\u003eVim\u003c/a\u003e参照。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eSubversionだと\u003ccode\u003esvn switch\u003c/code\u003eなので慣れないときはよく忘れました。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E6%A9%9F%E8%83%BD-%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81\"\u003eGit - リモートブランチ\u003c/a\u003eに『チェックアウトしたいブランチ名が（a）まだローカルに存在せず、（b）存在するリモートは1つだけ、の場合、Gitは自動的に追跡ブランチを作ってくれるのです。』と書かれています。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e\u003ca href=\"https://qiita.com/yuichielectric/items/cce64b5b5e0eacc02e64\"\u003egit logでコミットの差分の中身で絞り込む - Qiita\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "GoAccess",
    "url": "https://www.ikemo3.com/manual/goaccess/",
    "contents": "\u003ch2 id=\"コマンドラインオプション\"\u003eコマンドラインオプション\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--log-format \u0026lt;ログフォーマット\u0026gt;\u003c/code\u003e: 指定したフォーマットで読み込みます。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--log-format=\u0026lt;ログフォーマット\u0026gt;\u003c/code\u003eでも構わないようです。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/apache-http-server/\"\u003eApache HTTP Server\u003c/a\u003eの場合は設定にもよりますが、ログフォーマットは\u003ccode\u003eCOMBINED\u003c/code\u003eを指定すると良いです。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eCOMMON\u003c/code\u003e だとリファラーやUser Agentの内容が集計されません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-o \u0026lt;出力フォーマット\u0026gt;\u003c/code\u003e: \u003ccode\u003e-o html\u003c/code\u003eと書くと、HTMLとして標準出力に吐き出されます。\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Excel方眼紙",
    "url": "https://www.ikemo3.com/dic/excel-grid-paper/",
    "contents": "\u003ch2 id=\"excel方眼紙とは\"\u003eExcel方眼紙とは\u003c/h2\u003e\n\u003cp\u003eMicrosoftの表計算ソフトのExcelを、方眼紙のように用いることです。\u003c/p\u003e\n\u003cp\u003eネットだと「表計算をワープロのように使うのは悪い」で\n思考停止してしまっているケースが多いのですが、\n個人的にはモヤモヤした話です。\u003c/p\u003e\n\u003ch2 id=\"問題が漠然としている\"\u003e問題が漠然としている\u003c/h2\u003e\n\u003cp\u003e一つは、そもそも何を議論しているのかが漠然としているからです。\nそもそもExcel方眼紙の定義は何なのかが分かりません。\n1セル1文字で入力させるものを指すこともあれば、\nセル結合をしているものを指すこともあります。\nいろいろな問題が混じったものを「Excel方眼紙」という\n一言にまとめてしまうことで、問題の本質が分かりづらくなっています。\u003c/p\u003e\n\u003ch2 id=\"excel方眼紙は予期せぬ成功\"\u003eExcel方眼紙は「予期せぬ成功」\u003c/h2\u003e\n\u003cp\u003eもう一つの理由は、Excel方眼紙は「\u003ca href=\"/dic/unexpected-success/\"\u003e予期せぬ成功\u003c/a\u003e)」だからです。\n「あなたの使い方が悪い」ではなく、\n「このような使い方をする人がたくさんいるのなら、\nそこに需要があるのではないか」と考えなければいけません。\u003c/p\u003e\n\u003ch2 id=\"自分が考える解決案\"\u003e自分が考える解決案\u003c/h2\u003e\n\u003cp\u003eと言っても自分がExcel方眼紙と呼ばれるものを\n無条件で肯定しているわけではなく、\n以下のようなものが代わりになるのではと考えています。\u003c/p\u003e\n\u003ch3 id=\"1-既存のソフトを使いこなす\"\u003e1. 既存のソフトを使いこなす\u003c/h3\u003e\n\u003cp\u003eプレゼンテーションはPowerPointなど、\n他によいソフトがある場合はそれを使うのが第一です。\nただ、Wordはあまりに使いにくいので、諦めたほうがいいです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch3 id=\"2-markdownを使う\"\u003e2. Markdownを使う\u003c/h3\u003e\n\u003cp\u003e簡易マークアップ言語としてデファクトスタンダードになる\u003ca href=\"/dic/markdown/\"\u003eMarkdown\u003c/a\u003e、\n構造化された文章はこれを使うのが一番いいと思います。\nただ、あくまで簡易マークアップ言語なので、ある程度の割り切りは必要です。\u003c/p\u003e\n\u003ch3 id=\"3-webアプリケーションを簡単に作れる方法\"\u003e3. Webアプリケーションを簡単に作れる方法\u003c/h3\u003e\n\u003cp\u003eExcel方眼紙に限らず、Excelを使うものは、\nデータベースアプリケーションとして実装するのが最善です。\nただし、もちろんアプリを作成するのにはコストがかかります。\u003c/p\u003e\n\u003cp\u003eなので、簡単にアプリを作れるプラットフォームには注目しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://kintone.cybozu.com/jp/\"\u003ekintone\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Implem/Implem.Pleasanter\"\u003ePleasanter\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"4-図を簡単に描けるもの\"\u003e4. 図を簡単に描けるもの\u003c/h3\u003e\n\u003cp\u003eExcelは描画ツールとして使われることもあります。\nそこそこ便利なのですが、専門の描画ツールに比べると劣ります。\nこの分野も発展途上ですが、無料なら\u003ca href=\"https://www.draw.io/\"\u003edraw.io\u003c/a\u003eが使いやすいです。\n\u003ca href=\"https://cacoo.com\"\u003eCacoo\u003c/a\u003eもHTML5化されたので、注目しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.draw.io/\"\u003edraw.io\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://cacoo.com\"\u003eCacoo\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"5-appleのnumbersのように1シートに複数の表を入れられるようにする\"\u003e5. AppleのNumbersのように1シートに複数の表を入れられるようにする\u003c/h3\u003e\n\u003cp\u003e最後に、Excel方眼紙が生まれる理由として、\nExcelでは1シートに1つの表しか作れないという仕様があります。\nAppleの\u003ca href=\"/dic/numbers/\"\u003eNumbers\u003c/a\u003eでは、1つのシートに複数の表を貼ることができます。\nレイアウトの自由度が高く、方眼紙にする必要性がありません。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e見た目と構造が分離しているのは知ってますが、それを理解した上でも全く使う気に慣れませんでした。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Git: ファイル名にUTF-8以外のエンコーディングを使用する",
    "url": "https://www.ikemo3.com/inverted/git/use-non-utf8-encoding-for-filename/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/git/\"\u003egit\u003c/a\u003eでファイル名にUTF-8以外(EUC-JPなど)を使用したい場合の回避方法です。\u003c/p\u003e\n\u003ch2 id=\"前提パッケージ\"\u003e前提パッケージ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egit2u-2.14.2-1.ius.centos6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eunzip-6.0-5.el6\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCentOS 6に入っているgit 1.7.1では正しくファイル名が処理できませんでした。\n\u003ca href=\"https://github.com/git/git/blob/master/Documentation/RelNotes/1.7.11.2.txt\"\u003e1.7.11.2\u003c/a\u003eの以下の修正が影響している可能性が高いです。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e * \u0026quot;git archive\u0026quot; incorrectly computed the header checksum; the symptom\n   was observed only when using pathnames with hi-bit set.\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003eGitそのものでは今のところ成功してません。\nただし、unzipコマンドで展開するときに、ファイル名のエンコーディングが指定可能です。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eOUTPUT_PATH=~\nEXTRACT_PATH=~/tmp\ngit archive HEAD --output=${OUTPUT_PATH}/master.zip\nunzip -o -O utf-8 -I euc-jp ${OUTPUT_PATH}/master.zip -d ${EXTRACT_PATH}\n\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003egitのオプション: \u003ca href=\"https://git-scm.com/docs/git-archive\"\u003egit-archive\u003c/a\u003e参照。\u003c/li\u003e\n\u003cli\u003eunzipのオプション\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-o\u003c/code\u003e: ファイルを確認せずに上書きする\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-O\u003c/code\u003e: 入力ファイル名のエンコーディング\n\u003cul\u003e\n\u003cli\u003eマニュアルにも書かれていません。\u003ccode\u003eunzip -h\u003c/code\u003eコマンドでは\u003ccode\u003especify a character encoding for DOS, Windows and OS/2 archives\u003c/code\u003eと出るようです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-I\u003c/code\u003e: 出力ファイル名のエンコーディング\n\u003cul\u003e\n\u003cli\u003eマニュアルにも書かれていません。\u003ccode\u003eunzip -h\u003c/code\u003eコマンドでは\u003ccode\u003especify a character encoding for UNIX and other archives\u003c/code\u003eと出ます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-d\u003c/code\u003e: 出力先ディレクトリ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"gitでできないか\"\u003eGitでできないか?\u003c/h2\u003e\n\u003cp\u003eGitでチェックアウトしたときにできないか調べてみました。\n結果的にはうまくいっていません。\u003c/p\u003e\n\u003cp\u003e考えたのは、\u003ca href=\"https://git-scm.com/docs/gitattributes\"\u003egitattributes\u003c/a\u003e + convmvを使ったもの。\u003c/p\u003e\n\u003cp\u003eまず、.git/config に以下の設定を追加します。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e[filter \u0026#34;convmv\u0026#34;]\n\tclean = convmv -f euc-jp -t utf-8 %f --notest\n\tsmudge = convmv -f utf-8 -t euc-jp %f --notest\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e次に、.gitattributesまたは.git/info/attributesに以下の設定を追加しました。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e*.txt filter=convmv\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eただ、これだとうまくいきません。\nconvmvでファイル名が見つからないというエラーが出ます。\nおそらくconvmvに渡す引数をエスケープしないといけないのかなと。\u003c/p\u003e\n\u003cp\u003eできるかもしれませんが、以下のようにファイルアクセスは非推奨とのことなので、\nやらない方が良さそうです。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eSo, smudge and clean commands should not try to access the file on disk,\nbut only act as filters on the content provided to them on standard input.\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "OpenID Connect",
    "url": "https://www.ikemo3.com/dic/openid-connect/",
    "contents": "\u003ch2 id=\"openid-connectとは\"\u003eOpenID Connectとは\u003c/h2\u003e\n\u003cp\u003e認証のためのプロトコルです。\n\u003cstrong\u003e認可\u003c/strong\u003eプロトコルであるOAuth 2.0上に構築されています。\u003c/p\u003e\n\u003ch2 id=\"認証と認可\"\u003e認証と認可\u003c/h2\u003e\n\u003cp\u003e認証(Authentication\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e)と認可(Authorization\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e)は\n似たような字面を持つ単語ですが、意味は違います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e認証: その人が誰かを確認する。\u003c/li\u003e\n\u003cli\u003e認可: その人がある権限を持つかどうかを確認する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"/dic/twitter/\"\u003eTwitter\u003c/a\u003eで言えば、ユーザ名とパスワードでログインする行為が「認証」であり、\nアプリ連携時に与える、「ホームを読み込む権限」という行為が「認可」です。\nOpenID Connectは、OAuthに対し、「身元を確認する権限を与える\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e」ことで、\nOAuth 2.0上に認証機能を実現しています。\n以下の記事が分かりやすいです\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.sakimura.org/2011/05/1087/\"\u003e非技術者のためのOAuth認証(?)とOpenIDの違い入門 | @_Nat Zone\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eAuthnまたはAuthNと略されることもあります。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eAuthzまたはAuthZと略されることもあります。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003eUserInfoエンドポイントへのアクセス権限\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003eこの記事を書いたのは、OpenID Connectの共同著者の1人です。\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Mac: リセットしたい場合",
    "url": "https://www.ikemo3.com/inverted/mac/restore/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eディスクがおかしくなったときなど、起動したい場合です。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e以下の3つをよく使います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNVRAMリセット(スピーカー、解像度などのトラブル)\u003c/li\u003e\n\u003cli\u003eSMCリセット(電源周りのトラブル)\u003c/li\u003e\n\u003cli\u003e復元モード(ディスク周りのトラブル)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"nvramリセット\"\u003eNVRAMリセット\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e電源を停止します。\u003c/li\u003e\n\u003cli\u003eCommand + Option + P + R + 電源ボタン\u003c/li\u003e\n\u003cli\u003eコンピュータが再起動し、2度目の起動音が聞こえるまでキーを押したままにする。。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"smcリセット\"\u003eSMCリセット\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e電源を停止します。\u003c/li\u003e\n\u003cli\u003eShift + Control + Option + 10秒ほど電源ボタン(またはTouch IDボタン)を押す。\u003c/li\u003e\n\u003cli\u003e電源ボタンを押してコンピュータを起動\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"復元モード\"\u003e復元モード\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e電源を停止します。\u003c/li\u003e\n\u003cli\u003eCommand + Rを押しながら電源を押します。\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Editor",
    "url": "https://www.ikemo3.com/tags/editor/",
    "contents": ""
  }, 
  {
    "title": "Intel",
    "url": "https://www.ikemo3.com/dic/intel/",
    "contents": "\u003ch2 id=\"intelとは\"\u003eIntelとは\u003c/h2\u003e\n\u003cp\u003e大手半導体メーカーです。\nx86系CPUで知られています。\u003c/p\u003e\n\u003ch2 id=\"最新のx86系cpu\"\u003e最新のx86系CPU\u003c/h2\u003e\n\u003cp\u003e以下の2つのようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/Coffee_Lake%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3\"\u003eCoffee Lake\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/Kaby_Lake_Refresh%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3\"\u003eKaby Lake Refresh\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e2016年にMacBook Proを買ったのですぐに買う予定はないのですが、\nKaby Lake RefreshではTDP 25Wクラス\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eで4コアになったのが大きいですね。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eMacBook Pro 13インチ相当\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Kampo",
    "url": "https://www.ikemo3.com/tags/kampo/",
    "contents": ""
  }, 
  {
    "title": "MacBook Pro",
    "url": "https://www.ikemo3.com/dic/macbook-pro/",
    "contents": "\u003ch2 id=\"macbook-proとは\"\u003eMacBook Proとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003eが発売している、ポータブルコンピュータです。\u003c/p\u003e\n\u003ch2 id=\"2010年からmacbook-pro使い\"\u003e2010年からMacBook Pro使い\u003c/h2\u003e\n\u003cp\u003e自分は2010年からMacBook Proをメインで使ってます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://support.apple.com/kb/SP583?locale=ja_JP\u0026amp;viewlocale=ja_JP\"\u003eMacBook Pro (13-inch, Mid 2010)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://support.apple.com/kb/SP619?locale=ja_JP\u0026amp;viewlocale=ja_JP\"\u003eMacBook Pro (13-inch, Early 2011)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://support.apple.com/kb/SP749?locale=ja_JP\u0026amp;viewlocale=ja_JP\"\u003eMacBook Pro (15インチ, 2016)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e2010→2011のときはHDD→SSDに乗り換えたかったので1年で買い替えました。\nSSDなのでしばらくは問題なく使えたのですが、4年経つといろいろとガタが来たので、\n2016年に買い替えました。\u003c/p\u003e\n\u003ch2 id=\"15インチを選んだ理由\"\u003e15インチを選んだ理由\u003c/h2\u003e\n\u003cp\u003e2016年の買い替えのときは、悩んだ結果15インチにしました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e13インチは2コアで内蔵GPU、15インチは4コアで外付けGPU\u003c/li\u003e\n\u003cli\u003e価格差は4万円程度\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれなら13インチを選ぶ理由はないなぁと思い、奮発して15インチにしました。\nもちろんTouch Barありです(Touch Barなしを選ぶなら1年前に買ってます)。\u003c/p\u003e\n"
  }, 
  {
    "title": "Vim",
    "url": "https://www.ikemo3.com/dic/vim/",
    "contents": "\u003ch2 id=\"vimとは\"\u003eVimとは\u003c/h2\u003e\n\u003cp\u003eテキストエディタです。\nVi IMprovedの略です。\u003c/p\u003e\n\u003ch2 id=\"vim--vi-improved\"\u003eVim = Vi IMproved\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://vimdoc.sourceforge.net/htmldoc/intro.html#intro\"\u003eVim documentation: intro\u003c/a\u003eに以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVim stands for Vi IMproved.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eなお、このページへは、以下のようにして辿ることができます。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://www.vim.org/\"\u003e公式サイト\u003c/a\u003eに行く。\u003c/li\u003e\n\u003cli\u003e左側の\u0026quot;Documentation\u0026quot;をクリック(vim.sourceforege.ioに移動)\u003c/li\u003e\n\u003cli\u003e左側の\u0026quot;Vimdoc site\u0026quot;をクリック\u003c/li\u003e\n\u003cli\u003e左側の\u0026quot;Vim Reference Manual\u0026quot;をクリック\u003c/li\u003e\n\u003cli\u003e直後に見える\u0026quot;intro.txt\u0026quot;をクリック\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"本当の読みはヴィム\"\u003e本当の読みは「ヴィム」\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://vimdoc.sourceforge.net/htmldoc/intro.html#intro\"\u003eVim documentation: intro\u003c/a\u003eに以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVim is pronounced as one word, like Jim, not vi-ai-em.  It\u0026rsquo;s written with a capital, since it\u0026rsquo;s a name, again like Jim.\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "Vim",
    "url": "https://www.ikemo3.com/manual/vim/",
    "contents": "\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003cp\u003eCentOSではデフォルトでsyntax on未対応のため、\nvim-enhancedを入れる必要がある。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://sasaki.hateblo.jp/entry/20111229/1325166531\"\u003ecentOS上のvimでsyntax onできないのは仕様です - so tired\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eデフォルト(\u003ccode\u003evim-minimal\u003c/code\u003e)は、Small版になっている。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/b4b4r07/items/f7a4a0461e1fc6f436a4\"\u003eVim の種類 (Vim family) - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e/usr/bin/vi --version | grep -e Huge -e Small -e Normal\nSmall version without GUI.  Features included (+) or not (-):\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ccode\u003evim-enhanced\u003c/code\u003eは、Huge版になっている。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e/usr/bin/vim --version | grep -e Huge -e Small -e Normal\nHuge 版 without GUI.  機能の一覧 有効(+)/無効(-)\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"キーバインド\"\u003eキーバインド\u003c/h2\u003e\n\u003cp\u003eファイル名は補完可能です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e次の単語: \u003ccode\u003ew\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e前の単語: \u003ccode\u003eb\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e行末まで削除: \u003ccode\u003eD\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUndo: \u003ccode\u003eu\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRedo: \u003ccode\u003eCtrl + r\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eファイルオープン: \u003ccode\u003e:e \u0026lt;ファイル名\u0026gt;\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e:e\u003c/code\u003eのようにファイル名を指定しないと、現在のファイルを再読込します\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eファイルを読み込んで挿入: \u003ccode\u003e:r \u0026lt;ファイル名\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eインデント解除: \u003ccode\u003eCtrl + D\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eウィンドウ分割: \u003ccode\u003e:sp\u003c/code\u003e(\u003ccode\u003e:split\u003c/code\u003e)\n\u003cul\u003e\n\u003cli\u003eウィンドウ移動(上下左右): \u003ccode\u003eCtrl + w\u003c/code\u003e + \u003ccode\u003ehjkl\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e次のウィンドウに移動: \u003ccode\u003eCtrl + w\u003c/code\u003e + \u003ccode\u003ew\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e折りたたみ\n\u003cul\u003e\n\u003cli\u003e折りたたみの開閉: \u003ccode\u003eza\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e検索: \u003ccode\u003e/\u003c/code\u003e, \u003ccode\u003e?\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e特殊文字をそのまま検索したい場合は\u003ccode\u003e\\V\u003c/code\u003eから始めるとよい\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"書式指定\"\u003e書式指定\u003c/h2\u003e\n\u003cp\u003e以下のようにする。例えば、SQLの場合。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e:set syntax=sql\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"ファイルのエンコーディングを変更\"\u003eファイルのエンコーディングを変更\u003c/h2\u003e\n\u003cp\u003eShift-JIS(MS932)のファイルを開く場合は以下のようにする。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e:e ++enc=cp932\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"改行を変更して保存\"\u003e改行を変更して保存\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e:set ff=unix\n:w\n\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://nanasi.jp/articles/howto/file/save-with-format.html\"\u003eファイルのエンコーディング、改行コードを変更して、ファイルを保存する。 — 名無しのvim使い\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"クリップボードの中身をそのままペーストする\"\u003eクリップボードの中身をそのままペーストする\u003c/h2\u003e\n\u003cp\u003eデフォルトだとインデントされてしまうので、ペーストモードにする。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e:set paste\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"set_pasteを自動で設定したい\"\u003eset_pasteを自動で設定したい\u003c/h2\u003e\n\u003cp\u003e検索したが複雑な模様。\u003c/p\u003e\n\u003cp\u003ea!やi!を使うことで自動でペーストモードになるらしい。\u003c/p\u003e\n\u003ch2 id=\"現在ロードされているプラグインを表示する方法\"\u003e現在ロードされているプラグインを表示する方法\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e:scriptnames\u003c/code\u003eコマンドを打つ\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e\u003c/p\u003e\n\u003ch2 id=\"vimrcの書き方\"\u003e.vimrcの書き方\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eコメント: \u003ccode\u003e\u0026quot;\u003c/code\u003e(ダブルクォート)を使用してください。閉じる必要はありません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ファイル名補完\"\u003eファイル名補完\u003c/h2\u003e\n\u003cp\u003eデフォルトでは、最初にマッチしたファイルを補完しますが、\nこの挙動はbashと違っているため、使いづらいです。\u003c/p\u003e\n\u003cp\u003e.vimrcに以下の設定を入れることで、bashと同じような挙動になります。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eset wildmode=longest,list\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"vundleによるプラグイン管理\"\u003eVundleによるプラグイン管理\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/VundleVim/Vundle.vim#quick-start\"\u003eQuick Start\u003c/a\u003eより。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003egit clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003evimに入って以下のコマンドを打ちます。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e:PluginInstall\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"vimの設定\"\u003e.vimの設定\u003c/h3\u003e\n\u003cp\u003e必要なのは以下の行のようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e先頭の2行(requiredと書かれている)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecall vundle#begin()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePlugin 'VundleVim/Vundle.vim'\u003c/code\u003e (requiredと書かれている)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecall vundle#end()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efiletype plugin indent on\u003c/code\u003e もしくは \u003ccode\u003e filetype plugin on\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eset nocompatible\nfiletype off\n\n\u0026#34; set the runtime path to include Vundle and initialize\nset rtp+=~/.vim/bundle/Vundle.vim\ncall vundle#begin()\n\n\u0026#34; let Vundle manage Vundle, required\nPlugin \u0026#39;VundleVim/Vundle.vim\u0026#39;\n\n\u0026#34; All of your Plugins must be added before the following line\ncall vundle#end()            \u0026#34; required\n\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://vim-jp.org/vimdoc-ja/editing.html#edit-a-file\"\u003eediting - Vim日本語ドキュメント\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"http://vim-jp.org/vimdoc-ja/pattern.html#/magic\"\u003ehttp://vim-jp.org/vimdoc-ja/pattern.html#/magic\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"https://stackoverflow.com/questions/48933/how-do-i-list-loaded-plugins-in-vim\"\u003eHow do I list loaded plugins in Vim? - Stack Overflow\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "葛根湯加川芎辛夷",
    "url": "https://www.ikemo3.com/dic/kakkonto-ka-senkyuusinni/",
    "contents": "\u003ch2 id=\"葛根湯加川芎辛夷とは\"\u003e葛根湯加川芎辛夷とは\u003c/h2\u003e\n\u003cp\u003e「かっこんとうかせんきゅうしんい」と呼びます。\n「\u003ca href=\"/dic/kakkonto/\"\u003e葛根湯\u003c/a\u003e」に「加」えて、「川芎」と「辛夷」を加えたものです。\u003c/p\u003e\n\u003ch2 id=\"効能\"\u003e効能\u003c/h2\u003e\n\u003cp\u003e「鼻づまりや慢性鼻炎の方に」と書かれています。\n葛根湯がベースなので、効能に風邪が入っていないのは謎ですが、\n以下のように、葛根湯の証のときに使われるようなので、\n「鼻が詰まるタイプの風邪」にはちょうど良いようです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e本来は葛根湯の「証（しょう）」*5で鼻づまり、慢性鼻炎があるときに使うが、\n一般の慢性鼻炎、副鼻腔炎にもよく使う。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://trendy.nikkeibp.co.jp/article/column/20100226/1031112/?P=2\"\u003e風邪の薬として有名な葛根湯は鼻炎にも用いる - 日経トレンディネット\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Apple Watch",
    "url": "https://www.ikemo3.com/dic/apple-watch/",
    "contents": "\u003ch2 id=\"apple-watchとは\"\u003eApple Watchとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003eが発売している、スマートウォッチです。\u003c/p\u003e\n\u003ch2 id=\"予想外の当たり\"\u003e予想外の当たり\u003c/h2\u003e\n\u003cp\u003e自分は\u003ca href=\"https://www.apple.com/jp/apple-watch-series-1/\"\u003eSeries 1\u003c/a\u003eを持っているのですが、\n最初は見送って、買うときも正直買うかどうかかなり悩みました。\nApple Watchを欲しいと思ったのは育児で両手が塞がることが多いためですが、\niPhoneで出来ることを3万円出して買うだけの価値があるか不安でした。\u003c/p\u003e\n\u003cp\u003eSeries 1を選んだのも、(当時最新機種の)Series 2が人気で入手できない以上に、\n使いこなせるかどうか分からないから、なるべく安く済ませたいのが理由でした。\u003c/p\u003e\n\u003cp\u003e結果的には、当たりでした。\nメインで使ってるのは時計、通知、タイマー、ストップウォッチ、天気くらいで、\n使いこなしているとは言えないのですが、買ってよかったと思います。\u003c/p\u003e\n\u003ch2 id=\"防水性能\"\u003e防水性能\u003c/h2\u003e\n\u003cp\u003eSeries 1は水に浸すことは推奨していませんとのこと。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eApple Watch Series 1 および Apple Watch (第 1 世代) は防沫性能と耐水性能を備えていますが、水に浸すことは推奨していません。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eSeries 2と3は水に浸すのはOKですが、石鹸やシャンプーなどはNGとのこと。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eApple Watch Series 2 や Apple Watch Series 3 を着けたままシャワーを浴びてもかまいませんが、本体に石鹸、シャンプー、コンディショナー、ローション、香水が付かないようにしてください。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"バンド\"\u003eバンド\u003c/h2\u003e\n\u003cp\u003e自分は普段はデフォルトでついてくるスポーツバンドを使っているのですが、\n夏はさすがに汗をかくので、以下のバンドを買ってみました。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B075JFB1BL/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B075JFB1BL.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B075JFB1BL/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nBRG For apple watch バンド,ミラネーゼループ　アップルウォッチバンド　アップルウォッチ1　apple watch series 2 apple watch series 3 ステンレス留め金製（38mm,シルバー）１８ヶ月保証付き\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eちょっと磁力が強いのと、最初は慣れが必要でしたが、つけ心地は悪くないです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Java: CUIでjarファイルに埋め込まれたバージョンを取得する方法",
    "url": "https://www.ikemo3.com/inverted/java/get-implementation-version-from-manifest/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/maven/\"\u003eMaven\u003c/a\u003eのpom.xmlで指定したバージョンをCUIで取得したい場合があります。\u003c/p\u003e\n\u003ch2 id=\"格納先\"\u003e格納先\u003c/h2\u003e\n\u003cp\u003ejarファイルの中に、\u003ccode\u003eMETA-INF/MANIFEST.MF\u003c/code\u003eというファイルがあります。\nそのファイルの中の\u003ccode\u003eImplementation-Version:\u003c/code\u003eに、pom.xmlで指定されたバージョンが書かれています。\u003c/p\u003e\n\u003ch2 id=\"実行方法\"\u003e実行方法\u003c/h2\u003e\n\u003cp\u003e以下のコマンドで取得できます。\u003ccode\u003e$JARFILE\u003c/code\u003eには、jarファイルのパスを指定してください。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eunzip -q -c $JARFILE META-INF/MANIFEST.MF | grep \u0026#34;^Implementation-Version\u0026#34; | cut -d \u0026#39; \u0026#39; -f 2\n\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eunzip -q\u003c/code\u003e: unzipプログラムの出力を抑制する\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eunzip -c\u003c/code\u003e: 標準出力に内容を出す\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecut -d ' '\u003c/code\u003e: 区切り文字を半角スペースにする\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecut -f 2\u003c/code\u003e: 2番目のフィールドを出力する\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "デフレ",
    "url": "https://www.ikemo3.com/dic/deflation/",
    "contents": "\u003ch2 id=\"デフレとは\"\u003eデフレとは\u003c/h2\u003e\n\u003cp\u003e絶対悪です。\u003c/p\u003e\n\u003ch2 id=\"絶対悪な理由\"\u003e絶対悪な理由\u003c/h2\u003e\n\u003cp\u003e2001年とかなり古いものですが、この説明が一番分かりやすいです。\n要は、お金がない人、借金をする人に不利で、\nお金を持っている人に有利なのがデフレです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://web.archive.org/web/20160808104413/http://www.iser.osaka-u.ac.jp/~ohtake/paper/deflation.htm\"\u003eデフレはどうして悪いのか\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれだけだと理解出来ないので別の言い方をすると、\nデフレは「ローリスク、ミドルリターン」を生み出すからです。\u003c/p\u003e\n\u003cp\u003e世の中、特に金融商品はリスクとリターンが釣り合っているのが基本です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e預金: ノーリスク・ノーリターン、\u003c/li\u003e\n\u003cli\u003e債券: ローリスク・ローリターン\u003c/li\u003e\n\u003cli\u003e投資信託(インデックス): ミドルリスク・ミドルリターン\u003c/li\u003e\n\u003cli\u003e個別株: ハイリスク・ハイリターン\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eでもデフレはその構造を覆します。\n預金や債券はリスク以上にリターンが得られるようになります。\nなので、デフレはリスクを取らない「資産家」に有利です。\u003c/p\u003e\n\u003cp\u003eこれだけはあってはダメです。\u003c/p\u003e\n\u003ch2 id=\"インフレはどうか\"\u003eインフレはどうか?\u003c/h2\u003e\n\u003cp\u003eハイパーインフレはもちろん絶対悪ですが、\nインフレは良いとまでは言えなくても、少なくとも必要悪とは言えます。\nなぜなら、「理論上は」0%のインフレ・デフレでない状態が良いとしても、\n実際にはそれよりプラスになったりマイナスになったりします。\u003c/p\u003e\n\u003cp\u003eしかし、デフレは絶対悪なので、これだとよくありません。\nだから、「絶対にデフレにならない」基準として、\n年率1〜2%のインフレが良いとされていると考えられます。\u003c/p\u003e\n\u003cp\u003eインフレの心配ばかりする人がいますが、\nインフレを抑えるのは難しくありません。\nむしろ、あれだけ金融緩和しても、なかなかインフレにならない方が正直予想外でした。\nまあ、統計上は微妙にプラスなんですけどね。\u003c/p\u003e\n"
  }, 
  {
    "title": "決断疲れ",
    "url": "https://www.ikemo3.com/dic/decision-fatigue/",
    "contents": "\u003ch2 id=\"決断疲れとは\"\u003e決断疲れとは\u003c/h2\u003e\n\u003cp\u003e意思決定を繰り返した結果、決断力が鈍くなる現象です。\u003c/p\u003e\n\u003ch2 id=\"お節介\"\u003eお節介\u003c/h2\u003e\n\u003cp\u003e例えば、お節介が嫌われがちなのもこの言葉で説明できます。\nお節介な人は、何かと自分に判断を要求します。\nしかし、そのたびに判断していると、決断疲れを引き起こします。\u003c/p\u003e\n"
  }, 
  {
    "title": "Rsync",
    "url": "https://www.ikemo3.com/tags/rsync/",
    "contents": ""
  }, 
  {
    "title": "rsync: 転送先でのパーミッションを変更したい",
    "url": "https://www.ikemo3.com/inverted/rsync/chmod/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eWindowsからLinuxに転送するときなど、強制的にパーミッションを統一したい場合の対応です。\u003c/p\u003e\n\u003ch2 id=\"前提条件\"\u003e前提条件\u003c/h2\u003e\n\u003cp\u003emacOSではrsyncが古いため、Homebrewなどを使って新しいバージョンを入れてください。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/BlueEventHorizon/items/209af1c9beaff669cd68\"\u003emacosx 設定メモ rsync 編 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"設定方法\"\u003e設定方法\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e--chmod\u003c/code\u003eオプションで可能です。\n例えば、ディレクトリは0755, ファイルは0644にしたいときは、\u003ccode\u003e--chmod=D0755,F0644\u003c/code\u003eとすれば可能です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003ersyncのバージョンによります。CentOS 7では\u003ccode\u003eD0755\u003c/code\u003eという指定は使えませんでした。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Ansible: 対象ホストを間違えないようにする方法",
    "url": "https://www.ikemo3.com/inverted/ansible/restrict-target-host/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/ansible/\"\u003eAnsible\u003c/a\u003eを実行する時に、\n対象ホストがきちんと設定されているか不安なことがあります。\n万が一設定を間違えて、全然違うサーバの設定を変えてしまったとか泣けません。\u003c/p\u003e\n\u003cp\u003e本気でやるなら、\u003ca href=\"https://www.ansible.com/tower\"\u003eAnsible Tower\u003c/a\u003eの出番かと思いますが、\n簡単に導入できて、それなりに効果がある方法を書いておきます。\u003c/p\u003e\n\u003ch2 id=\"設定方法\"\u003e設定方法\u003c/h2\u003e\n\u003cp\u003e以下の2つの作業を行います。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/playbooks_variables.html#local-facts-facts-d\"\u003eローカルファクト\u003c/a\u003eの設定をする。\u003c/li\u003e\n\u003cli\u003ePlaybookでローカルファクトの確認をする。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"1-ローカルファクトの設定\"\u003e1. ローカルファクトの設定\u003c/h3\u003e\n\u003cp\u003eまず、ローカルファクトの設定は以下のようにします。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003emkdir -p /etc/ansible/facts.d\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003evi /etc/ansible/facts.d/server.fact\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e以下のようなYAMLファイルを作成します。\nこの場合は、対象ホストがJenkinsを導入することを表しています。\nVagrantなど、仮想マシン作成時に設定するのがおすすめです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;role\u0026#34;: \u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;jenkins\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"2-ローカルファクトの確認\"\u003e2. ローカルファクトの確認\u003c/h3\u003e\n\u003cp\u003ePlaybookの先頭で以下のチェックを入れます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eローカルファクトの確認\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003ehosts\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eservers\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003etasks\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    - \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eassert role\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003eassert\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003ethat\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003eansible_local.server.role == \u0026#34;jenkins\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eこれで、もし\u003ccode\u003eserver.fact\u003c/code\u003eの\u003ccode\u003erole\u003c/code\u003eに\u003ccode\u003ejenkins\u003c/code\u003eが入っていない場合は、そこで実行がストップします。\u003c/p\u003e\n\u003ch2 id=\"複数設定する場合\"\u003e複数設定する場合\u003c/h2\u003e\n\u003cp\u003e先の例ではroleが1つでしたが、複数設定することも可能です。\u003c/p\u003e\n\u003ch3 id=\"1-ローカルファクトの設定-1\"\u003e1. ローカルファクトの設定\u003c/h3\u003e\n\u003cp\u003eまず、\u003ccode\u003e/etc/ansible/facts.d/server.fact\u003c/code\u003e に以下のように記載します\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;roles\u0026#34;: \u003c/span\u003e[\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;jenkins\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;sonarqube\u0026#34;\u003c/span\u003e]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"2-ローカルファクトの確認-1\"\u003e2. ローカルファクトの確認\u003c/h3\u003e\n\u003cp\u003eこのときに、Playbookの先頭の\u003ccode\u003eassert\u003c/code\u003eには以下のように書きます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# \u0026#39;jenkins\u0026#39;だけ入っていたらいい場合\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eassert\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003ethat\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026#34;jenkins\u0026#34; in ansible_local.server.roles\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# \u0026#39;jenkins\u0026#39;または\u0026#39;sonarqube\u0026#39;が入っていたら実行する場合\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eassert\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003ethat\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026#34;jenkins\u0026#34; in ansible_local.server.roles or \u0026#34;sonarqube\u0026#34; in ansible_local.server.roles\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"カスタマイズ\"\u003eカスタマイズ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eディレクトリ \u003ccode\u003e/etc/ansible/facts.d\u003c/code\u003e は設定\u003ccode\u003efact_path\u003c/code\u003eで変更できます(あまり変える意味はないかも)\u003c/li\u003e\n\u003cli\u003eファイル名 \u003ccode\u003eserver.fact\u003c/code\u003e はあくまで例で、拡張子が\u003ccode\u003e.fact\u003c/code\u003eである任意のファイル名に変更可能です。ファイル名を変えると、チェック時の \u003ccode\u003eansible_local.\u003c/code\u003e の次の \u003ccode\u003eserver\u003c/code\u003e が変わります。\u003c/li\u003e\n\u003cli\u003eファイルフォーマットはJSONの他に、INI形式、JSONを返す実行ファイルが指定可能です。\u003c/li\u003e\n\u003cli\u003eファイルの内容は任意です。チェック以外の用途にも使えます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e1ホストで多くの役割を持たせない方がいいと思いますが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "データ",
    "url": "https://www.ikemo3.com/data/",
    "contents": "\u003ch2 id=\"このセクションについて\"\u003eこのセクションについて\u003c/h2\u003e\n\u003cp\u003eこのセクションは廃止されました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e個人的なもの→ログ\u003c/li\u003e\n\u003cli\u003eそれ以外のもの→辞書\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Safari",
    "url": "https://www.ikemo3.com/dic/safari/",
    "contents": "\u003ch2 id=\"safariとは\"\u003eSafariとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003eが開発している、Webブラウザです。\u003c/p\u003e\n\u003ch2 id=\"kdeのコードが元\"\u003eKDEのコードが元\u003c/h2\u003e\n\u003cp\u003eSafariのレンダリングエンジンはWebKitというのですが、\nこれは、元々は[KDE][]のWebブラウザKonqueror\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eのレンダリングエンジン\nKHTMLをフォーク(分岐)したものです。\nなので、ライセンスはGNU LGPLになっています。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003econqueror=征服者の\u0026rsquo;c\u0026rsquo;を\u0026rsquo;k\u0026rsquo;に変えたものです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "お店",
    "url": "https://www.ikemo3.com/tags/store/",
    "contents": ""
  }, 
  {
    "title": "Numbers(Apple)",
    "url": "https://www.ikemo3.com/dic/numbers/",
    "contents": "\u003ch2 id=\"numbersappleとは\"\u003eNumbers(Apple)とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003eが開発している表計算ソフトです。\u003c/p\u003e\n\u003ch2 id=\"1シートに複数の表が持てる\"\u003e1シートに複数の表が持てる\u003c/h2\u003e\n\u003cp\u003eNumbersの最も良い点は、1つのシートに対して、複数の表が作れることです。\nしかも、その表は別々にセルのサイズを変えられます。\u003c/p\u003e\n\u003cp\u003e例えば、以下の画像はデフォルトで入っている「貯蓄プラン」テンプレートの一部ですが、\n2つの表および見出しが自然に入っています。\nExcelでこれをやろうとすると、\nどうしてもセルの結合などを駆使しないといけません(\u003ca href=\"/dic/excel-grid-paper\"\u003eExcel方眼紙\u003c/a\u003e)。\u003c/p\u003e\n\u003cfigure\u003e\u003cimg src=\"screenshot.png\"\n    alt=\"このNumbersの例では、毎月の目標額という見出し、使い方が書かれたテキスト、貯蓄計算の表、結果の表、それぞれが独立しています。\" width=\"436\" height=\"329\"\u003e\u003cfigcaption\u003e\n      \u003ch4\u003e「貯蓄プラン」テンプレートの一部\u003c/h4\u003e\n    \u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003cp\u003eこの機能はものすごく便利なので、\nExcel含め他の表計算ソフトでも是非真似してほしいのですが、\nなぜかどこも真似ないんですよね(特許?)。\u003c/p\u003e\n\u003ch2 id=\"ファイル形式\"\u003eファイル形式\u003c/h2\u003e\n\u003cp\u003e拡張子は一貫して\u003ccode\u003e.numbers\u003c/code\u003eなのですが、\nバージョンによって中身が微妙に変わっています。\n2017-10-09現在の最新版のバージョン4.3では、ZIPファイルになっていますが、\n以前のバージョンでは、フォルダになっていました。\nフォルダをファイルのように見せるのは\u003ca href=\"/dic/next/\"\u003eNeXT\u003c/a\u003e由来で、\n変更点が分かりやすい利点もあるのですが、\nEvernoteなどのサードパーティソフトとの相性が悪い問題もあります。\u003c/p\u003e\n"
  }, 
  {
    "title": "過小評価",
    "url": "https://www.ikemo3.com/dic/underestimate/",
    "contents": "\u003ch2 id=\"過小評価とは\"\u003e過小評価とは\u003c/h2\u003e\n\u003cp\u003eあることに対して、少なく見積もる、あるいは軽く見ることです。\u003c/p\u003e\n\u003ch2 id=\"イノベーションの機会\"\u003eイノベーションの機会\u003c/h2\u003e\n\u003cp\u003e過小評価を探すことは、\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eの「イノベーションと企業家精神」にも\n似たような形で取り上げられています。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAGLC/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAGLC.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAGLC/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集5 イノベーションと企業家精神\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eそれは、「ギャップ」です。第4章の「ギャップを探す | 第二の機会」に\n以下のように書かれています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eギャップとは、現実にあるものと、あるべきものとの乖離、\nあるいは誰もがそうあるべきとしているものとの乖離であり、不一致である。\n原因はわからないことがある。見当さえつかないことがある。\nだがそれにもかかわらずギャップの存在はイノベーションの機会を示す兆候である。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e現実にある評価と、あるべき評価(=本質的評価)の違いが\n過小評価(過大評価)であり、それを見つけることはチャンスです。\nしかも、このイノベーションの機会は、\n\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eの\u003ca href=\"/dic/7-sources-of-innovative-opportunity/\"\u003eイノベーションの七つの機会\u003c/a\u003eの2番目、\nすなわち、2番目に容易な、生かしやすい機会です。\u003c/p\u003e\n"
  }, 
  {
    "title": "成果主義",
    "url": "https://www.ikemo3.com/dic/effective-based/",
    "contents": "\u003ch2 id=\"成果主義とは\"\u003e成果主義とは\u003c/h2\u003e\n\u003cp\u003e広く誤解されているものです。\u003c/p\u003e\n\u003ch2 id=\"結果で報酬を決めることではない\"\u003e結果で報酬を決めることではない\u003c/h2\u003e\n\u003cp\u003e成果主義は「結果で報酬を決めること」と誤解されています。\u003c/p\u003e\n\u003cp\u003eですが、\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eは報酬のみで管理することを否定しています。\n「明日を支配するもの」のp23に次のような記述があります。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478372632/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478372632.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478372632/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n明日を支配するもの―21世紀のマネジメント革命\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cblockquote\u003e\n\u003cp\u003eすでに五〇年も前から、金銭だけで動機づけすることはできないことが明らかになっている。\n報酬に不満があれば、やる気は失われる。だが報酬への満足は、\n四〇年前にフレデリック・ハーツバーグが、\nその著書『仕事の動機づけ』(一九五九)において名づけたように、\n衛生的要因の充足にすぎない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"成果は結果でなく出発点\"\u003e成果は結果でなく出発点\u003c/h2\u003e\n\u003cp\u003eでは、\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eは「成果」をどのように定義しているのでしょうか。\nそれはこの後、p24に書かれています(太字は引用者)。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eしたがって、とくにこれからは、人をマネジメントすることは、\n仕事をマーケティングすることを意味するようになる。\nマーケティングの出発点は、組織が何を望むかではない。\n\u003cstrong\u003e相手が何を望むか、相手にとっての価値は何か、目的は何か、成果は何かである。\u003c/strong\u003e\nつまり、適用すべきはX理論でもY理論でもなく、いかなる管理論でもないということである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこのように、「相手(顧客)が望むもの」を成果と定義しています。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eはなぜこのようなことを言ってるのでしょうか。\nそれは、多くの人が、成果に結び付くことのない雑用\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eに忙殺されているからです。\nそれを止めるために、「それは顧客のためになっているか」を考えるのが「成果主義」です。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.franklinplanner.co.jp/learning/selfstudy/ss-17.html\"\u003e7つの習慣\u003c/a\u003eにおける第三領域のことです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "内部統制",
    "url": "https://www.ikemo3.com/dic/internal-control/",
    "contents": "\u003ch2 id=\"内部統制とは\"\u003e内部統制とは\u003c/h2\u003e\n\u003cp\u003eルールでがんじがらめにすることです。\u003c/p\u003e\n\u003ch2 id=\"内部統制で不正が増えた日本ibm\"\u003e内部統制で不正が増えた日本IBM\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/ibm-japan/\"\u003e日本IBM\u003c/a\u003eでは2004年頃から内部統制が厳しくなりました。\n内部統制を進めれば進めるほど窮屈な会社になり、生産性は落ちました。\u003c/p\u003e\n\u003cp\u003eせめて内部統制によって不正は減ったのかというと、むしろ増加しています。\n\u003ca href=\"https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E3%82%A2%E3%82%A4%E3%83%BB%E3%83%93%E3%83%BC%E3%83%BB%E3%82%A8%E3%83%A0#.E4.BA.8B.E4.BB.B6.E3.83.BB.E3.83.8B.E3.83.A5.E3.83.BC.E3.82.B9.E3.81.A8.E8.A8.B4.E8.A8.9F\"\u003eWikipediaの「事件・ニュースと訴訟」\u003c/a\u003eにある通り、\n2007年頃から事件が増えています。\u003c/p\u003e\n\u003ch2 id=\"内部統制で不正が増える理由\"\u003e内部統制で不正が増える理由\u003c/h2\u003e\n\u003cp\u003e内部統制を進めるほど不正が起きる理由を説明します。\u003c/p\u003e\n\u003cfigure\u003e\u003cimg src=\"figure.png\"\u003e\u003cfigcaption\u003e\n      \u003ch4\u003e内部統制で不正が起きる理由を表した図\u003c/h4\u003e\n    \u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003cp\u003e一番左が、内部統制を行う前の状態です。\n円の内部は裁量の範囲を表しています。\u003c/p\u003e\n\u003cp\u003eこの通常の業務の中で、何か不正が行われたとします。\nこのときに、裁量を小さくすることで不正が起こらないようにします。\nその結果が中の図です。\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003e中の図でも不正が起きると、さらに内部統制を進め、右側の図になります。\nこの作業を進めると、裁量が全くなくなり、すべてが機械的に行われます。\u003c/p\u003e\n\u003cp\u003e当然ながら、これは非効率以外の何物でもありません。\n特に日本では、現場の優秀さが競争力の源であり、\n内部統制をすることは、現場の力を削ぐのと同じです。\nだから、内部統制をすればするほど、会社の競争力が落ちます。\u003c/p\u003e\n\u003ch2 id=\"間接部門の権力増大\"\u003e間接部門の権力増大\u003c/h2\u003e\n\u003cp\u003e内部統制は、もう一つの問題を引き起こします。\nそれは、間接部門の権力増大です。\u003c/p\u003e\n\u003cp\u003e間接部門は本来、みんなが共通に持っている負担を減らすことで、\n間接的に現場を手助けする役割です。\nしかし、内部統制によって、間接部門が上に立ってしまいました。\u003c/p\u003e\n\u003cp\u003eもし、現場が内部統制上は問題があるが、顧客のためになることをしたいとき\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\n現場が取りうる方法は、「顧客を捨てて内部統制を取る」\n「顧客を取って内部統制を捨てる」のどちらかしかありません。\nもし後者を選んで、結果的に見過ごせない問題があった場合、\n不正として厳しく追及されます。\u003c/p\u003e\n\u003ch2 id=\"生産性を上げるのが先\"\u003e生産性を上げるのが先\u003c/h2\u003e\n\u003cp\u003e内部統制を機能させる方法があるとしたら、それは、生産性を上げることです。\u003c/p\u003e\n\u003cp\u003e生産性を向上するためには、まず「見える化」が必要です。\nその結果として、ルールが明確になります。\u003c/p\u003e\n\u003cp\u003eルールが明確になったら、そのルールは機能するかどうかを考えます。\n曖昧なルールなら、ルールを明確化します。\n逆にガチガチで使いづらいルールなら、ルールを簡略化します。\u003c/p\u003e\n\u003cp\u003eその結果、生産性の高い、必要不可欠なのルールが出来上がったら、\nその会社は十分内部統制されていると言えるでしょう。\u003c/p\u003e\n\u003cp\u003eしかし、そのためには何年も地道な努力が必要です。\nそれが出来ない会社なら、内部統制をしないほうがまだマシです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eシステム開発で言えば、契約締結前に開発を開始することなどが該当します。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Chunked transfer encoding",
    "url": "https://www.ikemo3.com/dic/chunked-transfer-encoding/",
    "contents": "\u003ch2 id=\"chunked-transfer-encodingとは\"\u003eChunked transfer encodingとは\u003c/h2\u003e\n\u003cp\u003eHTTP 1.1またはそれ以降における、\nストリーミングによるデータ送信方法です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e長さ(HEX)\u003c/li\u003e\n\u003cli\u003eコンテンツ\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこの順番で繰り返し、長さ=0となればコンテンツの終わりと判断します。\nコンテンツの終わりの後にヘッダも追加できます\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"関連サイト\"\u003e関連サイト\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://tools.ietf.org/html/rfc7230#section-4.1\"\u003eRFC 7230 4.1. Chunked Transfer Coding\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Transfer-Encoding\"\u003eTransfer-Encoding - HTTP | MDN\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://en.wikipedia.org/wiki/Chunked_transfer_encoding\"\u003eChunked transfer encoding - Wikipedia\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://tools.ietf.org/html/rfc7230#section-4.1.2\"\u003eRFC 7230 4.1.2. Chunked Trailer Part\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "オペレーティングシステム",
    "url": "https://www.ikemo3.com/tags/operating-system/",
    "contents": ""
  }, 
  {
    "title": "葛根湯",
    "url": "https://www.ikemo3.com/dic/kakkonto/",
    "contents": "\u003ch2 id=\"葛根湯とは\"\u003e葛根湯とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/kampo/\"\u003e漢方\u003c/a\u003e薬の1つです。\u003c/p\u003e\n\u003ch3 id=\"構成\"\u003e構成\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e葛根\u003c/li\u003e\n\u003cli\u003e麻黄\u003c/li\u003e\n\u003cli\u003e桂皮\u003c/li\u003e\n\u003cli\u003e芍薬\u003c/li\u003e\n\u003cli\u003e生姜\u003c/li\u003e\n\u003cli\u003e大棗\u003c/li\u003e\n\u003cli\u003e甘草\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"風邪葛根湯ではない\"\u003e風邪＝葛根湯ではない\u003c/h2\u003e\n\u003cp\u003e葛根湯は風邪薬として有名ですが、\n風邪＝葛根湯とは限りません。\u003c/p\u003e\n\u003cp\u003e例えば、喉にくる風邪は銀翹散、鼻風邪には小青竜湯、\nあと麻黄湯もよく使われます(自分は使ったことないですが)。\n銀翹散は一度飲むと、「これ喉に良いやつや」と分かります。\n逆に、葛根湯は肩こりにもよく使われます。\u003c/p\u003e\n\u003cp\u003e個人的には、ちょっと調子悪いなぁくらいの体調のときに飲みます。\n現代医学の薬に比べると気軽に飲みやすいです。\u003c/p\u003e\n\u003ch2 id=\"結構美味しい\"\u003e結構美味しい\u003c/h2\u003e\n\u003cp\u003e好みがあると思いますが、葛根湯は案外美味しいです。\n落語に\u003ca href=\"https://ja.wikipedia.org/wiki/%E6%B3%B3%E3%81%8E%E3%81%AE%E5%8C%BB%E8%80%85#.E8.91.9B.E6.A0.B9.E6.B9.AF.E5.8C.BB.E8.80.85\"\u003e葛根湯医者\u003c/a\u003eというのがありますが、\nこの落語では最後に付き添いの人にも葛根湯をあげています。\n葛根湯は胃痛には効かないのですが、\n頭痛や筋肉痛には効くので、そんなに間違ってないんですよね。\u003c/p\u003e\n"
  }, 
  {
    "title": "JMockit",
    "url": "https://www.ikemo3.com/dic/jmockit/",
    "contents": "\u003ch2 id=\"jmockitとは\"\u003eJMockitとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/java/\"\u003eJava\u003c/a\u003eのモックライブラリです。\u003c/p\u003e\n\u003ch2 id=\"癖があるが強力\"\u003e癖があるが強力\u003c/h2\u003e\n\u003cp\u003eJMockitはモックの定義にインスタンスイニシャライザを使うなど、少し癖があります。\u003c/p\u003e\n\u003ch2 id=\"mock-apiとfake-apiがある\"\u003eMock APIとFake APIがある\u003c/h2\u003e\n\u003cp\u003eJMockitのAPIはMocking APIと、Faking APIに大きく分かれています。\u003c/p\u003e\n\u003cp\u003eこの違いは、\u003ca href=\"http://jmockit.org/tutorial/Faking.html\"\u003eFaking API\u003c/a\u003eの記述にあります。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eTypically, a fake targets a few methods and/or constructors in the class to be faked,\nwhile leaving most other methods and constructors unmodified.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003chr\u003e\n\u003cp\u003eすなわち、いくつかのメソッドのみ実装を差し替えるのがFaking APIです。\n逆の言い方をすると、ほとんどのメソッドの実装はそのままです。\u003c/p\u003e\n\u003ch2 id=\"フェイクオブジェクトとは\"\u003eフェイクオブジェクトとは\u003c/h2\u003e\n\u003cp\u003eWikipediaの\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%86%E3%82%B9%E3%83%88%E3%83%80%E3%83%96%E3%83%AB\"\u003eテストダブルの記事\u003c/a\u003eには、フェイクオブジェクトについて以下の記述があります。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eフェイクオブジェクト (実際のオブジェクトに近い働きをするが、より単純な実装を使う。例として、実際のデータベースを置き換えるインメモリデータベースが挙げられる。)\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "JMockit",
    "url": "https://www.ikemo3.com/manual/jmockit/",
    "contents": "\u003ch2 id=\"classpathの設定方法\"\u003eCLASSPATHの設定方法\u003c/h2\u003e\n\u003cp\u003eJUnit 4.5またはそれ以降の場合は、JUnitのjarファイルより先にセットしてください\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eWhen using JUnit 4.5+, verify the jmockit dependency appears before JUnit in the classpath.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"mockとfake\"\u003eMockとFake\u003c/h2\u003e\n\u003cp\u003eJMockitのAPIは大きく、Mocking APIと、Faking APIに分かれているようです。\nこの違いは、Faking APIの以下の記述にあります\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\nすなわち、いくつかのメソッドのみ実装を差し替えるのがFaking APIです。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eTypically, a fake targets a few methods and/or constructors in the class to be faked, while leaving most other methods and constructors unmodified.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"systemcurrenttimemillisのモック化\"\u003eSystem.currentTimeMillis()のモック化\u003c/h2\u003e\n\u003cp\u003e以下のように、Fake APIのMockUpを使うことで可能です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-java\" data-lang=\"java\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e mockit.Mock;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003eimport\u003c/span\u003e mockit.MockUp;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e MockUp\u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u003c/span\u003eSystem\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\t\u003cspan style=\"color:#a6e22e\"\u003e@Mock\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\t\u003cspan style=\"color:#66d9ef\"\u003elong\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ecurrentTimeMillis\u003c/span\u003e()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\t{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\t\t\u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e 0L;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\t}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e};\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://jmockit.org/gettingStarted.html\"\u003eJMockit - Getting started\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"http://jmockit.org/tutorial/Faking.html\"\u003eJMockit - Tutorial - Faking\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "再民間化",
    "url": "https://www.ikemo3.com/dic/reprivatization/",
    "contents": "\u003ch2 id=\"再民間化とは\"\u003e再民間化とは\u003c/h2\u003e\n\u003cp\u003eいわゆる「民営化」のことです。\n元は\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eの断絶の時代に、\n「政府活動の再民間化」として書かれた言葉です。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAKIQ.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集7 断絶の時代\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e原文では\u0026rsquo;reprivatization\u0026rsquo;という単語になっていて、\nこれは「再」を表す\u0026rsquo;re\u0026rsquo;と、\n「民営化」を表す\u0026rsquo;privatization\u0026rsquo;\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eを合わせた単語です。\u003c/p\u003e\n\u003ch2 id=\"統治と実行の分離\"\u003e統治と実行の分離\u003c/h2\u003e\n\u003cp\u003e民営化の本質は、\u003ca href=\"/dic/separate-of-governance-and-execution/\"\u003e統治と実行の分離\u003c/a\u003eです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eprivatizationは「上場企業の非公開化」にも使われます。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "BASARA",
    "url": "https://www.ikemo3.com/dic/basara/",
    "contents": "\u003ch2 id=\"basaraとは\"\u003eBASARAとは\u003c/h2\u003e\n\u003cp\u003e田村由美先生の漫画です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/BASARA\"\u003eBASARA - Wikipedia\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"スケールが大きいが短くまとまった名作\"\u003eスケールが大きいが短くまとまった名作\u003c/h2\u003e\n\u003cp\u003eBASARAの舞台は、文明が滅びた後の日本です。\n封建主義社会となり、圧政に苦しんでいた中、立ち上がる少女たちの物語です。\n北海道から沖縄まで\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e日本全国を股にかけた物語ですが、\n外伝含めて27巻に収まっています。\u003c/p\u003e\n\u003ch2 id=\"首里城攻めやすい城\"\u003e首里城＝攻めやすい城\u003c/h2\u003e\n\u003cp\u003e個人的に印象に残ってるのは、沖縄編の首里城の記述です\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\n朱里が首里城を「攻められた時の計算など微塵もされていない」\n「籠城するにも不向きな城」と言っていました。\nなので、首里城は平地にある城だと思っていました。\u003c/p\u003e\n\u003cp\u003eでも沖縄旅行で行ったら、結構な高台にあって、登るのに疲れました。\n首里城は山城で、そんなに攻撃に弱い城というイメージではありませんでした。\nまあ、朱里の要求するレベルが高かったのか、文明が滅びた時に失われたのかも。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e本編で外国人が出たり、外伝で一部外国が出てきたりしていますが、基本は今の日本です。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e文庫本だと6巻のp27\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Favorite",
    "url": "https://www.ikemo3.com/tags/favorite/",
    "contents": ""
  }, 
  {
    "title": "Favorite-Manga",
    "url": "https://www.ikemo3.com/tags/favorite-manga/",
    "contents": ""
  }, 
  {
    "title": "Twitter",
    "url": "https://www.ikemo3.com/dic/twitter/",
    "contents": "\u003ch2 id=\"twitterとは\"\u003eTwitterとは\u003c/h2\u003e\n\u003cp\u003e140文字でつぶやくためのサイトです。\u003c/p\u003e\n\u003ch2 id=\"インフラでなくメディアになってしまった\"\u003eインフラでなくメディアになってしまった\u003c/h2\u003e\n\u003cp\u003eTwitterは2011年ころからどんどん使いづらくなっていますが、\nその理由を一言で表すと、「インフラでなくメディアになったから」\nだと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eインフラ: 場を作ることに専念し、その中に干渉しない\u003c/li\u003e\n\u003cli\u003eメディア: 場の中に干渉する\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eそう考える理由はいくつかあります。\u003c/p\u003e\n\u003ch3 id=\"oauth-20が未だに限定的サポート\"\u003eOAuth 2.0が未だに限定的サポート\u003c/h3\u003e\n\u003cp\u003e認可方式としてはOAuth 2.0、\n認証方式としてはOpenID Connect 1.0が主流なのですが、\nTwitterは未だにサポートする気はないみたいです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://twittercommunity.com/t/oauth-2-0-support/253\"\u003eOAuth 2.0 Support - OAuth - Twitter Developers\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eあと細かいところですが、\u003ccode\u003eOAuth\u003c/code\u003eを\u003ccode\u003eOauth\u003c/code\u003eと正しく書かないとか、\nプログラマーから見ると、正しく単語を書けないところは評価が下がりますね。\u003c/p\u003e\n\u003ch3 id=\"アカウント凍結問題\"\u003eアカウント凍結問題\u003c/h3\u003e\n\u003cp\u003eTwitterのアカウントが凍結されてしまうとか、\n公式アカウントの判定基準への対応とか、\nいかにも「メディア企業」になってしまった感じがあります。\u003c/p\u003e\n\u003cp\u003eもし「インフラ企業」なら、こうなると思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eアカウントは原則凍結しない(ツイートを非公開にする程度)。\u003c/li\u003e\n\u003cli\u003e公式アカウントの判定かどうかはあくまで「本人かどうか」の判定のみ。一般人も同じ。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"公式rtがバカッターを生んだ\"\u003e公式RTが「バカッター」を生んだ\u003c/h2\u003e\n\u003cp\u003eTwitterがバカッターと呼ばれるようになった一番の理由は、\n「公式RT」にあると思います。\n他の人の考えを「そのまま」デッドコピーする機能が、\n自分で考える力を失わせて、バカッターを生みました。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e一応認証方式としてはあるようですが、OAuth 1.0aを使わないと駄目なケースが多いようです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ログ",
    "url": "https://www.ikemo3.com/tags/log/",
    "contents": ""
  }, 
  {
    "title": "広告",
    "url": "https://www.ikemo3.com/log/ad/",
    "contents": "\u003ch2 id=\"ブログに広告を追加2017-09-26\"\u003eブログに広告を追加(2017-09-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://nextstep.shogizuki.com/\"\u003eブログ\u003c/a\u003eに広告を追加しました。\u003c/p\u003e\n\u003ch2 id=\"なぜ広告を追加したのか\"\u003eなぜ広告を追加したのか\u003c/h2\u003e\n\u003cp\u003e以前ブログに「広告は嫌い」と書いたのですが、\nこのサイトでは広告を入れました。\u003c/p\u003e\n\u003cp\u003eなぜ方針を180度変更したのかというと、以下の3つの理由があります。\u003c/p\u003e\n\u003ch3 id=\"モバイルでも広告ブロッカーが一般的になった\"\u003eモバイルでも広告ブロッカーが一般的になった\u003c/h3\u003e\n\u003cp\u003eiOS 9より、Safariに広告ブロック機能がついています。\nなので、ユーザに選んでもらうことが可能になりました。\nもちろんこのサイトでは、広告は最小限にし、\n利用者に不快な広告を表示しないように注意しています。\u003c/p\u003e\n\u003ch3 id=\"お金に惑わされずに記事を書く自信がついた\"\u003eお金に惑わされずに記事を書く自信がついた\u003c/h3\u003e\n\u003cp\u003e自分が広告を載せてなかったのは、お金のために、\n中身のない記事を書くのが嫌だったからです。\nしかし、今では、そのような記事を書かない自信が付いてます。\u003c/p\u003e\n\u003ch3 id=\"無料で労働力を提供するのに疲れた\"\u003e無料で労働力を提供するのに疲れた\u003c/h3\u003e\n\u003cp\u003e今回の\u003ca href=\"http://nextstep.shogizuki.com/2017/09/blog-post.html\"\u003eドラッカーのデマの追求記事\u003c/a\u003e\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eを書くために、1.5時間費やしました。\nその後2日間怒りであまり眠れなかったので、5時間くらい自分の時間が奪われました。\u003c/p\u003e\n\u003cp\u003eしかし、自分が受け取った対価はゼロです。\nこれでTwitterがマシになるのならまだいいのですが、\nTwitterは相変わらずデマッターのままです。\u003c/p\u003e\n\u003cp\u003eもちろん、広告を貼ったら儲かるものではないし、\n自主的にやったことなので、対価が必要ではありません。\nただ、モチベーションを保つために、\n「広告を貼らない」という枷は外そうと思いました。\u003c/p\u003e\n\u003cp\u003eGTD本で有名な、デビッド・アレンの「ストレスフリーの仕事術」に\n以下のような記述があります\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\nごくわずかですが、自分がブログを書くことに対して値上げをする必要がありました。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4576060732/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4576060732.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4576060732/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nストレスフリーの仕事術―仕事と人生をコントロールする52の法則\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cblockquote\u003e\n\u003cp\u003eある日、私の心の中でごく小さな危険信号が鳴り響くのに気づいた。\nある得意先から仕事の依頼があるたびに、ごくわずかだが、\n「あーあ」という感じがしたのだ。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e(中略)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eそして気がついた。クライアントが満足できる水準の仕事をするために\n我々が必要とする時間とエネルギーに対して、報酬が低すぎたのである。\nそう自問してみた。答えは簡単だった。値上げをすればよかったのだ。\nそうすれば、このクライアントに対して、これまでどおりに\n時間やエネルギーを捧げても満足することができる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e著作権法第121条、いわゆる「著作者名詐称罪」に該当します。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003ep63 「11 淵が深いほど、流れは豊かに。」より\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "広告",
    "url": "https://www.ikemo3.com/tags/ad/",
    "contents": ""
  }, 
  {
    "title": "時間管理",
    "url": "https://www.ikemo3.com/tags/time-management/",
    "contents": ""
  }, 
  {
    "title": "有害",
    "url": "https://www.ikemo3.com/tags/harmful/",
    "contents": ""
  }, 
  {
    "title": "コスパよりコスト",
    "url": "https://www.ikemo3.com/theme/productivity/roi-is-useless/",
    "contents": "\u003ch2 id=\"コスパよりコストとは\"\u003eコスパよりコストとは\u003c/h2\u003e\n\u003cp\u003e何かの経済効果、投資効果を測る上で、\n今はROI(投資対効果)を重視していましたが、\nそれよりコストが重要ではないかという問いです。\u003c/p\u003e\n\u003ch2 id=\"経済効果に意味はあるのか\"\u003e「経済効果」に意味はあるのか\u003c/h2\u003e\n\u003cp\u003eよく「◯◯の経済効果は△△億円」と言われましたが、\n自分はずっと、その意味が分かりませんでした。\nなぜなら、その「経済効果」は、純増ではなさそうなんですよね。\n経済効果が仮にあるとしても、その分どこかが減って、\n結果的には大したことがない、あるいは下手したらマイナスの可能性もあります。\u003c/p\u003e\n\u003cp\u003e分かりやすい例だと、プロ野球の優勝による経済効果が該当します。\n優勝したチームの経済効果は仮に正しいとします。\nしかし、去年優勝したチームが今年は2位だったとしたら、\nそのチームの経済効果はマイナスのはずです。\nすなわち、トータルでプラスになるかどうかは分かりません。\u003c/p\u003e\n\u003cp\u003e問題は「効果」が図れるという前提で物事を進めていることです。\n実際は、効果は多くの場合で予想を外します。\nレジャー施設や、ショッピングセンターの破綻が起きるのは、\nその効果を過大に見積もったからです。\u003c/p\u003e\n\u003ch2 id=\"コストが重要\"\u003eコストが重要\u003c/h2\u003e\n\u003cp\u003eでは、費用対効果が測れないとしたら、\n何が重要かなというと、それは、「コスト」だと思います。\n正直、何がヒットするかは分かりません。\nなので、ヒットするかどうか分からないものには、あまりコストをかけず、\nそれがヒットしそうになったと分かったら、投資を増やすのがいいと思います。\u003c/p\u003e\n\u003cp\u003e…というのを前々から言おう言おうと思って自信がなくて言えなかったのですが、\n以下の本にそのまんまなことが書かれていました。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4484131196/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4484131196.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4484131196/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n成功は\u0026#34;ランダム\u0026#34;にやってくる! チャンスの瞬間「クリック・モーメント」のつかみ方\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eこの本には成功するための戦略を5つ紹介しています。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e何回も賭ける\u003c/li\u003e\n\u003cli\u003e小さく賭ける\u003c/li\u003e\n\u003cli\u003e実行可能な一歩を踏み出す\u003c/li\u003e\n\u003cli\u003e投資収益率(ROI)ではなく、許容損失額を計算する\u003c/li\u003e\n\u003cli\u003e情熱をモチベーションにする\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eどれも同感ですが、この4番目がまさに「コスパよりコスト」です。\nやられた!という感じですね。\u003c/p\u003e\n"
  }, 
  {
    "title": "「経済人」の終わり",
    "url": "https://www.ikemo3.com/dic/the-end-of-economic-man/",
    "contents": "\u003ch2 id=\"経済人の終わりとは\"\u003e「経済人」の終わりとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eのデビュー作です。\n1939年4月、ドラッカーが29歳のときに刊行されました。\n原題は\u0026quot;The End of Economic Man\u0026quot;です。\u003c/p\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAOW8/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAOW8.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAOW8/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集9 「経済人」の終わり\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B075GXGBNK/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B075GXGBNK.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B075GXGBNK/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nThe End of Economic Man: The Origins of Totalitarianism\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n\u003ch2 id=\"政治の書\"\u003e政治の書\u003c/h2\u003e\n\u003cp\u003eドラッカーは経営学者として有名ですが、\nこの本は「本書は政治の書である」と書かれています。\nその内容は、当時隆盛していた全体主義、特にナチズムを分析しています。\u003c/p\u003e\n\u003ch2 id=\"若気のいたり\"\u003e若気のいたり\u003c/h2\u003e\n\u003cp\u003eドラッカーの初期作、特にこの「経済人」の終わりと、次の産業人の未来は\nドラッカーの著書の中でも異色です。\nなぜなら、非常に論理的に書かれているからです。\n書評を書いた\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A3%E3%83%B3%E3%82%B9%E3%83%88%E3%83%B3%E3%83%BB%E3%83%81%E3%83%A3%E3%83%BC%E3%83%81%E3%83%AB\"\u003eウィンストン・チャーチル\u003c/a\u003eも、以下のように書いています\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eドラッカーは、独自の頭脳をもつだけでなく、\n人の思考を刺激してくれる書き手である。\nそれだけですべてが許されるという存在である。\nとはいえ、強いていうならば本書では、熱中のあまりか、\nパズルの断片を緻密にまとめすぎているところがある。\n実のところ、機械論的な世界観の危険を説く人物が、\n若干自らの論理にとらわれているところが興味深い。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eドラッカー本人は「若気のいたり」と言ってたそうです\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eあともう一つ、その後のドラッカーならまずやらないというのが、\n「未来を予言したこと」です。\nこの本の第8章のタイトルがそのまま「未来」と書かれていて、\nドイツとソ連が手を組むと指摘していました。\nその指摘は正しく、半年後に\u003ca href=\"https://ja.wikipedia.org/wiki/%E7%8B%AC%E3%82%BD%E4%B8%8D%E5%8F%AF%E4%BE%B5%E6%9D%A1%E7%B4%84\"\u003e独ソ不可侵条約\u003c/a\u003eが締結されています。\u003c/p\u003e\n\u003ch2 id=\"国民性による説明を否定\"\u003e国民性による説明を否定\u003c/h2\u003e\n\u003cp\u003e全体主義批判の書は世の中にたくさんありますが、\nこの本が違うのは、全体主義を「批判」でなく「否定」したことです。\nブルジョア資本主義、マルクス社会主義、キリスト教が全て失敗したにもかかわらず、\nその失敗を認めないことこそが、\n絶望した大衆を全体主義へ走る土壌を作ったと書かれています。\u003c/p\u003e\n\u003cp\u003eまた、ドイツとイタリアに共通するのは「与えられた民主主義」であることのみで、\nそれ以外の国民性による説明を欺瞞と批判しています\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e国民性とは、あまりに複雑であって、矛盾に満ち、\n理解不能な要因に左右されるがゆえに、\n何でも盛りこめるという代物である。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"組織論\"\u003e組織論\u003c/h2\u003e\n\u003cp\u003e全体主義を理解するために、\nドラッカーは「組織」を取り上げました\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eここでは一つだけ予告しておきたい。\nそれは、ファシズム全体主義は信条と秩序の代役に「組織」を充てることによって、\n問題解決のためのお守りにするということである。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e全体主義は社会的な安定をもたらすために、\n徹底的な自由の否定を行い、多数の「組織」を作りました。\nそれにより「完全雇用\u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e」を実現し、社会の安定をもたらしたと書かれています。\nしかし、全体主義の組織は非常に効率が悪く、\n社会に安定をもたらすことはできても、\nそれは皆が等しく貧しくなっていくにすぎません。\u003c/p\u003e\n\u003cp\u003e自分は、ドラッカーが指摘した、全体主義の硬直的な「組織」を反面教師にして、\nドラッカーが発展させていった、マネジメントによる\n躍動感のある「組織」が生まれたかもしれないと考えています。\u003c/p\u003e\n\u003ch2 id=\"なぜドラッカーはマネジメントを発明したか\"\u003eなぜドラッカーは「マネジメント」を発明したか\u003c/h2\u003e\n\u003cp\u003eこの本ではあくまで「経済人」という人間像が終わった、\n全体主義は自己犠牲が出来る「英雄人」という人間像しかもたらすことしかできない、\nというところで終わっています。\n「英雄人」に代わる具体的な人間像については書かれていません。\u003c/p\u003e\n\u003cp\u003eドラッカーの次の著書は「産業人の未来」、\n原文だと\u0026quot;The Future of Industrial Man\u0026quot;です。\nこれは\u0026quot;The End of Economic Man\u0026quot;と対になっています。\u003c/p\u003e\n\u003cp\u003eドラッカーは、資本主義の失敗から学び、\n一人一人が自律的に生き生きと働く社会、それを産業社会と呼びますが、\nその社会を生産的に、建設的にするためには何が必要かを語ることにより、\n「英雄人」に代わる「産業人」という人間観を提示しています。\u003c/p\u003e\n\u003cp\u003eその後、ドラッカーはその考えを発展させていき、\n現在は「知識労働者\u003csup id=\"fnref:6\"\u003e\u003ca href=\"#fn:6\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e6\u003c/a\u003e\u003c/sup\u003e」あるいは「テクノロジスト」と呼ばれる人々が\n社会の中心になると言いました。\u003c/p\u003e\n\u003cp\u003eそして、その「産業人」の考えを発展させるためには、\nその中心となる組織、「企業」を研究する必要があり、\nその次の著作の「企業とは何か」が生まれ、\nそれ以降のドラッカーのキャリアを築いていきます。\u003c/p\u003e\n\u003cp\u003eすなわち、以下のようになります。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e資本主義、社会主義は「経済人」という概念に依存していたが、これが失敗した。\u003c/li\u003e\n\u003cli\u003eその反動である全体主義は「英雄人」という概念しか作れなかった。\u003c/li\u003e\n\u003cli\u003e「経済人」に変わる価値観として「産業人」という概念を提示した。\u003c/li\u003e\n\u003cli\u003e「産業人」という概念が機能するためには、その中心となる「企業」を機能させる必要が出てきた。\u003c/li\u003e\n\u003cli\u003e「企業」を機能させるために「マネジメント」を発明した。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eその後、「マネジメント」は営利組織に限らないということで\n「非営利組織の経営」を書いたり、いろいろありますが、\n問題意識の原点がここに詰まっています。\u003c/p\u003e\n\u003ch2 id=\"批判でなく希望を\"\u003e批判でなく希望を\u003c/h2\u003e\n\u003cp\u003eこの本から学ぶべきことは、「全体主義が悪であるという事実」ではなく、\n全体主義をもたらしたのは、大衆の絶望であるということです。\nある体制、ある指導者を安易に「全体主義者」と批判することは、\n大衆の絶望を無視しているのと同じです。\u003c/p\u003e\n\u003cp\u003eドラッカーは、「ファシズム全体主義の道に代わるものが示されるや、\nしかもそれが示されたときにおいてのみ、ファシズム全体主義のあらゆる魔術が\n悪夢のように消える」と言っています\u003csup id=\"fnref:7\"\u003e\u003ca href=\"#fn:7\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e7\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e恵まれない人が愚かな行動をしているのなら、\nその人を批判し、矯正するのではなく、\n手を差し伸べ、希望を与えるこそが問題解決の糸口になります。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e付録1 一九三九年初版へのチャーチルによる書評 p252\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.1101.com/drucker/2009-09-28.html\"\u003eほぼ日刊イトイ新聞 - はじめてのドラッカー\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e第5章 ファシズム全体主義の奇跡ー―ドイツとイタリア p111\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e第1章 反ファシズム陣営の幻想 p21\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E5%AE%8C%E5%85%A8%E9%9B%87%E7%94%A8\"\u003e完全雇用 - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:6\"\u003e\n\u003cp\u003e頭だけしか使わない「知識人」とは別で、頭と体を両方使って働く人たちです。\u0026#160;\u003ca href=\"#fnref:6\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:7\"\u003e\n\u003cp\u003e第7章 奇跡か蜃気楼か p220\u0026#160;\u003ca href=\"#fnref:7\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "鵜飼い",
    "url": "https://www.ikemo3.com/dic/ukai/",
    "contents": "\u003ch2 id=\"鵜飼いとは\"\u003e鵜飼いとは\u003c/h2\u003e\n\u003cp\u003e鵜を使って行う漁法のことです。\u003c/p\u003e\n\u003ch2 id=\"日本三大鵜飼\"\u003e日本三大鵜飼\u003c/h2\u003e\n\u003cp\u003e日本三大鵜飼というのがあるらしいです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e岐阜県長良川\u003c/li\u003e\n\u003cli\u003e大分県三隅川\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/ozu/\"\u003e愛媛県大洲市\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eでも、これ誰が言い出したか謎なんですよね。大洲市の鵜飼は歴史も浅いらしいし。\n検索すると、大洲関連のサイトばかりなので、正直「言ったもん勝ち」のような。\u003c/p\u003e\n\u003cp\u003eただ、「合わせ鵜飼い」という手法は大洲だけらしいです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.oozukankou.jp/ukai-top.html\"\u003e大洲肱川の鵜飼　｜伊予の小京都　大洲　｜大洲市観光協会\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "客先常駐",
    "url": "https://www.ikemo3.com/dic/work-on-clients-office/",
    "contents": "\u003ch2 id=\"客先常駐とは\"\u003e客先常駐とは\u003c/h2\u003e\n\u003cp\u003e二度とやりたくない仕事です。\u003c/p\u003e\n\u003ch2 id=\"生産性を下げる諸悪の根源\"\u003e生産性を下げる諸悪の根源\u003c/h2\u003e\n\u003cp\u003e派遣社員については別途下に書きます。\u003c/p\u003e\n\u003cp\u003eサービスインのときなど、一時的に客先に常駐するならまだ分かります。\n問題なのは、プロジェクトの最初から最後まで客先で仕事をすることです。\nこれだけのデメリットがあります\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e長時間の通勤を強いられる。\u003c/li\u003e\n\u003cli\u003e机やマシンは最小限のものしか与えられない。\u003c/li\u003e\n\u003cli\u003e仕事に自由がない。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eまず、客先常駐を強いる企業は、だいたいは東京都内にあります。\nなので、都内に住んでいない限り、長時間の満員電車を強いられます。\n自分のケースでは、神奈川県大和市から片道2時間かけて通勤していました。\u003c/p\u003e\n\u003cp\u003e次に、開発環境が劣悪なことが多いということです。\n1つは、東京都内は地価が高いため、十分なスペースが取れないこと、\nそして、「使ってやってる」という意識が高いため、\n開発者のことは微塵も考えないことが大きな理由です。\n机は最低120cmはないと辛いですね。\u003c/p\u003e\n\u003cp\u003e最後に、仕事に自由がないことが生産性を下げています。\nこれは何かというと、\u003cstrong\u003e常駐先以外の仕事ができない\u003c/strong\u003eということです。\n持ち帰りの仕事なら、同時に複数の仕事を受けることも可能です。\u003c/p\u003e\n\u003cp\u003eもちろん複数の仕事と言っても単にバラバラなら負担が増えるだけですが、\n似たような仕事なら、効率化可能です。\nつまり、\u003cstrong\u003e生産性を上げる動機がある\u003c/strong\u003eということです。\n逆に言えば、客先常駐では生産性を上げる動機が全くありません。\u003c/p\u003e\n\u003ch2 id=\"派遣は見直されるべき\"\u003e派遣は見直されるべき\u003c/h2\u003e\n\u003cp\u003e(ここは改めて書き直す予定です)\u003c/p\u003e\n\u003cp\u003eただ、派遣についてはもっと見直されるべきだと思っています。\n自分としては派遣という形はあくまで\u003cstrong\u003e働き方の1つ\u003c/strong\u003eとなるのが理想なので。\u003c/p\u003e\n\u003cp\u003e実際は派遣は登録型派遣と常用型派遣があります。\u003c/p\u003e\n\u003cp\u003e登録型派遣については待遇についても扱いについても正社員より下です。\n常用型派遣については正社員なので立場は安定していますが・・・\u003c/p\u003e\n\u003cp\u003e「同一労働同一賃金」によって待遇は改善される方向ですが、\n不安定な立場であることは変わりません。\n正社員が解雇規制で守られすぎているというのもありますが、\n不安定な立場なら正社員よりも高い報酬を得るべきではと考えています。\u003c/p\u003e\n\u003cp\u003eあと、いつの間にか派遣の許可の条件に\u003cstrong\u003eキャリアアップ措置の実施\u003c/strong\u003eが入っているみたいですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/0000077386.html\"\u003e平成27年労働者派遣法の改正について\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e渋谷で仕事するいわゆる「Web系」は結構違うようですが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "日本IBM",
    "url": "https://www.ikemo3.com/dic/ibm-japan/",
    "contents": "\u003ch2 id=\"日本ibmとは\"\u003e日本IBMとは\u003c/h2\u003e\n\u003cp\u003eブラック企業です。\u003c/p\u003e\n\u003ch2 id=\"裁量のない裁量労働制\"\u003e裁量のない裁量労働制\u003c/h2\u003e\n\u003cp\u003eもう時効\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eなので争うつもりはありませんが、事実だけ残しておきます。\n自分は2008年3月頃に都内の客先(\u003ca href=\"/dic/work-on-clients-office/\"\u003e客先常駐\u003c/a\u003eで仕事をしてたのですが、\nその時の仕事は9時出社で、22時退社でした。\n22時退社なのは自分が\u003ca href=\"/dic/crowded-train/\"\u003e満員電車\u003c/a\u003eで2時間通勤という\n環境だったので、最終電車に間に合うギリギリの時間でした。\u003c/p\u003e\n\u003cp\u003e問題は、与えられたテストをただこなすだけという、\n\u003cstrong\u003e裁量が一切ない仕事\u003c/strong\u003eということです。\u003c/p\u003e\n\u003cp\u003e大和事業所にいたころも裁量労働制だったのですが、\nその頃は仕事も割りとゆるく、早く帰っても文句を言われない環境だったので、\n特に不満はありませんでした。\nでもこの職場は違いました。明らかに違法ですね。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.jil.go.jp/rodoqa/12_funsou/12-Q05.html\"\u003eQ5．労働紛争において時効の問題がどのように扱われるかについて概要を教えて下さい。｜労働政策研究・研修機構（JILPT）\u003c/a\u003eによれば、不法行為による損害賠償請求権については原則として3年のようです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "jq",
    "url": "https://www.ikemo3.com/manual/jq/",
    "contents": "\u003ch2 id=\"コマンドラインオプション\"\u003eコマンドラインオプション\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://stedolan.github.io/jq/manual/#Invokingjq\"\u003eInvoking jq\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e-r, \u0026ndash;raw-output: ダブルクォートのない生の文字列を出力する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"フィルタ\"\u003eフィルタ\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://stedolan.github.io/jq/manual/#Basicfilters\"\u003eBasic filters\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.\u003c/code\u003e: 現在のノード全てを返す\u003c/li\u003e\n\u003cli\u003e配列\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.[\u0026lt;index\u0026gt;]\u003c/code\u003e: 配列のそれぞれの値を返す。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.[]\u003c/code\u003e: 配列の全ての値を返す。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e連想配列(オブジェクト)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.[\u0026lt;string\u0026gt;]\u003c/code\u003e: 指定した文字列をキーとした値を返す。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ekeys\u003c/code\u003e:  キーの配列を返す。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eフィルタをつなぐには \u003ccode\u003e|\u003c/code\u003e を使う。\n\u003cul\u003e\n\u003cli\u003e例: \u003ccode\u003ejq .foo.bar|keys\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e条件分岐\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eselect(boolean-expression)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e例: \u003ccode\u003eselect(.private == true and .archived == true)\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e配列、オブジェクトの作成\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[.private, .archived]\u003c/code\u003e のようにすることで配列が作成される。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e{event: .event, url: .data.url}\u003c/code\u003e のようにすることでオブジェクトが作成される。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"例\"\u003e例\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eルート直下の配列を選択し、\u003c/li\u003e\n\u003cli\u003etype == slackとなるものを選択し、\u003c/li\u003e\n\u003cli\u003eevent, urlを返す\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ejq \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;.[] | select(.type == \u0026#34;slack\u0026#34;) | {event: .event, url: .data.url} \u0026#39;\u003c/span\u003e foo.json\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "Web",
    "url": "https://www.ikemo3.com/tags/web/",
    "contents": ""
  }, 
  {
    "title": "ブログ",
    "url": "https://www.ikemo3.com/dic/blog/",
    "contents": "\u003ch2 id=\"ブログとは\"\u003eブログとは\u003c/h2\u003e\n\u003cp\u003eウェブ(Web) + ログ(Log) = Weblog(ウェブログ)の略です。\u003c/p\u003e\n\u003ch2 id=\"ブログの4分類\"\u003eブログの4分類\u003c/h2\u003e\n\u003cp\u003e「ブログを10年続けて、僕が考えたこと」という本を読んだのですが、\nその本に書かれている、ブログの4分類という概念が気になりました。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e新聞・ジャーナリズム系\u003c/li\u003e\n\u003cli\u003e雑誌・消費メディア系\u003c/li\u003e\n\u003cli\u003e技術・同人誌系\u003c/li\u003e\n\u003cli\u003e日記・つぶやき系\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eこのサイトは正確にはブログではないのですが、\n自分が目指しているのは3の「技術・同人誌系」になります。\u003c/p\u003e\n\u003cp\u003e1や2は「新しいだけで中身がないもの」になりがちなのであり得ません。\n4は\u003ca href=\"/log/\"\u003eログ\u003c/a\u003eとして分離していますが、それ以外は該当しません。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00YI05M1K/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00YI05M1K.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00YI05M1K/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nブログを10年続けて、僕が考えたこと\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Disk",
    "url": "https://www.ikemo3.com/tags/disk/",
    "contents": ""
  }, 
  {
    "title": "SSD",
    "url": "https://www.ikemo3.com/dic/ssd/",
    "contents": "\u003ch2 id=\"ssdとは\"\u003eSSDとは\u003c/h2\u003e\n\u003cp\u003eSolid State Driveの略で、フラッシュメモリを使ったものです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eメリット\n\u003cul\u003e\n\u003cli\u003e速い\u003c/li\u003e\n\u003cli\u003e衝撃に強い\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eデメリット\n\u003cul\u003e\n\u003cli\u003e(HDDと比べると)高い\u003c/li\u003e\n\u003cli\u003e書き込みに限界がある\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e解決した問題\n\u003cul\u003e\n\u003cli\u003eプチフリ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"速度差\"\u003e速度差\u003c/h2\u003e\n\u003cp\u003eWD20EARX(SATA 6.0Gbps, 5400rpm)と\nA-DATA S510 AS510S3-120GM-C(SATA 6.0Gbps, MLC)の比較です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.dospara.co.jp/5info/cts_lp_ssd_susume\"\u003e全ての作業が速くなる！！ ～HDD/SSDユーザビリティ比較～｜ドスパラ公式通販サイト\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"価格\"\u003e価格\u003c/h2\u003e\n\u003cp\u003eSSDは価格がネックと言われてましたが、\n2017年9月現在、500GB程度なら2万円かからずに買えます。\n速度差を考えると、SSDを導入しない手はありません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e価格.com\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://kakaku.com/pc/ssd/itemlist.aspx?pdf_Spec301=480-512\"\u003e480GB〜512GB未満\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://kakaku.com/pc/ssd/itemlist.aspx?pdf_Spec301=512-960\"\u003e512GB〜960GB未満\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://kakaku.com/pc/ssd/itemlist.aspx?pdf_Spec301=960-2000\"\u003e960GB〜2000GB未満\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAKIBA PC Hotline! \u003ca href=\"https://akiba-pc.watch.impress.co.jp/docs/price/monthly_repo/\"\u003e相場月報\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"寿命\"\u003e寿命\u003c/h2\u003e\n\u003cp\u003eSSDの不安点の1つは、寿命ですが、\nこれも、ほとんど気にしなくて良いです。\u003c/p\u003e\n\u003cp\u003e自分は2011年に買ったMacBook ProのSSD(512GB、当時は10万した)を\n取り外して、外付けSSDとして使っていますが、特に問題ありません。\nもし寿命が来ても、これだけの速度で2万円程度で買えるなら、十分です。\nHDDはバックアップ以外で使う機会はほとんどなくなってきています。\u003c/p\u003e\n\u003cp\u003e実際どれくらい使ったら寿命になるかはいくつかのサイトで調査されていますが、\nペタバイト単位の書き込みをして壊れるかどうかのようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://techreport.com/review/26523/the-ssd-endurance-experiment-casualties-on-the-way-to-a-petabyte/3\"\u003eThe SSD Endurance Experiment: Casualties on the way to a petabyte - The Tech Report - Page 3\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eどちらにしても、コントローラが壊れることもあるので、\n\u003ca href=\"/dic/backup/\"\u003eバックアップ\u003c/a\u003eが重要です。\u003c/p\u003e\n\u003ch2 id=\"記憶素子の違い\"\u003e記憶素子の違い\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSLC: 1セル1ビット\u003c/li\u003e\n\u003cli\u003eMLC: 1セル2ビット\u003c/li\u003e\n\u003cli\u003eTLC: 1セル3ビット\u003c/li\u003e\n\u003cli\u003eQLC: 1セル4ビット\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003e性能、耐久性: \u003ccode\u003eSLC \u0026gt; MLC \u0026gt; TLC \u0026gt; QLC\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e価格: \u003ccode\u003eSLC \u0026lt; MLC \u0026lt; TLC \u0026lt; QLC\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"結局どれがオススメか\"\u003e結局どれがオススメか\u003c/h3\u003e\n\u003cp\u003eSLCは個人ではなかなか買えないのでMLCかTLCになると思いますが、\nこの評価が一番納得できると思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www19.atwiki.jp/vippc2/pages/134.html\"\u003eTLCのSSDについて - VIPで自作PC @ Wiki - アットウィキ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e要はMLC, TLCは内部にSLCやDRAMによるキャッシュを持っている(はず)ので、\n普段使っている分には十分速いのですが、キャッシュサイズを超えると、\nTLCは途端にコピーが遅くなります。\n10GBほどなら問題ないので、これで十分というケースも多いと思います。\nあとはお金との相談ですね。\u003c/p\u003e\n\u003ch2 id=\"参考サイト\"\u003e参考サイト\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://navi.dropbox.jp/ssd-lifespan\"\u003eSSD の寿命ってどのくらい？延命方法とバックアップ方法も併せて解説\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "WIP",
    "url": "https://www.ikemo3.com/dic/wip/",
    "contents": "\u003ch2 id=\"wipとは\"\u003eWIPとは\u003c/h2\u003e\n\u003cp\u003eWIPとは、Work In Progressの略で、進行中の作業を指します。\n\u003ca href=\"/dic/kanban-in-action/\"\u003eカンバン仕事術\u003c/a\u003eでこのWIPについて詳しく書かれています。\u003c/p\u003e\n\u003ch2 id=\"wipは多すぎてはいけない\"\u003eWIPは多すぎてはいけない\u003c/h2\u003e\n\u003cp\u003e例えば、30個の\u003ca href=\"/dic/project/\"\u003eプロジェクト\u003c/a\u003eを同時に行っているとします。\nすると、どのプロジェクトから手を付けたらいいのか、考えることが多くなり、非常に疲れます。\n一方で、30個のプロジェクトがあっても、1つ1つ処理すればいいのであれば、\n30個のプロジェクトを同時にこなすより、効率よく作業を進められます。\u003c/p\u003e\n\u003cp\u003e一方で、WIP=1とすると、その作業が行き詰ったときに何もすることがなくなります。\nそのため、ある程度はWIPは同時にあっても良いと思います。\nただ、せいぜい2, 3個程度かなと。\u003c/p\u003e\n\u003ch2 id=\"ツァイガルニク効果\"\u003eツァイガルニク効果\u003c/h2\u003e\n\u003cp\u003eWIPが多すぎても少なすぎてもいけないのは、心理学的には、\nツァイガルニク効果というものだそうです。\n完了したことよりも、中途半端に終わったもの、中断したものをよく覚えているとか。\nこれを前向きに利用すれば行動力に繋がりますね。\u003c/p\u003e\n"
  }, 
  {
    "title": "コンピュータ",
    "url": "https://www.ikemo3.com/tags/computer/",
    "contents": ""
  }, 
  {
    "title": "プロジェクト(タスク管理)",
    "url": "https://www.ikemo3.com/dic/project/",
    "contents": "\u003ch2 id=\"プロジェクトタスク管理とは\"\u003eプロジェクト(タスク管理)とは\u003c/h2\u003e\n\u003cp\u003e一般的に言われているプロジェクトとは異なり、\nタスク管理では「複数のタスクによって構成されたもの」を表します。\u003c/p\u003e\n\u003cp\u003e例えば、「新しいMacを買う」というタスクは、\n「予算を決める」「どの機種を買うか調査する」「どこで注文するか決める」\n「購入する」「届いたらセットアップする」という感じで、複数のタスクに分けられます。\n自分が知ったのは\u003ca href=\"/dic/gtd/\"\u003eGTD\u003c/a\u003e経由で、恐らくこれが初出ですが、\n\u003ca href=\"/dic/do-it-tomorrow/\"\u003eマニャーナの法則\u003c/a\u003eでも出ているので、\nタスク管理では一般的な用語と言っても過言ではありません。\u003c/p\u003e\n"
  }, 
  {
    "title": "一つのことに集中する",
    "url": "https://www.ikemo3.com/dic/do-one-thing-at-a-time/",
    "contents": "\u003ch2 id=\"一つのことに集中するとは\"\u003e一つのことに集中するとは\u003c/h2\u003e\n\u003cp\u003e「経営者の条件」第5章「最も重要なことに集中せよ」の冒頭にある記述です。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e二つはおろか、一つでさえ、よい仕事をすることは難しいという現実が集中を要求する。\n人には驚くほど多様な能力がある。人はよろず屋である。\nだがその多様性を清算的に使うには、\nそれらの多様な能力を一つの仕事に集中することが不可欠である。\nあらゆる能力を一つの成果に向けるには集中するしかない。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eいくつものの球を操ることは曲芸である。一〇分間が限度である。\nもちろん、いろいろな人がいる。同時に二つの仕事を手がけ、テンポを変えて行ったほうが\nよくできるという人がいる。だがそのような人でも、二つの仕事のいずれにおいても\n成果をあげるには、まとまった時間が必要である。\nただし三つの仕事を同時に抱えて卓越した成果をあげる人はほとんどいない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/blockquote\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7Z20/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081M7Z20.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081M7Z20/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集1 経営者の条件\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"wipを減らす\"\u003eWIPを減らす\u003c/h2\u003e\n\u003cp\u003e自分はタスク管理が好きなのですが、\nこの考え方は、\u003ca href=\"/dic/work-in-progress/\"\u003eWIP\u003c/a\u003eという考え方に通じています。\n自分は1つの仕事だけやってると飽きやすいのと、\n少しずつ行うことで、アイデアを寝かせる効果を期待して、\nいくつかの仕事を切り替えて行うのが好きなのですが、\n1つ1つの仕事は集中して取り組む必要があります。\nながら作業が苦手なので、音楽を聞きながらコーディングも出来ません。\u003c/p\u003e\n"
  }, 
  {
    "title": "企業",
    "url": "https://www.ikemo3.com/tags/company/",
    "contents": ""
  }, 
  {
    "title": "食べ物",
    "url": "https://www.ikemo3.com/tags/food/",
    "contents": ""
  }, 
  {
    "title": "占い",
    "url": "https://www.ikemo3.com/tags/fortune-telling/",
    "contents": ""
  }, 
  {
    "title": "面白い",
    "url": "https://www.ikemo3.com/tags/funny/",
    "contents": ""
  }, 
  {
    "title": "イグノーベル賞",
    "url": "https://www.ikemo3.com/dic/ig-nobel-prize/",
    "contents": "\u003ch2 id=\"イグノーベル賞とは\"\u003eイグノーベル賞とは\u003c/h2\u003e\n\u003cp\u003eノーベル賞のパロディです。\u003c/p\u003e\n\u003ch2 id=\"ノーベル賞よりも好き\"\u003eノーベル賞よりも好き\u003c/h2\u003e\n\u003cp\u003e経済学性があるのに数学賞がないだとか、\n平和賞の選考が政治的なのにうんざりしているのもありますが、\n純粋にイグノーベル賞は\u003cstrong\u003e面白い\u003c/strong\u003eので好きです。\u003c/p\u003e\n\u003cp\u003eちょっと真面目な話をすると、(皮肉を除いた)イグノーベル賞は、\n研究の多様性(\u003ca href=\"/dic/pluralism/\"\u003e多元性\u003c/a\u003e)を表しています。\u003c/p\u003e\n\u003cp\u003e自分はあまり「日本人が〜」というのに共感を持たないのですが(嫌いではない)、イグノーベル賞に関しては日本人が受賞したと聞くと、\u003ca href=\"http://dic.nicovideo.jp/a/%E3%82%A4%E3%83%A4%E3%83%83%E3%83%83%E3%83%9B%E3%82%A9%E3%82%A9%E3%82%A9%E3%82%AA%E3%82%AA%E3%82%A9%E3%82%AA%E3%82%A6%21\"\u003eイャッッホォォォオオォオウ！\u003c/a\u003eって喜びます。\u003c/p\u003e\n"
  }, 
  {
    "title": "高所恐怖症",
    "url": "https://www.ikemo3.com/dic/fear-of-heights/",
    "contents": "\u003ch2 id=\"高所恐怖症とは\"\u003e高所恐怖症とは\u003c/h2\u003e\n\u003cp\u003e高いところが苦手なことです。\n狭義の意味では、不安障害ですが、\n自分は不安障害ではない、一般的な「高いところが苦手」な人です。\u003c/p\u003e\n\u003ch2 id=\"飛び降りる想像ができるところがダメ\"\u003e飛び降りる想像ができるところがダメ\u003c/h2\u003e\n\u003cp\u003e高いところが苦手と言っても自分の場合はこんな感じです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e苦手\n\u003cul\u003e\n\u003cli\u003eベランダ\u003c/li\u003e\n\u003cli\u003eビルの屋上\u003c/li\u003e\n\u003cli\u003e観覧車\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e平気\n\u003cul\u003e\n\u003cli\u003e飛行機\u003c/li\u003e\n\u003cli\u003eビルの中(好きじゃない)\u003c/li\u003e\n\u003cli\u003eジェットコースター(普通に怖い程度)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分が嫌だなーと思う場所は、自分の足で飛び降りたり、\n揺らしたり出来る場所です。そういうのを想像して嫌になります。\nビルは平気ですが、地震などのリスクが想像できるので、ちょっと嫌です。\n逆に、飛行機で起きるリスクはどうしようもないので、平気です。\u003c/p\u003e\n"
  }, 
  {
    "title": "同調圧力",
    "url": "https://www.ikemo3.com/dic/peer-pressure/",
    "contents": "\u003ch2 id=\"同調圧力とは\"\u003e同調圧力とは\u003c/h2\u003e\n\u003cp\u003eある意見に合わせないといけないという暗黙的な圧力です。\u003c/p\u003e\n\u003ch2 id=\"和して同ぜず\"\u003e和して同ぜず\u003c/h2\u003e\n\u003cp\u003e世の中には同調圧力がたくさんあることになっていますが、\nリアルでは自分はほとんど感じたことがありません。\u003c/p\u003e\n\u003cp\u003e論語の「君子は和して同ぜず小人は同じて和せず」\nあるいは十七条憲法の「和を以て貴しとなす」のように、\n相手を尊重していれば、何とかなります。\u003c/p\u003e\n\u003cp\u003e逆に、ネット、特にTwitterでは暗黙的な圧力が多すぎて嫌になります。\n最大の同調圧力である、\u003cstrong\u003e同調圧力の存在を認めないといけない同調圧力\u003c/strong\u003eも\nネット以外では見られませんし。\u003c/p\u003e\n"
  }, 
  {
    "title": "7年周期説",
    "url": "https://www.ikemo3.com/dic/7-year-cycle/",
    "contents": "\u003ch2 id=\"7年周期説とは\"\u003e7年周期説とは\u003c/h2\u003e\n\u003cp\u003e個人的に考えていることで、\u003ca href=\"/dic/oss/\"\u003eオープンソースソフトウェア\u003c/a\u003eにおいて、\n7年ごとに、重要なものが出てくるということです。\u003c/p\u003e\n\u003cp\u003eこじつけかなぁとも思うのですが、それなりの理由があります。\n一つは、社会的なインパクトが多いこと。\nもう一つは、7年前に出たものを土台として、新しいものが生まれていることです。\nGNUプロジェクトによる成果がなければ、Linuxが生まれることはなかったか、\nここまで成長することはなかったかもしれません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e1969年: \u003ca href=\"https://ja.wikipedia.org/wiki/UNIX\"\u003eUnix\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e1977年: \u003ca href=\"https://ja.wikipedia.org/wiki/BSD\"\u003eBSD\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e1983年: \u003ca href=\"https://ja.wikipedia.org/wiki/GNU%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88\"\u003eGNUプロジェクト\u003c/a\u003e ※実際は1年ずれてますが\u003c/li\u003e\n\u003cli\u003e1991年: \u003ca href=\"https://ja.wikipedia.org/wiki/Linux\"\u003eLinux\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e1998年: \u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9\"\u003eオープンソースの定義\u003c/a\u003e、あるいは\u003ca href=\"https://ja.wikipedia.org/wiki/Open_Source_Initiative\"\u003eOpen Source Initiative\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e2005年: \u003ca href=\"https://ja.wikipedia.org/wiki/Git\"\u003eGit\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eRuby on rails(2004)やJenkins(2005)も「それ以前とそれ以降」を分けるくらい重要だと思います。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e2012年: ??\n\u003cul\u003e\n\u003cli\u003eDocker(2013)が一番インパクトあったのかなと今では思います。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "I'll believe",
    "url": "https://www.ikemo3.com/dic/i-ll-believe/",
    "contents": "\u003ch2 id=\"ill-believeとは\"\u003eI\u0026rsquo;ll believeとは\u003c/h2\u003e\n\u003cp\u003e音楽ユニットALTIMAの音楽です。\n灼眼のシャナIII-FINAL-の前期エンディングテーマです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00ODF7UO2/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00ODF7UO2.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00ODF7UO2/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nI\u0026#39;ll believe＜初回限定盤＞\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\u003ca style=\"display: inline-block;\" href=\"https://itunes.apple.com/jp/album/id527141998?mt=8\u0026at=1010lFXU\" target=\"_blank\"\u003e\n\u003cimg src=\"https://is1-ssl.mzstatic.com/image/thumb/Music/v4/71/a7/70/71a7708c-1706-63a1-a40f-27ba254703ae/source/60x60bb.jpg\"\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca href=\"https://itunes.apple.com/jp/album/id527141998?mt=8\u0026at=1010lFXU\" target=\"_blank\"\u003e\nI\u0026#39;ll believe - EP Altima\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"ラップがとてもよい\"\u003eラップがとてもよい\u003c/h2\u003e\n\u003cp\u003e正直、この曲を聞くまでは、ラップにいい印象を持っていませんでした。\nアニメファンはラップに嫌悪感を持っている人が多いためか、\n当時見てたニコニコ動画でも\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e批判的なコメントが多く見られました。\nでも自分は「この曲いいやん」と思いました。\u003c/p\u003e\n\u003cp\u003eたぶん、このラップがシャウト系なのと、\n曲がユーロビート調(かな?)でアッパー系なのがうまく合っているんじゃないかなと。\n自分が苦手なラップはだるそうなダウナー系なので。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eぼんやりとしか記憶に無いんですが、アニメにコメントと言えばニコ動くらいしかないので間違いないかと。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Intel",
    "url": "https://www.ikemo3.com/tags/intel/",
    "contents": ""
  }, 
  {
    "title": "Itanium",
    "url": "https://www.ikemo3.com/dic/itanium/",
    "contents": "\u003ch2 id=\"itaniumとは\"\u003eItaniumとは\u003c/h2\u003e\n\u003cp\u003eIntelが開発しているCPUです。\u003c/p\u003e\n\u003ch2 id=\"売上\"\u003e売上\u003c/h2\u003e\n\u003cp\u003eこのグラフが面白いです。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://en.wikipedia.org/wiki/File:Itanium_Sales_Forecasts_edit.png\"\u003eFile:Itanium Sales Forecasts edit.png - Wikipedia\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"2003年からダメだと思っていた\"\u003e2003年からダメだと思っていた\u003c/h2\u003e\n\u003cp\u003e自分がスラドに2003/04/26に書いた投稿\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eでは控えめな表現ですが、\nItaniumの設計に問題があるんじゃないのと書いていました。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eItaniumがダメなのは、穿った見方をすれば、\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eItaniumの設計もしくはコンパイラの出来が悪く性能が出ない。\u003c/li\u003e\n\u003cli\u003e性能の出ないダメCPUというイメージを避けるためにキャッシュを増やしてなんとか性能アップ\u003c/li\u003e\n\u003cli\u003eダイサイズが非常にデカくなって値段高騰\u003c/li\u003e\n\u003cli\u003eIA-32部分の性能の悪さもあって売れず\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e控えめな表現をしてたのは、当時はどこの企業もItaniumに注力していたので、\n自分の方が正しいという自信がなかったからです。\nあと、リプライにもあるように、IA-32互換の足かせが外れたときに\nどれくらい速度が出るかも気になってたのですが、\n結果的に他のCPUと比べて速いという評判も聞かれませんでした。\u003c/p\u003e\n\u003ch2 id=\"epicアーキテクチャが根本的に間違ってた理由\"\u003eEPICアーキテクチャが根本的に間違ってた理由\u003c/h2\u003e\n\u003cp\u003eそれは、EPICアーキテクチャが典型的な\u003ca href=\"/dic/static-architecture/\"\u003e静的アーキテクチャ\u003c/a\u003eだからです。\u003c/p\u003e\n\u003cp\u003eWikipediaのEPICアーキテクチャにかかれている以下の目標がすでに問題があります\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e目標は複数命令の動的スケジューリングの複雑さをハードウェア実装からコンパイラに移すことであり、\nこれにより(トレースフィードバック情報を使って)命令スケジューリングが静的に行われるようになる。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e例えば、以下のようなコードは並列化可能です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-c\" data-lang=\"c\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efoo\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e a, \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e b) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e c \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e a \u003cspan style=\"color:#f92672\"\u003e*\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e d \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e b \u003cspan style=\"color:#f92672\"\u003e*\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e c \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e d;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eしかし、以下のように条件分岐が入ると、コードは簡単に並列化不可能になります。\n投機的実行を使えば並列化可能ですが、それでは他のCPUと変わりません。\nなので、明示的な並列化によるメリットは非常に限られています。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-c\" data-lang=\"c\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efoo\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e a, \u003cspan style=\"color:#66d9ef\"\u003eint\u003c/span\u003e b) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (a \u003cspan style=\"color:#f92672\"\u003e\u0026lt;\u003c/span\u003e b) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e a \u003cspan style=\"color:#f92672\"\u003e*\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e2\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  } \u003cspan style=\"color:#66d9ef\"\u003eelse\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e b \u003cspan style=\"color:#f92672\"\u003e*\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"itaniumはほとんど何も残さなかった\"\u003eItaniumはほとんど何も残さなかった\u003c/h2\u003e\n\u003cp\u003eItaniumは失敗に終わりそうですが、\nそれ以上に問題なのは、Itanium由来の技術がほとんどないことです。\n\u003ca href=\"https://ja.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface\"\u003eUEFI\u003c/a\u003eくらいでしょうか。\u003c/p\u003e\n\u003cp\u003e逆に、商業的にはItanium以上の失敗の、\nCell B.E.は、ヘテロジニアスマルチコアと呼ばれる、\n異なるアーキテクチャのCPUコアを組み合わせるタイプのCPUを採用しました。\nCell B.E.は扱いが難しく、性能を発揮するのが難しかったのですが、\n異なるアーキテクチャのCPUを組み合わせる概念はARMのbig.LITTLEのように、広く使われています。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://srad.jp/comment/305641\"\u003eRe:Itaniumの敵はIA-32 (#305641) | Itaniumの32bitパフォーマンス向上はソフトで | スラド\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/EPIC%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3\"\u003eEPICアーキテクチャ - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "チョコレート",
    "url": "https://www.ikemo3.com/dic/chocolate/",
    "contents": "\u003ch2 id=\"チョコレートとは\"\u003eチョコレートとは\u003c/h2\u003e\n\u003cp\u003e甘いお菓子です(*´∀｀*)\u003c/p\u003e\n\u003ch2 id=\"健康志向のチョコは好きじゃない\"\u003e健康志向のチョコは好きじゃない\u003c/h2\u003e\n\u003cp\u003e最近は健康志向のチョコが多いようですが、個人的には好きじゃないです。\n一番の理由は、\u003cstrong\u003e満足度が低い\u003c/strong\u003eことです。\n高カカオチョコはまだ分かりますが、健康志向のチョコは\n食べても物足りなくて、むしろ不健康な気がします。\n唯一今でも食べてるのは\u003ca href=\"https://www.glico.com/jp/product/chocolate/gaba/\"\u003eグリコのGABA(ミルク)\u003c/a\u003eだけです。\u003c/p\u003e\n\u003ch2 id=\"個人的に好きなチョコ\"\u003e個人的に好きなチョコ\u003c/h2\u003e\n\u003ch3 id=\"ウィターズのタブレットチョコ\"\u003eウィターズのタブレットチョコ\u003c/h3\u003e\n\u003cp\u003e甘ったるいという言葉の方が適切なくらいめっちゃ甘いですが、\nそのぶん満足度が高いです。\u003c/p\u003e\n\u003cp\u003e\u003cdel\u003e残念ながら、現在地元では入手できませんorz\u003c/del\u003e\nドラッグストアコスモスで再度取り扱うようになりました。\u003c/p\u003e\n\u003ch3 id=\"ローカーのウエハース\"\u003eローカーのウエハース\u003c/h3\u003e\n\u003cp\u003eこんな感じのチョコです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B001PPM9RG/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B001PPM9RG.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B001PPM9RG/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nキタノ商事 ローカー クワドラティーニ チョコレート 125ｇ\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eウエハースとかビスケットつきのチョコは少し満足度が下がるものが多いのですが、\nこれはチョコとウエハースの重ね具合がよく、満足度が高いです。\nローカーに限らず、外国産のウエハースは当たりが多いです。\u003c/p\u003e\n\u003cp\u003eただ、バクバク食えるので\u003cstrong\u003e太る\u003c/strong\u003eという問題があります\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\nちょっと小さい、タブレットサイズもあるので、そっちの方がおすすめです。\u003c/p\u003e\n\u003ch3 id=\"アーモンドピークグリコ\"\u003e\u003ca href=\"http://www.glico.co.jp/almondpeak/\"\u003eアーモンドピーク(グリコ)\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eミクさんに釣られて一時期買ってたのもあるんですが、\n入手しやすく、個人的に一番買いやすいチョコです。\nアーモンド入りのチョコはどれも美味しいのですが、\nどれも1箱あたりの量が多くて、食いすぎてしまいます。\u003c/p\u003e\n\u003cp\u003eそれに比べると、これは340kcal程度なので、\n「アーモンドチョコを一気に食いたい」ときにちょうどいい量です。\u003c/p\u003e\n\u003ch3 id=\"アルフォートブルボン\"\u003e\u003ca href=\"https://www.bourbon.co.jp/alfortmini/\"\u003eアルフォート(ブルボン)\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eクッキー + チョコならこれが鉄板。\n大袋のものは1個ずつ食べやすいのもあって、よく買っています。\u003c/p\u003e\n\u003ch3 id=\"gabaグリコ\"\u003e\u003ca href=\"https://www.glico.com/jp/product/chocolate/gaba/\"\u003eGABA(グリコ)\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eストレスにいいという触れ込みですが、普通にチョコとしても美味しいです。\n効果があるかは分かりませんが、少なくとも美味しいのはいいことです。\nちょっと高めですけどね。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e大学院のときに半年で13kg太った原因\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Bot",
    "url": "https://www.ikemo3.com/tags/bot/",
    "contents": ""
  }, 
  {
    "title": "IBM",
    "url": "https://www.ikemo3.com/dic/ibm/",
    "contents": "\u003ch2 id=\"ibmとは\"\u003eIBMとは\u003c/h2\u003e\n\u003cp\u003eアメリカの大手ということになっている企業です。\u003c/p\u003e\n\u003ch2 id=\"何を売っているか分からない\"\u003e何を売っているか分からない\u003c/h2\u003e\n\u003cp\u003e以前、\u003ca href=\"/dic/ibm-japan/\"\u003e日本IBM\u003c/a\u003eに勤めてた自分から見ると、\n今のIBMって何売ってるの?という感じです。\n選択と集中と言いつつ、切り捨てた方ばかり目立ってて、\n事業を育てる方がさっぱりです。\u003c/p\u003e\n\u003cp\u003eWatsonがあるじゃないかと言われそうですが、\n逆に言えば、それしかIBMの特徴は見当たりません。\nいろんな製品を持っていますが、どの製品も存在感がありません。\u003c/p\u003e\n\u003ch2 id=\"技術がない\"\u003e技術がない\u003c/h2\u003e\n\u003cp\u003e自分が\u003ca href=\"/dic/ibm-japan/\"\u003e日本IBM\u003c/a\u003eに入社した2002年頃は\u003ca href=\"/dic/oss/\"\u003eOSS\u003c/a\u003eへの活動も活発だったのですが、\n最近はむしろ、IBMが関わっているOSSは将来が危ういと見ています。\n例えば、Apache OpenOfficeもLibreOfficeに遅れて存在すら怪しい状態です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eその頃は「エンタープライズ=優れた技術」でしたが、\n今は完全に「エンタープライズ=遅れた技術を使っている」です。\nOSSやコンシューマ向けに開発している企業の方が優れています。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://forest.watch.impress.co.jp/docs/news/1087241.html\"\u003e「Apache OpenOffice」が1年ぶりの更新 ～プロジェクトは依然危機的状況か - 窓の杜\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "タロット",
    "url": "https://www.ikemo3.com/dic/tarot/",
    "contents": "\u003ch2 id=\"タロットとは\"\u003eタロットとは\u003c/h2\u003e\n\u003cp\u003e絵が描かれた、合計で78枚のカードです。\nそのうち、特に特徴的な絵柄を持つ22枚のカードを\u003cstrong\u003e大アルカナ\u003c/strong\u003e、\nそれ以外の56枚を\u003cstrong\u003e小アルカナ\u003c/strong\u003eと言います。\u003c/p\u003e\n\u003cp\u003e小アルカナは、カップ(杯)、ソード(剣)、ペンタクル(五芒星\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e)、ワンド(杖)の4種類で、\nそれぞれに1(エース)〜10とページ(騎士見習い)、ナイト、クイーン、キングの14枚があります。\u003c/p\u003e\n\u003ch2 id=\"なぜタロットが面白いか\"\u003eなぜタロットが面白いか\u003c/h2\u003e\n\u003cp\u003eいろいろな立場があると思いますが、\n個人的には、自分の心理を映し出す鏡として使うといいかなぁと思ってます。\u003c/p\u003e\n\u003cp\u003e例えば、この記事を書いているときに1枚引いたところ、\u003ca href=\"https://ja.wikipedia.org/wiki/%E5%A5%B3%E5%B8%9D_(%E3%82%BF%E3%83%AD%E3%83%83%E3%83%88)#/media/File:RWS_Tarot_03_Empress.jpg\"\u003e女帝\u003c/a\u003eでした。\nその女帝のカードを見ると、頭のもじゃもじゃしたものが気になりました。\nその後、後ろの木や、服のもじゃもじゃが気になりました。\nそして、それを「面白い」と思いました。これをどう解釈するかは別として、精神状態は悪くないようです。\u003c/p\u003e\n\u003ch2 id=\"どのタロットを買うべきか\"\u003eどのタロットを買うべきか\u003c/h2\u003e\n\u003cp\u003e特にこだわりがなければ\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A7%E3%82%A4%E3%83%88%E7%89%88%E3%82%BF%E3%83%AD%E3%83%83%E3%83%88\"\u003eウェイト版\u003c/a\u003eを買うのがいいと思います。\n一番メジャーで入手しやすいのと、想像力を掻き立てられるデザインだからです。\u003c/p\u003e\n\u003ch2 id=\"タロット本\"\u003eタロット本\u003c/h2\u003e\n\u003cp\u003e個人的にはこの本がおすすめです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4023311464/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4023311464.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4023311464/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nタロット バイブル 78枚の真の意味\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eなぜこの本がオススメかと言うと、\nタロットの「解釈」ではなくタロットの「読み方」を教えてくれるからです。\u003c/p\u003e\n\u003cp\u003e例えば13番のカードはDeath、すなわち「死」ですが、\nこのカードが出たからと言って「誰かが死ぬ」と考えるのは早とちりです。\nどちらかと言えば「廃棄」に近いイメージがあります。\u003c/p\u003e\n\u003cp\u003eこのような解釈を、カードに描かれている絵を元に解説していくのが本書です。\u003c/p\u003e\n\u003ch2 id=\"iosアプリ\"\u003eiOSアプリ\u003c/h2\u003e\n\u003cp\u003eiOSではいろいろタロットアプリが出ていますが、ダメなアプリがほとんどです。\nなぜかというと、タロットは心を落ち着けて、\n自分がカードをどのように読み取ったかが重要なのですが、\nほとんどのアプリは、センスのない派手な演出でうんざりでした。\u003c/p\u003e\n\u003cp\u003eこの\u003ca href=\"https://itunes.apple.com/jp/app/id320512305\"\u003eBeautiful Tarot\u003c/a\u003e(有料アプリ)はとても良くできています。\u003c/p\u003e\n\u003cp\u003eこのアプリの解説は英語なので、\n「\u003ca href=\"https://itunes.apple.com/jp/app/id1094166443\"\u003eタロットドリル\u003c/a\u003e」というアプリ(無料、有料コンテンツあり)を\n入れるのをおすすめします。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e丸の中に五芒星が描かれていて、硬貨のように見えます。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "たろっとさん",
    "url": "https://www.ikemo3.com/dic/tarot3/",
    "contents": "\u003ch2 id=\"たろっとさんとは\"\u003eたろっとさんとは\u003c/h2\u003e\n\u003cp\u003eTwitterに以前あった\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、bot(プログラム)のことです。\n\u003ccode\u003e@tarot3\u003c/code\u003e とリプライすることで、タロットカードを引いてくれます。\u003c/p\u003e\n\u003ch2 id=\"twitter-bot-contestで入賞\"\u003eTwitter Bot Contestで入賞\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://twittbot.net/tbc2010/result\"\u003eTwitter Bot Contest\u003c/a\u003eというのがあったので応募したら、\nphaさんから賞をもらいました(*´∀｀*)\u003c/p\u003e\n\u003ch2 id=\"アイデアが良かった\"\u003eアイデアが良かった\u003c/h2\u003e\n\u003cp\u003e自分で言うのも何ですが、アイデアが良かったなと思います。\nやってることは単に、乱数を出して、乱数からタロットカードの情報をリプライするだけです。\nリプライを取得するところ、ツイートするところを除けば、\nプログラムの難易度的はFizzBuzzレベルです。\u003c/p\u003e\n\u003cp\u003e受けたのはたぶん、\u003ca href=\"/theme/human-needs-randomness/\"\u003e人間にはランダム性が必要\u003c/a\u003eなところが\nうまくマッチしたんだと思います。\n\u003ca href=\"/dic/tarot/\"\u003eタロット\u003c/a\u003eはやると結構面白いんですよ。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e今は停止しています。復活の予定はありません。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "確率",
    "url": "https://www.ikemo3.com/dic/probability/",
    "contents": "\u003ch2 id=\"確率とは\"\u003e確率とは\u003c/h2\u003e\n\u003cp\u003eある出来事が起きる可能性を割合で表したものです。\u003c/p\u003e\n\u003ch2 id=\"100と99は本質的に異なる\"\u003e100%と99%は本質的に異なる\u003c/h2\u003e\n\u003cp\u003e例えば、「この手術をすると99%良くなります。1%は失敗します」というのは\n「100人手術すれば99人成功する」という確率と言えますが、\n特定の人にとっては「成功」か「失敗」の0か1でしかありません。\n「99%成功した自分と、1%成功した自分」という状態はありません。\nもし「失敗」に当たってしまったら、その人にはその失敗が全てです。\u003c/p\u003e\n"
  }, 
  {
    "title": "人間にはランダム性が必要",
    "url": "https://www.ikemo3.com/theme/humanity/human-needs-randomness/",
    "contents": "\u003ch2 id=\"人間にはランダム性が必要とは\"\u003e人間にはランダム性が必要とは\u003c/h2\u003e\n\u003cp\u003e人の行動には、規則的なものと、不規則的なものがあります。\n例えば、通勤で毎回同じルートを通るのは規則的なものです。\n一方で、あるお店が日替わり定食を提供している場合、\nそのメニューはしばしば不規則的です。\u003c/p\u003e\n\u003cp\u003e人間には、そのどちらも必要です。規則的なものが重要なのは分かりやすいです。\n\u003ca href=\"/theme/wear-same-clothes-everyday/\"\u003e毎日同じ服を着る\u003c/a\u003e人がいるのは、\n服を選ぶことに頭を使いたくないからです。\u003c/p\u003e\n\u003cp\u003eしかし、不規則的なものの必要性は、あまり認識されていません。\n規則的なものの方が良いとされ、不規則的なものは悪いもの、\nあるいはせいぜい、しょうがないものとみなされています。\u003c/p\u003e\n\u003cp\u003eしかし、ランダム性は減らすものではなく、\n存在しないといけないものです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Hugo",
    "url": "https://www.ikemo3.com/manual/hugo/",
    "contents": "\u003ch2 id=\"インストール\"\u003eインストール\u003c/h2\u003e\n\u003ch3 id=\"バイナリインストール\"\u003eバイナリインストール\u003c/h3\u003e\n\u003cp\u003e以下のドキュメント参照。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/getting-started/installing/\"\u003eHugo | Install Hugo\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"コンパイル\"\u003e\u003ca href=\"https://github.com/gohugoio/hugo#build-and-install-the-binaries-from-source-advanced-install\"\u003eコンパイル\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e前提として、\u003ccode\u003ego\u003c/code\u003eが入っていること。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ego get -v github.com/gohugoio/hugo\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e特定のバーションをコンパイルするときは、\n上のコマンドを実行したあと、以下のようにする。\n(例として、GOPATH=~/go、v0.32をコンパイルする場合)\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ecd ~/go/src/github.com/gohugoio/hugo/\ngit checkout v0.32\ngo install\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"起動オプション\"\u003e起動オプション\u003c/h2\u003e\n\u003cp\u003e自分がよく使うものです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-D\u003c/code\u003e: ドラフトを含める\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-F\u003c/code\u003e: 未来日を含める\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--bind port\u003c/code\u003e: 特定のポートにバインド\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"サイトごとの設定\"\u003eサイトごとの設定\u003c/h2\u003e\n\u003cp\u003eこれは好みですが、自分は以下のようにしています。\u003c/p\u003e\n\u003ch3 id=\"基本項目\"\u003e基本項目\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e必ずセットするもの\n\u003cul\u003e\n\u003cli\u003ebaseURL: サイトのURL\u003c/li\u003e\n\u003cli\u003etitle: サイトのタイトル\u003c/li\u003e\n\u003cli\u003etheme: テーマ名\n\u003cul\u003e\n\u003cli\u003eテーマは\u003ca href=\"https://themes.gohugo.io/\"\u003eComplete List | Hugo Themes\u003c/a\u003eから探します。自作も可能です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e推奨項目\n\u003cul\u003e\n\u003cli\u003ehasCJKLanguage = \u0026ldquo;true\u0026rdquo;: \u003ccode\u003e.Summary\u003c/code\u003e や \u003ccode\u003e.WordCount\u003c/code\u003e が日本語を含む東アジアの言語を考慮します。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eオプション項目\n\u003cul\u003e\n\u003cli\u003econtentDir = \u0026ldquo;post\u0026rdquo; : コンテンツを格納するディレクトリ(詳細は下記)\u003c/li\u003e\n\u003cli\u003emetaDataFormat = \u0026ldquo;yaml\u0026rdquo; : MarkdownのFront MatterをYAMLにします(デフォルトはTOML)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e不要かもしれないもの\n\u003cul\u003e\n\u003cli\u003epreserveTaxonomyNames\n\u003cul\u003e\n\u003cli\u003etrueにすると、タクソノミー名の\u003ccode\u003eé\u003c/code\u003e→\u003ccode\u003ee\u003c/code\u003eへの変換などが行われます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003edefaultContentLanguege = \u0026ldquo;ja\u0026rdquo;\n\u003cul\u003e\n\u003cli\u003e多言語対応の時に、デフォルトで選択される言語です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003elanguageCode = \u0026ldquo;ja\u0026rdquo;: 言語コード。たぶんテーマで使います。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"markdownパーサblackfridayの設定項目\"\u003eMarkdownパーサ(BlackFriday)の設定項目\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esmartypants = false : 以下の4つを無効にします。好みもありますが、自分はオフです。\n\u003cul\u003e\n\u003cli\u003eangledQuotes: \u003ccode\u003e“Hugo”\u003c/code\u003e → \u003ccode\u003e«Hugo»\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003efractions: 分数表示(これは意図されない表示になることが多い)\u003c/li\u003e\n\u003cli\u003esmartDashes: 複数のダッシュ\u003ccode\u003e-\u003c/code\u003eを変換してくれる\u003c/li\u003e\n\u003cli\u003elatexDashed: LaTeXスタイルのダッシュ変換\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ehrefTargetBlank = true : 外部リンクを新規タブでオープンします。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"コンテンツを格納するディレクトリを変更\"\u003eコンテンツを格納するディレクトリを変更\u003c/h3\u003e\n\u003cp\u003eデフォルトではコンテンツは\u003ccode\u003econtent\u003c/code\u003eディレクトリに格納しますが、\n\u003ccode\u003econfig.toml\u003c/code\u003eと最初の4文字が同じため、補完しづらく、使いづらいです。\nそのため、自分は\u003ccode\u003epost\u003c/code\u003eディレクトリに格納するようにしています\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eこの設定は、\u003ccode\u003econfig.toml\u003c/code\u003eに以下のように書きます\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003econtentDir = \u0026#34;post\u0026#34;\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"taxonomyをtagのみにしたい\"\u003etaxonomyをtagのみにしたい\u003c/h3\u003e\n\u003cp\u003eデフォルトではtaxonomyはtag(tags), category(categories)の2つが、\n定義されていますが、タグしか使わないときは以下のように設定することで、\nカテゴリが作成されなくなります。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-toml\" data-lang=\"toml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e[\u003cspan style=\"color:#a6e22e\"\u003etaxonomies\u003c/span\u003e]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003etag\u003c/span\u003e = \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;tags\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"gitignore\"\u003e.gitignore\u003c/h2\u003e\n\u003cp\u003e以下の設定を入れている。\npost/tags/を除外しているのは、Vimの設定と被ってしまうため。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003epublic/\n!post/tags/\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"コンテンツ管理content-management\"\u003eコンテンツ管理(content management)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/categories/content-management\"\u003eContent Management | Hugo\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"front-matter\"\u003eFront Matter\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/content-management/front-matter/\"\u003eFront Matter | Hugo\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eデフォルトはTOMLのため、YAMLを使う場合は、\n\u003ca href=\"https://gohugo.io/getting-started/configuration/\"\u003eConfigure\u003c/a\u003eの\u003ccode\u003emetaDataFormat\u003c/code\u003eを変更すること。\u003c/p\u003e\n\u003ch2 id=\"ショートコードshortcodes\"\u003eショートコード(shortcodes)\u003c/h2\u003e\n\u003cp\u003e以下のように書きます。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e{{\u0026lt; foo \u0026gt;}}\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e内容によっては、以下のように、閉じるものもあります。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e{{\u0026lt; highlight \u0026gt;}}〜〜{{\u0026lt; /highlight \u0026gt;}}\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eショートコード自体を埋め込みたい場合は、\u003ccode\u003e/*\u003c/code\u003e〜\u003ccode\u003e*/\u003c/code\u003eで囲むとよいみたいです。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e{{\u0026lt;/* foo */\u0026gt;}}\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"ビルドインショートコード\"\u003eビルドインショートコード\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/content-management/shortcodes/#tweet\"\u003eTwitter\u003c/a\u003e: \u003ccode\u003etweet ツイートのID\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"csv読み込み\"\u003eCSV読み込み\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/templates/data-templates/#example-for-csv-files\"\u003eCall the Functions with a URL\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/templates/data-templates/#example-for-csv-files\"\u003eExample for CSV files\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下のようにします。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e{{ $dataC := getCSV \u0026#34;separator\u0026#34; \u0026#34;url\u0026#34; }}\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e注意点は以下になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCSVファイルはdata以下に置かないこと。\u003c/li\u003e\n\u003cli\u003eローカルパスを指定する時は、トップディレクトリ以下の相対パスにする。\n\u003cul\u003e\n\u003cli\u003estatic以下に置いた場合は、staticから始まるパスを指定する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"テンプレート\"\u003eテンプレート\u003c/h2\u003e\n\u003ch3 id=\"go言語のテンプレートを使用している\"\u003eGo言語のテンプレートを使用している\u003c/h3\u003e\n\u003cp\u003eHugoはGo言語のテンプレート機能を使用しています。\nなので、細かい仕様は以下に書かれている可能性があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://golang.org/pkg/text/template/\"\u003etemplate - The Go Programming Language\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://golang-jp.org/pkg/text/template/\"\u003e日本語訳\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"range\"\u003erange\u003c/h4\u003e\n\u003cp\u003e\u003ca href=\"https://golang.org/pkg/text/template/#hdr-Variables\"\u003eVariables\u003c/a\u003eより、以下のような書式です。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003erange $index, $element := pipeline\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003erangeのあとのパラメータが2つの場合はindex(0から始まる)と、要素(element)で、\nパラメータが1つだけの場合は要素のみになります。\u003c/p\u003e\n\u003cp\u003eサイトに書かれている例ではrangeは1つだけですが、\n二次元配列のように扱うことができます。\n例えば、テーブルにするには以下のようにします。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;table\u0026gt;\n{{- $url := .Get \u0026#34;url\u0026#34; }}\n{{- range $i, $r := getCSV \u0026#34;,\u0026#34; $url }}\n{{- $col := $r }}\n  \u0026lt;tr\u0026gt;\n    {{- if (eq $i 0) }}\n      {{- range $r }}\n      \u0026lt;th\u0026gt;{{ . }}\u0026lt;/th\u0026gt;\n      {{- end }}\n    {{- else }}\n      {{- range $r }}\n      \u0026lt;td\u0026gt;{{ . }}\u0026lt;/td\u0026gt;\n      {{- end }}\n    {{- end }}\n  \u0026lt;/tr\u0026gt;\n{{- end }}\n\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"文法\"\u003e文法\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e条件分岐: \u003ccode\u003e{{ if }}\u003c/code\u003e〜\u003ccode\u003e{{ else if }}\u003c/code\u003e〜\u003ccode\u003e{{ else }}\u003c/code\u003e〜\u003ccode\u003e{{ end }}\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"変数\"\u003e変数\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/variables/site/\"\u003eサイト(Site)変数\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/variables/page/\"\u003eページ(Page)変数\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"よく使うfunction\"\u003eよく使うfunction\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eデフォルト値: \u003ca href=\"https://gohugo.io/functions/default/\"\u003edefault\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e警告出力: \u003ca href=\"https://gohugo.io/functions/errorf/\"\u003eerrorf\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eそのまま出力\n\u003cul\u003e\n\u003cli\u003eHTML: \u003ca href=\"https://gohugo.io/functions/safehtml/\"\u003esafeHTML\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"replacere\"\u003ereplaceRE\u003c/h4\u003e\n\u003cp\u003e正規表現の注意点として、カッコ自体を記載するときは2回エスケープする必要がある。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://discourse.gohugo.io/t/regex-invalid-syntax/5379/4\"\u003eRegex invalid syntax - support - Hugo Discussion\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ページの取得\"\u003eページの取得\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://gohugo.io/functions/getpage/\"\u003eGetPage\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e使用例。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eセクション: \u003ccode\u003e.Site.GetPage \u0026quot;section\u0026quot; \u0026quot;セクション名\u0026quot;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eページ: \u003ccode\u003e.Site.GetPage \u0026quot;page\u0026quot; \u0026quot;ページのパス\u0026quot;\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e拡張子(.md)が必要。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eタクソノミ(0.45より\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e)\n\u003cul\u003e\n\u003cli\u003eあるタグを取得 \u003ccode\u003e.Site.GetPage \u0026quot;/tags/タグ名\u0026quot;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"変数-1\"\u003e変数\u003c/h3\u003e\n\u003cp\u003eスコープの中で定義した変数は、外では使えません。\nそういうときのために\u003ca href=\"https://gohugo.io/functions/scratch/\"\u003e.Scratch\u003c/a\u003eを使います。\u003c/p\u003e\n\u003cp\u003eHugo 0.48以降は外側で定義した変数を、内側で上書きできるようになりました。\n文法は\u003ccode\u003e{{ $var = \u0026quot;Hugo Home\u0026quot; }}\u003c/code\u003eのように、\u003ccode\u003e:=\u003c/code\u003eでなく\u003ccode\u003e=\u003c/code\u003eを使います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/news/0.48-relnotes/\"\u003eThis One Goes to 11! | Hugo\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ページ変数\"\u003eページ変数\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://gohugo.io/variables/page/\"\u003ePage Variables | Hugo\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eページ変数はFront Matterで定義するが、\n必ず\u003cstrong\u003e小文字\u003c/strong\u003eで定義すること。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://gohugo.io/variables/page/#page-level-params\"\u003ePage-level Params\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePage-level .Params are only accessible in lowercase.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"空白の制御\"\u003e空白の制御\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://gohugo.io/templates/introduction/\"\u003eWhitespace\u003c/a\u003eにあるように、\n開始に\u003ccode\u003e{{-\u003c/code\u003eと書けば、その前の空白が削除され、\u003ccode\u003e-}}\u003c/code\u003eと書けば、その後の空白が削除さ\nれます。\n空白は以下の4種類です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003espace → スペース\u003c/li\u003e\n\u003cli\u003ehorizontal tab → 水平タブ(いわゆる普通のタブ)\u003c/li\u003e\n\u003cli\u003ecarriage return → キャリッジリターン(CR, \u0026lsquo;\\r\u0026rsquo;)のことかと。\u003c/li\u003e\n\u003cli\u003enewline → ラインフィード(LF, \u0026lsquo;\\n\u0026rsquo;)のことかと。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"パフォーマンスチューニング\"\u003eパフォーマンスチューニング\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003e--templateMetrics\u003c/code\u003eオプションを使って計測する。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://gohugo.io/troubleshooting/build-performance/\"\u003eBuild Performance | Hugo\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"目次\"\u003e目次\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://gohugo.io/content-management/toc/\"\u003eTable of Contents\u003c/a\u003eの方法を使えば、目次が出せます。ただしこの方法だと見出しに\u003ccode\u003e##\u003c/code\u003e(\u003ccode\u003e\u0026lt;h2\u0026gt;\u003c/code\u003e)から始まるサイトは対応できません。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/gohugoio/hugo/issues/1778\"\u003eIssue 1778\u003c/a\u003eに回避方法が記載されていますが、自分はJavaScriptでDOMを変更する方法を採りました。なお、このチケットはクローズされていますが、\u003ca href=\"https://github.com/gohugoio/hugo/issues/3949\"\u003eBlackfriday v2に対応\u003c/a\u003eすることで解決したいようです。\u003c/p\u003e\n\u003ch3 id=\"タクソノミ\"\u003eタクソノミ\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://gohugo.io/templates/taxonomy-templates/\"\u003eTaxonomy Templates\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"hugo-pipes\"\u003eHugo Pipes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/hugo-pipes/introduction/\"\u003eHugo Pipes Introduction | Hugo\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e以下のようなものを実現する機能です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSASS/SCSS/PostCSSからCSSファイルへの変換\u003c/li\u003e\n\u003cli\u003eファイルの最小化(minification)\u003c/li\u003e\n\u003cli\u003eJavaScriptファイルなどのバンドル化\u003c/li\u003e\n\u003cli\u003eフィンガープリントや\u003ca href=\"/dic/cache-busting/\"\u003eキャッシュバスティング\u003c/a\u003eのためのハッシュ\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ページバンドル\"\u003eページバンドル\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://gohugo.io/content-management/page-bundles/\"\u003ePage Bundles | Hugo\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e注意点\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e必ずLeaf BundleまたはBranch Bundle形式にすること。\u003c/li\u003e\n\u003cli\u003e記事を書く場合はLeaf Bundle形式\n\u003cul\u003e\n\u003cli\u003eディレクトリを掘って、そこのindex.mdに記事を書く。\u003c/li\u003e\n\u003cli\u003e画像などのリソースはそのディレクトリに置く\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"画像処理\"\u003e画像処理\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://gohugo.io/content-management/image-processing/\"\u003eImage Processing | Hugo\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eiPhoneで撮った画像は横向きが基準で、縦向きで取ると回転が必要なようです。\u003c/p\u003e\n\u003ch3 id=\"出来ること出来ないこと\"\u003e出来ること・出来ないこと\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e出来る(出来た)こと\n\u003cul\u003e\n\u003cli\u003eいろいろ\u003c/li\u003e\n\u003cli\u003eテンプレートでエラーが出たときに警告を出す\n\u003cul\u003e\n\u003cli\u003e通常は単に無視されるのですが、警告を出したいこともあります\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003eでも\u003ca href=\"https://gohugo.io/functions/errorf/\"\u003eerrorf\u003c/a\u003eを使えば可能ですね。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e外部ライブラリで出来ること\n\u003cul\u003e\n\u003cli\u003eソースコードのハイライト\u003c/li\u003e\n\u003cli\u003e数式対応\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e出来ない(出来てない)こと\n\u003cul\u003e\n\u003cli\u003eString or Arrayという値は取れない。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://discourse.gohugo.io/t/how-to-check-if-a-variable-is-string-or-array/7460\"\u003eHow to check if a variable is String or Array - support - Hugo Discussion\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eHugo使う前に使ってたJekyllでは\u003ccode\u003e_posts\u003c/code\u003eという名前を使っていたので、それに近い名前\u003ccode\u003epost\u003c/code\u003eを選びました。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://gohugo.io/getting-started/configuration/\"\u003eHugo | Configure Hugo\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"https://gohugo.io/news/0.45-relnotes/\"\u003eHugo 0.45: Revival of ref, relref and GetPage | Hugo\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/gohugoio/hugo/issues/3171\"\u003eWarn about missing templates instead of silently dropping content · Issue #3171 · gohugoio/hugo\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "静的アーキテクチャ",
    "url": "https://www.ikemo3.com/dic/static-architecture/",
    "contents": "\u003ch2 id=\"静的アーキテクチャとは\"\u003e静的アーキテクチャとは\u003c/h2\u003e\n\u003cp\u003e物事を「精密に構築された静的なもの」を使用することで\n解決しようとするアプローチです。\u003c/p\u003e\n\u003ch2 id=\"なぜアンチパターンなのか\"\u003eなぜアンチパターンなのか\u003c/h2\u003e\n\u003cp\u003e自分はこれを**\u003ca href=\"/dic/anti-pattern/\"\u003eアンチパターン\u003c/a\u003e**として捉えています。\nその理由は、物事はほとんどの場合動的に変わるからです。\n5年前は有効だった手法が、現在も有効とは限りません。\u003c/p\u003e\n\u003cp\u003eそれでも、ゆるいアーキテクチャなら、修正は容易です。\n問題は、精密に構築されている場合です。\n精密に構築されている大きなシステムほど、修正は難しいです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Git",
    "url": "https://www.ikemo3.com/dic/git/",
    "contents": "\u003ch2 id=\"gitとは\"\u003eGitとは\u003c/h2\u003e\n\u003cp\u003eバージョン管理システムです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://git-scm.com/\"\u003e公式サイト\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://git-scm.com/docs\"\u003eリファレンス\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://git-scm.com/book/ja/v2\"\u003eBook(日本語)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eどういう使い方をするか分かりませんが、\nJavaScriptによる実装もあるようです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/isomorphic-git/isomorphic-git\"\u003eisomorphic-git/isomorphic-git: A pure JavaScript implementation of git for node and browsers!\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"gitの入門書はわかばちゃんと学ぶで決まり\"\u003eGitの入門書は「わかばちゃんと学ぶ〜」で決まり\u003c/h2\u003e\n\u003cp\u003e自分は何とか独学で習得しましたが\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\n新たにGitを学ぶならこの本がダントツでおすすめです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4863542178/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4863542178.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4863542178/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nわかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eなぜかというと、Gitで一番むずかしいのは「概念を理解すること」だからです。\nWebで連載があるので、まずこれから読んでみるといいと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://codeiq.jp/magazine/category/git-ai/\"\u003e【連載】マンガでわかるGit｜CodeIQ MAGAZINE\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"master--main\"\u003emaster → main\u003c/h2\u003e\n\u003cp\u003e個人的には「master/slave」のセットでなければ単なる言葉狩りで改名するつもりはなかったんですが、\nGitが参考にした\u003ca href=\"https://github.com/bitkeeper-scm/bitkeeper/blob/master/doc/HOWTO.ask#L223\"\u003eBitKeeperのREADME\u003c/a\u003eにはmaster/slaveという記述があるので、\nこれに関しては変えてもいいかなぁと思ってます。 \u003ccode\u003emain\u003c/code\u003e という名前も気に入っているので。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://piro.sakura.ne.jp/latest/blosxom/webtech/2020-06-12_migrate-default-branch-from-master-to-trunk.htm\"\u003eLatest topics \u0026gt; GitHubに多数ある自分のリポジトリのデフォルトブランチをmasterからtrunkに切り替えた - outsider reflex\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e3度くらい挫折しましたが。。。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "タグ",
    "url": "https://www.ikemo3.com/tags/",
    "contents": ""
  }, 
  {
    "title": "Ansible",
    "url": "https://www.ikemo3.com/manual/ansible/",
    "contents": "\u003ch2 id=\"独自ドメインを作りました\"\u003e独自ドメインを作りました\u003c/h2\u003e\n\u003cp\u003e今後はこちらに移行していく予定です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ansible.ikemo3.com/\"\u003eAnsibleメモ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"環境変数\"\u003e環境変数\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eANSIBLE_RETRY_FILES_ENABLED: 失敗した時にsite.retryファイルを作成するかどうか。\u003ccode\u003e0\u003c/code\u003eとすると、作成しなくなる。\n\u003cul\u003e\n\u003cli\u003eAnsible 2.8からはデフォルトでオフになったので、不要になりました(未確認)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/proposals/issues/155\"\u003eSet retry_files_enabled = False by default · Issue #155 · ansible/proposals\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible/pull/52581\"\u003eChange the retry_files_enabled to False and modify the comments to reflect that this has been disabled by chuckersjp · Pull Request #52581 · ansible/ansible\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"設定\"\u003e設定\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://docs.ansible.com/ansible/devel/installation_guide/_config.html\"\u003eAnsible Configuration Settings — Ansible Documentation\u003c/a\u003eより。\u003c/p\u003e\n\u003ch2 id=\"adhoc実行\"\u003eadhoc実行\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/intro_adhoc.html\"\u003eIntroduction To Ad-Hoc Commands — Ansible Documentation\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例えば以下のコマンドで、対象マシンの情報が得られる。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eansible all -i ホスト名, -m setup\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eオプションは以下の意味を持つ。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eall\u003c/code\u003e: ホスト名のパターン。通常は \u003ccode\u003eall\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-i \u0026lt;ホスト名 or IPアドレス\u0026gt;\u003c/code\u003e: インベントリ文字列、ホスト名の最後に\u003ccode\u003e,\u003c/code\u003eをつけるのを忘\u0026gt;れないこと\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-m\u003c/code\u003e: 起動するモジュール\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"よく使う起動オプション\"\u003eよく使う起動オプション\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-i \u0026lt;インベントリファイル\u0026gt;\u003c/code\u003e: インベントリファイルを指定\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-C\u003c/code\u003e: 実行しない(dry run)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-D\u003c/code\u003e: 結果の差分表示\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-t \u0026lt;タグ\u0026gt;\u003c/code\u003e: 指定したタグのみ実行\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--step\u003c/code\u003e: タスクごとに確認を行う。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--syntax-check\u003c/code\u003e: 文法チェックを行う。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-l \u0026lt;パターン\u0026gt;\u003c/code\u003e: 指定した\u003ca href=\"http://docs.ansible.com/ansible/latest/intro_patterns.html\"\u003eパターン\u003c/a\u003eにマッチするホストのみ処理\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"環境変数-1\"\u003e環境変数\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/config.html#envvar-ANSIBLE_KEEP_REMOTE_FILES\"\u003eANSIBLE_KEEP_REMOTE_FILES\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eこの値を\u003ccode\u003e1\u003c/code\u003eにすると、リモートの一時ファイルをクリーンアップしない。デバッグ時に便利。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"インベントリファイル\"\u003eインベントリファイル\u003c/h2\u003e\n\u003ch3 id=\"1つのホストに2つのポートは設定できない回避策あり\"\u003e1つのホストに2つのポートは設定できない(回避策あり)\u003c/h3\u003e\n\u003cp\u003eインベントリファイルに以下のように記述しても、意図した通りに動きません。\nグループを分けてもダメです。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e[some_group]\nfoo.example.com:1111\nfoo.example.com:1234\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eこの指定ができないことで何が困るのかというと、\nSSH接続ポートを変えてPlaybookを2つ管理したい場合に困ります。\u003c/p\u003e\n\u003cp\u003eただし、これには回避策があります。\u003c/p\u003e\n\u003cp\u003eGitHubにあるIssue \u003ca href=\"https://github.com/ansible/ansible/issues/8306\"\u003eCannot specify two different ports to the same host in inventory\u003c/a\u003eのリンク先にある\n\u003ca href=\"https://stackoverflow.com/questions/26527458/ansible-multiple-hosts-with-port-forwarding\"\u003epython - Ansible multiple hosts with port forwarding - Stack Overflow\u003c/a\u003eで書かれているように、\n\u003ccode\u003eansible_host\u003c/code\u003e と \u003ccode\u003eansible_port\u003c/code\u003eを使って書きます\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"変更があったときだけ実行\"\u003e変更があったときだけ実行\u003c/h2\u003e\n\u003cp\u003eいくつか方法がある。\n1つ目は、handlerを使う(notifyの項目参照)。\n2つ目は、registerで値を代入して、whenを使う方法。\nrebootはこれでないとうまく動かなかった。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e- file: state=...\n  register: foo\n\n- file: ...\n  when: foo.changed\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"変数定義\"\u003e変数定義\u003c/h2\u003e\n\u003cp\u003e以下の場所に書ける。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003egroup_vars\u003c/li\u003e\n\u003cli\u003ehost_vars\u003c/li\u003e\n\u003cli\u003eインベントリ中\u003c/li\u003e\n\u003cli\u003eroles/ロール/vars/\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/modules/set_fact_module.html\"\u003eset_fact\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"set_fact\"\u003eset_fact\u003c/h3\u003e\n\u003cp\u003eset_fact中で複数定義する場合、\n同じset_fact中で定義されている他の変数は参照できない。\n以下のように書くとエラーになる。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003eset_fact\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003evalue_a\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;abc\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003evalue_b\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;{{ value_a }}def\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"notify\"\u003enotify\u003c/h2\u003e\n\u003ch3 id=\"ハンドラが呼ばれるタイミング\"\u003eハンドラが呼ばれるタイミング\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003erole\u003c/code\u003eを使用する場合は、\u003ccode\u003etasks\u003c/code\u003e\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003eの終了タイミングで呼ばれる\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ehandlers notified within roles section are automatically flushed in the end of tasks section, but before any tasks handlers.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"ハンドラを強制的に呼ぶ方法\"\u003eハンドラを強制的に呼ぶ方法\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/meta_module.html\"\u003emeta\u003c/a\u003eモジュールの \u003ccode\u003eflush_handlers\u003c/code\u003e を使うと、そのタイミングでハンドラが呼ばれます。\u003c/p\u003e\n\u003ch3 id=\"ハンドラで複数のタスクをこなす方法\"\u003eハンドラで複数のタスクをこなす方法\u003c/h3\u003e\n\u003cp\u003e今はサポートされていないようです。チケットに代替案があります。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ansible/ansible/issues/14270\"\u003eAdd support for blocks in role handlers · Issue #14270 · ansible/ansible\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"ロール\"\u003eロール\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html\"\u003eRoles — Ansible Documentation\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eロール単位での実行オプションはないようです。\n自分でtagsを付けるしかありません。\u003c/p\u003e\n\u003ch2 id=\"ループ\"\u003eループ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/playbooks_loops.html\"\u003eLoops — Ansible Documentation\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ewith_items\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e配列を取る。\u003c/li\u003e\n\u003cli\u003e配列の値が文字列のときは、\u003ccode\u003e{{ item }}\u003c/code\u003eとして値を取得。\u003c/li\u003e\n\u003cli\u003e配列の値がハッシュのときは、\u003ccode\u003e{{ item.name }}\u003c/code\u003eなどとして値を取得する。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ewith_nested\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e配列の配列を取る。\u003c/li\u003e\n\u003cli\u003e値は先頭に定義されたものから、\u003ccode\u003e{{ item[0] }}\u003c/code\u003eなどとして値を取得。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"モジュール\"\u003eモジュール\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/list_of_all_modules.html\"\u003e全て\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ファイルの展開\"\u003eファイルの展開\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/unarchive_module.html\"\u003eunarchive\u003c/a\u003eを使う。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eコピー元の指定に注意\n\u003cul\u003e\n\u003cli\u003eデフォルト: \u003ccode\u003esrc\u003c/code\u003eを\u003cstrong\u003eローカルファイル\u003c/strong\u003eと解釈して、リモートに転送して解凍\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremote_src=yes\u003c/code\u003e がある場合\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esrc\u003c/code\u003eに\u003ccode\u003e://\u003c/code\u003eがある場合はURLと解釈してダウンロード\u003c/li\u003e\n\u003cli\u003eそれ以外のときは、ターゲットホストのパスと解釈して実行\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eチェックサムは未対応\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ansible/ansible/issues/13665\"\u003eIssue #13665\u003c/a\u003eに挙がっている通り、チェックサムには未対応です。\n\u003cul\u003e\n\u003cli\u003eget_urlモジュールを使ってからダウンロードが良いと思います。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ファイルの取得ダウンロード\"\u003eファイルの取得(ダウンロード)\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/modules/get_url_module.html\"\u003eget_url\u003c/a\u003eを使う。\nProxyが環境変数で設定されているときは、Proxyを使用します。\u003c/p\u003e\n\u003cp\u003e大きいファイルをダウンロードする時は、checksumを付けること。\nchecksumを付けると、ダウンロード前にチェックサムを調べて、\n一致していたらダウンロードしません。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eif a checksum is passed to this parameter,\nand the file exist under the dest location,\nthe destination_checksum would be calculated,\nand if checksum equals destination_checksum,\nthe file download would be skipped (unless force is true).\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003eget_url\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003eurl\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003ehttp://example.com/path/\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003edest\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e/root/\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003echecksum\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003esha256:xxxx\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e対応しているチェックサムは、sha1は対応しているようですが、\nそれ以外はpythonのバージョンによるので分からないみたいです。\n\u003ca href=\"https://github.com/ansible/ansible/blob/8a6d69919863c2b1583da03e91e1c2108cde892c/lib/ansible/modules/net_tools/basics/get_url.py#L429\"\u003eソースコード\u003c/a\u003e見れば分かるかも。。。\u003c/p\u003e\n\u003ch3 id=\"文字列置換\"\u003e文字列置換\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e1行の追加・置き換え: \u003ca href=\"http://docs.ansible.com/ansible/latest/modules/lineinfile_module.html\"\u003elineinfile\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eブロックの追加: \u003ca href=\"http://docs.ansible.com/ansible/latest/modules/blockinfile_module.html\"\u003eblockinfile\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e既存のブロックの置き換えには向いていない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eブロックの置き換え: \u003ca href=\"http://docs.ansible.com/ansible/latest/modules/replace_module.html\"\u003ereplace\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eこれだけUTF-8以外をサポート。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eファイルごと置き換えていいのであれば、\u003ca href=\"http://docs.ansible.com/ansible/latest/modules/template_module.html\"\u003etemplate\u003c/a\u003e、\nまたは\u003ca href=\"http://docs.ansible.com/ansible/latest/modules/copy_module.html\"\u003ecopy\u003c/a\u003eのcontentもアリだと思います。\u003c/p\u003e\n\u003ch3 id=\"aws\"\u003eAWS\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebotoを入れる必要がある。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eboto required for this module\u003c/code\u003eと出るときは、インベントリファイルに \u003ccode\u003eansible_python_interpreter=python\u003c/code\u003e と書く。単に\u003ccode\u003epython\u003c/code\u003eと書くと、PATHにあるものが適用される模様。デフォルトは\u003ccode\u003e/usr/bin/python\u003c/code\u003eになる。\n\u003cul\u003e\n\u003cli\u003e参考: \u003ca href=\"https://github.com/ansible/ansible/issues/15019\"\u003eansible unable to find boto: boto required for this module · Issue #15019 · ansible/ansible\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eモジュール\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/manual/route53/\"\u003eRoute53\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"mysql\"\u003eMySQL\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/modules/mysql_db_module.html\"\u003emysql_db\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/modules/mysql_user_module.html\"\u003emysql_user\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/modules/mysql_variables_module.html\"\u003emysql_variables\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/modules/mysql_replication_module.html\"\u003emysql_replication\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"google-cloud\"\u003eGoogle Cloud\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/scenario_guides/guide_gce.html\"\u003eGoogle Cloud Platform Guide\u003c/a\u003e\u003c/p\u003e\n\u003ch4 id=\"認証\"\u003e認証\u003c/h4\u003e\n\u003cp\u003eサービスアカウントを作成する。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e左上のメニューから、「IAMと管理」→「サービスアカウント」を選択\u003c/li\u003e\n\u003cli\u003e「サービスアカウントを作成」をクリック\u003c/li\u003e\n\u003cli\u003e値を入力\n\u003cul\u003e\n\u003cli\u003eサービスアカウント名: サービスの内容を表す文字列(日本語でもOK)\u003c/li\u003e\n\u003cli\u003e役割: 必要な役割を追加\n\u003cul\u003e\n\u003cli\u003e例: Google Cloud DNS: DNS→DNS管理者\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eサービスアカウントID: 一意のものを割り当て\u003c/li\u003e\n\u003cli\u003e新しい秘密鍵の提供: オン、キーのタイプはJSON\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e作成ボタンを押すと、JSONファイルがダウンロードされる。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eAnsibleでは以下のように使用する。\nまず、資格情報を直接渡す場合(秘密鍵を直接指定するので注意)。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ecredentials_file: 秘密鍵の入ったJSONファイル。\n\u003cul\u003e\n\u003cli\u003eパスはプロジェクトトップからの相対パスが使用可能(roles/xxx/filesではない)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eservice_account_email: サービスアカウントID(gserviceaccount.com)\u003c/li\u003e\n\u003cli\u003eproject_id: プロジェクトID\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"db作成時のみインポートする方法\"\u003eDB作成時のみインポートする方法\u003c/h4\u003e\n\u003cp\u003e以下のように、mysql_dbが実行されたときだけインポートするのが良いと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/27971117/how-can-i-have-ansible-execute-a-task-only-when-my-database-is-created\"\u003eHow can I have ansible execute a task only when my database is created? - Stack Overflow\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"テンプレート\"\u003eテンプレート\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://jinja.pocoo.org/docs/2.10/templates/\"\u003eJinja2\u003c/a\u003eを使う。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e制御\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e{%\u003c/code\u003e 〜 \u003ccode\u003e%}\u003c/code\u003e で囲む。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eif\u003c/code\u003e 〜 \u003ccode\u003eendif\u003c/code\u003e のように囲む。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e空白の制御(\u003ca href=\"http://jinja.pocoo.org/docs/2.10/templates/#whitespace-control\"\u003eWhitespacde Control\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e{%-\u003c/code\u003e や\u003ccode\u003e-%}\u003c/code\u003e のように囲む。\u003c/li\u003e\n\u003cli\u003eAnsibleから使用する場合は、Jinja2を制御するためのヘッダが書ける(\u003ca href=\"https://docs.ansible.com/ansible/2.3/template_module.html#notes\"\u003eNotes\u003c/a\u003e)。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e#jinja2: trim_blocks: \u0026quot;true\u0026quot;, lstrip_blocks: \u0026quot;true\u0026quot;\u003c/code\u003eのように書ける。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"フィルタ\"\u003eフィルタ\u003c/h3\u003e\n\u003cp\u003e変数名の後に\u003ccode\u003e|\u003c/code\u003e(パイプ)を付けることで、フィルタできる。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://jinja.pocoo.org/docs/dev/templates/#filters\"\u003eFilters\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://jinja.pocoo.org/docs/dev/templates/#builtin-filters\"\u003eList of Builtin Filters\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003elower: 小文字化\u003c/li\u003e\n\u003cli\u003eupper: 大文字化\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"個人的に気をつけていること\"\u003e個人的に気をつけていること\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eファイル変更後にリロードしたいときは、\u003ccode\u003enotify\u003c/code\u003eを使う。\u003c/li\u003e\n\u003cli\u003enameには変数を使わない。環境変数は\u003ccode\u003e$VAL\u003c/code\u003eみたいな書き方をする。\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--start-at\u003c/code\u003eとかで指定しづらいため。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e何百台もデプロイする場合は別として、手動での作業を無理に排除しない。\n\u003cul\u003e\n\u003cli\u003e例: サーバ再起動とかOracleのインストーラとか\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/inverted/ansible/reboot/\"\u003eサーバ再起動\u003c/a\u003eは手順を整備したので、今後は使えそうです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eとは言え手作業はなるべく減らしたいので、開発環境のマスタ設定は行う。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e大きいファイルは手元に置かない。http経由で取得。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"ディレクトリ構成\"\u003eディレクトリ構成\u003c/h3\u003e\n\u003cp\u003e自分の場合、開発環境はVagrantですが、本番環境はオンプレや、VMなど様々です\u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e。\nなので、以下の要件を満たす必要があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVagrantとそれ以外を同一のPlaybookで扱いたい\u003c/li\u003e\n\u003cli\u003eしかし、初期設定やテストデータは分離したい\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこの場合、以下のようなディレクトリ構成にしています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVagrantfile\u003c/li\u003e\n\u003cli\u003ebootstrap.sh: Vagrant起動時に読み込まれるスクリプト。\n\u003cul\u003e\n\u003cli\u003eyum updateや最低限のユーザ作成など。\u003c/li\u003e\n\u003cli\u003eAWSではcloud-initとう仕組みがありますが、これを意識したものです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003epre-install\n\u003cul\u003e\n\u003cli\u003eVagrant固有の初期設定。\u003c/li\u003e\n\u003cli\u003e開発時はsshで作業する事が多いので、そのままrootになれるようにしています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eansible\n\u003cul\u003e\n\u003cli\u003eVagrantと本番環境共通の設定。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003epost-install\n\u003cul\u003e\n\u003cli\u003eテストデータなど、開発環境固有の設定。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこの場合の難点は、Ansibleの変数が共有できないことですが、\n以下のようにVagrantから変数を定義することで対処可能です。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-ruby\" data-lang=\"ruby\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  config\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003evm\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eprovision \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;ansible\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edo\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003eansible\u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ansible\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003ehost_vars \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;default\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u0026gt;\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;key\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u0026gt;\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;val\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ansible\u003cspan style=\"color:#f92672\"\u003e.\u003c/span\u003eplaybook \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;ansible/site.yml\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eカンマで終わるとホスト指定になる仕様については、man ansibleに記載されています。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eStackOverFlowでは \u003ccode\u003eansible_ssh_host\u003c/code\u003e, \u003ccode\u003eansible_ssh_port\u003c/code\u003e と書かれていますが、これは古い書き方です。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e記載はありませんが、\u003ccode\u003eroles\u003c/code\u003eでも同じみたいです。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e\u003ca href=\"http://docs.ansible.com/ansible/latest/playbooks_intro.html#handlers-running-operations-on-change\"\u003eIntro to Playbooks — Ansible Documentation\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003eDocker使えているところはその悩みはないと思いますが。。。\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Google-Cloud",
    "url": "https://www.ikemo3.com/tags/google-cloud/",
    "contents": ""
  }, 
  {
    "title": "ssh",
    "url": "https://www.ikemo3.com/manual/ssh/",
    "contents": "\u003ch2 id=\"マニュアル\"\u003eマニュアル\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.openssh.com/manual.html\"\u003eOpenSSH: Manual Pages\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"秘密鍵\"\u003e秘密鍵\u003c/h2\u003e\n\u003ch3 id=\"作成\"\u003e作成\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003essh-keygen -t rsa -b 2048 -f \u0026lt;秘密鍵のパス\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-b 2048\u003c/code\u003e: 鍵の長さを2048ビットにする\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n\u003cul\u003e\n\u003cli\u003e実際はデフォルト値が2048ビットです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-t rsa\u003c/code\u003e: 鍵のタイプをRSAにする。\n\u003cul\u003e\n\u003cli\u003e実際はデフォルトがRSAになっています\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003eより強度を求めるなら、\u003ccode\u003eecdsa\u003c/code\u003e, \u003ccode\u003eed25519\u003c/code\u003eを指定するのもいいと思いますが、サービス側の対応状況を確認してください。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-f \u0026lt;秘密鍵のパス\u0026gt;\u003c/code\u003e: 出力する秘密鍵のパスを指定します。\n\u003cul\u003e\n\u003cli\u003e秘密鍵のパスに\u003ccode\u003eid_rsa\u003c/code\u003eを指定すると、カレントディレクトリに\u003ccode\u003eid_rsa\u003c/code\u003e, \u003ccode\u003eid_rsa.pub\u003c/code\u003eが作成されます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"パスフレーズの変更\"\u003eパスフレーズの変更\u003c/h3\u003e\n\u003cp\u003eパスフレーズを削除する場合は、新しいパスフレーズを空にすればよい。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003essh-keygen -p -f \u0026lt;秘密鍵のパス\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"ホスト鍵を無視する方法\"\u003eホスト鍵を無視する方法\u003c/h2\u003e\n\u003cp\u003e閉じた環境でVagrantを使うなど、頻繁にホストキーが変わる環境の場合に、\nホスト鍵を無視するには、以下の2つのオプションを使うと良いです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eStrictHostKeyChecking: no\n\u003cul\u003e\n\u003cli\u003eデフォルトは\u0026rsquo;ask\u0026rsquo;で、受け入れるかどうかを尋ねます。\u003c/li\u003e\n\u003cli\u003enoにすると、新規ホストに接続するとき、known_hostsファイルに自動的に書き込みます。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUserKnownHostsFile: /dev/null\n\u003cul\u003e\n\u003cli\u003eknown_hostsファイルの場所を指定します。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"フィンガープリントの表示\"\u003eフィンガープリントの表示\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# sha256(デフォルト)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003essh-keygen -l -f \u0026lt;公開鍵のパス\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# md5\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003essh-keygen -l -E md5 -f \u0026lt;公開鍵のパス\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"応答がなくなった場合\"\u003e応答がなくなった場合\u003c/h2\u003e\n\u003cp\u003e以下のようにコマンドを打つ。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://askubuntu.com/questions/29942/how-can-i-break-out-of-ssh-when-it-locks\"\u003eHow can I break out of ssh when it locks? - Ask Ubuntu\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"環境変数\"\u003e環境変数\u003c/h2\u003e\n\u003cp\u003eデフォルトではログインと同じようには環境変数が設定されない。\n\u003ca href=\"/manual/sshd\"\u003esshdのマニュアル\u003c/a\u003eを参照。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ccode\u003eman ssh-keygen\u003c/code\u003eの\u003ccode\u003e-b\u003c/code\u003eオプションの説明に、\u0026ldquo;Generally, 2048 bits is considered sufficient.\u0026ldquo;と書かれています。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ccode\u003eman ssh-keygen\u003c/code\u003eに\u0026quot;If invoked without any arguments, ssh-keygen will generate an RSA key for use in SSH protocol 2 connections.\u0026ldquo;と書かれています。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "キモヲタ",
    "url": "https://www.ikemo3.com/dic/kimowota/",
    "contents": "\u003ch2 id=\"キモヲタとは\"\u003eキモヲタとは\u003c/h2\u003e\n\u003cp\u003eキモい(気持ち悪い)オタクのことです。\u003c/p\u003e\n\u003ch2 id=\"オタクとの違い\"\u003eオタクとの違い\u003c/h2\u003e\n\u003cp\u003e蔑称なので普段は使いませんが、\n自分としては「\u003ca href=\"/dic/otaku/\"\u003eオタク\u003c/a\u003e」との違いを込めて使うことがあります。\n\u003cstrong\u003e決して見た目に対して使うことはありません\u003c/strong\u003e。\u003c/p\u003e\n\u003cp\u003e何が違うのかというと、オタクもキモヲタも、いわゆるオタク趣味、\nアニメ、漫画、ゲームなどを好むという意味では同じですが、考え方は全く逆です。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eオタク\u003c/th\u003e\n          \u003cth\u003eキモヲタ\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e生産者・生産消費者\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003e消費者\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e寛容的\u003c/td\u003e\n          \u003ctd\u003e攻撃的\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eよかった探し\u003c/td\u003e\n          \u003ctd\u003eあら探し\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e良いものに投資\u003c/td\u003e\n          \u003ctd\u003e悪いものに浪費\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e群れない\u003c/td\u003e\n          \u003ctd\u003e群れる\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"キモヲタの例\"\u003eキモヲタの例\u003c/h2\u003e\n\u003cp\u003e以前\u003ca href=\"/dic/twitter/\"\u003eTwitter\u003c/a\u003e(\u003ca href=\"/dic/bakatter/\"\u003eバカッター\u003c/a\u003e)で以下の記事が批判されていました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://style.nikkei.com/article/DGXMZO76417790R30C14A8000000\"\u003eお金はかかるが…趣味があれば仕事もがんばれる｜マネー研究所｜NIKKEI STYLE\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://style.nikkei.com/article/DGXMZO76670650V00C14A9000000\"\u003e月に1万円以上使うなら「お金がかかる趣味」｜マネー研究所｜NIKKEI STYLE\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://style.nikkei.com/article/DGXMZO77057420T10C14A9000000\"\u003e「オタク係数」25％超え　家計破綻の恐れあり｜マネー研究所｜NIKKEI STYLE\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e自分は既婚者なので「まあそうだよね」と思ったんですが、\nキモオタ的には許せない記事だったようです。\u003c/p\u003e\n\u003cp\u003e反響が大きかったのか、著者によるセルフツッコミも入っています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://news.yahoo.co.jp/byline/syunsukeyamasaki/20140916-00039137/\"\u003e「趣味は月１万円以内」というバカ話にツッコミを入れる(山崎俊輔) - 個人 - Yahoo!ニュース\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eなぜこれが「キモオタ」なのかは、以下の点にあらわれています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eそもそもこの記事は「将来のためにお金を貯めたい人」向けの記事であることを理解していない。\n\u003cul\u003e\n\u003cli\u003e「自分には関係ないや」と無視しておけばよい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e「お金を使うこと」がオタクだと勘違いしてる。\n\u003cul\u003e\n\u003cli\u003e自分が興味があることにのめり込むことが重要であって、お金は関係ない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eそもそもこの記事の内容を理解していない。\n\u003cul\u003e\n\u003cli\u003e「1万円以上かかる趣味はやめろ」とは書いていない。せいぜい「お金を貯めたいなら1万円以上かかる趣味は2つくらいが妥当」「お金の使い方にメリハリをつける」くらい。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E7%94%9F%E7%94%A3%E6%B6%88%E8%B2%BB%E8%80%85\"\u003e生産消費者 - Wikipedia\u003c/a\u003eとだいたい同じです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "マニュアル",
    "url": "https://www.ikemo3.com/manual/",
    "contents": "\u003ch2 id=\"マニュアルとは\"\u003eマニュアルとは\u003c/h2\u003e\n\u003cp\u003eその作業をする時に常に参照するものです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e設定手順書: 初回のみ参照するもの\u003c/li\u003e\n\u003cli\u003eマニュアル: 常に参照するもの(順引き)\u003c/li\u003e\n\u003cli\u003e逆引きマニュアル(作業手順書): 困ったときに参照するもの(逆引き)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eという感じですね。チートシートが近いかもしれません。\u003c/p\u003e\n"
  }, 
  {
    "title": "Groovy",
    "url": "https://www.ikemo3.com/manual/groovy/",
    "contents": "\u003ch2 id=\"javaの記法との違い\"\u003eJavaの記法との違い\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://npnl.hatenablog.jp/entry/20110212/1297522544\"\u003eJavaからGroovyへ移行する簡単なステップ - No Programming, No Life\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eJavaのコードをGroovyらしく書き換えていく記事。とても分かりやすいです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://groovy-lang.org/style-guide.html#_public_by_default\"\u003eThe Apache Groovy programming language - Style guide\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"セミコロンが不要\"\u003eセミコロンが不要\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://groovy-lang.org/style-guide.html#_no_semicolons\"\u003e1. No semicolons\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eセミコロンは1行に複数の内容を入れたい場合を除いて不要です。\nRubyと同じですね。\u003c/p\u003e\n\u003ch3 id=\"最後のreturnが不要\"\u003e最後のreturnが不要\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://groovy-lang.org/style-guide.html#_return_keyword_optional\"\u003e2. Return keyword optional\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e最後の値を返す場合は、returnキーワードが不要です。\nこれもRubyと同じですね。\u003c/p\u003e\n\u003ch3 id=\"デフォルトがpublic\"\u003eデフォルトがpublic\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://groovy-lang.org/style-guide.html#_public_by_default\"\u003e4. Public by default\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eパッケージプライベートが使いたい場合は、\u003ccode\u003e@PackageScope\u003c/code\u003eアノテーションを使います。\u003c/p\u003e\n\u003ch3 id=\"gstring\"\u003eGString\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://groovy-lang.org/style-guide.html#_gstrings_interpolation_multiline\"\u003e11. GStrings (interpolation, multiline)\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e${resource}\u003c/code\u003e みたいな記法(bashとかと同じ)\n\u003cul\u003e\n\u003cli\u003eシンプルな場合は\u003ccode\u003e$resource\u003c/code\u003e のようにカッコを省略可能。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e${-\u0026gt; i}\u003c/code\u003e とすると、遅延評価される(toString()が呼ばれたときに評価)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"型の指定はオプション\"\u003e型の指定はオプション\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://groovy-lang.org/style-guide.html#_optional_typing_advice\"\u003e21. Optional typing advice\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eただし、公開APIを提供するときは、型を使うことを推奨されます。\nprivateメソッドに使えるのが、Javaと比較したときの利点かなと。\u003c/p\u003e\n\u003ch2 id=\"groovyの文法\"\u003eGroovyの文法\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://groovy-lang.org/semantics.html\"\u003eSemantics\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"変数定義\"\u003e変数定義\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://groovy-lang.org/semantics.html#_variable_definition\"\u003e1.1. Variable definition\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下のどちらかの記法が使える。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eString x\u003c/code\u003eのように、Javaと同じ記法。\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edef o\u003c/code\u003eのように、型を指定しない記法。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"多値代入\"\u003e多値代入\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://groovy-lang.org/semantics.html#_multiple_assignment\"\u003e1.2.1. Multiple assignment\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edef (a, b, c) = [10, 20, 'foo']\u003c/code\u003eのように、多値代入が可能。\n\u003cul\u003e\n\u003cli\u003e式の右側は\u003ca href=\"http://groovy-lang.org/syntax.html#_arrays\"\u003eArray\u003c/a\u003e記法です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"クロージャ\"\u003eクロージャ\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://groovy-lang.org/closures.html\"\u003eClosures\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e基本的にはRubyのブロックと同じとみなしていいっぽいですが、\nパラメータの指定方法が違います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e区切り: \u003ccode\u003e-\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eあとは変わらないかな。。。\n(ほとんど使ったことないけど)\u003c/p\u003e\n\u003ch3 id=\"マップ\"\u003eマップ\u003c/h3\u003e\n\u003cp\u003e以下のような形式です。\nJavaのLinkedHashMapが作られるようです。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-groovy\" data-lang=\"groovy\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003ered: \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;#FF0000\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e,\u003c/span\u003e green: \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;#00FF00\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e,\u003c/span\u003e blue: \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;#0000FF\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ca href=\"http://groovy-lang.org/syntax.html#_maps\"\u003e9. Maps\u003c/a\u003eを参照してください。\u003c/p\u003e\n\u003ch3 id=\"メソッド呼び出し\"\u003eメソッド呼び出し\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://groovy-lang.org/objectorientation.html#_named_arguments\"\u003e1.5.2. Named arguments\u003c/a\u003eによれば、メソッド定義でパラメータが\u003ccode\u003eMap\u003c/code\u003eで定義されている場合、名前付き引数のように呼び出せます。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-groovy\" data-lang=\"groovy\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003efoo\u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003ename: \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;Marie\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e,\u003c/span\u003e age: \u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ca href=\"http://groovy-lang.org/semantics.html#_optional_parentheses\"\u003e4.1. Optional parentheses\u003c/a\u003eによれば、パラメータが1つ以上あって曖昧さがない場合は、\u003ccode\u003e()\u003c/code\u003eを省略できます。\u003c/p\u003e\n\u003ch2 id=\"string\"\u003eString\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://groovy-lang.org/syntax.html#all-strings\"\u003e4. Strings\u003c/a\u003eより。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eシングルクォート(\u003ccode\u003e'\u003c/code\u003e): \u003ccode\u003ejava.lang.String\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e+\u003c/code\u003e演算子で連結可能\u003c/li\u003e\n\u003cli\u003eトリプルシングルクォート(\u003ccode\u003e'''\u003c/code\u003e): 複数行可能\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Microsoft Remote Desktop for Mac",
    "url": "https://www.ikemo3.com/dic/microsoft-remote-desktop-for-mac/",
    "contents": "\u003ch2 id=\"microsoft-remote-desktop-for-macとは\"\u003eMicrosoft Remote Desktop for Macとは\u003c/h2\u003e\n\u003cp\u003eMicrosoft社が提供している、リモートデスクトップソフトです。\nMacからリモートのWindows PCに接続することができます。\u003c/p\u003e\n\u003ch2 id=\"beta版の方が品質が高い\"\u003eBeta版の方が品質が高い\u003c/h2\u003e\n\u003cp\u003eMac App Storeにもありますが、\nBeta版の方が不満点が解消されていて、品質も高いです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n上が直接ダウンロードできるHockeyAppのサイトで、\n下が、Beta版を紹介しているMicrosoftのブログのリンク先です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://rink.hockeyapp.net/apps/5e0c144289a51fca2d3bfa39ce7f2b06/\"\u003eMicrosoft Remote Desktop for Mac – HockeyApp\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://blogs.technet.microsoft.com/enterprisemobility/2015/08/11/introducing-the-new-microsoft-remote-desktop-preview-app-for-mac/\"\u003eIntroducing the new Microsoft Remote Desktop Preview app for Mac – Enterprise Mobility and Security Blog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eちなみに、HockeyAppはMicrosoftが2014年に買収した企業です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://blogs.msdn.microsoft.com/somasegar/2014/12/11/microsoft-acquires-hockeyapp-leading-mobile-crash-analytics-and-beta-distribution-service-for-ios-android-and-windows-phone/\"\u003eMicrosoft acquires HockeyApp, leading mobile crash analytics and beta distribution service for iOS, Android, and Windows Phone – Somasegar\u0026rsquo;s blog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eこれだけ品質が高いなら、β版でなくてもいいと思いますが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "消費税",
    "url": "https://www.ikemo3.com/dic/consumption-tax/",
    "contents": "\u003ch2 id=\"消費税とは\"\u003e消費税とは\u003c/h2\u003e\n\u003cp\u003e間接税の1つです。\u003c/p\u003e\n\u003ch2 id=\"暴力団でも払わざるをえない税金\"\u003e暴力団でも払わざるをえない税金\u003c/h2\u003e\n\u003cp\u003e消費税はネット民の間では諸悪の根源扱いされていますが、\n暴力団でも払わざるをえない数少ない税金です。\u003c/p\u003e\n\u003ch2 id=\"消費税はトカイ税\"\u003e消費税はトカイ税\u003c/h2\u003e\n\u003cp\u003eもう一つ個人的に面白いなぁと思うのは、\n消費税は市場経済での消費にかかる税金ということです。\n別の言い方をすると、個人間で余った物をあげる、\n硬い言い方をすると贈与経済にはお金がかかりません\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"課税よりも支出の議論を\"\u003e課税よりも支出の議論を\u003c/h2\u003e\n\u003cp\u003e税金のことになると決まって課税のあり方が、\n問題になりますが、\n個人的にはシンプルなことが重要だと思います。\nなぜなら、消費税が出来た理由は、\n物品税の複雑さが一因だからです。\u003c/p\u003e\n\u003cp\u003e市場経済に偏った社会は今後廃れていくと思うので、\n自分は消費税がどうこうよりも、\nセーフティーネットを充実させてよと思います。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e金銭を送る場合は贈与税が掛かる可能性があります。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Copyright",
    "url": "https://www.ikemo3.com/tags/copyright/",
    "contents": ""
  }, 
  {
    "title": "Vagrant: CentOS 6 Boxでsuできない",
    "url": "https://www.ikemo3.com/inverted/vagrant/centos6-su/",
    "contents": "\u003ch2 id=\"現象\"\u003e現象\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://app.vagrantup.com/centos/boxes/6\"\u003ecentos/6 Vagrant box\u003c/a\u003eを使用している。\u003c/li\u003e\n\u003cli\u003evagrantユーザではsu可能。\u003c/li\u003e\n\u003cli\u003eその他のユーザではsu不可能。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"原因\"\u003e原因\u003c/h2\u003e\n\u003cp\u003ePAMにより、vagrantユーザ以外ではsuできないように設定されているため。\u003c/p\u003e\n\u003ch2 id=\"設定方法\"\u003e設定方法\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003evagrant ssh\u003c/code\u003eでサーバにログインし、\u003ccode\u003e/etc/pam.d/su\u003c/code\u003e の以下の行をコメントアウトする。再起動などは不要。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eaccount         required        pam_succeed_if.so user notin root:vagrant\n\u003c/code\u003e\u003c/pre\u003e"
  }, 
  {
    "title": "データと情報",
    "url": "https://www.ikemo3.com/dic/data-and-information/",
    "contents": "\u003ch2 id=\"データと情報とは\"\u003eデータと情報とは\u003c/h2\u003e\n\u003cp\u003e「実践する経営者」p96にある記述です。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eいかにデータベースにデータがあろうとも、それは情報ではない。\n情報の原石にすぎない。情報に変えるためには、目的のために体系化し、意思決定に使わなければならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300674/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478300674.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300674/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n実践する経営者―成果をあげる知恵と行動\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e元は1995年に出た「未来への決断」に書かれている記述です。\u003c/p\u003e\n\u003ch2 id=\"仮説こそが大事\"\u003e仮説こそが大事\u003c/h2\u003e\n\u003cp\u003eいくらデータが多くても、基本的には統計の基本的な考え方に沿う必要があります。\nある仮説を立てて、その仮説が正しい\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eかどうかを\nデータを元に判定するのが、データの基本的な使い方です。\u003c/p\u003e\n\u003cp\u003eそして、その仮説はぼーっと口を開けていれば得られるものではありません。\n「ビッグデータ」というバズワードがありますが、\nいくらデータが多くても、コンピュータは仮説を立てられません。\nせいぜい、「過去にあった仮説を寄せ集めて当てはまるものがあるかどうかを探し出す」くらいです。\n独自性もなく、非常に効率が悪いです。\n「ビッグデータ」に意味があるとしたら、これまでは処理できないため捨てていたデータを、\n残すことができるようになった、それだけです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e正確には「正しい」とは分からないので、「統計的に95%以上の確率で正しいと言える」くらいです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "引用",
    "url": "https://www.ikemo3.com/dic/cite/",
    "contents": "\u003ch2 id=\"引用とは\"\u003e引用とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://law.e-gov.go.jp/htmldata/S45/S45HO048.html\"\u003e著作権法\u003c/a\u003eで認められているものです。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e第三十二条 公表された著作物は、引用して利用することができる。\nこの場合において、その引用は、公正な慣行に合致するものであり、\nかつ、報道、批評、研究その他の引用の目的上正当な範囲内で行なわれるものでなければならない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e著作権なるほど質問箱には以下の記載があります\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e　他人の主張や資料等を「引用」する場合の例外です。\n\n【条件】\nア 既に公表されている著作物であること\nイ 「公正な慣行」に合致すること\nウ 報道、批評、研究などのための「正当な範囲内」であること\nエ 引用部分とそれ以外の部分の「主従関係」が明確であること\nオ カギ括弧などにより「引用部分」が明確になっていること\nカ 引用を行う「必然性」があること\nキ ｢出所の明示」が必要（コピー以外はその慣行があるとき）\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eこの著作権法や、文化庁の記述については、行政の広報資料のため、転載で構いません。\nまあ、法律を勝手に載せられないと困るので当たり前ですが。。。\u003c/p\u003e\n\u003ch2 id=\"公正な慣行とは\"\u003e「公正な慣行」とは\u003c/h2\u003e\n\u003cp\u003e同じく、著作権なるほど質問箱によれば、判例により、以下の3つが判断基準となっているようです\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e主従関係: 引用する側が「主」、引用される側が「従」であること。\n\u003cul\u003e\n\u003cli\u003e上の条件の「エ」です。\u003c/li\u003e\n\u003cli\u003eただ、このあたりは曖昧で「引用しすぎ」で問題になったケースはないようです。\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.bengo4.com/c_1015/c_17/c_1263/b_251264/\"\u003e論文やニュース記事での引用の主従関係について - 弁護士ドットコム\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e明瞭区分性: 引用とそれ以外が明確に区分されていること。\n\u003cul\u003e\n\u003cli\u003e上の条件の「オ」です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e必然性: 引用する必然性があること。\n\u003cul\u003e\n\u003cli\u003e上の条件の「カ」です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"弁護士の見解\"\u003e弁護士の見解\u003c/h2\u003e\n\u003cp\u003e気になった例についてリンクしてみます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e画像の引用\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.bengo4.com/c_1015/c_17/c_1263/b_508660/\"\u003e雑誌からの画像の引用（出典元掲載）の場合の著作権侵害について - 弁護士ドットコム\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"その他\"\u003eその他\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://tskz06.net/2017/06/30/post-133/\"\u003e取り組みが新聞に載った！学生団体・市民活動団体はSNSで広める前に著作権に注意！\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e画像を掲載するときの工夫\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.bunka.go.jp/chosakuken/naruhodo/outline/8.h.html\"\u003e著作権なるほど質問箱 8.著作物等の｢例外的な無断利用｣ができる場合\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://pf.bunka.go.jp/chosaku/chosakuken/naruhodo/answer.asp?Q_ID=0000304\"\u003e著作権なるほど質問箱 著作権Q\u0026amp;A\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "設定手順書",
    "url": "https://www.ikemo3.com/setting/",
    "contents": "\u003ch2 id=\"設定手順書とは\"\u003e設定手順書とは\u003c/h2\u003e\n\u003cp\u003e一度限りの手順を記述したものです。\n・・・が、このセクションは削除されました。\u003c/p\u003e\n"
  }, 
  {
    "title": "Charset",
    "url": "https://www.ikemo3.com/tags/charset/",
    "contents": ""
  }, 
  {
    "title": "Mac: 複数の画像を一括でPDFにする方法",
    "url": "https://www.ikemo3.com/inverted/mac/multiple-images-to-pdf/",
    "contents": "\u003ch2 id=\"要件\"\u003e要件\u003c/h2\u003e\n\u003cp\u003e複数の画像をPDFにしたい。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eフォルダにファイルを順番に並べる。表紙が必要なときは表紙画像も追加する。\u003c/li\u003e\n\u003cli\u003eCmd + Aで全選択して、右クリック→このアプリケーションで開く→プレビュー\u003c/li\u003e\n\u003cli\u003eプリント→PDFとして保存\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Powerpoint",
    "url": "https://www.ikemo3.com/tags/powerpoint/",
    "contents": ""
  }, 
  {
    "title": "PowerPoint: ページ番号を右下につける",
    "url": "https://www.ikemo3.com/inverted/powerpoint/page-number-lower-right/",
    "contents": "\u003ch2 id=\"ページ番号の追加\"\u003eページ番号の追加\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://support.office.com/ja-jp/article/%E3%82%B9%E3%83%A9%E3%82%A4%E3%83%89%E3%81%AE%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%82%92%E6%8C%BF%E5%85%A5%E3%81%BE%E3%81%9F%E3%81%AF%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B-8bad6395-a1f4-4af6-a360-0df412e510bf\"\u003eスライドのページ番号を挿入または変更する\u003c/a\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e何も選択されてない状態で、「挿入」「テキスト」「スライド番号」を選択する。\u003c/li\u003e\n\u003cli\u003e以下の設定を行う。\n\u003cul\u003e\n\u003cli\u003eスライドに追加 - スライド番号: オン\u003c/li\u003e\n\u003cli\u003eタイトルスライドに追加しない: オン\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e「すべてに適用」を選択する。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"フォントの変更\"\u003eフォントの変更\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://support.office.com/ja-jp/article/%E3%82%B9%E3%83%A9%E3%82%A4%E3%83%89%E3%81%AE%E3%83%95%E3%83%83%E3%82%BF%E3%83%BC%E5%86%85%E3%81%AE%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B-ad433255-2de8-441e-99c8-b26a99b04d74\"\u003eスライドのフッター内のフォントを変更する\u003c/a\u003e\u003c/p\u003e\n"
  }, 
  {
    "title": "Red Hat Enterprise Linux 6 → CentOS 6へ移行",
    "url": "https://www.ikemo3.com/inverted/linux/rhel6-to-centos6/",
    "contents": "\u003cp\u003e\u003ca href=\"https://wiki.centos.org/HowTos/MigrationGuide\"\u003eCentOSのMigration Guide\u003c/a\u003eより。必ずバックアップを取ってから行うこと。\u003c/p\u003e\n\u003ch2 id=\"centosにないrpm新しいバージョンで削除されているrpmを削除\"\u003eCentOSにないRPM、新しいバージョンで削除されているRPMを削除\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eyum remove matahari*\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003emkdir TMP\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eyum remove rhnlib abrt-plugin-bugzilla redhat-release-notes*\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erpm -e --nodeps redhat-release-server-6Server redhat-indexhtml\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"centosのyum-centos-releaseパッケージをインストール\"\u003eCentOSのyum, centos-releaseパッケージをインストール\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd TMP\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ewget http://mirror.centos.org/centos/6/os/x86_64/Packages/centos-release-6-7.el6.centos.12.3.x86_64.rpm\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ewget http://mirror.centos.org/centos/6/os/x86_64/Packages/centos-indexhtml-6-2.el6.centos.noarch.rpm\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ewget http://mirror.centos.org/centos/6/os/x86_64/Packages/yum-3.2.29-69.el6.centos.noarch.rpm\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ewget http://mirror.centos.org/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erpm -Uvh *.rpm\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd ..\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003erm -rf TMP\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"osのアップグレード\"\u003eOSのアップグレード\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eyum clean all\nyum upgrade\n\u003c/code\u003e\u003c/pre\u003e"
  }, 
  {
    "title": "SSL",
    "url": "https://www.ikemo3.com/dic/ssl/",
    "contents": "\u003ch2 id=\"sslとは\"\u003eSSLとは\u003c/h2\u003e\n\u003cp\u003eSecure Sockets Layerと呼ばれる、セキュアな通信を行うためのプロトコルです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"tlsとの違い\"\u003eTLSとの違い\u003c/h2\u003e\n\u003cp\u003eSSLはNetscape Communications社が仕様を策定したものです。\nTLS(Transport Layer Security)は、\nそのSSLの3.0を元に、IETFで標準化されたものです。\u003c/p\u003e\n\u003cp\u003eただ、実際はSSLという名称が普及しているので、\nTLSという名称はTLS 1.0といったプロトコル以外で使うことはまずないです。\u003c/p\u003e\n\u003ch2 id=\"有用なサイト\"\u003e有用なサイト\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://mozilla.github.io/server-side-tls/ssl-config-generator/\"\u003eGenerate Mozilla Security Recommended Web Server Configuration Files\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://globalsign.ssllabs.com/\"\u003eSSL Server Test (Powered by Qualys SSL Labs)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/Transport_Layer_Security\"\u003eTransport Layer Security - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Unicode",
    "url": "https://www.ikemo3.com/dic/unicode/",
    "contents": "\u003ch2 id=\"unicodeとは\"\u003eUnicodeとは\u003c/h2\u003e\n\u003cp\u003e文字コードの規格です。\n悩みの種です。\u003c/p\u003e\n\u003ch2 id=\"悩みの種いろいろ\"\u003e悩みの種いろいろ\u003c/h2\u003e\n\u003ch3 id=\"サロゲートペア\"\u003eサロゲートペア\u003c/h3\u003e\n\u003cp\u003eUnicodeは当初16ビットで全ての文字を表すことを予定していたのですが、\n早々に破綻しました。そのため、互換性のために、\n16ビットを2つ組み合わせることで1つの文字を表す仕組みを導入しました。\n代表的な文字が「𠮷」(つちよし)です。\nこの影響があるのはJavaなどで採用されている\u003ca href=\"https://ja.wikipedia.org/wiki/UTF-16\"\u003eUTF-16\u003c/a\u003eです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.ibm.com/developerworks/jp/ysl/library/java/j-unicode_surrogate/index.html\"\u003eJava による Unicode サロゲートプログラミング\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"円マーク問題\"\u003e円マーク問題\u003c/h3\u003e\n\u003cp\u003e元々は\u003ca href=\"https://ja.wikipedia.org/wiki/ISO/IEC_646\"\u003eISO/IEC 646\u003c/a\u003eが持つ曖昧さおよび、\nWindowsがバックスラッシュ(日本語版では円マーク)をパスの区切りに使用したために起きた問題です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E5%86%86%E8%A8%98%E5%8F%B7#Unicode.E3.81.B8.E3.81.AE.E7.B5.B1.E5.90.88\"\u003eUnicodeが持つ問題(円記号問題)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"互換性\"\u003e互換性\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/CJK%E4%BA%92%E6%8F%9B%E6%BC%A2%E5%AD%97\"\u003eCJK互換漢字 - Wikipedia\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"文字幅\"\u003e文字幅\u003c/h3\u003e\n\u003cp\u003e一部の文字にEast_Asian_Width特性というのがあります。\nこれがA(曖昧)である文字は、フォントは全角相当なのにもかかわらず、\n幅が相当として表示されるため、カーソルの位置がズレてしまうことがあります。\u003c/p\u003e\n\u003cp\u003eこの問題を回避するために、例えばMacのTerminal.appでは、\n「Unicode 東アジアA(曖昧)の文字幅をW(広)にする」という設定があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E6%9D%B1%E3%82%A2%E3%82%B8%E3%82%A2%E3%81%AE%E6%96%87%E5%AD%97%E5%B9%85\"\u003e東アジアの文字幅 - Wikipedia\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"正規化\"\u003e正規化\u003c/h3\u003e\n\u003cp\u003e有名な問題として、MacのファイルシステムHFS+の正規化方法が\n他のOSと違うため、濁点を含むファイル名の互換性に問題があるというのがあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://nomenclator.la.coocan.jp/unicode/normalization.htm\"\u003eUnicode正規化\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"その他\"\u003eその他\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://internet.watch.impress.co.jp/docs/special/691658.html\"\u003eUnicodeのWAVE DASH例示字形が、25年ぶりに修正された理由 - INTERNET Watch Watch\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "ファイルシステムのリサイズ(CentOS 6)",
    "url": "https://www.ikemo3.com/inverted/linux/resize-filesystem-centos6/",
    "contents": "\u003cp\u003e\u003ca href=\"/inverted/linux/resize-filesystem-centos7/\"\u003eCentOS 7はこちら\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"ディスクのリサイズ\"\u003eディスクのリサイズ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/inverted/vm/resize-qemu-image/\"\u003eQEMUイメージファイルのリサイズ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"パーティションテーブルの変更\"\u003eパーティションテーブルの変更\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://kb.hyve.com/wiki/Vmware%20Resize%20Linux%20Hard%20drive%20Increase%20Size%20Enlarge%20Disk\"\u003eVmware Resize Linux Hard drive Increase Size Enlarge Disk\u003c/a\u003e参照。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003efdisk -l\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e2行目に表示される \u003ccode\u003eDisk /dev/sda: 103.1 GB, 103079215104 bytes, 201326592 sectors\u003c/code\u003e の行を確認し、fdiskの引数に設定する。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003efdisk /dev/vda\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003efdiskの操作は以下のように行う。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e- p (to print)\n- d (to delete)\n- 2 (choose second one)\n- n (to recreate)\n- p (choose primary)\n- 2 (choose second one)\n- enter (to except new size) ※この数字は変更前と合わせること\n- enter (to accept last one)\n- p (show new size)\n- t (change type)\n- 2 (choose second one)\n- 8e (to change patitian type code)\n- p (to print shows 83 changed to 8e)\n- w (to commit changes)\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e作業が終わったらリブートする。\u003c/p\u003e\n\u003ch2 id=\"pvのリサイズ\"\u003ePVのリサイズ\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003epvdisplay\npvresize /dev/vda2\npvdisplay\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e増加したのを確認\u003c/p\u003e\n\u003ch2 id=\"lvのリサイズ\"\u003eLVのリサイズ\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003elvdisplay\nlvextend -l +100%FREE /dev/vg_xxx/lv_root\nlvdisplay\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"ファイルシステムのリサイズ\"\u003eファイルシステムのリサイズ\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eresize2fs /dev/mapper/vg_xxx_root\n\u003c/code\u003e\u003c/pre\u003e"
  }, 
  {
    "title": "ファイルシステムのリサイズ(CentOS 7)",
    "url": "https://www.ikemo3.com/inverted/linux/resize-filesystem-centos7/",
    "contents": "\u003cp\u003e\u003ca href=\"/inverted/linux/resize-filesystem-centos6/\"\u003eCentOS 6はこちら\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"ディスクのリサイズ\"\u003eディスクのリサイズ\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/inverted/vm/resize-qemu-image/\"\u003eQEMUイメージファイルのリサイズ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"パーティションテーブルの変更\"\u003eパーティションテーブルの変更\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://kb.hyve.com/wiki/Vmware%20Resize%20Linux%20Hard%20drive%20Increase%20Size%20Enlarge%20Disk\"\u003eVmware Resize Linux Hard drive Increase Size Enlarge Disk\u003c/a\u003e参照。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003efdisk -l\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e2行目に表示される \u003ccode\u003eDisk /dev/sda: 103.1 GB, 103079215104 bytes, 201326592 sectors\u003c/code\u003e の行を確認し、fdiskの引数に設定する。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003efdisk /dev/vda\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003efdiskの操作は以下のように行う。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e- p (to print)\n- d (to delete)\n- 2 (choose second one)\n- n (to recreate)\n- p (choose primary)\n- 2 (choose second one)\n- enter (to except new size)\n- enter (to accept last one)\n- p (show new size)\n- t (change type)\n- 2 (choose second one)\n- 8e (to change patitian type code)\n- p (to print shows 83 changed to 8e)\n- w (to commit changes)\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e作業が終わったらリブートする。\u003c/p\u003e\n\u003ch2 id=\"pvのリサイズ\"\u003ePVのリサイズ\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003epvdisplay\npvresize /dev/vda2\npvdisplay\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e増加したのを確認\u003c/p\u003e\n\u003ch2 id=\"lvのリサイズ\"\u003eLVのリサイズ\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003elvdisplay\nlvextend -l +100%FREE /dev/centos/root\nlvdisplay\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"ファイルシステムのリサイズ\"\u003eファイルシステムのリサイズ\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003exfs_growfs /dev/mapper/centos-root\n\u003c/code\u003e\u003c/pre\u003e"
  }, 
  {
    "title": "Google Chrome",
    "url": "https://www.ikemo3.com/dic/google-chrome/",
    "contents": "\u003ch2 id=\"google-chromeとは\"\u003eGoogle Chromeとは\u003c/h2\u003e\n\u003cp\u003eGoogleが作っているWebブラウザのことです。\u003c/p\u003e\n\u003ch2 id=\"主なショートカットキー\"\u003e主なショートカットキー\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e機能\u003c/th\u003e\n          \u003cth\u003eMac\u003c/th\u003e\n          \u003cth\u003eWindows\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eURLのオートコンプリートの個別削除\u003c/td\u003e\n          \u003ctd\u003eShift + fn + Delete\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003eShift + Delete\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eMacとWindowsではdeleteキーの挙動が違ってて、MacのdeleteキーはWindowsのBack Spaceキーと同じです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "iPad",
    "url": "https://www.ikemo3.com/dic/ipad/",
    "contents": "\u003ch2 id=\"ipadとは\"\u003eiPadとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003eが発売している、タブレット型コンピュータです。\u003c/p\u003e\n\u003ch2 id=\"紙との比較\"\u003e紙との比較\u003c/h2\u003e\n\u003cp\u003e本体のサイズは、\u003ca href=\"/dic/paper/\"\u003e紙\u003c/a\u003eと比較するとだいたいこれくらいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e12.9インチiPad Pro: 高さ305.7mm, 幅220.6mm\u003c/li\u003e\n\u003cli\u003eB5サイズ: 高さ257.0mm, 幅182.0mm\u003c/li\u003e\n\u003cli\u003e10.5インチiPad Pro: 高さ250.6mm, 幅174.1mm\u003c/li\u003e\n\u003cli\u003e9.7インチiPad(2018): 高さ240.0mm, 幅169.5mm\u003c/li\u003e\n\u003cli\u003eA5サイズ: 高さ210.0mm, 幅148.0mm\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただし、A5サイズの対角線は10.1インチ(\u003ccode\u003esqrt(21*21 + 14.8*14.8)/2.54\u003c/code\u003e)のため、\n9.7インチiPadは、本体はB5、液晶はA5くらいの感じです。\u003c/p\u003e\n\u003cp\u003e同様に、B5サイズの対角線は12.4インチ(\u003ccode\u003esqrt(18.2*18.2+25.7*25.7)/2.54\u003c/code\u003e)のため、\n12.9インチiPadの液晶がだいたいB5くらいの感じです。\u003c/p\u003e\n"
  }, 
  {
    "title": "仮想環境",
    "url": "https://www.ikemo3.com/tags/vm/",
    "contents": ""
  }, 
  {
    "title": "Diversity",
    "url": "https://www.ikemo3.com/tags/diversity/",
    "contents": ""
  }, 
  {
    "title": "Pluralism",
    "url": "https://www.ikemo3.com/tags/pluralism/",
    "contents": ""
  }, 
  {
    "title": "いつまで経っても「元」が取れない人",
    "url": "https://www.ikemo3.com/dic/people-who-can-not-remove-ex/",
    "contents": "\u003ch2 id=\"いつまで経っても元が取れない人とは\"\u003eいつまで経っても「元」が取れない人とは\u003c/h2\u003e\n\u003cp\u003eだいたい以下の定義です。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e「ちょっと成功」して名が売れた人。社長とかCTOとか。\u003c/li\u003e\n\u003cli\u003e今ではその活動をやっていない。引退するような年齢でもない。\u003c/li\u003e\n\u003cli\u003eその後パッとしないため、いつまでも「元社長」とか「元CTO」とか呼ばれている。\u003c/li\u003e\n\u003cli\u003eでも本を書いたり講演とかして偉そうにしてる。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eよって、以下のような人は除きます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e成功を鼻にかけず、現役で頑張っている人。\u003c/li\u003e\n\u003cli\u003e実業家では、後進に道を譲って引退した人。\u003c/li\u003e\n\u003cli\u003eスポーツ選手など、年齢による衰えで引退した人。\u003c/li\u003e\n\u003cli\u003e功績が大きすぎて何やっても「元」と呼ばれる人\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e例えば、ビル・ゲイツ氏は今は慈善活動家として有名ですが、何をやっても「元Microsoft会長」と呼ばれ続けるでしょう。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "インターネットは東京化した",
    "url": "https://www.ikemo3.com/dic/the-internet-was-tokyoized/",
    "contents": "\u003ch2 id=\"インターネットは東京化したとは\"\u003eインターネットは東京化したとは\u003c/h2\u003e\n\u003cp\u003e今のインターネット(WWW)のサービスを表す言葉です。\u003c/p\u003e\n\u003cp\u003e昔、記憶だと2000年前半に読んだ本に\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\n「インターネット(WWW)は大阪のようなもの」という記述がありました。\nなぜかというと、当時のインターネット、\n特にテキストサイトは面白いことを書くことが一番の目的でした。\u003c/p\u003e\n\u003cp\u003eそれが変わったのは、2005年頃でした。\nブロガーのような、意識の高い人が注目され、\n金を儲けることが良いこととされました\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\nその結果、インターネットは儲けるためには何をしてもよい人があふれました。\u003c/p\u003e\n\u003cp\u003eその現状を、自分は「インターネットが東京化した」と呼んでいます。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eどの本を読んだか思い出せません。イラストが漫画だったはず。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e嫌儲ではないです。念のため。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ディストピア",
    "url": "https://www.ikemo3.com/tags/dystopia/",
    "contents": "\u003ch1 id=\"ディストピアとは\"\u003eディストピアとは\u003c/h1\u003e\n\u003cp\u003eユートピアの逆です。「管理社会」として描かれることが多いようですが、\nここではそれに限らず、悪い社会のことを指しています。\u003c/p\u003e\n"
  }, 
  {
    "title": "自動化",
    "url": "https://www.ikemo3.com/dic/automation/",
    "contents": "\u003ch2 id=\"自動化とは\"\u003e自動化とは\u003c/h2\u003e\n\u003cp\u003e手作業の反対で、機械を使って人の手を使わないことです。\u003c/p\u003e\n\u003ch2 id=\"システムのit化自動化ではない\"\u003e「システムのIT化=自動化」ではない\u003c/h2\u003e\n\u003cp\u003e自分がITシステムの開発をやっている人なので言えるんですが、\nシステムのIT化と自動化は同じではありません。\n何でかというと、システムの自動化というのは次の順番で進むからです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e手順が担当者の頭のなかにある状態。担当者しか実行できません。\u003c/li\u003e\n\u003cli\u003e手順を書き出して「手順書」になったが、曖昧さがある状態。人によって結果が異なります。\u003c/li\u003e\n\u003cli\u003e「手順書」を整理して、曖昧さを排除した状態。教育すれば誰でも実行可能な状態です。\u003c/li\u003e\n\u003cli\u003e「手順書」をプログラムを用いて記述する。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e4.が完了すれば「自動化」と言えるのですが、\n\u003cstrong\u003e本質的に重要なのは2.の「見える化」と3の「曖昧さを排除する」ことです\u003c/strong\u003e。\n曖昧さが排除できないと、手作業がどうしても残ります。\nそうすると、自動化の効果は限定的なものになります。\u003c/p\u003e\n\u003cp\u003e効率化を犠牲にしてあえて曖昧さを残す手もあるのですが、\nその曖昧さも含めた設計が必要です。\n「何でもできるシステム」は「何もできないシステム」と同じです。\u003c/p\u003e\n\u003ch2 id=\"自動化は万能薬ではないが取り組んだ方がよい\"\u003e自動化は万能薬ではないが、取り組んだ方がよい\u003c/h2\u003e\n\u003cp\u003e以下の資料で書いてあることはもっともだと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://speakerdeck.com/opelab/20171212-automation\"\u003e運用自動化、不都合な真実\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただ、これはあくまで自動化を万能薬と勘違いしている人が読むべきで、\n自動化の効果に懐疑的な人を肯定するものではないことに注意が必要です。\u003c/p\u003e\n\u003cp\u003eなぜかというと、自動化に取り組むことで、業務の問題点が洗い出せるからです。\n一見、柔軟性のあるように見えても、ただ単に曖昧なだけなケースが多く、\n自動化を進めることで、それがあぶり出されます。\u003c/p\u003e\n\u003cp\u003e必要なのは、そのときに「無理やり標準化する」でもなく、「自動化を諦める」でもなく、\n「これは曖昧さとして排除すべきものか、柔軟性として残しておくべきことか」を考える習慣です。\n考えた結果が「柔軟性のために残す」なら、多少効率が悪くても残せばいいだけです。\u003c/p\u003e\n\u003cp\u003eただ、自動化に取り組まないと、何が問題かも分かりません。\nだから、やれることはやったほうがいいです。\u003c/p\u003e\n\u003ch2 id=\"手作業でやらないことは自動化しない\"\u003e手作業でやらないことは自動化しない\u003c/h2\u003e\n\u003cp\u003e1つ注意すべき点は、手作業でやってないことを自動化しないことです。\nなぜかというと、手作業でやっていないということは、以下のどれかに当てはまるからです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e手順が作れない(要件が不明など)\u003c/li\u003e\n\u003cli\u003e作業をしなくても問題ない\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこういうときは自動化をしようとしても躓くケースが多く、\nやる気がでないことが多いです。\u003c/p\u003e\n\u003ch2 id=\"自動化並列化\"\u003e自動化＝並列化\u003c/h2\u003e\n\u003cp\u003e自分は、自動化の本質は、並列化だと考えています。\n例えば、ソフトウェアのインストールをする場合、手順書があれば人が1つずつ実行することができます。\nでも、\u003ca href=\"/dic/ansible/\"\u003eAnsible\u003c/a\u003eのような構成管理ツールを使うと、\n人が行うよりも早く、かつ同時に複数のマシンにインストールすることができます。\u003c/p\u003e\n\u003cp\u003e自動化は「実行」を並列化するのとは別に、「実行」と「検証」を分離する効果があります。\n手作業の問題点は、人がその作業を「実行」するとともに、「検証」を並行して行っているからです。\n並行作業をすると、人はものすごく疲れます。\u003c/p\u003e\n\u003cp\u003eもちろん結果の検証も自動化できればいいのですが、\n結果の検証が難しい場合は、実行だけでも自動化しておくと、便利です。\nこれが、「実行」と「検証」の分離です。\u003c/p\u003e\n"
  }, 
  {
    "title": "多様性と多元性は異なる",
    "url": "https://www.ikemo3.com/theme/society/diversity-is-not-plural/",
    "contents": "\u003ch2 id=\"多様性と多元性は異なるとは\"\u003e多様性と多元性は異なるとは\u003c/h2\u003e\n\u003cp\u003e個人的にモヤモヤしているのは、\n多元性と多様性を似たようなものととらえている人が多いことです。\n自分はむしろ逆なのでは?と思っています。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/dic/pluralism/\"\u003e多元性\u003c/a\u003eは「独立したものが複数あること」です。\u003c/p\u003e\n\u003cp\u003e一方で、\u003ca href=\"/dic/diversity/\"\u003e多様性\u003c/a\u003eはdiversityという単語が当てはまります。\nその動詞であるdiversifyにはいろいろな訳がありますが、\nどれも「広がる」という意味です。\u003c/p\u003e\n\u003ch2 id=\"単一の元が広がりを持っただけになる危険性\"\u003e「単一の元が広がりを持っただけ」になる危険性\u003c/h2\u003e\n\u003cp\u003eちょっと嫌味な言い方をすると、多様性は「単一の元が広がりを持っただけ」とも言えます。\u003c/p\u003e\n\u003cp\u003e数学で例えると、多様性は実数なのに対して、\n多元性は多元数\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、例えば複素数のようなものです。\nどちらが広いかは自明です。\u003c/p\u003e\n\u003cp\u003eもちろん「多元性」があっても「多様性」がなければいけませんが、\n「多様性」があれば十分だと言うことではありません。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E5%A4%9A%E5%85%83%E6%95%B0\"\u003e多元数 - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "逆引きマニュアル",
    "url": "https://www.ikemo3.com/inverted/",
    "contents": "\u003ch2 id=\"逆引きマニュアルとは\"\u003e逆引きマニュアルとは\u003c/h2\u003e\n\u003cp\u003eマニュアルとは逆に、やりたいことから手順を列挙したものです。\u003c/p\u003e\n"
  }, 
  {
    "title": "仕事の仕方",
    "url": "https://www.ikemo3.com/theme/productivity/how-do-i-work/",
    "contents": "\u003ch2 id=\"仕事の仕方とは\"\u003e仕事の仕方とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eの「明日を支配するもの」p199に書かれている言葉です。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478372632/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478372632.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478372632/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n明日を支配するもの―21世紀のマネジメント革命\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e仕事で成果を上げるためには、1つに強みを知ること、\nそしてもう一つが、この、得意な方法で仕事を行うことです。\u003c/p\u003e\n\u003cp\u003e以下ではその概要と、自分の場合どうなのかを書いてみます。\u003c/p\u003e\n\u003ch2 id=\"読み手か聞き手か\"\u003e「読み手」か「聞き手」か\u003c/h2\u003e\n\u003cp\u003eまず大事なのは、自分が読む人間か、聞く人間かということです。\u003c/p\u003e\n\u003cp\u003e自分の場合は圧倒的に\u003cstrong\u003e読む人間\u003c/strong\u003eです。\u003c/p\u003e\n\u003cp\u003e例えば、RFCとかW3Cとかの規格書を読むのは全く苦にならず、\nむしろ\u003cstrong\u003e趣味\u003c/strong\u003eと言っていいくらいです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e一方で、聞く方はさっぱり理解できません。\n簡単な指示でも数分後には忘れてしまいます。\nなので、あとで文章に起こしてもらうか、自分でメモを取るようにしています。\u003c/p\u003e\n\u003ch2 id=\"学び方\"\u003e学び方\u003c/h2\u003e\n\u003cp\u003e学び方は人によってたくさんあります。\n書いて学ぶ人、人に教えて学ぶ人、実行して学ぶ人など。\u003c/p\u003e\n\u003cp\u003e自分の場合は、読んで学ぶ、もしくは\u003cstrong\u003e自分で実行して学ぶ\u003c/strong\u003e人です。\n逆に、聞いて学ぶのは全く出来ません。\u003c/p\u003e\n\u003cp\u003eドラッカーも書いていますが、\n今の学校教育は「聞いて学ぶ」ことを前提としています。\u003c/p\u003e\n\u003cp\u003e小学校〜高校までは、教科書をもらったら、自分で読んでました。\n授業は復習にすぎなかったので、結果的に困ることはありませんでした。\n大学は予習をしてなかった(できなかった)ので、全然理解できませんでした。\u003c/p\u003e\n\u003cp\u003e一方で、何かをアウトプットするときは文章で書くのがものすごく苦手です。\n\u003cstrong\u003e頭の中だけで整理するのが得意\u003c/strong\u003eで、人に教えるときも口頭で、\nホワイトボードを使うのが得意です。資料を作るのがものすごく苦手です。\u003c/p\u003e\n\u003ch2 id=\"人との関わり方\"\u003e人との関わり方\u003c/h2\u003e\n\u003cp\u003e「明日を支配するもの」には以下のようなことが書かれています。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e人と組むか、一人でやるか\u003c/li\u003e\n\u003cli\u003e緊張や不安のあったほうがいいか、安定した環境の方がいいか\u003c/li\u003e\n\u003cli\u003e大きな組織か、小さな組織か\u003c/li\u003e\n\u003cli\u003e意思決定者か補佐役か\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e自分は「人と組むか、一人でやるか」の答えがはっきりとは分かりません。\n基本は「一人でやる」だと思うんですが、一人だと詰まることもあるので助言役が必要だし、\n逆に他の人に助言することも多いです。\u003c/p\u003e\n\u003cp\u003e緊張か安定かというのは間違いなく\u003cstrong\u003e安定した環境\u003c/strong\u003eですね。\n1回のプロジェクトごとに人間関係が変わるよう仕事は嫌です。\u003c/p\u003e\n\u003cp\u003e大きな組織か、小さな組織かは、\u003cstrong\u003e小さな組織\u003c/strong\u003eです。\nこれは仕事をするまで分からなかったのですが、\n自分は「自分ができることは何でもしたい」人なので、\n大企業で歯車として働くのは合ってませんでした。\u003c/p\u003e\n\u003cp\u003e意思決定者か補佐役かもまだ分からないです。\n基本的には補佐役かなぁと思ってたんですが、\nそもそも意思決定をする機会があまりなかっただけかもしれません。\nアーキテクチャ上の決定は割と苦手ではないので。\u003c/p\u003e\n\u003ch2 id=\"価値観\"\u003e価値観\u003c/h2\u003e\n\u003cp\u003e当然ですが、価値観が合わないと駄目です。\n正確には\u003cstrong\u003e自分の価値観と矛盾しない\u003c/strong\u003eです。\u003c/p\u003e\n\u003cp\u003e自分の場合は以下の2つです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e自分が作ったものが世の中の役に立つこと\u003c/li\u003e\n\u003cli\u003eエリート主義でないこと\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e英語だとだるいなとか、レベルの低い仕様書を見るとイライラすることはありますが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Internet Explorer",
    "url": "https://www.ikemo3.com/dic/ie/",
    "contents": "\u003ch2 id=\"internet-explorerとは\"\u003eInternet Explorerとは\u003c/h2\u003e\n\u003cp\u003eMicrosoft社が開発している、\u003ca href=\"/dic/browser/\"\u003eウェブブラウザ\u003c/a\u003eです。\u003c/p\u003e\n\u003ch2 id=\"ieは11以外は無視して良い\"\u003eIEは11以外は無視して良い\u003c/h2\u003e\n\u003cp\u003eサーバOSを除いて、IEは11しかサポートされていません。\nもちろん普通はサーバOSをクライアントとして使わないので、\nIEは11以外は無視して良いと思います。\u003c/p\u003e\n\u003cp\u003eIE自体のサポートを外すべきかどうかは、\nサービスのポリシーによるものなので、何とも言えません。\n新しい機能はサポートされないため、\n「IEはサポート外です」というサイトが増えていくと思いますが。\u003c/p\u003e\n"
  }, 
  {
    "title": "個人的",
    "url": "https://www.ikemo3.com/tags/personal/",
    "contents": "\u003ch1 id=\"このタグについて\"\u003eこのタグについて\u003c/h1\u003e\n\u003cp\u003e個人的なものを集めたものです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Apache HTTP Server",
    "url": "https://www.ikemo3.com/dic/apache/",
    "contents": "\u003ch2 id=\"apache-http-serverとは\"\u003eApache HTTP Serverとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://www.apache.org/\"\u003eApache Software Foundation(ASF)\u003c/a\u003eで開発されているWebサーバです。\nASFには\u003ca href=\"/dic/apache-tomcat/\"\u003eApache Tomcat\u003c/a\u003eや\u003ca href=\"/dic/maven/\"\u003eApache Maven\u003c/a\u003eなど\nいろいろなソフトウェアがあるのですが、単にApacheと呼ばれることもあります。\nプロセス名が\u003ccode\u003ehttpd\u003c/code\u003eなので、Apache httpdと呼ばれることもあります\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e例: \u003ca href=\"https://access.redhat.com/ja/node/742803\"\u003eRed Hat Enterprise Linux でサポートされる Apache httpd のバージョン - Red Hat Customer Portal\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "多元性",
    "url": "https://www.ikemo3.com/dic/pluralism/",
    "contents": "\u003ch2 id=\"多元性とは\"\u003e多元性とは\u003c/h2\u003e\n\u003cp\u003e元が複数あることです。\n\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eの断絶の時代にも「多元化した社会」と出てきます。\n原著ではpluralismです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAKIQ.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAKIQ/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集7 断絶の時代\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e多元性はpluralという単語の訳ですが、\n多元性の「元」は\u003ca href=\"/dic/mathematics/\"\u003e数学\u003c/a\u003eの元\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eと同じで、\n「独立したものが複数あること」です。\n断絶の時代ににも以下のような記述があります(p172)。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e新しい多元社会の組織はそうではない。それぞれが独立の目的をもつ。\n病院は医療のため、企業は財とサービスの生産のため、\n大学は知識の増進と教育のため、\n政府機関は国防のためというそれぞれの目的のために存在する。\nそれらのうち上下の位置関係にあるものはない。\n知識の増進が医療や供給よりも上位にあると考える者はいない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"タスク型ダイバーシティ\"\u003eタスク型ダイバーシティ\u003c/h2\u003e\n\u003cp\u003e「タスク型ダイバーシティ」という言葉がありますが、これは価値観の多様性なので、自分の「多元性」と同じ意味です。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eタスク型ダイバーシティとは、能力・経験・知識など、実力の多様性のことを意味する言葉です。個人の能力や知識、過去の経験や価値観など、目に見えない内面の多様性のことを総称してタスク型ダイバーシティと呼びます。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://mitsucari.com/blog/task_diversity/\"\u003eタスク型ダイバーシティとは？メリットや活用方法を理解しよう - 人事担当者のためのミツカリ公式ブログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E5%85%83_(%E6%95%B0%E5%AD%A6)\"\u003e元 (数学) - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "変化する方法",
    "url": "https://www.ikemo3.com/theme/management/how-to-change/",
    "contents": "\u003cp\u003e何か今までやっていることを変えたいときに、\n反対されるケースはいろいろあります。\nそのときに、自分が考えていることを書きます。\u003c/p\u003e\n\u003ch2 id=\"抵抗勢力はほとんどいない\"\u003e「抵抗勢力」はほとんどいない\u003c/h2\u003e\n\u003cp\u003eまず大事なのは、「抵抗勢力」と呼ばれる人はほとんどいないということです。\nほとんどなのでゼロではないですが、\nそういう人は人間的にも問題がある事が多いので、だいたい分かります。\u003c/p\u003e\n\u003cp\u003e実際は、ただ単に「めんどくさい」か、「自分が否定されることへの恐れ」です。\n「めんどくさい」から嫌がっている人には、自分がそのめんどくさいことを引き受けること、\n「自分が否定されることへの恐れ」は、相手を尊重した上での話し合いが基本です。\u003c/p\u003e\n\u003ch2 id=\"そもそも変える必要があるか\"\u003eそもそも変える必要があるか\u003c/h2\u003e\n\u003cp\u003eまず考えるべきは、そもそも、それを変える必要があるかどうかです。\n別の言い方をすると、その変革にコミットできるかどうかです。\nいろいろ変えたいことがあっても、だいたいは時間がありません。\nなので、「これだけはどうしてもやりたい」ことに集中することが必要です。\u003c/p\u003e\n\u003ch2 id=\"それは破壊になっていないか\"\u003eそれは「破壊」になっていないか\u003c/h2\u003e\n\u003cp\u003e変革をする上でありがちな失敗は、ただの「破壊」になっているケースです。\n「新しいプロセスをしました。古いプロセスは廃棄します。後は知りません」\nでは、人はついてきません。\n変革をするときには、自分が雑用をこなすくらいがちょうどいいと思っています。\u003c/p\u003e\n\u003ch2 id=\"最初のアイデアに飛びつかない\"\u003e最初のアイデアに飛びつかない\u003c/h2\u003e\n\u003cp\u003e他にありがちな失敗は、最初のアイデアにすぐに飛びついてしまうことです。\n「世間で使われているから」が最適とは限りません。\u003c/p\u003e\n\u003cp\u003e最新の技術が5年後生き残っているとは限りません。\n古い技術のほうが残ることも多いです。\n技術の見極めが重要です。\u003c/p\u003e\n\u003ch2 id=\"参考資料\"\u003e参考資料\u003c/h2\u003e\n\u003cp\u003e流し読みしかしていませんが、この本がいいのではと思います。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/462108786X/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/462108786X.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/462108786X/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nFearless Change アジャイルに効く アイデアを組織に広めるための48のパターン\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "iPhone",
    "url": "https://www.ikemo3.com/dic/iphone/",
    "contents": "\u003ch2 id=\"iphoneとは\"\u003eiPhoneとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003eが出している、スマートフォンです。\u003c/p\u003e\n\u003ch2 id=\"2009年からiphone使い\"\u003e2009年からiPhone使い\u003c/h2\u003e\n\u003cp\u003e自分は2009年のiPhone 3GSからiPhoneを使ってます。\n当時はauの携帯電話を使ってたのですが、\n最初はiPhoneが本当に便利か分からないので、お試しにとiPod touchを買いました。\nで、便利そうだとわかったので、iPhone 3GSに乗り換えました。\n当時扱ってたのはソフトバンクのみだったので、キャリアごと乗り換えです。\u003c/p\u003e\n\u003cp\u003e当時はあまりソフトは揃ってなかったのですが、\n決め手は、\u003ca href=\"/dic/mac/\"\u003eMac\u003c/a\u003eと同期するのに便利なことです。\n携帯電話とMacを同期するには専用のソフトが必要だったのですが、\niPhoneなら何もしなくてもMacのデータを持っていけるのがいいなぁと。\u003c/p\u003e\n\u003ch2 id=\"2年ごとに最新のiphoneを使用\"\u003e2年ごとに最新のiPhoneを使用\u003c/h2\u003e\n\u003cp\u003eキャリアは変わりましたが、それ以降もずっとiPhoneを使い続けてます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2009年: iPhone 3GS(ソフトバンク)\u003c/li\u003e\n\u003cli\u003e2011年: iPhone 4S(au)\n\u003cul\u003e\n\u003cli\u003eスマートバリュー目当てで乗り換え\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e2013年: iPhone 5s(au)\u003c/li\u003e\n\u003cli\u003e2015年: iPhone 6s 4.7inch(NTTドコモ)\n\u003cul\u003e\n\u003cli\u003e妻がドコモだったので乗り換え\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eただ、そろそろ2年でなくてもいいかなと思ったので、\n2017年は今のところ乗り換えていません。\u003c/p\u003e\n"
  }, 
  {
    "title": "いもたき",
    "url": "https://www.ikemo3.com/dic/imotaki/",
    "contents": "\u003ch2 id=\"いもたきとは\"\u003eいもたきとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/ozu/\"\u003e愛媛県大洲市\u003c/a\u003eで秋に行う、芋を使った料理のことです。\n最近は愛媛県各地で行われていて、「芋炊き」と表記するところもあるみたいですが、\n個人的な慣れもあるのでひらがなで「いもたき」と書きます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.oozukankou.jp/imotaki.html\"\u003e大洲の元祖いもたき｜伊予の小京都　大洲　｜大洲市観光協会\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"芋煮とは違うんだよ\"\u003e芋煮とは違うんだよ\u003c/h2\u003e\n\u003cp\u003e芋煮とは違うと言ってもまあ比較されるのはしょうがないので、\nいもたきの特徴を書いておきます。\u003c/p\u003e\n\u003cp\u003e鶏肉を使う\u003c/p\u003e\n\u003cp\u003e…他は地域によって違うのでなんとも言えませんね。。。\n自分の実家だと材料はこんな感じです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e里芋\u003c/li\u003e\n\u003cli\u003e鶏肉\u003c/li\u003e\n\u003cli\u003e油揚げ\u003c/li\u003e\n\u003cli\u003e人参\u003c/li\u003e\n\u003cli\u003eしいたけ\u003c/li\u003e\n\u003cli\u003eこんにゃく\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e白玉は使わないです。ごぼうも入れないです。\nまあ入れたらダメってわけでもないですが。\u003c/p\u003e\n\u003cp\u003eあとは味付けですが、うちは砂糖を使いません。その代わりみりんを使います。\n\u003ca href=\"/dic/matsuyama/\"\u003e松山\u003c/a\u003eでいもたきセットを買うと、\nだいたい砂糖で味付けされているので、ちょっと好きじゃないんですよね。\u003c/p\u003e\n"
  }, 
  {
    "title": "左利き",
    "url": "https://www.ikemo3.com/dic/left-handed/",
    "contents": "\u003ch2 id=\"左利きとは\"\u003e左利きとは\u003c/h2\u003e\n\u003cp\u003e筆記用具や日常の作業を左手で行う人です。\n自分も左利きです。\u003c/p\u003e\n\u003ch2 id=\"左利きの寿命は短いというのは悪質なデマ\"\u003e左利きの寿命は短いというのは悪質なデマ\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E5%B7%A6%E5%88%A9%E3%81%8D#.E5.B7.A6.E5.88.A9.E3.81.8D.E3.81.AE.E5.AF.BF.E5.91.BD\"\u003eWikipediaに書いてある\u003c/a\u003eのを見れば十分だと思いますが、左利きの寿命が9年短いのは間違いです。今でもこういうのを流しているのはもはや犯罪的と言っていいでしょう。\u003c/p\u003e\n\u003cp\u003e理由は単純で、昔は右利きに「矯正」されてたので、\n高齢で亡くなる人に左利きが少なかっただけです。因果関係が逆です。\u003c/p\u003e\n\u003ch2 id=\"そんなに不便でもない\"\u003eそんなに不便でもない\u003c/h2\u003e\n\u003cp\u003e「不便でしょ?」と聞かれることもあるのですが、\nあまり不便さを感じることはないです。\u003c/p\u003e\n\u003cp\u003e理由の1つは、細かい作業でなければだいたい右手でできるからです。\n例えば、切符を入れるのは問題ありません。\nSuicaとかタッチで済むようになってもっと楽ですが。\u003c/p\u003e\n\u003cp\u003eハサミは右利きのを使っていたので、逆に左利き用だとうまく切れません。\n足左型のハサミを使ってます\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e少なくとも確かなのは、\u003cstrong\u003e右利きの左手よりは左利きの右手の方がよく使われる\u003c/strong\u003eことです。\nつまり、半分くらい両利きです。お得でしょ?\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e足左型を使うなと書いている店もありますが、そういう店からは買わないほうがいいでしょう。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "数学",
    "url": "https://www.ikemo3.com/dic/mathematics/",
    "contents": "\u003ch2 id=\"数学とは\"\u003e数学とは\u003c/h2\u003e\n\u003cp\u003e学問の一つです。\u003c/p\u003e\n\u003ch2 id=\"高校数学算数\"\u003e高校数学＝算数\u003c/h2\u003e\n\u003cp\u003e自分は数学科出身だったのですが、\n大学の数学は高校までの数学とは全く異なります。\u003c/p\u003e\n\u003cp\u003e高校までは100点満点取れて当たり前だったのですが、\n大学に入ると授業についていくのも大変でした。\u003c/p\u003e\n\u003ch2 id=\"数学と哲学は似ている\"\u003e数学と哲学は似ている\u003c/h2\u003e\n\u003cp\u003eそれでも大学を卒業して思ったのは、\n数学は「数学的な考え方」を学ぶものだなぁと。\u003c/p\u003e\n\u003cp\u003e数学的な考え方は主に2つあって、1つは「公理」という考え方です。\n論理を組み立てる時に大事なのは、その前提条件です。\n数学ではそれを「公理」と言って、厳密に定義されます。\nそして、その公理を元に、定理を証明していきます。\nなので、日常生活でも、「この話の前提条件となっているものは何かな」とか、\n「この前提条件からこの話は導き出せるかな\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e」と考える癖がついています。\u003c/p\u003e\n\u003cp\u003eもう1つは、「抽象化」という考え方です。\nこれが分かったのは大学5年\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003eのときに、大学2年で学ぶ位相空間\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003eを復習してたときです。\nずっと位相空間は分からなかったのですが、\nあるとき、これは「集合と呼ばれるものの性質」を抽象化したものだなと分かりました。\u003c/p\u003e\n\u003cp\u003e「集合と呼ばれるものの性質」という言い方が正しいか分かりませんが、\n何か実際に存在するものから、本質的でないものを取り除いて、\n本質的なもののみ残して、それを元に理論を組み立てるものだなと。\u003c/p\u003e\n\u003cp\u003e後から思えば、これって哲学と似てるんですよね。\n数学は主に記号を使い、厳密な理論を組み立てますが、\n哲学も同じようなものだなーと。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e日常生活では厳密に論理を組み立てることはほぼ不可能なので、辻褄が合っているかどうかレベルです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eつまり留年しましたorz\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E4%BD%8D%E7%9B%B8%E7%A9%BA%E9%96%93\"\u003e位相空間 - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "陽明学",
    "url": "https://www.ikemo3.com/dic/youmeigaku/",
    "contents": "\u003ch2 id=\"陽明学とは\"\u003e陽明学とは\u003c/h2\u003e\n\u003cp\u003e儒学の一派で、朱子学と並ぶものです。\u003c/p\u003e\n\u003ch2 id=\"陽明学革命思想\"\u003e陽明学＝革命思想?\u003c/h2\u003e\n\u003cp\u003e自分がびっくりしているのは、「陽明学＝革命思想」と言われていることです。\n中江藤樹先生の話を聞いても、「体制的でない」(脱藩したので)とまでは\n言っても構わないと思いますが、「反体制」という印象は全くなく、\nむしろ「道徳的」な印象を受けました。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E9%99%BD%E6%98%8E%E5%AD%A6\"\u003eWikipediaの陽明学\u003c/a\u003eの説明に以下のような面白い記述があります。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e山田方谷自身は陽明学者だったが、彼は陽明学の持つ危険性も承知しており、弟子には先に朱子学を学ばせ、センスの良いものにのみ、陽明学を教えた。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e自分の推測ですが、自分を抑えるタイプの人には、陽明学が向いていると思います。\n逆に、自分の考えが正しいというタイプには、火に油を注ぐようなものじゃないかなと。\n中江藤樹先生もどうやら生真面目なタイプだったようです。\nそういう人にとっては、自分を開放してくれるものじゃなかったかと。\u003c/p\u003e\n\u003ch2 id=\"日本の陽明学の本が少ない\"\u003e「日本の陽明学」の本が少ない\u003c/h2\u003e\n\u003cp\u003e個人的に不満なのは、日本の陽明学に関する本が少ないんですよね。\n酷いものになると、日本の陽明学は幕末から始まったみたいなのすらあります。\u003c/p\u003e\n\u003cp\u003e以前、「入門 朱子学と陽明学」という本を読みましたが、\nこの本にも日本の陽明学のことは書かれていませんでした。\nただ、\u003cstrong\u003e韓国の文化を学ぶための本\u003c/strong\u003eとしては面白い本なので載せておきます。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B06XRS25ZY/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B06XRS25ZY.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B06XRS25ZY/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n入門　朱子学と陽明学 (ちくま新書)\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Smalltalk",
    "url": "https://www.ikemo3.com/dic/smalltalk/",
    "contents": "\u003ch2 id=\"smalltalkとは\"\u003eSmalltalkとは\u003c/h2\u003e\n\u003cp\u003eプログラミング言語の一つです。\u003c/p\u003e\n\u003ch2 id=\"smalltalkが与えた影響\"\u003eSmalltalkが与えた影響\u003c/h2\u003e\n\u003cp\u003eSmalltalk自体はマイナーな言語ですが、\n自分がすごいと思ったものはSmalltalkに直接祖先を持ってます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/nextstep/\"\u003eNEXTSTEP\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eちょっとズルいですが、\u003ca href=\"/dic/objective-c/\"\u003eObjective-C\u003c/a\u003eの文法やクラスライブラリは、Smalltalkの影響を受けています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eVisualAge for \u003ca href=\"/dic/java/\"\u003eJava\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eこの実装はSmalltalkです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/ruby/\"\u003eRuby\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/ruby/\"\u003eRuby\u003c/a\u003eに影響を与えた言語として、Smalltalkが挙げられています\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/refactoring/\"\u003eリファクタリング\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eリファクタリングの概念はSmalltalk使いの間で生まれました。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.ruby-lang.org/ja/about/\"\u003eRubyとは\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ベイズの定理",
    "url": "https://www.ikemo3.com/dic/bayes-theorem/",
    "contents": "\u003ch2 id=\"ベイズの定理とは\"\u003eベイズの定理とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%99%E3%82%A4%E3%82%BA%E3%81%AE%E5%AE%9A%E7%90%86\"\u003eWikipedia\u003c/a\u003eにも記載されている通り、条件付き確率について成り立つ定理で、以下のような形をしています。\u003c/p\u003e\n\u003cp\u003e$$P(B|A) = \\frac{P(A|B)P(B)}{P(A)}$$\u003c/p\u003e\n\u003cp\u003e一見何でもない数式ですが、これが大論争を引き起こしました。\u003c/p\u003e\n\u003cp\u003eなぜなら、「確率」と書かれていますが、これは頻度に基づく確率ではありません。\n頻度に基づくというのは、\n「サイコロの目を1000回振ったら1の目が166回出た。なので1の目が出る確率は0.166(16.6%)」\nのような表現です。\n要は「たくさん同じことを繰り返す」ことです。\u003c/p\u003e\n\u003cp\u003eこのベイズの定理が示していることは、事前に決めた確率が、\nある出来事の結果によって変わるということです。\n例えば、「雨が降る確率」は、天気予報を見たり、空を見ることによって変わります。\nその「事前に決めた確率」というのを「事前確率」と呼び、\n「出来事によって変わった確率」を「事後確率」と呼びます。\u003c/p\u003e\n\u003cp\u003eここで使われる「確率」は「確信度」と呼ばれることもあります。\n「確信度」を分かりやすく言い換えると、「賭け」のモデル化です。\nAとBという事象があって、Aの確信度が1/4であるということは、\n「結果がAなら4倍以上になって返ってくるギャンブルにならAに賭けてもよい」というのと同じです。\u003c/p\u003e\n\u003cp\u003e問題は、「事前確率」に何を用いるかです。\n天気予報の場合、過去のデータから「雨が降る確率」は分かっているため、\nこれを事前確率として使用するのが自然です。\u003c/p\u003e\n\u003ch2 id=\"主観確率\"\u003e主観確率\u003c/h2\u003e\n\u003cp\u003eしかし、過去のデータが存在しない、あるいは少ない場合は、\n自然な事前確率を定義することが困難です。\n客観的なデータが使用できない以上、\nどこかで主観的な判断をする必要があります。\nよって、これは\u003ca href=\"https://ja.wikipedia.org/wiki/%E4%B8%BB%E8%A6%B3%E7%A2%BA%E7%8E%87\"\u003e主観確率\u003c/a\u003eと呼ばれています。\u003c/p\u003e\n\u003cp\u003eこの主観確率を認めることで、非常に多くの問題が解決できます\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n現在の\u003ca href=\"/dic/artificial-intelligence/\"\u003e人工知能\u003c/a\u003e理論のほとんどをしめる\n学習理論の基礎にあるのは、この数式と言っていいと思います。\u003c/p\u003e\n\u003cp\u003eしかし、これは数学としては許せないという人も多くいました。これが大論争です。\nこのあたりは、「異端の統計学 ベイズ」という読み物が詳しいです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4794220014/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4794220014.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4794220014/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n異端の統計学 ベイズ\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e正しい答えが出るわけではないので、「解決」というよりは「決定」ですね。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "信頼できる情報源",
    "url": "https://www.ikemo3.com/dic/reliable-sources/",
    "contents": "\u003ch2 id=\"信頼できる情報源とは\"\u003e信頼できる情報源とは\u003c/h2\u003e\n\u003cp\u003eその情報を信用しても「それほど大間違いでない」情報源です。\u003c/p\u003e\n\u003ch2 id=\"検証可能性だけでは不十分\"\u003e検証可能性だけでは不十分\u003c/h2\u003e\n\u003cp\u003eWikipediaには独自に\u003ca href=\"https://ja.wikipedia.org/wiki/Wikipedia:%E6%A4%9C%E8%A8%BC%E5%8F%AF%E8%83%BD%E6%80%A7\"\u003e検証可能性\u003c/a\u003eというページがあります。\nこの「検証可能性」という考えは同意するところも多いのですが、\n現実上は問題だらけです。\u003c/p\u003e\n\u003ch3 id=\"新聞はもはや信頼できる情報源とは言えない\"\u003e新聞はもはや信頼できる情報源とは言えない\u003c/h3\u003e\n\u003cp\u003e自分から見ると、新聞はもはや信頼できる情報源とは言えません。\n\u003ca href=\"http://gohoo.org/\"\u003eGoHoo\u003c/a\u003eに多数の誤報が載っています。\nこのサイトに載っているものはほんの一部です。\n新聞に限らず、TVなどのマスメディアやWebメディア、\nジャーナリストに関しても信頼できる情報を流しているとは言えません\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eまた、技術的な問題として、新聞社のサイトはアクセス制限がかかっていたり、\n情報が消えることがあるため、リンクするにはふさわしくないことが多いです。\nせめて概要だけでも載せてほしいんですが。。。\u003c/p\u003e\n\u003ch2 id=\"万能な方法はない\"\u003e万能な方法はない\u003c/h2\u003e\n\u003cp\u003e信頼できる情報源について、万能な方法はありません。\nただ、「万能な方法がないから好き勝手にして良い」ではなく、\n自分なりにチェックして、\nこのサイトなら大きな間違いはないだろうという評価をした上で載せています。\u003c/p\u003e\n\u003cp\u003eユーザが作成したコンテンツ(CGM)については、\u003cstrong\u003e個別に判断\u003c/strong\u003eしています。\n匿名でも、リンクするに値したと判断した場合は、掲載しています。\n具体的には、Wikipedia、ニコニコ大百科、Pixiv百科事典などです。\u003c/p\u003e\n\u003ch2 id=\"個人的に重視している方法\"\u003e個人的に重視している方法\u003c/h2\u003e\n\u003ch3 id=\"偽情報を流してメリットがあるかどうか\"\u003e偽情報を流してメリットがあるかどうか\u003c/h3\u003e\n\u003cp\u003e個人的に重視しているのは、\n\u003cstrong\u003e偽情報を流すことによってメリットがあるかどうか\u003c/strong\u003eです。\n例えばある偽医療を売っている人にとっては、\n医療に関する偽情報を流すメリットがあります。\u003c/p\u003e\n\u003cp\u003e逆に、企業が自社製品に対して偽情報を流すメリットはありません。\nライバル他社についてならありますが、\nあからさまな偽情報を流すと評判が落ちるため、通常はやりません\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch3 id=\"著者から誠意が感じられるか\"\u003e著者から誠意が感じられるか\u003c/h3\u003e\n\u003cp\u003e「誠意が感じられるか」というのは、客観的な指標ではありません。\nただ、自分の主張のために事実を捻じ曲げそうな人なのか、\n可能な限り正しい情報を提示する人なのかはだいたい想像できます。\u003c/p\u003e\n\u003ch3 id=\"過度な煽りをしていないか\"\u003e過度な煽りをしていないか\u003c/h3\u003e\n\u003cp\u003e仮に内容が正しいとしても、過度な煽りをしている人や記事は、なるべく除外しています。\nなぜなら、過度な煽りは、人から正常な判断能力を奪うからです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e比較的マシな新聞、TV、Webメディアはあるのですが、労多くして功少なしです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e無知なため正しい情報を伝えられないケースや、自社に都合の良い解釈をすることはあります。稀に偽情報を流す企業や、そのようなサイトを応援する企業もあります(情けない話ですが)。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "ANA",
    "url": "https://www.ikemo3.com/dic/ana/",
    "contents": "\u003ch2 id=\"anaとは\"\u003eANAとは\u003c/h2\u003e\n\u003cp\u003e航空会社の1つです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.ana.co.jp/\"\u003eANAトップ\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.ana.co.jp/domestic/prepare/baggage/\"\u003e手荷物(国内線)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"手荷物\"\u003e手荷物\u003c/h2\u003e\n\u003cp\u003e特に注意すべき荷物は以下になります。\n詳細は\u003ca href=\"http://www.mlit.go.jp/koku/koku_fr2_000007.html\"\u003e国土交通省のリスト\u003c/a\u003eが参考になります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e現金や高価なもの\u003c/li\u003e\n\u003cli\u003eスプレー類\n\u003cul\u003e\n\u003cli\u003e制汗スプレー、医療用のスプレーはある程度OK\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e瓶に入った酒類・飲料品\n\u003cul\u003e\n\u003cli\u003e機内に持ち込むこと\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eリチウム電池、リチウムイオン電池\n\u003cul\u003e\n\u003cli\u003e予備電池は預けられない\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。100Wh以下\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003eなら持ち込み数に制限なし。\u003c/li\u003e\n\u003cli\u003e本体を預ける場合は電源を切ってスーツケースなどに入れること\u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e刃物類\n\u003cul\u003e\n\u003cli\u003e電動シェーバーは問題なし\u003csup id=\"fnref:6\"\u003e\u003ca href=\"#fn:6\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e6\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003eハサミは小さいものなどはOK\u003csup id=\"fnref:7\"\u003e\u003ca href=\"#fn:7\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e7\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"電子機器の使用\"\u003e電子機器の使用\u003c/h2\u003e\n\u003cp\u003eソース: \u003ca href=\"https://www.ana.co.jp/domestic/prepare/baggage/index.html?menu=inflight-restriction\"\u003e手荷物［国内線］｜ご旅行の準備[国内線]｜ANA\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e「通信用の電波を発する機器」とアナウンスされますが、\n飛行機の機種によってその内容が変わるのに注意してください。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e機器の状態\u003c/th\u003e\n          \u003cth\u003eB767-300(Wi-Fi非装着機)、B737-500(2.)\u003c/th\u003e\n          \u003cth\u003eそれ以外(1.)\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e電波を発信しない状態(機内モードなど)\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eBluetooth, Wi-Fi接続\u003csup id=\"fnref:8\"\u003e\u003ca href=\"#fn:8\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e8\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003e×\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e3G, 4Gなど\u003c/td\u003e\n          \u003ctd\u003e×\u003c/td\u003e\n          \u003ctd\u003e×\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"wallet使用時の注意\"\u003eWallet使用時の注意\u003c/h2\u003e\n\u003cp\u003eiOSのWallet機能に対応しているのは便利ですが、以下のような事例がありました。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eANAのアプリからWalletに追加\u003c/li\u003e\n\u003cli\u003e手荷物検査場でバーコードを読み取り\u003c/li\u003e\n\u003cli\u003eANAのアプリからWalletへ再追加(更新があったため)\u003c/li\u003e\n\u003cli\u003e搭乗時にバーコードを読み取ると、エラーになる\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eハッキリとこれがダメと言われたわけではないですが、\nWalletを使うときは、手荷物検査場後は更新しないほうが良いかと思います。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.ana.co.jp/ja/jp/domestic/prepare/baggage/?menu=caution-restriction#anchor026\"\u003eスプレー類について\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.ana.co.jp/domestic/prepare/baggage/?menu=baggage-caution\"\u003e注意が必要な手荷物\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.ana.co.jp/domestic/prepare/baggage/?menu=caution-restriction\"\u003e制限のある手荷物（機内持ち込み・お預かりできないもの）\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e3.6V〜3.7V換算で27000mAh〜28000mAh程度。かなり大容量でなければ気にしなくていいと思います。\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.ana.co.jp/topics/notice170630/\"\u003eリチウム電池を内蔵した電子機器について｜ANA\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:6\"\u003e\n\u003cp\u003e\u003ca href=\"https://contact-jp.ana.co.jp/app/answers/detail/a_id/2673\"\u003e【国内線】カミソリは機内に持ち込むことはできますか。\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:6\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:7\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.mlit.go.jp/koku/koku_fr2_000007.html\"\u003e国土交通省のリスト\u003c/a\u003eより、「先端が尖っていないもので刃体６ｃｍ以下であれば持込可能 小さな眉毛きりはさみや鼻毛きりはさみ等の化粧用はさみ、携帯裁縫セットのはさみも持込可能」と記載されている。\u0026#160;\u003ca href=\"#fnref:7\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:8\"\u003e\n\u003cp\u003e3DSのすれちがい通信など\u0026#160;\u003ca href=\"#fnref:8\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Jenkins",
    "url": "https://www.ikemo3.com/dic/jenkins/",
    "contents": "\u003ch2 id=\"jenkinsとは\"\u003eJenkinsとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/oss/\"\u003eOSS\u003c/a\u003eの継続的インテグレーションツールです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://jenkins.io/\"\u003e公式サイト\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/Jenkins\"\u003eWikipedia\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"jenkins-configuration-as-code\"\u003eJenkins Configuration as Code\u003c/h2\u003e\n\u003cp\u003eJenkins 2.0の、パイプラインをコードで書く機能は便利なのですが、\nJenkins自体の設定が結構面倒なんですよね。\nAnsibleでもイマイチ扱いづらいし。\u003c/p\u003e\n\u003cp\u003e何かいい解決案はないかなと思って調べたところ、以下の提案を見つけました。\n今後に期待できそうです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jenkinsci/jep/tree/master/jep/201\"\u003eJEP-201: Jenkins Configuration as Code\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "ニンテンドー3DS",
    "url": "https://www.ikemo3.com/dic/nintendo-3ds/",
    "contents": "\u003ch2 id=\"ニンテンドー3dsとは\"\u003eニンテンドー3DSとは\u003c/h2\u003e\n\u003cp\u003e任天堂から発売されている携帯ゲーム機です。\u003c/p\u003e\n\u003ch2 id=\"スペック\"\u003eスペック\u003c/h2\u003e\n\u003cp\u003e自分が持っているのがNew 3DSなので、そのスペックを書きます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e縦: 80.6mm\u003c/li\u003e\n\u003cli\u003e横: 142mm\u003c/li\u003e\n\u003cli\u003e厚さ: 21.6mm\u003c/li\u003e\n\u003cli\u003e重さ: 253g\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"パーツ\"\u003eパーツ\u003c/h2\u003e\n\u003cp\u003eタッチペンは公式でも買えます。\nNew 3DS(LLでない方)のタッチペンはなかなか売ってないのですが、\n272円で買えるならこれでいいかもですね。。。\u003c/p\u003e\n"
  }, 
  {
    "title": "日本酒",
    "url": "https://www.ikemo3.com/dic/sake/",
    "contents": "\u003ch2 id=\"日本酒とは\"\u003e日本酒とは\u003c/h2\u003e\n\u003cp\u003e日本で作られている米などが原料のお酒です。\u003c/p\u003e\n\u003ch2 id=\"初心者向け日本酒の選び方\"\u003e初心者向け日本酒の選び方\u003c/h2\u003e\n\u003cp\u003eスーパーの日本酒コーナーで\n「純米吟醸」と書かれた300ml日本酒を買うのがおすすめです。\u003c/p\u003e\n\u003cp\u003eその理由は3つあります。\u003c/p\u003e\n\u003ch3 id=\"1-スーパーに置いてあるどこでも入手しやすい\"\u003e1. スーパーに置いてある＝どこでも入手しやすい\u003c/h3\u003e\n\u003cp\u003eスーパーに置いてある日本酒の品質は悪いと言われますが、\nそういうことは初心者を脱してからでいいと思います(専門店に行くことは否定しない)。\nただ、激安スーパーやドラッグストアのような、安さが売りの店では置いてない事が多いです。\u003c/p\u003e\n\u003ch3 id=\"2-純米吟醸はそれほど高くないがハズレが少ない\"\u003e2. 純米吟醸はそれほど高くないがハズレが少ない\u003c/h3\u003e\n\u003cp\u003e大吟醸酒は日本酒の中でも高いので、最初から買うにはハードルが高いです。\n日本酒の方向性として「純米酒」と「吟醸造り」があるのですが、\n「純米吟醸」はこの2つが両方入っているスタンダードな味です。\u003c/p\u003e\n\u003ch3 id=\"3-300mlの時点で選択肢が限られる\"\u003e3. 300mlの時点で選択肢が限られる\u003c/h3\u003e\n\u003cp\u003e300mlの日本酒はほとんどが地元のお酒です。\nもし気に入ったら720mlでも一升でも簡単に買えます。\u003c/p\u003e\n\u003ch2 id=\"個人的な好み\"\u003e個人的な好み\u003c/h2\u003e\n\u003cp\u003e味で言えば甘口の方がいいなぁと思いました。\n高知県のお酒を飲んだのですが、個人的にはちょっと辛すぎて好きじゃないです。\n愛媛県は甘口から数えて6位タイで、高知県は辛口から数えて2位です\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e今のところ、地元の\u003ca href=\"http://www.yukisuzume.com/\"\u003e雪雀酒造\u003c/a\u003eがいいですね。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.nta.go.jp/shiraberu/senmonjoho/sake/shiori-gaikyo/seibun/2016/01.htm#zu6\"\u003e全国市販酒類調査の結果について（平成27年度調査分）｜統計情報・各種資料｜国税庁\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "傍観者の時代",
    "url": "https://www.ikemo3.com/dic/adventures-of-a-bystander/",
    "contents": "\u003ch2 id=\"傍観者の時代とは\"\u003e傍観者の時代とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eの著書の一つです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAL9O/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAL9O.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAL9O/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集12 傍観者の時代\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"ラインホルトヘンシュとは誰か\"\u003eラインホルト・ヘンシュとは誰か?\u003c/h2\u003e\n\u003cp\u003e第8章 怪物ヘンシュと小羊シェイファーの運命という章に以下の記述があります。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eヒトラーのドイツが崩壊したとき、『ニューヨーク・タイムズ』の小さな記事が私の目を引いた。\n「ナチス・ドイツの重要戦犯として手配中のラインホルト・ヘンシュが、\nフランクフルトの廃墟の地下室でアメリカ軍による逮捕時に自殺した」\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこの記述を見て、ラインホルト・ヘンシュという人物について検索してみたのですが、\n見つかりませんでした。調べてみたところ、ドラッカーが勘違いしたのではと思います\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003eまず、どういう綴りで書かれているのかを調べたところ、\nどうやら \u0026ldquo;Reinhold Hensch\u0026rdquo; でした。\nでも、それっぽい名前の人は\u003ca href=\"https://en.wikipedia.org/wiki/Reinhold_Hanisch\"\u003eReinhold Hanisch\u003c/a\u003eという画家くらいでした。\u003c/p\u003e\n\u003cp\u003e経歴で一番近いのは\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%8F%E3%82%A4%E3%83%B3%E3%83%AA%E3%83%92%E3%83%BB%E3%83%92%E3%83%A0%E3%83%A9%E3%83%BC\"\u003eハインリヒ・ヒムラー\u003c/a\u003eのようです。\u003c/p\u003e\n\u003cp\u003eまあ、この本は1979年に刊行された本なので、\n40年以上前の記憶は曖昧になってたんじゃないかなぁと思います。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e詳しくは検証してませんが、ドラッカーの著書でたまに事実関係が怪しい箇所が見つかります。今のように簡単に検証できる時代ではないので、単に勘違いのようですが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "妙好人",
    "url": "https://www.ikemo3.com/dic/myokonin/",
    "contents": "\u003ch2 id=\"妙好人とは\"\u003e妙好人とは\u003c/h2\u003e\n\u003cp\u003e浄土真宗の特に素晴らしい信者のことを指す言葉です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E5%A6%99%E5%A5%BD%E4%BA%BA\"\u003eWikipedia\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://en.wikipedia.org/wiki/Myokonin\"\u003eWikipedia(英語)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"現代では難しい生き方\"\u003e現代では難しい生き方\u003c/h2\u003e\n\u003cp\u003e妙好人の生き方を見てると、素晴らしい生き方だなと思いますが、\n同時に、現代では難しい生き方だなとも思います。\u003c/p\u003e\n\u003cp\u003eその理由は、「知識」です。\u003c/p\u003e\n\u003cp\u003e妙好人のような生き方ができるのは、知識で目を曇らせていないからだと思います。\nしかし、現代社会では、知識なしに生きていくことは難しいです。\n少なくとも、義務教育は受ける必要があります。\u003c/p\u003e\n\u003cp\u003eそしてそれ以上に、知識を身につけることは良いことだとされています。\nもし仮に、「目を曇らせないために知識を身につけるのは止めましょう」と\n言う人がいたら、大反対します。\nせいぜい言えるのは、「知識に溺れないようにしましょう」程度です。\u003c/p\u003e\n"
  }, 
  {
    "title": "蕎麦",
    "url": "https://www.ikemo3.com/dic/soba/",
    "contents": "\u003ch2 id=\"蕎麦とは\"\u003e蕎麦とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/udon/\"\u003eうどん\u003c/a\u003eと並んでうまい食べ物です。\u003c/p\u003e\n\u003ch2 id=\"富倉そば\"\u003e富倉そば\u003c/h2\u003e\n\u003cp\u003e昔\u003ca href=\"https://ja.wikipedia.org/wiki/%E6%96%91%E5%B0%BE%E9%AB%98%E5%8E%9F\"\u003e斑尾高原\u003c/a\u003eに旅行に行った時に\n\u003ca href=\"https://ja.wikipedia.org/wiki/%E5%AF%8C%E5%80%89%E3%81%9D%E3%81%B0\"\u003e富倉そば\u003c/a\u003eを食べたんですが、\nその時に食べた蕎麦が衝撃的で、あれ以来他の蕎麦が食べづらくなりました。\nただ、その後ネット通販で取り寄せて食べたのですが、\n衝撃的な感じはありませんでした。\u003c/p\u003e\n\u003cp\u003e富倉そばは\u003cstrong\u003e幻のそば\u003c/strong\u003eと呼ばれているようですが、\n現地に行かないとあの味は食べられないのか、\n調理の問題なのか、分からなくてモヤモヤしています。\n狐につままれた感じです。\u003c/p\u003e\n"
  }, 
  {
    "title": "故郷を捨てた人",
    "url": "https://www.ikemo3.com/dic/people-who-throw-out-hometown/",
    "contents": "\u003ch2 id=\"故郷を捨てた人とは\"\u003e故郷を捨てた人とは\u003c/h2\u003e\n\u003cp\u003e一旗揚げようと上京したが、何もできずにくすぶっていて、\nでも東京に執着している人を皮肉った言葉です。\nいろいろな事情があって故郷に戻りたくても戻れない人は除きます。\u003c/p\u003e\n\u003ch2 id=\"故郷は捨てなくても構わない\"\u003e故郷は捨てなくても構わない\u003c/h2\u003e\n\u003cp\u003e自分は日本IBMで飼い殺しにされたり、\n内定取り消しにあって精神的に酷い状況でした。\nそんな自分を見かねて親に「実家に帰ってこい」と言われました。\u003c/p\u003e\n\u003cp\u003e結果的にこれは大正解で、リフレッシュできて、\n運良く再就職もできて、人生が好転しました。\u003c/p\u003e\n\u003ch2 id=\"故郷を捨てる人心の冷たい人\"\u003e故郷を捨てる人＝心の冷たい人\u003c/h2\u003e\n\u003cp\u003e自分は実家に帰るか迷ったのですが、\nその理由はあくまで再就職できるかどうかの不安にすぎませんでした。\n結果的に就職出来たので、何も言うことないです。\u003c/p\u003e\n\u003cp\u003e昔は「故郷に錦を飾る」と言いましたが、\n今は故郷を捨てることに何も疑念を持たない人が多いようです。\u003c/p\u003e\n"
  }, 
  {
    "title": "満員電車",
    "url": "https://www.ikemo3.com/dic/crowded-train/",
    "contents": "\u003ch2 id=\"満員電車とは\"\u003e満員電車とは\u003c/h2\u003e\n\u003cp\u003e人がいっぱいの電車です。\n自分が大嫌いなものです。\u003c/p\u003e\n\u003ch2 id=\"東京の満員電車は酷い\"\u003e東京の満員電車は酷い\u003c/h2\u003e\n\u003cp\u003e自分が長く住んでた場所は大洲、大阪、横浜、松山ですが、\n一番うんざりしたのは東京都心に行くときです。\n逆に、横浜に住んでいたときは逆向きだったので楽でした。\u003c/p\u003e\n\u003cp\u003e大阪もあまり大したことないです。\nこの動画にあるように、一番混雑している御堂筋線でも楽に立てます。\u003c/p\u003e\n\u003cdiv style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;\"\u003e\n      \u003ciframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen\" loading=\"eager\" referrerpolicy=\"strict-origin-when-cross-origin\" src=\"https://www.youtube.com/embed/4feKKTKEK9U?autoplay=0\u0026amp;controls=1\u0026amp;end=0\u0026amp;loop=0\u0026amp;mute=0\u0026amp;start=0\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;\" title=\"YouTube video\"\u003e\u003c/iframe\u003e\n    \u003c/div\u003e\n\n\u003ch2 id=\"都市圏の広さの問題か\"\u003e都市圏の広さの問題か\u003c/h2\u003e\n\u003cp\u003e東京の満員電車が酷い理由はいくつもありますが、\n一番はやっぱり都市圏の広さによると思います。\u003c/p\u003e\n\u003cp\u003e例えば、阪急宝塚線の始発の宝塚駅から、終点の梅田駅までは急行で12駅で44分程度、\n普通は18駅で50分程度かかります\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n一方で、田園都市線は始発の中央林間駅から、渋谷駅までが急行で9駅で44分程度\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e、\n普通は26駅で1時間7分程度かかります\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\n営業キロ数は阪急宝塚線が24.5km\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003eなのに対し、田園都市線の渋谷-中央林間が31.5km\u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003eです。\u003c/p\u003e\n\u003cp\u003eつまり、田園都市線は3割ほど長い距離を同じ時間で走行するために急行を優遇した結果、\n乗客の急行への集中によって混雑を酷くしています。\nこれは根本的に人を減らす以外\u003csup id=\"fnref:6\"\u003e\u003ca href=\"#fn:6\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e6\u003c/a\u003e\u003c/sup\u003e対応しようがありません。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.hankyu.co.jp/station/html/HK-56_ta_1_w.html\"\u003e宝塚駅 時刻表｜梅田方面〈平日〉｜阪急電鉄\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"http://ekikara.jp/newdata/detail/1307051/21682.htm\"\u003eえきから時刻表 列車詳細\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"http://ekikara.jp/newdata/detail/1307051/21688.htm\"\u003eえきから時刻表 列車詳細\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E9%98%AA%E6%80%A5%E5%AE%9D%E5%A1%9A%E6%9C%AC%E7%B7%9A\"\u003e阪急宝塚本線 - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E6%9D%B1%E6%80%A5%E7%94%B0%E5%9C%92%E9%83%BD%E5%B8%82%E7%B7%9A\"\u003e東急田園都市線 - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:6\"\u003e\n\u003cp\u003eリモートワークも含む\u0026#160;\u003ca href=\"#fnref:6\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "GTD",
    "url": "https://www.ikemo3.com/dic/gtd/",
    "contents": "\u003ch2 id=\"gtdとは\"\u003eGTDとは\u003c/h2\u003e\n\u003cp\u003eGetting Things Doneの略で、仕事術の手法です。\n日本語の最新版の本はこちらです(電子化されていない……)\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4576151878/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4576151878.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4576151878/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n全面改訂版 はじめてのGTD ストレスフリーの整理術\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"gtdだけではうまくいかなかったが参考になる考え方もある\"\u003eGTDだけではうまくいかなかったが、参考になる考え方もある。\u003c/h2\u003e\n\u003cp\u003e自分はGTDを2005年頃からやってましたが、\n結局うまく行きませんでした。\n結果的に以下の2つの本からヒントを得てうまくいきました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/do-it-tomorrow/\"\u003eマニャーナの法則\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/kanban-in-action/\"\u003eカンバン仕事術\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "カンバン仕事術",
    "url": "https://www.ikemo3.com/dic/kanban-in-action/",
    "contents": "\u003ch2 id=\"カンバン仕事術とは\"\u003eカンバン仕事術とは\u003c/h2\u003e\n\u003cp\u003eオライリーから発売されている、仕事術の本です。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/487311764X/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/487311764X.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/487311764X/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nカンバン仕事術\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e原著は \u0026ldquo;Kanban in Action\u0026rdquo; というタイトルですが、この \u0026ldquo;in Action\u0026rdquo; は\n日本語だと「実践」に該当します\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"始めるのをやめて終わらせることを始めよう\"\u003e始めるのをやめて、終わらせることを始めよう\u003c/h2\u003e\n\u003cp\u003eこの本で書かれている原則です。\n自分は\u003ca href=\"/dic/gtd/\"\u003eGTD\u003c/a\u003eでうまく行きませんでしたが、\nこの原則を知ることで、うまく回るようになってきました。\u003c/p\u003e\n\u003ch2 id=\"カンバンチームプレイ\"\u003eカンバン＝チームプレイ\u003c/h2\u003e\n\u003cp\u003e自分がタスク管理の本としてもう一つ参考になったのが\n\u003ca href=\"/dic/do-it-tomorrow/\"\u003eマニャーナの法則\u003c/a\u003eでしたが、\nこの2つは似ているなと思いました。\u003c/p\u003e\n\u003cp\u003e両方とも、選択肢を減らすことで、最高のパフォーマンスを発揮する手法だと思います。\n違いは、カンバン仕事術で書かれているのは、チームの生産性なのに対し、\nマニャーナの法則で書かれているのは、個人の生産性です。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e技術書には「実践◯◯」というタイトルの本が多いので。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "マニャーナの法則",
    "url": "https://www.ikemo3.com/dic/do-it-tomorrow/",
    "contents": "\u003ch2 id=\"マニャーナの法則とは\"\u003eマニャーナの法則とは\u003c/h2\u003e\n\u003cp\u003e本のタイトルでもあり、そこで紹介されている仕事術でもあります。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4799319809/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4799319809.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4799319809/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n仕事に追われない仕事術 マニャーナの法則・完全版\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"明日できることは明日やる\"\u003e明日できることは明日やる\u003c/h2\u003e\n\u003cp\u003e最初この本のタイトルを見たときに目を疑ったのですが、\n本を読んだら納得できました。\n仕事術の多くは「早く処理する」ことで生産性を上げようとしますが、\nこの本では逆に、「必要以上に優先度を上げない」ことで、\n最高のパフォーマンスを発揮しようという手法です。\u003c/p\u003e\n"
  }, 
  {
    "title": "ドラッカーのおばあちゃん",
    "url": "https://www.ikemo3.com/dic/grandmother-of-drucker/",
    "contents": "\u003ch2 id=\"ドラッカーのおばあちゃんとは\"\u003eドラッカーのおばあちゃんとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eの傍観者の時代の\n「第1章 おばあちゃんと二〇世紀の忘れ物」に出てくるおばあちゃんです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAL9O/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAL9O.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAL9O/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集12 傍観者の時代\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"20世紀の忘れ物\"\u003e20世紀の忘れ物\u003c/h2\u003e\n\u003cp\u003eドラッカーのおばあちゃんは、間抜けだが合理的、\nそして知恵がある人として描かれています。\u003c/p\u003e\n\u003cp\u003eしかし、間抜けというのはあくまで\u003ca href=\"/dic/post-modern/\"\u003eモダン\u003c/a\u003eの\n価値観で一方的に見た結果にすぎません。\nおばあちゃんは、一人一人のことを思いやって行動しています。\u003c/p\u003e\n\u003cp\u003eつまり、おばあちゃんを「間抜け」と評価することが、20世紀の本質です。\nドラッカーもこのように書いています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eしかし仕事への敬意、人への思いやり、人と人の絆こそ、\nまさに二〇世紀という世紀が、必要としつつも失ってしまったものだった。\nそれらのものまで失ってしまったのでは、もはやブルジョアの社会も、\n社会主義の社会もありえるはずがなかった。\n鉤十字(引用者注: ナチスのこと)が跋扈する粗野な群衆となるだけだった。\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "macOS",
    "url": "https://www.ikemo3.com/dic/macos/",
    "contents": "\u003ch2 id=\"macosとは\"\u003emacOSとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003eが発売している\u003ca href=\"/dic/mac/\"\u003eMac\u003c/a\u003eの標準OSです。\n一応\u003ca href=\"https://support.apple.com/ja-jp/boot-camp\"\u003eBoot Camp\u003c/a\u003eを使えば\u003ca href=\"/dic/windows/\"\u003eWindows\u003c/a\u003eを入れられますが、\n3Dゲームをする人以外は仮想PC(\u003ca href=\"/dic/parallels/\"\u003eParallels\u003c/a\u003eなど)を入れたほうがいいんじゃないかなぁと思います\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"32ビットアプリのサポートはhigh-sierraまで\"\u003e32ビットアプリのサポートはHigh Sierraまで\u003c/h2\u003e\n\u003cp\u003e公式にアナウンスがあります\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eまあ、3Dゲームをやり込むならゲーム機か、別途Windows PCを買ったほうがいいと思います。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://developer.apple.com/news/?id=06282017a\"\u003e64-bit Requirement for Mac Apps - News - Apple Developer\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "The Omni Group",
    "url": "https://www.ikemo3.com/dic/the-omni-group/",
    "contents": "\u003ch2 id=\"the-omni-groupオムニグループとは\"\u003eThe Omni Group(オムニグループ)とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003eプラットフォーム専門のソフトウェア開発を行っている会社です。\u003c/p\u003e\n\u003ch2 id=\"主なソフト\"\u003e主なソフト\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/omnifocus/\"\u003eOmniFocus\u003c/a\u003e: タスク管理ソフト\u003c/li\u003e\n\u003cli\u003eOmniGraffle: ドローソフト\u003c/li\u003e\n\u003cli\u003eOmniPlan: プロジェクト管理ソフト\u003c/li\u003e\n\u003cli\u003eOmniOutliner: アウトライナー\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e月額課金を採用する会社が増えていますが、\nこの会社のソフトは現在、全て売り切りです。\n最近はビューアを兼ねた試用版が無料でダウンロードできます。\nMac版、iOS(iPhone, iPad)版、Apple Watch版があります。\u003c/p\u003e\n\u003ch2 id=\"next時代の戦友\"\u003eNeXT時代の戦友\u003c/h2\u003e\n\u003cp\u003eThe Omni Groupは今はAppleプラットフォームでの開発をしていますが、\n元々は\u003ca href=\"/dic/next/\"\u003eNeXT\u003c/a\u003e専業の開発会社でした。\n自分が最初に触ったWebブラウザが\u003ca href=\"https://www.omnigroup.com/more\"\u003eOmniWeb\u003c/a\u003e 1.0で、\nOmniWeb 2.5のβテストにも参加しました。\u003c/p\u003e\n\u003cp\u003eそんな会社なので、AppleがNeXTを買収(\u003cdel\u003eNeXTによるApple乗っ取り\u003c/del\u003e)後は\nAppleプラットフォームで開発を続けています。\n思い入れがある会社の一つですね。\u003c/p\u003e\n"
  }, 
  {
    "title": "ポモドーロ・テクニック",
    "url": "https://www.ikemo3.com/dic/pomodoro-technique/",
    "contents": "\u003ch2 id=\"ポモドーロテクニックとは\"\u003eポモドーロ・テクニックとは\u003c/h2\u003e\n\u003cp\u003e時間管理手法の1つです。\nポモドーロはイタリア語で、トマトのことを指します\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\nWikipediaにもあるとおり、トマト型のキッチンタイマーを使って始めたため、\nポモドーロ・テクニックという名前になりました。\u003c/p\u003e\n\u003ch2 id=\"手順\"\u003e手順\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://en.wikipedia.org/wiki/Pomodoro_Technique\"\u003eWikipedia(英語)\u003c/a\u003eの記述を訳します。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e終わらせたいタスクを決める。\u003c/li\u003e\n\u003cli\u003e25分でタイマーをセット。\u003c/li\u003e\n\u003cli\u003eタイマーが鳴るまでタスクをこなす。\u003c/li\u003e\n\u003cli\u003e紙にチェックマークを付ける\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003e4つチェックマークがつくまでは、小休憩(3〜5分程度)を取る。2に戻る。\u003c/li\u003e\n\u003cli\u003e4つチェックマークがついたら、休憩(15〜30分程度)を取って、チェックマークを0に戻す。1に戻る。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.kagome.co.jp/tomato/tomato-univ/literature/origin.html\"\u003eカゴメ株式会社 \u0026gt; もっと知りたい トマトと野菜 \u0026gt; トマト大学 \u0026gt; 文学部 \u0026gt; トマトの語源と各国での呼び名\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e中断されたときは「失敗」とみなしてチェックしません。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "大阪大学",
    "url": "https://www.ikemo3.com/dic/osaka-university/",
    "contents": "\u003ch2 id=\"大阪大学とは\"\u003e大阪大学とは\u003c/h2\u003e\n\u003cp\u003e日本の国立大学の一つで、いわゆる旧帝(旧帝国大学)の一つです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.osaka-u.ac.jp/\"\u003e公式サイト\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"nextがあったよ\"\u003eNeXTがあったよ\u003c/h2\u003e\n\u003cp\u003e大阪大学の情報処理教育センター\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eに、\u003ca href=\"/dic/next/\"\u003eNeXT\u003c/a\u003eコンピュータがありました。\n1995年まではNeXTstation、\n1996年からはx86機に\u003ca href=\"/dic/nextstep/\"\u003eNEXTSTEP\u003c/a\u003e 3.3Jが載っていました。\u003c/p\u003e\n\u003ch2 id=\"京大コンプレックスはあるか\"\u003e京大コンプレックスはあるか?\u003c/h2\u003e\n\u003cp\u003e阪大性は京大コンプレックスがあるという話を聞いたことがありますが、\n自分は、少なくとも学力についてはないです。\n京都大学は「入学してから選考を決める」タイプの大学なので\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e、\n何が何でも数学科に入りたかった自分にとってはちょっと微妙だったんですよね。\u003c/p\u003e\n\u003cp\u003eでも、京都大学がうらやましいところもあります。それは「笑い」です。\n有名な「折田先生像」とか、全体的にネタが多いです。\nそれに比べると阪大生は地味なんですよね。\n「笑いの本場」たる大阪が負けるのは結構屈辱です\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e今の\u003ca href=\"http://www.cmc.osaka-u.ac.jp/\"\u003eサイバーメディアセンター\u003c/a\u003eです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"http://www.sci.kyoto-u.ac.jp/ja/about/edu-policy.html\"\u003e学部の教育理念 | 京都大学理学研究科・理学部 - Graduate School of Science / Faculty of Science, Kyoto University\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003eもちろんネタですよ。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Apache Tomcat",
    "url": "https://www.ikemo3.com/dic/tomcat/",
    "contents": "\u003ch2 id=\"apache-tomcatとは\"\u003eApache Tomcatとは\u003c/h2\u003e\n\u003cp\u003eJava Servletを実行するためのコンテナです。\u003c/p\u003e\n\u003ch2 id=\"参考リンク\"\u003e参考リンク\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://tomcat.apache.org/\"\u003e公式サイト\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://tomcat.apache.org/security.html\"\u003eSecurity Updates\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-8.0-doc/security-howto.html\"\u003eSecurity Considerations\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConfiguration Reference\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://tomcat.apache.org/tomcat-8.0-doc/config/index.html\"\u003eTomcat 8\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-8.0-doc/config/filter.html\"\u003eFilter\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://tomcat.apache.org/tomcat-7.0-doc/config/index.html\"\u003eTomcat 7\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://tomcat.apache.org/whichversion.html\"\u003eサポートされているServlet他のバージョン\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/Apache_Tomcat\"\u003eWikipedia\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.cresc.co.jp/tech/java/Servlet_Specifications/servlet_3-0_about.htm\"\u003eServlet 3.0仕様書邦訳版\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"脆弱性の内容の公表はリリースから遅れる\"\u003e脆弱性の内容の公表はリリースから遅れる\u003c/h2\u003e\n\u003cp\u003eApache Tomcatは、リリースされた時点では、\n修正された脆弱性の内容を公表していないようで、\nだいたい1ヶ月くらいは遅れています。\nおそらく、リリースが適用されるまでの猶予を与えるためでしょう。\u003c/p\u003e\n\u003ch2 id=\"サポート期限\"\u003eサポート期限\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-60-eol.html\"\u003eTomcat 6.0.x\u003c/a\u003e: 2016-12-31でサポート終了\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-70-eol.html\"\u003eTomcat 7.0.x\u003c/a\u003e: 終了時期未定(左のリンクは404 Not Foundになるはず)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-80-eol.html\"\u003eTomcat 8.0.x\u003c/a\u003e: 2018-06-30でサポート終了\n\u003cul\u003e\n\u003cli\u003eTomcat 7より終了が早いのは、Tomcat 8.5が出たからです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-85-eol.html\"\u003eTomcat 8.5.x\u003c/a\u003e: 終了時期未定(左のリンクは404 Not Foundになるはず)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://tomcat.apache.org/tomcat-90-eol.html\"\u003eTomcat 9.0.x\u003c/a\u003e: 終了時期未定(左のリンクは404 Not Foundになるはず)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eサポート期限を見るのは以下の方法が確実です。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://tomcat.apache.org/\"\u003eTomcatのサイト\u003c/a\u003eに行く。\u003c/li\u003e\n\u003cli\u003e調べたいバージョンの最新リリースをチェックする。\u003c/li\u003e\n\u003cli\u003e以下のような\u003ccode\u003eNote\u003c/code\u003eがないことを確認する。\n\u003cul\u003e\n\u003cli\u003eNote: Apache Tomcat 8.0.x has reached end of life. (サポート終了の場合)\u003c/li\u003e\n\u003cli\u003eNote: End of life date for Apache Tomcat 8.0.x is announced. (サポート終了時期がアナウンスされている場合)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Apple-Watch",
    "url": "https://www.ikemo3.com/tags/apple-watch/",
    "contents": ""
  }, 
  {
    "title": "Gtd",
    "url": "https://www.ikemo3.com/tags/gtd/",
    "contents": ""
  }, 
  {
    "title": "Hugo",
    "url": "https://www.ikemo3.com/dic/hugo/",
    "contents": "\u003ch2 id=\"hugoとは\"\u003eHugoとは\u003c/h2\u003e\n\u003cp\u003eGo言語で書かれた、静的サイトジェネレータです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/\"\u003e公式サイト\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/documentation/\"\u003eドキュメント\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://themes.gohugo.io/\"\u003eテーマ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gohugoio/hugo\"\u003eGitHub\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Kotlin",
    "url": "https://www.ikemo3.com/dic/kotlin/",
    "contents": "\u003ch2 id=\"kotlinとは\"\u003eKotlinとは\u003c/h2\u003e\n\u003cp\u003eプログラミング言語の1つです。\u003c/p\u003e\n\u003ch2 id=\"デフォルトがfinal\"\u003eデフォルトがfinal\u003c/h2\u003e\n\u003cp\u003eKotlinが分かってるなーと思ったのは、\nデフォルトでクラスがfinal(継承できない)であることです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThe open annotation on a class is the opposite of Java\u0026rsquo;s final: it allows others to inherit from this class. By default, all classes in Kotlin are final, which corresponds to Effective Java, Item 17: Design and document for inheritance or else prohibit it.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ca href=\"https://ceylon-lang.org/\"\u003eCeylon\u003c/a\u003eも自分好みで面白いなと思ったんですが、\n\u003ca href=\"https://ceylon-lang.org/documentation/reference/annotation/final/\"\u003efinal\u003c/a\u003eを付けないとデフォルトで継承可能なので、\nこの点ではKotlinの方がいいですね。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://kotlinlang.org/docs/reference/classes.html\"\u003eClasses and Inheritance - Kotlin Programming Language\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Linux",
    "url": "https://www.ikemo3.com/dic/linux/",
    "contents": "\u003ch2 id=\"linuxとは\"\u003eLinuxとは\u003c/h2\u003e\n\u003cp\u003e狭義では\u003ca href=\"/dic/linux-kernel/\"\u003eLinuxカーネル\u003c/a\u003e、\n広い意味では\u003ca href=\"/dic/linux-kernel/\"\u003eLinuxカーネル\u003c/a\u003eを使ったオペレーティング・システム(OS)を指します。\n後者はディストリビューションによってはGNU/Linuxと呼ぶこともあります。\u003c/p\u003e\n\u003ch2 id=\"主なディストリビューション\"\u003e主なディストリビューション\u003c/h2\u003e\n\u003cp\u003e挙げてたらキリがないので\n\u003ca href=\"https://distrowatch.com/?language=JP\"\u003eDistroWatch\u003c/a\u003eでも見るといいと思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRPM系\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/rhel/\"\u003eRed Hat Enterprise Linux\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/fedora/\"\u003eFedora\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/dic/centos/\"\u003eCentOS\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eその他たくさん\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDebian系\n\u003cul\u003e\n\u003cli\u003eDebian GNU/Linux\u003c/li\u003e\n\u003cli\u003eUbuntu\u003c/li\u003e\n\u003cli\u003eその他たくさん\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eその他\n\u003cul\u003e\n\u003cli\u003eSlackware\u003c/li\u003e\n\u003cli\u003eGentoo\u003c/li\u003e\n\u003cli\u003eその他たくさん\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Mac",
    "url": "https://www.ikemo3.com/dic/mac/",
    "contents": "\u003ch2 id=\"macとは\"\u003eMacとは\u003c/h2\u003e\n\u003cp\u003eApple社が開発しているパーソナルコンピュータです。\u003c/p\u003e\n\u003ch2 id=\"感圧タッチトラックパッド\"\u003e感圧タッチトラックパッド\u003c/h2\u003e\n\u003cp\u003e自分がすごいなと思ったのは、2015年5月19日以降のMacに搭載されている、\n感圧タッチトラックパッドです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.apple.com/jp/newsroom/2015/05/19Apple-Introduces-15-inch-MacBook-Pro-with-Force-Touch-Trackpad-New-1-999-iMac-with-Retina-5K-Display/\"\u003eApple、感圧タッチトラックパッドを搭載した15インチのMacBook Pro、そして新しい238,800円のiMac Retina 5Kディスプレイモデルを発表 - Apple (日本)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://news.mynavi.jp/article/20150616-macbook_pro/2\"\u003e感圧トラックパッドを搭載した、新しい「MacBook Pro Retina 15インチモデル」を試す! (2) 感圧タッチトラックパッドの使い心地は? | マイナビニュース\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれがすごいのは、物理的に沈み込まないことです。\nでも、まるで物理的に沈み込んでいるように感じることです。\nそのせいで、クリックできない時に物理的な問題なのか、\nソフトウェアの問題なのかが分かりづらいですが。\nクリックできないことがあって、故障かなと思って再起動したら、\n何事もなく動くことがありました。\u003c/p\u003e\n\u003ch2 id=\"2005年からmacユーザ\"\u003e2005年からMacユーザ\u003c/h2\u003e\n\u003cp\u003e自分は2005年からMacがメインになりました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2005: iMac G5\u003c/li\u003e\n\u003cli\u003e2006: MacBook 2006 Early\n\u003cul\u003e\n\u003cli\u003eCPUがCore Duoで、32ビットしか対応してませんでした。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e2010: MacBook Pro 13インチ(Mid 2010)\u003c/li\u003e\n\u003cli\u003e2011: MacBook Pro 13インチ(Early 2011)\u003c/li\u003e\n\u003cli\u003e2016: \u003ca href=\"https://support.apple.com/kb/SP749?locale=ja_JP\u0026amp;viewlocale=ja_JP\"\u003eMacBook Pro 15インチ(2016)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMacでほぼ100%困らないのですが、\u003ca href=\"/dic/windows/\"\u003eWindows\u003c/a\u003eも持っています。\u003c/p\u003e\n\u003ch2 id=\"mac-os-x以前のmacは知らない\"\u003eMac OS X以前のMacは知らない\u003c/h2\u003e\n\u003cp\u003e昔大学で1度だけ触ったことありますが、\nMac OS X以前のMacはそれ以外全く触ったことありません。\nMac使っているというよりは\u003ca href=\"/dic/next/\"\u003eNeXT\u003c/a\u003eに復帰と言った方がいいのかも。\u003c/p\u003e\n"
  }, 
  {
    "title": "Markdown",
    "url": "https://www.ikemo3.com/dic/markdown/",
    "contents": "\u003ch2 id=\"markdownとは\"\u003eMarkdownとは\u003c/h2\u003e\n\u003cp\u003e簡易マークアップ言語の1つです。\nデファクトスタンダードになりつつあります。\u003c/p\u003e\n\u003ch2 id=\"方言がある\"\u003e方言がある\u003c/h2\u003e\n\u003cp\u003eオリジナルは\u003ca href=\"https://daringfireball.net/projects/markdown/\"\u003eDaring Fireball: Markdown\u003c/a\u003eですが、\nいくつかの方言があります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://michelf.ca/projects/php-markdown/extra/\"\u003ePHP Markdown Extra\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.github.com/gfm/\"\u003eGitHub Flavored Markdown Spec\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"このサイトもmarkdownで書かれている\"\u003eこのサイトもMarkdownで書かれている\u003c/h2\u003e\n\u003cp\u003eこのサイトは\u003ca href=\"/dic/hugo/\"\u003eHugo\u003c/a\u003eを使って構築しているのですが、\n記事の執筆にはMarkdownを使っています。\u003c/p\u003e\n\u003ch2 id=\"便利なツール\"\u003e便利なツール\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eエディタ \u0026amp; ビューア\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://typora.io/\"\u003eTypora\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://kobito.qiita.com/\"\u003eKobito\u003c/a\u003e→サポート終了だそうです\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://tatesuke.github.io/KanTanMarkdown/\"\u003eかんたんMarkdown\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/tatesuke/items/225b51b270faf8b10923\"\u003e完全に単一のHTMLファイルで動作するMarkdownエディタ作った - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eビューア\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaniswang/markdownReader\"\u003eMarkdownReader(Chrome拡張)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eその他\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://qiita.com/rohinomiya/items/55111e2b8e73b4542b89\"\u003e今見ているページのタイトルとURLをMarkdown形式で取得するブックマークレット - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://blog.qiita.com/post/168180042619/kobito-for-mac-windows%E3%81%AE%E6%8F%90%E4%BE%9B%E5%8F%8A%E3%81%B3%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%82%92%E7%B5%82%E4%BA%86%E3%81%97%E3%81%BE%E3%81%99\"\u003eKobito for Mac / Windowsの提供及びユーザーサポートを終了します - Qiita Blog\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Natural-Language",
    "url": "https://www.ikemo3.com/tags/natural-language/",
    "contents": ""
  }, 
  {
    "title": "Objective-C",
    "url": "https://www.ikemo3.com/dic/objective-c/",
    "contents": "\u003ch2 id=\"objective-cとは\"\u003eObjective-Cとは\u003c/h2\u003e\n\u003cp\u003eプログラミング言語の一種です。以下のような特徴を持ちます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eオブジェクト指向言語です。\u003c/li\u003e\n\u003cli\u003eC言語の拡張という意味ではC++と同じですが、拡張部分はC言語と全く異なります。\u003ca href=\"/dic/smalltalk/\"\u003eSmalltalk\u003c/a\u003e由来の\u003ccode\u003e[obj message]\u003c/code\u003eといった文法になります。\u003c/li\u003e\n\u003cli\u003eC++と異なり、多重継承を認めません。その代わりに、プロトコルという仕組みがあります。プロトコルはJavaのinterfaceと同じです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"超マイナーな言語から世界中で使われる言語に\"\u003e超マイナーな言語から世界中で使われる言語に\u003c/h2\u003e\n\u003cp\u003e自分がObjective-Cを知ったのは、もちろん\u003ca href=\"/dic/nextstep/\"\u003eNEXTSTEP\u003c/a\u003eですが、\n当時は超マイナー言語でした。C++も学んだのですが、\nC++がどうも好きになれない\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eので、\nなんでこんないい言語が\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e評価されないのかなぁとモヤモヤしてました。\u003c/p\u003e\n\u003cp\u003eでも、\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003eによる\u003ca href=\"/dic/next/\"\u003eNeXT\u003c/a\u003eの買収(\u003cdel\u003eNeXTによるAppleの乗っ取り\u003c/del\u003e)\nによって\u003ca href=\"/dic/osx/\"\u003eMac OS X\u003c/a\u003eの開発言語として復活し、\n\u003ca href=\"/dic/iphone/\"\u003eiPhone\u003c/a\u003eのヒットによって、世界中で使われるメジャーな言語になりました。\u003c/p\u003e\n\u003ch2 id=\"javaにも影響を与えた\"\u003eJavaにも影響を与えた\u003c/h2\u003e\n\u003cp\u003eObjective-Cの直系の子孫はAppleが開発したSwiftですが、傍系の子孫とも言えるのが、\u003ca href=\"/dic/java/\"\u003eJava\u003c/a\u003eです。\nJavaとObjective-Cは似ているところもあれば似てないところもありますが、C++よりは似ていると思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e似ている箇所\n\u003cul\u003e\n\u003cli\u003e多重継承を許さず、インターフェースによる継承\n\u003cul\u003e\n\u003cli\u003eObjective-Cではプロトコル、Javaではインターフェースを使用\u003c/li\u003e\n\u003cli\u003eC++では多重継承が可能です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eルートクラスの存在\n\u003cul\u003e\n\u003cli\u003eObjective-CではNSObject、JavaではObject\u003c/li\u003e\n\u003cli\u003eC++ではルートクラスが存在しません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e似ていない箇所\n\u003cul\u003e\n\u003cli\u003eObjective-Cでは\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%80%E3%83%83%E3%82%AF%E3%83%BB%E3%82%BF%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0\"\u003eダック・タイピング\u003c/a\u003eが可能だが、Javaでは不可能。\n\u003cul\u003e\n\u003cli\u003eJavaでも継承関係にかかわらず特定のメソッドを呼ぶことは可能なので、「インターフェースの定義や面倒な手続きをせずに任意のメソッドが呼び出せる」くらいの意味です。\u003c/li\u003e\n\u003cli\u003eダック・タイピングは柔軟で楽ですが、静的チェックが困難になる弱点もあるので、欠点ではないです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eObjective-Cでは既存クラスの拡張が可能だが(\u003ca href=\"https://ja.wikipedia.org/wiki/Objective-C#.E3.82.AB.E3.83.86.E3.82.B4.E3.83.AA\"\u003eカテゴリ\u003c/a\u003e)、Javaでは不可能。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eその後QtやKDEでC++に触りましたが、やっぱり無理という結論。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eもちろん当時の基準で、今はもっといい言語はたくさんあります。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "OmniFocus",
    "url": "https://www.ikemo3.com/dic/omnifocus/",
    "contents": "\u003ch2 id=\"omnifocusとは\"\u003eOmniFocusとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/the-omni-group/\"\u003eThe Omni Group\u003c/a\u003eが開発している、タスク管理ソフトです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.omnigroup.com/omnifocus\"\u003e公式サイト\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eマニュアル\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://support.omnigroup.com/documentation/omnifocus/mac/2.10/en/\"\u003e英語(2.10)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://support.omnigroup.com/documentation/omnifocus/mac/2.3/ja/\"\u003e日本語(2.3)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Usb",
    "url": "https://www.ikemo3.com/tags/usb/",
    "contents": ""
  }, 
  {
    "title": "USB Type-C",
    "url": "https://www.ikemo3.com/dic/usb-type-c/",
    "contents": "\u003ch2 id=\"usb-type-cとは\"\u003eUSB Type-Cとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/usb/\"\u003eUSB\u003c/a\u003eの規格の1つです。\u003c/p\u003e\n\u003ch2 id=\"参考サイト\"\u003e参考サイト\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://hanpenblog.com/\"\u003eHANPEN-BLOG\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e個人ブログですが、メーカーよりも信頼できます。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.amazon.co.jp/gp/profile/amzn1.account.AEHIU7KNRVUQNZD6EJR63SEGGMHQ/\"\u003eAmazonレビュー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e規格周り\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://hanpenblog.com/66/\"\u003eUSB Type-C(USB-C)の規格について調べた | HANPEN-BLOG\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://hanpenblog.com/3343/\"\u003eUSB Power Deliveryの規格について調べた | HANPEN-BLOG\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://hanpenblog.com/3508/\"\u003eThunderbolt 3とUSB Type-Cの関係性について調べた | HANPEN-BLOG\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e問題なさそうな製品\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://hanpenblog.com/7672/\"\u003echeero USB PD対応18W ACアダプタ レビュー | HANPEN-BLOG\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://hanpenblog.com/7230/\"\u003e【規格適合】AUKEY 25.5W 2ポート USB Type-C ACアダプタ レビュー | HANPEN-BLOG\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://hanpenblog.com/6698/\"\u003e【規格適合】Anker PowerPort+ 5 USB-C レビュー | HANPEN-BLOG\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://hanpenblog.com/5903/\"\u003e【規格適合】Anker PowerPort Speed 1 PD30 レビュー | HANPEN-BLOG\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://hanpenblog.com/4857/\"\u003eUSB Type-Cケーブルの56kΩ抵抗(56kレジスタ)とは | HANPEN-BLOG\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://hanpenblog.com/3971/\"\u003e目的別、安全な充電用USB Type-Cアクセサリ | HANPEN-BLOG\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/USB_Type-C\"\u003eWikipedia\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"高くても正規品を\"\u003e高くても正規品を\u003c/h2\u003e\n\u003cp\u003e自分が持っているのは正規認証品の\u003ca href=\"http://www2.elecom.co.jp/products/USB3-CC5P05NBK.html\"\u003eELECOM USB3-CC5P10NBK\u003c/a\u003e\nです。標準価格は高いですが、実売価格はかなり安くなってます(2017-08-14現在1,433円)。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01DIGU066/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B01DIGU066.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01DIGU066/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nエレコム USB-Cケーブル C-C 0.5m USB3.1Gen2 認証品 PD対応 5A出力 ブラック USB3-CC5P05NBK\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "Windows",
    "url": "https://www.ikemo3.com/dic/windows/",
    "contents": "\u003ch2 id=\"windowsとは\"\u003eWindowsとは\u003c/h2\u003e\n\u003cp\u003eMicrosoft社が出しているオペレーティング・システム(OS)です。\u003c/p\u003e\n\u003ch2 id=\"参考リンク\"\u003e参考リンク\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://freesoft.tvbok.com/tips/windows_update/monthly_troubles_list.html\"\u003e過去の「月例別」Windows Update 不具合対処方法まとめページ - ぼくんちのTV 別館\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e個人サイトですがよくまとまってます。定例アップデートを入れる前に必ずチェックしています。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://technet.microsoft.com/ja-jp/security/hh224643.aspx?f=255\u0026amp;MSPPError=-2147217396\"\u003eセキュリティ更新プログラム リリース スケジュール\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eWindows Updateのリリース予定。米国日付で毎月第二火曜日。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Microsoft/winfile\"\u003eMicrosoft/winfile: Original Windows File Manager (winfile) with enhancements\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eWindows NT 4.0で使われていたオリジナルのファイルマネージャ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"macユーザですがwindowsも持ってます\"\u003eMacユーザですがWindowsも持ってます\u003c/h2\u003e\n\u003cp\u003e2005年からメインは\u003ca href=\"/dic/mac/\"\u003eMac\u003c/a\u003eになりましたが、Windowsも持っています。\nしかもOEM版でなくパッケージ版です。\u003c/p\u003e\n\u003ch2 id=\"windowsアップデートに失敗する場合\"\u003eWindowsアップデートに失敗する場合\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://answers.microsoft.com/ja-jp/windows/forum/windows_10-update-winpc/windows-10-windows-update/a8a3a4cb-9d67-406e-8ae6-d25451c237d7\"\u003eWindows 10 - Windows Update に失敗する場合の対処法 - マイクロソフト コミュニティ\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWindows 10 Creators Updateだと方法1の画面が少し違っていて、以下のように操作します。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e「トラブルシューティング」で検索して、出た結果を開く\n\u003cul\u003e\n\u003cli\u003e設定(コントロールパネル)→更新とセキュリティ→トラブルシューティングの順にたどったものと同じです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWindows Updateを選択。以下トラブルシューティングツールの実行プログラムが動くので、画面の表示に従う。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eただ、自分の環境だとうまく行きませんでした(´・ω・｀)\u003c/p\u003e\n"
  }, 
  {
    "title": "ポストモダン",
    "url": "https://www.ikemo3.com/dic/post-modern/",
    "contents": "\u003ch2 id=\"ポストモダンとは\"\u003eポストモダンとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%83%9D%E3%82%B9%E3%83%88%E3%83%A2%E3%83%80%E3%83%B3\"\u003eWikipedia\u003c/a\u003eにはいろいろ定義があるようですが、自分の中では次のように捉えています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eプレモダン(前近代): 論理的でない\u003c/li\u003e\n\u003cli\u003eモダン(近代): 論理的である\u003c/li\u003e\n\u003cli\u003eポストモダン: 論理的であることは一部にすぎない\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eちょっと分かりにくいと思うので説明すると、\n近代以前は論理というものは重要視されていませんでした。\u003c/p\u003e\n\u003cp\u003eで、近代になると、論理的であることが重要視されました。\nそれは、科学技術の発展というプラスの面も大きいですが、\n「全てを論理的に分解すれば解決できる」という間違った考え方を\n持つ人が増えてしまったというマイナスの影響も大きいです。\u003c/p\u003e\n\u003cp\u003eポストモダンというのは、「◯◯すれば全て解決する」という\n枠組み自体が脆いものだと分かったために起きたものです。\u003c/p\u003e\n\u003ch2 id=\"分析から知覚へ\"\u003e分析から知覚へ\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eのイノベータの条件の\nPart4 3章「分析から知覚へ 二一世紀の社会と世界観」に以下の記述があります。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0084066JM/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0084066JM.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0084066JM/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nイノベーターの条件\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cblockquote\u003e\n\u003cp\u003e今日われわれの眼前にある新しい現実は、すべて形態的である。\nしたがって、それらの問題を扱うには、概念的な分析とともに\n知覚的な認識が不可欠である。新多元主義の不均衡状態、\nグローバル経済と地球的環境問題、緊急に提示することが求められている\n教育ある人間のモデルなど、すべてが形態的である。\nしたがって私は、読者に対し、考えるとともに見ることを求める。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e自分の考えはだいたいドラッカーの後追いなんですが、\n「分析＝論理的＝モダン」と解釈しています。\u003c/p\u003e\n\u003ch2 id=\"旧来の価値観プレモダンとは限らない\"\u003e旧来の価値観＝プレモダンとは限らない\u003c/h2\u003e\n\u003cp\u003eあまり理解されてないなと思うのが、\n近代以前の旧来の価値観に基づく価値観＝プレモダンとは限りません。\u003c/p\u003e\n\u003cp\u003e例えば、よくある「自然のままがいい」という考えが、\n「自然＝良い、人工＝悪い」という発想から出ているのなら、モダンの価値観に基づいています。\n「科学的＝良い、非科学的＝悪い」という分け方も同じです。\n何かを分けて考える発想そのものに囚われているなら、それはモダンの価値観です。\u003c/p\u003e\n\u003cp\u003e医者で言えば、エビデンス至上主義の医者がいたら、それはモダンの価値観、\nエビデンスは重視するが、目の前の患者のためを考えられる人なら、\nそれはポストモダンの価値観だと言えます。\u003c/p\u003e\n"
  }, 
  {
    "title": "英語",
    "url": "https://www.ikemo3.com/dic/english/",
    "contents": "\u003ch2 id=\"英語とは\"\u003e英語とは\u003c/h2\u003e\n\u003cp\u003eイギリスやアメリカなど、多くの国で使われている言葉です。\u003c/p\u003e\n\u003ch2 id=\"エンジニアで必要とされる英語力\"\u003eエンジニアで必要とされる英語力\u003c/h2\u003e\n\u003cp\u003e検索するといろいろなサイトが出てきますが、\n自分としては\u003cstrong\u003eリーディング力は必須、その他はプラスアルファ\u003c/strong\u003eだと考えています。\u003c/p\u003e\n\u003cp\u003eリーディング力が必須なのは、\u003cstrong\u003eドキュメントの多くは英語で書かれているから\u003c/strong\u003eです。\n自分の体感で1/10くらいのドキュメントしか日本語化されていません。\u003c/p\u003e\n\u003cp\u003e少なくともGoogle翻訳や英辞郎などのツールを使って、\nある程度は読めるようになるようになりましょう。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://translate.google.co.jp/\"\u003eGoogle 翻訳\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://eow.alc.co.jp/\"\u003e英辞郎 on the WEB\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"英語関連サイトサービス英語以外も含む\"\u003e英語関連サイト・サービス(英語以外も含む)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e英和時点・和英辞典\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://eow.alc.co.jp/\"\u003e英辞郎 on the WEB\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://ejje.weblio.jp/\"\u003e英和辞典・和英辞典 - Weblio辞書\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.linguee.jp/\"\u003eLinguee | 和英辞書 (およびその他の言語)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e翻訳\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://translate.google.co.jp/\"\u003eGoogle 翻訳\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.excite.co.jp/world/english/\"\u003e英語翻訳 - エキサイト翻訳\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e文法\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.getginger.jp/\"\u003eGinger 英文チェッカー\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e前置詞\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://portal.nifty.com/kiji/150214192769_1.htm\"\u003eチーズ across ハンバーグ - デイリーポータルZ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e語源\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://gogengo.me/\"\u003eGogengo! (ゴゲンゴ) - 英単語は語源でたのしく\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://bekkou68.hatenablog.com/entry/2014/10/16/211025\"\u003e個人サービス Gogengo! を運用して 5年経ったのでふりかえってみました - bekkou68 の日記\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eプログラマー向け\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://qiita.com/Ted-HM/items/7dde25dcffae4cdc7923\"\u003eプログラミングでよく使う英単語のまとめ【随時更新】 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/shikichee/items/a5f922a3ef3aa58a1839\"\u003eGitHubで使われている実用英語コメント集 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/itosho/items/9565c6ad2ffc24c09364\"\u003eGitのコミットメッセージの書き方 - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/uasi/items/86c3a09d17792ab62dfe\"\u003e英語のコメントや issue で頻出する略語の意味 (FYI, AFAIK, \u0026hellip;) - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://blog.koogawa.com/entry/2019/01/01/000000\"\u003eプログラミングに関する情報を英語でググるときのコツ - koogawa log\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://juffalow.com/other/write-good-git-commit-message\"\u003eWrite good git commit message | juffalow.com\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e研究者向け(自分は使わないけど)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://staff.aist.go.jp/a.ohta/japanese/study/Review_ex_top.htm\"\u003e英語論文の査読表現集\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e学習\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://mutuno.o.oo7.jp/\"\u003e英語上達完全マップ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "目の前で倒れている人を助けられるか",
    "url": "https://www.ikemo3.com/dic/can-you-help-the-person-who-fell-down/",
    "contents": "\u003ch2 id=\"目の前で倒れている人を助けられるかとは\"\u003e目の前で倒れている人を助けられるかとは\u003c/h2\u003e\n\u003cp\u003e自分が人を見極めるときに使う手法で、\nある見極めたい人Aがいて、Aの目の前に人が倒れたときに、\nAが助ける姿を想像できるかで判断することです。\u003c/p\u003e\n\u003cp\u003e思いっきり主観なので公言しませんが、\nだいたい人柄が想像できます。\u003c/p\u003e\n\u003cp\u003e注意すべきは、先入観を可能な限り排除する。\n「この人は嫌いだから目の前に人が倒れていても助けないはず」と思うようではダメです。\u003c/p\u003e\n\u003ch2 id=\"主なパターン\"\u003e主なパターン\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e助けられる人\n\u003cul\u003e\n\u003cli\u003e本心から助けようとする人\n\u003cul\u003e\n\u003cli\u003e普通の人。基本的には問題ありません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e演技で助けようとする人\n\u003cul\u003e\n\u003cli\u003e打算が働く人。問題ありそうに見えますが、案外問題ないです(道を踏み外さない)。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e助けられない人\n\u003cul\u003e\n\u003cli\u003e目の前に人が倒れていても、踏んづけて演説をしてそうな人\n\u003cul\u003e\n\u003cli\u003eヤバい人です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"目の前に人が倒れていても踏んづけて演説をしてそうな人\"\u003e目の前に人が倒れていても、踏んづけて演説をしてそうな人\u003c/h2\u003e\n\u003cp\u003eこの判断で人を見ているのは、\nその人が、主義主張より大事なものがあるかどうかです。\nそのために、目の前に人が倒れていたら、相手が誰だろうと助けられるかを想像しています。\u003c/p\u003e\n\u003ch2 id=\"行動よりも人柄\"\u003e行動よりも人柄\u003c/h2\u003e\n\u003cp\u003e\u0026ldquo;ORIGINALS\u0026rdquo; No.3348(Kindle)「PART6 「はみ出す人」こそ時代をつくる」に以下のような記述がありました。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e虐殺を救ったある人の言葉で、心に響くものを紹介しておく。\n「ある特定の宗教を選んだからといって、\nユダヤ人が迫害されるなんて理解できないし、許せません。\nユダヤ人を助けたのは、溺れる人を助けることと同じです。\n目の前で溺れている人を見て、\n\u0026ldquo;あなたはどの神さまを信じていますか?\u0026rdquo; なんて聞かないでしょう。\nそこへ行って助けるだけのことです」\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4837957684/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4837957684.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4837957684/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nORIGINALS 誰もが「人と違うこと」ができる時代 (単行本)\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "iTunesアフィリエイト",
    "url": "https://www.ikemo3.com/log/itunes-affiliate/",
    "contents": "\u003ch2 id=\"itunesアフィリエイト対応2017-08-13\"\u003eiTunesアフィリエイト対応(2017-08-13)\u003c/h2\u003e\n\u003cp\u003eiTunesアフィリエイト申し込んだらいつの間にか承認されていたようなので、\nshortcodeを使ってリンクを追加しました。\nAmazonと違って画像のURLに法則性がないので、そこだけ困るかなぁという程度。\u003c/p\u003e\n\u003ch2 id=\"誤クリックを減らすための変更\"\u003e誤クリックを減らすための変更\u003c/h2\u003e\n\u003cp\u003eiTunesアフィリエイトの対応してて気づいたのですが、\nAmazonのリンクが誤クリックしやすい構造だったので、以下の対応をしました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e画像とテキストリンクを個別のリンクに分割。\u003c/li\u003e\n\u003cli\u003e誤クリックしないように、画像のリンクに \u003ccode\u003estyle=\u0026quot;display: inline-block\u003c/code\u003e を追加。\u003c/li\u003e\n\u003cli\u003eこの変更により画像の後の改行がなくなるため \u003ccode\u003e\u0026lt;br\u0026gt;\u003c/code\u003e を追加。\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "イノベーションより破壊が好きな人",
    "url": "https://www.ikemo3.com/dic/people-who-prefer-destruction-to-innovation/",
    "contents": "\u003ch2 id=\"イノベーションより破壊が好きな人とは\"\u003eイノベーションより破壊が好きな人とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E7%A0%B4%E5%A3%8A%E7%9A%84%E6%8A%80%E8%A1%93\"\u003e破壊的技術\u003c/a\u003e、または破壊的イノベーションという単語を\n好んで使っている人を皮肉っている言葉です。\u003c/p\u003e\n\u003cp\u003e元の英単語は \u0026ldquo;disruptive\u0026rdquo; なので、\n「混乱を起こさせる」という意味もありますが、\n「イノベーションより混乱が好きな人」になるだけで、本質的には同じです。\u003c/p\u003e\n\u003ch2 id=\"イノベーションと企業家精神を読め\"\u003eイノベーションと企業家精神を読め\u003c/h2\u003e\n\u003cp\u003eイノベーションについては、1985にドラッカーが出した、\nイノベーションと企業家精神をまず読みましょう。\u003c/p\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAGLC/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAGLC.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAGLC/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集5 イノベーションと企業家精神\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478066507/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478066507.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478066507/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nイノベーションと企業家精神【エッセンシャル版】\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n\u003cp\u003e一番近い記述は、「産業構造の変化を知る第四の機会」の以下の記述でしょうか。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e産業構造の変化が起こっているとき、リーダー的な生産者や供給者は必ず\nといってよいほど市場の中でも成長しつつある分野の方を軽く見る。\n急速に陳腐化し、機能しなくなりつつある仕事の仕方にしがみつく。\nだが、それまで通用していた市場へのアプローチや組織や見方が正しいもので\nありつづけることはほとんどない。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"破壊的イノベーションは単なる誤訳か\"\u003e「破壊的イノベーション」は単なる誤訳か?\u003c/h2\u003e\n\u003cp\u003e以下のブログによれば、そもそも\u0026quot;Disruptive Innovation\u0026quot;を\n破壊的イノベーションと訳したのが間違いだった可能性を指摘しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://blogs.itmedia.co.jp/serial/2008/08/ibcs1-20df.html\"\u003eIBCSブロガーズミーティング備忘（その1）：インフラ投資ジャーナル/Infra Japan：オルタナティブ・ブログ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e例えば、「破壊的イノベーション」と訳されている\u0026quot;Disruptive Innovation\u0026quot;は、\n某米系経営誌の編集者の方によると、\nクリステンセンが伝えようとしている意味を汲み取るなら\n「突発的イノベーション」と訳した方がよいとのことです。\n「非連続的イノベーション」という訳語をあてがってもよいぐらいかも知れません。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこれならまだしっくり来ます。\u003c/p\u003e\n\u003cp\u003eしかしそもそも、「イノベーション」自体に非連続的なニュアンスが含まれています。\n「連続的なもの＝改善(カイゼン)」「非連続的なもの＝イノベーション」と\n使い分けたほうがまだ良いのではないでしょうか。\u003c/p\u003e\n"
  }, 
  {
    "title": "スティーブ・ジョブズ",
    "url": "https://www.ikemo3.com/dic/steve-jobs/",
    "contents": "\u003ch2 id=\"スティーブジョブズとは\"\u003eスティーブ・ジョブズとは\u003c/h2\u003e\n\u003cp\u003e説明は不要かと思いますが、\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003eの創業者の1人です。\u003c/p\u003e\n\u003ch2 id=\"カリグラフィー\"\u003eカリグラフィー\u003c/h2\u003e\n\u003cp\u003e個人的に好きなジョブズのエピソードは、\n\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%AA%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%83%BC\"\u003eカリグラフィー\u003c/a\u003eの面白さに魅了されたという件です。\nなぜなら、自分が高校の頃、よくフォントの本を読んでいたからです。\n大学に入って\u003ca href=\"/dic/nextstep/\"\u003eNEXTSTEP\u003c/a\u003eに触った時に魅了されたものはいくつもありますが、\nその一つがフォントです。\u003c/p\u003e\n"
  }, 
  {
    "title": "造語",
    "url": "https://www.ikemo3.com/tags/coinage/",
    "contents": "\u003ch2 id=\"このタグについて\"\u003eこのタグについて\u003c/h2\u003e\n\u003cp\u003e自分が考えた言葉についてまとめたものです。\u003c/p\u003e\n"
  }, 
  {
    "title": "毎日同じ服を着る",
    "url": "https://www.ikemo3.com/theme/productivity/wear-same-clothes-everyday/",
    "contents": "\u003ch2 id=\"毎日同じ服を着るとは\"\u003e毎日同じ服を着るとは\u003c/h2\u003e\n\u003cp\u003eその名の通り、毎日同じ服を着ることです。\n\u003ca href=\"/dic/steve-jobs/\"\u003eスティーブ・ジョブズ\u003c/a\u003eの黒いタートルネック + ジーンズが有名です。\u003c/p\u003e\n\u003ch2 id=\"毎日違う服を着つつ同じ効果を得る方法\"\u003e毎日違う服を着つつ同じ効果を得る方法\u003c/h2\u003e\n\u003cp\u003eこの方法のキモは「決断を減らす」なので、\n自分がやってる以下の方法でだいたい同じ効果が得られます。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e下に履くものを固定する。夏も冬もジーンズで、靴下は長いものを履いています。\u003c/li\u003e\n\u003cli\u003e洗濯した上着はクローゼットの右側に入れる。\u003c/li\u003e\n\u003cli\u003eその日に着る上着はクローゼットの左側から選ぶ。\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "Apache HTTP Server: 設定ファイルの読み込み",
    "url": "https://www.ikemo3.com/inverted/apache/config/",
    "contents": "\u003ch2 id=\"知りたいこと\"\u003e知りたいこと\u003c/h2\u003e\n\u003cp\u003eApache HTTP Server(以下単に\u0026quot;Apache\u0026quot;)において、\n設定がどの順番で読み込まれるかどうかです。\nCentOS 7.3(2017-08-11時点)のApache 2.4.6の場合について記載します。\u003c/p\u003e\n\u003ch2 id=\"参考サイト\"\u003e参考サイト\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://httpd.apache.org/docs/trunk/\"\u003eApache HTTP Server Documentation\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"調べた内容\"\u003e調べた内容\u003c/h2\u003e\n\u003ch3 id=\"メインの設定ファイルの場所\"\u003eメインの設定ファイルの場所\u003c/h3\u003e\n\u003cp\u003eまず、CentOS 7ではsystemdを使っていますが、\nこの設定ファイルは \u003ccode\u003e/usr/lib/systemd/system/httpd.service\u003c/code\u003e になります。\u003c/p\u003e\n\u003cp\u003eこのファイルに以下の2行が書かれています。\nEnvironmentFileが変数設定、ExecStartが起動コマンドとオプションです。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eEnvironmentFile=/etc/sysconfig/httpd\nExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e次に、\u003ccode\u003e/etc/sysconfig/httpd\u003c/code\u003e を見ると、\u003ccode\u003eOPTIONS\u003c/code\u003eの定義が入っていません。\nApacheでは\u003ccode\u003e-f\u003c/code\u003e オプションで設定ファイルの場所を指定できますが、\nこの指定がないということは、デフォルトの設定ファイルの場所が使われています。\u003c/p\u003e\n\u003cp\u003eでは、このデフォルトの設定ファイルの場所がどこかというと、コンパイル時に決まります\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThe main configuration file is usually called httpd.conf. The location of this file is set at compile-time, but may be overridden with the -f command line flag.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこれ以上は、CentOSのSRPMを見ないと分からないのですが、\n\u003ccode\u003e/etc/httpd/conf/httpd.conf\u003c/code\u003e が指定されている\n(もしくはデフォルトがそうなっている)ので間違いないでしょう。\u003c/p\u003e\n\u003ch3 id=\"その他の設定ファイルの読み込み\"\u003eその他の設定ファイルの読み込み\u003c/h3\u003e\n\u003cp\u003e実際には、\u003ccode\u003e/etc/httpd/conf.d/\u003c/code\u003e ディレクトリに置いたファイルも読み込まれます。\nこの設定ファイルの読み込みは、\u003ccode\u003e/etc/httpd/conf/httpd.conf\u003c/code\u003e の一番最後にある、\n以下の記述が該当します。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-apacheconf\" data-lang=\"apacheconf\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# Supplemental configuration\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e#\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# Load config files in the \u0026#34;/etc/httpd/conf.d\u0026#34; directory, if any.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eIncludeOptional conf.d/*.conf\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003ccode\u003eIncludeOptional conf.d/*.conf\u003c/code\u003eによって、他のファイルが読み込まれていることが分かります。\nワイルドカードが指定されていますが、以下のように、読み込みは\u003cstrong\u003eアルファベット順\u003c/strong\u003eになります\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eShell-style (fnmatch()) wildcard characters can be used in the filename or directory parts of the path to include several files at once, in alphabetical order.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://httpd.apache.org/docs/trunk/en/configuring.html\"\u003eConfiguration Files\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"http://httpd.apache.org/docs/trunk/en/mod/core.html#include\"\u003eIncludeの説明\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "NEXTSTEP",
    "url": "https://www.ikemo3.com/dic/nextstep/",
    "contents": "\u003ch2 id=\"nextstepとは\"\u003eNEXTSTEPとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/steve-jobs/\"\u003eスティーブ・ジョブズ\u003c/a\u003eが\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003eを辞めたあと立ち上げた、\n\u003ca href=\"/dic/next/\"\u003eNeXT社\u003c/a\u003eが作ったOSです。\u003c/p\u003e\n\u003ch2 id=\"商業的には成功しなかったが多大な影響をもたらした\"\u003e商業的には成功しなかったが、多大な影響をもたらした\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/next/\"\u003eNeXT\u003c/a\u003e自体は商業的には成功しませんでした。\nただ、\u003ca href=\"/dic/next/\"\u003eNeXT社\u003c/a\u003eは最終的に\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003eに買収され\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\n\u003ca href=\"/dic/osx/\"\u003eMac OS X\u003c/a\u003e(今の\u003ca href=\"/dic/macos/\"\u003emacOS\u003c/a\u003e)として生まれ変わりました。\nそして、\u003ca href=\"/dic/osx/\"\u003eMac OS X\u003c/a\u003eの技術は\u003ca href=\"/dic/iphone/\"\u003eiPhone\u003c/a\u003eやiPadに入っている\u003ca href=\"/dic/ios/\"\u003eiOS\u003c/a\u003eや、\ntvOS、watchOSにも使われたため、結果的には大成功だったかもしれません。\u003c/p\u003e\n\u003ch2 id=\"nextstepが与えた影響\"\u003eNEXTSTEPが与えた影響\u003c/h2\u003e\n\u003cp\u003e思いつく限り以下のものがあります。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/osx/\"\u003eMac OS X\u003c/a\u003e(\u003ca href=\"/dic/macos/\"\u003emacOS\u003c/a\u003e)に残っているもの\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://support.apple.com/kb/PH25709?viewlocale=ja_JP\u0026amp;locale=ja_JP\"\u003eDock\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://support.apple.com/kb/PH25241?viewlocale=ja_JP\u0026amp;locale=ja_JP\"\u003eサービス\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/Cocoa\"\u003eCocoa(API)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eアプリケーション(Mail.app, Terminal.appなど)\n\u003cul\u003e\n\u003cli\u003e拡張子の\u003ccode\u003e.app\u003c/code\u003eもNEXTSTEP由来です。\u003c/li\u003e\n\u003cli\u003eフォルダをファイルのように見せる\u003cstrong\u003eバンドル\u003c/strong\u003e機能もNEXTSTEP由来です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFinderのカラム表示\u003c/li\u003e\n\u003cli\u003e開発環境\n\u003cul\u003e\n\u003cli\u003eXcodeはNeXTのProject BuilderとInterface Builderから発展したソフトです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eNEXTSTEPそのものを真似たもの\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/GNUstep\"\u003eGNUstep\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e真似たというよりはフリーソフトウェア(自由なソフトウェア)によるNEXTSTEPの再実装と言ったほうがいいかもしれません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/Window_Maker\"\u003eWidow Maker\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/dic/linux/\"\u003eLinux\u003c/a\u003eなどのUnix-likeシステムで動くウィンドウマネージャです。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eしかし、一番大きいのは「これ」でしょう。「これ」というのは、World Wide Web(WWW)のことです。\nなぜなら、\u003ca href=\"https://ja.wikipedia.org/wiki/WorldWideWeb\"\u003e世界初のウェブブラウザ\u003c/a\u003eはNeXT上で書かれていました。\n\u003ca href=\"https://www.w3.org/People/Berners-Lee/WorldWideWeb.html\"\u003eW3CのWorldWideWebブラウザの紹介ページ\u003c/a\u003eの\nスクリーンショットがNEXTSTEPです。\u003c/p\u003e\n\u003ch2 id=\"きれいなフォント\"\u003eきれいなフォント\u003c/h2\u003e\n\u003cp\u003eNEXTSTEPの日本語フォントはモリサワを使っていて、表示がきれいでした。\nモリサワのフォントはかなり高いので、\nNEXTSTEPの値段のほとんどはフォントという冗談もあったくらいです。\u003c/p\u003e\n\u003cp\u003eOPENSTEPになって、フォントが\u003ca href=\"https://ja.wikipedia.org/wiki/%E5%B9%B3%E6%88%90%E6%9B%B8%E4%BD%93\"\u003e平成書体\u003c/a\u003eになって、汚くなったと不満でした\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e。\nでも\u003ca href=\"http://news.mynavi.jp/column/osxhack/005/\"\u003e新・OS X ハッキング! (5) 強力無比のターミナルエミュレータ「iTerm2」 | マイナビニュース\u003c/a\u003eに載っているNEXTSTEP 3.3Jのフォントを見ると、\n綺麗な感じでもないですね。それだけフォントに関する技術が進歩したのだと思います。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e技術的にはNeXTによるAppleの\u003cstrong\u003e乗っ取り\u003c/strong\u003eという見方をする人も多いです。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eほぼ\u003cstrong\u003e乗っ取り\u003c/strong\u003eなので、多くて当たり前ですが。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e今見ると綺麗なフォントなので、レンダリングの問題だったようです。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "漢方",
    "url": "https://www.ikemo3.com/dic/kampo/",
    "contents": "\u003ch2 id=\"漢方とは\"\u003e漢方とは\u003c/h2\u003e\n\u003cp\u003e元々は中国由来の医学で、日本で独自の展開を遂げた医学です。\n中国でその後展開されたものは\u003cstrong\u003e中医学\u003c/strong\u003eと呼ばれることが多いです。\u003c/p\u003e\n\u003ch2 id=\"漢方を知るには\"\u003e漢方を知るには\u003c/h2\u003e\n\u003cp\u003e漢方に関しては以下の本が一番信用できると思います。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00VAWOFT4/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00VAWOFT4.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00VAWOFT4/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nはじめての漢方医学　漢方治療と漢方薬のはなし\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e自分がこの本を一番信用しているのは、現代医学と漢方医学のバランス感覚が合っているからです。\u003c/p\u003e\n\u003cp\u003e例えば、「現代医学と同じように処方すればいい」と考えている医師もいます。\nしかし個人的には漢方医学を理解しようとしない人は好きではありません。\nとは言え、漢方べったりということもなく、現代医学で治療法が確立しているものは\nまずそれを受けましょうというスタンスです。\u003c/p\u003e\n\u003ch2 id=\"漢方薬はどれくらい有効なのか\"\u003e漢方薬はどれくらい有効なのか\u003c/h2\u003e\n\u003cp\u003e個人的な考えでは、漢方薬が効くかどうかは分かりません。\nでもそもそも、ほとんどの薬は効いたかどうか分からないです。\nはっきり「効いたな」と思うのは、インフルエンザのときに処方されたリレンザくらいです。\nもちろん、統計的には現代医学はもちろん、\n漢方薬についてもエビデンスがある\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eので、効いているはずですが。\u003c/p\u003e\n\u003cp\u003eでも漢方薬のいいところは、使いやすいところです。\n漢方薬を知る前は風邪薬を飲むと抗ヒスタミン薬のせいで眠くなるのにうんざりでしたが\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e、\n葛根湯をメインにしてから、眠気に悩まされることがなくなっています。\u003c/p\u003e\n\u003cp\u003e漢方薬にも副作用があるので安全とは断言できませんが、\n全体的には少ない方なのと、値段も安めなので、いくつか常備しておくといいと思います。\u003c/p\u003e\n\u003ch2 id=\"漢方用語\"\u003e漢方用語\u003c/h2\u003e\n\u003ch3 id=\"満量処方\"\u003e満量処方\u003c/h3\u003e\n\u003cp\u003e漢方薬には時折、「満量処方」と書かれたものがあります。\nこれは、漢方薬の処方には上限がありますが、\nその処方ギリギリまで詰め込んだものです。\u003c/p\u003e\n\u003cp\u003eその分効くことが予想されますが、必ずしも満量処方がよいとは限りません。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e体が弱いなど、効きすぎてしまう場合がある\u003c/li\u003e\n\u003cli\u003e他の漢方薬と併用できない\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.kracie.co.jp/soudanshitsu/qa/10115261_4569.html\"\u003eエキス量が「満量処方シリーズ」、「3/4量」、「1/2量」と書いたものがありますが、どのような違いがありますか ｜ お客様相談室 ｜ クラシエ\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eはじめての漢方医学にエビデンスが明らかになっている漢方薬の一覧が載っています。ただ、全ての漢方薬、あるいは全ての効能について調べられたわけではありません。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E6%8A%97%E3%83%92%E3%82%B9%E3%82%BF%E3%83%9F%E3%83%B3%E8%96%AC\"\u003e抗ヒスタミン薬\u003c/a\u003eのうち、第一世代は眠気がひどいですが、第二世代は眠気が緩和されています。\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%AD%E3%83%91%E3%82%BF%E3%82%B8%E3%83%B3\"\u003eオロパタジン\u003c/a\u003eを処方されていますが、眠気は全く感じません。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "InSpec",
    "url": "https://www.ikemo3.com/dic/inspec/",
    "contents": "\u003ch2 id=\"inspecとは\"\u003eInSpecとは\u003c/h2\u003e\n\u003cp\u003eサーバのテストを行うためのツールです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.inspec.io/\"\u003e公式サイト\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chef/inspec\"\u003eGitHub\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"serverspecとの違い\"\u003eServerspecとの違い\u003c/h2\u003e\n\u003cp\u003eサーバのテストを行うためのツールとしては、\n\u003ca href=\"http://serverspec.org/\"\u003eServerspec\u003c/a\u003eが有名です。\nInSpecが後発で、Serverspecにインスパイアされたと記載されています。\n(Kudos = 敬意を表する)\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eInSpec is inspired by the wonderful Serverspec project. Kudos to mizzy and all contributors!\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ca href=\"https://www.chef.io/blog/2015/11/04/the-road-to-inspec/\"\u003eThe Road to InSpec\u003c/a\u003eという記事もあります(\u003ca href=\"https://www.creationline.com/lab/12102\"\u003e和訳\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e自分は面白そうだったのでInSpecを使いましたが、\nServerspecと比べてると、InSpecはとっつきやすいです。\u003c/p\u003e\n\u003cp\u003eその理由は、InSpecが必要なのは\u003ca href=\"/dic/ruby/\"\u003eRuby\u003c/a\u003eの知識とインストール時のGemの知識だけで、\nRakefileとか、前提とする知識が少ないからです。\u003c/p\u003e\n\u003cp\u003eただ、ServerspecとInSpecで使えるリソースが微妙に異なっているので、\n代替にはならない感じですね。\u003c/p\u003e\n"
  }, 
  {
    "title": "JavaScript: あるセレクタを持つ要素全てを処理する",
    "url": "https://www.ikemo3.com/inverted/javascript/process-all-elements-with-a-certain-selector/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003eあるCSSセレクタを持つ要素に対して、全て処理をする場合のコードです。\u003c/p\u003e\n\u003ch2 id=\"必要なもの\"\u003e必要なもの\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCSSセレクタからNodeListを返すAPI: \u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/Document/querySelectorAll\"\u003edocument.querySelectorAll\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNodeListの各要素に対して処理するAPI: \u003ca href=\"https://developer.mozilla.org/ja/docs/Web/API/NodeList\"\u003eNodeList\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/for...of\"\u003efor\u0026hellip;of\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"制限事項\"\u003e制限事項\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003efor...of\u003c/code\u003eは\u003ca href=\"/dic/ie/\"\u003eIE\u003c/a\u003eでは未サポートのようです。\nIEをサポートする場合は、\u003ccode\u003eNodeList.length\u003c/code\u003e, \u003ccode\u003eNodeList.item()\u003c/code\u003eを使用してください。\u003c/p\u003e\n\u003ch2 id=\"コード例\"\u003eコード例\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003efunction\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclearCheckbox\u003c/span\u003e(){\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003echecks\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003equerySelectorAll\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;.sample-checkbox\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003efor\u003c/span\u003e(\u003cspan style=\"color:#66d9ef\"\u003evar\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003echeck\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eof\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003echecks\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003echeck\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003echecked\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003efalse\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e"
  }, 
  {
    "title": "奨学金",
    "url": "https://www.ikemo3.com/dic/scholarship/",
    "contents": "\u003ch2 id=\"奨学金とは\"\u003e奨学金とは\u003c/h2\u003e\n\u003cp\u003e成績が優秀だが、金銭的な問題で学校に行くのが困難な人に\nお金を与えたり、貸与するための制度です。\u003c/p\u003e\n\u003ch2 id=\"奨学金の話を見てて思ったこと\"\u003e奨学金の話を見てて思ったこと\u003c/h2\u003e\n\u003cp\u003e日本育英会(現在の\u003ca href=\"http://www.jasso.go.jp/\"\u003e日本学生支援機構\u003c/a\u003e)の奨学金を\n受けてて思ったんですが、自分なりに思ったことが4つあります。\u003c/p\u003e\n\u003ch3 id=\"第一種と第二種は分けて考えるべき\"\u003e第一種と第二種は分けて考えるべき\u003c/h3\u003e\n\u003cp\u003e自分は成績が良かったのもあって、第一種(無利子)が受けられました。\n無利子とはいえ返済義務があるので楽というほどではないですが、\n無職の時に返済延期できたので、負担感は少なかったです。\u003c/p\u003e\n\u003cp\u003e成績も悪く、大学に遊びに行くような人が\n第二種(有利子)を受けて返せないと嘆くのとは、\n一緒にされたくないなぁと思います\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch3 id=\"デフレは絶対悪\"\u003eデフレは絶対悪\u003c/h3\u003e\n\u003cp\u003e昔と奨学金の何が変わったかなぁと思ったんですが、\n一番大きいのは、デフレだと思います。\n同じ無利子でも年率4%のインフレなら、実質的に返済額は年々少なくなるのに対し、\n年率1%のデフレなら、実質的な返済額は年々増えてきます。\nなので、デフレは絶対悪です。\nインフレは良いとまで言えるかは分かりませんが、\nハイパーインフレでなければ、デフレよりはマシです。\n必要悪という感じですね。\u003c/p\u003e\n\u003ch3 id=\"twitterはクレクレ厨だらけ\"\u003eTwitterはクレクレ厨だらけ\u003c/h3\u003e\n\u003cp\u003e奨学金に限らず、お金の件をTwitterで見てて思ったのが、\n結局ほとんどみんな「自分は金を払いたくない、でも金は欲しい」クレクレ厨だなと。\u003c/p\u003e\n\u003cp\u003eこれが本当に貧乏で、生活に苦しい人なら分かります。\nそのための福祉ですから。\nアメリカは寄付文化で、NPOも盛んです。\n日本も昔の成功者は慈善事業に積極的なんですが、\n最近の小金持ち(元社長のような「元なんとか」)はお金に対する考え方が貧しくて、\n使い方もものすごく下手です。話になりません。\u003c/p\u003e\n\u003cp\u003e自分は昔、職を失ってつらい経験をしたため、福祉の大切さを感じています。\n自分がもし高所得者になれば、寄付や税金で、社会に還元していきたいと思います。\u003c/p\u003e\n\u003ch3 id=\"長期的には給付型奨学金が主流になる\"\u003e長期的には給付型奨学金が主流になる\u003c/h3\u003e\n\u003cp\u003eいつの間にか2017年に給付型奨学金が出来てましたが、\n多分今後はこちらが増えていくと思います。\nなぜなら、現代社会は「失敗したときのリスク」が高いからです。\u003c/p\u003e\n\u003cp\u003e昔ならいい大学を出たらいい企業に入れて、\nいい収入を得ることが容易だったのですが、\n今は少なくとも、昔より不確実性が増しています。\n不確実性を減らすためには、失敗したときのセーフティネットが必須です。\nセーフティネットの構築をNPOに任せるのも一つの案ですが、\n現状の日本では難しいため\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e、\n高負担高福祉の方向に進むのが現実的かなぁと思います。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eまあ、自分も遊びすぎて留年したのであまり言えませんが。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eNPOはドラッカーも推進してたので注目しているのですが、正直あまりイメージが良くないですね。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Nintendo Switch",
    "url": "https://www.ikemo3.com/dic/nintendo-switch/",
    "contents": "\u003ch2 id=\"nintendo-switchとは\"\u003eNintendo Switchとは\u003c/h2\u003e\n\u003cp\u003e任天堂から発売されている、家庭用ゲーム機です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.nintendo.co.jp/hardware/switch/specs/\"\u003e本体スペック\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e重さはJoy-Con取り付け時で約398g\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"品切れ続きようやく解消\"\u003e品切れ続き→ようやく解消\u003c/h2\u003e\n\u003cp\u003e個人的事情によりしばらく遊ぶ時間がなかったので、\n\u003ca href=\"/dic/splatoon/\"\u003eSplatoon 2\u003c/a\u003eが出るまでに買えればいいやと発売日は見送ったのですが、\nまさかの、「発売日が一番入手しやすかった」という事態に(ヽ´ω`)\u003c/p\u003e\n\u003cp\u003e当然プレミア価格で買う気はないので、\nいつでも買えるように32,400円を持ち歩いていたのですが、\n\u003ca href=\"/dic/fuji/\"\u003eフジグラン\u003c/a\u003e松山で偶然見つけて買えました。\u003c/p\u003e\n\u003cp\u003e品切れが続いていましたが、2017年12月に一気に出荷を増やし、\n2018年1月現在、\u003ca href=\"https://store.nintendo.co.jp/\"\u003eマイニンテンドーストア\u003c/a\u003eを含め、\n入手はそれほど難しくありません。\u003c/p\u003e\n\u003ch2 id=\"携帯モードがメイン\"\u003e携帯モードがメイン\u003c/h2\u003e\n\u003cp\u003e任天堂のプレゼン資料\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eによれば、TVモードメインが20%、\n携帯、テーブルモードメインが30%、両方でプレイが50%になっています。\u003c/p\u003e\n\u003cp\u003e自分はほとんど携帯、テーブルモードですね。\n個人的な事情があって、今はリビングにドックが置けないので。。。\u003c/p\u003e\n\u003cp\u003e携帯モードの需要が多いためか、\n同梱物を減らして、値段を下げた「2台目用セット」も出ました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://topics.nintendo.co.jp/c/article/3063da9b-5c8b-11e8-b311-063b7ac45a6d.html\"\u003e自分用のNintendo Switchはいかが？ マイニンテンドーストアに『Nintendo Switch 2台目用セット』が登場！ | トピックス | Nintendo\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e注意が必要なのは、これはACアダプタがついてないことです。\n二台同時に充電する場合は、以下の純正アダプタを買うか、\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01MY9I55F/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B01MY9I55F.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01MY9I55F/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nNintendo Switch ACアダプター\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e以下の\u003ca href=\"/dic/usb-type-c/\"\u003eUSB Type-C\u003c/a\u003e対応のACアダプタ + ケーブルを買うのがいいと思います。\u003c/p\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B071R6ZF41/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B071R6ZF41.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B071R6ZF41/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nAnker PowerPort Speed 1 PD30 (30W USB-C急速充電器)【折り畳み式プラグ/急速充電/Power Delivery】Galaxy S9, Xperia XZ1 その他USB-C機器対応\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01DIGU066/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B01DIGU066.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01DIGU066/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nエレコム USB-Cケーブル C-C 0.5m USB3.1Gen2 認証品 PD対応 5A出力 ブラック USB3-CC5P05NBK\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n\u003ch2 id=\"設定時の印象\"\u003e設定時の印象\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/nintendo-3ds/\"\u003e3DS\u003c/a\u003eのときはまだインターネット接続前提で開発されたハードではなく、\nWii Uのときはインターネット接続を前提としつつ、\nまだぎこちない印象がありましたが、\nNintendo Switchは「スマートフォンが当たり前」な時代に合わせています。\u003c/p\u003e\n\u003cp\u003e包装もシンプル。発泡スチロールなし。\n箱に起動方法が書かれていてわかりやすいです。\nあと、これまでは無線LANも2.4GHz帯のみ対応でしたが、\n5GHz帯も対応しているので、マンションでもつなぎやすいです。\u003c/p\u003e\n\u003ch2 id=\"usb-type-c\"\u003eUSB Type-C\u003c/h2\u003e\n\u003cp\u003e個人的に面白いと思ったのは、\u003ca href=\"/dic/usb-type-c/\"\u003eUSB Type-C\u003c/a\u003eの採用です。\nこれまでの任天堂ハードは枯れて安くなった技術を採用する傾向にあったのですが、\nUSB Type-Cはまだこれからの規格なので、思い切った事するなぁと思いました。\u003c/p\u003e\n\u003cp\u003eまあ、Wii U, 3DSのNFCやWiiのBluetoothも割りと早いなと思ったので、\n単にちょうど要件を満たせる規格があったから採用するだけかなとも思いますが。\u003c/p\u003e\n\u003ch2 id=\"コントローラが整理された\"\u003eコントローラが整理された\u003c/h2\u003e\n\u003cp\u003eWii Uのときはコントローラがチグハグでした。\nWii U GamePadはいいんですが、Proコントローラの存在意義が不明でした。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eスティックの場所が左右とも上部にあった。\u003c/li\u003e\n\u003cli\u003eジャイロ操作非対応\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eそのため、スマブラはゲームキューブ用のコントローラが使えるようになったり\u003csup id=\"fnref1:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\nSplatoonでジャイロ操作をするための裏技(公式)が出たりしました。\u003c/p\u003e\n\u003cblockquote class=\"twitter-tweet\"\u003e\u003cp lang=\"ja\" dir=\"ltr\"\u003eイカ研究所の研究員がとんでもない裏技を発見したそうだ。\u003cbr\u003e「バトルドージョー」のTV側のコントローラーにジャイロ機能を追加できるという技らしい。\u003cbr\u003eTV側のコントローラーを選ぶ画面で十字ボタン下+Bボタンを押しながら、ZR+ZLボタンだ。 \u003ca href=\"http://t.co/Kg4DC0jVPm\"\u003epic.twitter.com/Kg4DC0jVPm\u003c/a\u003e\u003c/p\u003e\u0026mdash; Splatoon（スプラトゥーン） (@SplatoonJP) \u003ca href=\"https://x.com/SplatoonJP/status/604503267293294593?ref_src=twsrc%5Etfw\"\u003eMay 30, 2015\u003c/a\u003e\u003c/blockquote\u003e\n\u003cscript async src=\"https://platform.x.com/widgets.js\" charset=\"utf-8\"\u003e\u003c/script\u003e\n\n\n\u003cp\u003eNintendo Switchではこの点が整理されたようです(Proコントローラは持ってませんが)。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eスティックの場所がゲームキューブやXbox系コントローラと同じになった。\u003c/li\u003e\n\u003cli\u003eジャイロ操作対応\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eJoy-ConのスティックはWii U GamePadと比べると少しだけ小さめなんで、\nTVモードでプレイするならProコントローラ欲しいなぁと思います。\nその分高めになってますが、住み分けがはっきりしてるのでいいと思います。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e2017年度第2四半期決算説明会の\u003ca href=\"https://www.nintendo.co.jp/ir/pdf/2017/171031_2.pdf\"\u003eプレゼンテーション資料\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref1:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Splatoon",
    "url": "https://www.ikemo3.com/dic/splatoon/",
    "contents": "\u003ch2 id=\"splatoonとは\"\u003eSplatoonとは\u003c/h2\u003e\n\u003cp\u003eWii Uで発売された、アクションシューティングゲームです。\n2は\u003ca href=\"/dic/nintendo-switch/\"\u003eNintendo Switch\u003c/a\u003eにプラットフォームが変わりました。\u003c/p\u003e\n\u003ch2 id=\"名前の由来\"\u003e名前の由来\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://dic.pixiv.net/a/splatoon#h3_14\"\u003epixivの記事\u003c/a\u003eより。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003esplat(ビショビショにする)+platoon(小隊)の合成語。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"一目惚れ\"\u003e一目惚れ\u003c/h2\u003e\n\u003cp\u003e2014年のE3の映像を見たときに、\nこれは歴史に残るゲームになると確信しました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.youtube.com/watch?v=dUl-iHKGgck\"\u003eSplatoon E3 2014 出展映像 - YouTube\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"その他\"\u003eその他\u003c/h2\u003e\n\u003cp\u003eまた思いついたときに書きます。。。\u003c/p\u003e\n"
  }, 
  {
    "title": "ゼルダの伝説 ブレス オブ ザ ワイルド",
    "url": "https://www.ikemo3.com/dic/zelda-botw/",
    "contents": "\u003ch2 id=\"ゼルダの伝説-ブレス-オブ-ザ-ワイルドとは\"\u003eゼルダの伝説 ブレス オブ ザ ワイルドとは\u003c/h2\u003e\n\u003cp\u003eWii Uおよび\u003ca href=\"/dic/nintendo-switch/\"\u003eNintendo Switch\u003c/a\u003eで発売されたゲームです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01N12HJHQ/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B01N12HJHQ.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B01N12HJHQ/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nゼルダの伝説 ブレス オブ ザ ワイルド\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e以下、このタイトルを \u0026ldquo;BotW\u0026rdquo; と略します。\u003c/p\u003e\n\u003ch2 id=\"プレイ状況\"\u003eプレイ状況\u003c/h2\u003e\n\u003cp\u003e感想の前にプレイ状況。\n2017-08-08にクリアしました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eプラットフォーム: Nintendo Switch(カード版)\u003c/li\u003e\n\u003cli\u003eプレイ時間: 120時間以上(マイページのプロフィールより)\u003c/li\u003e\n\u003cli\u003eマスターソード入手\u003c/li\u003e\n\u003cli\u003e神獣: 4つ全てクリア\u003c/li\u003e\n\u003cli\u003e祠: 75\u003c/li\u003e\n\u003cli\u003eコログ: 96\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"感想\"\u003e感想\u003c/h2\u003e\n\u003cp\u003eBotWは、3Dゼルダをこれまでまともにプレイできなかった自分が、\n初めてまともにクリア出来たゲームでした。\u003c/p\u003e\n\u003cp\u003e2Dゼルダは「神トラ」「神トラ2」をやりましたが、難易度もほどほどで、楽しめました。\nそれに比べて3Dゼルダは操作も謎解きも全体的に謎解きが高く、\nすぐに挫折してしまっていました。\u003c/p\u003e\n\u003cp\u003eでも、BotWは今のところ、楽しく遊べています。\nたぶんその理由は、以下の2つです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e自由度が高い\u003c/li\u003e\n\u003cli\u003e1度に必要な謎解きが少ない\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eまず、自由度の高さが大きい事が重要です。\n逆に言えば、「自分がやりたいけどゲームの都合上できないこと」はほとんどありません。\n思いつくのはこれくらいです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e村人を攻撃(やりたいとも思わないが)、\u003c/li\u003e\n\u003cli\u003e祠の中の壁を登る(空を飛んでクリアすることは可能)\u003c/li\u003e\n\u003cli\u003eマップの端で行けない場所がある\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eもう一つ重要なのは、1度に必要な謎解きが少ないことです。\n謎解きは大きく分けると祠と神獣がありますが、\n祠は悩まなければ1つ数分でクリアできます。\n神獣は1時間くらいかかりますが、ちょっとだけ攻略して後回しにすることも可能です。\u003c/p\u003e\n\u003ch2 id=\"プレイせずに死ねるかレベルの名作\"\u003eプレイせずに死ねるかレベルの名作\u003c/h2\u003e\n\u003cp\u003eゲームの歴史が「BotW以前」「BotW以後」に\n分けられるんじゃないかなぁと思うレベルの名作です。\n逆に、これだけレベルが高いと次作れるんだろうか心配です。\u003c/p\u003e\n"
  }, 
  {
    "title": "アンチパターン",
    "url": "https://www.ikemo3.com/dic/anti-pattern/",
    "contents": "\u003ch2 id=\"アンチパターンとは\"\u003eアンチパターンとは\u003c/h2\u003e\n\u003cp\u003eプログラミングにおける用語に「デザインパターン」というのがあります。\nデザインパターンは「良い方法」を分類したものですが、\nアンチパターンは逆に「悪い方法」を分類したものです。\u003c/p\u003e\n\u003cp\u003eアンチパターンの本はいくつかありますが、\n自分はSQLアンチパターンという本を持っています。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4873115892/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4873115892.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4873115892/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nSQLアンチパターン\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eただ、パターンにしてもアンチパターンにしても、\n書いてあることをよく理解してから使う必要があります。\u003c/p\u003e\n"
  }, 
  {
    "title": "フィードリーダー(RSSリーダー)",
    "url": "https://www.ikemo3.com/dic/feed-reader/",
    "contents": "\u003ch2 id=\"フィードリーダーとは\"\u003eフィードリーダーとは\u003c/h2\u003e\n\u003cp\u003eフィードを読むためのものです。\u003c/p\u003e\n\u003ch2 id=\"フィードとは\"\u003eフィードとは\u003c/h2\u003e\n\u003cp\u003eフィードとは、更新時刻、タイトル、概要などをまとめたものです。\n標準化された規格があるため、\nその規格に沿っていれば、どのソフトでも読むことができます。\u003c/p\u003e\n\u003cp\u003e主な規格は以下の3つです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRSS 1.0(RDFベース)\u003c/li\u003e\n\u003cli\u003eRSS 2.0\u003c/li\u003e\n\u003cli\u003eAtom\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"個人的に使用しているrssリーダ\"\u003e個人的に使用しているRSSリーダ\u003c/h2\u003e\n\u003cp\u003eMac、iPhoneともにReederというアプリを使っています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://itunes.apple.com/jp/app/id697846300\"\u003eReeder 3\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://itunes.apple.com/jp/app/id880001334\"\u003eReeder 3(Mac)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"rss以前はどうだったか\"\u003eRSS以前はどうだったか\u003c/h2\u003e\n\u003cp\u003e自分が知る限り、以下の2つが有名でした。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.nakka.com/wwwc/\"\u003eWWWC\u003c/a\u003eを使ったチェック\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://wiki.suikawiki.org/n/hina-di\"\u003eHINA-DI\u003c/a\u003eやLIRSのような、日本独自のフォーマットによる更新チェック\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e後者はアンテナ文化圏というものがあって書くと長くなるのですが、\nこの本がおすすめです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4798106577/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4798106577.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4798106577/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n教科書には載らないニッポンのインターネットの歴史教科書\n\u003c/a\u003e\n\u003c/div\u003e\n\n"
  }, 
  {
    "title": "予期せぬ成功",
    "url": "https://www.ikemo3.com/dic/unexpected-success/",
    "contents": "\u003ch2 id=\"予期せぬ成功とは\"\u003e予期せぬ成功とは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eの著書「イノベーションと企業家精神」に書かれている、\nイノベーションの\u003cstrong\u003e第一の機会\u003c/strong\u003eです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAGLC/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAGLC.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAGLC/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集5 イノベーションと企業家精神\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eウェブでは概要が\u003ca href=\"http://www.iot.ac.jp/manu/ueda/column/070331.html\"\u003eここ\u003c/a\u003eに書かれています。\u003c/p\u003e\n\u003ch2 id=\"最も重要だが無視される\"\u003e最も重要だが、無視される\u003c/h2\u003e\n\u003cp\u003e第一の機会と書かれているため、ドラッカーが最も重視したのは間違いありません。\nしかしドラッカーは以下のように「存在さえ否定される」と書いています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e予期せぬ成功ほど、イノベーションの機会となるものはない。これほどリスクが小さく苦労の少ないイノベーションはない。しかるに\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e予期せぬ成功はほとんど無視される。困ったことには存在さえ否定される。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこれを見たとき「面白い」と思いました。\nなぜなら、この機会を見つけるために必要なのはただ一つ、\n謙虚に物事を捉えることだけです。\nしかし、それが一番出来てないと言われています。\u003c/p\u003e\n\u003cp\u003e逆に言えば、謙虚になるだけで、他の人より何歩も先にすすめるなぁと思い、\nワクワクしました。もちろん謙虚になるのは簡単なことではないですが、\n少なくともこれを知っているのと知らないのでは心構えが異なります。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eしかるに＝それなのに\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "よるほー",
    "url": "https://www.ikemo3.com/dic/yoruho/",
    "contents": "\u003ch2 id=\"よるほーとは\"\u003eよるほーとは\u003c/h2\u003e\n\u003cp\u003eちょうど00:00:00に\u003ca href=\"/dic/twitter/\"\u003eTwitter\u003c/a\u003eで「よるほー」とつぶやく、一種のゲームです。\u003c/p\u003e\n\u003ch2 id=\"時系列\"\u003e時系列\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e2009年10月23日: botを稼働\u003c/li\u003e\n\u003cli\u003e2011年3月11日〜2011年3月21日: 東日本大震災のために一時停止\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003e2012年10月23日: botを停止\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"よるほーbot以前\"\u003eよるほーbot以前\u003c/h2\u003e\n\u003cp\u003eよるほーbotが稼働を開始したのは2009年10月23日でしたが、\nそれ以前にも、深夜0時に「よるほー」「夜ほーほー」とつぶやく習慣はありました。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://d.hatena.ne.jp/mirupreza/20080919\"\u003e2008-09-19 - ついったの会話まとめ みるたん物置（跡地？）\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://twitter.g.hatena.ne.jp/TakamiChie/20090718/1247929501\"\u003e7/19 夜なんちゃら - 高見知英のTwitterめも - はてなグループ::ついったー部\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://web.archive.org/web/20100211144837/http://shogizuki.com/nextstep/2009/12/%E3%82%88%E3%82%8B%E3%81%BB%E3%83%BCbot%E4%BD%9C%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F.html\"\u003eよるほーbot作りました « From NeXT To Mac\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e自分の記事のアーカイブ\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"よるほーbotを作ったきっかけ\"\u003eよるほーbotを作ったきっかけ\u003c/h2\u003e\n\u003cp\u003e自分のフォロワーの人が毎日「よるほー」と言ってたのが気になって、\n驚かせてやろうと思って\u003ca href=\"/dic/twitter/\"\u003eTwitter\u003c/a\u003eのBotを作ったのがきっかけです。\nそれが2009年10月23日のこれです。\u003c/p\u003e\n\u003cblockquote class=\"twitter-tweet\"\u003e\u003cp lang=\"ja\" dir=\"ltr\"\u003e\u003ca href=\"https://x.com/nekomimy?ref_src=twsrc%5Etfw\"\u003e@nekomimy\u003c/a\u003e さんよるほーピッタリ賞です。おめでとうございます。 1回目。\u003c/p\u003e\u0026mdash; よるほーbot (@yoruho) \u003ca href=\"https://x.com/yoruho/status/5071127740?ref_src=twsrc%5Etfw\"\u003eOctober 22, 2009\u003c/a\u003e\u003c/blockquote\u003e\n\u003cscript async src=\"https://platform.x.com/widgets.js\" charset=\"utf-8\"\u003e\u003c/script\u003e\n\n\n\u003cp\u003eその後ランキングとか、10回ごとの副賞(ネタ)を作ったりしてました。\n東日本大震災の時期に中断してた以外は毎日行ってましたが、\n3年を区切りに終了しました。\u003c/p\u003e\n\u003ch2 id=\"よるほーから派生したほー\"\u003eよるほーから派生した(?)「◯◯ほー」\u003c/h2\u003e\n\u003cp\u003e本当に派生したかどうかは分かりませんが、\n野球ファンの人間で「◯◯ほー」というつぶやきがいつの間にか定着してました。\n阪神タイガースファンなら「とらほー」とか。\u003c/p\u003e\n\u003cp\u003e一部のサイトではよるほーとは別と書かれていますが(意味は別なのは間違ってない)、\nよるほーに影響を受けたというのは間違いなさそうです。\u003c/p\u003e\n\u003cblockquote class=\"twitter-tweet\"\u003e\u003cp lang=\"ja\" dir=\"ltr\"\u003e\u003ca href=\"https://x.com/ucchanT?ref_src=twsrc%5Etfw\"\u003e@ucchanT\u003c/a\u003e とらほー！広めた一部中の人です。8時のやっほー、12時のよるほーなどに対抗して阪神勝利の瞬間を皆で共有し、TLをとらほーで埋めよう！というほんの数ヶ月前に始めたばかりの活動です！ \u003ca href=\"https://x.com/hashtag/toraho?src=hash\u0026amp;ref_src=twsrc%5Etfw\"\u003e#toraho\u003c/a\u003e \u003ca href=\"https://x.com/hashtag/hanshin?src=hash\u0026amp;ref_src=twsrc%5Etfw\"\u003e#hanshin\u003c/a\u003e\u003c/p\u003e\u0026mdash; 浜田将稔| アイエスエフネットCTO (@Hama_isfnet) \u003ca href=\"https://x.com/Hama_isfnet/status/22493860934?ref_src=twsrc%5Etfw\"\u003eAugust 30, 2010\u003c/a\u003e\u003c/blockquote\u003e\n\u003cscript async src=\"https://platform.x.com/widgets.js\" charset=\"utf-8\"\u003e\u003c/script\u003e\n\n\n\u003cp\u003eネット(\u003ca href=\"/dic/twitter/\"\u003eTwitter\u003c/a\u003e)だけとはいえ、かなり定着してて、\nちょっと複雑な気分です(悪い意味ではない)。\u003c/p\u003e\n\u003cp\u003eこの方のツイートがとらほーの起源っぽいですね。\u003c/p\u003e\n\u003cp\u003e\u003cblockquote class=\"twitter-tweet\"\u003e\u003cp lang=\"ja\" dir=\"ltr\"\u003eとらほー \u003ca href=\"https://x.com/hashtag/hanshin?src=hash\u0026amp;ref_src=twsrc%5Etfw\"\u003e#hanshin\u003c/a\u003e\u003c/p\u003e\u0026mdash; JOE (@JOE1919) \u003ca href=\"https://x.com/JOE1919/status/11473501316?ref_src=twsrc%5Etfw\"\u003eApril 2, 2010\u003c/a\u003e\u003c/blockquote\u003e\n\u003cscript async src=\"https://platform.x.com/widgets.js\" charset=\"utf-8\"\u003e\u003c/script\u003e\n\n\n\u003cblockquote class=\"twitter-tweet\"\u003e\u003cp lang=\"ja\" dir=\"ltr\"\u003e今度からタイガースが勝ったら「とらほー」とつぶやこうかと思う \u003ca href=\"https://x.com/hashtag/hanshin?src=hash\u0026amp;ref_src=twsrc%5Etfw\"\u003e#hanshin\u003c/a\u003e\u003c/p\u003e\u0026mdash; JOE (@JOE1919) \u003ca href=\"https://x.com/JOE1919/status/11483702551?ref_src=twsrc%5Etfw\"\u003eApril 2, 2010\u003c/a\u003e\u003c/blockquote\u003e\n\u003cscript async src=\"https://platform.x.com/widgets.js\" charset=\"utf-8\"\u003e\u003c/script\u003e\n\n\n\u003cblockquote class=\"twitter-tweet\"\u003e\u003cp lang=\"ja\" dir=\"ltr\"\u003e\u003ca href=\"https://x.com/moviebuff7?ref_src=twsrc%5Etfw\"\u003e@moviebuff7\u003c/a\u003e 今年の4月2日に私が思いついたんですが。。阪神勝った夜に「よるほー」に引っかけて「とらほー」とつぶやこうと呼びかけたら意外と流行りだした感じで今に至っとりますｗｗ\u003c/p\u003e\u0026mdash; JOE (@JOE1919) \u003ca href=\"https://x.com/JOE1919/status/22609807994?ref_src=twsrc%5Etfw\"\u003eAugust 31, 2010\u003c/a\u003e\u003c/blockquote\u003e\n\u003cscript async src=\"https://platform.x.com/widgets.js\" charset=\"utf-8\"\u003e\u003c/script\u003e\n\n\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e重要な情報が埋まるのを避けたいのと、被災して参加できない人との不公平感をなくすためです。「不謹慎だから」という理由はありません(それ言ったら何もできなくなるので)。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "流れるようなインタフェース",
    "url": "https://www.ikemo3.com/dic/fluent-interface/",
    "contents": "\u003ch2 id=\"流れるようなインタフェースとは\"\u003e流れるようなインタフェースとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/java/\"\u003eJava\u003c/a\u003eと相性がいい、使いやすいAPIのことです。\u003c/p\u003e\n\u003ch2 id=\"使う側に優しい\"\u003e使う側に優しい\u003c/h2\u003e\n\u003cp\u003e自分がよく使っているライブラリに\u003ca href=\"/dic/assertj/\"\u003eAssertJ\u003c/a\u003eと\u003ca href=\"http://dbsetup.ninja-squad.com/\"\u003eDbSetup\u003c/a\u003eがありますが、\n両方とも流れるようなインタフェースです。\nこれがなぜ良いのかというと、Javaとの相性がいいからです。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/dic/eclipse/\"\u003eEclipse\u003c/a\u003eなどのIDEを使うと、そのオブジェクトが持っているメソッドを補完してくれます。\nもちろんAPIごとに違うので慣れが必要ですが。\nあと、冗長になりがちなJavaのコードが、\n流れるようなインタフェースを使うと、読みやすくなります。\u003c/p\u003e\n\u003ch2 id=\"作るのは大変\"\u003e作るのは大変\u003c/h2\u003e\n\u003cp\u003eしかし、作るのは結構たいへんです。\nなぜならちゃんと作ろうとすると、文法の文脈ごとにクラスが必要なので、\n必然的にクラスが増えるからです。\u003c/p\u003e\n"
  }, 
  {
    "title": "Ansible: 相対パスでシンボリックリンクを作成する方法",
    "url": "https://www.ikemo3.com/inverted/ansible/create-relative-symbolic-link/",
    "contents": "\u003ch2 id=\"やりたいこと\"\u003eやりたいこと\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/ansible/\"\u003eAnsible\u003c/a\u003eでシンボリックを使うにはfileモジュールを使いますが、\nシンボリックリンクを相対パスにしたい場合の方法です。\u003c/p\u003e\n\u003ch2 id=\"設定方法\"\u003e設定方法\u003c/h2\u003e\n\u003cp\u003e以下のように、destに絶対パス、srcに相対パスを指定してください。\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# /etc/resolv.conf のシンボリックリンクとして、/etc/ansible/resolve.conf.linkを作成する例(特に意味はない)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003efile\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003estate\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003elink\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003esrc\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e../resolv.conf\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003edest\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e/etc/ansible/resolv.conf.link\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"根拠\"\u003e根拠\u003c/h2\u003e\n\u003cp\u003eAnsibleの\u003ca href=\"https://docs.ansible.com/ansible/latest/file_module.html\"\u003efileモジュール\u003c/a\u003eの \u003ccode\u003esrc\u003c/code\u003e の説明に以下のように記載されています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003epath of the file to link to (applies only to state=link).\nWill accept absolute, relative and nonexisting paths. Relative paths are not expanded.\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "Let's Encrypt",
    "url": "https://www.ikemo3.com/dic/letsencrypt/",
    "contents": "\u003ch2 id=\"lets-encryptとは\"\u003eLet\u0026rsquo;s Encryptとは\u003c/h2\u003e\n\u003cp\u003eSSL/TLSの証明書の認証局で、以下のような特徴を持ちます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e無料で自由に利用できる。\u003c/li\u003e\n\u003cli\u003e自動で証明書が発行できる。\n\u003cul\u003e\n\u003cli\u003eあくまで認証プロセスが自動化されているだけで、勝手にどんなドメインの証明書も発行できるわけではありません。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e対応しているのはドメイン認証のみ。\n\u003cul\u003e\n\u003cli\u003e自動で発行できるため、企業認証やEV認証には非対応です。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"一週間の発行数に制限がある\"\u003e一週間の発行数に制限がある\u003c/h2\u003e\n\u003cp\u003eむやみに発行しないようにしましょう。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://letsencrypt.org/docs/rate-limits/\"\u003eRate Limits - Let\u0026rsquo;s Encrypt - Free SSL/TLS Certificates\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
  }, 
  {
    "title": "Maven",
    "url": "https://www.ikemo3.com/dic/maven/",
    "contents": "\u003ch2 id=\"mavenとは\"\u003eMavenとは\u003c/h2\u003e\n\u003cp\u003eビルド自動化ツールです。\u003c/p\u003e\n\u003ch2 id=\"役立つサイト\"\u003e役立つサイト\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eリポジトリ\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://search.maven.org/\"\u003eThe Central Repository(公式)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://bintray.com/bintray/jcenter\"\u003eBintray jcenter - Maven, Gradle, Ivy, SBT, Groovy, Clojure central repository\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e検索サイト\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://mvnrepository.com/\"\u003eMaven Repository\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"アーキタイプとは\"\u003eアーキタイプとは\u003c/h2\u003e\n\u003cp\u003earchetypeは「原型」という単語です。\nテンプレートみたいなものです。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://maven.apache.org/guides/introduction/introduction-to-archetypes.html\"\u003eMaven – Introduction to Archetypes\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIn short, Archetype is a Maven project templating toolkit.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"mojoとは\"\u003eMojoとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://maven.apache.org/general.html#What_is_a_Mojo\"\u003eWhat is a Mojo?\u003c/a\u003eより。Maven用のPOJOですね。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eA mojo is a Maven plain Old Java Object.\nEach mojo is an executable goal in Maven,\nand a Maven plugin is a distribution of one or more related mojos.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"pluginとextensionの違い\"\u003ePluginとExtensionの違い\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://maven.apache.org/pom.html#Extensions\"\u003eExtensions\u003c/a\u003eより。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIn short, extensions are artifacts that activated during build.\nThe extensions do not have to actually do anything nor contain a Mojo.\nFor this reason, extensions are excellent for specifying one\nout of multiple implementations of a common plugin interface.\u003c/p\u003e\n\u003c/blockquote\u003e\n"
  }, 
  {
    "title": "Ssl",
    "url": "https://www.ikemo3.com/tags/ssl/",
    "contents": ""
  }, 
  {
    "title": "なぜ新しいサイトを作ろうと思ったのか",
    "url": "https://www.ikemo3.com/theme/knowledge-management/why-i-decided-to-create-a-new-site/",
    "contents": "\u003ch2 id=\"markdownを使いたい\"\u003eMarkdownを使いたい\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e技術系の記事を検索する時に、Qiitaを参照することが多いなと気づいた。\u003c/li\u003e\n\u003cli\u003eQiitaで使われているマークアップ言語ということで、Markdownを知った。\u003c/li\u003e\n\u003cli\u003eMarkdownを調べていると、おそらくこれからデファクトスタンダードになるだろうと確信した。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"技術記事を何とかしたい\"\u003e技術記事を何とかしたい\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e仕事術の見直しをすすめる中で、Evernoteに溜まってた資料が腐っているのをなんとかしたいと思った。\u003c/li\u003e\n\u003cli\u003eいろいろ試行錯誤した結果、\u003ca href=\"https://esa.io\"\u003eesa\u003c/a\u003eに集めることにした。\u003c/li\u003e\n\u003cli\u003e200件ほど記事が溜まってきたが、見通しが悪くなってきたので、整理方法を考えてた。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"考えていることを何とかしたい\"\u003e考えていることを何とかしたい\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e「考えていることを書きたい」と思ってWorkFlowyを使い始めた。\u003c/li\u003e\n\u003cli\u003eしかし、アウトライナーという形はドラフトの段階ではいいが、最終的には文章にならないといけないと思った。\u003c/li\u003e\n\u003cli\u003eよって、アウトプット先を必要としていた。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"ブログを何とかしたい\"\u003eブログを何とかしたい\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eBloggerでブログがあったが、放置中だった。\u003c/li\u003e\n\u003cli\u003ehttpsにしようと思ったが、Bloggerでは独自ドメインのhttps対応はサポートされていなかった。\u003c/li\u003e\n\u003cli\u003eGoogleのやる気がなさそうなので、Bloggerを止めて他のツールに乗り換えることにした。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"ブログという形が気にいらなかった\"\u003eブログという形が気にいらなかった。\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e1記事1テーマが良いとされているが、正確に書きたいという欲求を満たせない。\u003c/li\u003e\n\u003cli\u003e両方を満たすためには、細かい用語の定義などは、別ページにすればいいのではと気づいた。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"hugoに決めた理由\"\u003eHugoに決めた理由\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eMarkdownで書きたかった。\u003c/li\u003e\n\u003cli\u003eBloggerはMarkdownサポートしてなくて、サードパーティのツールを使うのもどうかと思ったので悩んでた。\u003c/li\u003e\n\u003cli\u003eいろいろ調べた結果、static site generatorというものに行き着いた。\u003c/li\u003e\n\u003cli\u003e最初はJekyllを試していたが、collectionsの仕様がしっくり来なかったり、いろいろあって止めた。\u003c/li\u003e\n\u003cli\u003eそれでHugoを試したけど、思った以上にしっくり来る仕様なので、そのまま採用した。\u003c/li\u003e\n\u003c/ol\u003e\n"
  }, 
  {
    "title": "フィネガンズ・ウェイク",
    "url": "https://www.ikemo3.com/dic/finnegans-wake/",
    "contents": "\u003ch2 id=\"フィネガンズウェイクとは\"\u003eフィネガンズ・ウェイクとは\u003c/h2\u003e\n\u003cp\u003eジェイムズ・ジョイスの小説です。\u003c/p\u003e\n\u003ch2 id=\"読めない本\"\u003e読めない本\u003c/h2\u003e\n\u003cp\u003e現在はパブリック・ドメインになっているので、\nWebで読めます(\u003ca href=\"https://finwake.com/\"\u003eここ\u003c/a\u003eとか)が、\nこの本は読めません。先頭がこれ。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eriverrun, past Eve and Adam\u0026rsquo;s, from swerve of shore to bend\nof bay, brings us by a commodius vicus of recirculation back to\nHowth Castle and Environs.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e英語っぽい感じの文章ですが、読めません。\u003c/p\u003e\n\u003ch2 id=\"翻訳されているけど読めない\"\u003e翻訳されているけど読めない\u003c/h2\u003e\n\u003cp\u003eこの本が面白いのは、日本語訳があることです。\n特に有名なのが、柳瀬尚紀氏による翻訳。\u003c/p\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4309462340/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4309462340.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4309462340/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nフィネガンズ・ウェイク 1 (河出文庫)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4309462359/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4309462359.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4309462359/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nフィネガンズ・ウェイク 2 (河出文庫)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4309462367/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4309462367.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4309462367/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nフィネガンズ・ウェイク 3・4 (河出文庫)\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n\u003cp\u003eこの翻訳によれば、先頭は以下のように訳されています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e川走、イブとアダム礼盃亭を過ぎ、く寝る岸辺から輪ん曲する湾へ、今も度失せぬ巡り路を媚行し、巡り戻るは栄知四囲委蛇たるホウス城とその周円。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eこれだけだと分からないので、ルビを付けてみます。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e川走(せんそう)、イブとアダム礼盃亭(れいはいてい)を過(す)ぎ、く寝(ね)る岸辺(きしべ)から輪(わ)ん曲(きょく)する湾(わん)へ、今(こん)も度(ど)失(う)せぬ巡(めぐ)り路(みち)を媚行(びこう)し、巡(めぐ)り戻(もど)るは栄知四囲委蛇(えいちしいいい)たるホウス城(じょう)とその周円(しゅうえん)。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e全然わかりません。ただ、「riverrun」が「川走」と対応していて、「commodius」が「今も度失せぬ」のように、音も訳しているんだなとは何となくつかめます。\u003c/p\u003e\n\u003ch2 id=\"良いのか分からないのが良い\"\u003e良いのか分からないのが良い\u003c/h2\u003e\n\u003cp\u003eこの通り、全く読めない本です。\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%82%AF%E3%82%A9%E3%83%BC%E3%82%AF\"\u003eクォーク\u003c/a\u003eという名称がこの本から出たらしいですが、どこに書かれているか想像もできません。良いのかどうかも分かりません。集団催眠にかかっているだけかもしれません。ただ、このようなよくわからないものを大真面目に世の中に出して、それを大真面目に翻訳する、それはとても面白いです。\u003c/p\u003e\n"
  }, 
  {
    "title": "羽生善治",
    "url": "https://www.ikemo3.com/dic/yoshiharu-habu/",
    "contents": "\u003ch2 id=\"なぜさん付けなのか\"\u003eなぜ「さん」付けなのか\u003c/h2\u003e\n\u003cp\u003e自分の場合、棋士は以下のように呼称をつけたいと思っています。\n要は公式表記です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e永世称号のある棋士はその称号\u003c/li\u003e\n\u003cli\u003e引退した棋士はその段位\u003c/li\u003e\n\u003cli\u003eそれ以外の棋士は現時点での段位、もしくはタイトル\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eでも、羽生さんは強すぎてタイトルを何個も持っているので、称号が一定しません。\n\u003ca href=\"https://www.shogi.or.jp/player/pro/175.html\"\u003e棋士データベース\u003c/a\u003eによれば、\nこの記事を書いている2017-08-02現在では、三冠(王位・王座・棋聖)になっています。\u003c/p\u003e\n\u003cp\u003eあと親しみを込めたいというのもあって、以下では「羽生さん」にします\n(2017-08-10: タイトルは他の記事と合わせたいので敬称外しました)。\u003c/p\u003e\n\u003ch2 id=\"天才というよりは超秀才のイメージ\"\u003e天才というよりは超秀才のイメージ\u003c/h2\u003e\n\u003cp\u003e羽生さんは「天才」という評価ですが、\n\u003ca href=\"/dic/shogi/\"\u003e将棋\u003c/a\u003eに関して言えば「天才＝加藤一二三九段」のイメージなので、\n「天才」というよりは「超秀才」というイメージがあります。\n分かりやすく言うと、野球で言うONと同じです。\n長嶋茂雄さんが「天才」のイメージなら、王貞治さんは「超秀才」のイメージです。\u003c/p\u003e\n\u003cp\u003e羽生さんの著書はたくさん持っているのですが、\nどの本を読んでも、書いていることは分かりやすく、スラスラと読めます。\n悪い意味での引っ掛かりがほとんどないんですよね。\u003c/p\u003e\n\u003ch2 id=\"自分にとってはあこがれの人\"\u003e自分にとってはあこがれの人\u003c/h2\u003e\n\u003cp\u003e一度だけ羽生さんと会ったことがあります。\n\u003ca href=\"http://www.entcomp.org/ec2006/\"\u003eEC2006\u003c/a\u003eというイベントで講演を聞きました。\nその時の日記\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eを見ると、ボナンザの話になると、\n口調が全然違ってて、コンピュータ将棋が好きだったんだなぁと思いました。\u003c/p\u003e\n\u003cp\u003eその後名前入りでサインをもらって、握手もしてもらいました。\n「アイドルと握手したら手を洗わない」という本当か冗談か分からない話がありますが、\nこの時ばかりは「しばらく手を洗いたくない」と思いました(*´∀｀*)\u003c/p\u003e\n\u003cp\u003eもちろん思ったけどずっと洗わないわけにはいかないので、泣く泣く洗いましたが。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e当時はmixiで日記書いてたので、そのアーカイブがEvernoteに残ってました。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Ansible",
    "url": "https://www.ikemo3.com/dic/ansible/",
    "contents": "\u003ch2 id=\"ansibleとは\"\u003eAnsibleとは\u003c/h2\u003e\n\u003cp\u003e構成管理ツールの1つです。\u003c/p\u003e\n\u003ch2 id=\"chefでなくansibleを選んだ理由\"\u003eChefでなくAnsibleを選んだ理由\u003c/h2\u003e\n\u003cp\u003e自分は\u003ca href=\"/dic/ruby/\"\u003eRuby\u003c/a\u003eが好きなので、\n最初はChefを考えていて、Chefの本も買いました。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/477416500X/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/477416500X.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/477416500X/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nChef実践入門 ~コードによるインフラ構成の自動化 (WEB\u0026#43;DB PRESS plus)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eただ、本を読むと、ちょっととっつきにくいなぁと感じました。\n後から思うと、そのとっつきにくさは、プル(pull)型アーキテクチャのためでした。\nプル型もプッシュ(push)型のどちらにもメリットがありますが、\n前準備が必要な分、プル型はとっつきにくいようです。\u003c/p\u003e\n\u003cp\u003e悩んでいたときに、Red Hatによる買収話\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eを聞きました。\nRed Hatが買収するくらいなので将来性もありそうだなと思ってAnsibleを使ってみたら、\n案外とっつきやすいので、そのまま使ってます。\u003c/p\u003e\n\u003ch2 id=\"シェルスクリプトに毛が生えたようなもの\"\u003eシェルスクリプトに毛が生えたようなもの\u003c/h2\u003e\n\u003cp\u003eAnsibleの良い点は、Ansibleがやってることが、\n「シェルスクリプトに毛が生えたようなもの」だからです。\u003c/p\u003e\n\u003cp\u003e例えば、RedHat系Linuxでパッケージを追加するモジュールの名前は、\u003ccode\u003eyum\u003c/code\u003eです。\n名前の通り、\u003ca href=\"/dic/yum/\"\u003eyum\u003c/a\u003eコマンドを使っています。\u003c/p\u003e\n\u003cp\u003e自前でちゃんと動くシェルスクリプトをかいて、\u003ccode\u003eshell\u003c/code\u003eモジュールを使っても構いません。\n\u003ccode\u003ecreates\u003c/code\u003eオプションを使えば、\u003ca href=\"/dic/idempotence/\"\u003e冪等性\u003c/a\u003eも確保可能です。\n1つ1つタスクを書くよりも速いので、むしろおすすめです。\u003c/p\u003e\n\u003ch2 id=\"処理でなく状態を記述\"\u003e処理でなく状態を記述\u003c/h2\u003e\n\u003cp\u003eたぶん、一番慣れる必要があるのは、\nAnsibleでは「処理」ではなく、「状態」を記述することです。\n実際には処理を記載するケースもありますが。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.redhat.com/ja/about/press-releases/rhjapan-red-hat-acquire-it-automation-and-devops-leader-ansible\"\u003eRed HatがITオートメーションとDevOpsのリーダーであるAnsibleを買収\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Automation",
    "url": "https://www.ikemo3.com/tags/automation/",
    "contents": ""
  }, 
  {
    "title": "テーマ",
    "url": "https://www.ikemo3.com/theme/",
    "contents": "\u003ch2 id=\"このセクションについて\"\u003eこのセクションについて\u003c/h2\u003e\n\u003cp\u003e特定の話題について記載する場所です。\n\u003ca href=\"/dic/\"\u003e辞書\u003c/a\u003eがモノやヒトとしたら、ここはコトを集めたものです。\u003c/p\u003e\n\u003ch2 id=\"themeにした理由\"\u003ethemeにした理由\u003c/h2\u003e\n\u003cp\u003etopicやsubjectも考えたのですが、\ntopicはちょっと小さい、ニュースをつまみ食いするようなイメージなので避けたのと、\nsubjectは日本語圏だとtitleと近い意味で捉えられるので避けました。\u003c/p\u003e\n"
  }, 
  {
    "title": "辞書",
    "url": "https://www.ikemo3.com/dic/",
    "contents": "\u003ch2 id=\"辞書とは\"\u003e辞書とは\u003c/h2\u003e\n\u003cp\u003eヒトやモノを表す単語を管理するものです。コトは\u003ca href=\"/theme/\"\u003etheme\u003c/a\u003eに置きます。\u003c/p\u003e\n\u003ch2 id=\"worddicに変更\"\u003eword→dicに変更\u003c/h2\u003e\n\u003cp\u003e最初はサイト全体のイメージが出来てなかったので\nword(単語)というディレクトリ名を使っていたのですが、\nサイトのイメージが出来てきたので、dic(辞書)にしました。\u003c/p\u003e\n"
  }, 
  {
    "title": "人物",
    "url": "https://www.ikemo3.com/tags/person/",
    "contents": "\u003ch2 id=\"このタグについて\"\u003eこのタグについて\u003c/h2\u003e\n\u003cp\u003e人物についてまとめたものです。\u003c/p\u003e\n"
  }, 
  {
    "title": "個人と全体",
    "url": "https://www.ikemo3.com/theme/society/indivisual-or-the-entire/",
    "contents": "\u003cp\u003e自分が見る限り多くの人が間違っているのですが、\n例えば、同じ人が以下の2つのことを言っていても問題ありません。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e働ける人は働かないといけない。\u003c/li\u003e\n\u003cli\u003eあの人は働けるけど働かないでよい。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e説明すると、1は「全体として」働ける人は働かないといけないという意味です。\n2は「個人として」ある人が働かなくてもいいという意味です。\nこれが「家庭を持つ」とか「親を大事にする」でも同じです。\u003c/p\u003e\n\u003cp\u003e問題は、これを「矛盾している！」と騒ぎ立てる人がいることです。\u003c/p\u003e\n\u003cp\u003e何が問題かというと、「働ける人は\u003cstrong\u003e全て\u003c/strong\u003e働かないといけない」と\n勝手に解釈しているからです。\n実際は、このような発言は「働かない人が増えると困る」くらいの意味です。\n失業率が決して0%になりません。\u003c/p\u003e\n\u003cp\u003e問題となるケースは2つあります。\n1つは、「他人は」働かないといけないけど、\n「自分は」働かなくてもよいという、自分だけ都合よく除外しているケースです。\u003c/p\u003e\n\u003cp\u003eもう一つは、「個人として」働かないことが認められないケースです。\nこういうのを「全体主義」といいますが、もちろん、日本はそんなことはありえません。\u003c/p\u003e\n\u003cp\u003e実際は無言の圧力(これも勝手に「ある」と思ってる可能性あり)や、\n選択の自由はあるけれど、片方を選ぶと「経済的に不利になる」ケースもありますが、\nまあそれくらいはいいんじゃないかなぁと思います。\u003c/p\u003e\n\u003cp\u003e解されないように補足しておくと、\n「経済的に不利になる」はもちろん程度次第で、\n例えば、結婚するかしないか迷っている人に対して、\n結婚する経済的なメリットを与えることで、\n迷っている人を後押しする程度の優遇を指しています。\u003c/p\u003e\n"
  }, 
  {
    "title": "将棋",
    "url": "https://www.ikemo3.com/dic/shogi/",
    "contents": "\u003ch2 id=\"将棋とは\"\u003e将棋とは\u003c/h2\u003e\n\u003cp\u003eボードゲームの一種です\u003c/p\u003e\n\u003ch2 id=\"よく見るもの\"\u003eよく見るもの\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.shogi.or.jp/game/record/year_result.html\"\u003e今年度棋士成績・記録\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.shogi.or.jp/game/record/year_ranking.html\"\u003eランキング\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.shogi.or.jp/match/junni/\"\u003e名人戦・順位戦\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.shogi.or.jp/match/shoreikai/\"\u003e奨励会\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"棋戦\"\u003e棋戦\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.shogi.or.jp/match/\"\u003e棋戦一覧\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"タイトル戦\"\u003eタイトル戦\u003c/h3\u003e\n\u003cp\u003e序列は契約金額によって決まってます(現金ですね)。\nといっても名人戦の格が下がっても困るので、配慮はされているようですが。\u003c/p\u003e\n\u003cp\u003eタイトル戦の仕組みは以下のようになっています。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eタイトル名\u003c/th\u003e\n          \u003cth\u003eトーナメント\u003c/th\u003e\n          \u003cth\u003eリーグ戦\u003c/th\u003e\n          \u003cth\u003eランキング戦\u003c/th\u003e\n          \u003cth\u003e敗者復活\u003c/th\u003e\n          \u003cth\u003e番勝負\u003c/th\u003e\n          \u003cth\u003e番勝負持ち時間\u003c/th\u003e\n          \u003cth\u003e永世称号規定\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e竜王戦\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003e七番勝負\u003c/td\u003e\n          \u003ctd\u003e8時間\u003c/td\u003e\n          \u003ctd\u003e連続5期または通算7期\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e名人戦\u003c/td\u003e\n          \u003ctd\u003e✕\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003eー\u003c/td\u003e\n          \u003ctd\u003e七番勝負\u003c/td\u003e\n          \u003ctd\u003e9時間\u003c/td\u003e\n          \u003ctd\u003e通算5期\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e叡王戦\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e七番勝負\u003c/td\u003e\n          \u003ctd\u003e1〜6時間(変則)\u003c/td\u003e\n          \u003ctd\u003e未定\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e王位戦\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯(紅白)\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e七番勝負\u003c/td\u003e\n          \u003ctd\u003e8時間\u003c/td\u003e\n          \u003ctd\u003e連続5期または通算10期\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e王座戦\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e五番勝負\u003c/td\u003e\n          \u003ctd\u003e5時間\u003c/td\u003e\n          \u003ctd\u003e連続5期または通算10期\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e棋王戦\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e◯(準決勝以上)\u003c/td\u003e\n          \u003ctd\u003e五番勝負\u003c/td\u003e\n          \u003ctd\u003e4時間\u003c/td\u003e\n          \u003ctd\u003e連続5期\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e王将戦\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e◯\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e✕\u003c/td\u003e\n          \u003ctd\u003e七番勝負\u003c/td\u003e\n          \u003ctd\u003e8時間\u003c/td\u003e\n          \u003ctd\u003e通算10期\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"服装\"\u003e服装\u003c/h2\u003e\n\u003cp\u003e将棋の服装はだいたいは「スーツ」など仕事ようの服が多いですが、\nタイトル戦では「紋付羽織袴」を着ることが多いです。\u003c/p\u003e\n\u003cp\u003e珍しいところでは、\n阿部隆八段が禅僧の普段着の「作務衣」を来て対局している例があります。\u003c/p\u003e\n\u003ch2 id=\"自分のこと\"\u003e自分のこと\u003c/h2\u003e\n\u003ch3 id=\"昔は強かった\"\u003e昔は強かった\u003c/h3\u003e\n\u003cp\u003e自分は子供の頃は強くて、それなりの成績を残したこともあるのですが\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e、\n今は指さないので、だいぶ弱くなってるはずです。\nそれでも何となく盤面を見てたらこの手がいいかなーというのは読めるので、\n初段くらいはあるかなぁとは思ってますが(免状はもってない)。\u003c/p\u003e\n\u003cp\u003e一度、毎日新聞のWeb検定での次の一手検定で\n五段の\u003cstrong\u003e資格\u003c/strong\u003eを取ったことあるんですが、\n免状が高すぎて買えなかったんですよね。\u003c/p\u003e\n\u003ch3 id=\"一度は将棋やめようかと思った\"\u003e一度は将棋やめようかと思った\u003c/h3\u003e\n\u003cp\u003e2016年に起きた、例の冤罪事件で将棋から完全に足を洗おうかと思った\n(本を焼き捨てようかと思った)んですが、\n\u003ca href=\"/dic/yoshiharu-habu/\"\u003e羽生さん\u003c/a\u003eの永世七冠の件が嬉しかったので、\nやっぱり将棋はやめられないなぁと思いました\u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003ch2 id=\"アプリなど\"\u003eアプリなど\u003c/h2\u003e\n\u003cp\u003e観戦には\u003ca href=\"https://itunes.apple.com/jp/app/id389456852\"\u003e将棋連盟ライブ中継\u003c/a\u003eがいいです。\n2018-05-04現在は月額550円です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.shogi.or.jp/lp/mr201704/\"\u003e将棋連盟ライブ中継｜日本将棋連盟\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.shogi.or.jp/faq/provisions/\"\u003eプロ棋戦の規定等について｜よくある質問｜日本将棋連盟\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e1組2組のみ、負けても決勝トーナメントに進める可能性があります。\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003eプレーオフはトーナメント制です。\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003e環境次第では奨励会狙えたかも\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003e冤罪事件を許したわけではないですが。\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "米長邦雄永世棋聖",
    "url": "https://www.ikemo3.com/dic/yonenaga-kunio/",
    "contents": "\u003ch2 id=\"昔は四冠王今は人生哲学\"\u003e昔は「四冠王」、今は「人生哲学」\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/shogi/\"\u003e将棋\u003c/a\u003eを始めたときに一番好きだった棋士が米長さんでした。\nなぜなら、当時一番強かったのが米長さんだったからです。\n\u003ca href=\"https://ja.wikipedia.org/wiki/%E7%B1%B3%E9%95%B7%E9%82%A6%E9%9B%84\"\u003eWikipediaの記述\u003c/a\u003eによれば、1985年1月に四冠王になりました。\u003c/p\u003e\n\u003cp\u003eその後しばらく\u003ca href=\"/dic/shogi/\"\u003e将棋\u003c/a\u003eから離れていたのですが、\n2005年頃からいろいろ本を読み始めたときに、面白いと思ったのが米長さんでした。\u003c/p\u003e\n\u003ch2 id=\"米長哲学\"\u003e米長哲学\u003c/h2\u003e\n\u003cp\u003eまず何よりも「米長哲学」です。「人間における勝負の研究」という本の第1章「名人戦より必死にやるべき対局とは何か」に以下のように書かれています(太字は引用者)。\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00BWQLIV6/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B00BWQLIV6.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B00BWQLIV6/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n人間における勝負の研究 (祥伝社黄金文庫)\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eですから、いわゆる「この一番」とういのは、必ずしも「でかい勝負」ではない。私のみるところ、一生のツキを呼ぶとか、何年間のツキを呼び込む大きな対局とは、実は\u003cstrong\u003e自分にとっては一見、何の影響もない一番、その勝敗が自分の進退には直接影響がないけれども、相手にとっては大変な意味を持っている勝負なのです。\u003c/strong\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e「米長哲学」の面白いところは、ちょっと考えたら変だけど、\nよくよく考えると辻褄があっているところです。\u003c/p\u003e\n\u003ch2 id=\"疑問手は指すが悪手は指さない\"\u003e疑問手は指すが、悪手は指さない\u003c/h2\u003e\n\u003cp\u003e米長さんは亡くなるまでずっと変な人でした。\nTwitterで「うんこなう」と言ったり、\n\u003cblockquote class=\"twitter-tweet\"\u003e\u003cp lang=\"ja\" dir=\"ltr\"\u003eうんこなう。快心の作です。直径2センチで長さ80センチが一本にゅーっ。幸せです。\u003c/p\u003e\u0026mdash; 米長邦雄 (@yonenagakunio) \u003ca href=\"https://x.com/yonenagakunio/status/59136612667359232?ref_src=twsrc%5Etfw\"\u003eApril 16, 2011\u003c/a\u003e\u003c/blockquote\u003e\n\u003cscript async src=\"https://platform.x.com/widgets.js\" charset=\"utf-8\"\u003e\u003c/script\u003e\n\n\n\u003ca href=\"https://www.shogi.or.jp/\"\u003e日本将棋連盟\u003c/a\u003eの写真がダブルピースだったりします。\u003c/p\u003e\n\u003cp\u003eこれだけならちょっと変な人程度ですが、\nスキャンダルや問題発言も結構あります。\nただ、米長さんのすごいところは、\n問題を起こしても敗着(致命傷)にしなかったことです。\u003c/p\u003e\n\u003cp\u003eこれは「人間における勝負の研究」第1章「人間は、常に悪手の山の中を歩いている」に\n以下のように書かれていることからも分かります。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eところが、悪手を指すのは簡単です。人を殺せば、それでその人の人生は終わったも同然でしょう。ところが、事故を含めて、人を殺すなんてことは簡単にできる。横領する、欺す(だます)、盗むといった悪手なら、もっと簡単で、人間が欲望通りに行動していれば、たいてい悪手になります。(中略) こういう状況の中では、悪手を指さないくらい大切なことはない、という気さえしてきます。そして、少なくとも現在の自分よりも悪くならない手、ちょっとでも向上する手なら、どんな手を指してもいい、という考えも浮かんできます。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ca href=\"http://dic.nicovideo.jp/a/%E4%B8%89%E6%B5%A6%E5%BC%98%E8%A1%8C#h2-2\"\u003eソフト指し疑惑冤罪事件\u003c/a\u003eの醜態を見てて思ったのは、\n「もし米長さんが会長ならここまで酷くならなかったのになぁ」でした。\u003c/p\u003e\n"
  }, 
  {
    "title": "必読書",
    "url": "https://www.ikemo3.com/theme/programming/required-reading-books/",
    "contents": "\u003cp\u003e自分がこれくらいは読んどいたほうがいいという技術書です。\nJavaメインなので、その本が多いです。\u003c/p\u003e\n\u003ch2 id=\"初級者向け\"\u003e初級者向け\u003c/h2\u003e\n\u003ch3 id=\"リファクタリング\"\u003eリファクタリング\u003c/h3\u003e\n\u003cp\u003e今から買うのなら、この新版がいいと思います。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/427405019X/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/427405019X.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/427405019X/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e\u003ca href=\"/dic/refactoring/\"\u003eリファクタリング\u003c/a\u003eは常識中の常識なので、最低でもこれだけは身につけてください。\u003c/p\u003e\n\u003ch3 id=\"デザインパターン\"\u003eデザインパターン\u003c/h3\u003e\n\u003cp\u003e自分は確かこの著書で学びました。いわゆるGoF(Gang of Four)本です。\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4797311126/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4797311126.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4797311126/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nオブジェクト指向における再利用のためのデザインパターン\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n\u003cp\u003eただ、デザインパターンという概念を知ればいいので、\n評判のいいこの本\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eや、Webにある記事を読んで学ぶのでもいいかと思います。\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4797327030/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4797327030.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4797327030/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n増補改訂版Java言語で学ぶデザインパターン入門\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n\u003cp\u003eデザインパターンも常識と言っていいくらい重要ですが、\nリファクタリングをしていったら必然的に身につくスキルだと思うので、\n参考程度にしています。\u003c/p\u003e\n\u003ch3 id=\"実践javaコーディング作法\"\u003e実践Javaコーディング作法\u003c/h3\u003e\n\u003cp\u003eコーディング規約の本です。\nコーディング規約を0から作るのは大変なので、\nこの本を元にプロジェクト内の規約を作るのにちょうどいいと思います。\nただ、この本で書いていることがすべて正しいというわけではないのに注意してください。\n例えば、サンプルコードに、母音を省略した命名とかやってはいけないことが混じってるので。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4822296334/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4822296334.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4822296334/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n実践Javaコーディング作法 プロが知るべき、112の規約と21の心得\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"中級者向け\"\u003e中級者向け\u003c/h2\u003e\n\u003ch3 id=\"effective-java\"\u003eEffective Java\u003c/h3\u003e\n\u003cp\u003eJava界隈では有名なEffective Javaですが、正直初心者には難しいです。\nある程度経験を積んで痛い目にあってからの方がいいですね。\u003c/p\u003e\n\u003cp\u003e第三版が2018/10/30に発売になります。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4621303252/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4621303252.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4621303252/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nEffective Java 第3版\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003chr\u003e\n\u003cp\u003e以下思いついたら書きます。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e読んだことはないですが、結城浩さんの本なので大丈夫でしょう。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "大洲市",
    "url": "https://www.ikemo3.com/dic/ozu/",
    "contents": "\u003ch2 id=\"大洲市とは\"\u003e大洲市とは\u003c/h2\u003e\n\u003cp\u003e愛媛県のやや南よりにある市です。\n愛媛県の「南予」に属しています。\u003c/p\u003e\n\u003ch2 id=\"大洲市の有名なもの\"\u003e大洲市の有名なもの\u003c/h2\u003e\n\u003ch3 id=\"鵜飼い\"\u003e\u003ca href=\"/dic/ukai/\"\u003e鵜飼い\u003c/a\u003e\u003c/h3\u003e\n\u003ch3 id=\"臥龍山荘\"\u003e臥龍山荘\u003c/h3\u003e\n\u003cp\u003e有名らしいですが正直わかりません。\u003c/p\u003e\n\u003ch3 id=\"大洲城\"\u003e大洲城\u003c/h3\u003e\n\u003cp\u003e日本100名城の1つに挙げられています。\n小さいですが、ちゃんと城してるなぁという感じです。\u003c/p\u003e\n\u003ch3 id=\"中江藤樹先生\"\u003e中江藤樹先生\u003c/h3\u003e\n\u003cp\u003e日本陽明学の祖である中江藤樹先生と縁が深く、\n公教育でもいろいろ学びました。\n(「先生」とつけないとしっくりこない)\u003c/p\u003e\n\u003ch3 id=\"伊予の小京都\"\u003e伊予の小京都\u003c/h3\u003e\n\u003cp\u003eそもそも小京都がどんなものか理解してません。。。\u003c/p\u003e\n\u003ch3 id=\"おはなはん\"\u003eおはなはん\u003c/h3\u003e\n\u003cp\u003eそもそも自分が生まれる前の出来事です。\u003c/p\u003e\n\u003ch3 id=\"東京ラブストーリー\"\u003e東京ラブストーリー\u003c/h3\u003e\n\u003cp\u003eロケ地らしいですが知りません。\u003c/p\u003e\n\u003ch3 id=\"最高気温\"\u003e最高気温\u003c/h3\u003e\n\u003cp\u003e盆地のため夏は気温が高くなるため、\n全国的にも気温が高い地域としてよく取り上げられます(ヽ´ω`)\u003c/p\u003e\n\u003ch3 id=\"猫島青島\"\u003e猫島(青島)\u003c/h3\u003e\n\u003cp\u003e旧長浜町にある、人より猫の方が多い島です。\u003c/p\u003e\n\u003ch2 id=\"大洲市の食べ物\"\u003e大洲市の食べ物\u003c/h2\u003e\n\u003ch3 id=\"いもたき\"\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E3%81%84%E3%82%82%E3%81%9F%E3%81%8D\"\u003eいもたき\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e里芋とか肉とかいろいろ煮込んで食べる料理です。\n昔はどうか分かりませんが、今は\u003ca href=\"/dic/matsuyama/\"\u003e松山市\u003c/a\u003eでもやってます。\nWikipediaに書いてある通り、大洲では里芋のことを\u003cstrong\u003e夏芋\u003c/strong\u003eと言います。\n夏芋という呼び方が当たり前すぎて、「里芋と夏芋って何が違うんやろ」と思ったらたらだの方言だったという(ヽ´ω`)\u003c/p\u003e\n\u003ch3 id=\"志ぐれ\"\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/%E5%BF%97%E3%81%90%E3%82%8C\"\u003e志ぐれ\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eもちもちとした食感が美味しい和菓子です。\u003c/p\u003e\n\u003ch3 id=\"巳登勢\"\u003e\u003ca href=\"http://www.city.ozu.ehime.jp/site/kanko/13327.html\"\u003e巳登勢\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e食べ物でなく醤油ですが。\n普通の醤油はサラサラとした液体ですが、これはちょっとドロッとしてます。\nかまぼこをこの醤油で食べるのが好きです(*´∀｀*)\u003c/p\u003e\n"
  }, 
  {
    "title": "Ruby",
    "url": "https://www.ikemo3.com/dic/ruby/",
    "contents": "\u003ch2 id=\"rubyとは\"\u003eRubyとは\u003c/h2\u003e\n\u003cp\u003eプログラミング言語の1つです。\n公式に「オブジェクト指向スクリプト言語」と名乗っています。\u003c/p\u003e\n\u003cp\u003e自分はPerl 5に馴染めなかったので、代わりに良い言語がないかなぁと探して見つけた言語がRubyでした。当時のバージョンは1.4だったと思います。\u003c/p\u003e\n\u003ch2 id=\"rubyの好きなところ\"\u003eRubyの好きなところ\u003c/h2\u003e\n\u003cp\u003e自分がRubyの好きな理由は以下の通りです。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e難しい概念を分かりやすく整理してくれること\u003c/li\u003e\n\u003cli\u003e記号を多用していること\u003c/li\u003e\n\u003cli\u003eマクロが\u003cstrong\u003eない\u003c/strong\u003eこと\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"難しい概念を分かりやすく整理してくれること\"\u003e難しい概念を分かりやすく整理してくれること\u003c/h3\u003e\n\u003cp\u003eRubyを知ったときに最初に便利だなと思ったのが、\u003ca href=\"https://docs.ruby-lang.org/ja/latest/doc/spec=2fcall.html#block\"\u003eブロック付きメソッド呼び出し\u003c/a\u003eでした\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n今でこそ\u003ca href=\"/dic/java/\"\u003eJava\u003c/a\u003eにもラムダ式が導入されていてメジャーな機能ですが、当時は自分には難しい概念でした。\nこれを分かりやすい構文で提供してくれたのがRubyです。\u003c/p\u003e\n\u003ch3 id=\"記号を多用していること\"\u003e記号を多用していること\u003c/h3\u003e\n\u003cp\u003eRubyが採用している以下の書き方がとても気に入っています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@\u003c/code\u003e から始まる変数: インスタンス変数\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@@\u003c/code\u003e から始まる変数: クラス変数\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e$\u003c/code\u003e から始まる変数: グローバル変数\u003c/li\u003e\n\u003cli\u003eアルファベット大文字で始まる: 定数\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e?\u003c/code\u003e で終わるメソッド: 真偽値を返すメソッド(慣習)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e!\u003c/code\u003e で終わるメソッド: 破壊的な作用を持つメソッド(慣習)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eものすごく見やすくて、他の言語もこれ採用してくれないかなぁと思うのですが、全然見かけません。\nOptionalに \u003ccode\u003e?\u003c/code\u003e をつける言語があるくらいですね。\u003c/p\u003e\n\u003ch3 id=\"マクロがないこと\"\u003eマクロが\u003cstrong\u003eない\u003c/strong\u003eこと\u003c/h3\u003e\n\u003cp\u003e最後は、Rubyにマクロが\u003cstrong\u003eない\u003c/strong\u003eことです。\n何でかというと、\u003ca href=\"/dic/gradle/\"\u003eGradle\u003c/a\u003eを使ったときに、\nAST変換された文法にものすごく苦労して挫折した経験からです。\nそして、AST変換はマクロと同じもののようです。\u003c/p\u003e\n\u003cp\u003eRubyに関してはどうかと調べたら、2015年の記事に以下のようにありました。\n\u003ca href=\"http://www.ipsj.or.jp/magazine/ruby.html\"\u003e情報処理2015年12月号特集記事「20年目のRubyの真実」インタビュー-情報処理学会\u003c/a\u003e\nマクロそのものを導入するつもりはなさそうなのでホッとしました。\u003c/p\u003e\n\u003cp\u003e実際、RSpec(自分は\u003ca href=\"https://www.inspec.io/\"\u003eInSpec\u003c/a\u003e)経由で使ってます)の文法は\n独特すぎてちょっとどうかなぁと思うのですが、\n普通に使うレベルなら文法エラーで困ることはありません。\u003c/p\u003e\n\u003cp\u003eなので、自分の中では「マクロ＝越えては行けないもの」という認識です。\nよっぽど画期的なアイデアがあれば別ですが。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e自分がRubyを知った当時は「イテレータ」と呼ばれていたはず。\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "松山市",
    "url": "https://www.ikemo3.com/dic/matsuyama/",
    "contents": "\u003ch2 id=\"松山市とは\"\u003e松山市とは\u003c/h2\u003e\n\u003cp\u003e愛媛県の県庁所在地です。\n愛媛県は大きく「東予」「中予」「南予」の3つに分かれていて、\n松山市は「中予」に属しています。\u003c/p\u003e\n\u003ch2 id=\"参考資料\"\u003e参考資料\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.city.matsuyama.ehime.jp/index.html\"\u003e松山市ホームページ\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.city.matsuyama.ehime.jp/kurashi/gomi/dashikata/gomicalender/gomicale26.html\"\u003eゴミカレンダー\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"松山市のいいところ悪いところ\"\u003e松山市のいいところ、悪いところ\u003c/h2\u003e\n\u003cp\u003e思いついたら書き足します。\u003c/p\u003e\n\u003ch3 id=\"いいところ\"\u003eいいところ\u003c/h3\u003e\n\u003ch4 id=\"コンパクトシティ\"\u003eコンパクトシティ\u003c/h4\u003e\n\u003cp\u003eJR松山駅から半径5km程度で、松山空港も道後温泉もだいたい入ります。\n坂も少ないので、自転車でだいたいどこにでも行けます。\n(空港はちょっと大変で、「いけないことはない」レベル)。\u003c/p\u003e\n\u003ch4 id=\"温泉が近い\"\u003e温泉が近い\u003c/h4\u003e\n\u003cp\u003e松山といえば道後温泉が有名ですが、その他にも中心部ではJR駅前の\u003ca href=\"http://www.kisuke.com/yu-matsuyama/\"\u003e喜助の湯\u003c/a\u003eや、\u003ca href=\"http://e-hime.jp/onsen/\"\u003e久万の台温泉\u003c/a\u003eがあります。「疲れたのでちょっと温泉行ってくるわ」レベルで気軽に行けます。\u003c/p\u003e\n\u003ch4 id=\"家賃が安い\"\u003e家賃が安い\u003c/h4\u003e\n\u003cp\u003e「松山市の賃貸住宅の家賃は県庁所在市の中で最も安く、東京の半額以下です。」と書かれています\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\u003c/p\u003e\n\u003cp\u003e1人暮らしなら5万円でも高すぎるくらいです。まあ、あまり物件ないんですけどね。\u003c/p\u003e\n\u003ch4 id=\"意外と田舎っぽいところがある\"\u003e意外と田舎っぽいところがある\u003c/h4\u003e\n\u003cp\u003e個人的にびっくりなのが、田んぼが普通にあることです。\nまあ、あまり多くはないんですが。\nあと新鮮な野菜も手に入りやすいです。\u003c/p\u003e\n\u003ch3 id=\"悪いところ\"\u003e悪いところ\u003c/h3\u003e\n\u003ch4 id=\"交通マナーが悪い特に車\"\u003e交通マナーが悪い(特に車)\u003c/h4\u003e\n\u003cp\u003e松山はコンパクトシティな上に電車もあって、自転車で困らない場所ですが、\n結構車社会です。で、その車の交通マナーがものすごく悪いです。\u003c/p\u003e\n\u003cp\u003e交差点を渡ってるときに、一時停止どころか、徐行すらしない車が多いです。\n近づくと急ブレーキで止まるのですが、歩行者からすると、危なっかしくて停止するまでは渡れません。\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003e実際のところ、はっきり悪いところって交通マナーくらいです。\u003c/p\u003e\n\u003ch2 id=\"秋祭りで休みになる\"\u003e秋祭りで休みになる\u003c/h2\u003e\n\u003cp\u003e松山の秋祭りは毎年10/5〜10/7にかけて行われるのですが\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e、\n10/7はいろいろなところが休みになります。\nごみ収集や個人経営の病院も休みです。\nさすがにチェーン店は休みにならないのですが、半ば公休日みたいなものです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"http://matsuyama-kurashi.com/about/information/\"\u003eまつやまってこんな街｜いい、暮らし。まつやま\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.city.matsuyama.ehime.jp/kanko/kankoguide/matsurievent/matsuri_autumn.html\"\u003eまつり・イベント（秋のまつり）　松山市ホームページ\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "人工知能",
    "url": "https://www.ikemo3.com/dic/artificial-intelligence/",
    "contents": "\u003cp\u003e「人工知能」と呼ばれるものについていろいろ言われていますが、\n正直なんだかなぁと思うことが多いです。\u003c/p\u003e\n\u003ch2 id=\"人工知能は強いaiと弱いaiがある\"\u003e人工知能は「強いAI」と「弱いAI」がある\u003c/h2\u003e\n\u003cp\u003e詳しくは\u003ca href=\"https://ja.wikipedia.org/wiki/%E5%BC%B7%E3%81%84AI%E3%81%A8%E5%BC%B1%E3%81%84AI\"\u003eWikipediaの解説\u003c/a\u003eを見てください。\u003c/p\u003e\n\u003cp\u003e簡単に言うと、普通の人が「人工知能」と聞いて抱くイメージ、\n例えばドラえもんみたいに、意思をもって人間と同じように行動するものが\n「強いAI」と呼ばれています。\u003c/p\u003e\n\u003cp\u003e一方で、画像認識とか、スパムメールの判定など、\n狭い領域で人間が行えることをコンピュータでやろうというのが、「弱いAI」です。\u003c/p\u003e\n\u003cp\u003e2017年現在盛り上がっているのはほぼ100%、「機械学習」などの、「弱いAI」の立場です。\n「強いAI」についての新しい発見は、全く耳にしていません。\u003c/p\u003e\n\u003cp\u003eではなんで盛り上がっているのかと言うと、応用範囲が果てしなく広いからです。\n機械学習については2002年の記事\u003ca href=\"http://www.atmarkit.co.jp/fwin2k/opinion/yamazaki/yama_2002_09.html\"\u003eOpinion：君はベイジアン・ネットワークを知っているか？（7/9） - ＠IT\u003c/a\u003eで書かれている通り、Microsoft Officeのイルカくらいしか一般に知られていませんでした(しかも評判が悪い…)。\u003c/p\u003e\n\u003cp\u003eしかし、コンピュータの計算速度が早くになるにつれて、スパムメールの判定を始め、応用範囲が広がっていき、どんどん盛り上がっていきました。\u003c/p\u003e\n\u003cp\u003e問題なのは、「弱いAI」の発展が自動的に「強いAI」をもたらすことではないことです。\nここを勘違いしている人が多い。\u003c/p\u003e\n\u003ch2 id=\"不完全さを抱え込む\"\u003e「不完全さ」を抱え込む\u003c/h2\u003e\n\u003cp\u003e自分が「強いAI」について否定的なのは、「知能」と呼ばれているものは論理的なものではなく、\nむしろ、論理的とはかけ離れた、不完全なものだからです。\n人間の活動のほとんどは、割りとどうでもいいことで成り立っています。\nしかし、人工知能が実現すると言ってる人はだいたいそれが分かってません。\u003c/p\u003e\n\u003cp\u003e(2017-08-02追加)\u003ca href=\"/dic/yoshiharu-habu\"\u003e羽生さん\u003c/a\u003eの「人工知能の核心」という本を読みましたが、「人工知能がどれだけ進化を遂げても、ふなっしーを生み出すことはできないのではないか」と書いていました。さすが羽生さんです。自分なら\u003ca href=\"/dic/finnegans-wake/\"\u003eフィネガンズ・ウェイク\u003c/a\u003eが究極かなぁと思ってます。\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4140885114/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4140885114.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4140885114/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n人工知能の核心 (ＮＨＫ出版新書)\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n\u003ch2 id=\"人間が劣化している方が問題\"\u003e人間が劣化している方が問題\u003c/h2\u003e\n\u003cp\u003e人工知能とは直接は関係ないのですが、\n最近、知能が劣化しているとしか思えない人が増えています。\n自分はこれを、\u003ca href=\"/dic/intelligence-less-than-computer/\"\u003eコンピュータ未満の知能\u003c/a\u003eと呼んでます。\u003c/p\u003e\n"
  }, 
  {
    "title": "昼間眠くならない方法",
    "url": "https://www.ikemo3.com/theme/productivity/how-to-not-become-sleepy-during-the-day/",
    "contents": "\u003ch2 id=\"昼間眠くならない方法\"\u003e昼間眠くならない方法\u003c/h2\u003e\n\u003cp\u003eいろいろ試したのですが、最終的に以下の2つだけ守っていればまず眠くならないことが分かりました。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eしっかりと睡眠をとる\u003c/li\u003e\n\u003cli\u003e昼食後散歩をする\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e「昼食の前(後)にコーヒーを飲む」とか、食事に炭水化物を減らすとかいろいろ試しましたが、\nこの2つ以外に、はっきりと効果が違うのは見つかりませんでした。\u003c/p\u003e\n\u003ch3 id=\"しっかりと睡眠をとる\"\u003eしっかりと睡眠をとる\u003c/h3\u003e\n\u003cp\u003eまず当然ですが、前日にしっかりと睡眠をとることが一番です。\n自分の場合、7時間取れればまず大丈夫です。6時間30分だと微妙で、6時間だと眠くなりがちです。\u003c/p\u003e\n\u003cp\u003eあまり眠れない日もありましたが、布団に入って目をつぶってればそれなりに寝たことになるみたいです。\u003c/p\u003e\n\u003ch3 id=\"昼食後散歩をする\"\u003e昼食後散歩をする\u003c/h3\u003e\n\u003cp\u003e睡眠時間の他に、はっきりと効果があったのが、昼食後の散歩でした。\n逆に言えば、昼食を弁当で済ませてほとんど歩かないときは、かなりの確率で昼間眠くなってました。\u003c/p\u003e\n"
  }, 
  {
    "title": "リファクタリング",
    "url": "https://www.ikemo3.com/dic/refactoring/",
    "contents": "\u003ch2 id=\"リファクタリングとは\"\u003eリファクタリングとは\u003c/h2\u003e\n\u003cp\u003e「リファクタリング」という本(新装版 p53)に書かれている用語で、以下のように定義されています。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e外部から見たときの振る舞いを保ちつつ、理解や修正が簡単になるように、ソフトウェアの内部構造を変化させること。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/427405019X/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/427405019X.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/427405019X/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\n新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"リファクタリングをするメリット\"\u003eリファクタリングをするメリット\u003c/h2\u003e\n\u003cp\u003eリファクタリングそのものは何も機能追加やバグ修正を行いません。\nしかし、リファクタリングをすることによって、機能追加やバグ修正が容易になり、\n長期的には品質と開発スピードの向上に繋がります。\u003c/p\u003e\n\u003ch2 id=\"リファクタリングのタイミング\"\u003eリファクタリングのタイミング\u003c/h2\u003e\n\u003cp\u003eリファクタリングは以下のタイミングで行うのが分かりやすいです。\nなぜなら、リファクタリングをする際はテストが必須だからです。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e機能追加の前段階\u003c/li\u003e\n\u003cli\u003eバグ修正の前段階\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこれ以外にも簡単なものについては、コードを読んでておかしいと思った時点で\nやるのがいいと思います。\u003c/p\u003e\n\u003ch2 id=\"リファクタリングは常識\"\u003eリファクタリングは常識\u003c/h2\u003e\n\u003cp\u003eプログラミング言語によって多少変わりますが、\n少なくとも、\u003ca href=\"/dic/java/\"\u003eJava\u003c/a\u003eでプログラミングをするなら、\nリファクタリングを知らないのは\u003cstrong\u003e論外\u003c/strong\u003eと言っていいです。\u003c/p\u003e\n\u003cp\u003eなぜなら、リファクタリングを知ることで、これだけプログラミングのスタイルが変わるからです。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e\u003c/th\u003e\n          \u003cth\u003eリファクタリングを知る前\u003c/th\u003e\n          \u003cth\u003eリファクタリングを知る後\u003c/th\u003e\n          \u003cth\u003eリファクタリングによるメリット\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eコードの変更\u003c/td\u003e\n          \u003ctd\u003eできるだけ変更しない\u003c/td\u003e\n          \u003ctd\u003e必要なら積極的に変更する\u003c/td\u003e\n          \u003ctd\u003eメンテナンスが容易になる\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e良いコードと悪いコード\u003c/td\u003e\n          \u003ctd\u003e動けば何でもいい\u003c/td\u003e\n          \u003ctd\u003eリファクタリングしやすいのが良いコード\u003c/td\u003e\n          \u003ctd\u003eメンテナンスが容易になる\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e変数の命名\u003c/td\u003e\n          \u003ctd\u003e動けばなんでもいい\u003c/td\u003e\n          \u003ctd\u003e「読みやすさ」を重視する\u003c/td\u003e\n          \u003ctd\u003eメンテナンスが容易になる\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eデザインパターン\u003c/td\u003e\n          \u003ctd\u003e動けばなんでもいい\u003c/td\u003e\n          \u003ctd\u003eデザインパターンは良い指針になる\u003c/td\u003e\n          \u003ctd\u003e設計力が向上する\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e単体テスト\u003c/td\u003e\n          \u003ctd\u003eしない、できない\u003c/td\u003e\n          \u003ctd\u003eJUnitなどのフレームワークを使う\u003c/td\u003e\n          \u003ctd\u003e品質が向上する\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cul\u003e\n\u003cli\u003e「変化を受け入れる」という思考が身につく。逆に言えば、リファクタリングを知らない人は、「一度書いたコードは変更しない」という考えに固執しがちです。\u003c/li\u003e\n\u003cli\u003e良いコードと悪いコードの見分けがつくようになる。なぜなら、リファクタリングがしづらいコードはほとんどの場合、悪いコードだからです。\u003c/li\u003e\n\u003cli\u003e命名に気を配るようになる。基本的なリファクタリングの1つに、「メソッド名の変更」というものがあります。\u003c/li\u003e\n\u003cli\u003e「デザインパターン」を知るきっかけになる。リファクタリングは闇雲に行うのではなく、デザインパターンという良い指針に向かって行う事が多いです。\u003c/li\u003e\n\u003cli\u003eテスト、特に単体テストを書く理由が理解できる。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eリファクタリングを知らない人は、これらを学ぶ機会に恵まれているとは思えません。\n技術者としては袋小路に入ってしまいます。\nまた、プログラマーでなくても、リファクタリングを知らない事で、\n変化を拒絶してしまう人になってしまいます。\u003c/p\u003e\n\u003ch2 id=\"リファクタリングの難易度\"\u003eリファクタリングの難易度\u003c/h2\u003e\n\u003cp\u003eリファクタリングは「振る舞いはそのまま」が原則ですが、\nそれが容易な場合と、注意が必要な場合があります。\u003c/p\u003e\n\u003cp\u003eJavaの場合例えば、以下のものはIDEを使えばほぼ100%安全です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eコメントの削除(リファクタリングのカタログにはありませんが)\u003c/li\u003e\n\u003cli\u003eローカル変数のリネーム\u003c/li\u003e\n\u003cli\u003eprivateフィールドのリネーム\u003c/li\u003e\n\u003cli\u003eprivateメソッド名のリネーム\u003c/li\u003e\n\u003cli\u003eメソッドの抽出\u003c/li\u003e\n\u003cli\u003eif文の条件式の反転\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e一方で、publicメソッドのリネーム、クラス階層の見直しなど、\n注意が必要なものもあります。\u003c/p\u003e\n\u003cp\u003eなぜこのようなことを書くのかというと、\nリファクタリングができない人は、「何が安全か」の見極めが出来ていないからです。\n何が安全かを見極めるためには、Java言語の知識が必要です。\nその知識が足りない人は見極めが出来ず、必要以上に怖がり、良いプログラムが書けません。\u003c/p\u003e\n"
  }, 
  {
    "title": "プライバシーポリシー",
    "url": "https://www.ikemo3.com/privacy/",
    "contents": "\u003ch2 id=\"当サイトに掲載されている広告について\"\u003e当サイトに掲載されている広告について\u003c/h2\u003e\n\u003cp\u003e当サイトでは、第三者配信の以下の広告サービスを利用しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.google.co.jp/intl/ja/adsense/start/\"\u003eGoogle AdSense\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://affiliate.amazon.co.jp/\"\u003eAmazonアソシエイト\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.apple.com/jp/itunes/affiliates/\"\u003eiTunesアフィリエイトプログラム\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://affiliate.rakuten.co.jp/\"\u003e楽天アフィリエイト\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e広告配信事業者は、ユーザーの興味に応じた商品やサービスの広告を表示するため、\nCookieを使用することがあります。\u003c/p\u003e\n\u003cp\u003eなお、欧州経済領域(EEA)のユーザには、\nパーソナライズされていない広告を使用します。\u003c/p\u003e\n\u003ch3 id=\"google-adsenseについて\"\u003eGoogle AdSenseについて\u003c/h3\u003e\n\u003cp\u003eGoogle AdSenseが使用している技術の詳細や、Cookieを使用しない方法については、以下のページを参照してください。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.google.co.jp/policies/technologies/ads/\"\u003e広告 – ポリシーと規約 – Google\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"itunes-アフィリエイトについて\"\u003eiTunes アフィリエイトについて\u003c/h3\u003e\n\u003cp\u003ePerformance Horizon Group(PHG)および／または広告主が\n広告主のマーケティング活動の効果を追跡するために、\n当サイト上でコードまたはクッキーを使用することがあります。\nその過程で個人を特定できる情報は収集されません。\u003c/p\u003e\n\u003cp\u003e詳細については、以下のページを参照してください。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.performancehorizon.com/docs/itunes/terms/jp.pdf\"\u003ePHG 規約と諸条件(PDF)\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"当サイトが使用しているアクセス解析ツールについて\"\u003e当サイトが使用しているアクセス解析ツールについて\u003c/h2\u003e\n\u003cp\u003e当サイトでは、Googleによるアクセス解析ツール \u003ca href=\"https://www.google.com/intl/ja_jp/analytics/\"\u003eGoogle アナリティクス\u003c/a\u003e を利用しています。\u003c/p\u003e\n\u003cp\u003eGoogle アナリティクスは、トラフィックデータの収集のためにCookieを使用しています。\u003c/p\u003e\n\u003cp\u003eGoogle アナリティックスが使用している技術の詳細や、Cookieを使用しない方法については、以下のページを参照してください。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.google.com/intl/ja/policies/privacy/partners/\"\u003eユーザーが Google パートナーのサイトやアプリを使用する際の Google によるデータ使用\u003c/a\u003e\u003c/p\u003e\n\u003ch3 id=\"データ保持期間について\"\u003eデータ保持期間について\u003c/h3\u003e\n\u003cp\u003e2018年5月25日より、Google Analyticsのデータ保持期間の設定が可能になりますが、\nこのサイトでは、以下のように設定しています。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e自動的にデータが削除されるまでの保持期間: \u003cstrong\u003e26ヶ月\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e新しいアクティビティをリセット: \u003cstrong\u003eオン\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eデータの保持期間についての詳細は以下の記事を参照してください。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://support.google.com/analytics/answer/7667196?hl=ja\"\u003eデータの保持\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"更新履歴\"\u003e更新履歴\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e日付\u003c/th\u003e\n          \u003cth\u003e内容\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2017年07月13日\u003c/td\u003e\n          \u003ctd\u003e初版\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2017年08月04日\u003c/td\u003e\n          \u003ctd\u003eAdSense審査に通ったため、「審査中」の記述を削除\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2017年08月13日\u003c/td\u003e\n          \u003ctd\u003eiTunesアフィリエイトの記述を追加\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2018年05月11日\u003c/td\u003e\n          \u003ctd\u003eGoogle Analyticsのデータ保持期間の記述を追加\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2018年05月22日\u003c/td\u003e\n          \u003ctd\u003e欧州経済領域(EEA)のユーザにはパーソナライズされていない広告を使用することを明記\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2019年08月22日\u003c/td\u003e\n          \u003ctd\u003e楽天アフィリエイトの記述を追加\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n"
  }, 
  {
    "title": "Java",
    "url": "https://www.ikemo3.com/dic/java/",
    "contents": "\u003ch2 id=\"javaとは\"\u003eJavaとは\u003c/h2\u003e\n\u003cp\u003eプログラミング言語の1つです。\u003c/p\u003e\n\u003cp\u003e役立つサイトは\u003ca href=\"/manual/java/\"\u003eマニュアル\u003c/a\u003eに移動しました。\u003c/p\u003e\n\u003ch2 id=\"用語\"\u003e用語\u003c/h2\u003e\n\u003cp\u003e正直分かりづらいのですが、以下のように使うのがいいのかなと。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJava: プログラミング言語としてのJavaについて語るとき\u003c/li\u003e\n\u003cli\u003eJava SE / Java EE: JavaのAPIについて語るとき\n\u003cul\u003e\n\u003cli\u003eJava 8という書き方をすることもありますが、SE/EEは明らかに違うので、分けたほうがいいですね。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eJDK / JRE: 配布されるJava開発キット、ランタイムについて語るとき。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e公式で「Java SE 9 (JDK 9)」という言い方をしているので\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e、\nそこまで厳密に使い分けなくていいかなという気もしますが。。。\u003c/p\u003e\n\u003ch2 id=\"バージョンごとの改良\"\u003eバージョンごとの改良\u003c/h2\u003e\n\u003cp\u003e基本的には文法など、通常のプログラムで意識するところを書きます。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJava 10\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://qiita.com/nowokay/items/d9bc4b3f715d17c2830d\"\u003eJava 10新機能まとめ - Qiita\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eローカル変数の型推論\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"java-se-9以降のサポートはどうなるか\"\u003eJava SE 9以降のサポートはどうなるか?\u003c/h2\u003e\n\u003cp\u003eJava 9以上も無償で使用可能です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.infoq.com/jp/news/2018/09/java-support-options-sept18\"\u003eJavaコミュニティリーダ陣、プラットフォームサポートの選択肢を解説\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.google.com/document/d/1nFGazvrCvHMZJgFstlbzoHjpAVwv5DEdnaBr_5pKuHo/edit\"\u003eJava Is Still Free\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cp\u003e以下は少し前の情報です。\u003c/p\u003e\n\u003cp\u003eこれのQ7が参考になると思います。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://blogs.oracle.com/java-platform-group/update-and-faq-on-the-java-se-release-cadence\"\u003eUpdate and FAQ on the Java SE Release Cadence | Oracle Java Platform Group, Product Management Blog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eざっくり言うと、Java 6と7で起こったように、\nOracleがサポートしなくなったあとも新しいバージョンから\n変更をバックポートすることで、サポートし続けるかもしれない(may)し、\nその場合はメンテナの移行についてOracleはサポートするとのこと。\u003c/p\u003e\n\u003cp\u003e他社のことなので断言した言い方はしてないようですが、\n以下のスレッドやこれまでの実績を見る限り、LTS版(Java SE 11)は長期サポート、\nそれ以外はcriticalなもののみ入れそうな感じですね。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://mail.openjdk.java.net/pipermail/jdk-updates-dev/2018-February/000077.html\"\u003eRequest for backport to jdk9u: JDK-8195685, JDK-8196136, JDK-8195858, JDK-8196221\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"昔はjava嫌いだった\"\u003e昔はJava嫌いだった\u003c/h2\u003e\n\u003cp\u003eJavaを知ったのは大学生の頃、おそらく1996〜2000年ですが、当時はJavaが嫌いでした。当時好きだったプログラミング言語が\u003ca href=\"/dic/ruby/\"\u003eRuby\u003c/a\u003eだったのもあって、Javaはなんて冗長な言語だろうと思ってました。\u003c/p\u003e\n\u003cp\u003eその認識を変えたのは、\u003ca href=\"/dic/ibm/\"\u003eIBM\u003c/a\u003eのVisualAge for Javaを見てからでした。これはいわゆる統合開発環境(IDE)なのですが、サクサクとコードが書ける環境だったと思います。そして、IDEとしての完成度の高さは、Javaの曖昧さの少ない言語仕様に支えられていると気づきました。\u003c/p\u003e\n\u003cp\u003eVisualAgeの親戚とも言えるのが、あの\u003ca href=\"/dic/eclipse/\"\u003eEclipse\u003c/a\u003eです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.oracle.com/jp/corporate/pressrelease/jp20170925-2.html\"\u003eオラクル、Java SE 9とJava EE 8を発表 | Oracle 日本\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "Self-Development",
    "url": "https://www.ikemo3.com/tags/self-development/",
    "contents": ""
  }, 
  {
    "title": "ストレングスファインダー",
    "url": "https://www.ikemo3.com/dic/strengthsfinder/",
    "contents": "\u003ch2 id=\"ストレングスファインダーとは\"\u003eストレングスファインダーとは\u003c/h2\u003e\n\u003cp\u003e自己診断の1つです。この本で知りました(正確にはこの本の旧版)。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4532321433/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4532321433.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4532321433/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nさあ、才能(じぶん)に目覚めよう 新版 ストレングス・ファインダー2.0\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"よくある誤解\"\u003eよくある誤解\u003c/h2\u003e\n\u003cp\u003e内向型のスキルが多いと「実行力がないんだ」と落ち込んでしまう人がいるみたいですが、自分なりの実行する方法を見つければいいと思います。\u003c/p\u003e\n\u003cp\u003e自分の場合は上位3つが「慎重さ」「最上志向」「内省」と実行力が低そうな資質が並んでますが、最初に深く考えるぶん、動き出してからは早いと思っています( ´ω`)\u003c/p\u003e\n"
  }, 
  {
    "title": "ドラッカー",
    "url": "https://www.ikemo3.com/dic/drucker/",
    "contents": "\u003ch2 id=\"ドラッカーとは\"\u003eドラッカーとは\u003c/h2\u003e\n\u003cp\u003e経営学者として名高い、ピーター・F・ドラッカーのことです。\u003c/p\u003e\n\u003cp\u003e正式なつづりは\u0026quot;Peter Ferdinand Drucker\u0026quot;ですが、\n著書の多くは\u0026quot;Peter F. Drucker\u0026quot;とミドルネームを省略して書かれます。\n日本語では\u0026quot;P.F.ドラッカー\u0026quot;という略も使われます。\u003c/p\u003e\n\u003ch2 id=\"名前を間違えないでくれ\"\u003e名前を間違えないでくれ\u003c/h2\u003e\n\u003cp\u003eたまに「ドラッガー」と書く人がいますが、\n無知をさらけ出しているだけで恥ずかしいですね。\u003c/p\u003e\n\u003ch2 id=\"ドラッカーの著書を読んでよかったこと\"\u003eドラッカーの著書を読んでよかったこと\u003c/h2\u003e\n\u003ch3 id=\"異説が多い\"\u003e異説が多い\u003c/h3\u003e\n\u003cp\u003e比較的分かりやすい例だと、\n一般的には「優先順位」がよく言われていますが、\nドラッカーの本ではその逆、「劣後順位」がよく言われています。\u003c/p\u003e\n\u003cp\u003e分かりにくい例だと、「日本の官僚制を理解するならば」という文があります\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。\n日本の官僚は「何もしない(先延ばし)」のでダメだというのが定説になっています。\nしかし、ドラッカーは「何もしない」ことにより、\n社会的な混乱を避けられていると指摘しています。\u003c/p\u003e\n\u003cp\u003e実際のところ、ドラッカーは「今度ばかりは先延ばしはうまくいかないだろう」\nと言っているし、これが正しいかどうかは分りません。\nただ、少なくとも、辻褄は合っています。\u003c/p\u003e\n\u003cp\u003eじゃあどうするかというと、\n自分なりによく考えて、消化するしかありません。\u003c/p\u003e\n\u003ch3 id=\"事実を述べる\"\u003e事実を述べる\u003c/h3\u003e\n\u003cp\u003e例えば「断絶の時代」では、「グローバル化の時代」が述べられています。\nしかし、ドラッカーはよくあるグローバリストではありません。\nその後の著書「ポスト資本主義社会」では、リージョナリズム(地域主義)や、\nトライバリズム(部族主義)について語られています。\u003c/p\u003e\n\u003cp\u003eこれは、断絶の時代が書かれた1969年時点では、\nグローバリズムしかはっきりと見えてなかったに過ぎません。\nつまり、グローバル化はあくまで「事実」であって、主張ではありません。\nグローバル化が避けられない事実だとしても、\nそれを経済のために加速させる時期なのか、\n社会の安定のために減速させる時期なのか、\nそれは個々に判断するしかありません。\u003c/p\u003e\n\u003ch2 id=\"ドラッカーはいくつかの顔を持つ\"\u003eドラッカーはいくつかの顔を持つ\u003c/h2\u003e\n\u003cp\u003eドラッカーはいくつかの顔を持ちます。\n正確には、影響が大きすぎて、いくつかに分けないと入り切らないだけですが。\u003c/p\u003e\n\u003cp\u003eまず、\u003cstrong\u003e間違い\u003c/strong\u003eなのは、経済学者という見方です。\n経済について語ることはあっても、あくまで社会の一部です。\u003c/p\u003e\n\u003cp\u003e一番多いのが、経営学者という見方です。\n「マネジメントを発明した」とも言われるので、これは正しいです。\nただ、世の中の自称経営学者の中ではドラッカーの評価が低いみたいです。\n「ドラッカーの言っていることは原則論なのでもっと個別化した理論が必要」\nなら分からんでもないですが、無視して良いみたいな扱いしている人はダメですね。\u003c/p\u003e\n\u003cp\u003e次に多いのが、自己実現関連の大家としての見方です。\nプロフェッショナルの条件がしばしば取り上げられます。\n個人的にはこの分野でドラッカーを注目している人は信頼度が高いです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300593/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4478300593.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4478300593/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nプロフェッショナルの条件――いかに成果をあげ、成長するか (はじめて読むドラッカー (自己実現編))\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003e最後に、社会生態学者としてのドラッカーです。\n社会生態学者はドラッカーの造語で、人間が作った社会を観察して、\n「すでに起こった未来」を見つけ、分析する人です。\u003c/p\u003e\n\u003cp\u003eドラッカーの初期の著書や、イノベータの条件に、\n社会生態学者としてのドラッカーが表れています。\u003c/p\u003e\n\u003cp\u003e\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAOW8/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MAOW8.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MAOW8/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集9 「経済人」の終わり\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MA7YI/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0081MA7YI.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0081MA7YI/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nドラッカー名著集10 産業人の未来\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0084066JM/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/B0084066JM.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/B0084066JM/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nイノベーターの条件\n\u003c/a\u003e\n\u003c/div\u003e\n\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e「明日を支配するもの」付章\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "NeXT",
    "url": "https://www.ikemo3.com/dic/next/",
    "contents": "\u003ch2 id=\"nextとは\"\u003eNeXTとは\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/steve-jobs/\"\u003eスティーブ・ジョブズ\u003c/a\u003eが\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003eを辞めてから立ち上げた企業のことです。\nまたは、その企業が開発したコンピュータのことです。\u003c/p\u003e\n\u003cp\u003e自分が通ってた\u003ca href=\"/dic/osaka-university/\"\u003e大阪大学\u003c/a\u003eの情報処理教育センターという場所に、\nNeXTがあって、その環境に感動しました。\u003c/p\u003e\n\u003cp\u003eNeXT社、あるいはその企業が開発した\u003ca href=\"/dic/nextstep/\"\u003eNEXTSTEP\u003c/a\u003eは成功しませんでしたが、\n\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003eが買収したことにより、\u003ca href=\"/dic/osx/\"\u003eMac OS X\u003c/a\u003e(現在の\u003ca href=\"/dic/macos/\"\u003emacOS\u003c/a\u003e)の基盤として使われ、\n\u003ca href=\"/dic/iphone/\"\u003eiPhone\u003c/a\u003eなどにも使われています。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/dic/mac\"\u003eMac\u003c/a\u003eや\u003ca href=\"/dic/iphone/\"\u003eiPhone\u003c/a\u003eなどの\u003ca href=\"/dic/apple/\"\u003eApple\u003c/a\u003e製品のアプリを開発したことがある人なら\n知っているかもしれませんが、クラス名に付いている\u0026rsquo;NS\u0026rsquo;は、\n\u003ca href=\"/dic/nextstep/\"\u003eNEXTSTEP\u003c/a\u003eの名残です。\u003c/p\u003e\n\u003ch2 id=\"nextコンピュータ\"\u003eNeXTコンピュータ\u003c/h2\u003e\n\u003ch3 id=\"nextcube\"\u003eNeXTcube\u003c/h3\u003e\n\u003cp\u003e最初に出たのが立方体型のNeXTcube\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eです。\nコネでもらったのが自分の実家にあります。\nNeXTを象徴するマシンで、Power Mac G4 Cube\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003eが出た時は、\n元NeXTユーザがこぞって買ったとか。\u003c/p\u003e\n\u003ch3 id=\"nextstation\"\u003eNeXTstation\u003c/h3\u003e\n\u003cp\u003e次に出たのが薄型のNeXTstation\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003eです。\nバリエーションとして、高速化されたNeXTstation Turboや、カラー対応のNeXTstation Colorがあります\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e。\nNeXTstation Turbo Colorや、NeXTcube Turboというのもあったみたいですが、見たことないです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/NeXTcube\"\u003eNeXTcube - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/Power_Mac_G4_Cube\"\u003ePower Mac G4 Cube - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"https://ja.wikipedia.org/wiki/NeXTstation\"\u003eNeXTstation - Wikipedia\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003eNeXTマシンはほとんどがモノクロなので、カラーは特別なのです。\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "x歳まで働く",
    "url": "https://www.ikemo3.com/theme/life-management/work-until-x-years-old/",
    "contents": "\u003ch2 id=\"75歳まで働くのが自分の目標\"\u003e75歳まで働くのが自分の目標\u003c/h2\u003e\n\u003cp\u003e自分は、75歳まで働くのを目標にしています。\nそのことは、機会があれば他の人にも言っています。\u003c/p\u003e\n\u003cp\u003e「75歳まで働く」と書くと、「75歳まで働かなければいけない」\nというイメージを持つ人もいると思いますが、決してネガティブな意味ではありません。\n「75歳まで社会に役立つことができる」という意味です。\u003c/p\u003e\n\u003cp\u003e収入でいえば、自分が働いて得るお金だけで生活できることをイメージしています。\n75歳を過ぎても働けるうちは働きたいですが、\nおそらく社会に対して役立つことよりも、社会から何かをもらう方が多くなるでしょう。\nもちろん、収入はあくまで目安で、収入にならない働き方を選ぶ可能性もあります。\u003c/p\u003e\n\u003cp\u003e75歳という数字には特に根拠はありませんが、\n平均寿命が80歳くらいなので、その-5歳なのと、\n\u003ca href=\"/dic/shogi/\"\u003e将棋\u003c/a\u003eの現役最高齢がだいたい75歳\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003eだからです。\u003c/p\u003e\n\u003ch2 id=\"75歳まで働き続ける人は珍しくない\"\u003e75歳まで働き続ける人は珍しくない\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/dic/drucker/\"\u003eドラッカー\u003c/a\u003eは75歳のときに、\n「イノベーションと企業家精神」を書きました。\n農家や職人の方で、75歳を超えて働く人は珍しくありません。\u003c/p\u003e\n\u003ch2 id=\"75歳まで働くための必要条件\"\u003e75歳まで働くための必要条件\u003c/h2\u003e\n\u003cp\u003e75歳まで働くためには、 2つの条件が必要です。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e働くことは楽しいことでなければいけない。少なくとも「苦痛」であってはいけない。\u003c/li\u003e\n\u003cli\u003e旅行などは「老後の楽しみ」ではなく、「若い時からの楽しみ」でなければいけない。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eもちろん、年齢によって、仕事を重視するか、プライベートや家庭を重視するかは違います。\n若い時はスキルアップのために仕事に打ち込むのも悪くないし、\n家庭を持った時は仕事はそこそこで、家庭を重視するのが普通でしょう。\u003c/p\u003e\n\u003cp\u003eただ少なくとも「老後のために今を我慢する」という考えはありえません。\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eこれまでの生き方\u003c/th\u003e\n          \u003cth\u003eこれからの生き方\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eある年齢を過ぎたら引退\u003c/td\u003e\n          \u003ctd\u003e働ける限り、働き続ける\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e働く＝苦痛\u003c/td\u003e\n          \u003ctd\u003e働く＝楽しみ\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e老後の楽しみのために現役時代は我慢\u003c/td\u003e\n          \u003ctd\u003e若いときから楽しみを我慢しない\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"life-shiftの40シナリオ\"\u003eLIFE SHIFTの4.0シナリオ\u003c/h2\u003e\n\u003cp\u003eここで書いた内容は、LIFE SHIFTの4.0シナリオ(ポートフォリオ型)に近いです。\u003c/p\u003e\n\u003cdiv style=\"margin: 2em 0;\"\u003e\n\u003ca style=\"display: inline-block;\" target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4492533877/?tag=ikemo3-www-22\"\u003e\n  \u003cimg src=\"/amazon-images/4492533877.jpg\" /\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003ca target=\"_blank\" href=\"https://www.amazon.co.jp/gp/product/4492533877/?tag=ikemo3-www-22\u0026linkCode=ogi\u0026th=1\u0026psc=1\"\u003e\nLIFE SHIFT(ライフ・シフト)\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp\u003eこれは、IT業界で働き続けるが、\n余暇の時間を自分への投資に使い、スキルを更新していくことによって、\n77歳まで働くことができるシナリオです。\u003c/p\u003e\n\u003cp\u003eこの本には4.0シナリオ(起業家型)や、5.0シナリオも出てきますが、\n自分が4.0シナリオ(ポートフォリオ型)をイメージしているのは、\n今のところ自己投資だけで十分やっていけそうな感じだからです。\u003c/p\u003e\n\u003ch2 id=\"平均寿命が100歳になったら\"\u003e平均寿命が100歳になったら?\u003c/h2\u003e\n\u003cp\u003e75歳まで働くのは平均寿命が80歳から変わらないことをイメージしていますが、\nもし100歳まで生きられるとしたら、働く年齢を上げていっても問題ありません。\u003c/p\u003e\n\u003cp\u003eドラッカーは亡くなる直前、95歳まで精力的に働き続けました。\n自分が心配しているのはあくまで「何歳まで社会に役立つ能力があるか」だけで、\n「働く＝楽しみ」である以上、何歳でも働きたいです。\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.shogi.or.jp/news/2017/01/77.html\"\u003e加藤九段、77歳で最高齢対局記録へ！\u003c/a\u003e\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n"
  }, 
  {
    "title": "About",
    "url": "https://www.ikemo3.com/tags/about/",
    "contents": ""
  }, 
  {
    "title": "このセクションについて(log)",
    "url": "https://www.ikemo3.com/log/about/",
    "contents": "\u003ch2 id=\"このセクションについて\"\u003eこのセクションについて\u003c/h2\u003e\n\u003cp\u003eこのセクションでは「ログ」を書きます。\u003c/p\u003e\n\u003ch2 id=\"ブログではなくログ\"\u003e「ブログ」ではなく「ログ」\u003c/h2\u003e\n\u003cp\u003e元々、ブログ(blog)という単語は\nWeb + logという単語が組み合わさった、Weblogという単語の省略形です。\u003c/p\u003e\n\u003cp\u003eしかし、実際のブログの使われ方は多様で、\n元々の単語の持つ「時系列で記録されるもの」というのが曖昧になっています。\u003c/p\u003e\n\u003cp\u003eなので、あくまで「記録」であることを意識するために、\n「ブログ」ではなく、「ログ」を書くことを明言します。\u003c/p\u003e\n\u003ch2 id=\"ログそのまま記録\"\u003e「ログ」＝「そのまま記録」\u003c/h2\u003e\n\u003cp\u003e誤解がある場所を訂正したり、あとで見やすく整理することはありますが、\nログの本質は、「そのまま」記録することです。\n逆に言えば、後で間違ってたと気づいても、訂正してはいけません。\u003c/p\u003e\n\u003cp\u003e「ブログ」が変なのはこの点です。\n例えば食事の記録なら、訂正することには意味がありませんが、\n自分の考えはしばしば変わります。人間なのでこれが当たり前です。\n逆に、考えが全く変わらない人の方が危険です。成長してないので。\u003c/p\u003e\n\u003cp\u003eなので、このサイトでは「そのまま残す場所」として、この「ログ」を用いて、\nそれ以外のこと、変わる可能性があるものは「ログ」を連想させる単語を\n使わないようにしたいです。\u003c/p\u003e\n"
  }, 
  {
    "title": "運営ポリシー",
    "url": "https://www.ikemo3.com/about/",
    "contents": "\u003cp\u003e個人的なサイトです。\nサイトを運営することで、心がけたいことを書きます。\u003c/p\u003e\n\u003ch2 id=\"書き換えを恐れないこと\"\u003e「書き換えを恐れない」こと\u003c/h2\u003e\n\u003cp\u003eこれは2つの意味があって、\n1つは、自分が「完成品」を望みがち、いわゆる完璧主義的な傾向があるからです。\n完璧主義的なこと自体は悪いとは思いませんが、\nそのためにグズグズして先に進まないなら、書いてしまった方が楽です。\u003c/p\u003e\n\u003cp\u003eもう1つの意味は、「言葉尻を捉えて批判する人たち」を恐れないことです。\nもちろん、デマや人道に反した言動は批判されて当然ですが、\n何か書くとはてブやSNSで晒しあげる、ちょっと気軽に書けない現状は辛いです。\u003c/p\u003e\n\u003cp\u003eなので、気軽に書いて、気軽に訂正、再構築していくサイトにしたいです。\u003c/p\u003e\n\u003ch2 id=\"なるだけ根拠を提示する\"\u003eなるだけ根拠を提示する\u003c/h2\u003e\n\u003cp\u003e(2017-08-02追加)\n気軽に書き換えできるサイトを目指していますが、\nかといって、信頼できないサイトにはしたくありません。\nなので、技術記事なら、元となるサイトを提示したり、\n信頼できるサイトにリンクしたり、なるだけ信頼性を上げるように心がけたいです。\u003c/p\u003e\n\u003cp\u003e(2017-11-30追加)\n情報源が「Googleで見つかった検索結果をいくつか見比べた結果」\nとしか言えないケースがあるので、その場合はそのことを明記するようにしました。\u003c/p\u003e\n\u003cp\u003e参考: \u003ca href=\"/theme/information-literacy/reliable-sources/\"\u003e信頼できる情報源\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e(2018-05-26追加)\n逆に言えば、根拠が提示されていれば、リンク集でも構わないと思います。\n最近はSEOで不利なためか、情報源を明かさないサイトが多いので、\nその逆を目指したいです。\u003c/p\u003e\n\u003ch2 id=\"このサイトで書かないこと\"\u003eこのサイトで書かないこと\u003c/h2\u003e\n\u003cp\u003e書くことは決まってませんが、書かないことは決めています。\u003c/p\u003e\n\u003ch3 id=\"ニュース\"\u003eニュース\u003c/h3\u003e\n\u003cp\u003e新製品を買ったとか、結果的に新しいことを書く可能性はありますが、\n新しいだけの中身のない記事は書きません。\u003c/p\u003e\n\u003cp\u003eそのような記事は\u003ca href=\"/log/\"\u003eログ\u003c/a\u003eとして記載、あるいは\n\u003ca href=\"https://nextstep.shogizuki.com/\"\u003eFrom NeXT To Mac(ブログ)\u003c/a\u003eに記載します。\u003c/p\u003e\n\u003ch3 id=\"嫌いなこと悲観的ネガティブな話題\"\u003e嫌いなこと、悲観的、ネガティブな話題\u003c/h3\u003e\n\u003cp\u003e「AよりBの方がいい」という記事を書くときは、Aのネガティブな点よりも、Bの良い点を強調します。\n\u003cdel\u003eどうしても書きたいときは、裏に書きます。\u003c/del\u003e\u003c/p\u003e\n\u003cp\u003e(2017-08-20追加, 2019-04-03更新)現実上ネガティブな話題をゼロにすることは出来ないので、\nなるべく淡々と書きます。\n\u003cdel\u003e愚痴っぽくなる場合は裏に書くようにしたいと思います。\u003c/del\u003e\u003c/p\u003e\n\u003cp\u003e(2019-04-03追加)裏は廃止しました。\u003c/p\u003e\n\u003ch3 id=\"未来予測\"\u003e未来予測\u003c/h3\u003e\n\u003cp\u003e自分のことですら分からないのに、他の人のやることなど分かるはずがありません。\n「将来はこうなる」という未来予測はしません。\u003c/p\u003e\n\u003cp\u003e(2017-08-20追加)ただし、\u003ca href=\"/theme/work-until-x-years-old/\"\u003ex歳まで働く\u003c/a\u003eのように、\n将来のことはどうなるか分からないが、こうなることを想定しておくべきことは書きます。\n書かないのは例えば、企業の新製品についてです。\u003c/p\u003e\n\u003ch3 id=\"広告ブロッカーをブロックするものは入れない\"\u003e広告ブロッカーをブロックするものは入れない\u003c/h3\u003e\n\u003cp\u003e記事に広告を入れていますが、\n広告ブロッカーをブロックしてまで、広告を強制的に見せることはありません。\u003c/p\u003e\n"
  }
]
