yhara.jp

Recent Posts

mac/linux/windowsに全対応した日本語入力切り替えキー

2018-05-22
Tech

文脈

僕のmacbookにはVMWare Fusionが入っていて、その上でLinux(Ubuntu)とWindowsを動かしている。仕事は主にLinuxでやっていて、Excelなどが必要なときはWindows、それ以外はmacという使い分けなのだが、ここで問題になるのが日本語入力切り替えキーである。

IMEはmac/linux/winのいずれもgoogle日本語入力(mozc)をインストールしている。そのためIME on/offが環境によらず同じキーでできるのが理想なのだが、macbook本体のキーボードに加えLet's Split(自作キーボード)を併用していることもあり全ての環境で条件を揃えるのが難しかった。

今回、ようやくそのような状況を構築できたので、手順をメモしておく。

理想

(more...)

Install Ruby 2.3 on Ubuntu 18.04 LTS

2018-05-21
Tech

Usually you can install Ruby with rbenv and ruby-build for Ubuntu. However, I needed to install older Ruby (2.3.7) and got an error.

Error

Just running rbenv install 2.3.7 stops with "Failed to configure openssl. It will not be installed." , even I've installed libssl-dev package.

Reason

On Ubuntu 18.04, libssl-dev is openssl 1.1.0, which is not compatible with Ruby 2.3.

Solution

  1. download openssl-1.0.2o.tar.gz https://www.openssl.org/source/
  2. unpack, ./config and make
  3. CONFIGURE_OPTS='--with-openssl-dir=/home/yhara/bin/openssl-1.0.2o' rbenv install 2.3.7

DXOpal 1.2.0をリリースしました

2018-05-16
Tech

Rubyでブラウザゲームを作るためのライブラリ、DXOpalの1.2.0をリリースしました。

変更点は以下です。

  • draw_xxのzオプションがうまく動いていなかったのを修正
  • Sound#stopメソッドを追加
  • singletonなどが使えなかったのを直した
  • shiftやctrlキーが使えるようにした
(more...)


ARC062-E『AtCoDeerくんと立方体づくり』をRubyで

2018-03-05
Tech

会社のAtCoder会でARCのE問題をやったのだけど、解説を見て実装してもなかなか通らなくて大変だった。

「同じカードを複数の面に使うことはできない」という制約をうまく実装する方法がわからなくて、問題名で検索したところ、いくつか解説が見つかった。

(more...)

DXOpal 1.1.0をリリースしました

2018-02-05
Tech

もうすぐ出る予定のるびま記事に合わせて、DXOpal 1.1.0をリリースしました。

https://github.com/yhara/dxopal/blob/master/CHANGELOG.md

1.0.0からは、リクエストされたメソッドをいくつか追加しています。今後も未実装機能についてはリクエストがあれば対応するという感じでいくつもりなので、DXRubyのメソッドで足らないものがあればtwittergithub issueで教えてください。


git stash popがconflictしたとき、強制的にpopさせる方法

2017-12-31
Tech

git stashは便利なコマンドだけど、stashして、stashして、編集して、コミットして、popしてpopして…みたいなことをしてると、stashした時点とコードが変わっててpopできない、みたいなことがたまにある。

こういうとき、git stashのマニュアルを見ると、「手でconflictを解決してからstash popすること」と書いてある。けど、時にはとりあえずなんでもいいから無理やりpopしてほしい、という場合もある。

このようなときは以下の手順でgit stash pop --force的なことができる。

# 手元の変更をいったんcommitする(このコミットはあとで破棄するのでログは適当でよい)
$ git commit -a -m 'tmp' 
(more...)

WebAssemblyとは何であり、何でないのか

2017-12-01
Tech

これはWebAssembly Advent Calendar 2017の1日目の記事です。明日はyamachuさんによるElectronでWebAssemblyを使う話だそうです。楽しみですね。

WebAssemblyとは

アドカレ初日記事なので、WebAssemblyとは何か?という話を簡単にしておきます。WebAssemblyはWebのための新しいコンパイルターゲットで、Chrome/Firefox/Safari/Edgeでの動作が既にサポートされています

Webのためのコンパイルターゲット、とは何でしょうか。WebAssembly以前は、JavaScript以外の言語をブラウザ上で動かそうと思ったらまずJavaScriptに変換してやる必要がありました。近年だとScala.js(Scala→JavaScript)やGopherJS(Golang→JavaScript)というプロジェクトがあり、古くはC/C++のコードをJavaScriptにするEmscriptenがあります。しかし例えばEmscriptenでC言語で書かれたゲームをまるごとJavaScriptにしたりすると、出力結果の.jsファイルが巨大になり、ダウンロードや読み込みに時間がかかってしまうという問題がありました。

これを解決するのがWebAssemblyです。.wasmファイルはバイナリフォーマットなので.jsよりずっと小さくでき、またパース処理も単純なのでロードも速くなります。WebAssemblyの登場により、JavaScript以外の言語をブラウザで動かすことがずっとやりやすくなったと言えるでしょう。

(more...)

qmk_firmwareで「tmuxのコピーモードに入るキー」を作る

2017-11-24
Tech

来年1月のレツプリ組み立てに備えてergodox ezのキーマップをレツプリに寄せてるんだけど、[がベースレイヤーでなくなった関係で、tmuxのコピーモードに入る手順(^z [)が Ctrl z RAISE kみたいな4キーになって結構厳しかったので、qmk_firmwareの設定で「それ用のキー」を作ってみた。

当該コミットはこれ。

マクロを定義する

やり方は簡単で、keymap.cの下の方にあるaction_get_macro関数を編集し、キー配置欄にM(0)とか書くだけ。今回はRAISE + ,Ctrl z [を入力したいので、以下のようになる。

SEND_STRING(SS_LCTRL("z")"[");

SEND_STRINGの使い方は以下を参考にした。



Posts

(more...)

Articles

(more...)

Category

Ads

About

About the author