2010-01-01から1年間の記事一覧
なんかかなり間が空いた気がする…… なのでちょっとがんばる。 項目53 リフレクションは利点を行かせる部分だけで使いましょう、という項目。(曖昧だなー) 普通のプログラムを作るなら、あまり使うことはないと思う…… リフレクションを使わなくても出来るこ…
これらの項目をいざコーディング、というときにちゃんと覚えているだろうか…… 項目47 下手に自作関数を作るよりも、既に使われているライブラリがあるのであればそちらを使いましょう、という項目。 標準ライブラリとかApache Commonsとか、それ以外にもいろ…
Effective Java 第2版 (The Java Series)作者: Joshua Bloch,柴田芳樹出版社/メーカー: ピアソンエデュケーション発売日: 2008/11/27メディア: 単行本(ソフトカバー)購入: 77人 クリック: 936回この商品を含むブログ (264件) を見る独習Javaが退屈でいい加…
Stackクラスの扱い方。でも継承元がVectorじゃないか…… ArrayListから派生したスタックっぽいクラスがあったりしないのかなあ?とかいろいろ思いつつStackクラスを扱ってみるのです。 環境:MacOS 10.6.5 / Oracle(Sun) JDK6 update22 書いてみる // StackTe…
なれる!SE 2週間でわかる?SE入門 (電撃文庫)作者: 夏海公司,Ixy出版社/メーカー: アスキー・メディアワークス発売日: 2010/06/10メディア: 文庫購入: 49人 クリック: 883回この商品を含むブログ (155件) を見るなれる!SE (2) 基礎から学ぶ?運用構築 (電撃文…
Debian化した玄箱/HGでデバイスの一覧を表示するには、なメモ。 背面のUSBには常にバックアップ用のHDDが挿してあるのだけど、もう1つUSB-HDDが余ってたのでそれを前面のUSBに指して、マウントしようとしたのです。 # mount /dev/sda2 /mnt/usb1 mount: spec…
簡単に組み込めるんだろう、と思ってやってみたら全然ダメで、結構苦しんだのでその時のメモ。 環境:Ubuntu10.10 64bit / Lua 5.1.4 / gcc 4.4.5 C言語側は同じディレクトリにあるmain.luaを読んで実行するだけのコード。 /* main.c */ #include <lua.h> #include <lualib.h></lualib.h></lua.h>…
ジェネリクスやVectorクラス、Enumratorインターフェースにイテレータなどの章。 10.1から10.3まではRandomとかCalendarとかだけど、ほぼ使えるので放置しておく。 環境:UbunruNetbookRemix 10.10 / Oracle(Sun) JDK6 update22 Vectorクラス いわゆる動的配…
前回やって意味が分からなかったので再度やってみることに。ただし全然わかってない気がする…… 環境:MacOS 10.6.5 / Oracle(Sun) JDK6 update22 書いてみる // Sync.java class Flag { public static boolean flag = true; } class IntBox { public synchro…
スレッドの同期についての部分。 環境:MacOS 10.6.5 / Oracle(Sun) JDK6 update22 スレッド間の同期 wait()メソッドでスレッドの待機を、notify()メソッドで待機スレッドに通知を。 ただ、複数スレッドが待機している場合はどのメソッドに通知が送られるか…
スレッドのデッドロックについての部分。 環境:MacOS 10.6.5 / Oracle(Sun) JDK6 update22 書いてみる // DeadLock.java class Lock { Lock(String name) { this._name = name; } public void setAnotherLock(Lock lock) { this._anotherLock = lock; } pub…
Javaでマルチスレッドの後なのでFreePascalでマルチスレッドを書いてみようかなーと。 環境:WindowsXP SP3 / FreePascal 2.4.0 { ThreadEx.pas } unit ThreadEx; {$MODE OBJFPC} interface uses Windows, Classes; type PThreadEx = ^TThreadEx; TThreadEx …
昨日の9.1, 9.2に続いてスレッドの同期の部分。 環境:MacOS 10.6.5 / Oracle(Sun) JDK6 update22 スレッドの同期 スレッドを同期させるには2つ方法がある。 synchronized修飾子を指定してメソッドを同期させる synchronizedブロックを使う 後者は存在すら知…
マルチスレッドの章。スレッドはあまり使ったことないから使いこなせるようがんばるぞー。 環境:UbuntuNetbookRemix10.10 / Oracle(Sun) JDK6 update22 スレッドの状態 新規作成 作成したばかりの状態 使用可能 起動後の状態 実行中 実行された時点からの状…
EeePCのUbuntuNetbookRemixを10.04から10.10にしたのでメモ。 Synapticからインストールしたもの bison Go言語をインストールするために必要なYACC互換パーサ build-essential C言語関係の基本的なものとかその他いろいろインストールしてくれるパッケージ c…
独習Java 第4版作者: ジョゼフ・オニール,武藤健志,トップスタジオ出版社/メーカー: 翔泳社発売日: 2008/05/29メディア: 大型本購入: 1人 クリック: 55回この商品を含むブログ (21件) を見るJava入門の始まり始まり。ただ、前半部分は既に知っているのでほと…
既存のプログラムにLuaを組み込む場合のシナリオなど。これで最後かー。 C言語が主体の場合 基本的にC言語が主体で、ところどころLuaを使いたい場合はLuaで処理が終わったらすぐに戻ってくるように作るといいっぽい。 設定ファイルそのものをLuaスクリプトに…
C言語とLuaの連携などなど。スタックの説明のあたりがさっぱりだったのでそこは後で…… C言語の自作関数をLuaから使う C言語側で作った自作関数を登録してLuaから呼ぶ。 最初にC言語本体を。 /* aaa.c */ #include <lua.h> #include <lualib.h> #include <lauxlib.h> int aaa(lua_State* L</lauxlib.h></lualib.h></lua.h>…
連想配列――テーブルを使ったcase文やスクリプトのモジュール化、C言語で作った共有ライブラリの関数を呼ぶなど。他はスルー。 case文 Luaにはもともとcase/switch文が存在しないので、それをテーブルで作ってしまうやりかた。 > case = case or { >> a = fun…
親機と子機の接続に奔走したお話、を兼ねた備忘録。まあ、単なる知識不足なのですけど。 あと、大人しくAOSSを使わなかったところとか。初心者が背伸びするもんじゃないとは思いつつ。 今までは1階から2階までながーいLANケーブルを引っ張ってきて、有線LAN…
前回の続き、配列の上限値を設定したりグローバル変数を宣言できなくしたりオブジェクト指向を取り入れてみたり。 配列の上限値を設定する 前回のようにsetmetatable関数でまたしてもメタメソッドを上書きして、添字でアクセスされた場合の動作を書き換える…
8章はアルゴリズムとかデータの扱いなので飛ばして9章、メタメソッドや自作データ型やオブジェクト指向を取り入れたりなど。急にレベルが上がった気がする…! メタメソッド setmetatable関数を使ってテーブルの演算子の動作を変えてみる。 > data1 = {str = …
眠くてできなかった部分、多値を返す関数やレキシカルスコープなどについて。あとコラムの高階関数も。 多値を返す関数 代入時に","で区切って同時に代入したり、変数同士を入れ替えたり。 > a, b = 1, 2 > print(a) 1 > print(b) 2 > a, b = b, a > print(a…
文字列、テーブルの仕組みや、GCの扱い、データ型などちょっと奥の深い章。今回はなかなかおもしろそう。 文字列と登録台帳の仕組み 文字列は宣言された時点で登録台帳に登録され、2つ目以降は登録台帳の同じものを指すようになる…らしい。 > a = "aaa" -- "…
データの読み込みやテーブル内のデータの配置などの章。今回もかなりスルー。 Pascalでおなじみ、関数内関数の宣言。 > function a() >> print("aa") >> function b() >> print("function b()") >> end >> b() >> end > a() aa function b() Pascalって感じ…
第4章――文字列などの各種ライブラリの使い方などの章。 文字列ライブラリ 最初にstring.gsubで全置換を。 > a = string.gsub("123abc123def", "[1-3]+", "?") > print(a) ?abc?def string.matchで検索を。 > a = string.match("123456789", "[1-4]+") > prin…
配列や連想配列、ソートなどの章。関数の使い方などが多くなってきたので割とスルー気味。。。 テーブルの走査にfor文とpairs関数を。 > for key, value in pairs({aaa = 111, bbb = 222, ccc = 333}) do >> print("key: " .. key) >> print("val: " .. valu…
昨日に続いて今夜は第3章を。関数、ローカル変数、文字列などの章です。 関数宣言 関数は"function 〜 end"で宣言し、値は"return"で返します。returnはC言語などと同じく、その場で関数を抜けます。 > function times(op1, op2) >> return op1 * op2 >> end…
昨日に続いて今夜は第2章へ進みます。制御構文や配列などの章です。 if文と比較演算子 if文は"if 〜 then"と表記します。PascalやRubyのようです。まあ、Rubyはthenを省略できますが。 > a = 1 > if a == 1 then >> print('a is 1') >> end a is 1 C言語など…
入門Luaプログラミング作者: 上野豊出版社/メーカー: ソフトバンククリエイティブ発売日: 2007/12/22メディア: 単行本購入: 4人 クリック: 144回この商品を含むブログ (35件) を見るこの本を買ったものの読まずに積みっぱなしでしたが、Luaを実行できる環境…