2017年2月10日金曜日

bash_profile

ログイン時には~/.bash_profileが呼ばれる。 ちぃ覚えた

2016年7月10日日曜日

Quick Tab Switch

Chromeの拡張に、現在開いているタブをショートカットで行き来できる拡張があります。

Chrome store
QuicktabSwitch
これを文字列でfilterできるようにしました。
new feature
文字列をタイプするようになったためタブに飛ぶ時のコマンドをCtrl + <表示されているアルファベット>という仕様に変更したためPRを出すのはやめときますが、個人的に使いやすいためこのままにしておこうかなと思っています。
ちなみに、Chrome storeでquick tab的な文字列で検索すると山ほど類似拡張出てきて悲しい思いをしていることは秘密だ。
追記:これ 割と自分が想像している通りの挙動をしていてワロタwwwわろた・・・

2015年1月31日土曜日

第1回 プログラマのための数学勉強会

今週末プログラマのための数学勉強会に参加した。 内容としてはこんな感じだった。
  • 線形代数(アフィン変換とか)Slideshare
  • 素数の話
  • 4次元の話(ベクトルの話)
  • AutoEncoderの話
  • バックトラック法の話 SlideShare
今週中に復習したい。特に一番最初のアフィン変換の話とバックトラック法の話。

学生の時は画像処理を研究していたので、NNとかバックプロパゲーションとか特徴量抽出とかは一応おぼろげながら理解していたんだが、そもそもDeepLearningってなんだ 見たいな説明があんまなくて今一分からなかった。

正直NNの具体的な数式やらよりも現在画像認識の研究の状況をはさんでもらえると良かったのだが...。
調べるとDeepLearning自体2012頃出てきた概念だそうな。

素数と4次元の話はもはやよくわからない世界観になっていたので聞いていて面白かったのだが控えにも今後の仕事に関わる事はないだろうな。

とりあえず一番ダイレクトに仕事に関わりそうなアルゴリズム的な話と平易な線形代数位理解しておきたいのでこの辺りをしばらく勉強したいと思う。

バックトラッキング法についてはQiitaにソースがあるみたいな事言ってたけど、確認できず。

2014年11月24日月曜日

[github]fork元からcommitをマージする方法

メモ。
github上でforkしたリポジトリで動いているときにfork元に何らかのcommitがあった場合のmerge方法
git remote add upstream https://fork元のurl
git fetch upstream
こうすると新しくブランチが作成されるのでそれに対してmergeを行えば良い
作業ディレクトリに移動して以下のコマンドでmerge
git merge upstream/repository名
参考公式ページ
fork-a-repo
syncing-a-repo

2014年10月25日土曜日

gradleハンズオン

仕事柄結構gradleのお世話になっているためGradleハンズオン - G*ワークショップZ に参加。 アジェンダとしてはこんな感じ
  • Gradle 2.1動向
  • plugin ポータルを公式ではじめました。
  • plugin script blockにより3rd partyのpluginの使用が簡単に
  • インクリメンタルビルドはじめました。
  • ハンズオン
  • タスクの使い方
  • カスタムプラグインの実装
  • TL
  • gradle 2.2 最新動向
  • oss開発者としての薦め
インクリメンタルビルドは非常にありがたい。これだけでも2.1にアップデートする価値があるかもしれん。(デフォルトではオフ)
allprojects {
  tasks.withType(javaCompile) {
    options.incremental = true;
  }
}
これで有効になるっぽい
pluginポータルと3rd partyのプラグインが使いやすくなる点に関しては将来に期待
カスタムプラグインについてはカスタムプラグインの作成 にほぼ書かれている内容っぽいかな?
gradle publishToMavenLocal
で~/.m2/にpushlishできてmavenLocal()を使って自作pluginをapplyできるようになるっぽい。
色々面倒ならbuild.graldeのそのままpluginを実装するとクラスパスとか気にしなくていい感じ。
なんか面白いネタを見つけたらちょっと作ってみよう。
gradle 2.2でちょっと気になったのはcross-platformの対応が便利になったっぽい?みたいな内容があるらしい。
何?Makefileリプレース出来るの?

クロージャって何じゃ←論外

ちょっと調べてみるとコールバック関数とか関数ポインタっぽい。
ただコンテキストも保持できるので今までの非同期処理周りのコールバック関数より 直感的に使いやすそう。
こんな機会でも無いと中々最新技術とか調べないから、良い機会なったし割と初心者向けだったので自分でもついていけた。
同じような機会があればまた参加したい。

2014年9月30日火曜日

[emacs][ssh][tramp] trampを使ってremote host上でsudo状態でファイルを開く方法。

鯖といじってると特定のユーザにsudo権限を与えてrootのパスとか知らんとかポリシー上よくある。
例でいうとこんな感じ
ssh test@remotehost
test@remotehost ~/ $ sudo su
root@remotehost /home/test #
localからemacsでremoteのファイルを色々弄りたいとか、鯖管をしたいとか言うと結構面倒 なんとかemacs + trampでsudo状態でファイルを開けないかなと調べてたら見つかったので覚書 ファイルオープン
C-x C-f /ssh:you@remotehost|sudo:remotehost:/path/to/file RET
ちなこれもいける shell
M-x /ssh:you@remotehost|sudo:remotehost:/path/to/file RET
ちなみに内容はそのまま公式にありました。

2014年9月29日月曜日

[emacs][evernote] emacs-evernote-mode

エディタにemacsを使っていてなおかつevernoteを多用している人は結構いるのでは無いだろうか。いやいるに決まっている(反語)。
結構そういう人は
emacs-evernote-mode
を見つけたのでは無いのだろうか。 emacsのevernote-pluginである。 上のリンクが公式っぽいがもはや公式の開発は2011年にリリースされたver 0.41でストップしている。
且つ公式の最新はevernote側のoauthの実装などの変更がありそのままでは使えなくなっている。
ただ,github上ではいくつかforkされているリポジトリが存在しており一番最新で使えるリポジトリは
pymander/evernote-mode
かな。
基本的にREADME.mdを見てもらえばわかると思うがインストールするときに重要なのは2点で
  • evernote Developer Tokenの入力
  • evernote_oauth gemのインストール
これと加えて最近issueとして
Opening existing notes, searching and note browsing fails - undefined method `to_sym' for nil:NilClass
が私の環境でも 発生したので、ちょっと修正してみた。
i-takuya/evernote-mode
は私がforkして修正を入れたevernote-modeのリポジトリである。同じ問題が起きているなら使ってもらいたいと思う。俺の環境では動いた。(結構雑な修正なんで保証はしない)
ダメだったらissueないし、pull requestを送ってもらえるととりあえず見ようとは思う。(修正できるとは言っていない)

2014年9月21日日曜日

[Docker] Dockerfile 初級編

前回は基本的なDockerの使い方の列挙した。
次,Dockerfileを使ってみる。
GitHubにコミットしたリポジトリを元にDocker hubにAUTOMATED BUILD REPOSITORYができる。

元になったリポジトリはこれ
centosを元にsshdをただ立ち上げただけ。

基本的にDockerfileがあるフォルダで
docker build -t [repository name] .

を実行すればDockerfileに書かれた命令を上から順に実行してimageを作成してくれる。
Vagrantfileっぽい様に見えるがプロセスを起動するような命令は一回しか実行出来ない。

ここらへんはどうもdockerの仕様らしいが、やはり一つのコンテナ上で複数のプロセスを立ち上げたいみたいな 需要はあるようでDocker 起動と共にサービスを複数立ち上げたいと思ったらまず Supervisor あたりを試してみようみたいな記事はいっぱいある。

最終的にlighttpdとsshd辺りをコマンド一つで起動させたりしたいのでSupervisor辺りを使って書きなおそうかなとは思っている。

前はカスタマイズしたイメージをDocker hubにあげてたけどDockerfileでレシピを残したほうが筋が良いような気がする。
今までVMとcontainerどう使い分けたら良いかと思ったけど(そもそも技術的には違うけどやれること対して変わらないきがする)
テストオートメートのためのワンショットビルドとかの使い方がいい感じがする。

2014年9月19日金曜日

[docker] dockerの使い方 初級編

最近話題のdocker、基本的な使い方はここ のチュートリアルをみれば大体分かりそう。 今回は基本的なコマンドとその説明を書き留めていこうと思う。
docker ps : containerのリストを取得
docker inspect  : 指定したidのcontainerの情報を取得。ipとか取れる。
docker run -i -t  : コンテナを起動させる。-t ttyをアロケート、-iはstdinをオープンし続ける。
docker commit   : 指定したcontainer idをリポジトリにコミット(多分ローカル)
docker push  : commitした内容をDocker hub上のリモートリポジトリにpush
docker pull :
上記コマンドがdockerの基本的なコマンド、docker runで起動したコンテナに変更を加えて、commit, pushでその変更を Docker hub上に保持できる感じ。 Docker hubなんてネーミングからわかるがすごいgit like.
なお、余分なimageとcontainerの削除は下記ページに記載されていたので参考までに。

Dockerで不要になったコンテナやイメージを削除する 次はDockerfileをちょっと触ってみたい。

2014年4月1日火曜日

[git] git 基本

最近svnの変わりにgitを使うようになったのでそのメモ

git status 
git branch -a -v : local branchやremote branch、最終コミットログが見れる
git checkout -b local_branch origin remote_name : remote_branchからlocal branchを作る
git checkout localfile : localbranch からlocalfileを復元する。 
git add localfile : 指定したファイルをstage状態にする(commit出来る状態にする)
git commit : stage状態にあるファイルをローカルブランチにcommitする(この状態ではremote branchにはcommitされない)
git push origin local branch:origin/remote branch : remote branchにcommitする。これをやると後戻りできない。
基本的な概念がsvnと違うので結構戸惑った。っていうか今も。

2013年6月18日火曜日

便利なメモ

なんちゅう適当なエントリーや。だって私女の子だもん。

maven リポジトリ検索
http://mvnrepository.com/
こことかどうや

nf_conntrack_maxの増やし方
echo xxxx > /proc/sys/net/nf_conntrack_max ちなCentOS 6

2013年5月19日日曜日

SMTP-AUTH using postfix

シンプルなSMTP server,いわゆるSMTP-AUTHの設定 について

仕事で急に必要になったため、外部からのアクセスは考慮していないことに注意
環境
CentOS 6.4
Postfix 2.6.6


参考サイト
http://last-resort.seesaa.net/article/89923282.html
http://www.uetyi.mydns.jp/wordpress/postfix-setting/entry-460.html
ちなみにpostfixの再コンパイルはする必要は無いがいくつかcyrus関係のパッケージをインストールする必要があるかも
yum install crys*
あたりで適当にインストールすれば入るんじゃないかな?かな?

/usr/lib64/sasl2/smtp.confには以下のような内容を記述
pwcheck_method: sasluthd
mech_list:plain login
認証にsasluthdを使って平文のパスワード認証サービスを使用しますよーぐらいの意味で捉えている。(適当)使えればいいんだよこっちは
sasluthdの場合plainとlogin以外のメカニズムを使っちゃ駄目っぽいらしい。後変更後のsasluthdの再起動も忘れずに。
ちなみに他はどんなのがあるのかというとauxpropとか。
あと saslpasswd2 コマンドを使ってユーザー、ドメイン名、パスワードを登録する
 saslpasswd2 -u example.com -c smtpuser
 Password:
 Again (for verification):


次postfixの設定 下記がmain.cfの中身
mynetworks = 192.168.1.0/24,127.0.0.0/8
inet_interfaces = all
resolve_numeric_domain = yes
mail_spool_directory = /var/spool/mail
smtpd_sasl_auth_enable = yes

smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = cyrus
smtpd_sasl_path = smtpd
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

環境に依存しているのはmynetworksだけ、アクセスを許可するアドレスだけ追加するなり、削除するなりしてください。
resolve_numeric_domainは例えば "test@192.168.1.10"のようにドメイン名がIPアドレスのメールを処理するかどうかを設定するパラメータ。
mynetworks:このSMTPに対してアクセスできる信頼できるIPネットワーク郡
smtpd_sasl_type: saslのplug-inのタイプ。他はdovecotがある。
smtpd_sasl_path : saslの設定ファイル(上記)/usr/lib64/sasl2/smtp.confのファイル名
smtpd_recipient_restrictions:送信元を利用した制限リスト、何も設定しなければすべてを許可する。
設定し終わったら、postfixを再起動する。

telnetをつかって認証できるかどうか確認する方法は下記を参照

http://last-resort.seesaa.net/article/246820439.html
繰り返すが、これは外部につかえないよー。

後、sasluthdとauxpropについての sasluthd vs auxprop

2012年1月19日木曜日

windows7起動速くならねーかな:疑問編

メイン機であるWin7機のスタートアップやらレジストリやらを消したらえらい起動が遅くなった。
ちょっと使えないレベルになりつつあるので対策を考える。

対策1:メモリを増やす。
現行のメモリ容量2G。えーマジ2G?2Gが許されるのは学生までだよねー?
というわけでDDR2の2Gを増やして、4Gで動かしてみる。

対策2:なんか起動しているプロセスが異常に少ない。
正常に起動してねーんじゃねーのという疑問。
プレーンインストールのWin7の起動プロセスと現行環境の起動プロセスを比較
起動してない場合何故起動しないかの原因特定。

対策3:システムドライブのみSSDに換装
えーマジHDD(以下略
というわけでそもそもHDD自体が既に時代遅れである可能性。

対策4:PC毎変える
つーか今時C2Dとかリアルに無いわー

現実味があるのは上記2点位かなぁ

追記:起動時のプロセス dwm.exe,explorer.exe,avgnt.exe,atielcxx.exe,winlogon.exe,csrss.exe,taskhost.exe,avgnt.exe
いくらなんでも少なすぎる気もするなぁ。
後起動後、無線が繋がってすぐ切れた。その後自動復帰はしなかった。なんで切れたんだ。

2012年1月1日日曜日

sambaで外付けhddにアクセス出来ない

どこまでも使い勝手悪くなるgoogle UI。
迷走はいつまで続くのか。

今はsambaいじってるナウ。
サーバ買ったばっかりでいろいろいじってる最中
ちなみに買ったのはこれNEC Express5800/GT110b
4Gメモリ付で15,000円の中々リーズナブルな一品だ。
まぁこれをぐちゃぐちゃといじって、今Samba構築してる。
外付けHDDをアクセスできんもんかなーと思って設定してみるがうまくいかず困っている。
まぁ症状的には












的なダイアログが出るわけだ。因みに環境は
ホスト OS Fedora 15
クライアント OS Windows 7 32bit
だ。
まぁhddのユーザさえ変えればいいと思ったんだけど、


chown user:user directory



すると

chown: changing ownership of `directory': Operation not permitted



というエラーが出てしまうと。
さらにsmb.confにてadmin users = user
を行っても外付けhddにアクセスできんし・・・
さてどうしようかしら参考になりそうなサイト 外付けHDDのパーティション・マウント・所有権の設定

2011年12月30日金曜日

Fedora 16でusb boot

Fedoraでusb boot公式で
fedora documentationで詳細があります。

公式でLiveUSB Creatorなるものも配布しているのでかなり敷居が低いのではと思います。


まぁ簡単にできたけどこれhddにインストール出来ないよね?
unetbootinは現状一番使えるUSB boot作成ツールだと思うけど最新は提供されてないっぽいし。

2010年12月8日水曜日

Ufion

twitterと2chを混ぜたようなサイトが出来たので、紹介だけしておきます。

Ufion

twitterのようにつぶやき、それに対して2chのスレのように自由にコメントしたり出来るようです。
まぁパクリといわれればそれまでですが、サービスが拡充し人が増えたらそこそこ面白いようになるのかなぁと思わなくもなし。
宣伝でした。

2010年10月20日水曜日

メモ-プログラミングコンテストでの大量の引数の入力の仕方

久しぶりにアルゴリズムの勉強をしようかな。と思いACMのサイト行って問題を解こうとしたら結構忘れてて笑えない。というわけで備忘録。


引数の入力はcin、もしくはscanfで行う。リダイレクトでデータファイルね。


test.exe < data.txt 

をコマンドラインで実行すると、標準入出力関数(cin,scanf等)でdata.txt内のデータが取得できる。

2010年8月8日日曜日

PS2やらPS3で遊ぼう

家のPS2がぶっ壊れたので、新しいPS2とついでにPS3を出来る環境を整えようと言う話。
初代の奴をかれこれ7,8年使ってたから、まぁ仕方なし。
ついでにテレビも買い替える。いい加減20年ぐらい前のブラウン管じゃせっかくの高画質も残念な事に。

PS3の場合HDMI端子が音も一緒に送ってくれるらしいけど、PS2の場合どうもめんどくさそう。
と言う訳で、適当に買う物をまとめながら、PS2→スピーカーの方法でも探す。
買う物


だいだいこんな感じPS3はまた別の機会に買うとして、大体環境をそろえるので5万位か・・・。

2010年8月7日土曜日

メモ linux エラーログについて

いまいち使い切れて無いのでlinux系のログについての簡易メモ

/var/log/messages 一般的なシステムに関する情報
/var/log/cron 定期的に実行される処理の結果に関する情報
/var/log/maillog メールに関する情報
/var/log/secure セキュリティに関する情報
/var/log/spooler 印刷やニュースに関する情報
/var/log/boot.log OS起動時に関する情報

syslogdの設定ファイルが,/etc/syslog.conf
バックアップやらなんやらの設定は /etc/logrotate.confと/etc/logrotate.dディレクトリ
ツール関係はまた今度。

Sambaの設定(CentOS)

メモ CentOSでSambaの設定。
基本的にはじめての自宅サーバ構築 - Fedora/CentOS -みたいな所を見れば問題ないけど、自分の場合そうでもなかったのでメモ。

ワークグループの中に明らかにSambaサーバっぽいのがあるのにネットワークパスが見つからないとか言われる場合
ポートが閉まってないか確認 netstat -antu
開いてなかったらiptablesでポート開放

Sambaには入ったのにディレクトリに入れないよ
SElinuxが有効になっている可能性高し。
# getsebool samba_enable_home_dirs
samba_enable_home_dirs –> off
だったら
# setsebool -P samba_enable_home_dirs 1
でonにする。

参考URL [Linux] SELinux での samba ホームディレクトリのアクセス

SElinuxってなによ カーネル2.6以上で採用されているセキュアなOSの事
今後ここら辺が原因で躓くかもなー。今のうちに無効にしとくかね。