Perl6のGrammarでサーバログをパースする

何がしたいか 某編集部で運用中のマインクラフトサーバのログを解析して、プレイ時間の一番長い廃人を算出したい。折角なのでPerl6でやりましょうという企画です。lldecadeでPerl6の話が少し出たようなので、それに乗っかろうという感じですね。 はじめに Gr…

TeXでマクロを書いたときにハマった落とし穴と這い出し方

TeX

序文 テーブルトークRPGのシナリオを記述するにあたって、ツールとしてTeXを使うことにした。これに伴って初めてTeXのマクロを記述することになったのだが、予想以上に散々引っかかって痛い目にあった。この記事は更なるTeXの犠牲者を出してはならないという…

HTML5 Canvas with JSX

JSX

JSXを触ってみる Canvasのリッチな機能を使って描画するのはid:xaicronさんが既にやっていたので、私はピクセルをゴリゴリ描画する低レイヤーな部分を触ってみる。 あんまり面白いテーマが思いつかなかったので、とりあえずマンデルブロ集合を描画することに…

With iPhone, No Music.

先に言っておこう。私はiPhoneが大嫌いだ。 私はiPhone4を所有している。電話や出先でのメールはもちろん、音楽を聴くのも大体はこのiPhoneを使っている。(iOS5で多少マシになったとは言え)フルブラウザを名乗るのが烏滸がましいとさえ思える「Safari」の役…

Merry Christmas!

この記事はPerl6 Advent Calender 2011、25日目の記事です。 ようやくここまで続いてきたAdvent Calendarも今日で終わりです。最終日は、今まで解説してきた文法を使って適当なプログラムを書いてみます。 (某学類誌に掲載した記事とあんまり変わらない内容…

左辺値代入

この記事はPerl6 Advent Calendar 2011、22日目の記事です。 さて、記事が落ちたのも二回目ですが、まぁ何とかなるでしょう。明日はクリスマスなので奇跡が起きるに違いない。 今日紹介するのは左辺値代入です。 左辺値代入とは 読者の方が全員ご存知かどう…

ワンライナーのすすめ

この記事はPerl6 Advent Calendar 2011の20日目です。 残念ながら昨日の記事は落ちてしまいましたが、気にせず進めましょう。明日の記事を2本書けば問題無く25日まで進めますね! ここまで私の担当では基本的な文法を紹介してきましたが、今回は少し趣向を変…

Junction

この記事は、Perl6 Advent Calendar 2011の17日目です。 さて、今日はPerl6の持ち味の一つであるJunctionの紹介をしようと思います。 Introduction 少し唐突ですが、「変数iが1か2なら〜」という条件分岐、皆さんはどう書くでしょうか?たとえばPerlで素直に…

関数を作る

この記事はPerl6 Advent Calendar 2011の16日目です。 さて、いわゆる構造化プログラミングでは外せない関数ですが、Perl6では幾つか書き方がありますので紹介しましょう。 sub Perl5でもおなじみ、subキーワードを用いた関数定義の方法です。Perl5とは違う…

数列演算子

この記事は、Perl6 Advent Calendar 2011の11日目です。 今日はオブジェクトの話から少し離れて、数列演算子を紹介しましょう。 infix:は、数列を生成する演算子です。単純に数字をおいた場合、第一オペランドから第二オペランドまで1ずつ変化する数列を返し…

メタメソッド

この記事はPerl6 Advent Calendar 2011の10日目です。 内容的には前回の「クラスとオブジェクト」の続きのような感じなので、この記事を読まれる前に、そちらを先に読む事をお勧めします。さて、前回の記事ではPerl6のオブジェクトがメタクラスによって管理…

クラスとオブジェクト

この記事はPerl6 Advent Calendar 2011の6日目です。 前々回のuasiさんの記事が中々濃い内容だったので、補足としてPerl6のオブジェクトモデルについて簡単に解説しようと思います。 前提 Perl6の世界は(一部のnon-objectなプリミティブ型を除いて)オブジェ…

基本的な制御構文の紹介

この記事はPerl6 Advent Calendar 2011の3日目です。 今年は誰も名乗りを上げないようなので、私が勝手にPerl6 Advent Calendarを立ててしまいました。まだまだ参加者募集中なので、我こそは!という方は是非ATNDに登録をお願いします。 前回はぜっぱち(@Zep…

対話環境perlshを使ってみる

Perlにもirbみたいな対話環境が欲しいなーと思ったのでググったら、perlshなるツールが良いようなので導入してみました。中々悪くなかったので、perlbrew + cpanm での導入メモを書いておきます。 perlshの導入 $cpanm perlsh と実行すると、perlshという名…

Perl6でマンデルブロ集合さんを描く

某複素関数論のレポートで「マンデルブロ集合さんを描け」というのがあったので、折角だからとPerl6で書いてみました。当然モジュールなんて有るわけないので、フルスクラッチですね、大した量ではありませんが。コードは以下の通り。実行結果 少なくともRak…

例のお題をPerl6で解いてみる

Link> お題:文字列を先頭から見て同じところまで除去 - No Programming, No Life という企画に実解析さんが参加しておられたので、私もPerl6で書いてみようかなと。 Link> お題:文字列を先頭から見て同じところまで除去 - はっ!透ける!―黙々とHaskellを…

Twitterのライブラリを書きたい

まだPerl6実装のTwitterクライアントが存在しないと聞いて、ゴリゴリ実装中です。完成までにまだまだ時間は掛りそうですが、完成したらGitHubで公開しようと思ってます。書いてる上で思った事、詰まった事を何点か。 モジュール無い はい、致命的ですね。OAu…

[Perl6]急にPugsが来たので@Ubuntu 11.04

この前、完全に忘却の彼方に眠っていたPugsの最新版が公開されていたので、導入してみることにしました。Macでは非常に問題が多く、一筋縄ではいかなかったので、Ubuntu上でPugsを導入してみます。 Macの問題 アーキテクチャの話はズブの素人なので、以下は…

MacOSXでYaTeX環境を整える

用意するもの あらかじめ導入されているのが前提で話を進めますので、導入方法とかは各自で適当にググるなりしてください。 Emacs YaTeX TeXShop YaTeXの下準備 Mac環境をUTF-8で統一したかったので、YaTeX自体に少しだけ手を加えます。yatexlib.elの49行目(…

3日目 - ファイル操作

この記事は”Perl6 Advent Calendar”をエスパー和訳したものです。大意は合っていると思われるものの、内容は保証しません。 <原文> 3日目 - ファイル操作 (原文/Moritz) Day 3 – File operations By Moritz ディレクトリ Directories (Perl5の)opendirなどと…

2日目 - コマンドラインとMAIN関数の交流

この記事は"Perl6 Advent Calendar"をエスパー和訳したものです。大意は合っていると思われるものの、内容は保証しません。 <原文> 二日目 - コマンドラインとMAIN関数の交流 (原文/Moritz) Day 2 – Interacting with the command line with MAIN subs By Mo…

Perl6でMMDを使ってみた

Perl6では関数の定義時にSignatureを詳しく宣言できるようになりました。また、変数の宣言に静的型付け的な要素が取り入れられたため、引数リストの数だけでなく型の指定が可能です。また、引数だけでなく返り値の型も宣言できるようになりました。他にもオ…

なにこれこわい

聞いた所、一年宛にCoinsのMLにこんなメールが流れているとか。 こんにちは、いきなりのメール失礼します。自分はxx学類1年のxxxxと申します。 今日は全学類1年呑みの連絡のためメールを送らせて頂きました。〜〜〜〜〜〜〜〜〜〜 ★筑波大学 全学類1年呑…

辞書の有効活用

超久しぶりの更新。 Macユーザの皆さんなら既にご存知かと思いますが、MacOSXにはDictionary.appという辞書ソフトが標準で搭載されています。この辞書ソフト、英和/和英に国語時点まで付いてるという優れものなのですが、いかんせん使いにくい。そもそも起動…