Caffè Latte

日々を徒然に

PythonでN-gramをワンライナーで書いた

コード

def ngram(text: str, num: int) -> list:
    return "".join([("".join([text[(len(text) + j + i ) % len(text)] for j in range(num)]) ) for i in range(len(text))])

N-gramとは

Ngram(N-gram)とは何か & 形態素解析との比較

感想

リスト内包表記を多用すると読めなくなる

Golangでbuildしたバイナリファイルを人に渡したら動かなかった

経緯

SlackでGolangCUIツールを配布した そしたらそのままでは動かなかった 最初は$./main$で動かしてと言っていたのだが、$command not found&や$Permission denied$を起こした

結論

実行権限がなかった $chmod u+x main$ を実行してもらって解決

問題点

実行権限等を知らない人にバイナリファイルごと渡す際に、その操作をどうするかが悩みどころ Shellスクリプト組むか、なんかしらで解決策がないかと模索中

感想

ロスコンパイルできてGUIに強い言語なんてないかなあって考えながらScalaやります

RubyでPythonのスクリプトを動かす方法

結論から

システムコールを使う

system("python Hello.py")

でおけ これの返り値はBool型 True、Falseで返ってくる

経緯

Pythonでサーバーを書く知見がなかったから

感想

いろいろ大変だった

matplotlibで気の抜けたグラフを作る

経緯

レポートに手書き風なグラフを使いたかった

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.show()

なんてやると普通は f:id:Nozomi_M:20170725000714p:plain のようなグラフがでます

plt.plot()の前に plt..xkcd()を追加します f:id:Nozomi_M:20170725000853p:plain するとあら不思議気の抜けた手書き感のあふれるグラフが書けました

xkcdというのは

xkcd: Physics Confession

有名なWeb漫画らしくて、そのグラフの書き方を真似して出力できるようです。

Raspberry PiでRubyをインストールしようとしたら弾かれた

先に結論

Downloading ruby-2.3.4.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.4.t
ar.bz2
Installing ruby-2.3.4...

BUILD FAILED (Raspbian 8.0 using ruby-build 20170523-25-g476d09b)

Inspect or clean up the working tree at /tmp/ruby-build.20170720023806.19353
Results logged to /tmp/ruby-build.20170720023806.19353.log

Last 10 log lines:
installing capi-docs:         /home/pi/.rbenv/versions/2.3.4/share/doc/ruby
The Ruby openssl extension was not compiled.
The Ruby readline extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Try running `apt-get install -y libssl-dev libreadline-dev` to fetch missing dependencies.

Configure options used:
  --prefix=/home/pi/.rbenv/versions/2.3.4
  LDFLAGS=-L/home/pi/.rbenv/versions/2.3.4/lib
  CPPFLAGS=-I/home/pi/.rbenv/versions/2.3.4/include

言われたとおり

sudo apt-get install -y libssl-dev libreadline-dev

を実行、 そしたらうまく言った

Raspberry Piでのdpkg: unrecoverable fatal error, aborting:というエラー

経緯

Rapsberry Piにvimを入れようと思ったら

dpkg: unrecoverable fatal error, aborting:
 files list file for package 'qjackctl' is missing final newline
E: Sub-process /usr/bin/dpkg returned an error code (2)

というエラーが起きた

そのままGoogle翻訳にかけると

dpkg:回復不能な致命的なエラー、中止:
  パッケージ 'qdbus'のファイルリストファイルに最終改行がありません
E:サブプロセス/ usr / bin / dpkgがエラーコードを返しました(2)

といい致命的なエラー??? さっきOS焼いたばかりなんだがと思いググった感じ良い解決策があった

dpkg が壊れた

cd /var/lib/dpkg/info

してqdbus.listの中身を見てみると^@がされている大量に入力されている

下記の画像みたいに f:id:Nozomi_M:20170720003757p:plain

それでvi使ってnomalモードdを押すと一行まるまる消えるのでそれを行う。 そうするとまた他の場所のエラーがでるので同様の手順を行う

やり方まとめ


sudo apt-get install ???をする際に

dpkg: unrecoverable fatal error, aborting:
 files list file for package '????' is missing final newline
E: Sub-process /usr/bin/dpkg returned an error code (2)

が返ってくる そこで????.listの中身を見て、^@ を削除 またsudo apt-get install ???を行い繰り返す


今回修正したやつら

vim qdbus.list
qjackctl
qtchooser
qtcore4-l10n
raspberrypi-artwork
qttranslations5-l10n.list
raspberrypi-bootloader.list
raspberrypi-kernel.list
raspberrypi-ui-mods.list
raspberrypi-config.list
raspi-config
raspi-copies-and-fills.list
python3.4.list
python3.list

備考 なんでこんなエラーがでたのか正直わからない

追記

OSを焼く際にオプションが必要だったらしい
ddコマンドの最後に conv=sync を付ければいいとのこと
解決してくださり、ありがとうございました。

akkiesoft.hatenablog.jp

聴覚過敏持ちはMDR1000Xを買え

聴覚過敏

私は聴覚過敏と視覚過敏を持っている。 眩しいところではサングラスのような色の付いた特殊なメガネをかけ、大きな音がなるところでは耳栓か、イヤーマフをつけていた

だが、これでは見た目の問題がある 明らかに不審者なのだ

そこでMDR1000X

友達がMDR1000Xを持っていたので貸してもらった 周りの雑音 特に感覚過敏の人が気にする、健常者には気にならない音がほぼ聞こえなくなる

従来のノイズキャンセリングヘッドホンには微妙なノイズがあり、嫌がっていたがMDRにはなかった

難点なのは持ち運び、 ヘッドホンだから大きい、メガネかけてると使いにくい等あるけど それを差し引いても聴覚過敏問題を解決できたのでとても良いと思う

また音質も良いため、無駄なオーディオ沼に落ちるくらいなら、これ一つ買って終了にすると良いと思う。