タグ:programming ( 56 ) タグの人気記事
C# 始めました
新しいプロジェクトで 、僕が今まで一行も書いた事が無い C# を使う事になったとさ。
<del>Java+Perl/Linux な Webアプリケーションのすぐ後で、 C# な Windows アプリケーションを作る事になった僕の専門性はいずこへ・・・? </del>

ということで、言語仕様をよく理解しないうちに開発を始めるわけにも行かないので、とりあえず手当たり次第に本を買ってみた。

a0057891_0244686.jpg

冷静に考えてみると、ちと買いすぎた気がしないでもない・・・。しかも、C# に関係ない本が混ざったりしてるのは、気のせいだよな、うん。

とりあえず「C#エッセンシャルズ」は読み終わったので、明日あたりまとめる予定。
[PR]
by fkmn | 2009-04-04 23:55 | IT
0〜1000に含まれる0をカウントする (Perlで)
練習 - krystal: プログラミング超初心者(文系) - Rubyist
0〜1000に含まれる0をカウントする - ’(rubikitch wanna be (a . lisper)) 経由)

perl -e "print(join('', 0..1000) =~ tr/0/0/)"  #=> 193

 Perl だとこんな感じかな?

 学んだこと
[PR]
by fkmn | 2008-11-13 22:45 | IT
【感想】Unix/Linuxプログラミング 理論と実践
Unix/Linuxプログラミング理論と実践
Unix/Linuxプログラミング理論と実践

 勢いで買ってみたものの、C言語がよくわからなくて K&R から始めたりするなどの紆余曲折を経て、やっと読了。長かった・・・。振り返ってみると 6月初めにこの本を買った って昔の僕が言ってるので、かれこれ半年ほどの付き合いだったらしい (まぁ、ずっとこの本読んでたわけではなくて、途中でいろいろ浮気してたので、これだけかかったってのもあるけど)。

 読み終わってみると、プロとして Unix/Linux と付き合うにあたって、最低限この本に書いてあることぐらいは把握するべきだと思う。書こうと思えば、ls とか who とかのコマンドにかぎらず、シェルまで書ける、という感覚は結構重要。

Unix プログラミングはあなたが思うほど難しくはないが、最初に想像したほど優しくもない
p. 49
まさにこのとおり。
[PR]
by fkmn | 2008-10-28 23:55 | 読書記録
久しぶりに「どう書く?org」に投稿した
タブ区切りデータの処理 どう書く?org
タブ区切りのデータを読み込んで操作をし書き出す方法を教えてください。読み込み・書き出しの方法は任意とします。

与えられるデータは:

* レコードの区切りは改行、カラムの区切りはタブです。
* 最初のレコードはヘッダで、カラムの名前が書いてあります。
* それ以降はデータで、第1,4カラムは整数値、第2,3カラムは文字列値です。

この入力データに対して以下の操作をしたものを書き出してください:

* 第1カラムの値でデータを昇順にソートする。
* 第2カラムと第3カラムをヘッダを含めて入れ替える。
* 第4カラムの値にそれぞれ1を加える。


どう書く?org 7740
require 'csv'

rows = CSV.parse(STDIN.read, "\t")
rows[1], rows[2] = rows[2], rows[1]
result = []
result << rows.shift
rows.sort_by{ |r| r[0] }.
inject(result) { |a, b| b[3] = b[3].to_i + 1; a << b }.
each { |r| puts r.join("\t") }

[PR]
by fkmn | 2008-10-03 23:55 | IT
LL Future 行ってきた
 LL Future 行ってきたよ!11時間という長丁場をがんばってくださったスタッフの皆様、どうもありがとうございました。

 ちなみに、チケットをなくして (しかもTシャツ付きの方) 当日券を買い直したことはここだけの話 (こんな間抜けは俺だけだろうなーとおもってたら、仲間発見)。なかのZERO と中野サンプラザと間違えて、そっちの方に行ってしまったのも内緒 (さすがにこっちは、仲間が見当たらなかったw)。

 当日のログは以下のみなさんのエントリが詳しいです。
 以下は、僕の感想。

基調講演

 YAPC の基調講演とほぼ同じで、Perl6 の内部や新機能の話。YAPC の時も思ったけど、時間さえ許せば、Larry は一日中 Perl6 の話をしていられる (していたい?) んじゃないだろうか。話が進むにつれ、Larry の言葉にどんどん熱がこもってくるのを見ながらそんなことを思った。

LL で未来を発明する

  • 100年っていうのは、発表者側にとっても、聴衆側にとっても、ちょっとぶち上げ過ぎだったかなぁ。
  • テーマそのものよりも、後半の「言語実装者」対「言語設計者」という流れの中でのトークの方が面白かった。
  • 松本さんの「フラクタルなプログラミング言語」という言葉が琴線に触れた。システム開発っていうのはフラクタルな一面があるわけだけれども、その一連の流れを一つの言語環境で一貫して開発できるようなのが実現すると面白いかもしれない。

サイコー!?フレームワーク

  • なぜみんなそんなに Java を嫌うのか?w
  • さすがに業務アプリ畑の人だけあって、ひがさんは、現場の状況をきちんとふまえて Seasar の開発をしているようだ。ひがさんの発言の一つ一つに明確な方針やリーダーシップが現れていて、かっこ良かった。ほれた。

LL でアート

  • 僕も「Lightweight Language」よりも「Dynamic Language」派。Rubyみたいな言語が「軽量」って呼ばれることに、僕は違和感を覚えるんだけど、みんなはそうじゃないんだろうか?
  • なんかスゲー、という曖昧な感想しか出てこない、アートに対する語彙の少ない私。
  • ビジュアルプログラミング環境はメディアアートの世界では結構使われているらしい。

キミならどう書く?

  • 今回のセッションの中で、進行が一番スムーズだった気がする。
  • 発表者の個性がそれぞれ目立っていて面白かったが、やっぱりプロゴルファー浜地さんのキャラが際立っていた。

古い言語、新しい言語

 ちょっと一つのセッションの中に詰め込みすぎた印象。ECMAScript 関係の話と LLVM 関係の話でくっきりと分けて、二部構成のような形にしても良かったんじゃないかしら。

ライトニングトーク

 いくつか気になったのをピックアップ
  • Client-side database storageで実際にアプリケーションを作成してみた: 藤井太洋(e-frontier)
    • HTML5 でそんなのが提唱されてるのか。ただ、発表直前に仕様変更が入ったとかで、まだちょっと不安感が残る感じ。でも、面白そう。
  • Scilabで数値計算: Y.Sawa(東京大学大学院)
    • MATLB ライクな言語らしい。初めて聞いた。コンテストの参加者が少ないってことは、ユーザ数もそんなに多くないんだろか?

[PR]
by fkmn | 2008-08-30 23:55 | IT
C言語 (C99) にはBoolean型があるんだね
 CODE COMPLETE (上) の "言語の「中へ」のプログラミング" (言語に含まれていない機能をコーディング規約やライブラリ等で補うこと) という言葉に感動して、以下のような感じで C言語用の Boolean型を定義したりして、悦に入ったりしてたんですよ (C言語なんてろくに使いもしないのにw)。

typedef enum {
false = 0,
true = (!false)
} bool;


 ところが、ふと調べてみたら、最近の C言語 (いわゆる C99) では、_Bool という Boolean型に相当する型が定義されてるんですね (プログラミング言語 C の新機能: 5.1 _Bool 型)。stdbool.h というヘッダファイルをインクルードすると bool, true, false という名前を使用することもできるみたいです(プログラミング言語 C の新機能: 9.4 stdbool.h)。
 Wikipediaにも結構まとまった説明がありますね。

 言語の「中へ」プログラミングする前に、まず、本当にその言語に欲しい機能がないのか、ちゃんと調べろってことですかね。
[PR]
by fkmn | 2008-08-27 23:55 | IT
「ゆの in hoge」というのが流行ってるらしいが

そもそも "ゆの" って何ですか?わかりません><

要件的には、
X / _ / X < "来週も見てくださいね!";
を実行すると、
ひだまりスケッチ365 来週も見てくださいね!
が表示されれば良いとか、そういうことなんだろうか?

「X / _ / X」が AA とか、そういうことですか?
[PR]
by fkmn | 2008-07-09 23:55 | 日記
XS ソースコードリーディング - List::Util編 -
 perlXStut(perlXStut - XSUB を書くためのチュートリアル)も一通り読み終わったので、perlxs(perlxs - XS言語リファレンスマニュアル)を参考にしつつ、実際に XS で書かれた CPAN モジュールのソースコードを読んでみることにした。。

 で、とりあえずは、動作が分かりやすい List::Util から読んでみたら、面白いコードがあった。

void
min(...)
PROTOTYPE: @
ALIAS:
min = 0
max = 1
CODE:
{
int index;
NV retval;
SV *retsv;
if(!items) {
XSRETURN_UNDEF;
}
retsv = ST(0);
retval = slu_sv_value(retsv);
for(index = 1 ; index < items ; index++) {
SV *stacksv = ST(index);
NV val = slu_sv_value(stacksv);
if(val < retval ? !ix : ix) {
retsv = stacksv;
retval = val;
}
}
ST(0) = retsv;
XSRETURN(1);
}

 ALIAS というキーワードを使うと、同じ関数を異なる名前で呼び出すことができ、呼ばれた名前に従って ix という変数に値がセットされるらしい。上のコードの例で言うと、min が呼ばれたときは ix に 0 が、max が呼ばれたときは ix に 1 がセットされる。なので、
val < retval ? !ix : ix 
というコードは、min が呼ばれたときには
val < retval ? true : false
という意味になり、max が呼ばれたときには
val < retval ? false : true
という意味になる。

 なるほどなぁ。

参考:perlxs - XS言語リファレンスマニュアル
ALIAS: というキーワードは、XSUB に対して二つ以上のユニークな Perl での名前を持たせ、また、起動されたときに使われている(そういったユニークな Perl での) 名前を知るための手段を持たせます。 Perl での名前は完全修飾されたパッケージ名とすることができます。それぞれの別名はインデックスとして与えられます。コンパイラは、使用される別名のインデックスが格納されている ix と呼ばれる変数をセットアップします。 XSUB が ix という名前と共に呼び出されたとき、その値は 0 となります。

[PR]
by fkmn | 2008-07-08 23:55 | IT
perlXStut を少し読んでみた その2
 perlXStut(perlXStut - XSUB を書くためのチュートリアル)の EXAMPLE 4 と 5 まで写経。そろそろややこしくなってきた。

 外部のライブラリを Perl から呼ぶだけであれば、XS のコードは結構シンプルに書けるっぽいというのが、実感として分かってきた。けど、込み入ったことをやろうとすると、おまじない的お作法がいろいろあって面倒っす。
[PR]
by fkmn | 2008-07-01 23:55 | IT
perlXStut を少し読んでみた
 XS を書くためには、perlXStut を読むと良いということなので、perldoc の日本語訳(perlXStut - XSUB を書くためのチュートリアル)を読みながらサンプルコードを写経してみた。とりあえず EXAMPLE 3 まで(自分用アレンジが少し入ってます)。
 ちなみに、XS のコードは、やっぱり c-mode で書くのが普通なんだろか?インデントが微妙な感じで、ちょっと気持ち悪い。

Mytest.xs

#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"

#include "ppport.h"


MODULE = Mytest PACKAGE = Mytest

void
hello()
CODE:
printf("Hello, world!\n");

int
is_even(input)
int input;
CODE:
RETVAL = (input % 2 == 0);
OUTPUT:
RETVAL

double
round(arg)
double arg;
CODE:
if (arg > 0.0) {
RETVAL = floor(arg + 0.5);
}
else if (arg < 0.0) {
RETVAL = ceil(arg - 0.5);
}
else {
RETVAL = 0.0;
}
OUTPUT:
RETVAL



 そういえば、RubyKaigi で arton さんの「拡張ライブラリの書き方講座」を聞いたことだし、Ruby の C拡張も試してみようかなぁ。
[PR]
by fkmn | 2008-06-30 23:55 | IT


とあるWebアプリケーションエンジニアの日記
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
最新のトラックバック
プログラミングが「出来る..
from とりあえず9JP?
Genographic ..
from ナンジャモンジャ
ジュセリーノ
from ありの出来事
くちこみブログ集(ライフ..
from くちこみブログ集(ライフ)(..
以降、丁寧語で行こう!
from エッセイ的な何か
人気ジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

fkmnの最近読んだ本 フィードメーター - フッ君の日常 あわせて読みたい AX