말그대로 초간단 CD 굽는 프로그램입니다.

모듈을 만들어서, 프로젝트에 써먹을 떼가 있을까 하고 만들어 보았습니다.

ActiveX로 만들어 SI Web Project 수행시 백업시스템을 구축하기 위함이었습니다.

소스와 내용을 정리하여 조만간 강좌란에 올리겠습니다.



CDRW_test(3).zip

[경영바이블] p23 다음 사회, 기업의 경영자

다음 사회(Next Society)에서는 사실상 최고경영자가 기업

그 자체가 될 것이다. 최고경영자의 책임은 전체 조직의 방향, 계획,

전략, 가치 및 원칙, 회사의 구조, 다양한 구성원 간의 관계, 다른

회사와의 제휴관계, 파트너십, 합작투자, 연구, 디자인, 혁신 모든

분야를 망라하게 될 것이다.

한편 기업의 새로운 문화를 구축하기 위해서는 기업의 최고 가치가

변화해야 한다. 가치의 변화를 선도하는 것이 최고경영자의 가장

중요한 임무가 될 것이다. 제2차 세게대전 후 50년 동안 기업은 부와

일자리 창출 및 경제적 조직으로서의 존재를 훌륭하게 입증했다.

다음 사회에서의 대기업, 특히 다국적 기업들이 직면할 가장 큰

도전은 사회적 합법성, 즉 가치, 사명, 비전이다. 다른 모든 것은

아웃소싱 할 수 있다.

** 조직의 가치, 사명, 비전에 초점을 맞추고, 다른 것은 모두

아웃소싱할 것을 고려해 보라.

< 피터 드러거의 "경영바이블" 중에서 >

[경영바이블] p22 지식근로자의 자율성

지식근로자들이 자신의 일과 그 일의 성과가 무엇인지를

파악하고자 하는 요구는 필연적인 것이다. 지식근로자는

자율적이어야 하기 때문이다.

같은 분야의 사람이라도 사람에 따라 가지고 있는 지식이

다르기 때문에 지식근로자 개개인이 각자 독특한 지식을

보유하고 있다. 따라서 지식근로자는 조직 내 다른 누구보다도

자신의 분야에 대해 더 잘 알고 있어야 한다. 사실 지식근로자

가 받고 있는 임금은 이에 대한 대가이다. 이 말은 지식근로자가

자신이 해야 할 일을 파악하고, 업무를 어떻게 수행해야 할지

적절히 재구성한 다음, 자신의 방식대로 업무를 수행하고,

그 일에 대해 책임져야 한다는 것이다.

지식근로자들은 무엇에 초점을 맞출 것인지, 내가 책임을

져야 할 일에 대해서는 어떤 결과가 기대되는지, 마감시한은

언제인지 등 자신의 업무 계획을 철저하게 생각하고, 철저하게

수행해야 한다. 지식 근로는 자율성과 아울러 책임이 요구된다.

** 업무에 대한 초점, 바람직한 성과, 마감시한 등이 포함된

업무 계획을 써 보고 그것을 상사에게 제출하라.

< 피터 드러거의 "경영바이블'중에서 >

Flash로 3D 꾸며보자 #1

Flash가 X Internet Tool의 최전선일 줄이야....

확장가능하고, 수행가능한 인터넷!!!





멀티미디어콘텐츠제작전문가 필기시험 득점 성적표



'기본 카테고리' 카테고리의 다른 글

진실2!!!!  (0) 2007.03.18
진실!!!  (0) 2007.03.18
레코드가 존재하면 update, 없으면 insert 를 수행하는 오라클 쿼리문  (0) 2007.03.15
[신경처리] 인공지능  (1) 2007.03.14
멀티미디어 강좌 사이트  (0) 2007.03.14
다음의 예제는
레코드가 존재하면 update, 없으면 insert 를 수행하는 오라클 쿼리문입니다.
Oracle Merge Statements
Version 10.2
Note: Primarily of value when moving large amounts of data in data warehouse situations.
Merge Statement DemoMERGE <hint> INTO <table_name>
USING <table_view_or_query>
ON (<condition>)
WHEN MATCHED THEN <update_clause>
WHEN NOT MATCHED THEN <insert_clause>;
CREATE TABLE employee (
employee_id NUMBER(5),
first_name VARCHAR2(20),
last_name VARCHAR2(20),
dept_no NUMBER(2),
salary NUMBER(10));

INSERT INTO employee VALUES (1, 'Dan', 'Morgan', 10, 100000);
INSERT INTO employee VALUES (2, 'Jack', 'Cline', 20, 100000);
INSERT INTO employee VALUES (3, 'Elizabeth', 'Scott', 20, 50000);
INSERT INTO employee VALUES (4, 'Jackie', 'Stough', 20, 40000);
INSERT INTO employee VALUES (5, 'Richard', 'Foote', 20, 30000);
INSERT INTO employee VALUES (6, 'Joe', 'Johnson', 20, 70000);
INSERT INTO employee VALUES (7, 'Clark', 'Urling', 20, 90000);
COMMIT;

CREATE TABLE bonuses (
employee_id NUMBER, bonus NUMBER DEFAULT 100);

INSERT INTO bonuses (employee_id) VALUES (1);
INSERT INTO bonuses (employee_id) VALUES (2);
INSERT INTO bonuses (employee_id) VALUES (4);
INSERT INTO bonuses (employee_id) VALUES (6);
INSERT INTO bonuses (employee_id) VALUES (7);
COMMIT;

MERGE INTO bonuses B
USING (
SELECT employee_id, salary
FROM employee
WHERE dept_no =20) E
ON (B.employee_id = E.employee_id)
WHEN MATCHED THEN
UPDATE SET B.bonus = E.salary * 0.1
WHEN NOT MATCHED THEN
INSERT (B.employee_id, B.bonus)
VALUES (E.employee_id, E.salary * 0.05);

신경처리 (Neural Processing)

여러분은 군중 속에서 어떻게 한 얼굴을 인식하는가? 어떻게 경제학자가 이자율의 방향을 예견할 것인가? 이러한 문제에 부딪혔을 때, 인간의 뇌는 정보를 처리하기 위해 상호 연결된 처리 요소인 신경세포(neuron)의 거미줄 (web)을 이용한다. 각 뉴런은 자치적이며 독립적이다. 이는 비동기적으로 작 동한다는 말이며, 다른 말로 해서 다른 사건에 구애받지 않고 발생한다는 것 이다. 이때 제기되는 두 가지 문제(즉 얼굴을 인식하는 것과 이자율을 예측 하는 것)는 다른 문제와 구별되는 두 가지 특징을 갖는다. 첫째는 문제가 복 잡하다는 것인데, 이는 그 답을 얻기 위해 간단한 step by step 알고리즘이 나 정확한 공식을 만들 수가 없다는 것이다. 둘째는 문제를 풀기 위해 주어 지는 데이터가 역시 복잡하고 잡음이 섞이거나 불완전할 수 있다는 것이다. 여러분이 얼굴을 인식하려 할 때에 안경을 잃어버릴 수도 있다. 경제학자는 자신의 마음대로 처리할 수 있는(이기적으로 조작하는)수천 개의 데이터 조각을 가지고 있을 수 도 있으며 이는 경제와 이자율에 대한 예측을 할 때에 적절할 수도 있고 그 렇지 않을 수도 있다.

생물학적 신경구조에 내재된 엄청난 처리 능력은 그 자체의 구조에 대한 연구를 고무하여 인간이 만든 컴퓨터 구조에 응용할 수 있는 힌트를 제공하 였다. 인공 신경망(Artificial Neural Network)이 이러한 주제이며 인간의 뇌 가 하는 것과 비슷한 방식으로 같은 종류의 까다롭고 복잡한 문제를 풀기 위한 합성 뉴런을 구성하는 방법에 대해 다룬다.

신경망이 초기에 인공지능의 해결책이 될 수 있는 가능성을 제시한 이래 많은 사람들이 신경망 모델의 연구에 참여하였다. 그러나 "퍼셉트론"의 발표 후 그 한계를 증명하는 이론의 영항으로 신경망연구에 열의는 줄었으나 다 시 델타 학습 법칙의 모델이 제시되고 다층 뉴런으로 퍼셉트론의 한계 (ex-or gate의 학습)을 벗어남으로써 다시금 활기를 되찾고 있다.

인간의 두뇌 구조를 흉내낸 신경망이 한동안의 침체기를 벗어나 그 중흥 기를 맞이하는데 큰 기여를 한 것들을 들자면 Error Backpropagation(오류 역전파:BP) 학습 방법을 빼놓을 수 없다. 실제로 가장 널리 사용되는 학습법 중의 하나인 BP는 델타 학습 법칙의 일종이다.

델타 학습 법칙의 기본은 현재 주어진 연결 강도로 생성되는 오차값을 구 하여 이를 감소시키는 방향으로 연결 강도의 값을 조정하는 것으로 이 때 오차값의 계산을 위해 각 노드의 올바른 출력값을 제공해 주어야 한다. 델타 학습 법칙을 이용한 단층의 신경망이 퍼셉트론이지만 이는 간단한 XOR 문 제도 해결하지 못하는 단점을 가진다.

XOR 문제를 해결한 BPN 프로그램은 여기를 눌러 down 받는다.

BP는 이러한 문제을 해결하기 위한 방법의 일종으로 다층의 신경망을 학 습시키는데 적합하다.

다음의 프로그래밍 예제는 전가산기의 학습을 시키는 Turbo C 프로그램이 다.

/* Backpropagation for Lerning Full Adder *//* 입력값은 다음과 같다. 	input E_min : 0.0001	input n(learning ratio) : 0.75	input N(lambda) : 7	input Maximun learing number : 20000		----        input x[0] =  캐리        input x[1] =  입력1        input x[2] =  입력2*//* Backpropagation for Lerning Full Adder */#include <stdio.h>#include <conio.h>#include <stdlib.h>#include <time.h>#include <math.h>#define PATTERN		8#define LROWS		5#define LCOLS		4#define KROWS		2#define KCOLS		5#define ran()	((rand() % 10000) / 10000.0 / 5) - 0.1float x[PATTERN][LCOLS] = { {0., 0., 0., -1.}, {0., 0., 1., -1.},							{0., 1., 0., -1.}, {0., 1., 1., -1.},							{1., 0., 0., -1.}, {1., 0., 1., -1.},							{1., 1., 0., -1.}, {1., 1., 1., -1} };float d[PATTERN][KROWS] = { {0., 0.}, {0., 1.}, {0., 1.}, {1., 0.},							{0., 1.}, {1., 0.}, {1., 0.}, {1., 1.} };float w_l[LROWS][LCOLS], w_k[KROWS][KCOLS];float NET_l[LCOLS], z[LROWS];float NET_k[KROWS], OUT[KROWS];float delta_OUT[KROWS], delta_z[LROWS];char  c;float n = 0.; /* n initialize */float N = 0.; /* lambda initialize */float EMIN = 0.; /* Emin initialize */float wx = 0., wz = 0., charge = 0., delta_w = 0., E = 0.;int i = 0, j = 0, k = 0, l = 0, m = 0;int number = 0; /* TRAIN number initialize */void Forward_Pass(void);void Backward_Pass(void);void Amend_Weight(void);void Input_x(void);void Print_Weight(void);void Initialize_Weight(void);void Delta_Rule(void);void main(void){	do {		clrscr();		printf(" Welcome to Backpropagation !\n");		printf(" --- Perform Full Adder ---\n");		printf(" Input E_min : ");		scanf("%f", &EMIN);		printf(" Input n(learning ratio) : ");		scanf("%f", &n);		printf(" Input N(lambda) : ");		scanf("%f", &N);		printf(" Input Maxium learning number : ");		scanf("%d", &number);		printf(" Perform Backpropagation [Y/N] : ");	} while ((c = getche()) != 'y');	Initialize_Weight(); /* weight initialize */	for (l = 0; l < number; l++)	{		for (k = 0; k < PATTERN; k++)		{			Forward_Pass();			Backward_Pass();			Delta_Rule();			Amend_Weight();		}		if(E < EMIN) break;		E = 0.;	}	Input_x();}void Forward_Pass(){	/*			   l                    */	/* Z  = f(NE T  ) = f( sigma W1     */	/*	i          i               i    */	for (i = 0; i < LROWS; i++) NET_l[i] = 0.;	for (i = 0; i < LROWS; i++)	{		for (j = 0; j < LCOLS; j++)		{			wx = w_l[i][j] * x[k][j];			NET_l[i] = wx + NET_l[i];		}		z[i] = 1. / (1. + exp(-N * NET_l[i]));	}	z[LROWS - 1] = -1.; /* z[4] = -1 */	for (i = 0; i < KROWS; i++) NET_k[i] = 0.;	for (i = 0; i < KROWS; i++)	{		for (j = 0; j < KCOLS; j++)		{			wz = w_k[i][j] * z[j];			NET_k[i] = wz + NET_k[i];		}		OUT[i] = 1. / (1. + exp(-N * NET_k[i]));	}}void Backward_Pass(){	charge = 0.;	for(i = 0; i < KROWS; i++)	{		charge = ((d[k][i] - OUT[i]) * (d[k][i] - OUT[i])) + charge;	}	E = ((1. / 2.) * charge) + E;}void Delta_Rule(){	/* OUTPUT layer */	for(i = 0; i < KROWS; i++)	{		delta_OUT[i] = (d[k][i] - OUT[i]) * (1. - OUT[i]) * OUT[i];	}	/* hidden layer */	for(i = 0; i < KCOLS; i++)	{		delta_w = 0.;		for(m = 0; m < KROWS; m++)		{			delta_w = (delta_OUT[m] * w_k[m][i]) + delta_w;		}		delta_z[i] = z[i] * (1. - z[i]) * delta_w;	}}void Amend_Weight(){	for(i = 0; i < KROWS; i++)	{		for(j = 0; j < KCOLS; j++)		{			w_k[i][j] = w_k[i][j] + (n * delta_OUT[i] * z[j]);		}	}	for(i = 0; i < KROWS; i++)	{		for(j = 0; j < KCOLS; j++)		{			w_l[i][j] = w_l[i][j] + (n * delta_z[i] * x[k][j]);		}	}}void Input_x(){	float temp;	do {		clrscr();		printf("E_min = %f \tn = %f \t N = %f\n", EMIN, n, N);		printf("training number = %d, E = %f\n", l, E);		Print_Weight();		printf("\n\n");		printf("--- x[0] = Carry in, x[1] = input 1, x[2] = input 2 --- \n");		for(i = 0; i < 3; i++)		{			printf("Input x[%d] of the pattern X :", i);			scanf("%f", &temp);			x[8][i] = temp;		}		x[8][3] = -1.;		Forward_Pass();		printf("\n");		for(i = 0; i < KROWS; i++)		{			printf("OUT[%d] = %f \t", i, OUT[i]);		}		printf("\n--- Where, OUT[0] = Carry out, OUT[1] = Sum ---\n");		printf("\n\nAnother Input ? [y/n] : ");	} while ((c = getche()) != 'n');}void Print_Weight(){	printf("\n\n");	printf("[Amended Weight at l layer]");	for(i = 0; i < LROWS; i++)	{		printf("\n");		for(j = 0; j < LCOLS; j++)		{			printf("   %+.3f", w_l[i][j]);		}	}	printf("\n\n");	printf("[Amended Weight at k layer]");	for(i = 0; i < KROWS; i++)	{		printf("\n");		for(i = 0; i < KROWS; i++)		{			for(j = 0; j < KCOLS; j++)			{				printf("   %+.3f", w_k[i][j]);			}			printf("\n");		}	}}void Initialize_Weight(){	int i, j;	time_t t;	srand((unsigned) time(&t));	for(i = 0; i < LROWS; i++)		for(j = 0; j < LCOLS; j++)		{			w_l[i][j] = ran();		}	for(i = 0; i < KROWS; i++)		for(j = 0; j < KCOLS; j++)		{			w_k[i][j] = ran();		}}

* 프리미어 강좌 : http://premire.ubedu.com/

* 플래시 강좌 : http://flashmx.ubedu.com/

The curve Object

The curve object displays straight lines between points, and if the points are sufficiently close together you get the appearance of a smooth curve. In addition to its basic use for displaying curves, the curve object has powerful capabilities for other uses, such as efficient plotting of functions.

Some attributes, such as pos and color, can be different for each point in the curve. These attributes are stored as Numeric arrays. The Numeric module for Python provides powerful array processing capabilities; for example, two entire arrays can be added together. Numeric arrays can be accessed using standard Python rules for referring to the nth item in a sequence (that is, seq[0] is the first item in seq, seq[1] is the second, seq[2] is the third, etc). For example, anycurve.pos[0] is the position of the first point in anycurve.

You can give curve an explicit list of coordinates enclosed in brackets, like all Python sequences. Here is an example of a 2D square:

square = curve(pos=[(0,0),(0,1),(1,1),(1,0),(0,0)])

Essentially, (1,1) is shorthand for (1,1,0). However, you cannot mix 2D and 3D points in one list.

Curves can have thickness, specified by the radius of a cross section of the curve (the curve has a thickness or diameter that is twice this radius):

curve(pos=[(0,0,0), (1,0,0), (2,1,0)], radius=0.05)

The default radius is 0, which draws a thin curve. A nonzero radius makes a "thick" curve, but a very small radius may make a curve that is too thin to see.

In the following example, the arange() function (provided by the Python Numeric module, which is imported by the Visual module, gives a sequence of values from 0 to 20 in steps of 0.1 (not including the last value, 20).

c = curve( x = arange(0,20,0.1) ) # Draw a helix

c.y = sin( 2.0*c.x )

c.z = cos( 2.0*c.x )

The x, y, and z attributes allow curves to be used to graph functions easily:

curve( x=arange(100), y=arange(100)**0.5, color=color.red)

A function grapher looks like this (a complete program!):

eqn = raw_input('Equation in x: ')

x = arange( 0, 10, 0.1 )

curve( x=x, y=eval(eqn) )

Parametric graphing is also easy:

t = arange(0, 10, 0.1)

curve( x = sin(t), y = 1.0/(1+t), z = t**0.5,
red = cos(t), green = 0, blue = 0.5*(1-cos(t)) )

Here are the curve attributes:

pos[] Array of position of points in the curve: pos[0], pos[1], pos[2]....
The current number of points is given by len(curve.pos)

x[ ], y[ ], z[ ] Components of pos; each defaults to [0,0,0,0,...]

color[ ] Color of points in the curve

red[ ], green[ ], blue[ ] Color components of points in the curve

radius Radius of cross-section of curve
The default radius=0 makes a thin curve

Adding more points to a curve

Curves can be created incrementally with the append() function. A new point by default shares the characteristics of the last point.

helix = curve( color = color.cyan )

for t in arange(0, 2*pi, 0.1):

helix.append( pos=(t,sin(t),cos(t)) )

One of the many uses of curves is to leave a trail behind a moving object. For example, if ball is a moving sphere, this will add a point to its trail:

trail = curve()

ball = sphere()

...# Every time you update the position of the ball:

trail.append(pos=ball.pos)

Interpolation

The curve machinery interpolates from one point to the next. For example, suppose the first three points are red but the fourth point is blue, as in the following example. The lines connecting the first three points are all red, but the line going from the third point (red) to the fourth point (blue) is displayed with a blend going from red to blue.

c = curve( pos=[(0,0,0), (1,0,0)], color=color.red )

c.append( pos=(1,1,0) ) # add a red point

c.append( pos=(0,1,0), color=color.blue) # add blue point

If you want an abrupt change in color or thickness, simply add another point at the same location. In the following example, adding a blue point at the same location as the third (red) point makes the final line be purely blue.

c = curve( pos=[(0,0,0), (1,0,0)], color=color.red )

c.append( pos=(1,1,0) ) # add a red point

c.append( pos=(1,1,0), color=color.blue) # same point, blue

c.append( pos=(0,1,0) ) # add blue point

Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> from visual import *
>>> square = curve(pos = [(0,0),(0,1),(1,1),(1,0),(0,0)])
>>> curve(pos[(0,0,0),(1,0,0),(2,1,0)], radius=0.05)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'pos' is not defined
>>> curve(pos = [(0,0,0),(1,0,0),(2,1,0)], radius = 0.05)
<visual.primitives.curve object at 0x00E4B6C0>
>>> c = curve(x = arange(0,20,0.1))
>>> c.y = sin(2.0*c.x)
>>> c.z = cos(2.0*c.x)
>>> courve(x=arange(100), y=arange(100)**0.5, color=color.rad)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'courve' is not defined
>>> curve(x=range(100), y=arange(100)**0.5, color=color.red)
<visual.primitives.curve object at 0x00E4B720>
>>>



'기본 카테고리' 카테고리의 다른 글

[신경처리] 인공지능  (1) 2007.03.14
멀티미디어 강좌 사이트  (0) 2007.03.14
테이블설계에 대해서 알아보자  (0) 2007.03.13
기술사 답안지 서식  (0) 2007.03.12
제81회 정보통신기술사 기출문제  (0) 2007.03.12

테이블설계에 대해서 알아보자

DataBase 테이블설계란무엇인가.hwp

DataBase 테이블설계란무엇인가.pdf

+ Recent posts