블로그 이미지
안녕하세요~ iolate(isho) 의 블로그 입니다~! iolate

카테고리

분류 전체보기 (164)
Server, Cloud (7)
끄적끄적 (9)
Linux, Ubuntu (22)
개발질 (44)
Mac (18)
iOS (23)
IoT (13)
NAS (1)
Web (5)
Network (3)
Review (10)
기타 (9)
비공개글 (0)
Total602,996
Today8
Yesterday141

망할 MS는 unicode 를 기본지원하지는 못할망정 호환지원도 제대로 못한다.


utf-8 csv의 경우에, Excel 로 바로 열면 한글이 모두 깨져버리는데,

데이터 불러오기 등의 번거로운 방법을 통해 불러오더라도 깨지는 X같은 경우가 발생한다.


나도 웬만하면 cp949로 인코딩을 굳이 해줄텐데,, 웹에서 javascript 로 데이터를 생성하고 바로 내려받는지라,

어떻게 방법이 없이 MS에 대한 저주만 한가득 하고 있었는데....


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


UTF-8 BOM 을 통해 (반틈만) 해결하였다.


방법은, 파일의 가장 앞에 \xef\xbb\xbf 혹은 \ufeff 을 넣어주면 된다.

이제 Excel 에서 바로 열어도 한글이 깨지지 않는다.


나의 경우엔

'data:application/csv;charset=utf-8,'+encodeURIComponent(csv)

'data:application/csv;charset=utf-8,\ufeff'+encodeURIComponent(csv)

이렇게 바꿔주었다.


다만, Excel 이 아닌 다른 프로그램으로 열거나 직접 csv파일을 읽어와서 작동시킬때 문제가 생길 수도 있는데....

이건 MS 를 욕하자.


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


MS 는 IE(+Edge)와 CP949(euc-kr)를 하루빨리 없애버렸으면 좋겠다.



참고


UTF-8 인코딩에서의 BOM(Byte Order Mark) 문제 :: wystan's tales


https://stackoverflow.com/questions/17879198/adding-utf-8-bom-to-string-blob

Posted by iolate

SMS API 를 연동하면서, 보낼 문자의 길이를 EUC-KR 인코딩에 맞게 카운트할 필요가 있었다.


단순히 EUC-KR 로 인코딩해서 카운트len(string.encode('euc-kr'))해도 되긴 하지만, "뷁" 같이 EUC-KR 테이블에 없는 문자는 ? 로 치환 후 계산이 필요했음.


즉, 내가 원하는건

1. EUC-KR 에 없는 문자는 ?로 치환하고

2. EUC-KR 인코딩에 맞게 글자수 카운트

를 Python 2.7 에서!


PHP 코드 및 원리는 http://dev.epiloum.net/293 여기에 나와있으며, CP949 / EUC-KR 차이 등에 대해 상세히 잘 설명되어 있다.



길이 자체는 위에 말한듯이 euc-kr 로 인코딩 후 카운트하면 되니 상관없고, 지원하지 않는 문자열을 ?로 만드는 과정이 필요.

utf-8 로 인코딩된 문자열이 입력으로 들어오는 기준으로 작성되었다.


대충 만든거니 대충보고 쓰자...


FUNC: convert_euc_kr

INPUT: content (utf-8)


더보기 (Python 2.7)



기반 코드들을 Python 3 으로 마이그레이션함에 따라, 이 코드도 수정이 필요하였다.

에러가 나지 않게 타입(str, byte)부분만 바꿔줘서 제대로 작동이 되는지는 확인해보지 않았다.


더보기 (Python 3)



리턴값은 여전히 utf-8 로 인코딩 되어 있으니, 길이를 구할때는 len(ncontent.encode('euc-kr')) 로 하면 됨.


끝.

Posted by iolate

맥에선 brew 로 잘 깔았던 것 같은데..

우분투에선 apt 로 받으니 버전이 낮다.


여튼 맥이고 우분투고 환경변수 설정 문제도 있으니 써둠.



Mac 일 경우

$ brew install go



Ubuntu 일 경우

1. https://golang.org/dl/ 에서 해당하는 파일을 다운로드

2. $ sudo tar -C /usr/local -xzf go*******.tar.gz

3. 환경변수 추가(/etc/.profile 혹은 ~/.profile)

export GOROOT=/usr/local/go

export PATH=$PATH:$GOROOT/bin


일단 이렇게까지 하면 설치 및 사용은 잘 된다.


GOPATH 설정

그런데 go get 등을 하려면 GOPATH 를 설정하라고 하면서 안됨.

찾아보니 그냥 다운받는 패키지를 저장하는 장소를 지정해달라는 것. 설치 디렉토리는 여러 이유로 안됨.(권한, 업데이트 등등)

나는 그냥 ~/golang/pkg 로 지정하였다.

export GOPATH=~/golang/pkg


이러면 go get 등도 잘 됨


go install 을 할 경우 $GOPATH/bin 에 생긴다.




참고:

http://munchpress.com/install-golang-1-5-on-ubuntu/

Posted by iolate

망할 윈도우... BMP 쓰기가 너무 싫어 몇시간을 삽질했다..


GDI+ 를 사용하므로 

gdiplus.lib 

를 프로젝트 속성 - Linker - Input - Additional Dependencies 에 넣어주고


#include <gdiplus.h>

using namespace Gdiplus;


를 코드 상단에 적어주자.



더보기



위 코드로 

HBITMAP hBitmap = LoadPNGToHBITMAP(MAKEINTRESOURCE(IDB_PNG));

와 같이 이미지를 불러온 후에


WM_PAINT 메세지에서 아래 더보기와 같이 그려주면 된다.

사이즈는 원래 구하는 코드가 있었는데, 난 필요없어서 제거함. 그정도는 구글링하자.(후에 내 자신을 원망하겠지..)


더보기



* VS 2015 에서 VS 2010 의 컴파일러를 사용하여, Win XP SP3 및 Win 7 SP1 에서의 작동을 확인하였다.


Posted by iolate
TAG GDI+, jpg, PNG, winapi




Tistory 에서 뭐가 바뀌었는지 모르겠지만,

최근에 Surrounded 스킨을 쓰는 블로그들이 하나같이 이렇게 변해버렸다..


귀찮아서 냅두고 있었는데, 생각이나서(시험기간이니) 수정해보았다.


관리 - HTML/CSS편집 메뉴에서 아래 style.css


사진과 같은 곳을 찾아, 드래그한

padding-right: 16px;

부분을

padding-right: 15px;

로 변경한다.


그러면 현재 내 블로그 상태처럼 정상으로 돌아옴.

'개발질 > 기타' 카테고리의 다른 글

[Mac / Ubuntu] Go (golang) 설치하기  (0) 2015.12.22
winapi gdi+ image load and convert to HBITMAP  (0) 2015.11.02
Surrounded 스킨 깨짐 해결  (0) 2015.06.07
python to exe  (2) 2015.02.25
[XCode5] 부분적으로 MRC 사용  (0) 2013.12.15
XCode4 업데이트  (1) 2011.03.11
Posted by iolate

python to exe

개발질/기타 / 2015.02.25 19:04

아무래도 python 으로 프로그램을 짜기가 쉽다.


라이브러리가 많기도 하고...

윈도우 프로그램 개발할 일이 있었는데, c++ 로 개발하긴 귀찮아서 파이썬을 택했다.

(그냥 c++ 할걸 하는 후회도 약간 있긴 하지만 여튼.)



GUI 제작은 wxPython 을 사용하였고..

맥에서 주로 테스트를 하다가 윈도에서 한번씩 확인해보는 방식으로 개발하였다.

뒤늦게 알았는데, sys.platform 값을 darwin /win32 로 분기해서 구분하면 좀 더 편함.



마지막으로 만든 파이썬 스크립트를 배포용으로 만들 필요가 있었는데 여기서 애를 먹었다.


우선 난 Python 2.7.


처음에 py2exe 를 시도하였으나 안됨.


그 다음으로 cx_Freeze 를 사용하였는데 만들어지긴 하나 라이브러리 파일들이 덕지덕지 튀어나온다.

패커? 같은걸로 해보려 했으나 뭔가 잘 못찾겠어서 패쓰.

아래 문서의 도움을 잘 받았당

http://stackoverflow.com/questions/20754180/cx-freeze-bundling-files



그래서 그 다음으로 선택한게 PyInstaller.

처음 설정하기가 뭔가 좀 애먹었긴 한데 잘 된다.


단지, onefile 옵션을 주면 실행할 때 리소스를 임시폴더에 푼 다음 실행을 하는 것 같다.

프로그램 상에서 리소스를 불러올 때 resource_path 를 따로 계산해줘야 함.

http://stackoverflow.com/questions/7674790/bundling-data-files-with-pyinstaller-onefile

이 글을 참고하자.


(PyInstaller 기준) icon 파일은 .spec 파일에 기술했을 경우에 알아서 포함한다.


* 그런데... PyInstaller 는 만들고 난 결과 파일이 있는 경로에 한글이 섞여있으면 에러가 난다....ㅂㄷㅂㄷ....

Python 으로 exe 만들기 뭔가 험난하네....ㅠㅠㅠ


'개발질 > 기타' 카테고리의 다른 글

[Mac / Ubuntu] Go (golang) 설치하기  (0) 2015.12.22
winapi gdi+ image load and convert to HBITMAP  (0) 2015.11.02
Surrounded 스킨 깨짐 해결  (0) 2015.06.07
python to exe  (2) 2015.02.25
[XCode5] 부분적으로 MRC 사용  (0) 2013.12.15
XCode4 업데이트  (1) 2011.03.11
Posted by iolate

ARC 사용하는 프로젝트에서 특정 파일만 MRC 를 사용하기 위해서는

컴파일 옵션에 -fno-objc-arc 를 넣어주면 된다.


근데 xcode5 로 올리고 나니

Targets -> Build Phases 로 이동하면...



없다!!! 

컴파일러 옵션이 없고, 더블 클릭해도 안된다.


그래서 검색해보니,, 답은 황당하다..



오른쪽 탭을 없애든지 뭐 기타 방법으로 창을 길게 만들어주면 된다.

그럼 숨어있던 컴파일러 옵션이 나타난다.. ㅡ_ㅡ...


저기에 -fno-objc-arc 를 넣어주면 됨.

'개발질 > 기타' 카테고리의 다른 글

[Mac / Ubuntu] Go (golang) 설치하기  (0) 2015.12.22
winapi gdi+ image load and convert to HBITMAP  (0) 2015.11.02
Surrounded 스킨 깨짐 해결  (0) 2015.06.07
python to exe  (2) 2015.02.25
[XCode5] 부분적으로 MRC 사용  (0) 2013.12.15
XCode4 업데이트  (1) 2011.03.11
Posted by iolate
며칠전, XCode4 정식버젼이 맥용 앱스토어 버젼으로 나왔다.
개발자 인증(유료)를 한 사람은 개발자 센터에서 무료로 다운이 가능하고, 그 외 사용자에게는
$5에 배포되고 있다.. 이전에 무료인 것에 비하면 아쉽지만, 개발툴 치고는 싼편!

내 맥에서 인터페이스 빌더오류로 난리 났었기에 그냥 아무 생각없이 바로 구매하였다..

맥용 앱스토어에 가면 볼수 있다. 가격은 위에서 말했듯이 $4.99 (평가 왜저래;;)


다운 완료시 애플리 케이션 폴더에 위와 같이 인스톨 프로그램이 설치되며, 실행할 경우 기본 버젼과 마찬가지로
/Developer 에 설치를 시작한다. XCode3 이 설치되어 있을 경우 기본 버젼은 Developer-old 로 이름 변경 후 설치가 진행된다
상당히 오래 걸렸던듯...


메인화면은 디자인의 변경 외엔 눈에 띄는게 없다! ㅋ



상단 부분이 통합되었다는 느낌이다. 특히 인터페이스 빌더와 info.plist 파일...
전체적인 디자인과 몇몇 메뉴가 이동하다 보니 xcode3에도 적응이 안되던 나에겐 너무나 헷갈린다;;;;



그리고 좀 편해졌다고 느껴진게 뭔가 기존 xcode와 organizer 가 서로 연동.. 되는게 많아 진것 같다
원랜 window메뉴에 숨어있다 보니 organizer 처음에 개발자 등록할때만 쓰고 있는지도 모르는 사람도 있었는데..
이젠 그런일 없으려나..?


잠깐 사용해보면서 불편한 점으로는 코드에서의 에러를 실시간으로 계속 스캐닝 하던데, 그래서 상당히 귀찮아 졌다..
코드 작성중엔 다음줄에 계속 에러로 뜨니 상당히 거슬리고, 변수 선언시에도 계속 오류를 뿜어내고 있으니
뭔가 계속 신경쓰인다;; 그냥 기존처럼 빌드 하면서 에러 체크하는게 더 좋았던 듯;;;(나 같으면 에러 체크 용으로 커맨드+B 사용..ㅋㅋ)

Unit Test 란 뭔가 이상한 것도 추가됬는데 뭔지 모르겠으니 패쓰;;


메이저 업데이트이긴 하나, 내부적으로 크게 바뀐건 없는 듯 하다... 기존 Mobile Substrate Extension 사용법이나,
XCode Code Sign Pass 모두 4버젼에서 사용 가능하다고 한다.(아직 사용은 못해봤다..ㅎㅎ)



아직 제대로 사용은 못해봤지만, 친해지도록 노력 해봐야지;;

'개발질 > 기타' 카테고리의 다른 글

[Mac / Ubuntu] Go (golang) 설치하기  (0) 2015.12.22
winapi gdi+ image load and convert to HBITMAP  (0) 2015.11.02
Surrounded 스킨 깨짐 해결  (0) 2015.06.07
python to exe  (2) 2015.02.25
[XCode5] 부분적으로 MRC 사용  (0) 2013.12.15
XCode4 업데이트  (1) 2011.03.11
Posted by iolate
TAG xcode, Xcode4

최근에 달린 댓글

최근에 받은 트랙백

글 보관함