読者です 読者をやめる 読者になる 読者になる

初代Masteries

きっとモヒカンにもなれないお前たちに告げる!!!

MinillaでXSモジュールを作る

モジュール開発のテンプレート(ひな形)生成・サポートツールとして最近注目を集めているMinillaですが, これPPモジュールだけでなく, XSモジュールの開発もできるんですね. $ minil new -p XS Hoge::Fugaこのコマンドで, XS用のテンプレートを作ってくれるよ…

minil releaseでAcme::SuddenlyDeathのバージョンアップをした話

各方面から「モジュール名はAcme::SuddenDeathでは?」という暖かいご意見を頂きつつも, 何だかんだでHachioji.pmが開発しているyanchaなどでも活用されているという噂の拙作モジュール, Acme::SuddenlyDeathをバージョンアップいたしましたのでご報告致します.…

演算子の優先順位で後輩が困惑していた話

研究室の後輩, @bool_foolが, 「このスクリプト, なんかうまく動かないんすけど原因わかりますか?」と聞いてきました. use strict; use warnings; chomp(my $a1 = shift); chomp(my $a2 = shift); print "$a1 + $a2: " . $a1 + $a2 . "\n"; print "$a1 - $a2: …

続・plenvを使ってみた

以前, 「plenvを使ってみた」という記事で紹介した, @tokuhiromさんが開発したPerlのインストール管理ツールplenvが, シェルスクリプトで再実装されたそうです.これまでのplenvはPerlで実装されていた為, perlを実行する前にperlを実行する必要がありましたが,…

2013年6月のProject Euler [最終更新: 6月24日(月)]

いよいよ6月. 今月も頑張っていきます! 6月24日(月) Problem 55 10000以下の数値について, 「反転したものを足す」という操作を繰り返しても回文数にならないLycherel数であるものの個数を求める問題. use strict; use warnings; use Math::BigInt; my $answer…

App::LP::Dumperを書いてみた.

@goccy54さんが作ったCompiler::LexerとCompiler::Parserのコマンドライン・インターフェイスに相当する, App::LP::Dumper *1というモジュールを作ってみました.先日書いたApp::CL::Dumperに, Compiler::ParserによるASTのダンプ機能をつけたものです. Compil…

知られざる寿司の効用

寿司, 食べます.

Test::LocalFunctions::FastをTest::LocalFunctionsにマージしてもらいました.

「T::LFとT::LF::F, 違う人が管理するの非効率じゃね?」という意見があったので, Test::LocalFunctions::FastをTest::LocalFunctionsにマージしてもらいました.次のT::LFの更新で, CPANからTest::LocalFunctionsを入れれば, Test::LocalFunctions::Fastがuseで…

App::CL::Dumperというモジュールを書き始めました.

最近, @goccy54さんのCompiler::Lexerや, Compiler::Parserがアツいです.Compiler::Lexerについては既にCPANizeされていて, 「PPIよりも高速な字句解析機」として, @tokuhiromさんのPerl::MinimumVersion::Fastや拙作のTest::LocalFunctions::Fastなどで使われ…

perldoc.jpにほんのちょこっとだけ貢献(?)してみた.

※@ktatさんのtwitter IDをtypoしていたので修正しました. 大変申し訳ございません.英語で書かれたPerlの公式ドキュメント, perldocの日本語訳としてperldoc.jpがあります.@argrathさんや@ktatさん達が積極的・精力的にドキュメントの翻訳をして下さっているの…

誰得感溢れるGCC::Buildというモジュールを書いていますが心が折れそうです

自分が所属している研究室では, GCCやClangといったコンパイラのバグ調査や, MIPS/ARMのクロスコンパイラを使った諸々の研究をしているので, 結構GCCをビルドする機会があります.GCCのビルドは, 慣れるまではかなーり面倒(参考資料: @syohexさんのこの記事と…

できる! pull request!

git

最近, GitHubでpull requestを送ったり, pull requestを送ってもらう機会が増えてきました.自分用メモとして, pull requestをする時や, 送られたpull requestを捌く時に役立つ情報(これらの作業を行う度に確認している事)をまとめてみました. pull requestを…

Growlで応援してくれる君を作った

growlとかで「頑張って!」とかアニメアイコンの女の子が語りかけるやつ作れば良いのでは?— papix@Minecraft中毒患者さん (@__papix__) 2013年5月17日というわけで作りました. #!/usr/bin/env perl use strict; use warnings; use utf8; use Config::PL; us…

RitsでMatzさんの話を聞いてきた

Ritsこと立命館大学のびわこ草津キャンパスで, Matzことまつもとゆきひろさんの講演会があったので, 参加してきました. 以下メモ*1.togetterのまとめも参考になります. 「これはこういう事が言いたかったのでは?」, 「この話が抜けてるよ!」等々ありましたら, 修…

コマンドラインからtwitterをつぶやける君が完成した

昨日作っていた, コマンドラインからtwitterをつぶやける君が完成しました. #!/usr/bin/env perl use strict; use warnings; use Config::PL; use Encode; use File::Spec::Functions qw/catfile/; use Getopt::Long qw/:config posix_default no_ignore_cas…

コマンドラインからtwitterをつぶやける君を書いた

コマンドラインからtwitterに発言できるスクリプト, twinchanを書いてみました. #!/usr/bin/env perl use strict; use warnings; use Config::PL; use Encode; use File::Spec::Functions qw/catfile/; use Net::Twitter::Lite::WithAPIv1_1; my $twitter_ke…

Ubuntu起動時にsynergycを立ち上げる

研究室にある複数のPCを1台のPCから操作できるように, Synergyを使っています. Windows/Mac/Linuxに対応しているので, OSの違いを気にしないで操作できるので非常にありがたいです.Ubuntuを起動した際に, クライアント(操作される側)のsynergycを自動起動す…

オイラー王になれませんでした!

弊社(GaiaX)にはプログラミング部と呼ばれる部活動があります. 始業前に「朝練」と呼んでいる自主勉強会を開催したり, Project Eulerの問題を解く会を開いたりして, お互いの技能を高め合ったりしています*1.この部活動ですが, 今年度に入ってから, 「Peroject …

Acme::SuddenDeathというモジュールを書いています.

以前, 「突然の死」風AAを自動生成するAcme::SuddenlyDeathというモジュールを書いたのですが, これについて各方面より「"SuddenlyDeath"ではなく"SuddenDeath"ではないか?」との声*1が寄せられております.一言で言えば「私もちょっと気になってたのですが、Acme…

Perl入学式, スタッフ募集中です.

Perl入学式では, 共にPerl入学式を盛り上げていくスタッフ・サポーターを募集しております! Perl入学式を通して, 改めてベースから復習してみませんか? スタッフ・サポーターとしての参加を希望される方は @perl_entrance までお問い合わせ下さい!— Perl入学式…

千葉でTDDをしてきた. 〜第3の日〜

5月6日 ...3日目ともなると, さすがに疲れ(主に昨日の鋸山)が目立ってきたので, 十分に睡眠を取って10時ごろ出発.今日は奥多摩方面に行ってみることにしました.奥多摩町の丹三郎という蕎麦屋で昼食. こちらは蕎麦掻き.天ぷら, そして...お蕎麦!とても美味で…

千葉でTDDをしてきた. 〜第2の日〜

5月5日 「鋸山で"gem install nokogiri"をしよう!」という事で, 鋸山にやって来ました.このロープウェイで山頂付近まで登ります. めちゃくちゃ混んでいて, だいたい1時間くらい待ちました.切符は最近めずらしくなった硬券でした.ゴンドラに乗り込み, いよいよ…

千葉でTDDをしてきた. 〜第1の日〜

今週のお題「2013年のゴールデンウィーク」 Travel Drive Development Travel Drive Development, 旅行運転開発. それは旅行の合間, 僅かな時間を見つけて開発に取り組む, 今となっては封印された太古の開発手法である.時は流れ, 2013年のGW. その失われた手…

Test::LocalFunctions::Fastというモジュールを作った.

もずにょん君が, モジュール内で使用していないローカル関数を検出してくれるTest::LocalFunctionsというモジュールを作っているのですが, これの高速(?)版であるTest::LocalFunctions::Fastというモジュールを作ってみました.https://github.com/papix/Test…

2013年5月のProject Euler [最終更新: 5月27日(月)]

アルゴリズムを考える能力を付ける, というよりは, 「定期的にコツコツ作業する」事に慣れるのと, コードを書く力を伸ばす*1為に挑戦を続けているProject Eulerですが, 先日お伝えしました通り, 解答を月ごとに, 1つの記事にまとめることにしました.というわけ…

Compiler::Lexerで遊んでみた.

Compiler::Lexerというモジュールがあります. これは, mixiの@goccy54さんがgperlという「速度を重視したPerlの実装」を開発した際に作った, Perlの字句解析器をモジュール化したものです. たぶん.gperlについては, 去年のYAPC::Asia 2012で「Perlと出会い、Per…

Project Euler - Problem 33

Problem 33 '49/98'のような, 分子と分母に共通する数字(この場合, 9)を取り除いた時に, 取り除く前の数字と取り除いた後の数字が一致する(49/48 = 4/8)分数を探す問題です. ただし, 分数は1より小さい. 分子・分母ともに2桁の数. '30/50'のような, 明白なも…

Ubuntu 13.04にVagrantを入れてみる.

先日入れたUbuntu 12.10ですが, 2週間あまりでお役御免となって先日公開されたばかりのUbuntu 13.04を入れました. 今回はそのUbuntu 13.04にVagrantを入れてみようと思います! Vagrantって? Vagrantは, VirtualBoxという仮想マシンに対するフロントエンドを…

Project Euler - Problem 32

Problem 32 ...今気づいたのですが, 日記の一覧を見ていると, オイラーの日記で投稿数を水増し(?)しているように見えます...よね. Project Euler解答系以外の記事を日記の一覧から探すときにちょっと不便なので, 来月からは月初めの投稿を「5月のProject Eule…

Project Euler - Problem 31

Problem 31 イギリスの硬貨, ポンドとペンス(1p, 2p, 5p, 10p, 20p, 50p, £1 = 100p, £2 = 200p)から, £2(2ポンド)を作る組み合わせがいくつかあるかを求める問題. use strict; use warnings; my $pattern = 0; my $target = 200; for (my $A = $target; $A …

東京でカジュアルに寿司を楽しんできました!

4月20日(土) 夜行バスに乗り約8時間, 新宿駅に到着.miyagawaさんのPodCastを聞きながら, 新宿駅から渋谷駅までまったり散策.いい機会なので, 明治神宮でお参りしてきました. Sushi Casual 「Perl入学式in東京 #1」の決起集会的なSushi Casual. 参加者は6人だっ…

Project Euler - Problem 30

Problem 30 なんだかんだで30問目まで到達ですね. もうちょっと頑張ってみましょう!さて, 今回の問題は, 各桁を5乗した数の和がもとの数と同じになるような数の和を求める問題. my $i = 1; while (1) { my $sum; $i++; $sum += 9 ** 5 for 1..$i; print "$i:…

Project Euler - Problem 29

Problem 29 2 答えを配列にpushしていくと, 「同じ項」を除去するのが面倒なので, 連想配列に格納していく形にしました. use strict; use warnings; use bigint; my %term; my $max = 100; for my $A (2..$max) { for my $B (2..$max) { $term{$A ** $B} = 1; …

Perl鍋でお鍋を食べてきた

新大阪コワーキングで開催されたPerl鍋 #4に行って来ました. 前回は確かキムチ鍋だった気がするのですが, 今回は味噌鍋でした.こんな感じで鍋を食ったり, コード書いたりする会です.今回は, 最近いじくり回しているApp::gitenvのリファクタリングをやってい…

Project Euler - Problem 28

Problem 28 どういう問題かを簡潔に説明するのがちょっと難しいので, 上記ページをご覧ください. use strict; use warnings; use bigint; my $answer = sum_diagonal(2) + sum_diagonal(4) + sum_diagonal(6) + sum_diagonal(8) + 1; print "$answer\n"; sub…

gitosisで公開鍵の追加が出来なくなった件

...が研究室で発生したので, メモ. 症状 gitosisのkeydirに公開鍵を追加したにも関わらず, cloneが出来ない. gitosisが置いてあるサーバの'/home/git/.ssh/authorized_keys'に, 追加した公開鍵が現れない(公開鍵を追加ではなく変更している場合, 新しい公開…

Ubuntu 12.10を入れた時にやったこと

研究室から4代目の研究用PCを強奪... じゃない, 貸与して頂いたので, 早速Ubuntu 12.10を入れました. 毎回初期設定で「アレ, どうやるんだったっけ...?」と悩むので, 初期設定で何をしたかをまとめておこうと思います.

Project Euler - Problem 27

Problem 27 プログラミングのセンスもさることながら, 数学的センスも全っ然ないなあ... とヘコむ今日このごろです.問題としては, 「連続するnの値から素数を生成したとき最長の長さとなる二次式を求めよ」という感じ. 簡単に言えば, n^2+an+bについて, nを0か…

「Perl入学式in大阪 #1」をやってきました!

...というわけで, Perl入学式第2シーズンの始まりを告げる「Perl入学式in大阪 #1」を, 昨日4月13日に開催してきました. 講義内容 担当講師は第1回, ということで代表取締られ役として先陣を切らせて(?)頂きました.今回は第1回ということで, 恒例(?)の環境構築…

ラーメン, 再び.

なんだかんだで今週は4回もラーメンを食べに行ったので, 残りの2回分も紹介しちゃおうと思います. 旨いらーめんゆうや 大学の最寄り駅, 新三田駅近くにある, こってり気味の味噌ラーメンのお店. 今回はトッピングにネギを盛ってみました.この店は海苔が食べ…

Project Euler - Problem 26

Problem 26 d use strict; use warnings; use Math::BigInt; for (reverse 1..1000) { my $n = Math::BigInt->new('1'.'0'x(2*$_))->bdiv($_)->bstr; if ($n =~ /(\d{2,}?)\1/ && length $1 == $_ - 1) { print "$_\n"; last; } } 1/dにおける循環節の長さは…

Project Euler - Problem 25

Problem 25 フィボナッチ数が1000桁を越える最初の項は何項目かを調べる問題. use strict; use warnings; use bigint; use Memoize; memoize('fibonacci'); my $length = 1000; my $n = 1; while (length fibonacci($n) < $length) { $n++; } print "$n\n"; …

BitcasaのカオスなPerlワンライナーを読み解いてみた.

Bitcasaのとあるページに書かかれているPerlのワンライナーがカオス! ...みたいなつぶやきを見つけたので, 自分なりに読み解いてみました. 勘違いしている部分や説明が間違っている部分が多数存在すると思われます. お気づきの方はtwitter等でご指摘頂ければ…

Project Euler - Problem 24

Problem 24 30までは頑張りたいです(震え声).今回の問題は, 0..9からなる順列をソートして並べたときの100万番目を求める問題です. forループを延々と回してもよいのですが, 時間がかかりそうですしシンプルではないので, こういう風に考えてみました.9! = 3…

ラーメンを食べる旅

3月の九州旅行で18切符が1枚余っていたので, 消化を兼ねてラーメンを食べる日帰り旅行をしてきました. ...というわけで, 定番のレポ.

Project Euler - Problem 23

Problem 23 問題を解くのが結構キツくなってきました. ...もうちょっと頑張ります.この問題は, 2つの過剰数の和で書き表すことができない整数の総和を求める問題. 過剰数とは, ある数の約数の和がその数よりも多いものを指すようです. で, 数学的な解析によ…

今更ですが, PerlCasual #05に行ってきた話を書きます

※スライド・感想ブログのまとめはこちらです.3月29日に渋谷ヒカリエのNHN Japanで開催された, PerlCasual #05に参加してきました.会場は会社のカフェスペース? っぽい場所だったのですが, 夜景が綺麗でとても良い会場でした.

Project Euler - Problem 22

Problem 22 テキスト処理系の問題. Perlの得意分野ですね!テキストには5000個以上の名前が書いてあって, リスト中の出現順と名前の各アルファベットのスコア(Aは1, Bは2...)をスコアとした時の全名前のスコアの和を求める, という問題です. 但しリスト中の出…

Project Euler - Problem 21

旅行中はお休みを頂いておりましたが, そろそろ復帰します. 4月1日より, 毎週月・水・金曜日に1問ずつProject Eulerの問題に取り組んでいきます.今後の予定ですが, ひとまず自分のスキル的に問題が解けなくなるか, 50問あたりに達した時点で, リファクタリング…

PerlCasual #05のスライド・感想ブログまとめ

まとめちゃって, いいですか? というか, なんか無意識にまとめていたのでとりあえず公開しておきます.※本記事でのスライド/感想ブログの紹介に問題がある場合は@__papix__までご連絡下さい. 紹介をとりやめさせて頂きます. ※基本的にtwitterで検索して掲載し…