Takuya71 のぶろぐ

外資系ソフトウェア会社で働いてます、認定スクラムマスター

raspberry pi 2 購入

Raspberry pi 2 を買いました。

今日 秋葉原へ行く機会があり、半年ぐらい前から買おう買おうと思っていた raspberry pi 2 を marutsu にて raspberry pi 2 が限定30個で 4280円(税別)で売っていたので買ってしまいました。

ついでにケースとmicroSDカードも買いました。

microSD は class 10 の 16GBを買ってみました。

 

まずは 普通に raspbian を入れてみようと思います。
Raspbian

www.raspberrypi.org

Lチカもやってみたいな。
JVM言語ようにJavaもインストールしたいし。
GPIO で センサーつけてみたいし。
やりたいこと沢山。
 
 
 
 

Cabocha を CentOS7にインストール

ソースからインストールしたので 他のディストリビューションでも同じはず。

Cabochaのサイト CaoboCha: Yet Another Japanese Dependency Structure Analyzer

ソースをダウンロードします。

tar jxvf cabocha-0.69.tar.bz2
cd cabocha-0.69
./configure --with-charset=utf8
make
make check
sudo make install

10進数から 2進数、8進数、16進数に変換する。 とその逆

Ruby

2進数 8進数 16進数
to_s(2) to_s(8) to_s(16)
11.to_s(2)
=> "1011"

11.to_s(8)
=> "13"

11.to_s(16)
=> "b"

逆に n進数から 10進数の数字に変換するには to_i(n) を使う

'1011'.to_i(2)
 => 11

'13'.to_i(8)
 => 11

'b'.to_i(16)
 => 11

Scala

Scala の場合 Javaのものを使う。

2進数 8進数 16進数
toBinaryString toOctalString toHexString
scala> 11.toBinaryString
res0: String = 1011

scala> 11.toOctalString
res1: String = 13

scala> 11.toHexString
res2: String = b

逆に2進数の文字列から 10進数に変換

java のparseInt を使う。 Long の場合は java.lang.Long.parseLong

scala> java.lang.Integer.parseInt("1011",2)
res11: Int = 11

cala> java.lang.Integer.parseInt("13",8)
res12: Int = 11

scala> java.lang.Integer.parseInt("b",16)
res14: Int = 11

JavaScript

2進数 8進数 16進数
toString(2) toString(8) toString(16)

gnuplot で 日本語のラベルを指定すると 豆腐になるのですが

gnuplot で 日本語が表示できない。

erminal type set to 'aqua'
gnuplot> set font 'ヒラギノ丸ゴ ProN W4,16'
gnuplot> plot sin(x)
gnuplot> set title 'ああああ'
gnuplot> plot sin(x)

実際は ruby から実行しているのですが、 gnuplot から上のように直接事項しても豆腐に。

gnuplot 側の問題か aquaterm の問題なのかどっちだろう。

情報求む。

できた。

ググったら みつけた

https://blog.milkywaygalaxy.info/blog/2011-1026-2130-gnuplot-japanese-language-label-rotate-vertically/

~/.gnuplot に以下のような記述しておけばよいらしい。

% cat ~/.gnuplot
set term aqua title 'Gnuplot' font 'HiraMinPro-W3, 16' size 640 480 enhanced

やってみたところできた!! f:id:takuya71:20151217235013p:plain

その後 もっと調べてみました。

.gnuplot でなくても 肝なところは

term aqua の部分でした。

.gnuplot で指定しなくとも ruby のプログラム中でも

Gnuplot.open do |gp|
  Gnuplot::Plot.new(gp) do |plot|
    plot.title '出現頻度が高い10語'
    plot.ylabel '出現頻度'
    plot.xlabel '出現単語'
    plot.set 'term aqua font "ヒラギノ丸ゴ ProN W4, 16"'

    x = ht.sort_by {|k,v| -v}[0..9].map{|k,v| k}
    y = ht.sort_by {|k,v| -v}[0..9].map{|k,v| v}

        plot.data << Gnuplot::DataSet.new( [x, y] ) do |ds|
            ds.with = "boxes"
            #ds.notitle
      ds.using = "2:xtic(1)"
        end
  end
end

のように .set 'term aqua font <フォント名> と指定すると 期待通りに日本語が表示されるようになります。

下の画像は 上のプログラムのように ヒラギノ丸ゴ ProN W4 を指定した場合です。 f:id:takuya71:20151218224516p:plain

permutation と combination

Ruby の permutaion は リストから 組み合わせを簡単に列挙してくれます。

例えば [1,2,3,4] から 任意の3つの数字を抽出する組み合わせは以下のように簡単に記述できます。

[1,2,3,4].permutation(3).to_a.each do |l| p l end
[1, 2, 3]
[1, 2, 4]
[1, 3, 2]
[1, 3, 4]
[1, 4, 2]
[1, 4, 3]
[2, 1, 3]
[2, 1, 4]
[2, 3, 1]
[2, 3, 4]
[2, 4, 1]
[2, 4, 3]
[3, 1, 2]
[3, 1, 4]
[3, 2, 1]
[3, 2, 4]
[3, 4, 1]
[3, 4, 2]
[4, 1, 2]
[4, 1, 3]
[4, 2, 1]
[4, 2, 3]
[4, 3, 1]
[4, 3, 2]

Scala だと permutations がありますが、Rubyのように これ一発では出来ないので combination と併せてつかう。

scala> List(1,2,3,4).combinations(3).flatMap(_.permutations).toList.foreach(println(_))
List(1, 2, 3)
List(1, 3, 2)
List(2, 1, 3)
List(2, 3, 1)
List(3, 1, 2)
List(3, 2, 1)
List(1, 2, 4)
List(1, 4, 2)
List(2, 1, 4)
List(2, 4, 1)
List(4, 1, 2)
List(4, 2, 1)
List(1, 3, 4)
List(1, 4, 3)
List(3, 1, 4)
List(3, 4, 1)
List(4, 1, 3)
List(4, 3, 1)
List(2, 3, 4)
List(2, 4, 3)
List(3, 2, 4)
List(3, 4, 2)
List(4, 2, 3)
List(4, 3, 2)

Permutation は順列 Combination は組み合わせ になります。 高校の時に確率統計で習った気がします。

例えば 1 から 4 までの数字の組み合わせは と言う問題だとすると

Ruby だと

p [1,2,3,4].permutation(4).to_a.count

と記述することで 24 通りあることがわかります。

1から4までの数字から二つ取り出す組み合わせは

p [1,2,3,4].combination(2).to_a.count

と すると6 通りということがわかります。

iphone6 液晶壊れる

私のiphone6 ではありませんが、子供使っている iphone6 の液晶が壊れてしまいました。

どうやら ロッカーから出す時に落としてしまったようです。

一応 AppleCare+ 入っているのですが、不注意だと 7800円かかるようです。

修理出そうと予約の状況をみると ほぼ埋まっていて、今週の平日は無理っぽい。。

事前に バックアップとって、iphoneの探すを解除してと 書いてますが、 液晶壊れてて ロック解除出来ないのですが。。 どうしたらいいんでしょう?

とりあえず 週末に予約入れてみよう。

12月13日追記

今日 八王子のビックカメラに持って行って修理してもらいました。 ビックカメラはアップルの正規サービスプロバイダなので アップルストアと 同レベルのサービスです。

予約した時間より少し早く到着したのですが 空いていたので直ぐ対応していただけました。

液晶が壊れているとのことで本体交換の対応になりました。

iPhone を探す機能のオフは この時わかったのですが icloudから行えばよかったのでした。 リモートワイプも出来るし。

修理代は 7800円でした。 ビックカメラのポイントを修理代の一部に使えたので約5000円程で修理できました。

Mac OSX 10.11 El Capitan にアップグレードしたあと 空き容量激減

OSX 10.11 El Capitan に まずは Serverとして使っている Mac mini 2009 のほうからアップグレードすることにしました。

Take time

作業自体は 問題なく 30分程度?で 10.11 となりました。

Issue

しかし しばらくすると 空き容量が少ないという 警告が出てきます。 このMac mini 120GBのSSDに換装しているのですが、アップグレードするまでは かなり 余裕の空き容量だったはず。

どこが そんなに 容量を食っているのかとしらべてみたところ ライブラリ -> Server -> Serverdocs という 今まで意識もしたようなことの無いフォルダの容量が 60GBほど使っています!

調べてもみても ファイル共有で使うフォルダのようですが、イマイチはっきりしませんし どうして10.11にしてから急にこんなにつかっっているかわかりませんでした。 同じような 現象は いくつかあるようなのですが、 ファイル共有のiOSからのアクセスがどうのこうの のような投稿もありましたがはっきりとした結末は出ていないようでした。

Workaround

とりあえず このままじゃ困るので。。。 ServerDocs の中身を 他の容量のあるディスクに一応コピーしてから 削除しました。 その後 とくに不具合は出ていません。

そのうち どういう用途のフォルダで どういう時に中身が作成されるのか調べてみたいと思います。

El Capitan 自体は 遅いというレビューも いくつか見ててちょっと心配してましたが、私の使用では 遅くなったという感じはしません。 もう少し使い込んでみたいと思います。