なんとな~くしあわせ?の日記

JavaとかAWSの設定とかをメモする技術ブログ

プログラミング

Instaparseでパーサジェネレータ

Instaparseの位置づけ InstaparseはClojure言語による パーサジェネレータ - Wikipedia であるgithub.comこれのルール記述はBNFの拡張であるEBNFが使われている。 EBNFで構造化言語のルールを記述する さっそくだが、「<p>sample</p>」を読み取るBNFのル…

AOJ - ALDS1_7_A, B, C (木構造) を解いてみた

勝手に解いてろとか言わないで… 木構造を使うときの基本 ALDS1_7_A - 根付き木 get_depth ( id, nodes ) get_children ( id, nodes ) ALDS1_7_B - 二分木 get_depth ( id, nodes ) get_height ( id, nodes ) get_sibling ( id, nodes ) ALDS1_7_C - 木の巡回…

アルゴリズム学びフローを作成してみる

AOJの本 本の内容とレビュー 見通しを立ててみる プロコンで解いた問題を格納 AOJの本 この本を買ってみた。プログラミングコンテスト攻略のためのアルゴリズムとデータ構造…プログラミングコンテスト攻略のためのアルゴリズムとデータ構造作者: 渡部有隆,Oz…

動的計画法で組み合わせの総数 nCr を求めてみる

もっと早い組み合わせの総数 (combination)の求め方 動的計画法 - DP(Dynamic Programming) Combinationのための動的計画法 Rubyによるサンプルプログラム 処理内容を表で表現してみる 実際使う時は 参考 もっと早い組み合わせの総数 (combination)の求め方 …

AOJ - DSL_1_A (Union-Find) を解いてみた

AOJ - DSL_1_A quick find で求めてみる quick-unionで求めてみる DSL_1_Aは、Coursera Algorithm I で最近習ったばかりのUnion-Findです AOJ - DSL_1_A 互いに素な集合 Union Find| データ構造ライブラリ | Aizu Online Judge quick find で求めてみる 自分…

AOJ - ITP1_7_D (行列の積) を解いてみた

AOJ - ITP1_7_D 行列の積をプログラムに起こすと? 問題の内容 問題の解法 行列計算の参考リンク ITP1_7_Dは、今自分の中でブームの行列の積の問題です。生で計算しないにしても、機械学習にも大いに関係があります。 AOJ - ITP1_7_D Matrix Multiplication …

AOJ - ITP1_7_B (組み合わせ) を解いてみた

偉そうに書いてるが、これは序の口の問題である。。。 AOJ - ITP1_7_B 解法1 algorithm - Finding all possible combinations of numbers to reach a given sum - Stack Overflow アルゴリズム 処理フロー 結果 解法2 Given an array A[] and a number x, …

Bash/Octaveで順列・組み合わせ

Bashで計算しようとしたのだが、結論から言うと遅すぎて使えない。Octaveで計算すると早かったのでそっちを推奨する。 Bash 順列 (nPr) bash - Generate combinations of elements with echo - Stack Overflow 参考になったが、これはCombinationではなくPer…

Javaで簡単な組み合わせの総数 nCr を求めてみる

Aizu Online Judgeをやっていて、求められんかな?と思ったので。 速さとかは遅いと思う。 Java 実働してるやつ 参考 ソースコード 所感 Ruby 実働してるやつ ソースコード Java 実働してるやつ [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ 参考 stackoverflow.com ソー…

Monger + mLab + ClojureでMongoDBに触る

MongoDBはいわゆるNoSQLで、きっちり行と列を定めなければいけないRDBと違い、JSONをそのままぶっこめる。 今趣味で触っているプログラムに使おうと思い、Mongerをクライアントライブラリとして使用してみた。 準備編 Monger ClojureのMongoDBクライアント側…

leiningenで作るuberjarがmavenでできたらいいと思ったら出来なかった話

Leiningenでuberjarを作る Clojureの日本語ガイドにあるように -> Part7: どのようにして Heroku へデプロイするか Leiningenから lein uberjar と打てばいわゆるFAT Jarができる。これは依存ライブラリを全て含んでいるのでJavaさえあれば実行できる。 Mave…

Spring Session

Qiitaに記事を書きました。qiita.com

Clojureを使ってみる

たまたまClojureを触ってみて、なんだか良さそうだと感じたのでいろいろ書き散らしている。 環境構築が比較的容易で、WEBアプリが作りやすそうなのがよかった。あとScalaほど四角四面ではなく、Groovyほど壊れにくい*1 環境構築 yoppi.hatenablog.comまずこ…

x86 汎用命令 - ModR/M の解説

ModR/Mについては前もちょっと記事を書いたけど、まだちょっと中途半端だったのでもう一度まとめます。nantonaku-shiawase.hatenablog.com ModR/Mの実際の例 ModR/Mの構造 ModR/Mバイトの構造 '''/r'''および'''/7'''の意味 regとr/mで使われるレジスタコー…

Let's Encryptを手動更新

blog.apar.jpだいたいここの指示にしたがえばよしこんなエラーが出た。 Cleaning up challenges Attempting to renew cert from /etc/letsencrypt/renewal/freestylewiki.xyz.conf produced an unexpected error: At least one of the required ports is alr…

Heroku + Plack + plenvを試す

ある目的のためにPlackをHerokuに上げたいと思っていた。で、試したので手順を書いておく。 plack-testing 今回試したリポジトリ github.com 手順 初期設定 plenv Rubyで言うところのrbenv、結構古いPerlじゃないと依存関係がぶっ壊れる $ git clone git://g…

ls: unparsable value for LS_COLORS environment variable が出た時

環境変数のパースでトチると出るらしいBug #1038914 “lucid to precise: invalid $LS_COLORS after upgrade...” : Bugs : coreutils package : Ubuntuリンク先にあるように、ワークアラウンドとしては eval "$(dircolors -b)" を実行すればいいようだ。以下…

CSSで作るモーダルなダイアログの紹介

モーダルダイアログ。それはWEB開発では避けられない小技。普段なにげなく使われてるWEBシステムでも、たぶん「削除」や「決定」前には出てくるのではないでしょうか。でもこれホント面倒なんです、同業者しかわかってくれないだろうなあ… 昔だとどうしたっ…

HTTP GETの容量制限とか

Is there a limit to the length of a GET request? stackoverflow.comやはりStackOverflowは有能すぎる。ぼくの推しアンサーはこれ http://stackoverflow.com/a/266341/2565527 Not in the RFC, no, but there are practical limits. (RFC内には指定は無い…

Emacsの対Ruby用装備を整える

去年の前半はScalaでわいわいやっていて、Emacsもensime前提で設定していたのですが去年の暮れから今年にかけてRubyを書かなくてはいけなくなったのでRuby用のelispをそろえていきます。 Ruby用elisp しかしアレです。Emacs+Java/Scalaだと情報が少ないので…

C++のbindはちょっと面白そうだった

Stackoverflowにて面白そうな問題を発見。stackoverflow.comというのは、今の自分の課題として関数を関数に渡してその結果を受け取りたいというものがあったのだ。Scalaだと関数オブジェクト渡すか、ラムダ式渡す感じでかるーくやれるのだが。C++の場合、記…

StackでHeskellプロジェクトを作ってみる

Haskellプログラム開始3時間勢がAdvent Calendarを書いたよHaskell Advent Calendar 2015 23日目の @Hiroyuki-Nagata です. 前の人は @MasashiSalvador57fさん,次の人は @philoponさん です.qiita.com qiita.com何気にQiitaは始めて投稿したな。

Scalatraとnon-blocking APIについてメモ

Scalatraを少しだけお仕事で使ったのですが、よく考えたらその仕組みを知らないなあと思ったので復習を兼ねて記事を書いてみます。Scala Advent Calendar 2015 6日目の @Hiroyuki-Nagata です. 前の人は @xuwei_kさん,次の人は @dakatsukaさん です. www.…

すごいHaskell たのしく学ぼう 読解3

すごいHaskell延長戦です。 あまりHaskell自体を使う気はないので、概念だけ読み取って実際的な話は飛ばす。すごいHaskellたのしく学ぼう!作者: Miran Lipovaca出版社/メーカー: オーム社発売日: 2012/09/21メディア: Kindle版購入: 4人 クリック: 9回この…

すごいHaskell たのしく学ぼう 読解2

はい、すごいHaskell後半戦です。 あまりHaskell自体を使う気はないので、概念だけ読み取って実際的な話は飛ばす(IO/モジュール)。すごいHaskellたのしく学ぼう!作者: Miran Lipovaca出版社/メーカー: オーム社発売日: 2012/09/21メディア: Kindle版購入:…

すごいHaskell たのしく学ぼう 読解1

動機 Java, C++ → Scalaとやってきて、気づいたことはJavaからScalaに受け継がれたのはJVMとしての便利さだけであり、関数型言語的要素はむしろHaskellから受け継がれているということだ。さっそく調査班はYodobashiで以下を購入した。すごいHaskellたのしく…

Scala Refactoring

scala-refactoring Scala RefactoringScalaのソースコードをリファクタリングするためのライブラリ。もちろんリファクタリングの内容を考えてくれるのではなく、一定の処理を自動化する。eclipseやIntelliJ IDEAなどのIDEで実行されるような処理を提供するラ…

D言語でstatic constな関数を定義したかった

以下のようなコードを定義すると、新しいgdcではエラーとなる コード [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッmelpon.org import std.stdio; void main() { const string data = test_for_const(); pragma(msg, data); } static const string test_for_const() { retu…

ScalaのSomeを使ってJavaのメソッドを呼び出すとき

正しい値・例外・nullという3値が返る可能性があるとき scala.util.control.Exception.allCatch を使えばいいのでは、と思ったが allCatch.opt { 式 } と書くと、式がnullの場合Some(null)というバッドな感じになる(なぜ?)。 allCatch.optを使った時の3…

ちょっとしたRubyスクリプトで日付の加算減算

get next/previous month from a Time objectstackoverflow.comちょっとしたRubyスクリプトで日付の加算減算をやろうとしたとき、何かとRailsを使わされそうになるようだ。自分的にはベストアンサーはこれ。これなら特にimportするライブラリもない。ruby - …