(wat-aro)

無職から有職者にランクアップしました

プログラミング Coq (証明駆動開発 2)

証明駆動開発入門(2) 上記ページの勉強メモです。 Extraction coq から OCaml, Haskell, Scheme のコードを出力する。 OCaml にコードを出力するにはそのまま Extraction map. とすればいい。 これで (** val map : ('a1 -> 'a2) -> 'a1 list -> 'a2 list **…

プログラミング Coq 証明駆動開発(1)

証明駆動開発入門(1) 何かを読む会 という社内勉強会が発足されました。 読んだ本の内容を共有しよう。 一人で勉強していてもダレるので共有することで無理やり進捗を出そう。 他の人の発表を聞いて読んだ気になろう。 っていう緩めの会です。 途中まで読ん…

技術書典2に行ってきた

お昼頃に予定があったので行くか迷っていたが、14時くらいには空いてきたということで技術書典2に行ってきた。 目当ての一つだったインターネットの闇さんのコンパイラの本は既に完売と向かってる最中の電車の中で知る。 Coqに興味があったのでCoqによる定理…

Pathname#joinの不思議な挙動

空のPathname同士をjoinした時に期待と違う挙動があった。 $ ruby -v ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16] 期待していたのは次の動作。 path = Pathname.new('') # => #<Pathname:> path.join(path) # => #<Pathname:> でも実際はこうなっていた。 path </pathname:></pathname:>…

剰余を使わないFizzBuzz

先日ESMで開かれたよちよち.hsに参加しました. そこで剰余を使わずにzip3と無限リストを使ってFizzBuzzを書く話があったので書いてみました. fizzbuzz = map fizzbuzz' $ zip3 [1..] (cycle ["","","Fizz"]) (cycle ["", "", "", "","Buzz"]) where fizzbu…

Rollbarでbotが出すエラーを無視する

botから既に削除されたURLへのアクセスがあり,Rollbarのエラーログのノイズがひどかったので,botからのアクセスで起こったActiveRecord::RecordNotFoundを無視する設定を書きました. 上部のバーからSettingsをクリックします. 次に画面左からGroupingを…

anagramの別解考えた

まず二つの文字列のサイズを計測して,それらが等しくなければfalseを返す. 同じ場合は一文字ずつカウントしながらハッシュに入れていく. この時,s1の文字はインクリメントして,s2の文字はデクリメントする. 最後にハッシュのバリューを取りだして,す…

Githubにpushした時に他の人がpushしたと通知される

転職して配属されたプロジェクトのリポジトリーで,僕がpushしてるのに他の人がpushしてると通知される不具合がありました. Githubの設定や.gitconfigを見てもおかしいところはなく,どうしようかと思っていたらStackOverFlowにちょうど同じ症状の質問があ…

RubyKaigiの弁当のコードを実行してみた

eval( %w( put s(([ 2*7, 2*31 ,1,3 *3*5 ,2*2 *2*2 *3]. map{ |c|c .to_ s(5*7 ).gs ub("1 "," \s") .upca se}. zip( [2*5* 61*1 801, 2*5*3 931, 811* 1871, 2*11 *350 27,7* 11*1 259* 20389 *764 171].map{|c|c.to_s(2*2*3*3)}))*""))*"") # >> Enjoy Ru…

OSXにGaucheのHEADをインストール

GaucheのHEADをインストールするにはリリースされた最新のGaucheが必要です. ここにはまりました. なぜか最新版の0.9.4でもビルドできなかったのでbrewでインストールしてから後で消しています. make install の後にbrew uninstall gaucheをすると必要なu…

MacでSticky ShiftにするためのKarabinerの設定

SKKを使いはじめました. そうするとシフトキーを多用するのでもっと楽に入力したくなります. そこでSticky Shiftです. 「シフトキーを押したまま他のキーを入力する」のではなく,「一度シフトキーを押して離した直後に押したキーが大文字になってくれま…

Railsのnew/build/createの違い

build - リファレンス - - Railsドキュメント new モデルオブジェクトを生成する. 生成するだけで,保存はされていないためsaveメソッドなどを使用して保存する. build new の alias create モデルオブジェクトを生成して保存する.

リモートのブランチにローカルでチェックアウトする

git

まずリモートブランチをfetchします. $ git fetch 次にリモートブランチを確認します. $ git branch -a * master remotes/origin/01_untested remotes/origin/02_setup remotes/origin/03_models remotes/origin/04_factories remotes/origin/05_controlle…

Scheme修行のtryについて

Scheme修行作者: Daniel P. Friedman and Matthias Felleisen,元吉文男,横山晶一出版社/メーカー: オーム社発売日: 2011/06/15メディア: 単行本(ソフトカバー)購入: 3人 クリック: 46回この商品を含むブログ (10件) を見る p89の欄外で補足されているtryに…

Schemeでクイックソート

先日の納会でソートの話が少し出たのでクイックソートを書いてみました. 書きやすいのでGaucheで. まず普通に書いてみます. (define (quick lst) (if (null? lst) '() (let ((first (car lst))) (append (quick (filter (lambda (x) (< x first)) lst)) (…

once-onlyマクロの解読

実践Common Lisp p100にあるonce-onlyマクロの解読に挑戦. 実践Common Lisp作者: Peter Seibel,佐野匡俊,水丸淳,園城雅之,金子祐介出版社/メーカー: オーム社発売日: 2008/07/26メディア: 単行本(ソフトカバー)購入: 8人 クリック: 192回この商品を含むブ…

shibuya.lispで発表しました

ゆるわな感じです. Lisp Meet Up presented by Shibuya.lisp #38 - connpass niconare.nicovideo.jp 反省点は聞いてる人のほうを向いて喋れなかったことですね. 自分のPCのモニタばかり見てました. 次どこかで発表するときはそこを改善したいですね. 後…

Emacsのhtmlizeを使ってコードのシンタックスハイライトを保ったままKeynoteにコピペ

SchemeのコードをKeynoteにシンタックスハイライトを保ってコピペする方法がわからずに困っていたら Twitterで教えてもらいました. Emacs マンなら htmlize で https://t.co/A8sNim2GAI— 齊藤敦志 (@SaitoAtsushi) 2016年3月24日 EmacsでhtmlizeでHTMLを出…

Rubyで言語処理100本ノック 00-04

www.cl.ecei.tohoku.ac.jp Rubyの練習のために始めました. 4章からは難しそうなので3章まで頑張りたい.でも飽きたらやめるかも. コードを書く基礎が足りない気がするのでもっと書かないと. 始めるにあって,とりあえずRuby 2.2.3のStringクラスは一通り…

OSX クリーンインストール前の準備

mac

yosemiteからEl Capitanへアップデートする前の準備. dotfilesの準備 .bashrcや.emacs.dなどインストール後に必要になりそうなものをここに入れてしまいます. 他にも次の環境に必要なものはここに入れてしまいます. そしてシンボリックリンクを貼るスクリ…

初めてのgem

github.com キャメルケース,スネークケース,パスカルケースを相互に変換するgemを書きました. 書き方わからずに色々やってたら最初にリリースした分は盛大にバグってました. とりあえずバグが取れたのでまたgemに. 一応 gem install case_converter で…

Nginxでsites-enabledが読み込まれない

nginx version: nginx/1.8.1 www26.atwiki.jp ここを見ながらnginxでVirtual Host を構築しようとしていました. ただここのやり方では /etc/nginx/conf.d/default.conf が読み込まれてしまうのその対処方法を書きます. /etc/nginx/nginx.confを開くとこう…

Debian 8 に MySQL 5.7.11をインストール

MySQL :: Download MySQL APT Repository ここの数字を確認する. 数字が変わっていれば以下のmysql-apt-config_NUMBER_all.debのNUMBER部分を変更する. $ mkdir ~/src $ cd ~/src $ wget http://dev.mysql.com/get/mysql-apt-config_0.6.0-1_all.deb 次に…

MySQL5.7.11でユーザを追加できない.

環境はdebian8, mysql5.7.11. mysql> grant all on blog_app.* to 'foo'@localhost identified by 'hogehoge'; ERROR 1054 (42S22): Unknown column 'password_last_changed' in 'mysql.user' 以上のようなエラーが出ました. 対処方法は以下になります. $ …

Rubyの正規表現でそれぞれのケースへの変換

今日は正規表現に苦しんだので練習しました。 snake_case、camel_Case、Pascal_Caseのそれぞれへの変換です。 capitalizeなくても書けるけど一応。 m[0].upcase + m[1..-1]はちょっと汚いですしね。 Rubular使えばテストケースが期待通りのマッチになるまで…

FLEXBOX FROGGYチートシート

FLEXBOX FROGGYをクリアしたのでやりながらまとめたものを貼ります. Flexboxはここでやった部分しかしりませんが,これだけでも便利ですね. コンテナ全体 justify-content 水平方向への寄せなど flex-start: 左寄せ flex-end: 右寄せ center: 中央寄せ spa…

fjordのリモートインターンに参加しました

昨日別ブログにも書きましたが,向こうはやめてこっちに書いていきます. コードを書いてごはんが食べられるように頑張ります.

プログラミングの基礎を読み終わった.

プログラミングの基礎 (Computer Science Library)作者: 浅井健一出版社/メーカー: サイエンス社発売日: 2007/03メディア: 単行本購入: 17人 クリック: 409回この商品を含むブログ (126件) を見る 演習問題をほぼ解いて一週間くらいかかりました. タイトル…

プログラミングの基礎 16.4 最初の完動プログラム

プログラミングの基礎で作ったメトロネットワーク最短路問題の解答. ダイクストラ法を使い求める. ここまでのメトロネットワーク最短路問題に関係する問題の解答すべてここに書いてある. (* サポートページからダウンロードしたglobal_ekimei_listとgloba…

OCamlの無名関数は再帰を定義できない?

わたろーです. 今プログラミングの基礎 (Computer Science Library)を読んでいます. これはOCamlとデザインレシピでプログラミングの基礎を学ぶという内容なのですが, 名前のない関数という節で気になる文章がありました. 14.4 名前のない関数 p145 名前…