IT練習ノート

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

2014-01-01から1年間の記事一覧

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の会(監訳),長尾高弘出版社/メーカー: オライリー…

coreutilインストールの練習

gnu

coreutilインストール作業ログ パッケージマネージャの更新 mytest:/home/ubuntu# apt-get update gitのインストール mytest:/home/ubuntu# git The program 'git' is currently not installed. You can install it by typing: apt-get install git mytest:/…

PPMのライブラリを使ってみる

モジュールの確認 [work04]$ cabal list | grep PPM Warning: The package list for 'hackage.haskell.org' is 34 days old. Run 'cabal update' to get the latest list of available packages. * AC-PPM Synopsis: Trivial package for writing PPM images…

EC2にTomcatインストール

いつもインストール方法を忘れてしまうので改めてメモ。 (1)yumの更新 [root@ip-xxx-xx-x-xxx ec2-user]# yum update 読み込んだプラグイン:priorities, update-motd, upgrade-helper 依存性の解決をしています --> トランザクションの確認を実行しています…

haskellでppmファイルをネガポジ変換

まぁ目も当てられないHaskellコーディングです。 自分がHaskellわかっていないことを晒していますね(^^;;。画像フォーマットのデータ構造をデータ型として表現すべきなのはもちろんですが。。 1 import System.Environment 2 import qualified Data.ByteStri…

cabelを使ってgithubにあるパッケージをインストール

練習してみました。 step.1 ダウンロードする [work04]$ wget https://hackage.haskell.org/package/ppm-2009.5.13/ppm-2009.5.13.tar.gz --2014-04-21 11:13:51-- https://hackage.haskell.org/package/ppm-2009.5.13/ppm-2009.5.13.tar.gz hackage.haskell…

HaskellでIntからCharへの変換

その(1) Prelude> :t Data.Char.chr Data.Char.chr :: Int -> Char Prelude> Data.Char.chr 70 'F' Prelude> Data.Char.chr 102 'f' その(2) Prelude> :t Data.Binary.Put.putWord8 Data.Binary.Put.putWord8 :: GHC.Word.Word8 -> Data.Binary.Put.Put Prel…

遅延評価に嵌る

お約束中のお約束と思います。 バイト列の読み込み サイズが196623バイトのファイルがありまして。 [testuser]$ ls -al ./girl.ppm -rw-r--r-- 1 testuser testuser 196623 4月 20 06:54 ./girl.ppm ghciを起動して。 [testuser]$ ghci GHCi, version 7.6.3:…

よくわかる最新画像処理のアルゴリズムの基本と仕組み

OpenCVを触って見たものの、そもそも画像処理について全くわかっていないので、OpenCVのサンプルコードや、Webにある解説記事を読んでもさっぱりわからない状況でした。本格的に画像処理をやるわけではありませんが、画像処理のはじめの一歩ぐらいの知識はあ…

バイナリデータの書き出し

意外にもシンプルなサンプルが見つけられなかったのでメモ。 というかこれであってるのかなぁ。。 import System.IO import qualified Data.ByteString.Lazy as BL import Data.Binary.Put main :: IO () main = do whandle <- openFile "foo_out2.txt" Writ…

headを試してみる

headという関数を試してみました。 事前準備 StringをByteStringにする方法は、Hoogleで検索すると、Data.ByteString,Char8.packでした。 Prelude> :t Data.ByteString.Char8.pack Data.ByteString.Char8.pack :: String -> Data.ByteString.Internal.ByteSt…

初めてのPPM

ppm

画像フォーマットPPMのファイルを自分で作ってみました。vimで16進でファイルを作成しました。 0000000: 5036 0a23 2074 6573 7420 7070 6d20 0a32 P6.# test ppm .2 0000010: 2032 0a32 3535 0aff 0000 00ff 0000 00ff 2.255.......... 0000020: 0000 00 ..…

はじめてのTPL

c#

Azure上のWindows2012サーバで試してみました。管理コンソールより2コアにしました。 タスクマネージャから確認すると、仮想コアが2になっています。 実行結果はこちら。 PS C:\Users\mytest01\Documents\myapp01> type Test02.cs using System; using Sys…

EC2上でC#を試してみる

価値があるとは思えませんが、環境があるとC#の文法ぐらいは勉強できるかと。 root@ip-XXX-XX-XX-XX:/home/ubuntu/download# sudo add-apt-repository ppa:keks9n/monodevelop-latest Here you can find the latest MonoDevelop. monodevelop-latest package…

EC2へファイルアップロードとEC2からファイルダウンロード

aws

何度もわすれるので、備忘として記録アップロード work$ scp -i ./xxxxx.pem ./Mandarin_Pair.jpg ubuntu@YY.YYY.YYY.YYY:/home/ubuntu/download/opencv-2.4.6.1/samples/c Mandarin_Pair.jpg 100% 24KB 24.4KB/s 00:00 ※アップロード先のディレクトリに書き…