magchoの雑記

プログラミング

Lily58にレイヤーを追加する

自分は Lily58 Pro という左右分割の自作キーボードを使っています。ErgoDoxよりは小さくCorneよりは大きいのでとても自分に合っています。 Lily58のデフォルトFWにはRaise/Lower/Adjustの3レイヤーが定義されていますが、最近会計処理を多くやることになってテンキーが欲しくなったので追加しようと思います。Lily58にはオプションとしてOLEDがつきます、デフォルトでレイヤー名やキー入力の履歴を表示してくれる親切設計でした。 keymap.cにテンキーレイヤーを追加する レイヤー定義はに書き込みます。 レイヤーの切り替え方は何通りかあります、デフォルトのRaise/Lower…

続きを読む

.gitignoreを自動生成するサブコマンドを作ろう

demo asciicast gitignoreを言語とに自動生成してくれるサービスはいくつかありますが、わざわざwebサイトを開くのも面倒です。 幸いなことにgitignore.ioがapiを提供してくれています、これを利用してgitにサブコマンドを追加しましょう。 ついでに.gitignoreを上書き・追記の確認・gitignore.ioにテンプレートが存在しない場合はエラーを表示などもあると親切ですね。shにするとこんな感じに。 .gitconfigに書くとときには全体を関数にする・ダブルクォーテーションをエスケープ・が使えないのでに差し替えなどをすると以下になります。 書いていて気づいたんですが、#はエスケープせずに動きますね。 使い方

続きを読む

GulpでSharpを使って画像のリサイズをする

gulp-sharp で画像のリサイズをしたい時にできなかったので自分でそれっぽいのを書いた。 フロントエンドで画像を扱う時にsrcディレクトリには元の大きさの画像を用意してdistディレクトリには適切なサイズまで小さくして公開する運用をしている。 自分は欲しい大きさにresizeしてからoptimiseをしています、gulpでのresizeで一番npmでダウンロード数が多いのはgulp-image-resizeです。このライブラリはGraphicsMagick か ImageMagickまたはその両方を必要とします。CIでサイトをビルドする時にこれらがインストールされていないときは自分でapt等でインストールをする必要がありますが、ciの制約でインストールができなかったのでsharpを使ってresizeさせたかった。 探すとgulp-sharp…

続きを読む

qmk firmwareでctrlとの同時押しをカスタマイズする

キー入力が下手なのでバックスペースを連打しがちなのですがバックスペースキーはキーボード上では遥か右上にあります。これが原因で右手首を痛めたことも。入力精度を上げろという話なのですが出来るならもうしてます。 また、以外と日本語入力をしていると使いがちな「ー」伸ばし棒も近くに欲しいものです。 今回はにbackspace・にハイフンを割り当てます。 Ctrlキー Ctrlキー含め装飾キーには様々なキーバインドが割り当てられています。一般的にはにはreturn・にはbackspaceなど色々あります。zsh/bashなどのshellやターミナルのキーバインドに設定されていることが多いです。macではに行末まで削除があったりと気が利いています。 qmk firmwareではraise/lower…

続きを読む

Goで作ったCLIツールのビルド・配布をGitHub Actionsで自動化する

Goで作ったdotfiles管理ツールのdotzをビルド・バイナリ配布・homebrewのアップデートまでを自動化したメモ。 GitHub Actionsを初めて本格的に利用してみました。beta版の時はyamlにズラズラとshell scriptのように記述した覚えがありますが現行のactionsでは考え方が違うようです。 github actions 現行のGitHub actionsについては日本語文献もたくさんあるので詳しいことはそっちを見てほしいんですが、GitHub上ではworkflowがpushやPR、タイマーなどのトリガーによって実行されます。workflow内には任意のactionを持ちこのactionが順次/並列で実行されます。 actionにはdockerのようにinputと環境変数を渡すことができ、任意の数のoutputができます。outputは別のaction…

続きを読む

use-packageについてまとめる

Emacsのパッケージマネージャーのuse-package.elにはパッケージインストールの他に任意のタイミングで評価させるキーワードというものがありますが、自分はこれをよく分からず使っているので調べてまとめます。 実行タイミング 評価の順番はこうなります パッケージ名の実在確認 パッケージをロード パッケージをロード インストールするパッケージの設定を記述するためのキーワードです。 :preface 条件分岐キーワードを同時に使用していた時でも、条件分岐よりも先に評価されます。つまり、指定したパッケージ名が実在するならば真っ先に必ず評価してくれます。 :init パッケージが読み込まれる前に評価されます。遅延キーワードの影響を受けません。 :config 当該のパッケージが読み込まれた後に評価されます。initに比べ、config…

続きを読む

Chromeのティラノサウルスについて調べた

google chromeにはネットワークに問題があると恐竜のイラストが表示され、スペースや上下キーで操作できる障害物避けゲームができることは有名な話ですね。自分はこの無愛想なデザインの恐竜がかわいくて好きです。 さて、好きなものを身に付けたいという感情は自然の摂理ですが。この恐竜に関するグッズはgoogleのオンラインショップではTシャツしか販売していません、実店舗に置物はあるらしい。ストラップとかステッカーとかトートバックとかが欲しいんです。 ないなら作るしかないので、そもそも作って問題ないのかを考え、ライセンス周りを調べてみたかった所存です。 この恐竜はネットワークに問題がある時に加えて、chromeでにアクセスすることで表示することができます。これを見る感じdinoと呼ばれているみたいですね。 ちなみにネットワークエラーの時には小さいdinoくんですがで表示したdino…

続きを読む

dotfilesを管理するツールを作った

増税前にPCを買い換えておこうと思い、高校の時に買ったMacBook Air 13-inch Early 2015から2019 MacBook Pro 2019 13-inch 4thunderbolt3 portsにしました。 メモリとかSSDとかも追加して、この度念願のUSキーボードにしました。 初バタフライキーボードです、このペチペチ感が楽しいです。 さて、パソコンを買い換えたということは環境を再構築しなければなりません、大概のアプリケーションはhomebrewで管理しているのでインストール用のスクリプトを書いておけばいいですね。 あとは設定周りのファイルを移行したいです。正直dotfilesを管理するツールはいくらでもあります。前はhomeshick…

続きを読む

tmux上のemacsで下線が表示されなかった話

macOS(Mojave)でiterm2を使っています、emacsのテーマを設定していてunderlineが表示できなくて困りました。 emacsでは文字色や背景色のほか、文字の下線, 太字, 斜体, 取り消しなど色々な表記ができます。 自分の環境ではflycheckのerror, warningなどが下線付きの書式になるはずでした。 iterm2上で直接emacsを起動している時にはきちんと下線が表示されますが、tmuxセッション上でemacsを起動すると下線が表示されませんでした。 そもそもターミナル上でこのようにunderlineやboldなどの文字装飾を行う時はANSIエスケープシーケンスかなーと思ったんですが iterm直接とtmux上で を表示させても正しく同じ表示になります、アレレ。 なのでemacsの設定が悪いのかと思って色々変えてみたんですが、結局はtmux…

続きを読む

homebrew-caskにないアプリは自分で追加しよう

Cask に追加してみる homebrew を更新し、作業中は自動更新を止める まずで更新をかけておきます、これで Cask 含め brew 本体も更新されます。 次に、homebrew は Cask を自動更新する仕様なので作業中はこれを止めておきます。 環境変数なのでターミナルを開き直したあとや、別のターミナルには効きませんのでご注意を。 Cask に追加したいアプリケーションをインストールしておく 今までと同じようにブラウザでインストーラーなどをダウンロードし、インストールします。後々使うのでダウンロードしたファイルを消さないようにしましょう。 github 上でhomebrew-caskを fork する local 上の homebrew ディレクトリの git に fork したリポジトリを追加する Cask…

続きを読む

macのターミナル起動時に怒られるようになった話

今日ターミナルを起動すると と表示されるようになった。とりあえず perl を最新にしてみようと plenv をインストール https://github.com/tokuhirom/plenv#homebrew-on-mac-os-x 公式の説明どうりに .bachrc に追記 最新版をダウンロード、インストール パッケージマネージャーもインストール(pip 的なやつ) そして local/lib.pm をインストール

続きを読む

NetlifyとGithubで独自ドメインのサイトをHTTPS化したメモ

情報が古く、執筆時の Netlifty の UI 等が変わっています。ご注意を 事の発端 IOS 11 キタ ━(゚ ∀ ゚)━!   Safari からカメラの映像が取得できる! これでアプリではなくブラウザから AR できるようになった!と喜んでいたら、このカメラの api は https じゃないとセキュリティ的な問題で動かないのである。 Github pages で独自ドメインでホスティングしているサイトを HTTPS にしたいけどお金はない。 すでに導入レポは検索すればいくつも見つかるものの、どうも日本語の情報が少ないのでメモすることにした。 使ったもの Github Netlify お名前.com 手順 お名前.com でドメインを取得します。 Github に公開するサイトのファイル一式を push しておきます。 一度 Github pages…

続きを読む

Dockerで立ち上げたwebサーバでmod_rewriteしたかった話

内容 DockerHub の公式の PHP イメージを使っていて、mod_rewite したい人向けのお話です。結論だけ知りたい人は読み飛ばしてね。 事の発端 僕自身が立ち上げた web サービスではもともと URL がという感じでとてもダサかったので、かっこよくしたかった。WordPress などではパーマリンクと呼ばれ URL がイカした感じになっているので、僕も方法をパクった。 調べると apache 側の設定で mod_rewrite を使うとアクセス時に URL を記述したルールに基づいて置換してくれるらしい。 僕の web サービスではアクセスを全て index.php で受け、get パラメータで動作を変化させている、pukiwiki とか?の設計をパクったはず。動作ルールは以下 cmd view 記事の表示、page で記事を指定 edit 記事の編集、page…

続きを読む

Docker volumeを調べたメモ

完全にメモ書きになってるので Evernote にでも書けよって感じ。 Docker はコンテナ型仮想化システムで、必要な時に必要なだけコンテナを作り、終わったら捨てる。いわば使い捨てだ。でも、消えて欲しくないデータを扱う事もあるだろう。そんな話。 自分はインフラエンジニアではないし、Docker でホストの環境弄らずに開発環境作りたかったから始めたっていう理由 Docker コンテナは使い捨てるもの → 残したいファイルはコンテの外に保存しておこうっていう考えらしい。 Docker の volume にも色々ある docker run の-v オプション centos の latest(最新版)を起動するコマンドである。この時-v オプションを使ってコンテナ内に/hoge という名前のシンボリックリングを作成し、フォルダの実体は/var/lib/docker/volumes…

続きを読む

MBAのSerriaをクリーンインストールした時の手順メモ

自分用のメモ記事なので、参考程度にどうぞ。 環境 MacBookAir macOS Sierra 10.12.2 homebrew 1.1.5 homebrew-cask 1.1.5 mas 1.3.1 mackup 0.8.15 準備編 1. 必要なファイルを外部のストレージにコピー home ディレクトリをそのままコピーしてしまえばある程度は安心 プッシュしていない Git プロジェクトはプロジェクトごとコピーしておけばブランチ構造ごとコピーできる VirtualBox のエクスポートツールでバックアップしてもいいし、面倒ならフォルダごとコピーして*.vbox ファイルをあとでインポートすれば OK 2. Dropbox をインストールし同期できるように設定しておく インストール済みならばそれで OK…

続きを読む

Homebrew Caskで特定のアプリがインストールできなくなった話

状況説明 かなり前から homebrew cask を使うと。 こんなのが出てきていた。「cask のバージョンアップでアプリが配置されるディレクトリの場所が変わったから前の場所に置いてたアプリ新しいとこに移動してくれ」っていう話だった気がする、筆者は面倒だから移動しなくても使えるからやっていなかったが、docker がうまくインストールできないので今更対応した。 やることは簡単、コンソールに書いてあるURLに書いている通りに進めるだけだが、しかし今回 Thunderbird…

続きを読む

AWSの学割は高校生に優しくない

事の発端 学校で課題研究の授業があって数人でグループを組んで自然言語処理の研究をしていたところ、VPS が必要になってどうしようと思ってたら Github education の中に AWS あったなーと思ってセットアップしてたらクレジットカード番号必須で詰んだ。 そんなこんなして、解決できたのでここにメモしておく。 高校生とクレカ 基本的に高校生はクレジットカードが作れない。クレジットカード会社の規定なのだからしょうがない。なら代わりになるものを使えばいいじゃないという考え。 デビッドカードを作る 日本の銀行などでは15歳以上(中学生を除く)でデビッドカードが作れる場合がある、このカードがあればクレジットカード同様に AWS…

続きを読む