IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

2014-05-01から1ヶ月間の記事一覧

Haskellでバイナリの書き出し

まずは、型の確認。 Prelude> :t Data.ByteString.Lazy.putStr Data.ByteString.Lazy.putStr :: Data.ByteString.Lazy.Internal.ByteString -> IO () Prelude> :t Data.Binary.Put.runPut Data.Binary.Put.runPut :: Data.Binary.Put.Put -> Data.ByteString…

haskellのlookAheadの練習

BinaryパッケージにlookAhead関数があります。 https://hackage.haskell.org/package/binary-0.5.0.2/docs/src/Data-Binary-Get.html#lookAhead Prelude> :t Data.Binary.Get.lookAhead Data.Binary.Get.lookAhead :: Data.Binary.Get.Get a -> Data.Binary.…

android端末の傾き情報の取得

もうちょっときれいにまとめたかったのですが。。 アクティビティ package com.example.sensor01; import java.util.HashMap; import java.util.List; import java.util.Map; import android.annotation.SuppressLint; import android.content.Context; impo…

chefでhello world

今回も嵌りました。単純にログでHello Chef!を出力したかったのですが、出来ず。あとruby覚えるのが辛い。 参考にさせて頂いた資料 http://www.engineyard.co.jp/blog/2013/chef-tutorial-updated/ http://www.slideshare.net/marcyterui/aws-2 http://tsuch…

Eclipse上でコードを読めるようにする

ソースコードをダウンロードします。 ソースコードをダウンロードしているかどうかは、SDKマネージャで確認できます。 規約に同意してインストールを開始します。 インストール中です。(ここでは他のものもインストールしています) "Peer not authenticated"…

バイナリデータ読み込み

Read a bite from a binary file Prelude> :l test01.hs [1 of 1] Compiling Main ( test01.hs, interpreted ) Ok, modules loaded: Main. *Main> test_binary Loading package array-0.4.0.1 ... linking ... done. Loading package deepseq-1.3.0.1 ... li…

ADTで最初に嵌った点

ADTをダウンロードして解凍し、Eclipse.appを起動します。 なんとJava6が必要とのこと。確かに、システム用件を確認するとJava6が必要と書いてありますが、他のサイトとかみるとJDK7でもできているみたいですが。。。 指示に従ってインストールを進めます。 …

様々なsplitAt

HoogleでのsplitAt検索結果 http://www.haskell.org/hoogle/?hoogle=splitAt 比べてみると理解が深まりますね。 配列 Prelude> :t splitAt splitAt :: Int -> [a] -> ([a], [a]) Prelude> splitAt 5 "abcdefghijklmnopqrstuvwxyz" ("abcde","fghijklmnopqrst…

struts1.3のインストール

もう必要ない情報ですが。 [tmp]# wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//struts/binaries/struts-1.3.10-all.zip --2014-03-26 09:02:04-- http://ftp.meisei-u.ac.jp/mirror/apache/dist//struts/binaries/struts-1.3.10-all.zip ftp.meisei…

Monads for functional programmingの写経(3)

Log Monad Log Monad

macへjavaのインストール

サイトよりダウンロードしたファイルです。 ダブルクリックするとインストーラが起動します。 上記の画像で箱の部分をダブルクリックすると始まります。 確認画面です。 インストール中です。結構時間がかかりました。 インストール終了。 インストールされ…

Monads for functional programmingの写経(2)

State Monadの写経をしてみました。 実際に計算をしていると、状態というよりs->(x, s)という関数をずっと使い回しているイメージでした。 State Monad ふぅ。計算に疲れました。。。

EC2インスタンスの情報を参照する

EC2のインスタンスの情報を確認する小さなサンプル 1 require File.expand_path(File.dirname(__FILE__) + '/../samples_config') 2 3 instance_id = "i-XXXXXXXX" 4 instance = nil 5 begin 6 instance = AWS::EC2.new.instances[instance_id] 7 p instance…

Monads for functional programmingの写経

Monads for functional programmingを教材(http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf)として例外処理の写経をしてみました。実際写経してみると、この例外処理の例題は、Eitherそのものに思えてきました。 Exception Monado …

EC2インスタンスの起動と停止

rubyからEC2インスタンスを操作を小さなサンプルを作り練習しました。 ASW.configにてaccess_key_idとsecret_access_keyだけでなくregion_idも必要なのですね。それに気づかずかなり嵌りました。 そもそもどのリージョンに属しているかは、インスタンスの情…

気になったホームページサービス

機会があり、ホームページサービスを調べてみました。 なんとなく、WordPressと独自ドメイン取得の構成に集約されているのかなぁと思ったのですが、様々なサービスがあるようで、比較に困りました。 気になったサービスは次の二つです。 Web上で画面を編集で…

Play2の練習

Evolutionalなdb開発(<-日本語がよろしくない)に関心があり、とっかかりとしてPlay2をインストールしてみました。 ダウンロードします。 [play2]$ wget http://downloads.typesafe.com/play/2.2.3/play-2.2.3.zip --2014-05-11 07:33:05-- http://downloads.…

Haskellでニム和、ニム積の実装

ニムとは http://en.wikipedia.org/wiki/Nimber ニム和、ニム積の実装をHaskellで書いてみました。 100%そのままではないにしろ、数式をそのままコードに置き換えることができたのではないでしょうか。 無限リストや内包表記の使い方の学習にもなりました。 …

コンパイル時に型推論が効かない例

下記のように対話的なコードを書いてみました。コンパイルエラーとなりました。 [work06]$ cat test07.hs import System.IO main :: IO () main = do putStrLn "Waht is your name?" a <- readLn putStrLn "How old are you?" b <- readLn return () [work06…

GarageBandのループを使って曲を作る練習

mac

新規プロジェクトを選択します。 ソフトウェア音楽を選択します。 メニューから->「表示」->「Appel Loops」を選択します。 ループの要素を選択します。 ループを重ねて行きます。 メニュー->「共有」->「曲をiTunesに..」で出力します。

IOでの対話環境(ghci)とプログラム実行(runghc)の差異

環境によって挙動が異なります。ghciにて小さなコード片を試してから、プログラムを書くことが多いので、このような差異は頭の片隅においておいた方が良さそうです。 プログラム実行(runghc) バッファされるので、コーディング上先にあるputChar 'a'がgetCha…

Haskellでの数当てゲームでのIO遅延

(05/08追記)コメントを参照してください。 数当てゲームを作ってみました。 doブロック中で出力と入力が交互に処理されるロジックを書いたつもりですが、そうはなりませんでした。遅延評価によると思うのですが、解決方法がわかりませんでした。根本的なとこ…

androidで音楽を再生してみる

res/raw ディレクトリに音楽ファイルを格納します。 ADTではファイルを格納すると、格納したファイルに対応するidが自動的にR.javaに生成されます。 再生ファイル毎にボタン割り当てるユーザインターフェースにしました。シークバーで音量を調整できるように…

ラムダ式で部分適用?

部分的用途とか、ラムダ式とかghci上で、小さなコードをいろいろ試していたらだんだんわからなくなりました。 min関数はパラメータを2つ取ります。Integer型の5を部分適用して、5と比較して小さい値をとる関数を作ります。 Prelude> :t min min :: Ord a =>…

hatenablogのtwitter連携について

id:hatenablog 様へ。 連絡する手段がわからなかったので、要望がありブログ記事にしました。 ブログを投稿したときにその情報をtwitterに連携する機能があります。twitter上の文章は、 はてなブログに投稿しました [タイトル] - [ブログ名] [短縮URL] とな…

Haskell関連の自分のツイート

はてなブログでtwitter貼り付けの機能があるのですね。その練習がてら、自分のhaskellツイートを抽出してみたら、わかってない感満載なのに、今更気づく。 「大きな変更は次のリリース(7.10)に来るかもしれない。それは、ApplicativeがMonadのスーパークラス…

dbを操作するActivity

SQLをそのまま実行できるアクティビティを練習として作ってみました。タブレットの開発の場合は、adbで実機につないでdbの確認をするのではなく、デバック用のツール(アクティビティ)を提供して内部情報を確認した方が、便利なのではないかと思ってみたり…

ラムダ式を使うときと使わないときの型推論の差

よくわかっていない。。。 ラムダ式の場合は型がInteger Prelude> let a = \x -> x * 2 Prelude> :t a a :: Integer -> Integer Prelude> a 5 10 Prelude> a 1.2 <interactive>:4:3: No instance for (Fractional Integer) arising from the literal `1.2' Possible fix: </interactive>…

初めてのAndroidのサンプルを動かしてみる

Androidアプリの学習にて、本格的なアプリ未満、HelloWorld以上のサンプルはないかと探していたところ、初めてのAndroidでの、数独アプリがよいと思いました。 初めてのAndroid作者: Ed Burnette,日本Androidの会(監訳),長尾高弘出版社/メーカー: オライリー…