ksino's diary

覚えたことを忘れないように、小さなことでも書いていく。

2014-01-01から1年間の記事一覧

Ubuntu 14.04にUbuntu Tweakをインストールする

sudo add-apt-repository ppa:tualatrix/ppa sudo apt-get update sudo apt-get install ubuntu-tweak

xclipが便利

コンソールからクリップボードにコピーしたい場合、xclipが便利です。 sudo apt-get install xclip cat xxx | xclip -sel c

Ubuntu 14.04 + Ruby 2.1.3でcursesを使う

Rubyのcursesモジュールを使ってみたい、ということでインストールしました。 sudo apt-get install libncurses5-dev libncursesw5-dev gem install cursesところが、これでUTF-8の文字列を表示されると文字化けしてしまいました。。 悩んだ結果、libncurses…

Ubuntu 14.04にrbenvでRubyをインストールする

まずはrbenvをインストールします。 git clone https://github.com/sstephenson/rbenv.git ~/.rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc source ~/.bashrc rbenv --version続いてruby-bu…

PPAの削除

PPAをアプリごと削除する sudo apt-get install ppa-purge sudo ppa-purge ppa:<ユーザ名>/<PPA名> PPAだけ削除する sudo add-apt-repository -r ppa:<ユーザ名>/<PPA名> 公開鍵の削除 前述の方法でPPAを削除しても、公開鍵は削除されないので、別途、以下の手順で削除しま</ppa名></ppa名>…

Androidで画面をスリープモードにさせない

Activityで以下のように。 Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 解除したい場合は window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); ちなみに、この方法では画面が暗く(省…

スイフトスポーツのエンジン復活

エンジン警告灯がついていましたが、入院の結果、排気センサーが原因と分かりました。 厳密には、排気センサーそのものではなく排気センサーのヒータが切れていたようです。 交換は工賃込みで\28,000.-なり。痛い出費。。

スイフトスポーツのエンジン警告灯がついた。。

今後もしばらく乗る予定の先代スイフトスポーツ(ZC31S)。 ギア比が残念な1型だけど。。エンジン警告灯がついてしまったので入院したところ、排気センサーの異常とな。 予定外の出費が辛い。

デロリング イージーイエロー

amazonでパープレクサスを買った後、「この商品を買った人は〜」の広告に釣られて買ってしまいました。。デロリング イージーイエロー出版社/メーカー: デロリングメディア: おもちゃ&ホビー クリック: 2回この商品を含むブログを見る黄色いリングの内側に…

フィット ピラミンクス

最近、ルービックキューブ系の立体パズルにハマっています。 ただ、3x3x3のルービックキューブは難しすぎるので、ちょうどいい難易度のものが無いか…と探したところ、見つかりました。ピラミンクスという四面体パズルです。 いくつか同じようなものがあるよ…

Ubuntu 14.04でEclipse ADTを使う

http://developer.android.com/sdk/index.htmlから落としてきたEclipse ADTを起動すると、エラーダイアログが表示された。 /home/user/adt-bundle-linux-x86_64-20140702/sdk/platform-tools/adb: error while loading shared libraries: libstdc++.so.6: ca…

Ubuntu 14.04にSHL25を接続する

ISW13FからSHL25に乗り換えて一ヶ月、快適な日々を過ごしています。 Ubuntu 14.04にSHL25を接続するには、どうやらudevルールを書いてあげると良いようです。udevルールファイルを作成します。 sudo vi /etc/udev/rules.d/51-android.rules以下の定義を記載…

Ubuntu 14.04 alt + tabキーの動作をアプリケーション切り替えからウィンドウ切り替えに変更する

最近のUbuntu(Unity)では、alt+tabキー押下時の動きがウィンドウ切り替えではなく、アプリケーション切り替えになっていますね。あまり好きになれないので、ウィンドウ切り替えに戻します。まずは設定ツールを導入します。 sudo apt install compizconfig-se…

java.util.DateのhashCodeを比較

java.util.Date#hashCodeメソッドはオーバーライドされており、「オブジェクトそのものの比較」には使えません。 http://docs.oracle.com/javase/jp/7/api/java/util/Date.html#hashCode()こんな処理を実行すると long current = System.currentTimeMillis()…

Ubuntu 14.04にVirtualBoxの最新版を導入

/etc/apt/sources.listに以下を追記。 deb http://download.virtualbox.org/virtualbox/debian trusty contrib以下のコマンドを実行。 wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add - sudo apt-get up…

Ubuntu 14.04にOracke JDK 8をインストールする

PPAで楽してインストールします。 sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installerあとは画面の指示に従っていくだけ。もしOpenJDKが導入済みであれば、Oracle JDKの導入前に消しておきます…

コラッツの問題をRubyで実装してみる

勉強がてら書いてみる。 def collatz count = 0 func = Proc.new do |n| if n == 1 then count else count += 1 if n.even? then func.call(n / 2) else func.call(n * 3 + 1) end end end end (2..10000).each do |i| puts collatz.call(i) end 恥ずかしな…

HTMLのformでEnterキーを押下した時の動き

業務向けWebアプリでは、オペレータさんがマウスを使わずキーボードのみで操作しているかと思います。この場合、Enterキー押下でsubmitするケースが多いのではないでしょうか。このあたりのUIを作っていて、Enterキー押下時の動きがよくわからずにハマってし…

Rubyの大域脱出(throw-catch)

throw-catchで大域脱出ができるらしい。 # coding: utf-8 str = catch :escape do loop do puts "ループ1" loop do puts "ループ2" throw :escape, "脱出" end end end puts str 実行結果は以下のとおり。 $ ruby throw-catch.rb ループ1 ループ2 脱出

Rubyでコマンドライン引数を解析する

OptionParserってのを使うと簡単らしいです。 # coding: utf-8 require 'optparse' def cmdline args = {} OptionParser.new do |parser| parser.on('-f', '--foo', '真偽値オプション') {|v| args[:foo] = v} parser.on('-b VALUE', '--bar VALUE', '引数付…

クラス変数とクラスインスタンス変数の違い

クラス変数は継承される。 クラスインスタンス変数は継承されない。 # coding: utf-8 class Foo # クラス変数 @@var1 = 123 # クラスインスタンス変数 @var2 = 456 def self.var1 @@var1 end def self.var2 @var2 end end class Bar < Foo end p Foo.var1 p …

Vimで複数行のコピペ

vim

以下の手順で。 開始行に移動し「mb」 終了行に移動し「me」 「:'b,'ey」<Enter>と実行 解説(というか、理屈を自分で忘れないように。。) 「m」はマークをつけるコマンドです。その次の文字がマーク。 マークは任意の文字で良いですが、beginとendのつもり。 最後に</enter>…

Rubyはクラスもオブジェクト

# coding: utf-8 class Foo def hello puts "hello" end end # クラスオブジェクトを変数に代入 a = Foo obj = a.new obj.hello 実行結果は helloです。

Rubyのインスタンスメソッド優先順位

上から順に探索される。 1. 特異メソッド 2. そのクラスで定義したメソッド 3. includeしたmoduleで定義したメソッド 4. スーパークラスで定義したメソッド

Rubyのprivateメソッド

Javaのprivateメソッドは「自クラス内でしか呼び出しができないメソッド」ですが、Rubyでは「レシーバを付けた呼び出しができないメソッド」です。あくまでそれだけです。自クラス外からも呼び出しができます。 # coding: utf-8 class SuperClass private de…

Rubyのexit関数

Rubyのexit関数はSystemExit例外を投げます。 begin exit rescue StandardError puts $!.class rescue SystemExit puts $!.class ensure puts "ensure" end puts "end" 実行結果は以下のとおり。 SystemExit ensure end

Rubyのクラス変数は、継承関係にあるクラスで共有される

class Super @@x = 1 def self.x @@x end end class Sub < Super @@x = 2 end p Super.x 実行結果は以下のとおり。 2

Rubyでは、あるクラス内で他クラスのクラスメソッドを定義できる

こんなこともできるんですね。 class Foo end class Bar def Foo.foo puts "foo defined in Bar" end end Foo.foo 実行すると $ ruby other_class.rb foo defined in Bar

Rubyの文字列比較(eql?とequal?)

eql?は文字列の内容が等しい場合にtrueになる。 equal?は同じ文字列を参照している場合にtrueになる。 a = "abcd" b = "abcd" puts a.eql?(b) # true puts a.equal?(b) # false

Ubuntu 13.10 + Ruby + SQLite3

Ubuntu 13.10で↓をやると怒られた。 $ sudo apt-get install sqlite3 $ sudo gem install sqlite3-ruby Fetching: sqlite3-1.3.9.gem (100%) Building native extensions. This could take a while... ERROR: Error installing sqlite3-ruby: ERROR: Failed …