ROUTE 3390

備忘録的な用途で書いていますが、どなたかの役に立つ事があれば嬉しいです。

Perlには無いRubyのyield文に少し嫉妬を覚えた

最近Rubyを勉強していて、今日yield文というのに出会った。 忘れないようにメモyield文はこんな感じで書く def foo ( name ) yield('おはよう' + name) yield('おやすみ' + name) end foo( 'sasakure' ) do | message | puts message end 結果はこのように表…

Bundlerを使ってRailsをいれてみた

前回のエントリーでrubyをインストールしたので、 次はBundlerを使ってRailsを入れてみたいと思います。 やることは大きく3つ • ruby本体にgemでBundlerを入れる • 一時的なgemでRailsを入れる • Railsアプリケーションを作成したら一時的なgemを消す (そ…

rbenvを使ってみたよ

Perlのplenvを導入してみて大変便利だったので、 Rubyのrbenvを使ってRubyのバージョン切り替えとか簡単にやりたい!っと思い使ってみました。 ※元々plenvはrbenvを参考に作られたそうです。まずはgithubから持ってきます。 $ git clone git://github.com/ss…

Perl入学式in東京 #1 へ遅刻しました

以前から気になっていた「Perl入学式」というperl未経験/初心者向けのイベントが ついに東京でも行われるという事で早速参加してみました。[Zussar] http://www.zusaar.com/event/583008 [Perl入学式 公式ページ] http://www.perl-entrance.org/仮にもPerlを…

宇宙ステーション演算子について解説してみた

Perlの食えない事情-演算子編を読んで、とても面白く演算子を学ぶ事が出来ました。なかでも「宇宙ステーション演算子:-+-」はなかなか理解出来なかったので、僕なりに解説したいと思います。 その前に「ビーナス演算子:0+,+0」について触れておきます。 pr…

いまさら素数戦争のdankogai.plを読んでみた

2012年のYAPC::Asiaで紹介されていた素数戦争「10000番目までの素数の和を求める」 というお題をいかに早く算出するか!というものでした。私も参加ダメダメながら参加して楽しんでいました。私の記録はこちらそこで気になっていたのが「殿堂」となっていたd…

AcmeモジュールをCPANにあげてみた

先日Perl Beginnersに参加したときにLTで話した Acme::ReplicaというモジュールをCPANにアップしました。コードはCPANかgithubをご参照ください。Acme::Replicaについて 精巧に作られた食品サンプルのように、見た目は本物そっくりですが 実際には食べれない…

Perl Beginners #6 に参加しました

2013/01/25 Perl Beginnersに参加してきました。 この勉強会への参加は今回が2度目。 前回はBeginnersセッションというコーナーでガチガチに緊張しながらも登壇し、 「RestAPIを提供するために」という内容で発表と質問をしました。 ひどい発表と質問にも関…

プログラムでの小数計算で誤差を含んでしまう原因と解決方法

Perlに限らずだいたいのプログラムでは小数点の扱いが苦手。 なぜなら浮動小数点方式というデータの持ち方をしているから。 10進数の0.1を浮動小数点方式では正確に表現出来ない(循環小数となり、途中で丸められてしまう)そのため近似値で扱うことになり、…

Perlで不思議なハッシュが作れるはなし

このエントリーを書いたキッカケはこのtogetterです。 実際に書いて調べて、リストと配列は別物であるとか勉強になりました。 なかでもハッシュのキーに「リスト(配列ではない)」を指定した時の動作は面白かったので、私の検証結果をまとめてみました。 ま…

Exporter.pmの役割を知ったのでメモ

perlで文字コードを扱う時に使用するモジュールといえばEncode.pmですよね。 CPANはこちら SYNOPSISを見ると下記のようにuseしていますね。 use Encode qw(decode encode); $characters = decode('UTF-8', $octets, Encode::FB_CROAK); $octets = encode('UT…

はじめてCPANにあげてみた 〜 そして早速バージョンアップもやってみた 〜

タイトルの通り、初めてCPANにあげてみたので、その備忘録です。 アップロードしたモジュールは前回作ったMojolicousのプラグインです。 プラグインの内容や、そもそもそんなのいらないとか、名前空間へんだよ、などなど、もしお気づきの点などあればご指摘…

後置ifでmy宣言しちゃダメ

perlのスコープは{}ブロック毎に出来ます。 例えばこんな感じ。 my $flg = 1; if ( $flg ) { my $hoge = 'sasakure'; print $hoge; # output「sasakure」 } print $hoge; # Global symbol "$hoge" requires explicit ...<省略> {}ブロック内で宣言されたmy変…

Mojoliciousのプラグイン作成コマンドを使ってみた

Mojoliciousで開発をしていて、既存のプラグインを使ったり、新規に自分で作ったりすると思いますが そんな自分で作ったプラグインの中には「CPANにあげたい!」と思うものも出てくるんじゃないでしょうか。 僕は今回、Webサイトの他言語対応(国旗の画像をポ…

MojoliciousでのSession管理

よくあるセッション管理って、アクセスしてきたユーザー(ブラウザ)にセッションIDを発行します。 サーバー側ではセッションIDをキーにして 色々な(ユーザーAAAで、ログイン済みといった)情報を保存しておきます。 ユーザーのブラウザにはセッションIDが…

MacOS X にMongoDBをインストールしてみた(CentOSもあるよ)

僕にとって記念すべき初めてのNoSQLがMongoDBとなりました。 今回はそのインストール手順をメモメモportでインストール shell> sudo port install mongodb ## だいたい10分くらいかかった ##必要なディレクトリとログファイルを作成して、さて起動 shell> su…

Mojoliciousを使ってみたよ

PerlのフレームワークMojoliciousを使ってみたので、そのメモ。 マシンはMac OS X ちなみに、Mojoliciousはドキュメントが日本語訳されていますよ Home · yuki-kimoto/mojolicious-guides-japanese Wiki · GitHub まずはCPANからインストール $ sudo cpan cp…

P-01Dの端末依存?

WebViewを使ったアプリを開発していて、開発環境のページにはBasic認証をかけている事はよくあるケースだと思います。 そんな時 setHttpAuthUsernamePassword(String host, String realm, String username, String password) を使うと思うのですが、、 なぜ…

Mouse(Moose)で使うMouseX::Types::Path::Classが素敵

今日はMouseX::Types::Path::Classって素敵ですねってはなし。例えば、ログを吐くディレクトリを今まではこうやって用意してた。 package Sasakure; use Mouse; has 'dir' => ( is => 'ro', isa => 'Str', ); __PACKAGE__->meta->make_immutable; no Mouse; …

HTTP Authorizationヘッダを環境変数にセットする

Apacheを利用している場合、デフォルト状態だと Authorizationヘッダの中身を環境変数には入れてくれません。プログラム上で認証処理を行いたい場合は、下記のようにRewriteRuleを使って 環境変数に格納してあげる必要があります。.htaccess RewriteEngine o…

MySQL Clusterの設定ファイルを作ってくれるツール

MySQL Clusterの設定ファイルを作ってくれるツールがあるんですね。 知りませんでした。ほとんど動くものが出来たので便利でした。http://www.severalnines.com/config/英語ですが、ひとつひとつ翻訳して、分からないキーワードは調べて、、、MySQL Cluster…

Mouse(Moose)のRoleにはBUILDメソッドを書くべきではないんだね

下記のようなソースがあった。Sasakure.pm package Sasakure; use Mouse; with 'SasaRole'; __PACKAGE__->meta->make_immutable; no Mouse; 1; SasaRole.pm package SasaRole; use Mouse::Role; no Mouse::Role; sub BUILD { my $self = shift; warn "sasaro…

CGI::Application::DispatchとMouse(Moose)を使った時にハマったこと

CGI::Application::Dispatchで下記のようにargs_to_newを使うと、 実行するモジュールへの引数が指定出来る。index.cgi #!/usr/bin/perl use strict; use warnings; use CGI::Application::Dispatch; CGI::Application::Dispatch->dispatch( prefix => 'Sasa…

MySQLでテーブルサイズを調べる方法のメモ

▼全てのテーブルサイズをGB(ギガバイト)で取得 SELECT SUM(data_length)/1024/1024/1024 as db_size_GB FROM information_schema.tables WHERE table_schema='データベース名'; ▼特定のテーブルサイズをMB(メガバイト)で取得 SELECT SUM(data_length)/1024…

ScalaでJavaのListをforにぶっこんだら怒られた

エラーはこんな感じ。 value foreach is not a member of java.util.List[String] for(foreach)はJavaのListを扱えないんですって。じゃあどうしたらforで扱えるのさ? 型変換を行えば良いらしい。まずは必要なモジュールをインポート。 import scala.collec…

Entity-Attribute-Valueモデル

DB

ECパッケージ Magento で使われているEAVモデルについて、自分なりに理解できているか確認の意味も込めてまとめます。 誤りなど気づいた方がいらしたら、是非つっこんでください。まずよくあるユーザーテーブル ▼customer_table id name birthday address 1 …

HttpURLConnectionでハマったこと

Androidアプリの開発に携わるようになったので、ちょっとそちらでハマった話。アプリからどこぞのAPIを叩く時など、httpやhttpsで通信を行います。 その時利用したのがjava.net.HttpURLConnection これを使うのがスタンダードみたい。 それでメソッドにはGET…

ブロック暗号方式に挑戦。 Mcryptを使ってみた

McryptでCBCモードを使う機会があったのでメモ use strict; use warnings; use Mcrypt qw(:ALGORITHMS :MODES); use Digest::MD5 qw(md5_hex); my $FILE_NAME = 'kkkkk.txt'; my $FILE = '/home/sasakure/' . $FILE_NAME; my $td = Mcrypt->new( algorithm =…

スーツのAOKIでポイントカードを作ってる人は要注意

このブログはたまーに仕事関係の備忘録に書くだけですが、あまりにも衝撃だったのでここに記します。 結論から言うと。 電話番号が分かれば、たとえ本人じゃなくても名前や生年月日、住所、性別などを知る事が出来る。 AOKIでポイントカードを発行した事があ…

mac portsでzshをインストールしてみた

zsh

zshを使いたくなったので、インストールしてみました。 その際のメモメモmacなんだしmac portsで簡単に出来るんじゃない?と思ったら出来ました。さっそくインストール $ sudo port install zsh-devel下記のようなメッセージが表示されました。 If you want …