2012년 3월 30일 금요일

CS] father of CSharp Anders hejlsberg youtube link

앤덜스 하윌즈벅 인터넷 사이트는 전부 앤더스 헤즐스버그라고...
왜왜왜왜왜.
믓튼 다시 다시 C#을 잡게 되었다.

항상 하는 거지만 창시자들에 대한 경외심를 먼저 형성할 것.
-자바에 비해 심플한 언어는 아니지만 뭐... 이젠 또 '빠'가 되어야지.

http://www.youtube.com/watch?v=nCVNpwXijVQ

http://www.youtube.com/watch?v=KzSY9WQXjzg

http://www.youtube.com/watch?v=s0_mvBU5HL4

http://www.youtube.com/watch?v=WmfYrpThqEc

http://www.youtube.com/watch?v=OdU6GxYDrZ4


test] CSharp.cs

using System;
class NameCard
{
 private string[] names;
 public NameCard(int i)
 {
  names = new string[i];
 }
 public string this[int index]
 {
  get
  {
   if(names[index] == null)
    return "Nothing in here.";
   else
    return names[index];
  }
  set
  {
   if(value == null)
    Console.WriteLine("Can't store Index value");
   else
    names[index] = value;
  }
 }
}

class MainApp
{
 public static void Main()
 {
  const int max = 5;
  NameCard my = new NameCard(max);
  my[0] = "kim";
  my[1] = "ha";
  my[2] = "yang";
  my[3] = "bae";
  my[4] = "shin";
  for(int i =0; i<max; i++)
   Console.WriteLine(my[i]);
 }
}

CSharp] CS] java 와 다른 것들.

new랑 base
base는 super와 비슷.

struct 여전히 존재

partial로 클레스 분할 가능

abstract나 virtual 을 override 가능하도록 ... 예약어 3개.

자바는 abstract면 무조건 재정의 해야 하는데 반함.

sealed 는 final과 같은 듯.


boxing unboxing은 casting과 비슷.

? 연산자 = System.Nullable< >
NULL 타입도 있음.

메소드의 파라미터를 param으로 다수개 받을 수 있고 out으로 여러개 return 가능.
결국 리턴하지 않고 해당 포인터를 가져와서 값을 바꾸는 것로 보임.

foreach

internal과 protected internal 생김

news] 구멍난 양말 신던 구두쇠 전직 교장 기부

출처 조선일보. 이런 기사 쓸 땐 조선일보 ㄱㅊ

구멍난 양말 신던 구두쇠 전직 교장 "5억을… 여보, 여보 제발 눈 좀 떠봐 여보"

  • 김연주 기자

  • 입력 : 2012.03.30 03:04 | 수정 : 2012.03.30 08:57

    자린고비 전직 교장 선생님, 해외여행·외식 한번 않고 56년간 모은 돈 장학금으로…
    부인은 갑자기 쓰러져 뇌사 "우리부부 공동명의로 기부하려 했는데…"

    "우리가 같이 좋은 일 하는 거야. 당신도 알고 있지?"

    27일 경기도 김포의 A병원 중환자실. 장재은(81)씨가 산소호흡기를 끼고 누워 있는 부인 최현숙(80)씨 귀에 대고 속삭였다. 최씨는 아무런 움직임이 없었다. 장씨는 때때로 감정이 복받쳐 눈물이 흐르자 낡은 점퍼 주머니에서 손수건을 꺼내 눈가를 훔쳤다.

    장씨는 지난 21일 평소 다니던 인천 강화군의 홍의교회를 찾아 "우리부부 공동명의로 5억원을 장학금으로 기부하겠다"고 했다. 큰 병이 없던 부인이 기도(氣道)에 음식이 걸려 갑작스레 뇌사 상태에 빠진 지 사흘째 되던 날이었다. 25일에는 장씨와, 서울에 사는 아들(54)·딸(48)이 참석한 가운데 교회에서 장학기금 봉헌식이 열렸다. 평소 장씨 부부의 돈 씀씀이를 잘 알고 있던 마을 주민들 사이에선 '5억원 기부' 소식이 화제가 됐다.

    지난 26일 학생 장학금으로 5억원을 기부한 장재은씨가 뇌사 상태에 빠져 경기 김포의 한 병원 병상에 누워 있는 아내 최현숙씨를 바라보고 있다. /김용국 기자 young@chosun.com
    1956년 인천사범학교(현 경인교대)를 졸업하고 평교사로 시작해 1997년 교장으로 정년퇴직한 장씨와 부인은 마을에서 소문난 '구두쇠'였다. 교사 시절 월급을 받으면 100원도 허투루 쓰지 않고 꼬박꼬박 저축했다. 부인 최씨는 시부모를 모시고 아이를 기르면서도 밤낮으로 인삼 농사를 지어 돈을 보탰다. 비싼 외식, 해외여행 한번 안 하고 돈을 아낀 부부는 논·밭도 사고 큰 재산을 모았다. 그래도 최씨는 최근까지 집에서 읍내 나가는 차비 1000원이 아까워 승용차가 있는 이웃이 나갈 때를 기다렸다 얻어타고 다녔다. 구멍 난 양말은 꿰매 신고, 옷은 해질 때까지 입었다. 이웃들은 "돈을 저만큼 모았으면 좀 쓰고 살지 왜 저럴까" 하고 고개를 갸우뚱거렸다.

    구두쇠로 소문난 장씨지만 30년 전쯤부터 '근검절약하며 살아도 재산은 좋은 데 써야겠다'는 생각을 해왔다. 1981년 교감으로 있던 강화 송해초등학교에 TV가 없기에 당시 한 대 20만원짜리 TV 10대를 사서 기부했다. 낭비라면 질색하던 부인도 학교에 기부한다고 하니 흔쾌히 따랐다. 그 일을 계기로 장씨는 '가장 좋은 일은 장학사업'이라는 생각을 굳혔다. "그냥 건물 한 채 올리면 그걸로 끝이지만, 아이들에게 지원하면 오랫동안 장학금의 의미와 효과가 지속된다"고 믿었다.

    장씨는 올 초에는 연말에 재산 중 일부인 5억원을 장학금으로 기부하기로 마음먹고 기금 운영 방식도 정해뒀다. 매년 강화 지역 5개 고등학교 학생 5명에게 각 100만원씩, 자기 모교(母校)인 송해초등학교 학생 1명에게 20만원과 도서구입비를 지원하기로 했다. 소문이 퍼질까봐 부인에게도 연말이 다 되어 말하려고 했다. 그런데 아내가 갑자기 쓰러져 사경을 헤매게 되자 기부 계획을 앞당긴 것이다. 자영업을 하는 아들과 딸도 아버지의 결정에 반대하지 않았다. 장씨는 "집사람이 숨이 붙어 있는 동안 우리 둘의 이름으로 기부하고 싶었다. 우리 둘이 근검절약해서 모은 돈이니까…"라고 말했다.

    2012년 3월 29일 목요일

    [book] IT 패러다임을 바꾸는 새로운 컴퓨팅 환경의 도래 클라우드 컴퓨팅 바이블

    바이블이 맞다. 평소 읽던 서적과는 어투가 거리감이 있으니까...

    번역서에 의역이 많이 들어가서 자기꺼로 소화되서 나오는 걸 바라는 건 무릴지 모르겠으나

    29000원이라는 가격은 번역의 질에 어울리지 않는다.

    블로그를 통해서 얻는 자료가 훨씬 질이 있지만 클라우드 자료를 모아놓았다는 점에서

    클라우드의 길을 찾는데 도움이 될 것 같다.

    사실 내가 읽고 한마디로 클라우드 서비스를 정의 하자면.

    비용 때문에 어쩔 수 없이 쓸 수 밖에 없는 내가 직접 관리 못하는 서버가 딱 맞는 표현인 것 같다.

    서버 기술이 쉬운게 아닌데 추상화가 많이 되어서 내가 서버 기술을 모르더라도 쓸 수 있으니까 좋긴 한데...

    나같은 경우 서버 구축과 서버쪽 프로그래밍이 가능하고 도움을 좀 받아 저렴하게 만들수도 있는데 굳이 이용해야 하는지 의문도 든다. 괜히 내 자료도 다른 사람한테 뺏기는 것 같고.

    뭐.. 그래도 대세를 따라야지 ㅠㅠ

    나중에 서비스 뻑났을 때 손해배상 청구하기는 좋겠다.

    2012년 3월 28일 수요일

    win8] build 개발자 컨퍼런스 키노트 링크

    http://www.youtube.com/watch?v=RjG8CTHZtLU http://www.youtube.com/watch?v=WDmZa9TX_tA
    http://www.youtube.com/watch?v=79If1P2B23k




    http://www.youtube.com/watch?v=ctBfEOjGgdc   스티브발머
    http://www.youtube.com/watch?v=af16ZoF9yPI        중뵉

    2012년 3월 27일 화요일

    win8] UAC 기능 끄기

    User Account Control 기능 끄기.
    모든 프로그램을 관리자 권한으로 실행 하기.

    http://social.technet.microsoft.com/Forums/en-US/winserversecurity/thread/0aeac9d8-3591-4294-b13e-825705b27730/

    요기 있삼.

    regedit해서 Ctrl+F 누르고 EnableLUA 찾으면 됨. 왜 UAC아 아니고 LUA일까...

    찾아서 0 으로 바꿔주면 오른쪽 트레이 쪽에서 컴터 다시 키라고 알림창이 하나 뜬다.

    재부팅 해주면 끝.

    뭐야 근데 메트로 앱 실행이 안되넹.

    2012년 3월 26일 월요일

    vs] visual studio 2011 iso download 다운로드

    http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=28975
    얼티밋
    놋북에 안 깔리네 ㅡㅡ;

    요건 express
    http://www.microsoft.com/visualstudio/11/ko-kr/downloads#express-win8

    2012년 3월 25일 일요일

    net] TTL 이란


    TTL : Time to Live

    객체 생존 시간 정도?

    nslookup
    하고
    set type = mx
    로 해서 찾으면
    메일 서버 관련 정보가 나온다.



    mx = mail exchange

    P.S IIS 5.0과 IIS 6.0은 20%의 성능차이가 난단다.

    linux] 메일 서버 상태 확인


    간단히 메일서버 상태 확인

    telnet 127.0.0.1 25
    helo
    mail from :test@test.com
    rcpt to :user@hha.com
    subject : 제목
    data
    .
    .
    .
    .



    1. open 상대방메일서버 아이피 25#
    - 상대방 메일서버 접속
    2. HELO 자기도메인명
    3. MAIL FROM: <보낸는사람 메일계정>
    4. RCPT TO: <받는사람 메일계정>
    5. DATA
    6. 메일내용 입력
    7. Enter(\r\n).Enter(\r\n)
    - 메일내용이 끝났다고 메일서버에게 알려주는 것
    8. QUIT
    - smtp 트랜젝션 종료 알림
    9. 텔넷 종료

    net] spf 레코드


    SPF 레코드란 DNS 서버에서 SMTP 서버가 정확한지 알아보는 것이다.

    포털 사이트 정책도 많이 바뀌어서 IP 등록을 해두지 않으면 sendmail로 포털 사이트로는
    메일을 보낼 수가 없게 되었다.

    스팸 때문이여.

    스팸은 메일 릴레이다.
    릴레이는 아무나 보낼 수 있다는 것인데
    메일 서버를 운영하는 운영자가 메일 릴레이가 되게 해두면
    필히~ 스팸 서버가 되어 마구 스팸을 뿌리게 된다.

    winsvr] 윈도우에서 인증기가 설치되어 있으면 컴퓨터 이름 변경이 안된다.


    - 윈도우에서 인증기가 설치되어 있으면 컴퓨터 이름 변경이 안된다.

    - 인증서는 대칭키와 비대치키가 있는데
    뭔지는 모르지만 PKI(개인키 공개키)는 비 대칭키란다.
    일반적으로 쓰는게 그건가 부지.

    윈도우 2000서버에서 SRV 레코드가 안 올라올때는 내렸다가 다시 올리란다.(AD구성할때)

    AD 구성

    dcpromo -> 테스트하고 -> DNS 체크하고(동적 업데이트 허용) -> 네트워크 정보(TCP/IP고급)에서 DNS 설정

    net stop nestlogon & net start netlogon

    하면 된다.
    -------------

    Tip : cmd에서 net share는 공유폴더를 본다.

    linux] rm으로 지운 파일 복구


    rm 으로 지운 파일을 복구 하는 방법도 있다.

    debugfs
    open /dev/hda1 (에꺼 지웠으면)
    해서
    lsdel
    하면 지운 목록이 나온다.

    dump <inode번호> /home/살릴파일명

    하면 된다.




    한다.

    난 안된다.

    vb] vb로 작성했던 진열대 경로 찾기.

                MartBoard(ox + 3, oy).Status = 42
    flagIsNotEmpty = False
    End If

    '*************
    '알고리즘 부분
    '*************

    '다음 경로가 비어 있는 경우 flag 세팅(가장 가까운 곳으로 뻗어 나간다)
    '같은 경우 아래로
    If PassageBoard(oPassage + 1).top = 0 And PassageBoard(oPassage + 1).bottom = 0 Then

    flagIsNotEmptyNextPassage = False '플래그 세팅 해주고

    If flagStart Then
    If PassageBoard(oPassage).top >= (DisplayStandY \ 2) Then
    flag1Next = False
    Else: flag1Next = True
    End If
    End If

    If Not flagStart Then
    If PassageBoard(oPassage).bottom >= (DisplayStandY \ 2) Then
    flag1Next = False
    Else: flag1Next = True
    End If
    End If
    End If

    '다음 경로가 비어있지 않고 지금 통로도 비어있지 않는 경우
    If flagIsNotEmptyNextPassage And flagIsNotEmpty Then
    If flagStart Then
    o1 = PassageBoard(oPassage).top + PassageBoard(oPassage + 1).bottom - 1
    o2 = 2 * (DisplayStandY - 2) - PassageBoard(oPassage + 1).top - PassageBoard(oPassage + 1).top
    Else
    o1 = PassageBoard(oPassage).bottom + PassageBoard(oPassage + 1).bottom - 1
    o2 = 2 * (DisplayStandY - 2) - PassageBoard(oPassage + 1).bottom - PassageBoard(oPassage + 1).top
    End If


    End If

    test3.Caption = test3.Caption & vbCr & oPassage & "통로 " & o1 & " " & o2


    '***********
    '그리기 부분
    '***********

    '#############
    '통로 시작이 올라가는 부분.
    If flagStart And flagIsNotEmpty Then

    '꺽고
    MartBoard(ox, oy).Status = 41

    '올려준다.
    For oy = oy - 1 To PassageBoard(oPassage).top Step -1
    MartBoard(ox, oy).Status = 13
    Next oy
    ' MartBoard(ox, oy).Status = 32
    oy = oy + 1


    '다음이 내려가면
    If Not flag1Next Then
    MartBoard(ox + 1, oy).Status = 43
    For oy = oy + 1 To DisplayStandY - 2
    MartBoard(ox + 1, oy).Status = 13
    Next oy

    End If


    '다음이 올라가면
    If flag1Next Then
    MartBoard(ox + 1, oy).Status = 41
    For oy = oy - 1 To 0 Step -1
    MartBoard(ox + 1, oy).Status = 13
    Next oy
    oy = oy + 1
    End If

    End If



    '통로 시작이 내려가는 부분.
    If Not flagStart And flagIsNotEmpty Then

    '꺽고
    MartBoard(ox, oy).Status = 43

    '내려준다.
    For oy = oy + 1 To PassageBoard(oPassage).bottom
    MartBoard(ox, oy).Status = 13
    Next oy
    oy = oy - 1


    '다음이 내려가면(위에꺼랑 같은데 밖으로 뺄수 있을지 고민 TODO )
    If Not flag1Next Then
    MartBoard(ox + 1, oy).Status = 43
    For oy = oy To DisplayStandY - 2
    MartBoard(ox + 1, oy).Status = 13
    Next oy

    End If


    '다음이 올라가면
    If flag1Next Then
    MartBoard(ox + 1, oy).Status = 41
    For oy = oy To 0 Step -1
    MartBoard(ox + 1, oy).Status = 13
    Next oy
    oy = oy + 1
    End If

    End If


    MartBoard(ox + 1, oy).Status = 42
    MartBoard(ox + 2, oy).Status = 42
    MartBoard(ox + 3, oy).Status = 42
    ox = ox + 4

    ' TODO



    Next oPassage




    displayStand_Paint







    End Sub
    '##############
    '폼 로드
    '##############
    Private Sub Form_Load()
    first_defind
    first_method


    End Sub
    '##############
    '처음 시작 묶음
    '##############
    Private Sub first_method()
    Dim i, j, k As Integer
    Dim c As Integer
    Dim StatusCount As Integer
    Dim NumCount As Integer

    'displaystand 지움
    displayStand.Cls


    '카트판 데이터 메모리 할당
    ReDim MartBoard(0 To DisplayStandX - 1, _
    0 To DisplayStandY - 1)


    '수평 수직 숫자 데이터 메모리 할당
    ReDim GameNumH(0 To DisplayStandY - 1)
    ReDim GameNumV(0 To DisplayStandX - 1)


    '진열대 크기 초기화
    displayStand.Width = DisplayStandX * TileSizeX + 2 * 2
    displayStand.Height = DisplayStandY * TileSizeY + 2 * 2

    '통로 정보 초기화
    ReDim PassageBoard(0 To Passage - 1)


    path_setting
    displayStand_Paint
    End Sub
    '################
    '새작업 버튼 클릭
    '################

    Private Sub cmdChangeDisp_Click()

    Form_Load
    cmdRandomSetting.Enabled = True
    cmdReturn1.Enabled = True
    cmdTraversal.Enabled = True



    End Sub
    '##############
    '랜덤 세팅 설정
    '##############
    Private Sub cmdRandomSetting_Click()
    Dim i, j, k As Integer
    Dim c As Integer
    Dim StatusCount As Integer
    Dim NumCount As Integer



    For i = 0 To DisplayStandY - 1
    For j = 0 To DisplayStandX - 1
    If Int(Rnd() * 1.1) = 0 Then c = 0 Else c = 1
    MartBoard(j, i).Status = c
    MartBoard(j, i).Disp = 0
    Next j
    Next i





    passageSetting
    path_setting
    'displayStand.Refresh
    'picBoard.Refresh
    displayStand_Paint
    'cmdRandomSetting.Enabled = False


    End Sub

    '#############
    'Return policy
    '#############
    Private Sub cmdReturn1_Click()

    'Dim MartBoard_copy() As TBoard
    'MartBoard_copy() = MartBoard()
    path_setting
    passageSetting
    displayStand_Paint

    Dim i, j, k As Integer
    Dim x, y As Integer

    x = 1

    For i = 0 To (DisplayStandX - 1)
    If MartBoard(i, DisplayStandY - 2).Status = 0 Or MartBoard(i, DisplayStandY - 2).Status = 1 Then
    MartBoard(i, DisplayStandY - 1).Status = 42
    End If
    Next i

    For i = 0 To Passage - 1
    If PassageBoard(i).isEmpty Then
    MartBoard(x, DisplayStandY - 1).Status = 42
    MartBoard(x + 1, DisplayStandY - 1).Status = 42
    Else
    MartBoard(x, DisplayStandY - 1).Status = 41
    MartBoard(x + 1, DisplayStandY - 1).Status = 12
    MartBoard(x, PassageBoard(i).top).Status = 32
    MartBoard(x + 1, PassageBoard(i).top).Status = 43
    For j = DisplayStandY - 2 To PassageBoard(i).top + 1 Step -1
    MartBoard(x, j).Status = 13
    MartBoard(x + 1, j).Status = 13
    Next j

    End If
    x = x + 4
    Next i

    displayStand_Paint
    'MartBoard() = MartBoard_copy()

    ' cmdRandomSetting.Enabled = False
    ' cmdReturn1.Enabled = False
    ' cmdTraversal.Enabled = False
    End Sub
    '################
    'Traversal policy
    '################
    Private Sub cmdTraversal_Click()
    path_setting
    passageSetting
    displayStand_Paint
    Dim i As Integer, j, k As Integer
    Dim x, y As Integer
    Dim isBottom, isNeedChange As Boolean
    Dim passageNum As Integer

    Dim test1, test2

    isBottom = True
    isNeedChange = False
    passageNum = 0
    x = 1

    isBottom = True

    For i = 0 To Passage - 1

    If PassageBoard(i).isEmpty Then
    If isBottom Then
    MartBoard(x - 1, DisplayStandY - 1).Status = 42
    MartBoard(x, DisplayStandY - 1).Status = 42
    MartBoard(x + 1, DisplayStandY - 1).Status = 42
    MartBoard(x + 2, DisplayStandY - 1).Status = 42
    Else
    MartBoard(x - 1, 0).Status = 42
    MartBoard(x, 0).Status = 42
    MartBoard(x + 1, 0).Status = 42
    MartBoard(x + 2, 0).Status = 42
    End If
    Else

    If isBottom Then

    MartBoard(x - 1, DisplayStandY - 1).Status = 42
    MartBoard(x, DisplayStandY - 1).Status = 41
    MartBoard(x + 1, 0).Status = 42
    MartBoard(x + 2, 0).Status = 42
    MartBoard(x, 0).Status = 32
    For j = DisplayStandY - 2 To 1 Step -1
    MartBoard(x, j).Status = 13
    Next j
    Else
    MartBoard(x - 1, 0).Status = 42
    MartBoard(x, DisplayStandY - 1).Status = 12
    MartBoard(x + 1, DisplayStandY - 1).Status = 42
    MartBoard(x + 2, DisplayStandY - 1).Status = 42
    MartBoard(x, 0).Status = 43

    For j = DisplayStandY - 2 To 1 Step -1
    MartBoard(x, j).Status = 13
    Next j
    End If
    isBottom = Not isBottom
    End If
    x = x + 4
    Next i
    '*************************************************
    '변경된 스펙:위에서 끝나는 경우 아래쪽으로 내린다.
    ' 지우고 다시 그리기
    '
    '*************************************************

    Dim f1, f2, k2

    If MartBoard(DisplayStandX - 1, 0).Status = 42 Then


    For i = 0 To DisplayStandX - 1
    If MartBoard(i, 0).Status = 32 Then
    j = i
    End If
    Next i

    'j 지우는 곳의 마지막 X좌표를 가지고 있다.

    '지워보세~
    For k = DisplayStandX - 1 To j Step -1
    MartBoard(k, 0).Status = 2
    Next k

    '양쪽에 물건 검사
    For f1 = DisplayStandY - 1 To 1 Step -1
    If MartBoard(j - 1, f1).Status = 1 Or MartBoard(j + 2, f1).Status = 1 Then
    f2 = f1
    End If
    Next f1
    'f2 지우는 곳의 마지막 y 좌표를 가지고 있다.

    '지워보세~
    For k2 = 0 To f2 - 1
    MartBoard(j, k2).Status = 2
    Next k2

    '다시 그려보세~
    MartBoard(j, k2).Status = 32
    MartBoard(j + 1, k2).Status = 43
    For i = k2 + 1 To DisplayStandY - 1
    MartBoard(j + 1, i).Status = 13
    Next i

    For i = j + 1 To DisplayStandX - 1
    MartBoard(i, DisplayStandY - 1).Status = 42
    Next i

    MartBoard(j + 1, DisplayStandY - 1).Status = 12



    End If '* 스펙 변경 IF문








    displayStand_Paint
    ' cmdRandomSetting.Enabled = False
    ' cmdReturn1.Enabled = False
    ' cmdTraversal.Enabled = False


    End Sub
    '############################
    '일반 좌표를 통로 좌표로 변환
    '1000 까지 인식(아직 사용 안함).
    '############################
    Private Function convertToPassage(num As Integer)
    Dim i, j, k As Integer

    j = 1
    k = 1

    For i = 1 To 1000 Step 4
    If num = i Or num = i + 1 Then
    k = j
    End If
    j = j + 1
    Next i


    convertToPassage = k

    End Function
    '################################
    '진열대 마운스 다운 이벤트 핸들러
    '################################
    Private Sub displayStand_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim IconNum As Integer

    '커서를 타일 좌표로 변환
    curX = x \ TileSizeX
    curY = y \ TileSizeY

    '범위를 벗어나면 종료
    If curX < 0 Or curX >= DisplayStandX Or _
    curY < 0 Or curY >= DisplayStandY Then Exit Sub

    If MartBoard(curX, curY).Status = 2 Then Exit Sub
    Select Case Button
    Case 1: '좌측버튼
    If MartBoard(curX, curY).Status = 0 Then
    IconNum = 1
    Else
    IconNum = 0
    End If
    End Select

    setIcon curX, curY, IconNum

    End Sub


    '#############
    '진열대 그리기
    '#############
    Private Sub displayStand_Paint()

    Dim i, j As Integer

    For i = 0 To DisplayStandY - 1
    For j = 0 To DisplayStandX - 1
    If MartBoard(j, i).Status = 0 Then
    displayStand.PaintPicture imgIcon, j * TileSizeX, i * TileSizeY, _
    TileSizeX, TileSizeY, 0, MartBoard(j, i).Disp * TileSizeY, _
    TileSizeX, TileSizeY
    ElseIf MartBoard(j, i).Status = 1 Then
    displayStand.PaintPicture imgIconChecked, j * TileSizeX, i * TileSizeY, _
    TileSizeX, TileSizeY, 0, MartBoard(j, i).Disp * TileSizeY, _
    TileSizeX, TileSizeY
    ElseIf MartBoard(j, i).Status = 2 Then
    displayStand.PaintPicture imgIconPath, j * TileSizeX, i * TileSizeY, _
    TileSizeX, TileSizeY, 0, MartBoard(j, i).Disp * TileSizeY, _
    TileSizeX, TileSizeY
    ElseIf MartBoard(j, i).Status = 43 Then
    displayStand.PaintPicture imgIconLeftToDown, j * TileSizeX, i * TileSizeY, _
    TileSizeX, TileSizeY, 0, MartBoard(j, i).Disp * TileSizeY, _
    TileSizeX, TileSizeY
    ElseIf MartBoard(j, i).Status = 42 Then
    displayStand.PaintPicture imgIconFlat, j * TileSizeX, i * TileSizeY, _
    TileSizeX, TileSizeY, 0, MartBoard(j, i).Disp * TileSizeY, _
    TileSizeX, TileSizeY
    ElseIf MartBoard(j, i).Status = 41 Then
    displayStand.PaintPicture imgIconLeftToUp, j * TileSizeX, i * TileSizeY, _
    TileSizeX, TileSizeY, 0, MartBoard(j, i).Disp * TileSizeY, _
    TileSizeX, TileSizeY
    ElseIf MartBoard(j, i).Status = 32 Then
    displayStand.PaintPicture imgIconDownToRight, j * TileSizeX, i * TileSizeY, _
    TileSizeX, TileSizeY, 0, MartBoard(j, i).Disp * TileSizeY, _
    TileSizeX, TileSizeY
    ElseIf MartBoard(j, i).Status = 12 Then
    displayStand.PaintPicture imgIconUpToRight, j * TileSizeX, i * TileSizeY, _
    TileSizeX, TileSizeY, 0, MartBoard(j, i).Disp * TileSizeY, _
    TileSizeX, TileSizeY
    ElseIf MartBoard(j, i).Status = 13 Then
    displayStand.PaintPicture imgIconVertical, j * TileSizeX, i * TileSizeY, _
    TileSizeX, TileSizeY, 0, MartBoard(j, i).Disp * TileSizeY, _
    TileSizeX, TileSizeY


    End If

    Next j
    Next i

    End Sub
    '################
    '진열대 경로 세팅
    '- empty_path -
    '################
    Private Sub path_setting()
    Dim i, j, k As Integer

    '경로 끝나는 부분의 X좌표
    k = 2

    '첫줄, 마지막줄 세팅
    For i = 0 To DisplayStandX - 1
    MartBoard(i, 0).Status = 2
    MartBoard(i, DisplayStandY - 1).Status = 2
    Next i

    '진열대 사이 세팅
    For i = 1 To DisplayStandX - 1
    For j = 0 To DisplayStandY - 1
    MartBoard(i, j).Status = 2

    Next j

    If i = k Then
    k = k + 4
    i = i + 2
    End If
    Next i

    End Sub
    '###########
    '아이콘 세팅
    '###########
    Private Sub setIcon(x As Integer, y As Integer, IconNum As Integer)

    MartBoard(x, y).Status = IconNum

    If MartBoard(x, y).Status = 0 Then
    displayStand.PaintPicture imgIcon, x * TileSizeX, y * TileSizeY, _
    TileSizeX, TileSizeY, 0, MartBoard(x, y).Disp * TileSizeY, _
    TileSizeX, TileSizeY
    Else
    displayStand.PaintPicture imgIconChecked, x * TileSizeX, y * TileSizeY, _
    TileSizeX, TileSizeY, 0, MartBoard(x, y).Disp * TileSizeY, _
    TileSizeX, TileSizeY
    End If




    End Sub

    '#################
    'passage 정보 세팅
    '-----------------
    '진열대 좌/우 정보를 읽어서 통로의 정보를 세팅한다.
    Private Sub passageSetting()
    Dim a, b, c As Integer
    Dim i, j As Integer
    Dim top, bottom As Integer

    b = 0
    c = b + 3
    top = 0
    bottom = 0

    'top 정보 세팅
    For a = 0 To Passage - 1
    For i = (DisplayStandY - 2) To 1 Step -1
    If MartBoard(b, i).Status = 1 Then top = i
    If MartBoard(c, i).Status = 1 Then top = i
    Next i
    If top = 0 Then
    PassageBoard(a).top = top
    PassageBoard(a).isEmpty = True
    Else
    PassageBoard(a).top = top
    PassageBoard(a).isEmpty = False
    End If
    top = 0
    b = b + 4
    c = b + 3
    Next a


    'bottom 정보 세팅
    b = 0
    c = b + 3

    For a = 0 To Passage - 1

    For i = 1 To (DisplayStandY - 2) Step 1
    If MartBoard(b, i).Status = 1 Then bottom = i
    If MartBoard(c, i).Status = 1 Then bottom = i
    Next i

    If PassageBoard(a).isEmpty = False Then
    PassageBoard(a).bottom = bottom
    Else: PassageBoard(a).bottom = 0
    End If

    bottom = 0
    b = b + 4
    c = b + 3
    Next a


    'TODO: 디버깅 코드
    Text1.Text = " "
    For a = 0 To Passage - 1
    Text1.Text = Text1.Text & " " & PassageBoard(a).top
    Next a


    For a = 0 To Passage - 1
    Text1.Text = Text1.Text & " " & PassageBoard(a).bottom
    Next a
    End Sub

    linux] advenced linux programming 책 공짜

    http://www.advancedlinuxprogramming.com
     
     
    가면 공짜 PDF ~

    secmem] 삼성 소프트웨어 멤버십

    일년에 두번 뽑는데 기준은 조금씩 바뀌니까 홈페이지 들어가서 보는게 좋다.
    부산에서 17기가 하반기 공채 들어갈 때는 멤버십 인원 빼고 부산대(부산에는 부산대가 짱)
    컴공에서 삼성 입사자는 한명도 없었다.
     참고로 난 그 담해 상반기 공채였고 인성면접 같이 간 5명 중에 3명 떨어졌다. 상반기는 멤버십 TO를 따로 두지 않기 때문에 같이 경쟁해야 한다.

     지역에 따라 나름 파벌 심함.

    멤 회장이랑 같이 입사하지 말자면서 싸웠던 기억이 난다. 멤버십을 위한 길이 무엇이냐며 이야기 하다가...

     면접관으로도 있어 봤지만.

    지금은 사실 입사  root로 밖에 안 보인다. 파벌도 파벌이지만 지인이 만들어 주는 경우 자기께 아닌데 들고 나오는 경우 등등 상식밖의 것들도 많다.
     이런 이유로 7번이나 지원해서 떨어지는 실력있는 애들도 있다.

    하지만 시간이 지나보니 합격을 하던 안하던 자기 개발 한 애들에 나중에 빨리 달리더라. 대학원 진학해서 삼성 들어와서 더 빨리 진급하는 케이스가 그런 케이스. 아님 구글이나 IBM  가는 애들(사실 개발직군 대우만 봐도 비교가 안된다)

    그러나 조금 늦을 때 고민이 상당한 것은 사실이다. 누군가 고민이 되면 댓글을 남겨주면 내가 조금은 조언을 해 줄 수 있을 것 같다.

    그렇다고 그 사람에게 좋은거냐? 아니, 내가 들어와서 보니 멤 출신은 공채 출신 애들이 성장할 수 있는 스팀팩 역할을 하더라. 그렇게 쓰여지고 자기 개발 없는자는 버려지는 것이니 피차 마찬가지다.

    이유야 떠나서 이런 제도를 만든 사람은 정말 창조적인 사람인 것 같다.

    다른 문제점들을 떠나서 대한민국 IT 발전에 확실히 기여한 건 사실이다.
    ----------------

    삼성 소프트웨어 멤버쉽

    선발시기 : 년 2회 (6월, 12월 서류접수)
    모집대상 : 4년제 대학(원) 재학생
    모집인원 : 각 지역별 00명
    해당지역 : 소속학교 기준으로 지역을 구분함

    S/W, H/W : 본인이 직접(공동) 개발한 프로그램
    Multi Media : Design 포트폴리오

    (서류전형에 합격한 분에 한해 기술면접을 수행할 때 필요한 사항입니다.)

    열심히 연구 개발 가능한자
    C/C++ 가능자 우대
    S/W 관련 학과, 전기전자, 수학, 물리등 전공불문
    국내외 공모전 수상자 우대
    S/W 관련 특정분야 기술 보유자 우대
    현제 전규 4년제 대학이나 대학원 재학중인자
    졸업전 1년이상 회원 활동이 가능한 자

    인터넷 서류지원 : 삼성전자와 S/W멤버십 홈페이지에 들어가서
    지원서 양식에 맞게 서류를 작성
    S/W 멤버십 홈페이지 : (http://www.secmem.org)
    삼성전자 홈페이지 : (http://www.sec.co.kr)서류 지원

    인터넷으로 접수한 지원서 내용으로 실시
    당사 채용 기준에 준하여 전형 (허위 기재시 합격 취소)

    S/W 개발 능력 검증을 위한 제출된 작품위주의 구술 면접 실시
    학교 과제, 아르바이트 개발물, 창의적 작품
    전문기술, 직무동기) 평가 실시

    S/W멤버십 회원으로서 적합한 '인격체'인지를 중점으로 평가함
    인간미, 도덕성, 가치관, 기업관, 조직관, 주인의식등
    인성을 평가하는 면접입니다.

    단계를 모두 합격한 사람에 한해 당사 기준으로 실시함

    blogger] facebook 팝업...

    googld MAP 나오는 가젯을 달아 놨더니 자꾸 페이스북 뭐시기 에서

    팝업이 뜬다.

    그래서 날려 버렸다.

    linux] 이 정도 이름은 알아둬야.


    [1] GNU Toolkit
    1) Binutils
    2) GCC
    3) GDB
    4) c, c++ library


    [2] 디버깅 도구
    1) GDB
    2) DDD
    3) kdbg
    4) ldd
    5) strace
    6) ltrace
    7) checker


    [3] 시간측정, 성능평가도구
    1) time
    2) gprof
    3) calls


    [4] 자동 컴파일링 도구
    1) make
    2) m4
    3) Automake
    4) Autoconf

    [5] 인터페이스 만들기 도구
    1) Xt
    2) Motif/Lesstif
    3) Xaw3D
    4) Tcl/Tk
    5) QT
    6) GTK+


    [6] 버전 관리 도구
    1) CVS
    2) RCS
    3) SCCS


    [7] 파일 패치 & 들여쓰기
    1) patch
    2) diff
    3) indent

    linux] 패킷 분석 프로그램 링크.

    http://www.linux.co.kr/home/lecture/?leccode=10592
    퍼옴

    프로그램명 : The Ethereal Network Analyzer
    파 일이름 : ethereal-0.10.14 / libpcap 0.8.3
    운 영체제 : X 환경의 유닉스
    라 이센스 : GPL
    홈 페이지 : http://www.ethereal.com

    이 번 강좌는 etherpeak나 sniffer 등 처럼 이더넷 카드를 통해 나가고 들어오는 팻킷을 스니핑 할 수 있는 프로그램인 Ethereal에 관해서 rpm
    설 치와 사용방법및 특징을 되짚어 보는 시간을 가진다.

    처음에 리눅스 데스크탑을 사용하면서 인터넷 메뉴의 첫 아이콘으로 Ethereal를 볼 수 있었는데 처음엔 먼가 했다가 특별히 프로그램을 구해서 설치해야만 볼수있는 스니핑 기능을 CentOS에서 기본으로 Ethereal이 제공
    되 어져있다는 것을 알았으며 실제로 아이디와 패스워드정보의 패킷이 잡히는지 테스트해 본 기억이 난다.(그대로 잡힌다.)

    그 럼 Ethereal를 간단히 정의하면 네 트워크 팻킷분석기이 다. Ethereal는 네트워크 (eth0, eth1...)를 지나가는 패킷들을 캡쳐하려고 할것이고 그 패킷을 다양한 형태로 결과물을 보여준다. 설치와 기능을 살펴보면서
    이 형태들을 살펴볼것이며 이러한 프로그램을 쓰는 목적은 네트워크 문제를
    해 결하기 위해서 이것을 사용할 것이며 보안 관련 엔지니어들은 보안적인 측면에서 시험하기 위해 사용할수도 있다. 개발자들은 프로토콜 구현에 있어
    디 버그를 하기 위해서 Ethereal와 같은 프로그램을 사용 가능하다.
    눈 에 보이지 않는 팻킷을 보고 그 패킷이 어떤 정보를 담고 있으며 어떤 서비스에서 나간것인지를 알려주므로 정말 유용한 프로그램이 아닐 수 없다.

    아 래는 Ethereal이 제공하는 많은 특성들중의 일부이다.
    ㅇ 네트워크 인터페이스로부터 활 동 중 인 패킷 데이터를 캡쳐한 다.
    ㅇ 매우 상 세한 프로토콜 정보를 가지고 패킷들을 표현한 다.
    ㅇ 캡 쳐된 패킷 데이터를 열고 저장한 다.
    ㅇ 많은 다른 캡쳐 프로그램들로부터 패 킷 데이터를 임포트하 고,
    그 프로그램들에게 익 스포트 한다.
    ㅇ 많은 기준에 대해서 패 킷을 필터링한 다.
    ㅇ 필터들에 근거한 패킷 표현을 칼 라화한 다.
    ㅇ 다 양한 통계를 생성한다.

    이 제 Ethereal이 무엇인지 어떠한 특징이 있는지 어떻게 사용 될 수 있는지를 살펴보았다. Ethereal 의 공식 홈피이지인 (www.ethereal.com)
    서 최신버전인 ethereal-0.10.14를 다운받고 이 페키지를 설치하기위해
    필 요한 libpcap 0.8.3 도 염두해두고 설치를 시작한다.

    최 소산의 플랫폼들
    리 눅스
    ㅇ Debian GNU/Linux
    ㅇ Gentoo Linux
    ㅇ IBM S/390 Linux(RedHat)
    ㅇ Mandrake Linux
    ㅇ PLD Linux
    ㅇ Red Hat Linux
    ㅇ Rock Linux
    ㅇ Rock Linux
    ㅇ Slackware Linux
    ㅇ Suse Linux
    다 운로드 화면이다. ( http://www.ethereal.com/download.html )
    Windows, Red Hat / Fedora , Solaris, Source Code 등의 카테고리가 있음을 알수가 있다 .원하는 플렛폼에 맞게 선택할 수 있다.

    안 에 보면 All Version 이라하여 버전별로 의존성걸리는 페키지들까지
    모 두 있으며 시그너쳐파일도 보인다. 여기서 의존성걸리는것을 모두
    받 아 설치해도 되고 (미리 설치하는 것 보다 설치하다가 의존성걸리면 찾아
    설 치 하는것이 더 좋겠다.)
    아 니면 아래처럼 자신의 시스템의 설치씨디가 있으면 마운트 하여 rpm을
    구 할수 있다.
    마 운트 후
    cd /mnt/cdrom/CentOS/RPMS
    rpm -ivh glib-1.2.6-3.i386.rpm
    rpm -ivh glib-devel-1.2.6-3.i386.rpm
    rpm -ivh gtk+-1.2.6-7.i386.rpm
    rpm -ivh gtk+-devel-1.2.6-7.i386.rpm
    rpm -ivh libpcap-0.4-19.i386.rpm

    위 의 페키지들이 필요하며 아마 데스크탑으로 설치를 했다면 libpcap 페키지
    빼 고는 대부분 설치가 되어있을 것이다.
    (rpm -qa | grep 찾을패키지명 또는 일부명 : 패키지가 설치되어있는지 검색)

    그 럼 glib, gtk+-devel, gtk+ 가 설치되어있는 서버에서 테스트하므로

    우 선 이렇게 설치해준다.(의존성에 걸리면 그 패키지 위과같은 방법으로 찾아 설치 해준다.)

    패 킷을 잡을수있도록 해주는 패키지 설치
    # rpm -ivh libpcap-0.8.3-10.RHEL4.rpm

    Ethereal 설치
    # rpm -ivh ethereal-0.10.14-1.EL4.1.rpm

    TIP)
    설 치시 의존성이 가장 문제일 것 이다. 위에서 제시한데로
    의 존성 걸리는 패키지들을 일단 확보한다. 그러나 모든 의존성 페키지들이
    다 한자리에 있는데도 서로 설치가 않되어서 그 어떻한 패키지를 먼저 설치해도 설치가 않되는 경우가 있다. 그럴때는
    rpm -ivh *.rpm 이런식으로 몽땅해라라고 명령을 내리면 속시원히
    설 치됨을 볼 수 있다. 또 한가지 yum 업데이트를 이용하여 설치하는 방법도 있다.
    사 실 이방법이 가장 간편하면서 빠른 방법으로 yum 업테이트가 되는 상황이라면 (안되면 yum 도 설치가능하니 설치하면 된다.)
    다 음과 같은 형식으로 설치하거나 업데이트 할 수 있다.

    # yum install [설치하고싶은 페키지명]

    이 정도면 여러 방면으로 설치 할 수 있는 방법을 알려준 것 같다.
    Ethereal 의 세부적인 기능은 홈페이지에서만 보더라도 꾀 많은 문서로 양이 많다. 흔히 사용하고 굴직한 기능들만 보도록 하고 자세한건 직접 건드려 보길바란다.
    먼 저 인 터텟 - Ethereal Network Analyzer 실 행한다.
    실 행 후 먼저 help - About Ethereal을 클릭하면 위와같은 정보를 볼수가
    있 다. GTK+, GLib, libpcap, libz, Net-Snmp 그리고 마지막으로해당 서버
    의 시스템 버전이 나온다. 그리고 첫줄에서 Ethereal의 Version 0.10.14 버 전
    도 확인 할 수 있다.
    그 럼 눈에 바로 보이는 큰 아이콘 부터 보자

    처 음에 보이는 것이 Interfaces 이다. 클릭하면 다음과 같은 화면을 만날 것이다.
    자 실행시킨 위 그림을 보면 Device 라하여 eth0 any, lo 라는것이 명시되고 만약 렌카드가 두게면 eth1도 있을것이다 그 device에 대한
    설 명과 IP ,Packets량의 정보가 보인다.오른쪽에 Capture에 살짝 마우스를
    올 리면 즉시 팻킷캡쳐를 한다는 메세지를 볼수가 있고 클릭시 다음과 같이
    서 비스 프로토콜별로 패킷을 양과 % 를 볼수있으면 캡쳐를시작한지로 부터
    경 과된 시간도 보인다.
    TCP 와 UDP 프로토콜이 지배적으로 사용되며 패킷량을 보여준다.
    그 럼 이 화면이 과연 정말 맞는것일까 하는 의문에 실제로 팻킷을 발생시켜
    보 았다.

    이 캡쳐창을 한쪽으로 계속 보고있는 가운데 인터넷창을 띄워보자 그 다음
    각 종 링크를 클릭한다든지 이벤트를 발생시키면 갑자기 TCP 의 상황바가
    올 라가면서 다른것들이 조금씩 줄어드는것을 볼 수 있을것이다.
    이 메일 역시 보내보면 UDP가 올라가는것을 볼 수 있다.
    우 리는 장치별로 본다음 그 장치에서 나가는 패킷을 프로토콜 종류로 보았다.
    그 럼 이 창을 종료를 해보자 아주 재미있는것이 나온다. 통계로만 보았던
    패 킷이 내용과 함께 색깔별로 잘 정리되어 시간 ,시작IP , 대상IP Protocol
    그 리고 내용까지 각 항목별로 정렬가능하게 나오면 아래에는 더 세부적인
    내 용까지 제공해준다. 심지어는 임의 사이트에 로그인을 했을시 아이디와
    페 스워드까지 나오는 것을 보았을때 나는 입을 다물지 못했다. 처음
    사 용목적에서 기술했듯이 이런 기능들이 있기에 많은 활용이 되는 것이다.

    정보를 보존하고 싶으면 다시 Interface를 선택하고 캡쳐하기를 클릭하면
    현 재까지의 패킷정보를 저장하고 시작할것이지 버리고 새로 시작할
    것 인지 묻는다. 그때 저장하면 된다. (저장옵션도 있으니 유심히 보길)
    색 깔도 사용자가 바꿀수 있다 view 메뉴에 coloring rules에 보면 색깔별로
    내 용이 정의되어있다.

    그 럼 다음 아이콘은 Option 역시 그리 어렵지 않다. 말그대로 사용하면서
    옵 션을 줄 수 있다. 다음 그림을 보면 이해가 더 쉬울것이다.

    위 의 화면에서 Option 을 클릭하면 위와같이 Capture Option 팝업이 뜨며
    여 기에서는 eth0 , 1 ,2 등의 네트워크 장치에 대해서 불규칙적인 패킷을 대상으로 캡쳐할수있으며 패킷키기의 제한을 줄 수 있다.
    그 리고 캡쳐를 할때 필터를 할수있으며 필터하는 옵션자체도 파일로 저장하여 사용할수 있다. Capture Filter 를 클릭하면 위화면 처럼 Capture Filter 팝업이 뜨면서 Filter 항목이 꼭 포토샵에서 Filter 종목을 고르듯 템플릿화 되어 제공되면 새로만들기 버튼을 눌러 자신만의 규칙을 만들수 있다. 그 외에도 Display Options, Stop Capture에서 자동으로 캡쳐를 중단할 기준을 셋팅할수도 있다.

    다 음 아이콘인 Star는 Interfaces에서 기능설명을 할때 캡쳐시작부분이 있었다. 그부분을 바로 실행기켜준다. 클릭하면 아까 보았던 창이
    다 시 보일것이다. (물론 한번 한상태면 현재상태를 저장하고 다시시작할건지 버리고 다시 시작할건지 물어본다.)
    다 음 아이콘인 Stop와 Restart는 Start 를 하고 있는 상태에서만 활성화 되어있으면 기능은 캡쳐를 멈추고 다시시작하는 기능이다. 열기 아이콘은
    캡 쳐한것을 파일로 자장할수있다고 하였다. 클릭하게 되면 파일브라우져가 떠서 캡쳐가 저장된 파일을 찾을수있도록 해준다.

    기 본적인 기능들을 살펴보았다.
    큰 아이콘이아닌 위의 메뉴로 살펴보면 좀더 섬세하고 많은 기능들이 있다.
    좀 더 많이 프로토콜에 대해서 셋팅을 할수있고 I.O 그래프도 그릴수 있다.
    운 영체제를 설치하면서 이런기능에 좋은 인터페이스의 프로그램이 기본으로
    설 치된다는것에 다시한번 놀라면서 리뷰를 마친다.




    참 고자료 : http://www.ethereal.com/docs/eug_html_chunked
    TEST OS : CentOS 4.2 Final [Kernel 2.6.9-22 EL]
    작 성자 : 수퍼유저코라아 서버관리팀 안재성(mymaster@superuser.co.kr)

    linux] wine 얼마나 발전 했을까?

    예전에 작성한 글이 있어서 붙여 넣어 보고 한번 찾아 보았다.

    와인은 여전히 건재하구나(http://gun0123.tistory.com/299)

    이제 익스플로러가 되는가보네요.

    리눅스에서 익스플로러를 돌일일이 없는게 요즘엔 크롬이 워낙 좋아서.

    ------------------------------------------------------


    yum install wine

    와인 깔고
    nateon 받아서 설치해 보았다.
    마지막 부분에 에러가 난다.
    에러창 체크하면 깔렸던 파일이 지워지는데
    체크하기 전에 tar로 다 압축해뒀다가.
    다시 풀면
    실행이 된다!

    통합 메시지함도 잘되고... 접속도 잘되고.
    다만!
    채팅창에서 한글을 치는 순간 먹통된다.
    영어로만 대화해야 한다 ㅠ.ㅠ

    익스플로어는 설치는 되는데 죽어라고 실행이 안된다.

    기본적으로 깔리는 노트패드랑 레지스트리 편집기, 파일 탐색기는 너무 잘돈다.

    diary] 06. 10. 12 지난 다이어리

    6년 전 다이어리를 정리하다가 좋은 글을 썼었네.

    친구가 말해주더라.

    니가 지금 공부하고 있는 것들은 다 자기 합리화라고.

    맞다. 그래도 과 공부를 안 할수는 없다. 내가 사업을 하지 않고 직장인을 원하는 이상.

    약간의 후회가 될뻔도 했다. 내가 원하는 과는 따로 있었고 재수가 꿈이었는데.

    왜 과감하면 말하지 못했을까.

    하지만 당시 상황은 내가 대학 공부를 하기도 힘들었기에 지금 돌아간다 하더라고 똑같은

    선택을 할 수밖에 없을 것이다.

    지금까지의 내 선택은 Optimal 이었다.

    하지만. 친구 말이 맞다. 내가 꾸는 꿈은 너무 먼 곳에 있어서 한길만 달려도 모자르다. ㅠ.ㅠ

    그래서 꿈을 접기로 했다.

    언젠가 파일럿이 꿈이었던 한 선배가 라식을 해도 시력이 너무 안좋아서 날아가는 비행기만 봐도

    늘 눈물을 흘린다고 했다.

    하지만 난 다른 방향으로 생각할 수도 있다.

    시스템경영과 관련된 컴퓨터 시스템을 구축하고 싶다.

    그런 직업이 어떤 명칭을 가지게 될지는 모르지만 수많은 장점들과 사람들에게 도움될 일들이

    생각난다.

    밤에 이래저래 생각해봤다. 현실과 타협해 가는 .

    만일 전쟁중인 나라라면 내 하고 싶은 일을 할 수는 없는 일인것과 같이.

    eng] somebody calls for an exterminater?

    스타크레프트
    스타크래프트
    starcraft  대사

    테란 유닛의 대사 모음                                                   
    ┌─────────────────────────────────────┐
    *SCV                                                                                     
    SCV good to go, sir.             Reporting for duty                      
    SCV 출동 준비 끝!                임무 수행 준비 끝!                      
                                                                             
    Job finished..                   Orders received. Roger that             
    임무 완수, 작업 완료.            명령 접수 되었음. 알겠습니다!           
                                                                             
                                     I can't build it someone's in the way   
                                     누군가 길을 막아 건물을 지을 수 없습니다
    └─────────────────────────────────────┘
                                                   
    ┌─────────────────────────────────────┐
    *마린                                                                    
    Let's move.                      Checked up and good to go.              
    이동하자! 움직여!                확인 끝. 출동 준비 끝.                  
                                                                             
    Rock'n roll.                     Give me somebody to shoot.              
    출동!, 신나게 출동!              제거할 녀석 없습니까?                   
                                                                             
    Outstanding.                     Who wanna be a piece of meat, boy       
    놀랐습니다!                      누가 작살나길 원하는냐?                 
                                                                             
    Standing back.                                                           
    준비 완료!                                                               
                                                                             
    Go, go, go!                                                              
    잽싸게 움직이란 말야!,                                                   
    빨리 움직여!                                                             
    └─────────────────────────────────────┘
    ┌─────────────────────────────────────┐
    *파이어뱃                                                                
    Need a Light?                   You got my attention.                    
    태워버릴 것이 필요합니까?       신경 쓰이게 하네.                        
                                                                             
    Let's burn.                     Fire it up.                              
    태워버리자.                     태워버려!                                
                                                                             
    Who wanna yurn a be heated?                                              
    누가 열 좀 받고 싶어?                                                    
                                                                             
    └─────────────────────────────────────┘
    ┌─────────────────────────────────────┐
    *고스트                                                                  
    Ghost reporting.                Call the shoot.                          
    고스트가 보고한다.              한방 먹이자.                             
                                                                             
    Never know I'm here.            I'm Here.                                
    내가 여기 있는걸 절대 모를걸.   고스트 여기 있음.                        
                                                                             
    I Hear That.                    Somebody calls for an Exterminater?      
    알아들었음.                     누구 확실하게 끝내줄 사람이 필요합니까?  
                                                                             
    └─────────────────────────────────────┘
    ┌─────────────────────────────────────┐
    *시즈 탱크                                                               
    Yes, sir.                       Move it.                                 
    네, 대장님!                     이동!                                    
                                                                             
    Go, Siege.                      Absolutly.                               
    시즈 탱크 출동!                 완벽하게                                 
                                                                             
    Oestination.                    Eradiate, sir.                           
    공격 목표는?                    초토화하겠습니다, 대장님!                
    └─────────────────────────────────────┘
    ┌─────────────────────────────────────┐
    *골리앗                                                                  
    Goliath, on-line.               Target Oestination.                      
    송신 준비 완료, 골리앗!         공격 목표는?                             
                                                                             
    Coming on-line.                 Go Ahead, Tech on.                       
    송신이 오고 있음.               촐동하겠음.                              
                                                                             
    System functional.              Confirmed.                               
    시스템 작동중.                  확인됨.                                  
    └─────────────────────────────────────┘
    ┌─────────────────────────────────────┐
    *레이스                                                                  
    Go Ahead, Commander.            Attack Formation.                        
    알았습니다, 대장님.             공격 편대 준비!                          
                                                                             
    Transmit coordinate.            Report again.                            
    좌표 확인!                      송신 받았음.                             
                                                                             
    Standing Back.                  Wraith don't waiting up to orders.       
    일단 뒤로 물러서겠음.           레이스는 명령을 기다리지 않는다.         
    └─────────────────────────────────────┘
    ┌─────────────────────────────────────┐
    *드랍 십                                                                 
    Can I Take Orders?              Oestination?                             
    명령 수행 준비 완료!            목적지는?                                
                                                                             
    In transfer HQ.                 Buckle up.                               
    수송중임, 사령부.               안전벨트 착용.                           
                                                                             
    I Copy That.                    Strap yourselves in, boys.               
    명령 접수했음.                  꽉 잡으세요.                             
                                                                             
    In the by, by, by, by.                                                   
    알겠음.                                                                  
    └─────────────────────────────────────┘
    ┌─────────────────────────────────────┐
    *배틀크루저                                                              
    Good day, Commander.            Set a course.                            
    안녕하십니까? 대장님.           항로를 맞춰라.                           
                                                                             
    Receiving transmission.         Make it Happen.                          
    명령을 수행하겠음.              수행하겠습니다.                          
                                                                             
    Take it slow.                   Battlecruiser Operational.               
    천천히 움직여.                  배틀크루저 출동 준비끝.                  
                                                                             
    Got Cagey                                                                
    신중하게 해                                                              
    └─────────────────────────────────────┘

    알긴 알았었는데.

    몰랐었다.

    ... 내가 안다고 거짓말하고 있는 진실 투성이.

    bootcamp 지우기

    맥북 프로 레티나 터치바 diskutility 에서 bootcamp 파티션 삭제하면 검은색에서 회색으로 바뀐다(APFS로 지정) 파틴션 아이콘 클릭하여 - 버튼을 이용하여 삭제하면 끝.