2013年12月8日日曜日

コンパイル時FizzBuzz

無名再帰の記事を書いたと思ったら書いて無かったし、テンプレート制約なるものを見聞きしたので使ってみたりした。

2013年11月30日土曜日

D言語のTemplateを使ってみる

よくよく考えるとD言語のジェネリクスとかテンプレートとか全然知らなかったので、テンプレートを使って見ました。

2013年11月18日月曜日

2013年9月13日金曜日

D言語 + SDL2.0でテトリス的なものを作ってみた

気づいたら既に9月も半ばなんですがそれは……

書いたコードはここにあります。
https://github.com/rigibun/PuzzleGame
1ファイルで全部やってたり、中途半端にオブジェクト使ってるけど基本的には手続き指向だったり、コメント書いてなかったりと色々ひどいことになってるけど。
githubのリポジトリ作る画面でライセンスをパブリックドメインにしといたけど、実際バイナリ作るときはSDLとかそれぞれ違うライセンス持ってたりするからよく分からない。

開発環境について

dubを使いました。Derelict3とか勝手に持ってきてくれるしすごい楽。dubすごい便利。
SDL2.0はここにあるんで適当にインストールしたりすれば多分動くと思います。
ただ、 Thread.sleep( dur!("msecs")(1) ); とかやってるのであまり互換性ないかもしれない。そのあたりは全然分かってない。

反省点

・メイン関数がアレ。単純に行数が100行ってだけなら問題無いのかもしれないけど、循環的複雑度的には結構ひどいと思う。
・コメント書いてない。最初にREADMEに日本語書かなかったことから、なんとなく英語使うことにこだわってたけど、そもそも英語力なんて無いし(関数の命名とか見れば分かるけど)、
 最初から日本語でコメント書いとけばいいのでは。
・テトリスとしてのゲーム性。スーパーローテーションとか言うモダンなテトリスの機能は全然入れてない。
・メンテナンス性。皆無。

実際にはスコア表示というか消したライン数の表示と、NEXTの表示くらいはやりたかったけど、完成したコード見たら直す気が全く起こらない。

作ってて気づいたこと

・D言語楽しい。と言ってもD言語の機能ほとんど使ってない気がするけど。
・実装力というか、設計力というか、プログラミング力が足りない。全体の見通しが立たない。
・どんなクソなプログラムでも完成させることは大事。"Just Fxxking Do It."

もっとまともなコードが書けるようになりたい

2013年8月25日日曜日

2013年8月9日金曜日

AOJ 0516

K&R読んでるのもあって、(C++のライブラリが要らない)簡単な問題なのでCで書いてみた。

2013年8月8日木曜日

リーダブルコードを読んでみた

実際にこの本買ったのは先月の10日くらいなんだけど、読んだままにしておくのもアレなのでブログに書く。

内容としては、全くタイトル通り、読みやすいコードを書くための技術とかの本なんだけど、単にインデントがどうとか命名がどうとかいう話だけではなくて、読みやすいコードにリファクタリングしたり、ロジック自体をリファクタリングしたり等々、読みやすいコードにするための色々なテクニックとかをサンプルコードも入れつつ解説してる。

プログラマーの間でよく言われる「3日前の自分は他人」っていう言葉は大げさでは無いので、他人がコードを理解しやすい様に、そして何より自分が理解しやすいように、読みやすいコードを書くということを意識するべきなので、この本を読んでそういった技術も身につけておくといいと思います。

2013年6月6日木曜日

Windows Live Writer のテスト

win8で久々にwindowsに戻ったので、Visual Studioやらなんやらやってます。

Windows Live Writerからの投稿

2013年5月12日日曜日

Debian wheezy

wheezyがリリースされたのをきっかけに、デスクトップとラップトップ(x121e)をDebianにしました。
LinuxMintは結構使い易かったけど、gnome-boxesが気になってgnomeにしようと思い、せっかくなのでまるごとDebianにしました。
sidにするかwheezyのまま使うかはもうしばらく考える。

インストールについて
わざわざ書くこともないだろうけど、http://www.debian.org/からISOイメージをダウンロードします。
多分torrent使うほうが速い。
インストールマニュアルとかもあるので、インストールには困らないはず。

で、x121eでインストールしていて問題が。
realtekの無線LANモジュールにはフリーのドライバーがないので、フリーソフトで構成されるDebianの場合だと自分でダウンロードしないといけないらしい。
と言ってもググったらすぐにwheezy用のfirmware-realtekが出てくる。

x121eはE-450 APUを積んでるんですが、RADEON用のドライバーもないのか、3D表示ができず強制的にgnome classicに。
これに関してはfirmware-linux-nonfreeを入れた。
今更だけどさっきの無線LANもあわせてこれだけで良かったんじゃないだろうか。

ということで、無事インストールが終了し、問題なくDebianが動作しています。

2013年4月12日金曜日

コンパイル時間

メインで使っているデスクトップ機とラップトップ機の性能差が気になったので、簡単なプログラムをコンパイルしてみた。