- Today
- Total
- startActivity
- ScrollBarTrackPolicy
- c#
- 자동 닫힘
- Image icon 변환
- OSHP
- node.js 설치
- onPageFinished
- RaspberryPi
- 라즈베리파이
- OpenFileDialog
- usb 인식 불가
- Ribbon
- UltraToolbarsManager
- 동영상 오류
- MariaDB
- mariaDB 설치
- Raspberry Pi
- ImageList Icon 변환
- ubuntu
- node.js
- Spread
- .mine
- mp4 재생
- 다중 Filter
- ContextMenuStrip
- mariaDB 외부접속
- <<<<<<<<
- WebViewClient
- 라즈베리 피이
Realman's World
초등학교 1학년 입학식을 마치고 반 배정을 받고 자리에 앉았을 때 옆에 앉았던 여자 아이가 있었다. 그 어린 나이에 후광이 비쳤다는게 참 믿기지는 않지만 어쨌든 그 아이 때문에 고등학교 2학년까지 나의 삶은 그 아이를 통해 이끌려져 갔다. 공부를 잘하고 글씨를 잘 쓰고 달리기를 잘 했던 그 아이에게 뒤쳐지지 않기 위해 공부를 하고 글씨 쓰는 연습을 하고 운동을 열심히 했다. 초등학교 4학년때 그 아이가 컴퓨터 학원을 다닌다길래 나도 컴퓨터 학원을 다니기 시작했다. 물론 그 때는 그것의 나의 직업이 될 줄은 절대로 알 수 없었지만 말이다. 시작이야 어떻든 간에 컴퓨터 학원에서 하는 프로그래밍은 매혹적이었다. 당시에 처음했던 것은 GW-Basic. * 표를 가지고 모형을 그리는 것이 대부분이었다. 다이아몬드..
중학교 2학년 때 유행하던 유행가 중 "마음 울적한 날엔 거리를 걸어보며~" 로 시작하는 노래가 있었다. 마로니에의 칵테일 사랑이 바로 그것이다. 지난 주 목요일 저녁이 집사람과 이런저런 이유로 얼굴을 붉힌 이후 오늘까지 나의 기분은 쉽사리 좋아지지 않고 있다. 중딩 시절때도 다른 사람과의 관계 속에서 혹은 사소한 일들과 걱정들로 울적한 일들이 많이 있었을 텐데... 갑자기 그 노래를 유튜브에서 찾아 들어보았다. 그 당시의 뮤직 비디오를 보면 손발이 오글거릴 듯이 촌스러운 패션과 촌스러운 멜로디인데... 그때의 고민들도 손발이 오글거리고 철없고 우스꽝스러운 것들이 대부분이겠지만 그것을 대하는 나의 태도 또한 촌스러운 그대로로 남아있다는 것에 더 기분이 좋지 않다. (괜히 찾았다 싶다...) 예전에는 어쩌..
맥북에어에서 이클립스 설치하여 본격적으로 안드로이드 프로그램 개발을 시작하려고 한다.1. 이클립스를 설치하기 위해 http://www.eclipse.org/에 접속하여 우측 상단의 다운로드 버튼을 클릭한다.2. Package Solutions 의 Eclipse IDE for Java EE Developers 를 다운받을 때 bit 를 확인하여 다운받는다.* 맥북의 bit가 몇비트인지 모를 경우 http://support.apple.com/kb/HT3696?viewlocale=ko_KR 에서 OS의 비트를 확인 방법을 알 수 있었다.3. eclipse 다운로드 후 eclipse.exe 실행한다.4. 설치가 완료되었다면 ADT 를 설치한다. - ADT 설치 링크
HBase의 설치 및 Zookeeper의 연결이 완료가 되었다면 본격적으로 OpenTSDB를 설치하도록 한다. git clone git://github.com/OpenTSDB/opentsdb.git cd opentsdb ./build.sh * autoreconf: not found 에러 발생시 dh-autoreconf 추가 설치 필요 apt-get install dh-autoreconf* Java Heap Space 에러 발생시 JVM 메모리 변경 필요 vi /etc/profile export JAVA_OPTS="-Xms512m -Xmx2048m -XX:MaxPermSize=512m 추가 source /etc/profile reboot ./build.sh 정상적으로 Compliation 되었다면 buil..
이번달 IoT 를 위한 빅데이터 관련 세미나에 참석했을 때 OpenTSDB에 대한 설명을 들었다. 현재 하고 있는 OSHP로 환경 정보를 저장하기에 가장 알맞을 것 같아 OpenTSDB를 구축하기로 하고 오늘부터 스터디를 진행하려고 한다. 우선 http://opentsdb.net/docs/build/html/index.html 에서 처음부터 차근차근 읽어보면 진행을 하기로 했다. Installation 을 진행하기 위해서는 아래의 것이 준비되어야 한다. A Linux system Java Runtime Environment 1.6 or later HBase 0.92 or later GnuPlot 4.2 or later 참고로 Java 버전을 확인하려면 java -version 명령어를 사용하면 된다. 현..
EASYCAR E7II 원격 시동키를 몇번 떨어뜨려서 케이스가 분리되기도 하고 액정도 나가기도 했지만 그럭저럭 잘 버텼왔다. 하지만 어제는 떨어뜨린 이후에 버튼을 눌러도 진동이 되지 않았다. 문을 열거나 시동을 켜고 나서 진동으로 제대로 동작한 것을 알 수 있었는데 돌아오는 액션이 없으니 이건 뭐 답답해서... 혹시나 싶어서 오늘 케이스를 다시 뜯어서 진동 모터를 보니 선이 단선된 것을 볼 수 있었다. 선을 다시 모터의 남는 구멍에 끼워도 되지 않아 이전 전선은 떼고 회사에 있는 전선을 다시 납땜하여 앞부분에 피복을 벗긴 후 나머지 구멍에 끼웠더니 정상적으로 작동하였다. ^^ 그림 1. 이전 전선을 떼고 새로운 전선을 납땜 그림 2. 단선된 모터의 구멍 그림 3. 피복을 벗긴 후 모터에 끼움 OSHP를 ..
1. OSHP(Open Source Hardware Platform) 를 말하기 전에 최근 여러 회사에서는 불법소프트웨어 관리 프로그램을 설치하여 사용자의 프로그램 중 라이센스 비용을 지불해야 하는 프로그램을 조사하고 필요한 프로그램은 구매하고 불필요한 경우 삭제하는 등의 업무를 수행하고 있습니다. 그 이유야 다들 알고 계시겠지만 첨언하자면 프로그램은 형체가 없고 복사를 하더라도 원본과 복사본을 구분할 수가 없기 때문에 정품을 사지 않고 어둠의 경로를 통해 설치를 하더라도 사용에 불편함이 없고 프로그램의 개발자들도 이를 알 수가 없습니다. 때문에 제품을 사용하는 사람이 늘어나더라도 회사는 망하는 아이러니한 상황을 자주 볼 수 있습니다. [그림 1] 아래아 한글 815 특별판 : 장당 1만원에 판매하여 2..
이런저런 이유로 다시 블로그를 시작하기로 결정했지만 문제는 어디에다가 블로그를 시작할 것인가 부터가 문제였다.처음에는 이번에 새로인 만들게 된 wordpress에서 블로깅을 다시 시작하려고 하였다.하지만 왠지 어색하기도 하고 기존에 글을 써 놓았던 많은 곳들은 어떻게 할까도 고민이 되고...그래서 일단은 나의 서버를 구축하기 전까지는 이곳에서 블로깅을 계속하기로 하고 글을 쓴다.오늘부터 멈추지 않고 글을 쓰려고 한다.
교회의 모바일 홈페이지를 접속하기 위해서는 브라우저에서 url 주소를 입력해야만 했다. 북마크를 만들어서 사용해도 되지만 대부분의 어르신들은 그렇게 하지 못하였다. 그래서 기존 홈페이지를 그대로 사용하면서 쉽게 접근 가능하도록 하기 위해 WebView를 이용하여 어플을 만들기로 결심했다. Android 코딩은 처음이라 이래저래 검색을 하여 WebView로 어플을 만드는 것은 성공하였다. 구글플레이에 등록을 하고 배포를 시작하여 나름 뿌듯함을 느끼던 것도 잠시... 동영상이 재생되지 않았다. 기존 홈페이지에서 안되나 보다 싶어서 업체에 문의를 했더니 내가 만든 어플에서만 실행이 되지 않았던 것이다. 무식하면 용감하다는 말이 딱 맞았다. 부랴부랴 검색했더니 별도의 코딩을 해야지 재생이 되는 것이었다. 아래의..
Pentaho OLAP Oracle http://wiki.pentaho.com/display/ServerDoc1x/Pentaho+Reporting+with+Oracle+10g+-+Part+1
1. 컴퓨터 연구 정보 센터http://cseric.or.kr/new_cseric/main.asp2. 정보통신산업진흥원(NIPA)http://www.nipa.kr/know/periodicalList.it?code=B_ITA_01&menuNo=28&page=13. ITFINDhttp://www.itfind.or.kr/itfind/main.htm4. 전자신문http://www.etnews.com/5. 한국전자통신연구원(ETRI)http://www.etri.re.kr/etri/web/web_03000000.etri
2번째 시험 복기네요 ^^ 2월 시험은 공부한지 2달만에 친 시험이라 아무 생각이 없었는데.. ㅋ 그때는 1교시 답안 받자마자 드는 생각은 데이터 마이닝, 이진트리, 세마포어 말고는 아는게 없네...ㅡ.ㅡ;; 이마저도 대학때 배우고 코딩한 거 외에는 정확한 정의나 정리가 되어 있어 잘 써지지 않고 막막하기만 했네요. 2교시 ~ 4교시까지는 아는 문제는 퀵정렬이나 소스코드 관련 문제는 개발자다 보니 그냥 평소 실력으로 쓰고 나머지는 전부 구라로 썼던 기억이 나네요. 어쨌든 구라지만 2교시 부터 4교시까지 13장 정도를 채우고 나왔었는데 점수는 역시 합격선과는 멀었지만 그래도 모르는 문제를 제 생각대로 썼는데 점수는 주는구나. 그때 든 생각은 구라로 썼지만 복기하고 나서 실제 답과 유사한 것이 있는 교시에서..
Toad 11로 업그레이드 후 Sub 쿼리 작성시에 밑줄이 생긴다. 정상동작 함에도 불구하고 에러처럼 밑줄이 생기는 바람에 여간 불편한게 아니었다. 이래저래 많은 옵션을 거드렸지만 실패. 결국 검색을 통해 문제를 해결했다. Check Code Analsis Rules as you type 을 해제하면 해결된다.
스프레드에서 마우스로 스크롤을 클릭하여 이동시키면 스프레드의 내용은 동시에 이동되지 않는다. 스크롤 이동을 완료시키고 클릭한 손가락을 뗀 순간 스프레드가 한꺼번에 움직이게 된다. 이때 동시에 이동시키고 싶다면 FpSpread의 ScrollBarTrackPolicy를 Both로 변경하면 간단히 해결된다.
SVN을 사용하다가 보면
시스템 개발 중 메신저처럼 TrayIcon을 사용하게 될 일이 생겼다. TrayIcon 추가 후에 마우스 우클릭시 ContextMenuStrip을 생성시켜서 특정 작업을 하도록 기능을 추가하였다. 잘 된다 싶었는데 버그가 발생했다. 다른 프로그램들은 ContextMenuStrip이 생성되고 화면 아무곳이나 클릭하면 사라지는데 내가 개발한 것은 사라지지 않았다. 다른 프로그램이 된다면 내가 잘못 사용하고 있다는 생각이 들어 이래저래 ContextMenuStrip의 속성을 변경해 봤지만 달라지지 않았다. 이때까지의 내 소스는 아래와 같다. private void trayHitops_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButt..
프로그램 개발시 Icon을 사용할 때가 많다. 여러가지 방법이 있겠지만 가장 간단한 방법이 Icon 파일을 특정 폴더에 넣고 해당 파일 경로를 이용하여 Icon을 생성하는 방법을 많이 사용한다. Icon icon = new Icon(파일 경로); 하지만 이 방법이 불편할 때가 있다. 버전 관리를 하는 시스템이나 실행 파일 하나로만 관리를 하고 싶을 때와 같은 경우이다. 전자의 경우 특정 프로그램을 업데이트 시킬 때 해당 프로그램에서 위와 같이 Icon을 사용한다면.. 특히나 여러개의 파일을 사용한다면 프로그램은 하나지만 업로드할 파일의 개수는 Icon 개수 + 1 만큼이다. 또한 사용자의 실수로 Icon 파일이 삭제될 경우 해당 프로그램은 실행되지 않는다. 후자의 경우 Windows Installer를 ..
파일을 이용한 프로그램을 개발하게 될 때가 많다. 이때 하드코딩으로 파일 이름을 써 놓다면 너무 원시적이다. 때문에 OpenFileDialog를 이용하여 파일 이름을 인식하도록 한다. OpenFileDialog를 ShowDialog로 로딩했을 때 Filter를 이용하면 사용자가 보기 원하는 확장자의 파일만을 볼 수 있도록 설정이 가능하다. Filter 설정은 아래와 같다. OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.Filter = "엑셀 파일 (*.xls)|*.xls|엑셀 파일 (*.xlsx)|*.xlsx"; openFileDialog1.ShowDialog();
Toad는 Formatter Plus 라는 솔루션이 포함되어 있다. 이를 사용하면 자동 들여쓰기 및 키워드나 테이블 필드 등의 대소문자를 자동으로 변경시켜 줄 수 있다. 사용법은 간단하다. 1. Formmating Options 셋팅 - View > Formatting Options 선택 - Keyword,
UltraToolbarsManager 에서 한번 Tool을 추가시킨 이후 다시 삭제할려고 하는데 어디서 삭제를 하는지 찾지를 못했었다. 오늘 드디어 찾았다. 정말 간단한 거였는데... ㅜㅜ 방법은 아래와 같다. UltraToolbarsManager 컨트롤을 선택하고 우클릭한후 Customize를 클릭한다. 메뉴가 나오면 Tools Tab을 선택하고 New, Delete로 Tool을 핸들링하면 된다. 참~~~ 쉽죠잉~
Graphics 에 텍스트를 쓸때 배율에 따라 정해진 문자열을 항상 가운데에 위치시키고 싶을때가 있다. 이미지나 도형의 경우 해당 컨트롤이 올라가는 Parent 컨트롤의 Width /2 에서 해당 컨트롤의 Width /2 를 빼주는 방법으로 간단히 처리할 수 있다. 하지만 문자열의 경우는 이를 정확히 알수 없어 화면을 보면서 좌표를 찾아서 하드 코딩하는 경우가 많다. 이를 해결하기 위해 Graphics의 MeasureString 함수를 사용하면 편리하다. PictureBox pic.Image = new Bitmap(pic.Bounds.Width, pic.Bounds.Height); Graphics e = Graphics.FromImage(pic.Image); sText = " 문자열의 Size를 알아보자..
Spread를 사용하다 보면 합계를 구할 때가 있다. 이때 유용한 것이 Formula를 사용하는 것이다. Formula는 엑셀과 마찬가지로 함수 식을 써주면 된다. 함수의 사용법은 엑셀과 마찬가지로 사용하면 되며 이는 도움말을 참고하면 된다. 주의할 점은 SUM과 같이 숫자를 사용하는 함수의 경우에는 CellType을 Number로 지정해 주어야 한다. 추가로 위와같이 SUM 함수를 사용했을 경우 합계가 0일 때 이를 표시하고 싶지 않을 경우가 있다. 이런 상황에서는 아래와 같이 설정을 하면 간단히 해결이 된다.
솔루션을 개발하다 보면 flash와 C# 을 연동하게 될 경우가 종종 있다. 이번 프로젝트에서도 급 지령을 받고 부랴부랴 이래저래 검색을 하여 적용하였다. 하면서 이래저래 어려운 점이 많아 애를 먹었는데 다음에는 고생하지 말아야지~ㅎ 1. SWF 파일 C#에 나타내기 ① 참조 파일에 AxShockwaveFlashObjects.dll 파일을 추가 시킨다. (첨부 파일 참조) ② 우선 도구 상자에 Shockwave Flash Object를 추가 시킨다. ③ Shockwave Flash Object를 선택하여 Form 추가 시킨다. 이때 종종 아래와 같은 경고창이 뜬다. 이럴 경우 솔루션 다시 빌드를 살포시 해주면 문제는 깔끔히 해결된다. ④ Shockwave Flash Object 객체 이름을 변경한 후 M..
스프레드를 이용하여 정보를 Display해 줄 때 재조회를 하면 다시 row가 1부터 시작하게 된다. 이를 해결하기 위해 조회전에 Top Row 를 저장해 주고 조회 후에 다시 Top Row를 저장하면 된다. 실행 방법은 아래와 같다. int iTopRow = spread.GetViewportTopRow(0); InquiryDB(); spread.SetViewportTopRow(0, iTopRow);
DrawLine을 이용하여 선을 그릴때 일반 실선 외에 점선을 그릴 때가 있다. 이때는 아래와 같이 하면 된다. Graphics e = Graphics.FromImage(pic.Image); Pen pLine = new Pen(Color.Gray,2); pLine.DashStyle = DashStyle.DashDot; Point pt1 = new Point(10, 10); Point pt2 = new Point(100, 100); e.DrawLine(pLine, pt1, pt2); 이때 DashStyle의 맴버 변수 설정에 따라 선의 종류는 달라진다.
보통 Anchor는 디자인 모드에서 간단히 설정할 수 있다. 이를 소스상에서 설정할 경우 Top, Left, Right, Bottom 을 다중으로 설정하는 방법은 아래와 같다. gateInfo.Anchor = ((AnchorStyles)(((AnchorStyles.Top | AnchorStyles.Left) | AnchorStyles.Right)));
Column Header를 클릭했을 때 Sorting 시키려면 SetColumnAllowAutoSort 함수를 이용하면 된다. spsGateDtlInfo.SetColumnAllowAutoSort(i, spsGateDtlInfo.ColumnCount, true); 첫번째 인자는 시작 Column, 두번째 인자는 Column 개수, 세번째 인자는 자동 Sorting 여부를 지정해 준다.
C# 코딩을 하다보면 가끔씩 C++이 그리워 질때가 있다. 그 중의 하나가 Shallow Copy가 지원되지 않을 때이다. C#은 항상 참조 연산이 된다. 때문에 같은 메모리를 사용한다. 이로 인해 저장한 변수를 변경하면 기존의 변수까지 변경된다. (쉽게 말해 인스턴스를 다른 변수에 저장할 때 껍데기만 바뀔 뿐 속성은 그대로라는 말이다.) 이때 ICloneable을 사용하면 이를 해결할 수 있다. 우선, 해당 클래스를 ICloneable의 상속을 받게하고 Clone() 메소드를 선언한다. public class Test : ICloneable { private int a = 0; private int b = 1; public object Clone() { this.MemberwiseClone(); } }..
UltraToolbarsManager는 실행시에 보통 모든 Tool을 다 보여준다. 이때 좌측 상단의 버튼을 클릭하고 Minimize the Ribbon 을 선택하면 아래와 같이 Ribbon 명만 보이는 Toolbar가 된다. 하지만 실행시켰을 때부터 Minimize를 하고 싶다면 속성창의 Ribbon>IsMinimized 를 True로 변경하면 간단히 해결된다.
1. Ribbon Tab 변경 2. Ribbon Group 변경 * 속성 메뉴에서 Ribbon>Tabs>특정 Ribbon>Groups 에서 Group 속성 변경 3. Toolbar 의 버튼별 event 처리 방법 * UltraToolbarManager를 선택한 후 속성창을 열면 아래와 같은 메뉴가 뜬다. 해당 Menu에서 Generate Tool Click Code 를 클릭하면 현재 등록된 Button 들이 보이고 각 Button에 따른 Switch 코드가 우측에 나타난다. 이 코드를 복사하여 ToolClick 이벤트 핸들러에 붙여넣어주면 된다.