mecab_jpのブックマーク (48)

  • Nature Remo をかっこよく電源プラグに取りつけるウルトラマル秘テク

    記事では Nature Remo の初期モデルについて書く。製品写真を見る限り、Nature Remo mini(初期モデル)や、現行の Nature Remo 3 や他のモデルにでも適用できると思うが保証しない。(試してみた方はぜひ @mecab まで教えていただけると嬉しい。) Nature Remo という製品があって、これはいわゆるスマートリモコンで、赤外線リモコンに対応した各種家電(主にエアコンやテレビ)をスマートフォンから操作できるようにするものだ。 製品自体は結構便利で、見た目もシュッとしていて良いのだが、USB 給電で動くためにコンセントからの配線がダサくなってしまう。コンセントに USB 電源アダプタを差し、そこから USB ケーブルを伸ばさなければいけない。Nature Remo には下の写真に示す USB ケーブルとアダプタが付属していたが、結構目立ってしまう。 ど

    Nature Remo をかっこよく電源プラグに取りつけるウルトラマル秘テク
    mecab_jp
    mecab_jp 2022/05/25
    ブログ書いた
  • WireGuard で VPN サーバーを作り、OpenWRT から接続して拠点間 VPN を構成する

    背景 先日引っ越しをした。引っ越し先のインターネット環境は一言で言えば残念で、好きな ISP と契約することができず、マンションが包括して契約している ISP 経由でしかインターネットに接続できない。悲しいことにこの ISP は各個にグローバル IP を割り当てないので、外に向けたサーバーの公開が制限されている [1]。 この問題を回避するため、外部の VPSVPN サーバーとし、ルータとの間にVPN を張ることでサーバーを公開できるようにした。外部のユーザーは、VPS に割り当てられたグローバル IP を通して、筆者の自宅内のサーバーに接続することができる。 構成 表題の通り、VPN には WireGuard を使う。高速に動作し、設定もシンプルらしい。 図1. ネットワーク構成図 図 1 のように、ルーターには ISP からプライベート IP アドレス、10.167.X.Y/24

    mecab_jp
    mecab_jp 2022/05/10
    書いた。
  • CS381 を使って MicroATX に 48 TB 分の HDD を詰める

    SilverStone SST-CS381B という PC ケースを買った(正確には、1 年前に買った後放置していた...)。このケースは、MicroATX にもかかわらず、ひたすらストレージを積めるということが特徴で、ホットスワップ可能な 3.5/2.5 インチベイ 8 つに加え、内部に 2.5 インチベイを 4 つ搭載しており、最大で 12 台の HDD/SSD を積むことができる。ユニークなのはホットスワップベイで、8 台が 4 台ずつまとめられて 2 の SAS (SFF-8643 Mini-SAS)で接続するようになっている。記事では、このケースについてレビューする。 経緯 録画用にサーバーを構築していることもあって、以前の記事で書いたように大量のハードディスクを接続していた。 サーバを新調した先の記事 [http://blog.misosi.ru/2015/01/31/bl

    CS381 を使って MicroATX に 48 TB 分の HDD を詰める
    mecab_jp
    mecab_jp 2020/08/11
    SilverStone SST-CS381B レビュー
  • Ghost を v0.1 系から v3 系に移行した。あるいは CWM (CJK Writes Matter) について。

    Ghost を v0.1 系から v3 系に移行した。あるいは CWM (CJK Writes Matter) について。 ‌ このブログは Ghost というブログシステムによって稼働しているが、遙か昔、正式リリース前の v0.1 系 の時に入れたままで、シンプルなブログシステムとしては良く動いていたのもあってずっとアップデートをサボっていた。 しかし、リンクのついた画像を配置した場合に AMP 用のページで画像が表示されない問題に気づき、これは実はテンプレートの問題だったかもしれないのだが、この機会に最新版までアップデートしてみることにした。すんなり行ったのでやり方を記録しておく。 なお、基的には公式の方法に従っている。まず v0.1 系から v1 系に移行し、それから v3 系に移行した。 なお、CJK Writes Matter という煽りに釣られて来た読者は感想の項を読めば良い

    mecab_jp
    mecab_jp 2020/07/07
    重い腰を上げてGhostをアップデートしたので経過を書いた。あとラテン文字で全部すんじゃう言語圏の人のCJK環境に対する対応の渋さは渋いなという愚痴もかいた。
  • 「京」コンピューターの CPU が届いた。

    理化学研究所が「Society 5.0に向けた高性能計算科学研究支援及び研究者育成支援に関する寄附金」という寄付を募っている。これに 50,000 円以上の寄付をすると、特典として「京」コンピュータで使用されていたCPUを活用したグッズがもらえるとのことだったので、昨年 (2019年) の6月頃に寄付をしていた。 「京」は2019年は8月に運用を終了し、先日、後継機である富岳が TOP500 で1位になり、そして7月2日に CPU が届いた。 メルカリで適当に買ったジャンク CPU よろしく(失礼)プチプチにでも包まれて封筒で適当に届くかと思っていたのだが、段ボールの外箱の中には黒のかっこいい化粧箱が入っていて驚いた。 開けて白い半紙を外すと、「京」で使われた CPU であることを示す証明書を入れたファイルが。 そしてその下には桐箱。 桐箱を外すと... ジャジャーン。「京」の CPU。シ

    「京」コンピューターの CPU が届いた。
    mecab_jp
    mecab_jp 2020/07/04
    理研に寄付したら京コンピューターのCPUをもらったのでまとめました。(写真付)
  • Vetur を複数のルートフォルダを持つワークスペース上で正しく動作させる方法

    TL; DR Vetur を動作させたいフォルダをワークスペースの先頭に移動させると良い。 文 Vetur は Visual Studio Code 用の、Vue プロジェクトのための拡張機能だ。これは Vue コンポーネントのためのシンタックスハイライティングやフォーマッティング、Linting などを行ってくれて便利だ。しかし、複数のルートフォルダを持つプロジェクトでは、期待する設定ファイルを読み込まず、上記の機能が正しく動作しないことがある。 以下に例を示す。 上記の画像では、個人的に作っているプロジェクトのビューの一つだが、@/... で始まるパスが VSCode 上で解決されておらず、エラーが出ている。さらにこのために関連するモジュールについて効かなくなっている。参照されるべき tsconfig.json には "paths": { "@/*": [ "src/*" ] },

    mecab_jp
    mecab_jp 2020/05/26
    VSCodeのワークスペース上に複数のルートフォルダを置いた際、Veturが正しく動作しなかったので解決方法を書きました。作業したいフォルダをワークスペース上で先頭に持ってくるだけです。
  • ホットクックのレシピを検索する Slack bot を作って、副産物としてホットクックレシピ検索ライブラリができた。

    Vetur を複数のルートフォルダを持つワークスペース上で正しく動作させる方法 TL; DR Vetur を動作させたいフォルダをワークスペースの先頭に移動させると良い。 (adsbygoogle = window.adsbygoogle || []).push({}); 文 Vetur は Visual Studio Code 用の、Vue プロジェクトのための拡張機能だ。これは Vue コンポーネントのためのシンタックスハイライティングやフォーマッティング、Linting などを行ってくれて便利だ。しかし、複数のルートフォルダを持つプロジェクトでは、期待する設定ファイルを読み込まず、上記の機能が正しく動作しないことがある。 以下に例を示す。 上記の画像では、個人的に作っているプロジェクトのビューの一つだが、@/... で始まるパスが VSCode 上で解決されておらず、エラーが出てい

    ホットクックのレシピを検索する Slack bot を作って、副産物としてホットクックレシピ検索ライブラリができた。
    mecab_jp
    mecab_jp 2020/01/11
    ホットクックのレシピ探してくれるSlack botと、レシピ検索用ライブラリを書きました。
  • TypeScript コードのテスト時、ビルド後のファイルもテストする

    TypeScript でコードを書いた際、ソースのテストは通っていても、何かの弾みでビルドされたコードが壊れていないことを念のために確認しておきたいという需要はある。とくにライブラリを作っていて、npm に公開する場合など、publish 前に検証するのは良い考えだろう。 このために、同じテストコードをソースと生成物それぞれに対して適用する方法を考える。つまり、以下のような conditional import を行いたい。 // このコードは動かない。 if (process.env.TESTMODE === 'dist') { import { FooClass, FooString } from '../dist/Foo'; } else import { FooClass, FooString } from '../src/Foo'; } describe('Test foo',

    mecab_jp
    mecab_jp 2020/01/11
    書いた。
  • Happy Hacking Keyboard Professional Hybrid Type-S を買った。

    Happy Hacking Keyboard Professional Hybrid Type-S を買った。 2020年1月7日追記: 修正ファームウェアの公開予定日について追記した。 2020年2月5日追記: 修正ファームウェアを適用した感想を追記した。 HHKB 表題の通り、Happy Hacking Keyboard Professional Hybrid Type-S を買った。 Happy Hacking Keyboard Professional Hybrid Type-S Happy Hacking Keyboard (HHKB) は、高級キーボードの一つで、その打鍵感や無駄を省いたキー配置、そしてそのコンパクトさが人気のキーボードだ。2006年に発売された HHKB Professional 2 をずっと使ってきていたが、この度、新しいシリーズが発売されたので購入した。

    Happy Hacking Keyboard Professional Hybrid Type-S を買った。
    mecab_jp
    mecab_jp 2019/12/21
    Happy Hacking Keyboard Professional Hybrid Type-S レビューです。
  • (未解決)OpenWrtでv6プラス (MAP-E) 接続すると、一部のサイトに接続できなくなった。

    先日の記事で、OpenWrtでMAP-E、あるいは国内ではv6プラスと呼ばれる方法での IPv4 over IPv6 接続に成功したことを書いた。 快適に利用できていると思っていたが、ある日、一部のサイトに接続できないことに気づいた。例えば、ニチバン株式会社のWebサイト (https://www.nichiban.co.jp) に接続できない。読み込みまでとても時間がかかったり、あるいはタイムアウトしてしまう。他のサイトでも時々読み込み遅かったり、途切れたりすることがある [1]。 IPv6 ではルータがパケットをフラグメントすることが禁止されているため、MTUが大きすぎた上に経路上で ICMP がフィルタされて Packet too Big が届かなかった場合、接続ができなくなる可能性があるとの情報を見たため、MTUを下げたり、MSS Clamping の設定を有効にしたが、改善しなか

    mecab_jp
    mecab_jp 2019/12/14
    OpenWrtでv6プラス接続できたと思ったけど、まだちょっと問題がある。
  • OpenWrtでv6プラス (MAP-E) での IPv6 / IPv4 接続と、IPv4 PPPoEでのサーバー公開を両立する

    OpenWrt 図 1. ネットワーク概念図。各アドレスは架空のものだ。 環境 以下の環境で行った。 ISP: So-net (v6プラス オプションを契約済み) ルータ: Buffalo WSR-1166DHP2 (OpenWrt 18.06.5) すでに IPv4 PPPoE での接続は確立している すでに PPPoE でサーバーを公開するためのNATは設定している。 MAP-E で接続するためには、(当然ながら)v6 プラスの接続オプションを申し込んでおかなければならない。So-net では無料でこのオプションを追加することができる。現時点ではこのページから申し込みできる: So-net 光 プラスの次世代通信 v6プラス | So-net (ソネット)。僕は以前に v6 プラスではない IPoE サービス( IPv4 には接続できない)を申し込んでいたため、一度解約して申し込む必要

    mecab_jp
    mecab_jp 2019/12/02
    OpenWrtでv6プラス接続できたのでブログ書いた。
  • GUI 版 Emacs のフォントサイズをシュッと変える interactive function

    2019年10月15日: さらに簡単に変更する、標準で可能な方法を追記をした。 Mac 上で GUI 版の Emacs を使っているが、フォントサイズを変更したくなることが時々ある。ターミナルで Emacs を使っているならば、ターミナルのフォントサイズを変更すればいいが、GUI 版の場合、set-face-attribute関数を使って変更しなければならない [1]。 そこで、フォントサイズを簡単に変更するための interactive function を書いた。以下のGistにあるスニペットを .init.el 等に追加すれば、M-x change-font-size でフォントサイズを変更できる。現在のフォントサイズも表示されるので分かりやすい。 Gist: mecab/change-font-size.el 以前使っていたビルドではツールバーにフォントサイズ変更のメニューがあった

    mecab_jp
    mecab_jp 2019/08/05
    ブログ書いた。
  • Firebase Authentication のデータを別プロジェクトにコピーするスクリプトを書いた

    表題の通り、Firebase Authentication のデータを別プロジェクトにコピーしたい状況が起こったので、それを行うためのスクリプトを書いた。 copy_firebase_auth.sh 使い方 Firebase CLI でコピー元、コピー先それぞれのプロジェクトにログインする Firebase の Web コンソール上でコピー元のハッシュパラメータをコピーし、スクリプトと同じディレクトリに .hashParameter として保存する PROJECT_FROM={コピー元プロジェクトID} PROJECT_TO={コピー先プロジェクトID} copy_firebase_auth.sh を実行する 解説 基的にやっていることは単純で、Firebase のCLI にはユーザーのデータをディスク上に書き出す firebase auth:export と、書き出されたファイルから

    mecab_jp
    mecab_jp 2019/04/11
    書いた。
  • 追加ソフトのインストール無しで、ボイスロイド品質のTwitchチャット読み上げを行う。

    2019年6月17日をもって、docomo による「音声合成【Powered by AIAPI」が終了した [^1]。これにより、以下の方法によるチャット読み上げは使えなくなった。以前書いた、Webブラウザに内蔵されている音声合成エンジンを利用する記事(棒読みちゃんなどのインストール無しで簡単にTwitchチャットの読み上げを行う)を利用してほしい。 あるいは、株式会社エーアイが提供するもの以外(HOYA製とNTTテクノクロス製)の音声合成エンジンを利用するAPIは引き続き提供されているので、知識のある方はそれらを使うのもいいだろう。 概要 先日、棒読みちゃんなどのインストール無しで簡単にTwitchチャットの読み上げを行うという記事を書いた。この記事では、StreamLab の Chat Box と、Web Speech API を組み合わせることで、追加のソフトウェアをインストールす

    mecab_jp
    mecab_jp 2019/03/22
    ブログ書いた。ボイスロイドと同等のTwitchチャットの読み上げを、追加ソフトのインストール無しで行います。
  • 棒読みちゃんなどのインストール無しで簡単にTwitchチャットの読み上げを行う

    2022年5月26日: 最近のOBS(Streamlabs OBS ではなく家の方)は、OBSのブラウザ自体が音声を再生できるようになったようです。その場合について追記しました。(二重に音声が聞こえた場合、別にブラウザを開く必要はないので閉じてしまってください。) 2020年8月23日: コードを修正した件について追記しました。後続記事(docomo の API を使う版)は既に動かなくなっているので、その旨を追記しました。 概要 記事では、追加のソフトウェアのインストールを行うことなく Twitch チャットの読み上げを行う方法について説明する。正確を期せば Chrome、 Firefox、Edge といったブラウザが必要になるが、多くの環境ではすでに導入されているだろう。手法では、Streamlabs [1] の Chat Box に対して、受信したチャットメッセージを Web

    棒読みちゃんなどのインストール無しで簡単にTwitchチャットの読み上げを行う
    mecab_jp
    mecab_jp 2019/01/28
    ブログ書いた。棒読みちゃんなどのインストールをせずにブラウザだけでTwitchチャットの読み上げを行う、Twitch配信界隈に革命を起こす記事です。
  • Cloud Firestore エミュレータ を concurrently と一緒に使う

    概要 Cloud Firestore エミュレータ を コマンドの並列実行支援モジュール concurrently と一緒に使う場合、コマンドを少し工夫しないと期待通りに動作しない。以下を行う必要がある。 エミュレータの起動の際、firebase serve --only firestore < /dev/null とし、標準入力を /dev/null から取るようにする。 concurrently の--success (-s) オプションを適切に設定する。 期待通りに動作する �npm script の例を以下に示す。 "scripts": { "test": "concurrently --success=first --kill-others -n 'emulator,test' 'npm run test:run-emulator' 'sleep 7 && npm run tes

    mecab_jp
    mecab_jp 2019/01/21
    ブログ書いた: Cloud Firestore エミュレータをconcurrentlyと一緒に使おうとしたらハマったので解決策をまとめました。
  • Firebase Hosting のルーティングを噛ませて webpack-dev-server などの静的コンテンツホストを使うためのプロキシ

    Firebase Hosting のルーティングを噛ませて webpack-dev-server などの静的コンテンツホストを使うためのプロキシ 2019/1/14 午前5:57 (JST) provider のコードを修正。 概要 Firebase Hosting 用に設定したURL書き換えを利用しつつ、webpack-dev-server などの他の開発サーバーからコンテンツの取得をしたい。この問題に対して、Firebase Hosting の開発サーバー (firebase serve) が内部的に利用している superstatic を使い、URLを書き換えた上で別のサーバーからコンテンツを取得するようなプロキシを作ることで解決した。 完全なコードは https://gist.github.com/mecab/9890416390e8c5a2c42547823d252e20 で参照

    mecab_jp
    mecab_jp 2019/01/14
    ブログ書いた。Firebase HostingのURL書き換えルールをwebpack-dev-serverなどの他の開発サーバーに対して適用するプロキシの作り方です。
  • 英国 Three の SIM を買う際に損しない方法: クレジットをアドオンに変換するのを忘れるな

    概要 Three の Pay As You Go プランを購入または積み増しをした際、積み増したクレジットをアドオンに変換しないと 0.01GBP / MB と不利な料金で課金されるため、積み増し直後に忘れずに変換すべきだ。変換は Three の SIM を入れた状態で、https://three.co.uk/my3 から行える。 背景 諸事情で現在北アイルランドに来ている。外で携帯電話が使えないと不便なので Three というキャリアの SIM を購入した。Three は英国でサービスを提供するキャリアの中では比較的安く、かつEU圏内でのローミングを無料で提供している[1]。 Three のプリペイド式のプランである Pay As You Go プランでは、Phone tariffs にあるように、例えば 2GB を 10GBP 、5GB を 15GBP、12GB を 20GBP ...

    mecab_jp
    mecab_jp 2018/12/27
    ブログ書いた。ThreeのSIMを買うときは注意してください。
  • ZshとiTerm2の環境下で、プロンプトにemojiを用いた場合にコマンド補完後に最初の1文字が重複して表示される問題を解決した。

    ZshとiTerm2の環境下で、プロンプトにemojiを用いた場合にコマンド補完後に最初の1文字が重複して表示される問題を解決した。 ある日久々にiTerm2をアップデートしたところ、コマンド補完後に最初の1文字が重複して表示される問題が起こった。 と言われてもどのような問題か分からないと思う。ぼくも上手く説明できない。実際に見るとすぐ分かるので動画を撮った。 以上のように、補完を行うと、入力していた文字列の1文字目が重複して表示される上に、行を消しても1文字だけ残ってしまう状況になる。これは表示上だけの問題で、Enterキーを押しても入力されて無いものとして扱われる。この状況で作業するとかなりストレスが溜まった。 プロンプトの文字列を変更して問題を切り分けると、emojiがプロンプト中に含まれているのが原因だと分かった。ぼくの環境では$の代わりに💰のemojiを使っている。金運アップを

    ZshとiTerm2の環境下で、プロンプトにemojiを用いた場合にコマンド補完後に最初の1文字が重複して表示される問題を解決した。
    mecab_jp
    mecab_jp 2018/12/19
    ブログ書いた。ZshとiTermでemojiが入ったプロンプト使った場合にプロンプトが微妙に壊れた方は参考にしてください。
  • コンバースは輸入できるし、Superdry 極度乾燥(しなさい) も輸入できる。さらに言えば偽ブランド品も輸入できる(ただし個人利用に限る)。たぶん。

    コンバースは輸入できるし、Superdry 極度乾燥(しなさい) も輸入できる。さらに言えば偽ブランド品も輸入できる(ただし個人利用に限る)。たぶん。 ある日久々にiTerm2をアップデートしたところ、コマンド補完後に最初の1文字が重複して表示される問題が起こった。 と言われてもどのような問題か分からないと思う。ぼくも上手く説明できない。実際に見るとすぐ分かるので動画を撮った。 以上のように、補完を行うと、入力していた文字列の1文字目が重複して表示される上に、行を消しても1文字だけ残ってしまう状況になる。これは表示上だけの問題で、Enterキーを押しても入力されて無いものとして扱われる。この状況で作業するとかなりストレスが溜まった。 プロンプトの文字列を変更して問題を切り分けると、emojiがプロンプト中に含まれているのが原因だと分かった。ぼくの環境では$の代わりに💰のemojiを使って

    コンバースは輸入できるし、Superdry 極度乾燥(しなさい) も輸入できる。さらに言えば偽ブランド品も輸入できる(ただし個人利用に限る)。たぶん。
    mecab_jp
    mecab_jp 2018/11/22
    Blog書いた。輸入していきましょう。