2009年11月16日月曜日

golang メモメモ

メンバ変数だけの構造体を定義したり、
メンバ関数だけのインタフェースを定義する。

C#3.0の拡張メソッドのようにメンバ関数を実装していく。

特徴的やなーと思ったのが複数の戻り値を定義できること。
戻り値もreturnで値を返すのではなく、関数中に代入して関数の終わりはreturn;というのもあり。

ループは全てForで統一
Cのfor や while 無限ループの3種類を一つのforで扱える。
do-whileは記述できるのかは不明。

elseifでつなげていたのをswitchで書けるのが便利そう。


switch {
case a < b:
  return -1
case a == b:
  return 0
case a > b:
  return 1
}


とりあえずこんな感じで。

まとまりねー。
.

2009年11月14日土曜日

Googleのプログラミング言語 GOのインストール(MacOS X)

Googleのプログラミング言語GOがリリースされたということで、
go lang 公式サイト:http://golang.org/
GOプログラミング言語のサイトにインストール方法が載っていたので、
手元のMacbookにインストールをしてみました。
http://golang.org/doc/install.html

まずは環境変数を設定。


MacBook:~ mezashi184$ vi .bash_profile
export GOROOT=$HOME/go
export GOOS=darwin
export GOARCH=386
export GOBIN=$GOROOT/bin
export PATH=$GOBIN:$PATH


設定した内容を反映。

MacBook:~ mezashi184$ source .bash_profile


ちゃんと反映されているか確認します。

MacBook:~ mezashi184$ env | grep '^GO'
GOBIN=/Users/mezashi184/go/bin
GOARCH=386
GOROOT=/Users/mezashi184/go
GOOS=darwin


hgコマンドがあるか確認。

MacBook:~ mezashi184$ which hg
/usr/local/bin/hg


hgコマンドが無い場合はインストールします。

MacBook:~ mezashi184$ sudo easy_install mercurial
Searching for mercurial
Reading http://pypi.python.org/simple/mercurial/
Reading http://www.selenic.com/mercurial
Best match: mercurial 1.3.1
Downloading http://mercurial.selenic.com/release/mercurial-1.3.1.tar.gz
Processing mercurial-1.3.1.tar.gz
Running mercurial-1.3.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-JZ0oPU/mercurial-1.3.1/egg-dist-tmp-uLZ_gk
zip_safe flag not set; analyzing archive contents...
mercurial.extensions: module references __file__
mercurial.i18n: module references __file__
mercurial.lsprof: module references __file__
mercurial.templater: module references __file__
No eggs found in /tmp/easy_install-JZ0oPU/mercurial-1.3.1/egg-dist-tmp-uLZ_gk (setup script problem?)


しかし!エラーが出てしまいました。

No eggs found in /tmp/easy_install-JZ0oPU/mercurial-1.3.1/egg-dist-tmp-uLZ_gk (setup script problem?)


エラーを取り除くために以下のサイトを参考にセットアップツールをインストール
http://douglasfshearer.com/blog/easy_install-leopard-bug-no-eggs-found

MacBook:~ mezashi184$sudo easy_install http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c9-py2.5.egg
Downloading http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c9-py2.5.egg
Processing setuptools-0.6c9-py2.5.egg
Moving setuptools-0.6c9-py2.5.egg to /Library/Python/2.5/site-packages
Adding setuptools 0.6c9 to easy-install.pth file
Installing easy_install script to /usr/local/bin
Installing easy_install-2.5 script to /usr/local/bin

Installed /Library/Python/2.5/site-packages/setuptools-0.6c9-py2.5.egg
Processing dependencies for setuptools==0.6c9
Finished processing dependencies for setuptools==0.6c9


再度mercurialをインストール今度は正しくインストールできました♪

MacBook:~ mezashi184$ sudo easy_install mercurial
Searching for mercurial
Reading http://pypi.python.org/simple/mercurial/
Reading http://www.selenic.com/mercurial
Best match: mercurial 1.3.1
Downloading http://mercurial.selenic.com/release/mercurial-1.3.1.tar.gz
Processing mercurial-1.3.1.tar.gz
Running mercurial-1.3.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-9-mUQT/mercurial-1.3.1/egg-dist-tmp-NfqiQx
zip_safe flag not set; analyzing archive contents...
mercurial.extensions: module references __file__
mercurial.i18n: module references __file__
mercurial.lsprof: module references __file__
mercurial.templater: module references __file__
Adding mercurial 1.3.1 to easy-install.pth file
Installing hg script to /usr/local/bin

Installed /Library/Python/2.5/site-packages/mercurial-1.3.1-py2.5-macosx-10.5-i386.egg
Processing dependencies for mercurial
Finished processing dependencies for mercurial


golangのソースコードを取得します。

MacBook:~ mezashi184$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT
requesting all changes
adding changesets
adding manifests
adding file changes
added 4016 changesets with 16888 changes to 2931 files
updating working directory
1640 files updated, 0 files merged, 0 files removed, 0 files unresolved


ソースコードをビルドします。

MacBook:~ mezashi184$ cd go/src
MacBook:~ mezashi184$ mkdir $GOBIN
MacBook:~ mezashi184$ ./all.bash


以下のソースコードをコンパイル・実行してみます。

MacBook:~ mezashi184$ vi hello.go
package main

import "fmt"

func main() {
fmt.Printf("hello, world\n")
}

MacBook:~ mezashi184$ 8g hello.go
MacBook:~ mezashi184$ 8l hello.8
MacBook:~ mezashi184$ ./8.out
Hello, World


これにてインストールと動作確認おしまい。

しかし、インストールしたものの何に使えるのかな?
.

2009年10月27日火曜日

詳細なUMLを書くこと

最近、UML図を書くことに抵抗が出てきた。
詳細な図を書けば書くほど、コードに修正が入るたびにメンテナンスが必要になってくる。
メンテナンスするコストが大きいため、悪いコードもそのままになってしまい、
より良いコードにリファクタリングしていくことが出来なくなるのではないかと思います。

UML図は上流工程から下流工程まで使えるのは便利なのですが、
下流工程で詳細な図を書けば書くほどリファクタリングコストがかかってしまいます。

あくまでも情報を伝えるための道具として使えば便利なのではないでしょうか。
たとえば、開発者同士で設計案をあれこれ考えるときや開発に入る前に大枠のUML図があると
スムーズに開発の設計方針などが解るので便利だと思います。
また、お客様とどこまでをソフトにするかという線引きにも使えるでしょう。

そういっても詳細な図を書いてからコーディングというのもあるでしょうが、
この場合に書いたUML図はメンテナンスしない使い捨てと考えているのであれば、問題なさそうですね。

詳細なUML図をメンテナンスする工数ってかなり膨大で、
リファクタリングのボトルネックになっている感じているのは僕だけなのでしょうか?

.

2009年10月17日土曜日

よく使うiPhoneアプリ

気がついたら既にiPhoneを1年以上使ってるのよね。
ここいらでよく使っているアプリを紹介してみようかなと。

■Best!価格
価格.comのサイトを見るためのアプリです。
ちょっとした電化製品とか買うときは必ずここで口コミ情報などを
チェックして買い物してますね。

■PhotoShare
最近ではめっきり自分で投稿する機会は減りましたが、
たまーに他の人の投稿を覗いては楽しんでます。
美味しそうな料理とか、笑っちゃうような写真がいっぱいです!

■Evernote
これは便利!
テキストや画像・音声などを保存して、PCからも閲覧できるもの。
個人的な日々の日記やメモなど色々と使わせてもらっています。
PCから整理できるのも大変助かります。

■Things
Todo管理ソフト、シンプルで使いやすいのがええですね。
GTDを使っている人ならオススメです。
ちょいと値段はしますが、それだけの便利さはありました。

■Echofon
Twitter用のアプリ、個人的に無料の中では使いやすかったですね。

.

2009年10月4日日曜日

SharpDevelopを使ってみた。

C#のオープンソースIDE『SharpDevelop』を使ってみました。
http://www.icsharpcode.net/OpenSource/SD/

標準でNUnit・PartCover・Subversionに対応しており、全てGUIから操作が可能で、
テストとカバレッジ表示もソースコードと連動していてかなり便利です。

C#のMono Compilerにも対応しているのも良い点です。

個人的に評価しているのはTODOなど特定の文字列でコメントした箇所を一覧で表示できることですね。
関数やクラス名の変更などリファクタリングに対する機能はVisualStudioがかなり充実している感じました。

コードを綺麗にするリファクタリングを行いにくい点以外はVisualStudioより良いと思いました。
※拡張機能を何もインストールしていない状態での個人的な意見となります。
あくまでもご参考までに。

.

2009年9月27日日曜日

地図みたいな検索 Blogopolis

■『Blogopolis』
http://blogopolis.jp/

地図みたいな形の検索サイトです。
サイトについているランクによってビルが大きくなるみたい。

ここで僕のサイトが小さいながら存在しているのが嬉しかったですね。
ビルの屋上に画像を貼り付けれるということで早速貼り付けてみました!

先日自分で書いた絵なんですけどね。
愛嬌がありますよ。

http://blogopolis.jp/view/http://mzs184.blogspot.com/

.

2009年9月26日土曜日

GoogleChromeのテーマ変更ができる

いつの間にって感じです。
新しいタブに表示されている、よくアクセスするページに見知らぬサイトが。。。
何だろうと確かめてみたら。

なんとChromeのテーマ変更のページじゃないですか。
とにかく色々試してみて、黄色が好きな私は『Vertical Stripe』にしてみました。

お気に入りのテーマが見つかるとよいですね。
以下のサイトからテーマを変更できます。
https://tools.google.com/chrome/intl/en/themes/index.html

.

2009年9月25日金曜日

NUnit で TestSuite の作成と実行

VS2008で、プロジェクト(DLL)毎に記述したテストクラスを
一度にまとめて実行したい!と思ったのが発端。

NUnitのドキュメントを見る限り、どうやらSuite属性を使えば出来る模様。
http://www.nunit.org/index.php?p=suite&r=2.5.2

で作成してみたサンプル
SmapleTest.DLL
------
namespace SmapleTest
{
[TestFixture]
public class SampleTest
{
[Test]
public void TestCase1
{
Assert.Fail("失敗するテストケース");
}
}
}
------

TestSuite.DLL
------
namespace TestSuite
{
public class AllTest
{
[Suite]
public static IEnumerable Suite
{
get
{
ArrayList suite = new ArrayList();
suite.Add(new SampleTest());
return suite;
}
}
}
}
------

これをNUnit.exeに読み込ませてみる。
これで完成!



と思いきや。


NUnitに表示されたのは一行のみ
『C:\TestSuiteSample\TestSuiteSample\bin\Release\TestSuite.DLL』
DLLの絶対パスやん。

おもむろにRUNボタンを押してみるが、動作しません。


再度NUnitのドキュメントを読み直しました今度はちゃんと。

NUnitの起動時に/fixtureのコマンドラインオプションをつけてねと書いてありました。

コマンドプロンプトで以下を実行(全て一行で書いてます。)
-----
C:\Program Files\NUnit 2.5.1\bin\net-2.0\nunit.exe /fixture:TestSuite.AllTest C:\TestSuiteSample\TestSuiteSample\bin\Release\TestSuite.DLL
-----

fixtureオプションでSuite属性のプロパティを持っているクラスの絶対パス(名前空間を含めたフルパス)を指定します。

これで立ち上がったNUnitにちゃんとSampleTestのテストケースが表示され、
実行することが出来ました!


英語を読むのに苦労しましたが、何とかテストスイートの作成に成功!
これで少しテストコードの作成が面白くなってきました♪

.

2009年9月21日月曜日

単体テストについて

最近はテストコードを書く人になっていたので、
書いていて思った事をつらつらと。

・まず目的を設定する。
 何のためにテストコードを書いているのか?
 テストコードを書いて何を検査したいのか?

・テストケースの追加が容易になるようにテストコードを書く
 追加コストが高いと必要なテストケースを後で追加しなくなるため。
 入力と結果の2つを引数にもつ関数を実装していれば問題無いと思う。

・テストコードを書いたらカバレッジも一緒に計測すること
 これが無いとテスト出来ているのかが分からない。
 目で結果が見れるものであれば達成感も味わえる。

・テスト対象のコードとテストコードは同時にビルドすること
 同時にビルドしていないとテストコードのメンテナンスをしなくなり、
 折角書いたテストコードを腐らせていく原因になります。
 
・テストコードを実行させるのは容易か?
 実行コストが高いとテストを実行させない。
 テスト自動化(回帰テスト)の意味が無い。

.

2009年9月12日土曜日

NUnitメモ

NUnit を使い始めたのでメモ書き。

・クラスと Test 属性をつけた関数は public にする必要がある。
・NUnitに読み込ませるのは DLL、EXE どちらの形式にしても OK 。


以下のような形でクラスを作成します。

----
[TestFixture]
public class TestSample
{
[SetUpFixture]
public void SetUpFixture()
{
// [TestFixture]の最初に一度だけ呼び出される関数。
}

[TestFixtureTearDown]
public void TestFixtureTearDown()
{
// [TestFixture]の最後に一度だけ呼び出される関数。
}

[SetUp]
public void SetUp()
{
// [Test]メソッドを呼び出す前に実行される。
//([Test]が複数あれば複数回呼び出される)
// 必要なインスタンスの生成などを行う。
}

[TearDown]
public void TearDown()
{
// [Test]メソッドを呼び出した後に実行される
//([Test]が複数あれば複数回呼び出される)
// リソースの解放処理などを行う。
}

[Test]
public void Test()
{
// ここにテストコードを記述

// 期待値とテスト結果の比較には以下のメソッドを使用する。
Assert.AreEqual("a", "a"); //OK
Assert.AreEqual("a", "b"); //NG
}

[Test]
[ExpectedException(typeof(ArgumentException))] // この場合はArgumentExceptionが発生しなければテスト失敗となる。
public void TestCatchException()
{
// ここにテストコードを記述
}
}
----
NUnitではAssertで失敗すると例外が発生してそこでテストが止まります。

私はテストする関数毎にテストクラスを用意して、
テストケース毎にテスト関数([Test]属性が付いた関数)を作成するようにしています。


.

2009年7月20日月曜日

クラスのプロパティを取得する。

クラスからプロパティの一覧を取得する方法です。

--------------------
using System.Reflection;

// クラスの定義
class TestData {
public Text{get; set;}
}

// 任意の関数に以下をコピー。
Type t = typeof(TestData);
PropertyInfo[] propertyies = t.GetProperties();

foreach(PropertyInfo info in propertyies)
{
Console.WriteLine(info.Name);
Console.WriteLine(info.CanRead);
Console.WriteLine(info.CanWrite);
}
--------------------


同様にメンバを取得するメソッドもありますので、
クラスの型が判ればメンバを取得するのは簡単に出来ます。


.

2009年5月22日金曜日

Firefoxのアドオン作成アドオン

jetpackというアドオンを使うことで、
今までより簡単にFirefoxのアドオンを作成できるようになりました。

まだ少ししか触っていないけど、
javascriptのライブラリjQueryが使えたり
FireBugと連携していたり。

なかなか凄いやつです。

■jetpack公式
https://jetpack.mozillalabs.com/

.

2009年5月18日月曜日

文字列の数値変換

文字列→数値
数値→文字列
Convertクラスを使うことでどちらも簡単に出来ます。
#2進数変換や16進数変換までも。。。

■数値変換
Convert.ToInt32("01234"); // 1234 10進数
Convert.ToInt32("FF",16); // 255  16進数
Convert.ToInt32("1111",2); // 7  2進数

■文字列変換
Convert.ToString(1234);// "1234"  10進数
Convert.ToString(255, 16);// "FF" 16進数
Convert.ToString(7,2);// "1111"  2進数

気をつけないといけないのは
変換に失敗した場合、Exceptionが発生するのでCatchしておく必要があります。


■例外が発生しない 文字列→数値変換
※各クラスのTryParseメソッドを使います。

Int32 number;
if (Int32.TryParse("1234, out number) == true){
// 変換成功
} else {
// 変換失敗
}

.

2009年4月26日日曜日

XMLの設定ファイル

設定ファイル作成に良く使っているクラスなので公開っと。
XMLシリアライズ

---------

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml.Serialization;

namespace SettingData
{
public class MyXmlSerializer
{
public void Serialize(T settingdata, string fileName)
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
using (FileStream stream = new FileStream(fileName, FileMode.Create))
{
serializer.Serialize(stream, settingdata);
}
}

public T Deserialize(string fileName)
{
if (File.Exists(fileName) == false)
{
throw new FileNotFoundException("ファイルが見つかりません、設定ファイルの読み込みに失敗しました。", fileName);
}

XmlSerializer serializer = new XmlSerializer(typeof(T));
T settingdata;
using (FileStream stream = new FileStream(fileName, FileMode.Open))
{
settingdata = (T)serializer.Deserialize(stream);
}
return settingdata;
}
}
}
---------



.

2009年4月22日水曜日

SQLite使ってみよー。

SQLiteについて調べたことまとめ。



  • ライセンスはPublicDomain(2009/04/22:現在)

  • 一つのDataBaseを一つのファイルで管理する。

  • ストアドプロシージャーが使えない。

  • 型の制約があいまい。(型が違ってもデータを登録できてしまう)

    ただし、INTEGER PRIMARY KEYだけは例外





今後良さそうなサイトを見つけたら追加してこっと。
■公式サイト。
DLL,ドキュメントのダウンロードができます。
http://www.sqlite.org/

■System.Data.SQLite
SQLite.NETって感じですね。
http://sqlite.phxsoftware.com/


■SQLite Database Browser
SQLiteのデータベースを見るツール
テーブルの作成やレコードの追加もできます。
http://sqlitebrowser.sourceforge.net/


さーてサンプルでも作ってみよと。
.

2009年3月28日土曜日

C#で typedef

ないのかー!
って探したけど。無かった。代替方法はあったよ。

無い理由は
C#では一つのクラスは一つのクラス名ってことみたいで、
typedef は考慮されずにC#の仕様がきまったことだそうです。
将来は typedef が仕様として組み込まれる可能性はありますが。。


代替方法としては、using を使うってこと。
ただし、宣言したファイル内のみでしか使えないのがネック。。

privateな宣言やったらそのファイルのみで良さそうなので、
使えそうやけど。
他のクラスでも使っていたりすると共通性が無くなってしまうので、
混乱しそうですね。


あんまし便利そうには見えない using の使い方でした。
頭の片隅においておこっと。

.

C#Win32APIの構造体を扱う

C#からWin32APIの構造体ここではRECTをとりあげますが、
他の構造体も同じように扱うことが出来ます。

直接C#のRectangleを使えたら。。便利なのに。
とは思いましたが、構造体のメモリ配置などの関係により、
直接Rectangleは使えません。

で、新しく構造体を定義して使うのですが、メモリ配置がネックになってきますので、
メモリ配置(レイアウト)を決める属性をつけて構造体を定義します。

詳しくはMSDNを参照のこと。
■LayoutKind 列挙体

http://msdn.microsoft.com/ja-jp/library/system.runtime.interopservices.layoutkind(VS.71).aspx


構造体の定義が出来れば後はただ使うだけっと。
コードは以下のようになります。
----------------
[StructLayout(LayoutKind.Sequential, Pack = 4)]
public struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
}
[DllImport("user32.dll")]
public static extern void GetWindowRect(IntPtr hWnd, out RECT wndRect);
----------------


こんな感じ。

.

2009年3月23日月曜日

だーてぃー

ダーティー。
最近まで知らなかった言葉です。
今の仕事で出てきてなんやこれ?って感じた所に
悪態のプログラマにて記事があったので紹介っと。

■悪態のプログラマ「ダーティなデータ」
http://ameblo.jp/argv/entry-10228407175.html

ダーティー。
これからもちょこちょこ聞く機会がありそうです。
覚えとこっと。

.

C#でアクティブウィンドウの取得

アクティブウィンドウを取得する方法
アクティブプロセスからウィンドウハンドルを取得する。
直接アクティブウィンドウを取得する.NET FrameWorkのクラス(関数)は無いみたい。

Win32APIを使っての取得方法を紹介。
以下のクラス(関数)を使ってアクティブプロセスを取得し、
取得したプロセスのProcess.MainWindowHandle でウィンドウハンドルを取得します。

---------------
/// Win32API の extern 宣言クラス
public class WinAPI {
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();

[DllImport("user32.dll")]
public static extern int GetWindowThreadProcessId(IntPtr hWnd, out int lpdwProcessId);
}

public class sample {
///


/// アクティブなプロセスを取得する
///

/// アクティブプロセス
public static Process GetActiveProcess()
{
// アクティブなウィンドウハンドルの取得
IntPtr hWnd = WinAPI.GetForegroundWindow();
int id;
// ウィンドウハンドルからプロセスIDを取得
WinAPI.GetWindowThreadProcessId(hWnd, out id);
Process process = Process.GetProcessById(id)
return process;
}
}
---------------

取得したウィンドウハンドルとWin32APIを使って、
様々なプロセスに対しての操作が可能となります。

.

2009年3月22日日曜日

C#でWin32APIを呼び出す

方法はDLLをインポートして、メソッドを extern 宣言するだけ。
引数や戻り値はC#の型にあわせればOK。
あわない型であれば、コンパイル時にエラーが出ます。

MoveWindow 関数は以下のように宣言しました。

-------------
public class Test {
[DllImport("user32.dll")]
public static extern int MoveWindow(IntPtr hwnd, int x, int y, int nWidth, int nHeight, int bRepaint);
}
-------------

気をつけないといけないのは。。
Win32で使われている構造体ですね。
これらについてはまた書きます。

.

2009年3月15日日曜日

タブ型のターミナル

業務でターミナルを複数開いて作業していて
ウィンドウの管理が面倒やって探して見つけたのが、
タブ型のターミナル。
非常に便利だったのでおすすめのフリーソフトとして紹介します。

Poderosa
オープンソースのフリーソフトです。
ウィンドウを分割して、二つのターミナルを同時に見れるのがめちゃ便利です!
アクセスした設定もファイルとして残しておけるのが他PCに移っても
使えるので便利です。
Cygwin も同じタブで動かせるのもかなり重宝しています。



.

ファイルパスからファイル名を取り出す(シェルスクリプト)

シェルスクリプトで
ファイルパスからファイル名を取り出す方法です。

-------
filepath=/usr/local/test.txt
filename=${filepath##*/}
-------
こんなんで出来るのかーと。。
ビックリですわ。

.

iPhone アプリ開発の勉強で使っている書籍たち

iPhone アプリ開発の勉強で使っている書籍です。


Objective-C と Cocoa の勉強に使いました。
書籍に書いてあるサンプルアプリを作成しながら勉強して、
Objective-C の基礎と Xcode の基礎を学のにはちょうどよかったです。
1から初めるには良い書籍だと思います。


今読み進めている書籍。
Objective-C の基礎から iPhone SDK の説明とiPhoneアプリ触り始めには良いですね。
ちょこちょことサンプルアプリを作りながら読むと良い勉強になりそうです。



まだ読んでない書籍。。。
読んだらまた更新します。
読んだ人の評判は良いですね!

.

2009年3月14日土曜日

シェルスクリプト

シェルスクリプト
覚え書きっと。


■ if
if [ 条件式 ]
then
...
else
...
fi

■while
while [ 条件式 ]
do
...
done

.

2009年1月28日水曜日

バッチファイルその3

・バッチファイル自身のフルパスの取得方法です。

%0

こんだけ。
バッチファイルの第0引数がバッチファイル自身のフルパスになっています。

・バッチファイルが置いてあるフォルダパスの取得方法。
これで取得できます。

%~dp0

おまけに
カレントディレクトリの取得方法

%cd%

以上


最近バッチファイルを良く作っているので、
また調べた事を紹介できればなーと思います
.

2009年1月26日月曜日

3次元ベクトルにあたふた。

ついに関わる事になった。画像処理。
ベクトルの計算が出てきてややこしいのなんのって。

学生時代に学んだ知識のみなんであやふやな知識ばっか。
勉強せねばー。

とりあえず良く出てきた単語を残しときます。

・ベクトル長(対角を結ぶ線の長さ)
三平方の定理やから簡単に求められます。
√(a^2 + b^2+ ...)

・単位ベクトル
Wikipediaで調べると様々な定義があるようですが、
向きが同じでベクトル長が1となるベクトルの事。
x, y ... の格要素をベクトル長で割れば求まる。

・内積
説明が難しいけど。
二つのベクトルの同一平面上において、
一つのベクトルの先からもう一つのベクトルに
垂直な線を引いて交差した点と始点とを結んだ距離を表す。
個人的にはここのサイトが解りやすかったのです。
http://naop.jp/topics/topics14.html

・外積
二つのベクトルの法線ベクトルが求まる。
二つのベクトルの同一平面に垂直に交差するベクトルの長さが求まる。

.

2009年1月9日金曜日

バッチファイル作成のまとめ その2

バッチファイルは順次実行のため、
途中で別のバッチファイルを起動させると、
処理が完了するまで次の処理を行なってくれない。

で、バッチファイルを別プロセスで起動する方法。

start XXXX.bat

以上!

ちなみに別バッチファイルを起動するのは

call XXXX.bat



.

2009年1月1日木曜日

あけましておめでとうございます。

めざしです。

今年も調べた内容とか興味を持った事を紹介していこうと思いますので、
これからもまた、よろしくお願い致します。

さーて今年の目標!
・iPhoneのアプリ作成。
・何か資格をとってみようかなーと。
 何かを決めたら勉強中の事でも書いていこうかなと。
 エンデベットスペシャリストが候補。しかし年一回というのが。。

今年はどういう言語が流行るのでしょうね?
これからわくわくです。
またフリーソフトも便利なものが出てきてくれることを願って

今年も楽しく勉強できる一年になりますように。

.

ラベル