2008年12月13日土曜日

新しいインターフェース

タッチパネルの存在は今やなくてはならないものになった。
自分が使っているMacBookにだってもちろんついている。とても便利です。
君なしには生きていけないってぐらい便利です。

けど、その上にもっと大きな入力インターフェースが目を光らせながら
勇ましく寝そべっている。私たちが伝えたいことをすべて受け入れてくれる。
彼はいくら叩かれても文句を言わない。無償の愛の体現者。
そう、キーボードである。
私は思うのです、なぜ表面の半分以上を占めている
インターフェースが、文字入力にしか使えないのか!!もったいない!!
と、いうことで新しいインタフェースのプロトタイプアプリケーション
TouchBoardを作ってみました。



使い方は簡単。ホットキーを押すとキーボードがタッチパネルに大変身。左クリックもホットキーで操作できます。ただ、まだ制作途中なのでキーの反応はいまいち・・・。

理想的には、キーボードの上にのせられた透明なフィルム状のセンサーでマウスポインタの座標をコントロールできるといい。作ってみたい・・・(協力してくれる人募集中)。
イメージはこんな感じ?
送信者 chabashilah


今回はコンセプトモデルの段階なので、しっかりとしたものするためにもうちょい改良加えてみます。

2008年12月5日金曜日

Arduino XBee Shield Jumpers setting

英語のままだとわかりにくかったので翻訳してみた。おかしなところがあったら教えてくださいな。


訳)
ジャンパーの設定

Arduino XBee Shield には2つのジャンパーがある(2つのプラスチックの軸受けがそれだ。これらは3つのピンのうち、XBeeもしくはUSBと書かれたそれぞれ2本に接続される)。
これらはXBeeのシリアル通信がArduino上のマイクロコントローラー(ATmega8、もしくはATmega168)とFTDI USBシリアルチップとでどのように行われるかを決める。

ジャンパーをXBeeの位置にさした場合(ボードの内側の2ピン)、XbeeのDOUTピンがマイクロコントローラーのRX(受信)ピンに接続され、DINがTX(送信)に接続される。注意してもらいたいのが、マイクロコントローラーのRX、TX両ピンは依然としてFTDIチップに接続されているということだ。つまり、マイクロコントローラーから送信されたデータはUSBを通してコンピューターに送られ、同時にXbeeによりワイヤレスでも送信されているのだ。しかし、マイクロコントローラーはXbeeのデータを受信するのみで、USB経由でコンピューターからデータを得ることはできない。

ジャンパーをUSBの位置に指した場合(ボードの端の方の2ピン)、XbeeのDOUTピンはFTDIチップのRX(受信)ピンに、DINがTX(送信)に接続される。これはXbeeが直接コンピューターと通信できることを意味するが、これはマイクロコントローラーがArduinoから取り除かれた時のみ有効になる。もしも、マイクロコントローラーがArduino Boardに残されたままだと、USB経由でコンピューターと通信することができるが、コンピューター、もしくはマイクロコントローラーはXbeeモジュールと通信することはできない。

原文)
Jumper Settings

The Xbee shield has two jumpers (the small removable plastic sleeves that each fit onto two of the three pins labelled Xbee/USB). These determine how the Xbee's serial communication connects to the serial communication between the microcontroller (ATmega8 or ATmega168) and FTDI USB-to-serial chip on the Arduino board.

With the jumpers in the Xbee position (i.e. on the two pins towards the interior of the board), the DOUT pin of the Xbee module is connected to the RX pin of the microcontroller; and DIN is connected to TX. Note that the RX and TX pins of the microcontroller are still connected to the TX and RX pins (respectively) of the FTDI chip - data sent from the microcontroller will be transmitted to the computer via USB as well as being sent wirelessly by the Xbee module. The microcontroller, however, will only be able to receive data from the Xbee module, not over USB from the computer.

With the jumpers in the USB position (i.e. on the two pins nearest the edge of the board), the DOUT pin the Xbee module is connected to the RX pin of the FTDI chip, and DIN on the Xbee module is connected to the TX pin of the FTDI chip. This means that the Xbee module can communicate directly with the computer - however, this only works if the microcontroller has been removed from the Arduino board. If the microcontroller is left in the Arduino board, it will be able to talk to the computer normally via USB, but neither the computer nor the microcontroller will be able to talk to the Xbee module.


XBeeの設定ページのもと
http://www.arduino.cc/en/Main/ArduinoXbeeShield

2008年12月4日木曜日

arduino grapher

i made graph viewer of analog input for debugging.

arduino ping pong

i made a ping pong game. the controller are variable resistances!!

Arduino XBee Shield Configuration

I didn't know why I can't configure my XBee shield. The reason was I didn't pull ATMEGA168 out from arduino diecimila!!

Then just type
screen /dev/tty.usbserial*** 9600
to configure your XBee Shield.

Sigh, it took a lot of time to know that.

2008年11月27日木曜日

ReMac

as i said before, my HD was dead.
when i restore my mac, i always get confused what software i should install.
i wanna minimize my Mac. in the meantime, i write needed applications down here.
then, let's think the figure of the best environment.

1)XCode
http://developer.apple.com/technology/xcode.html
if i don't use this, i can't do anything.

2)Emacs
http://homepage.mac.com/zenitani/emacs-e.html
same as above

3)Evernote
http://evernote.com/
same as above

4)Dropbox
http://www.getdropbox.com/
same as above

5)Quicksilver
http://quicksilver.en.softonic.com/mac
you may say spotlight is enough, but it doesn't complement. i often make a type. i still need it.

6)Growl
http://growl.info/
this is a very good application. it helps me to know states of other applications.

7)Adium
http://www.adiumx.com/
useful



these are minimum applications what i need.

2008年11月25日火曜日

My HD was dead.

i know i should back my HD up once a month.
i know HD is fragile.
but, i don't know when it die!
i must think about CLOUD COMPUTING. i should not have important data on local computing.
of course, my source codes were comitted in SVN. It's okay.
my thesis data was shared with DropBox. It's okay too.
but my music and photo were almost dead. i've known photo sharing service like Picasa or Flickr, but i didn't use them.

sigh, i activated Picasa album and Youtube account.
my cloud computing life style has been started.

2008年10月29日水曜日

XCode Universal Binary

when i maked iPhoto plugin on XCode, i had a problem of universal binary.
to debug it, I needed to make an active executable. It needs architecture setting as "Native Architecture of Build Machine".
But this setting doesn't allow me to make universal binary. firstly, i didn't realize why it doesn't work as it. but the reason was architecture setting needs to be "32/64-bit Universal".

2008年10月26日日曜日

music

cajon

music

Ustad Zakir Hussain-TABLA


Kana told me about MESHELL NDEGEOCELLO. cool.

2008年9月30日火曜日

GNUStep building with python.

i sometimes forget how to build GNUStep code.
following is code.


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import os
import re

if __name__ == '__main__':
if len(sys.argv) != 3:
print 'invalid arguments'
sys.exit(1)
print 'compiling starts'

opt_array = ['-fconstant-string-class=NSConstantString',
'-IC:\GNUstep\GNUstep\System\Library\Headers',
'-LC:\GNUstep\GNUstep\System\Library\Libraries',
'-lgnustep-base',
'-lobjc'
]

base_dir = os.getcwd()
filter = re.compile('\.m$')
linker = []
input = sys.argv[1]
output = sys.argv[2]

for dirpath, dirnames, filenames in os.walk(base_dir):
for filename in filenames:
if filter.search(filename):
if filename == input:
continue
filename, ext = filename.split('.')
filename = os.path.join(dirpath, filename)
action = 'gcc -O %s -c %s.%s -o %s.o' %\
((' ').join(opt_array), filename, ext, filename)
print action
linker.append("%s.o" % filename)
os.system(action)

break
action = "gcc -O %s %s %s -o %s" %\
((' ').join(linker), input, (' ').join(opt_array),output)
print action
os.system(action)
print 'compiling ends'


2008年9月28日日曜日

xcode compiling option

at this time, i talk about C++ Tool of Command Line Utility.

1)expand Targets. after that expand your project.

2)you can see Compile Sources. expand it and click a right mouse button and select Get Info.

3)Select a tab "Build". You can see "Additional Compiler Flags". input compiler options that text area.

this is how to set compiling options. as for the rest, just push the Build button.

check this too.

2008年9月18日木曜日

As a programmer...

Assure codes. Make evidences to say "it's safe" for it.

Read documents.

Never forget data from outside is not secure.

These are principles for me.

2008年9月17日水曜日

handling pgm data with c++

i m trying to get raw data from pgm file. if you calculate file size from width and height, if you like 16bit data, the file size will be double, you can find the header size. but how do we get heaer info without calculating?

following is a part of the code.



int width, height, brightness, counter;
std::ifstream ifs;
//initialize
width = height = brightness = counter = 0;
ifs.open(input_file_name, std::ios::in);

std::string filetype;
std::string filetype_str;
std::getline(ifs, filetype);

std::string size_str;
std::getline(ifs, size_str);
std::istringstream size_stream(size_str);
size_stream >> width >> height;

std::string brightness_str;
std::getline(ifs, brightness_str);
std::istringstream brightness_stream(brightness_str);
brightness_stream >> brightness;

std::string header_needless;
std::getline(ifs, header_needless);

std::cout << filetype << std::endl;
std::cout << width << std::endl;
std::cout << height << std::endl;
std::cout << brightness << std::endl;

this means there are 4 lines for a header.

bayer data with dcraw

if you want to get bayer data from raw data, dcraw may be good. if you type like

dcraw -d -4 rawdata

you can get 16bit pgm data. the order is bayer structure. if you like 8 bit, you don't need to add "-4" option.

i will distribute a software to get bayer image with opencv someday.

2008年9月16日火曜日

iPod music backup script


#!/usr/bin/env python
# -*- coding: utf-8 -*-

### globals
import os
import shutil

def swapextensions(copy_from, copy_to):
count = 0
for path, subdirs, files in os.walk(copy_from):
for file in files:
if file[:1] != '.':
count += 1
shutil.copy('%s/%s'%(path,file), '%s/%s'%(copy_to,file))

if __name__ == '__main__':
import sys
if len(sys.argv) != 3:
print 'Usage: swapext rootdir before after'
sys.exit(100)
swapextensions(sys.argv[1], sys.argv[2])



how to use?

python copy_files.py /Volumes/xxx/iPod_Control/Music destination_path

change encoding with python


#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import re

if __name__ == "__main__":
base_dir = os.getcwd()
filter = re.compile('\.h$|\.m$|\.cpp$|\.c$')
for dirpath, dirnames, filenames in os.walk(base_dir):
for filename in filenames:
if filter.search(filename):
p = os.path.join(dirpath, filename)
action = 'nkf --utf8 %s > %s_' % (p, p)
os.system(action)
action = 'mv %s_ %s' % (p, p)
os.system(action)

2008年9月12日金曜日

terminal emacs does'nt allow me to undo with C-/!!

this entrysay the reason why we can't undo with C-/ is "/" is not an ascii code. terminal can only send ascii character maybe.

2008年9月11日木曜日

MoinX memo 2

if you wanna change the design of wiki, you just change theme directory. it's located on /Applications/MoinX.app/Contents/Resources/htdocs.

if you wanna change the parameter of the wiki, change wikiconfig.py on ~/Library/Application Support/MoinX/instance. you can use logo image if you use img tag for sitename.

2008年9月10日水曜日

MoinX memo

How can I start?

if you are a mac user, use Version 1.0.3. you can download from http://moinx.antbear.org/

Where is it located?

In ~/Library/Application Support/MoinX/Instance/data/pages


if you have any other problems, go to http://code.google.com/p/moinx/wiki/FrequentlyAskedQuestions

dcraw memo


gcc -o dcraw -O4 dcraw.c -lm -DNO_JPEG -DNO_LCMS

python-c api programming

i ve tried to copile python-c code a dozen times. but everytime, i failed.
i didn't know why it does'nt work. the code is very simple like just showing "Hello World!".
the problem was how to compile. a compiler always returned " undefined reference to `_imp__PyArg_ParseTuple'".
i though it's a liker problem.
today, i finally succeeded to do it!!! this is a memo for it.

at this time, i used following simple code from [2].

ext.c

#include

static PyObject *
fact(PyObject *self, PyObject *args)
{
int n;
int i;
int ret=1;

if (!PyArg_ParseTuple(args, "i", &n))
return NULL;

for (i=n; i>0; i--) ret *= i;

return Py_BuildValue("i", ret);
}

static PyObject *
hello(void)
{
printf("Hello World!!\n");
Py_RETURN_NONE;
}

static char ext_doc[] = "C extention module example\n";

static PyMethodDef methods[] = {
{"hello", hello, METH_VARARGS, "print hello world.\n"},
{"fact", fact, METH_VARARGS, "return factorial.\n"},
{NULL, NULL}
};

void initext(void)
{
Py_InitModule3("ext", methods, ext_doc);
}




gcc -IC:\Python25\include -LC:\Python25\libs ext.c -lpython25 -shared -o ext.pyd


that's it!!!you can import as "ext" on python command line!


reference:
[1] http://techtonik.rainforce.org/2008_01_01_archive.html
[2] http://f59.aaa.livedoor.jp/~ookini/pukiwiki.php?Python%A4%CEC%B8%C0%B8%EC%B3%C8%C4%A5%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB%A4%F2%BB%C8%A4%C3%A4%C6%A4%DF%A4%EB

music memo

cool


my friend told me


2008年9月4日木曜日

CrashReporter of mac

Mac OS X has a system which send a bug report to apple. it's called CrashReporter.
Usually, developer can not get it because it's sent to apple directory.
thus, people implement that system by themself.

I, like all developers, want that system. We can get some entry to implement a hand-made CrashReporter. I got a sample code of Steve Gehrman. Previously, I wrote a flow of the code.
At this moment, I made a log for general knowledge of CrashReporter.

As a technical report say in http://developer.apple.com/jp/technotes/tn2004/tn2123.html, we can get hexadecimal addresses with exception tracebacks. a problem is how to change from hexadecimal to symbol. if you have a XCode, you can use "atos" but if a user doesn't, how do we get them?
to begin with, do we need symbols when a user have a crash?
generally speaking, hexadecimal address is enough because we can get symbol at local circumstance.
so, what we have to do is getting tracebacks of the crash.

i will write details later.

2008年8月30日土曜日

individuality

individuality, how do i confirm it?
if, if i am a person who lives in the earth alone, what am i?
i always find my self by others.

decomposing mind.

2008年8月29日金曜日

environment variable for mingw

C_INCLUDE_PATH -> c
CPLUS_INCLUDE_PATH -> c++

and

LIBRARY_PATH

2008年8月27日水曜日

DNG SDK for mac

basically, DNG SDK mac is same as win ver, but you need to pay attention to build XMPToolkit.xcodeproj on dng_sdk_x_x/XMP-SDK/build/xcode. the xcodeproj generates libraries for DNG SDK.

anyway, see dng_validate. it's a start.

how to build DNG project

we have few document of DNG SDK. you may say the spec is enough though, for me, not.
i think sample code is the most useful explanation to use the SDK. i ve tried to search them but no code have been found.
in DNG SDK directory, there is a directory called project. in it, two version of project file(win & mac) are. this is a log to compile win version.

1. install Microsoft Platform SDK

2. get XMP SDK from http://www.adobe.com/devnet/xmp/ and expat from http://sourceforge.net/projects/expat/

3.place XMP SDK on dng_sdk_x_x

4.copy expat library on dng_sdk_x_x/XMP-SDK/third-party/expat/

5.set project property of include path. at this time, Microsoft Platform SDK path

6.add a link to uuid.lib. this also is on Microsoft Platform SDK.

I guess you can compile DNG SDK project. later

2008年8月13日水曜日

get out of here

some noise bugs me. get out of "here". a future? a life?
instinct and intention. these two elements combat. sometimes, the former wins and vice versa.
get the eyes, it's not mine. yours.

2008年8月12日火曜日

feeling, thinking

you never know what i m thinking. you never know what i m feeling.
what you look is what you think.

i don't want you a lot, but if possible, please feel inside of me.
the chaos is spreading around me. the chain reaction never stop.
someday, we may finish. i don't afraid of it. it's easy. accept it.

OpenCV & Bayer data

i m trying to use bayer data with openCV. i m looking the document of openCV but i don't get it!!

2008年8月8日金曜日

compiling openCV code with g++

g++ `pkg-config --cflags opencv` `pkg-config --libs opencv` -o exe_name source.cpp

memo :-0

compiling openCV code with mingw

g++ %1.cpp -o %1.exe -I"C:\Program Files\OpenCV\cv\include" -I"C:\Program Files\OpenCV\cxcore\include" -I"C:\Program Files\OpenCV\otherlibs\highgui" "C:\Program Files\OpenCV\lib\cxcore.lib" "C:\Program Files\OpenCV\lib\cv.lib" "C:\Program Files\OpenCV\lib\highgui.lib"

wikipedia xml to Berkeley DB

I wanna get titles and link to wikipedia English pages from dump data of wikipedia.
This is the code.


#/usr/bin/env python
# -*- coding: utf-8 -*-

### globals
import sys
import re
from bsddb import db
from xml.sax import ContentHandler
from xml.sax import make_parser

class BaseHandler(ContentHandler):

def __init__(self, parser):
ContentHandler.__init__(self)
self.db = db.DB()
self.db.open("test_db", None, db.DB_HASH, db.DB_CREATE)

self.parser = parser
self.key_value_map = {}

def setHandlers(self, titleHandler, textHandler):
self.titleHandler = titleHandler
self.textHandler = textHandler

def startElement(self, name, attrs):

if name == u"title":
self.parser.setContentHandler(self.titleHandler)
elif name == u"text":
self.parser.setContentHandler(self.textHandler)


class TitleHandler(ContentHandler):
def __init__(self, baseHandler, parser):
ContentHandler.__init__(self)
self.baseHandler = baseHandler
self.parser = parser


def characters(self, char):
if char:
self.baseHandler.key_value_map["title"] = char.encode("utf-8")

def endElement(self, name):
if name == u"title":
#give handler
self.parser.setContentHandler(self.baseHandler)


class TextHandler(ContentHandler):

def __init__(self, baseHandler, parser):
ContentHandler.__init__(self)
self.baseHandler = baseHandler
self.parser = parser

def characters(self, char):
r = re.compile(u"\[\[en:(.*?)\]\]")
eng = r.findall(char)
if eng:
self.baseHandler.key_value_map["en"] = eng[0].encode("utf-8")

def endElement(self, name):
if name == u"text":
self.baseHandler.db.put(self.baseHandler.key_value_map["title"]
, self.baseHandler.key_value_map.get("en", ""))
print self.baseHandler.key_value_map
self.parser.setContentHandler(self.baseHandler)
#initialize the map
self.baseHandler.key_value_map = {}

if __name__ == "__main__":
parser = make_parser()
baseHandler = BaseHandler(parser)
titleHandler = TitleHandler(baseHandler, parser)
textHandler = TextHandler(baseHandler, parser)
baseHandler.setHandlers(titleHandler, textHandler)
xmlFile = open('jawiki-latest-pages-meta-current.xml', 'r')
parser.setContentHandler(baseHandler)
parser.parse(xmlFile)



fire works

cute

2008年8月7日木曜日

Sequence of sample application of Steve Gehrman.

I got a great code of Steve Gehrman. He seems to be a developer of PathFinder.
This is about how to get a stack trace of cocoa application. Following is a sequence of function.

MyDocument.m-MyDocument
+ (void)initialize;

NTExceptionHandlerDelegate.m
- (id)initWithEmail:(NSString*)emailAddress;

MyDocument.m-MyDocument
- (id)init

MyDocument.m-MyDocument
- (NSString *)windowNibName

MyDocument.m-MyDocument
- (void)windowControllerDidLoadNib:(NSWindowController *) aController

MyDocument.m-MyDocument
- (NSString*)displayName;

The application get started.

== Push "Exception 1" button.

MyDocument.m-MyDocument
- (void)exception1Action:(id)sender;

NTExceptionHandlerDelegate.m-NTExceptionHandlerDelegate
- (BOOL)exceptionHandler:(NSExceptionHandler *)sender shouldLogException:(NSException *)exception mask:(unsigned int)aMask;

NTExceptionHandlerDelegate.m-NTExceptionHandlerDelegate
- (BOOL)exceptionHandler:(NSExceptionHandler *)sender shouldHandleException:(NSException *)exception mask:(unsigned int)aMask;

NTExceptionHandlerDelegate.m-NTExceptionHandlerDelegate
- (BOOL)shouldDisplayException:(NSException *)exception;

NTExceptionPanelController.m-NTExceptionPanelController
- (id)initWithException:(NSException*)exception emailAddress:(NSString*)emailAddress;

NTExceptionPanelController.m-NTExceptionPanelController
- (void)awakeFromNib

NTExceptionPanelController.m-NTExceptionPanelController (Private)
- (void)displayCrashReport:(NSException*)exception;

NTExceptionPanelController.m-NTExceptionPanelController (Private)
- (NSString*)applicationName;

NTExceptionPanelController.m-NTExceptionPanelController (Private)
- (void)displayText:(NSString*)text

NTExceptionPanelController.m-NTExceptionPanelController (Private)
- (void)displayText:(NSString*)text

NTExceptionPanelController.m-NTExceptionPanelController (Private)
- (void)displayText:(NSString*)text

NTExceptionPanelController.m-NTExceptionPanelController (Private)
- (void)displayText:(NSString*)text

NTExceptionPanelController.m-NTExceptionPanelController (Private)
- (void)displayText:(NSString*)text

NTUtilities.m-NTUtilities
+ (NSString*)applicationVersion;

NTExceptionPanelController.m-NTExceptionPanelController (Private)
- (void)displayText:(NSString*)text

NTExceptionPanelController.m-NTExceptionPanelController (Private)
- (void)displayText:(NSString*)text

NTUtilities.m-NTUtilities
+ (NSString*)OSVersion;

NTExceptionPanelController.m-NTExceptionPanelController (Private)
- (void)displayText:(NSString*)text

NTExceptionPanelController.m-NTExceptionPanelController (Private)
- (void)displayText:(NSString*)text

NTExceptionPanelController.m-NTExceptionPanelController (Private)
- (void)displayText:(NSString*)text

NTExceptionPanelController.m-NTExceptionPanelController (Private)
- (void)displayText:(NSString*)text

NTExceptionPanelController.m-NTExceptionPanelController (Private)
- (void)displayText:(NSString*)text

NTExceptionPanelController.m-NTExceptionPanelController (Private)
- (void)displayText:(NSString*)text

NTExceptionPanelController.m-NTExceptionPanelController (Private)
- (NSNumber*)applicationProcessID;

NTTaskController.m-NTTaskController
- (id)initWithDelegate:(id)delegate;

NTTaskController.m-NTTaskController
- (void)runTask:(BOOL)sync toolPath:(NSString*)toolPath directory:(NSString*)currentDirectory withArgs:(NSArray*)args

== A report screen appears

NTTaskController.m-NTTaskController
- (void) taskOutputAvailable:(NSNotification*)note

NTTaskController.m-NTTaskController (Private)
- (BOOL)processOutput:(NSData*)output;


NTTaskController.m-NTTaskController
- (void) taskOutputAvailable:(NSNotification*)note

NTTaskController.m-NTTaskController (Private)
- (BOOL)processOutput:(NSData*)output;

NTTaskController.m-NTTaskController
- (void)taskDidTerminate:(NSNotification*)note

NTTaskController.m-NTTaskController
- (void) taskOutputAvailable:(NSNotification*)note

NTTaskController.m-NTTaskController (Private)
- (BOOL)processOutput:(NSData*)output;

NTTaskController.m-NTTaskController
- (void) taskOutputAvailable:(NSNotification*)note

NTTaskController.m-NTTaskController (Private)
- (BOOL)processOutput:(NSData*)output;

NTTaskController.m-NTTaskController (Private)
- (void)sendOutputToDelegate;

NTExceptionPanelController.m-NTExceptionPanelController
- (void)delegate_handleTaskOutput:(NSString*)output

NTExceptionPanelController.m- NTExceptionPanelController (Private)
- (void)displayText:(NSString*)text

NTExceptionPanelController.m-NTExceptionPanelController
- (void)delegate_handleTaskFinished:(NSNumber*)result;

NTExceptionPanelController.m- NTExceptionPanelController (Private)
- (void)disposeTask;

NTTaskController.m-NTTaskController
- (void)taskErrorsAvailable:(NSNotification*)note

NTTaskController.m-NTTaskController
- (void)processOutputAfterDelay:(id)object;

NTTaskController.m-NTTaskController (Private)
- (void)sendOutputToDelegate;

NTTaskController.m-NTTaskController
- (void)dealloc;

NTTaskController.m-NTTaskController
- (void)stopTask;

Weakness

I feel a weakness of my mind. I always try to see myself from the third person, but, i can't.
Struggle, struggle. This situation makes me stronger. No pain, no gain. I know.
Please, please, make her and I relieved.
Flowing leaf, like water. The stream is karma in me.

Crush Report

I am researching a way to read a crush report of mac. This is a log.

This web site looks good, it is written in Japanese though.


My sample crush report is like below....

Process: mixi station [154]
Path: /Applications/mixi station.app/Contents/MacOS/mixi station
Identifier: jp.glucose.mmm
Version: ??? (20061221)
Code Type: X86 (Native)
Parent Process: launchd [82]

Date/Time: 2008-07-24 16:34:57.427 +0900
OS Version: Mac OS X 10.5.4 (9E17)
Report Version: 6

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000e4c532d3
Crashed Thread: 0

Thread 0 Crashed:
0 libobjc.A.dylib 0x95ad46e8 objc_msgSend + 24
1 com.apple.CoreFoundation 0x96f216c4 _CFArrayReplaceValues + 2628
2 com.apple.Foundation 0x946b49a3 -[NSCFArray insertObject:atIndex:] + 131
3 com.apple.Foundation 0x946b4914 -[NSCFArray addObject:] + 68
4 jp.glucose.mmm 0x00005f6b 0x1000 + 20331
5 jp.glucose.mmm 0x000066d5 0x1000 + 22229
6 com.apple.AppKit 0x926ec441 -[NSTableView numberOfRows] + 175
7 com.apple.AppKit 0x926d4d5a -[NSTableView _verifySelectionIsOK] + 95
8 com.apple.AppKit 0x926d4c17 -[NSTableView _tileAndRedisplayAll] + 263
9 com.apple.AppKit 0x926d48c8 -[NSTableView setDataSource:] + 290
10 com.apple.AppKit 0x925e7c0c -[NSNibOutletConnector establishConnection] + 396
11 com.apple.AppKit 0x925c7aa4 -[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:] + 1211
12 com.apple.AppKit 0x925bde12 loadNib + 264
13 com.apple.AppKit 0x925bd774 +[NSBundle(NSNibLoading) _loadNibFile:nameTable:withZone:ownerBundle:] + 946
14 com.apple.AppKit 0x925bd3b7 +[NSBundle(NSNibLoading) loadNibFile:externalNameTable:withZone:] + 171
15 com.apple.AppKit 0x925bd2f5 +[NSBundle(NSNibLoading) loadNibNamed:owner:] + 391
16 jp.glucose.mmm 0x0000650e 0x1000 + 21774
17 jp.glucose.mmm 0x00006409 0x1000 + 21513
18 com.apple.AppKit 0x926c8c23 -[NSApplication sendAction:to:from:] + 112
19 com.apple.AppKit 0x92777660 -[NSMenu performActionForItemAtIndex:] + 493
20 com.apple.AppKit 0x92777365 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 220
21 com.apple.AppKit 0x92754242 AppKitMenuEventHandler + 6608
22 com.apple.HIToolbox 0x9406a763 DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 1181
23 com.apple.HIToolbox 0x94069b9d SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 405
24 com.apple.HIToolbox 0x940864ee SendEventToEventTarget + 52
25 com.apple.HIToolbox 0x940babc1 SendHICommandEvent(unsigned long, HICommand const*, unsigned long, unsigned long, un.....





Important information is exceptions and crushed thread information. i think there are ways to know the function name by the address. I'm finding it now. later

Reforming

inside of my mind.
it is like sky.
hello everyone, i m here.
i m waiting you.
i m here.