Page 2 of 6

Previous page

2015-07-18

17:35:45

i3のステータスバーの設定

~/.i3/config の中で bar の設定を次のようにすると、 $mod を押した時だけステータスバーを表示できるように設定できる。 あと position も上にした。

1
2
3
4
5
6
bar {
    mode hide
    hidden_state hide
    status_command i3status
    position top
}

.i3status.conf を次のように設定した。

https://github.com/kbaba1001/dotfiles/blob/master/i3/dot.i3status.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
order += "disk /home"
order += "run_watch VPN"
order += "wireless _first_"
order += "ethernet _first_"
order += "battery 1"
order += "battery 0"
order += "load"
order += "tztime local"

battery 1 {
        #last_full_capacity = true
        integer_battery_capacity = true
        format = "%status %percentage"
        format_down = "No battery"
        status_chr = "⚇ "
        status_bat = "⚡"
        status_full = "☻ "
        #low_threshold = 20
}

battery 0 {
        last_full_capacity = true
        integer_battery_capacity = true
        format = "%status %percentage"
        format_down = "No battery"
        status_chr = "⚇ "
        status_bat = "⚡"
        status_full = "☻ "
        low_threshold = 20
}

# ほかはデフォルト設定なので省略
Comments

16:41:14

TLP でバッテリーの過充電対策をしているのだが、 Debian を testing にしたらうまく動かなくなったので直した。

Debian jessie の時は次の方法に従っていた。 http://qiita.com/sunaemon0/items/91ac37b4c9928874f077#1-5

原因を調べるために次のコマンドで tlp の状態を確認した。

1
sudo tlp-stat

すると、 末尾に次のメッセージが出ていた。

1
2
+++ Suggestions
* Install acpi-call kernel module for ThinkPad advanced battery functions

どうやら acpi-call-tools が使えなくなったらしい。 apt で調べたら acpi-call-dkms というパッケージがあったので、こちらを入れた。

その後、バッテリーの設定をやり直したらうまくいった。

1
2
sudo tlp setcharge 60 80 BAT1
sudo tlp setcharge 50 80 BAT0
Comments

00:28:31

i3使い始めた。

i3 は ~/.i3/config を作るとデフォルトの設定を読まなくなるようなので、

1
cp /etc/i3/config ~/.i3/config

をして設定を変更するのが良さそう。

さっそくリポジトリに追加しておいた。 https://github.com/kbaba1001/dotfiles/blob/master/i3/config

lua で設定を書く必要があった awesome と比べて、 i3 はシェルをうまく使っている感じ。 こういうシンプルさは好感がもてる。 dwm くらいまでいくとストイックすぎて不便だが…。

タイル型wmとしての考え方も awesome とは違うように思うので、楽しめそう。

ドキュメント類は次が良さそう。

相変わらず arch linux の wiki の網羅性はすごい。

Comments

00:19:01

ShiftLock を押した時にデスクトップに通知する

長年 ShiftLock をうっかり押してしまっていることに気が付かないことが多くて、 なんとかしたかった問題を解決できたのでまとめる。

はじめに、次のソフトをインストールする。

1
sudo apt install libnotify-bin xbindkeys

libnotify-bin はデスクトップ通知のシェル用のクライアント。 デスクトップ通知デーモンが別途必要だが、多分何かしら入っている。 ない場合 https://wiki.archlinux.org/index.php/Desktop_notifications あたりをみて好きなものを入れる。

僕は http://www.knopwob.org/dunst/ を入れた。 https://github.com/sboli/twmn でもいいかも。

xbindkeys はキー入力にフックを仕掛けることができるようにするソフト。

はじめに次のコマンドを実行して、設定ファイルを初期化する。

1
xbindkeys --defaults > ~/.xbindkeysrc

-k オプションをつけて実行して、フックを設定したいキーを押すと設定の雛形が表示される。

1
2
3
4
5
6
7
% xbindkeys -k
Press combination of keys or/and click under the window.
You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
"(Scheme function)"
    m:0x1 + c:48
    Shift + Shift_Lock

これを元に、 ~/.xbindkeysrc に次を追加する。

1
2
"notify-send -t 5 'ShiftLock'"
    Shift_Lock

これで Shift_Lock を押した時に 5 秒間通知が表示されるようになった。

Comments

2015-07-10

22:53:25

LinuxでDVDのリッピング

CD のリッピングについて書いたのでついでに DVD についても。 だいたい動画もスマフォで見たいので mp4 とかに変換したいので HandBrake を使います。

handbrake コマンドでGUIツールが立ち上がるので後はなんか良い感じに出来る。 特定のスマフォ端末向けの動画も作れるので便利。

Comments

2015-07-05

18:11:18

TestUnit について

test-unit を触ってみたらいい感じだった。

RSpec が悪いとは思わないし、業務で Rails のテストを何でやるかと聞かれたら、 RSpec が無難だと思うけど、他のテストフレームワークも触ってみたくなった。 trailblazer とかで Rails が全体的に テストしやすくなっているなら test-unit みたいな軽量なフレームワークでもいいのではないかという 仮設というか希望のようなものを抱いている。

Rails で TestUnit を使う準備

rails new コマンドを使うと普通に TestUnit が使える状態で test ディレクトリが作られるのでこれに従う。

あとは test-unit-rails を入れておけば rr とか capybara とか使えるようになるので良さそう。

TestUnit の機能

だいたい次のコードで全部の機能っぽい。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# NOTE 特定のファイル中の特定のテストだけ実行する方法
#      (more: http://qiita.com/myokoym/items/2c3559ec0e060b7ec943)
#
# bundle exec rake test test/models/user_test.rb TESTOPTS='-v -n "test: the truth"'
# bundle exec rake test test/models/user_test.rb TESTOPTS='-v -n "/(test: the truth|test_hoge)/"'
#

class UserTest < ActiveSupport::TestCase
  class << self
    # テスト群の実行前に呼ばれる
    def startup
      p :_startup
    end

    # テスト群の実行後に呼ばれる
    def shutdown
      p :_shutdown
    end
  end

  # 毎回テスト実行前に呼ばれる
  setup do
    p :setup
  end

  # テストがpassedになっている場合に,テスト実行後に呼ばれる.テスト後の状態確認とかに使える
  cleanup do
    p :cleanup
  end

  # 毎回テスト実行後に呼ばれる
  teardown do
    p :treadown
  end

  test "the truth" do
    assert true
  end

  # test "power assert failure case" do
  #   coins = [1, 5, 50]
  #   target_coin = 10
  #   assert do
  #     coins.include?(target_coin)
  #   end
  #
  #   # NOTE 他のアサーションは次を参照
  #   # https://test-unit.github.io/test-unit/ja/Test/Unit/Assertions.html#assert-instance_method
  # end

  def test_hoge
    assert true
  end

  # NOTE データ駆動テスト
  data(
    'test1' => [1, 1],
    'test2' => [2, 2])
  def test_equal(data)
    expected, actual = data
    assert_equal(expected, actual)
  end

  sub_test_case 'sub1' do
    setup do
      puts 'setup sub1'
    end

    cleanup do
      puts 'cleanup sub1'
    end

    teardown do
      puts 'treadown sub1'
    end

    test 'サブテストケースのテスト' do
      assert true
    end

    sub_test_case 'sub2' do
      setup do
        puts 'setup sub2'
      end

      cleanup do
        puts 'cleanup sub2'
      end

      teardown do
        puts 'treadown sub2'
      end

      test 'サブサブテストケースのテスト' do
        assert true
      end
    end
  end
end

参考サイト

Comments

2015-06-19

18:52:05

ActiveRecode っぽいクラスをつくるあれ

DBにアクセスしないけど ActiveRecode のような機能をもったクラスがほしいというケースがときどきあって、 Rails の ActiveModel をつかえばできるんだけど、なぜか ActiveModelattributes メソッドに 対応してないので不便。

そこで https://github.com/cgriego/active_attr とか https://github.com/solnic/virtus とか使う。

今の仕事では https://github.com/cgriego/active_attr を使っている。

で。今日気がついたんだけど。

active_attr はコールバックに対応してなかった。

active_attr は ActiveModel のラッパーなので、コールバックは ActiveModel を使うことにした。

やり方は http://guides.rubyonrails.org/active_model_basics.html#callbacks

ただ、僕がやりたかったのは before_validation なので、 http://apidock.com/rails/ActiveModel/Validations/Callbacks/ClassMethods/before_validation のようにする。

active_attr と合わせて使うので、下記のようになる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Person
  include ActiveAttr::BasicModel
  include ActiveAttr::Attributes
  include ActiveModel::Validations::Callbacks

  attr_accessor :name

  validates_length_of :name, maximum: 6

  before_validation :remove_whitespaces

  private

  def remove_whitespaces
    name.strip!
  end
end

person = Person.new
person.name = '  bob  '
person.valid? # => true
person.name   # => "bob"

なんか active_attr の内部実装に依存している感じでやだなー。

というわけで Pull Request を出してみた。 https://github.com/cgriego/active_attr/pull/145

Comments

2015-06-17

18:47:17

https://blog.lastpass.com/ja/2015/06/lastpass-security-notice.html/

LastPassがハッキングされてアカウント情報が盗まれた痕跡があるらしい。 たぶん辞書攻撃みたいなことをされたのではなかろうか。

念の為 LastPass のマスターパスワードを変更するついでに次のことをした。

  • 2段階認証を掛けられるサービスではひと通り2段階認証を掛けた
    • google
    • twitter
    • facebook
    • lastpass
    • dropbox
    • github
  • Google 認証システム をスマホに導入
  • lastpass へのアクセスを日本だけに制限した ( 参考: http://zbuffer.hateblo.jp/entry/lastpass-securitysetting )
  • lastpass のメアドをエイリアス付きにした ( メアドをネットに公開しているのでそのまま使うとログイン情報を半分さらしているようなものなので )

2段階認証の最大の問題点は携帯をなくした時にヤバイこと。

予防策として 電車に忘れた携帯電話が戻ってきたので知見を共有します で取り上げられている次の3点は行っておいた。

とはいえ実際なくすとヤバイ。 携帯はほぼ常に持ち歩いているものだしなんとかならないものなのか…。

別に2段階認証を携帯で行う必要ないと思うんだけど。 それこそGoogle 認証システムみたいなので発行される数値をPCのアプリで見られるようになっていても、 そこまで問題ない気がするけど、どうなんだろうか…。

Comments

2015-06-12

10:32:41

https://github.com/apotonick/trailblazer というものを知って、最近のRailsでの悩みを解決できそうな予感がしている。 モデルとコントローラの中間層が欲しかったり、コンポーネント毎にViewをテストしたかったりするので、 trailblazerの考え方をうまく取り込みたい。

reform や roar まわりはすごく納得できるんだけど、 cell はどうなんだろうか。 これはこれで複雑な気がしていて、 Rails の View とパーシャルと draper のようなものでも 事足りるケースは多い気がする。

あと『エリック・エヴァンスのドメイン駆動設計』も買った。

設計について知識増やしたい

Comments

2015-06-08

18:12:38

社内ノマド

最近の仕事場である。

5/25 (月) に職場のオフィスが上野から秋葉原に移転した。 移転に伴い新設されたのがこのノマドスペース。(正式名称は「コワーキングスペース」)

一応外部にも開放されていて自由に使って良い空間となっている。 詳細は https://www.doorkeeper.jp/%E4%BC%9A%E5%A0%B4/eiwa-systems-management

で。

最近私は自分の席ではなくこのコワーキングスペースで仕事をしている。 静かな音楽が流れていて自販機が近くにある。 たまに社員がミーティングしたり休憩したり仕事したりしているけど、ずっといるのは私だけだ。

朝、会社に来てコワーキングスペースでPCを広げて、一日仕事をして帰る。 オフィスにはチームメンバーと話をするときや荷物を取りに行きたいとき等の何かしら用事があるときしか入らない。 基本的なやりとりは Idobata (チャット)で事足りる。口頭で話したほうがいいことは口頭で話せばいい。

ただ椅子が硬かったり、やっぱりキーボードを使いたかったりはする。

ときどき我慢できなくて結局こうなる。

Comments

Next page

kbaba1001 profile photo
馬場 一樹 ( @kbaba1001 )
A programmer. Ruby on Rails, SublimeText, zsh, Linux.
Twitter,GitHub