![http://atnd.org/events/1654](https://cdn-ak-scissors.b.st-hatena.com/image/square/97379288cb78f24e29c7493823d469f60c18c8a5/height=288;version=1;width=512/https%3A%2F%2Fatnd.org%2Fevent_images%2F0000%2F3032%2FSICP_original.jpg)
Steve Yegge / 青木靖 訳 2004年9月 これは駆け足の言語案内だ — Amazon Developers Journalのために今月書いていたのだが、どうもこれを見苦しくないようにする方法を見つけられなかった・・・。 ひとつには、私はどうも粗野で口汚くなりがちで、オフィシャルな趣のあるAmazonの出版物に載せるのは不適切に思えた。それでかわりに誰も読まない自分のブログに押し込めてしまうことにした。読んでるのはあなたくらいのものだよ。どうも! もうひとつ言うと、これは本当に書きかけのものであり、そこかしこの断片を集めたものでしかない。全然磨き上げられていない。これもブログエントリにする理由になっている。ブログなら別に良質である必要も完全である必要もない。単に私が今日考えたことというだけのものだ。ではお楽しみを! この駆け足の案内では、C、C++、Lisp、Java、Perl
つくった。javaでyield returnできるので精神が健康になる! Generator<Integer> g=new Generator<Integer>() { @Override protected void iterate() throws InterruptedException { for(int i=0;i<10;i++) yield_return(i); } }; while(g.hasNext()) System.out.println(g.next()); 無限リスト対応。 Generator<Long> fib=new Generator<Long>() { private void return_fib(long a,long b) throws InterruptedException { yield_return(a+b); return_fib(b,a+b
_ 5年後に後悔しないJavaプログラムの書き方 ここ数日、死ぬほど後悔しまくっているので、あらためて(というのは、数年前にも一度後悔しまくって、そのときの知見はあらかた処方箋とかコーディングの掟に書いているからだが)後悔しないための書き方をいくつか紹介する。 とにかく、ファクトリメソッドパターンを使うこと。 これは本当に重要。しかも簡単でありながら効果は絶大。 だめな例。 public class FooBar { private Connection conn; ... protected void setup() { ... conn = DriverManager.getConnection(url); ... } urlを指定することや、DriverManagerの実装を交換すれば良いだろうと想定していても(というか、Connectionならそういう方法もあり得るが、そうはいかな
Comments» 1. hoge - 2010-2-16 僕の環境ではexpand(”%:r”)のところをexpand(”%:t:r”)にしたら動きました。 2. nase - 2010-2-16 情報ありがとうございます。こういったコメントは大歓迎です。 3. waken - 2010-11-2 参考にさせていただきました。ありがとうございます。私の環境では、 %2%の部分をダブルクウォーテーションで囲って、 Run,”C:\Program Files\processing\processing.exe” “%2%” としたらいけました! 4. nase - 2010-11-2 コメントありがとうございます。 ちなみに、ここではウィンドウの存在確認をLoopで行っていますが、後から専用の関数(WinWaitだっけな)があるのを見つけました(^^; うまく動かないことがある場合はそちらを
Python Memo27章「使用頻度の高いコーディングテクニック」を勉強中です。そろそろこの「初めてのPython」も終わりなので、次なる勉強方法を真剣に考えておかないと。27章にファイルやディレクトリの扱いが載っていたので、仕事でたまに必要となる「指定したファイルを全てリネーム」というプログラムを作ってみる。例えばDOSコマンドなんかだと、rn *.txt *_bk.txtとやっても、.txtファイルを全てリネームしてくれるというよな動作にはならないので、プログラムではそれを出来るようにする。以下のrename.pyは、指定したファイル群を○○_bk.txtのようにリネームしてくれる。引数としてファイルを指定すればそれがリネームされるし、何も指定しなければカレントディレクトリの全てが作業対象となる。rename.py import sys, os, glob def makeNewNa
id:t-wada と話してた時に出てきた「プログラマの麻疹」 プログラマはみんなどうせかかるんだから早めにかかっておいた方が良い そしてかかっておくと治った後にはさらに良いコードが書けるようになるので 恐れずにかかりましょう 名前 症状 僕の状態 OO 厨 多分、現在一番キャリアが多い。一時期 AOP 厨になってしまった人も含むことがある。Smalltalk を神格化し始める かかり中 function 厨 最近増えてきた。マルチコア時代に最適というわかりやすい感染源ができたことも要因の一つ。LISP が世界を作っていると信じる 挫折中 三項演算子厨 どんどんネストした三項演算子を書いてしまう。気がつくと自分でもよくわからなくなってることもある 治療済み テスト厨 テストのためだけにコードを書いてしまう。プロダクトコードのきれいさよりもテストのしやすさを求めてしまう 治療中 lambda
ゲームの作り方とアルゴリズムをジャンル別にまとめてみました。ゲーム制作や、プログラミングの勉強用にご活用ください。言語別ゲームプログラミング制作講座一覧もあわせてお読みください。 リンク切れがおきていたものは、URLを表示しておくので、Internet Archiveなどでキャッシュを表示させてみてください。 RPG ゲームの乱数解析 乱数を利用した敵出現アルゴリズムの解説 各種ゲームプログラム解析 FF、ドラクエ、ロマサガのプログラムの解析。乱数の計算など ダメージ計算あれこれ(http://ysfactory.nobody.jp/ys/prg/calculation_public.html) ダメージの計算式 エンカウントについて考えてみる エンカウント(マップでの敵との遭遇)の処理方法いろいろ RPGの作り方 - ゲームヘル2000 RPGのアルゴリズム ドルアーガの塔 乱数の工夫の
ある読者との電子メールのやり取りの中で出てきた話である。彼は、開発者向けのブログや記事、雑誌の内容が2種類に分類できるということを述べていた。その2種類とは入門者向けのもの("Hello World"に代表されるもの)とエキスパート向けのもの(MSDN Magazineのようなもの)である。 これはなかなか鋭いポイントを突いている。開発者が入門レベルから中級レベルにステップアップするうえで役立てることのできる情報がほとんどないのだ。以下は、こういったステップアップを実現するための10のティップスである。 #1:新たなプログラミング言語を学習する 新たなプログラミング言語を学習することは、それがどのような言語であったとしても、より優れた開発者になるための近道となるのである(このことは、あなたが既に多くのプログラミング言語を修得していたとしても成立することである)。言語を選択する際には、あなた
2009年07月10日15:00 カテゴリLightweight Languages a = a + 1; /* って違和感あるはずなのに */ ここまでは、いい。 だれでもわかるプログラミングの教え方もある……といいな - 狐の王国 じゃあ「c = a + b」はどうなるのか。 これはcという新しいバケツを用意し、aとbを足した数字を入れろという意味だ。ところが、 a = a + 1; でまともに数学を習った人ならつっかかるはずだし、実際つっかかるなのに、ほとんどの言語が代入演算子として=を採用しているのはなぜなのだろう? いや、私だってこれがFORTRAN由来だってことは知っている。私が知りたいのは、これが数学から見ても自然言語から見ても不自然なのに、ことプログラミングに関しては、なぜこれが自然になってしまったか、ということ。 代入に、=を使う必然性が全くないことは、それを使わぬ言語も
さっきのを、もうちょっと汎用化させて、コルーチンを作ってみた。コルーチンにすると、スレッドが競合することがなくなるので、排他制御やらなんやら考えるのはずいぶん楽になる。 これがサンプルコード。sleepしている最中に他のスレッドが割り込んでいないことに注目。 public class CoMain{ static Coroutine c; public static void main (String[] args){ init(); while (c.yield()); System.out.println("main finished"); } static class Test implements Runnable{ int p; Test (int p) { this.p = p;} public void run (){ for (int i=0; i<5; ++i){ c.y
PythonのGeneratorみたいなものをJavaで作ってみようと思った。Javaには本物のマルチスレッドがあるのだから、Generatorくらいは当然作れるのだけれど、いざちゃんと協調動作させようとすると上手く書けなくてあきらめる人とか多いのじゃないかとか思ったので。 実装上は2つのスレッドを協調動作させているのだけれど、使っている側からは1つのスレッドが交互に制御を移しているような感覚で使えます。 これがサンプルコード。 public class GenMain{ public static void main (String[] args) { Generator<String> g = new Generator<String>(new Call()); String s = "開始"; i = 0; do{ System.err.println(i); System.err.
まずはこちらを見て下さい。 start end 一見空白の様に見えると思いますが、こちらには半角スペースとタブ、改行が書かれています。 (マウスで選択、もしくは空白文字を表示出来るエディタにコピーして頂けるとプログラムが一応確認出来るかと思います。) 確認出来たらStartからendまでコピーして下のボックスにコピーをして、 こちらのサイトで実行するか、 http://ehl.jp/whitespacer/ 〔左側のテキストボックスへ貼り付け、[evaluate]をクリック〕 (javascript、2bit君作成) アプリケーションをダウンロードして実行してみてください。 http://www.rhizomatiks.com/samples/whitespace/whitespace.zip (java、Rhizomatiks中浜大輔 作成) 実行するとHello Worldと表示された
Tutorials: season I Java™ に学ぶ Jython プログラミング入門 Java™ Programming Language〔JPL〕の事例を使って、Java と Jython との違いを学びます。 Tutorials: season II Tutorials - Classes and Objects Java で記述したクラスに対して、Jython は便利な機能を提供します。 Classes and Objects, #1 import 文を利用すると、Jython の世界から、Java で作成したクラスを扱えるようになります。 Classes and Objects, #2 。 Tutorials: season III - Collections Java™ に学ぶ Jython プログラミング入門 Java™ Programming Language〔JPL
《脱》初級プログラミングを達成して `生涯`プログラマーを目指す「タマゴ」のみなさんへ 続・ひよ子のきもち NEWs ・小粒ちゃんねる《Ch34》Scala 専用チャンネル ・小粒ちゃんねる《Ch23》Jython 専用チャンネル Topics Java の素描:時短プログラミング生活のすすめ FIFA ワールドカップへの道 〜 Scala 弾丸ツアー:時短プログラミング生活のすすめ 〜 FIFA ワールドカップへの道 〜 Jython 弾丸ツアー:時短プログラミング生活のすすめ 〜 Python 弾丸ツアー《Python3.1|Jython2.5|IronPython2.6》 Swing 弾丸ツアー《Java1.6.0|Scala2.8.0|Jython2.5》 小粒ちゃんねる #小粒ch Software Design 連載記事《補足情報》 Python.use(better, src
Groovy WikiGroovy... is an agile and dynamic language for the Java Virtual Machine builds upon the strengths of Java but has additional power features inspired by languages like Python, Ruby and Smalltalk makes modern programming features available to Java developers with almost-zero learning curve supports Domain-Specific Languages and other compact syntax so your code becomes easy to read and ma
Login above to work on your projects, or select an option below. Use Bespin Edit Now Give us an open-source project name or a publicly accessible repository URL and we'll create a project for you. Register for Bespin No account? No problem! Click below to create an account. Registration is free. Learn about Bespin What is Bespin? Bespin is a Mozilla Labs experiment on how to build an extensible We
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く