[2015.08.22.1] 라즈베리 파이를 다시 꺼내다... 근황?

작년인가요 라즈베리파이를 구입해서 잠시 가지고 놀았는데...
전원과 랜선만 연결한 Headless 구성으로 사용하려고 시도했다가 실패하고 창고에 넣어두었었습니다.
라즈베리파이 한글입력기 iBus 사용시 XRDP 원격 접속하면 한글이 이상하게 입력되는 문제로 한참 삽질하고 이곳저곳에 질문글도 올렸었는데요...

오늘 꺼내서 한글입력기를 벼루로 설치하고 해보니 되네요. 기쁩니다.
Nabi 로 해도 된다고도 하는데...작년에 제가 Nabi 로 했을 때는 안 되었던 것 같거든요...
...어쩌면 라즈비안 문제일 수도 있을 것 같은데 그걸 시험하자고 다시 지우고 iBus를 설치해서 확인하기엔 체력이 너무...ㅜㅜ
(오늘 라즈베리 파이에 OS 설치하고 셋팅하는데 5시간 넘게 하고 있습니다. ㅜ.ㅜ)
성공해서 기쁘긴 한데... 슬프게도 이미 라즈베리 파이 2가 나왔다는 것...
일단 버티다가 라즈베리 파이 3가 나오면 사봐야 겠네요...
...물론 정말 못 견디겠으면 그 전에 사겠지요...라즈베리 파이가 참 애매한 포지션이었는데...
라즈베리 파이2는 좋다고 하더군요.

라즈베리 파이는 오버클럭 Turbo로 해도 원격으로 접속하면 엄청 느려집니다.
웹 서핑도 괴로울 정도...

아...책 소개를 해야 겠네요...
저같은 초보한테 너무 좋습니다...라즈베리 파이 설치 가이드...로 최고인 듯 합니다.

더 쓰려고 했는데 마누라님이 제 배를 보더니
'하루 벌어 먹고 사는 사람들도 있는데 이렇게 살면 안되는거야...그런 의미에서 운동하러 갈까? (방긋)'
...나갔다 와서 다시 써야 겠네요...

다녀왔습니다.
음...더 설치할 것이 없나 살피는데 뭐 더 할 것이 없네요.
음...크로스 컴파일 환경을 구축해서 개발은 윈도우 데스크탑에서 하고 실행파일은 라즈베리 파이로 복사해서 라즈베리 파이에서 실행하면 좋을 듯 한데요.
파일질라를 사용하여 SFTP로 연결하면 되는군요. ^^

이제 모니터, 키보드, 마우스 다 뺀 Headless 구성으로 사용할 수 있을 것 같네요. 기쁘네요.

라즈베리안 설치 가이드

한글 키보드 설정시 참고

한글 입력기 벼루시 참고

XRDP 설치 시 참고

SSH 설치 시 참고 (그런데 기본적으로 설치되어 있어서 안 해도 될 거 같네요...)

Putty받는 곳

Putty 접속시 한글 깨짐 해결법 참조 (근데 바꾸지 않았는데 터미널에서 한글 입력이 되네요...뭐지...)

라즈베리파이 ssh를 이용한 파일 전송


[2014.11.15] Visual Studio 2013 Community 버전... 근황?

Visual Studio Community 버전이 나왔습니다.
그래서 .Net 으로의 전향하려고 합니다.

델파이...좋은 개발도구입니다. 정말 좋습니다. RAD 로는 정말 최고입니다.
...솔직히 .Net 으로 전향하려는 현재도 윈도우 데스크탑 애플리케이션의 RAD 로는 최고라고 생각하고 있습니다.
그렇지만 Delphi XE2 이후의 버전들의 개발방향이 맘에 들지 않습니다. 그리고... 비쌉니다.
그래서 최근에 FreePascal 과 Lazarus 를 찾아서 잠시 해봤다가 혈압 올라서...어쩌나 하고 있던 상황이었는데...위 소식들을 듣고 때려치우고 .Net 을 공부하기로 했습니다.

오늘 .Net 카테고리를 만들고 글 하나 올렸습니다.
정수를 16진수로 변환하는 프로그램인데 동일한 동작을 하는 프로그램을 WinForm 과 Delphi XE2 로 각각 구현한 내용입니다.
뭐...UI, 소스, 참조 들만 달랑 들어있는 글입니다.

.Net 을 잘 모르는 상황이라 간단하기 그지없는 프로그램이지만 그럼에도 불구하고 열심히 구글링하면서 작성했습니다.
Object Pascal 과 C# 이라는 언어의 차이보다는 저런 유틸리티 클래스, 메소드 등을 몰라서입니다.

그리고 바로 그런 이유 때문에 동일한 기능을 하는 프로그램을 WinForm 과 델파이로 작성하고 그 내용을 올린 것이죠.

그런데 글을 올려보니 이게 꽤 귀찮네요. ;;

다음에는 뭘 해야 하려나...TCP 에코 서버 가 가능하다면 좋은데...제가 아직 C#의 TCP 쪽이 어색해서...;
그리고 델파이에서도 대부분 소켓 클래스로 안 하고 Indy 라는 블록킹 소켓 라이브러리를 사용해서 좀 그렇습니다.
.Net 에서는 SuperSocket 을 사용할 생각인데 아직 어떻게 설치하고 사용하는지 잘 모르겠습니다 ;;

음...현재는 간단한 계산기를 할까 생각 중인데...어찌될지...





[WinForm&DelphiXE2] 정수값을 16진수로 변환 (ExConvertStrToIntToHex) .NET

프로그램 기능
1. 정수값을 입력하고 버튼을 누르면 16진수 값을 출력
2. 정수값이 공백이면 출력하지 않는다.
3. 정수값이 아니면 에러 메시지를 띄운다.


WinForm


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;

namespace ExConvertStrToIntToHex1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnConvertToHex_Click(object sender, EventArgs e)
        {
            if (txtbxInt.Text.Trim() == "")
            {
                return;
            }

            try
            {
                Int64 value = Convert.ToInt64(txtbxInt.Text);

                txtbxHex.Text = String.Format("{0:X}", value);
            }
            catch (FormatException ex)
            {
                Debug.WriteLine("FormatException Message: " + ex.Message);

                MessageBox.Show("FormatException Message: " + ex.Message);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Exception Message: " + ex.Message);

                MessageBox.Show("Exception Message: " + ex.Message);
            }

        }
    }
}

Delphi XE2
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    edtInt: TEdit;
    btnConvertToHex: TButton;
    edtHex: TEdit;
    procedure btnConvertToHexClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnConvertToHexClick(Sender: TObject);
var
  Value: Int64;
begin
  if Trim(edtInt.Text) = '' then
  begin
    Exit;
  end;

  try
    Value := StrToInt64(edtInt.Text);

    edtHex.Text := IntToHex(Value, 1);
  except
    on e: EConvertError do
    begin
      OutputDebugString('EConvertError Message: ' + e.Message);

      ShowMessage('EConvertError Message: ' + e.Message);
    end;
    on e: Exception do
    begin
      OutputDebugString('Exception Message: ' + e.Message);

      ShowMessage('Exception Message: ' + e.Message);
    end;
  end;
end;

end.

Ref.



Silicon Power USB3.0 Flash Drive Marvel M70 64GB 구매후 삽질기 기타

큰 맘을 먹고 구매를 했죠. 그런데 노트북이나 회사컴이나 USB 3.0 이 아닌 포트에 꽂아서 쓰다보니 성능이 기대 이하였습니다.
기존에 쓰던 2GB 보다 느린 복사 속도를 보여서 하도 어이가 없어서 한참 고민하고 집으로 가져와서 벤치마크를 돌렸습니다.

일단 회사나 노트북에서 USB 3.0 이 아닌 포트에서 돌린 것은 참 잘못한 것이라고 생각하고...3.0 에 꽂아서 벤치마크 프로그램을 구해서 돌렸습니다.

CrystalDiskMark 입니다.

일단 초기 상태인 FAT32 상태에서 돌렸습니다.


참고로 이거 사양에는 
Read Up to 230 MB/s, 
Write Up to 80 MB/s
입니다. 이상하죠? 이상합니다. 헐...근데 제가 이때는 정신이 없어서 이상한 것을 몰랐습니다.

파일 시스템을 FAT32 에서 NTFS 로 Convert 하고 돌렸습니다.


후우....여튼 이쯤 되서야 값이 이상하다는 생각을 하고 벤치마크 프로그램을 다른 것으로 바꿉니다.
뭐로 할까 뒤적뒤적하다보니 다른 분들의 리뷰나 벤치마크 글에서 많이 보이는 ATTO Disk Benchmark 를 받아서 벤치마크를 해봤습니다.


흠...역시 이게 수치가 조금 더 그럴싸 해보이는군요.

벵치마크는 위와 같은 정도고 ...
체감한 느낌으로는 기대치가 너무 높아서 별로였다.
그러나 집사람이 구매해준 것만으로도 감지덕지하다...ㅜ.ㅜ
2 GB SanDis 의 Cruzer Switch 사용하고 있었던 저에겐 정말 감사한 것이죠. ㅠ.ㅠ

근데 노트북이나 회사 컴에 연결할 때 USB 포트가 3.0 포트가 아니었습니다.
근데 이게 윈도우즈가 표시하는 속도와 몸으로 느끼는 체감이라 좀더 수치로 알고 싶었습니다.
그래서 USB 2.0 포트에 연결하고 벤치마크를 돌려봤습니다.
이번엔 크리스탈 디스크 벤치 안 쓰고 바로 ATTO Disk Benchmark 로만 했습니다.

후우...참...쓰기 성능을 보면 들락날락...미묘합니다. 쩝.
대체적으론 USB 3.0 포트에 꼈을 때가 더 좋지만...중간중간 그렇지 않은 경우가 있습니다.
후우...뭐...세상사가 다 그런 거죠...

일단 제 노트북은 X61 이라서 USB 3.0 포트가 없습니다. ㅜ.ㅜ
회사 컴은 삼성에서 파는 것인데 아마 있을 것 같기는 합니다. 근데 전면부에는 없는 것 같습니다. 쓰기 편하게 백패널 쪽의 USB 3.0 포트에 연장 케이블 연결해서 앞으로 내놓고 쓰던가 해야할 듯 하네요. USB 3.0 연장 케이블 하나 사야 겠네요.


***** 삽질기*****
이번에도 삽질을 했습니다. FAT32 로 되어 있는 것을 NTFS 로 포맷하는데 포맷이 정상적으로 완료가 되지 않는 것입니다.
exFAT 는 아무런 문제도 없이 포맷이 되었고요. 
Windows XP 에서 연결을 해야할 수도 있고 MacOS 기기에는 연결할 일이 없어서 NTFS 로 포맷을 하려고 했는데 말이죠...
한참 삽질하다가 결국 다음과 같은 순서로 처리했습니다.
일단 FAT32 로 다시 포맷을 했습니다.
MiniTool Partition Wizard Home Edition 를 사용했습니다.
Home Edition 은 Free 랍니다.
그후에 윈도우즈의 C:\Windows\System32\Convert.exe 를 사용해서 NTFS 로 변환했습니다.
MiniTool Partition Wizard Home Edition 에서 바로 NTFS 로 포맷도 가능할 듯 했지만...
제가 exFAT 로 이미 포맷한 상태이고 하도 삽질에 지친 상태라서 확실한 방법으로만 해본 것입니다.
exFAT 에서 바로 NTFS 로 포맷하는 것은 다른 여유있는 분들이 해보시고 되시면 댓글이라도 달아주세요. ^^;

여튼 이상입니다.

[2014.04.09] 오래간만의 근황.... 근황?

이전에 다니던 회사를 그만두고...유지보수 쪽의 일을 하고 있습니다.
정규직에서 계약직으로 넘어간 것이죠...
집사람이나 집안 어른들께서는 계약직으로 간 것 때문에 우려를 하셨고 저도 불안하지만...
정규직이라고 해도 좋은 회사가 아닌 이상...아니 좋은 회사라고 해도 우리나라에서 기술자 정년 퇴직이라는 것이 과연...어느정도나 보장될지 모르겠습니다.
그렇다고 이걸 말로 하자니 불안감만 키울 것 같아서 말도 못하고...
일단 나이 먹어서도 일할 수 있도록 기술로 먹고 사는 사람답게 기술을 좀 더 익혀 보자고 발버둥치고 있습니다.

일단 현재는 블루테크솔루션이라는 회사와 계약하고 현대오토에버 품질시스템에서 일하고 있는 중입니다.
하는 일은 제조품질, 품질완결 시스템 유지보수...그런데 유지보수의 범위가 조금씩 넓어지고 있는 기분입니다.
델파이 5.0 이라는 골동품을 가지고 만들어진 프로그램들의 유지보수를 하고 있고 간혹 델파이 7 으로 된 놈들을 만지고 있습니다.
저는 써본적도 없는 유료 컴포넌트들 때문에 머리도 좀 쥐어 뜯지만...
대부분의 일은 공장에서 전화오면 DB 에 붙거나 원격 붙거나 해서 처리하는 것입니다.
DB 가 운영DB 인데 그냥 데이터를 수정하고 프로시져를 수정하고 ... 살 떨리는 일을 하고 있습니다.
게다가 실제 시스템을 만드셨던 분들이 작년부터 올해에 걸쳐서 다들 타부서로 이동하셔서...작년 4월에 들어온 저는 수정하고 싶어도 내용을 모르는 난감한 상태라는 것이죠. 기존의 프로그램 소스, 프로시져 등등을 뒤져가면서 추론하고 작게 테스트해보고 하는 일이 많습니다. 확실할 것 같아도 현업 분들과 이야기해서 테스트를 안 하면 안되는 상황이죠. 실제 너무 확실하다 싶어서 수정하고 테스트 안 했다가 문제가 나서 그 뒤처리로 고생하기도 했지요.
어쨌든 그 와중에 어찌어찌 살아가고 있습니다.

요새 C# 으로 전환도 고민하고 있지만 자바, 닷넷과 같은 시스템 특유의 소스 코드 추출이 가능하다는 특성 때문에 참 고민고민하고 있습니다. 제 책장에는 델파이 관련 자료부터 C, C++, 자바, 지금은 C# 까지 참 다양하게 있습니다. 기타 파이썬 같은 다른 언어는 도서관에서 잠깐 책 빌려보고 반납하는 쪽입니다. 그러나 이중에서 역시 자바와 C# 은 아직도 제대로 읽지를 못했습니다. 아무래도 확신이 없고 제게 남은 시간이 적다는 어떤 초조함에 집중하지 못하기 때문이겠죠. 할 것은 많고 시간은 부족하다는 것을 '알고 있는 상황'인 것이죠. 참...힘들군요...일단 윈도우즈 기반의 어플리케이션은 여전히 델파이입니다. C# 이 정말 편한 것이 많기는 한데 소스를 추출할 수 있다는 문제로 컴파일 언어인 델파이를 결국 못 버릴 것 같습니다.

지속적인 통합쪽은 언어와 개발 환경에 따라서 다르다는 것을 느꼈습니다. 그 안을 관통하는 내용은 동일하겠지만 그것을 실제 사용하여 일을 하는 것은 매우 다르다는 것이고 각각 몸에 익히는 시간이 필요하네요. 델파이, 비주얼 스튜디오, 이클립스...간단간단하게는 뭐...그냥 책 좀 보고 따라하면 되지만...제대로 개발 환경 만들기는 만만치 않더군요. 여전히 델파이 쪽은 지속적인 통합 환경을 만드는데 실패한 상태 그대로입니다. 뭐...그나마 단위 테스팅과 형상관리툴 사용정도는 하고 있지만 자동 빌드, 자동 테스트, 이슈 트래킹 같은 것은 여전히 이전에 진행하다 멈춘 그 때 그대로네요.

객체 지향 쪽은 최근에 이전보다는 조금 이해가 깊어졌습니다. 사용자 스토리, TDD 를 알게 되고 연습하고 있습니다. 헤드 퍼스트 소프트웨어 디벨롭먼트인가 하는 책이 오래된 책이긴 하지만 입문시 전체적인 흐름을 이해하는데 큰 도움이 되었습니다. 그 책을 읽은 후 사용자 스토리라는 책을 '다시' 읽었는데 그 때서야 사용자 스토리라는 책이 말하는 바가 보이더군요. 저는 사용자 스토리를 사용자 요구사항을 추출하기 위한 사용자와 개발자간의 공통 대화용 표기법이나 추출 기법 정도로 생각하고 봤었기 때문에 처음에 도서관에서 사용자 스토리를 빌려서 봤을 때는 머리에 잘 안 들어왔던 것이죠. 이 책을 도서관에서 3번이나 빌려봤었는데 말이죠. 사용자 스토리 라는 제목은 좀 너무 간단한 제목이었습니다. 제목이 간단해서 내용도 간단할 것이라고 착각하고 선입견을 갖고 읽어버린 것이죠. 사용자 스토리를 이용한 애자일 개발 같은 제목이었다면 책을 대하는 관점도 달랐을 텐데...여튼 다른 분들께도 추천드립니다. 그리고 최범균 님의 개발자가 반드시 정복해야할 객체 지향과 디자인 패턴 이라는 책도 봤습니다. 좋습니다. 솔직히 말해서 조금 아쉬웠지만 이정도 책이라도 있는 것이 어디냐 싶었습니다. 아쉬운 것은 문장이 좀 어색한 느낌이 드는 경우가 있었고 후반부로 가면서 전반부보다는 설명이 좀 이해가 안되는 부분이 나오기 시작해서였습니다. 후반부 설명이 나쁘다기보다는 전반부의 설명이 너무 친절한 것입니다만 이왕이면 후반부도 그랬으면 싶었습니다. 예를 드시는 사례도 몇가지 더 추가해주셨으면 싶었습니다. 네 욕심입니다. 언제나 기본이 부족한 나홀로 암중모색 검색 스터디형 개발자의 욕심이었습니다. 여튼 사지는 않았습니다만 도서관에서 계속 빌려오고 있어서 살까 말까 고민하고 있습니다. 개정판이 나온다면 사볼까하는 생각도 하고 있습니다.

웹개발 쪽을 공부하고 일하는 것은 중지상태입니다. 역시나...벽이 높습니다. 공부하는 것도 힘들지만 일할 기회를 갖기가 힘듭니다. 일할 기회를 갖기 힘들다는 것을 인식하니 공부할 의욕이 낮아져버려서 결국 현재는 중지 상태입니다. 그래도 계속 보고 있습니다. 현재 ASP.NET 이냐 자바냐로 좀 갈팡질팡하고 있기도 합니다.

최근에 다시 자료구조와 알고리즘 등을 공부하고 있습니다. 솔직히 몰라도 제가 일하는 범위 안에서 문제가 없습니다. 그런데 공부해야 겠다는 생각을 하게 되었습니다. 모르면 프로그래밍이 단순해지고 새롭고 보다 전문적인 분야의 기술을 습득하는데 어렵다는 것을 느끼고 다른 사람에게 말할 거리가 없어진다는 것입니다. 일단 집에 있는 책들부터 다시 뒤적이고 온라인 서점을 뒤지고 있습니다. 일단 도서관에서 빌려보고 괜찮다면 구매를 하려고 하는 중입니다.

하드웨어 쪽은 역시 ARM 에 다시 도전해볼까 하고 준비중입니다. 그런데 역시 킷트가 필요합니다. 쩝. 그리고 뭐랄까 PC 윈도우즈 기반의 소프트웨어 개발은 알지만 하드웨어 임베디드 소프트웨어 개발은 모르는 사람을 위한 순서대로 설명하는 책이나 자료를 찾이 못한 상태에서 다른 일들 때문에 보류중입니다. 라즈베리 파이는 RDP 로 접속시 한글 입력이 이상하게 되어 헤드리스 구성에 차질이 있다는 문제와 리눅스 기반 GUI 프로그래밍 툴을 정하지 못해서 보류중입니다. QT 를 생각하고 있는데 QT 의 라이선스 때문에 이게 또 좀 그렇습니다. 사람들은 리눅스 기반이면 다 공짜인 줄 아는데 QT 라이선스 비용을 이야기하면 단가 이야기가 나오고 마진 이야기가 나오고 결국 불법 소프트웨어 개발을 강요받는 상황이 되어버리는 경우가 많습니다. 그럼 결국 없었던 일이 되어버리고 참 착찹한 상황이죠. 여튼 딱 이거다 싶은 것이 없다면 결국 QT 를 하게 될 것 같습니다.

PC 에서 PC, 기계에서 PC로 네트워크에서 앞으로는 기계에서 기계로 네트워킹이 주가 될 것 같고 그를 대비하기 위해서는 임베디드, 웹, DB 등은 필수가 될 것 같은데...참 기술과 돈이 부족한 것이 아쉽습니다. 

때때로 별다른 취미나 오락도 없고 특기도 없는 제가 결혼도 안 하고 여전히 부모님과 함께 살고 있었다면 어땠을까 라는 생각을 하는 것을 보면 저는 아직 철 없는 개발자라는 생각을 하게 됩니다. 인간적으로 철이 들면서도 개발자로 살고 싶은데도 가끔 저런 생각이 드는 것을 보면 철도 없는데 재능도 없다라는 생각도 하게 됩니다. 그런 개발자에게 남는 것은 별 수 없이 발상과 노력 뿐이겠죠. 앞으로도 생각하고 공부하고 노력해야죠.

열심히 일하기만 하면 저절로 성장하게 되는 그런 회사 없을까요? 늙어서 버려지는 것을 걱정하지 않고 정말 온 힘을 다 쏟아서 일할 수 있는 회사가 있으면 좋겠습니다. 그리고 그런 회사에 들어갈 수 있다면 더 좋겠습니다.

ActiveX 컨트롤 TImagXpress 사용시 property does not exist 에러 날 경우 델파이(Delphi)

이전에 델파이 5 와 ImagXpress 6 으로 만들어진 프로그램을 유지보수하고 있는데....
개발환경 꾸미는 것만해도 만만치 않아서 고생하고 있는 중이다.

일단 윈도우 7 에서 델파이 5를 설치하고 ImagXpress 를 설치하면...
Pegasus 라는 탭에 Xpress 라는 컴포넌트가 생기고 ActiveX 탭에 ImagXpress 라는 컴포넌트가 생긴다.

폼 위에 ImagXpress 컴포넌트를 올리고 실행하면 런타임시에 다음과 같은 에러가 뜬다.

property does not exist.

구글링을 해도 명확한 답이 없어서 삽질하다가 해결법을 찾았다.

일단 Component -> Install Packages 메뉴에서 Pegasus ImagXpress v6.0 Design Component 를 선택하고 Remove 한다.

그러면 Pegasus 탭의 Xpress과 ActiveX 탭의 ImagXpress 컴포넌트들이 사라질 것이다.

이제 컴포넌트를 다시 설치해본다.

Project -> Import Type Library 하면 나타나는 Import ActiveX 대화창에서 Pegasus ImagXpress Control v6.0 을 선택하고 Create Unit 하여 IMAGXPR6Lib_TLB.pas 파일을 새로 생성하여 덮어씌운다.

Component -> Install Packages 하면 나타나는 Project Options 대화창에서 Add 버튼을 누르고 C:\PegasusSoftware\ImagXpressv60\VCL\Delphi5\ImagXpr6d.bpl 를 선택하고 열기한다.

그럼 에러가 안 나타날 것이다.

원인은 모르겠지만 델파이 5를 설치하고 ImagXpress 6 을 설치하면 ActiveX 탭의 TmagXpress가 TOleServer 를 상속하는 것으로 정의되어 있다. 그런데 이렇게 되면 TImagXpress.Width 라는 속성이 존재하지 않게 된다.
그런데 앞에서처럼 지우고 다시 설치하면 TmagXpress가 TOleControl 를 상속하는 것으로 정의되어 있다.

이상하지만....여튼 IMAGXPR6Lib_TLB.pas 파일을 살펴보다가 알게 되었다.

정말...4월부터 일 시작해서 지금에 이르렀는대도...삽질이다.


델파이 TGraphic...정리중... 델파이(Delphi)

TGraphic is the abstract base class type for objects such as icons, bitmaps, and metafiles that can store and display visual images.
TGraphic 는 추상 클래스이다. 아이콘, 비트맵, 메타파일과 같은 오브젝트들을 위한, 오브젝트들은 시각적인 이미지들을 저장하거나 표시할 수 있다.

Unit

Graphics

Description

TGraphic is an abstract class that cannot be instantiated.
TGraphic은 객체를 생성할 수 없는 추상 클래스이다.
Descendant graphics objects override many of the methods of TGraphic to address the needs of their particular file format and graphical characteristics.
자손 그래픽 객체들은 TGraphic 의 많은 메소드들을 재정의합니다. 그래픽 오브젝트들의 특정한 파일 포맷과 그래픽적인 특성들의 요구에 부응하기위해.
TGraphic also introduces methods that work with TPicture objects and the Clipboard.
TGraphic은 또한 TPicture 객체와 클립보드와 함께 동작하는 메소드들을 제시한다.
Properties of TGraphic provide information about the state and size of the graphic image.
TGraphic의 속성들은 그래픽 이미지의 상태와 크기에 대한 정보를 제공한다.

When the type of graphic is known, store the graphic in its specific type object.
그래픽의 타입이 알려지면, 그 그래픽을 그것의 특정한 타입 오브젝트에 저장한다.
Otherwise, use a TPicture object that can hold any type of TGraphic.
타입을 모르는 경우에는 TPicture object 를 사용한다. TPicture object 는 TGraphic의 어떤 타입이라도 유지할 수 있다.


TPicture contains a bitmap, icon, metafile graphic, or user-defined graphic.
TPicture는 비트맵, 아이콘, 메타파일 그래픽, 또는 사용자 정의 그래픽을 담는다.

Unit

Graphics

Description

TPicture is a TGraphic container, used to hold a graphic, the type of which is specified in the Graphic property.
TPicture는 그래픽 컨테이너이다. 보통 그래픽을 담는데 사용한다, 타입은 그래픽 속성에 명시되어 있다.
It is used in place of a TGraphic if the graphic can be of any TGraphic class.
그것은 TGraphic를 대신하여 사용된다. 그래픽이 어떤 TGraphic 클래스도 될 수 있다면
LoadFromFile and SaveToFile are polymorphic.
For example, if the TPicture is holding an Icon, it is valid to LoadFromFile a bitmap file, where the class TIcon can only read .ICO files.

If the TPicture contains a bitmap graphic, the Bitmap property specifies the graphic.
If the TPicture contains an icon graphic, the Icon property specifies the graphic.
If the TPicture contains a metafile graphic, the Metafile property specifies the graphic.

The properties of TPicture indicate the type of graphic that the picture object contains, and its size.
The methods of TPicture are used to load, save, and manipulate graphics.

To load or save a picture to the Clipboard, use the Assign method of a TClipboard object.

To draw a picture on a canvas, call the Draw or StretchDraw methods of a TCanvas object, passing the Graphic property of a TPicture as a parameter.


TPicture 는 TGraphic 클래스에 대한 컨테이너 클
래스이다. 즉 TGraphic 타입의 객체를 담아두는 그릇 역할을 하는 것이다. 구체적으로 말해
서 TPicture 는 Bitmap, Icon, Metafile, Graphic 등의 속성을 가지고 있어서 TBitmap, TIcon,
TMetafile , 기타 그래픽 타입 객체들(TGraphic 의 후손들)을 모두 이 속성들에 각각 저장하거
나 다시 불러와 화면에 표시할 수 있다. 이 때 그래픽 이미지를 파일로부터 직접 불러오거
나 저장하고 기타 작업을 수행하기 위해 TPicture 의 여러 메소드들을 이용할 수 있다.

TGraphic 클래스는 이미지를 저장하고 표시할 수 있는 아이콘, 비트맵, 메타 파일 등의 그래
픽 객체들을 위한 추상 클래스이다. 추상 클래스란 메소드들을 선언만 해두고 후손 클래스
에서 나름대로 필요에 따라 그 메소드들을 오버라이드해서 사용하도록 하는 클래스를 의미
한다. 그래서 그래픽 객체의 후손은 TGrphic 클래스의 많은 메소드들을 오버라이드해서 특
정 파일 형식과 그래픽적 특성을 충족시켜야 한다. TGraphic 은 TPicture 나 클립보드와 함께
작동할 수 있는 메소드들도 가지고 있고 그래픽 이미지의 상태와 크기에 관한 정보를 제공
하는 속성들도 가지고 있다. 비트맵, 아이콘, 메타 파일 등의 그래픽처럼 그 타입이 정확한
것들에 대해서는 각 그래픽 타입에 맞는 클래스를 사용할 수 있다. 예를 들어서 TBitmap,
TICon, TMetafile 등의 경우가 그렇다. 하지만 TPicture 타입의 객체는 TGraphic 의 후손이라면
어떤 타입이라도 수용할 수 있다.


[2012.02.23] Yagarto 설치 실패담... ARM

GNU ARM Toolchain 을 알아보는 중에 발견한 Yagarto 를 사용하기 위해서 시도중.

http://sourceforge.net/projects/yagarto/files/YAGARTO%20for%20Windows/20111119/

에 가서 
Download yagarto-bu-2.21_gcc-4.6.2-c-c++_nl-1.19.0_gdb-7.3.1_eabi_20111119.exe (22.4 MB)
를 다운로드 받는다.

설치를 하다보면 설치 경로를 지정하는 부분이 나온다.
Destination Folder 가 C:\Program Files\yagarto 로 지정되어 있을 것인데...
Program Files 와 같이 공백이 포함된 경로에 설치하면 프로그램이 동작하지 않을 것이란다.

Note: Do not install the tools or the toolchain in a directory which contain spaces like "C:/Program Files/". In this case the programs will not work!

그래서 설치경로를 C:\yagarto 로 하였다. 그리고 설치를 진행해서 완료.

우선 설치되었나 확인하기 위해서 커맨드 프롬프트 창을 띄우고 make clean 을 실행해보았다.
MAKE Version 5.4  Copyright (c) 1987, 2010 Embarcadero Technologies, Inc.
Fatal: Unable to open makefile
라는 결과가 보인다. makefile 이 없어 에러는 나지만 분명 실행된다.

그럼 이제는 이클립스 환경인데...
http://www.yagarto.de/howto/yagarto2/index.html
에 가보면 설명이 되어 있다.

이클립스를 사용하려면 필요한 것이 있다고 한다

To use Eclipse as an Integrated Development Environment for your toolchain you need:

  • a Java Runtime Environment (JRE) by Sun,
  • Eclipse Platform Runtime Binary,
  • and the Eclipse C/C++ Development Tooling - CDT.

JRE, 이클립스, CDT 를 설치해야 한다고 한다.

JRE는 있으니 넘어가고...이클립스도 다운 받은 것이 있어서 넘어가면 CDT 가 남았는데...음...CDT 라...
튜토리얼은 이클립스 빌드버전 3.6.2 기준으로 작성되어 있다고 하는데...뭐...최신버전도 괜찮을 듯 해서 최신버전으로 설치...

그런데 어떤 이클립스로 설치하지...잠깐 고민하다가 그냥
Eclipse IDE for C/C++ Developers (includes Incubating components)
선택함.
http://www.eclipse.org/cdt/downloads.php
에 가면 적혀있는 다음의 문구 때문임.
The CDT can either be installed as part of the Eclipse C/C++ IDE packaged zip file or installed into an existing Eclipse using the "Install New Software..." dialog and entering the p2 repository URLs listed below.

p2 repository URLs  은 다음과 같음.
p2 software repository: http://download.eclipse.org/tools/cdt/releases/indigo

그런데 생각해보니 이미 사용중인 이클립스에 CDT 만 추가해도 되겠다는 생각이 들어버림. 해볼까나...
이클립스를 실행하고 Help - Install New Software 실행
Work With 에 http://download.eclipse.org/tools/cdt/releases/indigo 입력하고 엔터 치면
해당 프로젝트와 함께 하는 것들이 주루룩 나타난다.
뭐..Select All 하고 Next 했다.
아...에러 났다. 뭐지..;;

Cannot complete the install because of a conflicting dependency.
  Software being installed: C/C++ Development Tools 8.0.0.201109151620 (org.eclipse.cdt.feature.group 8.0.0.201109151620)
  Software being installed: C/C++ Development Platform 8.0.0.201106081058 (org.eclipse.cdt.platform.feature.group 8.0.0.201106081058)
  Only one of the following can be installed at once:
    Codan Checkers Ui 1.0.0.201109151620 (org.eclipse.cdt.codan.checkers.ui 1.0.0.201109151620)
    Codan Checkers Ui 1.0.0.201106081058 (org.eclipse.cdt.codan.checkers.ui 1.0.0.201106081058)
  Cannot satisfy dependency:
    From: C/C++ Development Tools 8.0.0.201109151620 (org.eclipse.cdt.feature.group 8.0.0.201109151620)
    To: org.eclipse.cdt.platform.feature.group [8.0.0.201109151620]
  Cannot satisfy dependency:
    From: C/C++ Development Platform 8.0.0.201106081058 (org.eclipse.cdt.platform.feature.group 8.0.0.201106081058)
    To: org.eclipse.cdt.codan.checkers.ui [1.0.0.201106081058]
  Cannot satisfy dependency:
    From: C/C++ Development Platform 8.0.0.201109151620 (org.eclipse.cdt.platform.feature.group 8.0.0.201109151620)
    To: org.eclipse.cdt.codan.checkers.ui [1.0.0.201109151620]

음...고민하다가 그냥 때려치고 CDT Main Features 만 설치.
또 다른 문제가 있으면 또 해봐야겠지...

CDT Optional Features 에서 이것저것 선택해서 시도중. 아래와 같이 설정하고 진행.


잘 진행되고 있기는 한 듯 한데...음...

Workbench 의 화면 구성을 변경한다.
Window - Open perspective - Other 에서 C/C++ Perspective 선택한다.

이제 실제 테스트.
http://www.yagarto.de/examples/index.html
로 가서 SAM7X256Test example 을 다운 받는다.
그리고 설명대로 진행한다.

아 이상하다 싶어서 보니

MAKE Version 5.4  Copyright (c) 1987, 2010 Embarcadero Technologies, Inc.
Fatal: Unable to open makefile

Embarcadero Technologies, Inc. 다...ㅜㅜ

[2013.04.13] 델파이5에서 컴포넌트 설치시 bpl 이 없어서 설치가 안된다는 에러 날 때... 델파이(Delphi)

델파이 Library path와 Browsing path에서  썼듯이 정말 고생한 건데...델파이 5를 Win7 32bit에 설치하고 컴포넌트를 설치하다보면 문제없이 잘 설치되는가 보면 bpl 파일에 접근할 수 없다는 에러를 토하면서 설치가 안되는 경우가 있다.
음...VirtualTree 의 Theme Manager 같은 경우에는 설치는 된 것 같았는데...델파이를 재실행하면...설치한 컴포넌트가 사라진다.
Component - Install Packages 메뉴로 설치된 패키지를 확인하면 해당 패키지의 체크 박스가 해제되어 있는 것을 볼 수 있었다.

델마당에 질답란에 질문도 올리고...결국 구글링해서 해결했다.
방법은 좀 허망한데...윈도우 환경 변수 Path 에 bpl 폴더를 추가해주면 된다.
예를 들어 Win7 32bit 에서 델파이 5를 사용하는 경우
C:\Program Files\Borland\Delphi5\Projects\Bpl
와 같은 경로를 추가해주면 된다. 뭐...델파이 5를 설치한 경로나...BPL 을 저장한 경로가 다르다면 그에 맞게 적절하게 추가하면 된다.

정말...허망하지 아니한가...;

아...추가로 경로 추가하고서도 접근이 안된다고 뜬다면 우선 해당 bpl 파일과 dcp 파일을 삭제하고 다시 컴파일 한 후 생성된 bpl파일과 dcp 파일을 선택하고 Take Ownership 해준다.
...솔직히 경로 추가만 하면 이 짓은 일명 '뻘짓'이 될 확률이 크다.


[2013.04.13] Oracle Database 설치시 Path Length 관련 에러가 났을 때... 미분류

에러의 내용은 다음과 같다.

Environment variable: "PATH" - This test checks whether the length of the environment variable "PATH" does not exceed the recommended length.
Expected Value
: 1023
Actual Value
: 1069
List of errors:
-
PRVF-3929 : Adding the Oracle binary location to the PATH environment variable will exceed the OS length limit of [ "1023" ] for the variable on the node "CNF0123H5R" - Cause: The installer needs to update the PATH environment variable to include the value "%ORACLE_HOME%/bin;". However, doing so will cause PATH to exceed the maximum allowable length that this operating system allows. - Action: Ensure that the sum of the lengths of your current PATH environment variable and that of "%ORACLE_HOME%/bin;" does not exceed the operating system limit. Restart the installer after correcting the setting for environment variable.

아주 수년 동안 계속 끊임없이 올라오고 있지만 오라클은 반응이 없는 에러다.
수정하든...FAQ 로 따로 만들든 해야할 듯 한데...역시 맘에 안 드는 회사다.

해결방법은...아주 원초적인 것인데...
인스톨하는 동안 PATH 내용을 최소한으로 ...예를 들면 윈도우7 32bit 에서
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32;
만 두고 나머지는 어딘가에 저장하고 지운다.
인스톨러를 관리자 권한으로 실행한다.
인스톨이 끝나면 백업해뒀던 PATH 들을 다시 복원하는데...오라클DB 설치하면서 추가되는 PATH를 지우지 않도록 주의하여 덧붙인다.

...구글링하니 어떤 사람이 이걸로 4시간 동안 끙끙 대다가 멘붕한 듯 한데...간혹 구글링해서 글을 보다보면...외국 개발자들 실력도 그닥 좋은 편은 아니구나...외국 커뮤니티도 정말 딱 맞는 솔루션을 제공하는 경우는 드물구나...우리나라 질답란이나 별 차이 없구나...하는 생각을 하게 된다.

1 2 3 4 5 6 7 8