ardggy's blog

Esc - Meta - Alt - Ctrl - Shift

tool-bar-mode と menu-bar-mode をオフにしておくやつ

(tool-bar-mode -1) みたいにしてオフにするのが定番ですが、ツールバーが消えるときにウィンドウがガチャガチャしてかっこ悪いし、消すだけでも 100ms くらいはかかるわけで、最初の最初からオフにできないかなーと思っていた。

github.com

以下の設定は Mac 版限定ですが、X環境だと ~/.Xresources で設定できるとか。

$ defaults write org.gnu.Emacs ToolBar -string no
$ defaults write org.gnu.Emacs MenuBar -string no

ScrollBar はうまくいかなかったので、とりあえず (run-at-time 0.5 nil 'scroll-bar-mode -1) しておいた。

グループごとにランダムで1件

例によって MySQL 限定です。

PostgreSQL でも LIST_AGG とか使えばいけそう?

team_players

team player
red taro
red takeshi
red maro
white daikichi
white tsubasa
white ninja
white takamori

上の red, white 各チームから、ひとり誰でもいいから出てきてほしい、 という要件で、下のようなクエリを実行する。

SELECT
    team
  , SUBSTRING_INDEX(GROUP_CONCAT(player ORDER BY rand() SEPARATOR ","), ",", 1) AS random_selected
FROM 
  team_players
GROUP BY
  team;

f:id:ardggy:20181002231627g:plain

実行するたびに、red, white から選出される player が変わる。

当然スカラ値しか取れないが、得られた値をキーにして JOIN することはできる。

Emacs の起動高速化の試み(2)

ardggy.hatenablog.jp

el-get をやめて、標準の package.el に切り替えた

だいたい 300ms ほど削れた。 そもそも自分の場合 el-get である必要がなかった……。

exec-path をキャッシュするようにした

毎回 exec-path-from-shell-initialize を実行していて、これも 300ms ほどかかっていた。 終了時に exec-path を書き出しておいて、起動時に読み込むようにした。 PATH を変更するということはほぼないので、困ることもない。

これで 0.7 秒ほどで起動できるようになった。