touchbar付きのmacでワンタッチsleep

touch bar付きのmacbookproは電源ボタンを押してもsleepしてくれない。 左上のメニューからsleepを選べば当然問題ないがもっと手間を省きたいためショートカットする方法を調べてみた。 ググったら簡単にみつかった 20 tips & tricks for the new MacBook Pr…

yampaのpSwitch

yampaについて調べていると単純なswitchについての説明はいくつか見つかるのだが、pSwitchについてはなかなか見つからなかったのでわかったことをメモしておく。 こちらのブログとhaskanoidのソースコードを参考にした。 http://bitterharvest.hatenablog.co…

vim pluginを探すときに便利なとこ

vim

vim awesomeというpluginを集めたサイトを見つけた。現在15,000くらいのpluginを掲載しているようで、使っているユーザの多い順にランキングされている。 vimawesome.com 使っているユーザの判定はgithub上でdotfilesとして公開されている設定ファイルから、…

surround.vimにドットコマンドを効かせる

vim

surround.vimはカッコやクォートなどのペアを消したり置換したりできるコマンドを加えるplugin。ダブルクォートになっているものをシングルクォートにしたいことなどよくあるので便利。 複数箇所に同じ置換を行いたい場合、少数ならドットコマンドで繰り返し…

Neomake - 非同期実行のSyntastic

vim

syntasticを使っていると大きなファイルでsyntax checkなどするとしばらく応答が返らないことがよくある。neovimには非同期でjobを実行する機能があり、それを活かしたpluginとしてNeomakeというsyntasticと同様の機能をもつものがあることを知ったので使っ…

vimでコマンドの出力をキャプチャする

vim

特定のファイルにコマンドの出力を書き出したいときはこれ !をつけることで新規のファイルでも書き込める :redir! > file :echo 'aaa' :redir end これでaaaという文字列がfileに書かれる ちなみにredirはrediと省略して書ける また、rediはredirectの略 フ…

es6でreactを使うときのメモ

reactを触ってみた せっかくなので新しい形で使いたくes6の形にしたら、reactの元の書き方では動かないところがあったのでメモしておく 1. getInitialState # es6以前 var Component = React.createClass({ getInitialState: function() { return {data: []}…

macでmatplotlibによる画像出力

mac上でskimageを入れた際にエラーになったのでメモ pyenvにてinstallしたpython3.5にて、pipで入れたskimageによって画像を出力しようとした際エラーになった 発生したエラーはこちら >from skimage import io >image = io.imread('example.png') >io.imsho…

vimでnon-greedyなマッチ

vim

vimでnon-greedyなマッチを行うために正規表現を調べたのでメモ non-greedyなマッチを使いたい場合のusecase 以下の行でクォーテーション毎にそれぞれマッチしたい場合 'hoge', 'fuga' アスタリスクを使って書くと行頭から行末まで全体にマッチしてしまう # …

dynamoDBのpartition分割

aws

dynamoDBはstorage sizeとthroughputが大きくなるにつれてpartitonを増やしていく その際の挙動について調べたのでメモpartitionとprimary keyの関係について Partitions and Data Distribution - Amazon DynamoDBpartition分割時の挙動について Guidelines …

dynamoDBのitem size計算

aws

dynamoDBのitem sizeを計算する方法を調べたのでメモ基本式はこれで求まる 属性名のbyte数 + 属性値のbyte数属性名はstringであり、stringはUTF-8 バイナリエンコードの Unicodeで保持されている なのでasciiの文字を使っていれば1文字1byte属性値として使…

scala actorでチャットサーバ

scalaの勉強のためチャットサーバを書いてみた。actorも使ってみる。 仕様 仕様は以前haskellで書いたものを参考にした。 jsapachehtml.hatenablog.com 存在するチャネルは一つだけ(簡単のため) クライアントが接続してきたときに名前を尋ねる。入力された…

brew caskでエラー(Cask 'eclipse-java' definition is invalid: Bad header line: parse failed)

ちょっとeclipseを使ってみようとbrew caskを使ったらエラーに遭遇 Cask 'eclipse-java' definition is invalid: Bad header line: parse failedググッてみると解決策がすぐに見つかる https://github.com/caskroom/homebrew-cask/issues/15930 これを実行す…

supervisor:start_childが動かない

タイトル通りの件でハマったのでメモ。こちらで基本的なことを学びつつ簡単なechoサーバを書いてみた。 Introduction | Learn You Some Erlang for Great Good!以下のコードを書いて実行してみるもstart_childが動かない。 supervisor -module(tcp_server_su…

erlang書くときのtips(自分用メモ)

出力方法 io:format("aaa ~p bbb ~p ccc~n", [A, B])第2引数はリストであることに注意 変数Aの型を知りたい場合 erl_syntax:abstract(A)返り値の例 {tree,integer,{attr,0,[],none},1} 2つ目で型を判断できる(integer, float, atom, string, list) エラー…

dynamoDBをaws cliで操作する

aws

dynamo localのデータをコマンドラインから変更したかったので方法をメモ。sqlと比べるととても大変。各操作の詳細についてはこちらを参照のこと dynamodb — AWS CLI 1.9.11 Command Reference指定する部分の多いupdate-itemについてメモしておく。以下のよ…

dynamoDBのthroughputについてメモ

aws

dynamoDBではthroughputの設定が料金に直結している。そのあたりを調べたのでわかったことをメモ。 throughputの消費 read 1unit = 1項目のconsistent read/sec (4KB以内) consistent readを使わなければ2回で1unitとなる 4KBを超える項目を読み込む場合は2u…

特定ファイルの変更があるコミットだけをcherry-pick

git

まず以下のコマンドで現在までのhoge.txtの変更だけを取り出して見ることができる。 $ git log -- hoge.txt また、以下のようにすることでコミット間の変更を取り出すことができる。 $ git log <sha1>..<sha1> or $ git log branchA..branchBなのでこれらを組み合わせれ</sha1></sha1>…

autoloadの関数が見つからない -- Unknown function: submode#enter_with

vim

vim-submodeを入れてみた際、以下のように.vimrcに設定したところエラーが出た。 NeoBundle 'kana/vim-submode' call submode#enter_with('winsize', 'n', '', '<C-w>>', '<C-w>>') call submode#map('winsize', 'n', '', '>', '<C-w>>');これでloadし直すと以下のようなエ</c-w></c-w></c-w>…

HDMIでテレビをディスプレイとして使うと表示が切れる

Macbook airとテレビをHDMIで繋いだところ、全ての方向でわずかに切れていた。 上部のメニューが半分程度しか映らない状態だった。PCのディスプレイ設定から解像度を変えてみたものの、どの解像度にしてもはみ出すのは変わらず。 ググッてみるとこんな記事が…

vim pluginを作ってみる

vim scriptの勉強で以下のページを見ていたところ、plugin化のチュートリアルにちょうど良さそうなスクリプトを見つけたのでやってみた。plugin化の手順をメモ。 Vim エディターのスクリプトの作成: 第 5 回 イベント駆動型のスクリプト作成と自動化plugin化…

neobundleで遅延読み込み時に処理

vim

久しぶりにvimの設定を触ることにしたのでメモあるプラグインでしか必要のない設定はその読み込み時に処理したい。そのような場合例えば以下のように書ける。 NeoBundleLazy 'Shougo/unite.vim', { \ 'autoload': { 'commands': ['Unite'] } \} let s:bundle…

FRPでチャットサーバ

FRPのライブラリの一つであるsodiumを触りつつチャットサーバを書いてみた。また、sodiumを使わないバージョンのコードも書いてみたので比べてみる。なおここではbehaviourは全く使っておらずEventの機能のみを使った。機能 特定のportでクライアントからの…

DNS format error from 192.168.1.1#53 resolving www.mydns.jp/AAAA for client 127.0.0.1#44005: non-improving referral

mydnsを利用するようになってからsyslogを見るとタイトルのようなエラーが発生していた。 自分が使っているso-netのname serverを指定してdigしてみると以下のようにv6のAレコードが引けなかった。 # Aレコード以外省略 $ dig @202.238.95.24 google.com ...…

No supported encrypter found. The cipher and / or key length are invalid. (laravel 5.1)

php

久しぶりにPHPをさわり、人気があるということなのでlaravelを入れて動かしてみた。早速エラーに出会ったのでメモ。以下のようにkeyを生成する必要があった。 $ php artisan key:generateデフォルトの設定だとconfig/app.phpに以下のような設定がなされてい…

macから外付けHDDに書き込めない

mac

外付けHDDにデータを移そうとした際コピペしても作業が始まらない。HDDの情報を見てみると読み込みしかできない権限になっていた。ググってみるとこんなページを発見。 Mac OS Xから、NTFSのWindowsのボリュームに書き込みができるようにする方法 / Inforati…

vagrantでwindows serverを立ちあげ

windowsのVMが必要になったためvagrantで立ちあげ方をメモ。virtualboxを用いたのでまずboxを作成した。 基本的にこちらのページに書いてある通りの方法でできた。 Vagrant で作ったり壊したりできる Windows 環境を手に入れるまでの手順 - てっく煮ブログい…

unityでエラー(Newline in constant)

タイトルのようなエラーがunityで出たのでメモ。 上記のエラーが100行くらいにわたって連続で発生している。エラーに該当する部分を見てみると特に問題となりそうなことは見つからない。というかエラーの示す場所には文字がない。まわりには日本語でコメント…

複数のサーバ上で同時にスクリプト実行

負荷試験など行う場合に複数のサーバで同時にスクリプトを実行したいことがある。シェルスクリプトで簡単にできる方法があったのでメモ。例えば192.168.1.1 ~ 192.168.1.3の3台で一斉にtestStart.shというスクリプトを走らせたいときは以下のようなスクリプ…

人工知能に関する勉強会メモ

AI

こちらの勉強会に参加してきたので最初の2講義分だがそのとき取ったメモを上げておく。完全にメモ状態なのでわかりづらいところ多いが。。 【520席増枠】第一回メタップス人工知能セミナー: 「人工知能が変革するビッグデータ解析」 - metaps | Doorkeeper…

numberLinkのsolverをhaskellで作ってみた

以前ハッカソンでnumberLinkのsolverを書いたことがあったが、ちょうどアルゴリズムの勉強がてらC++を勉強中だったので、そのときはC++で書いた。完全に手続き的な書き方だが。今回それを読みなおしてhaskellで書きなおしたので全体の概要やアルゴリズムにつ…

parallel and concurrentのまとめ

今年に入ってからParallel and Concurrent Programing in Haskellを読みつつその内容をブログに書いてきたが、一段落したのでまとめ。まず英語でよいならこちらのページですべて読める。 http://chimera.labs.oreilly.com/books/1230000000929/index.html本…

distributed-proccessのexecise(Parallel and Concurrent Programming in Haskell Chapter 14)

第14章の最後の部分はexeciseという位置づけになっている。ヒントが示されているのでそれに従って実装してみた。英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch14.html章の前半についてまとめたものはこちら d…

distributed-process - 分散処理(Parallel and Concurrent Programming in Haskell Chapter 14)

distributed-process - 分散処理(Parallel and Concurrent Programming in Haskell Chapter 14)英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch14.html前の章についてまとめたものはこちら http://jsapachehtm…

DiedUnknownId - distributed-processのデバッグ

parallel and concurrent haskellの14章を読んでいてtyped channelを用いた実装をやってみた際、なかなかデバッグできず苦労したのでメモ。まず私の環境では以下のようにmoduleを分けて実装していた。 Channel.hs module Channel where data Message = Ping …

スレッドによる並列プログラミング(Parallel and Concurrent Programming in Haskell Chapter 13)

英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch13.htmlこのページで紹介しているコードはほとんど上記ページからの引用。 これまで並行処理で用いてきたスレッドを使って並列処理を行うという話。本の前半で扱…

subfindの実装(Parallel and Concurrent Programming in Haskell Chapter 13の一部)

parallel and concurrentの13章でとてもわかりづらいところがあったのでメモ英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch13.html#conc-par_00000029 今回調べたのは以下のコード(本から引用) subfind :: Str…

チャットサーバ(Parallel and Concurrent Programming in Haskell Chapter 12後半)

英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch12.html#sec_chatこのページで紹介しているコードはほとんど上記ページからの引用。 入力された値を数倍して返すというシンプルなサーバを元にチャットサーバを…

簡易的な並行ネットワークサーバ(Parallel and Concurrent Programming in Haskell Chapter 12前半)

英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch12.htmlこのページで紹介しているコードはほとんど上記ページからの引用である。 これまで章で出てきた要素を使ってサーバアプリケーションを作成するサーバ型の…

並列処理の抽象化(Parallel and Concurrent Programming in Haskell Chapter 11)

英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch11.htmlこのページで紹介しているコードはほとんど上記ページからの引用である。第11章ではこれまでの章に学んだ並行処理の要素を使いやすい形にまとめる。 1…

STM (Parallel and Concurrent Programming in Haskell Chapter 10)

英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch10.html前の章についてまとめたものはこちら http://jsapachehtml.hatenablog.com/entry/2015/02/28/085123STMは各処理をひとまとまりのアトミックな処理として…

並行処理のキャンセル (Parallel and Concurrent Programming in Haskell Chapter 9)

第9章では引き続き非同期処理について英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch09.html 処理のキャンセルや時間待ちの処理が入ることはよくあるし対処しなければならない問題^Cで実行をキャンセルしたと…

非同期アクション(Parallel and Concurrent Programming in Haskell Chapter 8)

英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch08.htmlMVarについて書いた第7章まとめはこちら http://jsapachehtml.hatenablog.com/entry/2015/02/15/205159第8章は何かの作業をしている後ろでIOを実行する方…

haskellでの例外について(Parallel and Concurrent Programming in Haskell Chapter 8)

例外について(Parallel and Concurrent Programming in Haskell Chapter 8)英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch08.html#sec_exceptions前後に非同期処理の話があるがそれは別にまとめることにするh…

並行処理導入 MVar(Parallel and Concurrent Programming in Haskell Chapter 7)

英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch07.htmlこの章以降は並行処理について 第7章はMVarを使った並行処理の方法について別スレッドで処理を開始するにはforkIOを使う forkIO :: IO () -> IO ThreadI…

C-lで現在のカーソル位置を確認

vim

カーソル位置がわからなくなることがあったため C-lでカーソル位置確認できるように設定した ついでにvimscriptの勉強にもなったためメモしておく.vimrcに以下の設定を追加すれば実現できる function! HighlightCursor() set cursorline "カーソル位置の行を…

大きいファイルが外付けHDにコピーできない

サイズの大きい動画ファイルを外付けに移動しようとしたところエラーがでてうまくいかなかった調べてみると外付けHDがFAT32でフォーマットされていることが原因のようだった。 FAT32だと1ファイルあたりの最大サイズは4GBに制限される 現状のファイルシステ…

RSAアルゴリズムを並列化(Parallel and Concurrent Programming in Haskell Chapter 3 and 4 example)

以前まとめた第3章、第4章についてはこちら http://jsapachehtml.hatenablog.com/entry/2015/01/24/131408 http://jsapachehtml.hatenablog.com/entry/2015/01/31/221609英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000…

シェルスクリプトで未定義変数の確認

以下の形でできる if [ "${hoge-undefined}" = "undefined ]; then echo "hoge is not defined" fi${var-value}と書くことで、変数varに値があればその値を、値がなければvalueという値を返す なので${hoge-undefined}がundefinedを返すなら元々$hogeは未定…

Par Monad(Parallel and Concurrent Programming in Haskell Chapter 4)

以前まとめた第3章についてはこちら http://jsapachehtml.hatenablog.com/entry/2015/01/24/131408英語の原文はこちらのページで読める http://chimera.labs.oreilly.com/books/1230000000929/ch04.html 第2章、第3章ではEvalモナドを使い 遅延評価と密接…