본문 바로가기

삽질

[WM] SHLoadImageFile 문제점과 Image API WindowsMobile 에서만 쓸수있는 SHLoadImageFile 이라는 함수가 있습니다. 이 함수는 편리하게 파일 이름만 넣으면 PNG, JPG, GIF등을 지원해서 편리하게 HBITMAP 형식으로 리턴해 줍니다. 하지만 파일 전체를 무조건 로드합니다. http://msdn.microsoft.com/en-us/library/aa455003.aspx 윈도우즈 모바일 5 부터 사용할 수 있다고 하지만 그 전에도 undocumented function 으로 사용가능 했던 것 같습니다.(구글신 검색결과) // 사진 파일을 지정 HBITMAP h = ::SHLoadImageFile(filename); if(h != NULL) { m_photoImage.Attach(h); } else { MessageBox(.. 더보기
IF문 주의합시다. ㅠㅠ Me2PocketUploader 윈도우즈 모바일 버전을 개발하면서 마블(이전은 인텔)의 PXA시리즈 CPU에서는 잘 동작하는 기능이 퀄컴의 MSM시리즈(MSM7200)칩에서는 의도하지 않은 동작을 하였습니다. 어차피 둘다 태생은 ARM 아키텍처 이지만 말입니다. 그것도 무적전설님이 알려주기 전까지는 몰랐습니다. 문제의 코드는 다음과 같습니다. // 댓글 닫기 if(setCloseComment) { m_HTTP->AddGetData("close_comment", "true"); } setCloseCommnet 값이 BOOL값이라 BOOL값은 또 int로 정의되어 있기에 저렇게 작성했었는데, 퀄컴의 MSM CPU에서는 계속 댓글이 닫히는 문제가 생기는 것입니다. setCloseCommnet값이 FALSE라도.. 더보기
WTL 8.1 출시 http://sourceforge.net/project/shownotes.php?release_id=680959&group_id=109071 - changed version number - updated CPL link in headers - fixed warning for _vstprintf - added wizard setup programs for VS2008 WTL 8.1이 출시 되었네요. 다운로드는 : http://sourceforge.net/project/showfiles.php?group_id=109071&package_id=321560&release_id=680959 WTL 개발을 쉽게 해주는 WtlWiz, WTL Helper 가 2008 용으로 나왔으면 좋겠습니다. ( 이것때문에 2005.. 더보기
CakePHP paginator 에서 순서대로 번호를 보여주기 CakePHP의 paginator는 굉장히 훌륭합니다. ㅠ_ㅠ 번거로운 페이징 작업을 아주 간단하게 해주죠. 필요해서 리스트에서 번호를 보여줄때 순서대로 번호를 매기는 것을 방법을 생각했습니다. $paging = $paginator->params(); $vid = intval($paging['count']) - (intval($paging['page']) - 1) * intval($paging['options']['limit']); foreach ($datas as $data): .... $vid--; endforeach; View에서 paginator->params([Model]) 을 호출하면 paginator의 옵션과 설정된 값들을 배열로 리턴합니다. 그중에서 전체글수, 현재 페이지, 각 페이지당 글.. 더보기
MySQL 1140 에러 ERROR 1140: Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns isillegal if there is no GROUP BY clause SUM, COUNT, AVG, MIN, MAX 등의 함수와 일반 컬럼을 동시에 사용하기위해서는 GROUP BY 절이 필요합니다. 다음과 같은 SQL도 동일한 에러를 발생시킵니다. SELECT owner, COUNT(*) FROM pet; 하지만 GROUP BY를 사용하면 각 그룹별로 나누어서 보여주기 때문에, 전체행에 대한 여러 값을 구할 수가 없습니다. 이럴 때는 GROUP BY NULL 을 사용해서 그룹을 만들지 않고 모든 행을 연산할 수 있습니다. SELECT COUNT( DIST.. 더보기
굿모닝 팝스 RSS 변환! 굿모닝 팝스를 매일 들으며 rss를 통해서 팟캐스트로 스마트폰으로 가끔식 듣고 있었는데 어느세 KBS에서 tune이라는 서비스를 하면서 별도의 ActiveX 를 이용해서만 다운이 되더군요. 그래서 오늘 잠깐 독서실을 째고 루비로 만들어 봤습니다. 일단 Wireshark를 이용해서 tune으로 굿모닝 팝스 mp3 url을 패킷캡처해서 알아냈습니다. 아주 간단하더군요. 그리고 우리의 무료 Ruby 호스팅 사이트인 Heroku의 개발용 사이트인 Herokugarden 에서 간단하게 mp3를 다운받을 수 있는 RSS를 만들었습니다. require 'net/http' require 'uri' require 'rexml/document' class RssController < ApplicationController.. 더보기
관례를 중시하는 웹 프레임워크와 삽질 오늘 CakePHP의 AuthComponent 덕분에 하루종일 삽질을 하게 되었습니다. CakePHP, Ruby on Rails 빠르게 웹 개발이 가능한 MVC 프레임워크는 관례를 중요시 하고 그 관례로 인해 빠르게 개발이 가능합니다. 하지만 관례만 따르기는 뭔가 답답한 감이 들기도 합니다. 그래서 오늘의 삽질이 시작되었습니다. CakePHP역시 Ruby on Rails 처럼 비슷한 관례가 있습니다. 예를 들어 CakePHP도 Rails처럼 Model은 단수 Controller는 복수입니다. CakePHP에서 맘에드는 점은 Table 즉 DB를 쓰지않는 Model을 사용할 수도있습니다. Model에 $useTable 변수를 변경하는 것만으로 Model을 데이터베이스가 아닌 다른 것들로 채울 수 있는 방법.. 더보기
Heroku 윈도우즈에서 사용하기 Heroku는 무료 Rails 호스팅 사이트 입니다. 다만 일반 호스팅과는 다르게 Git를 이용해서 Rails 어플리케이션을 갱신합니다. Heroku에 가입을 하고 로그인을 하면 http://heroku.com/pages/quickstart 화면이 나옵니다. 이제 자신이 만든 어플리케이션을 heroku에 등록해 봅시다. 처음으로 Git 를 설치해야 합니다. 여기서는 msysgit를 설치 합니다. 홈페이지(http://code.google.com/p/msysgit/)에 가면 윈도우즈용 인스톨러가 있습니다. 설치합니다. 설치하는 중간에 Bash를 이용할 것인지 윈도우즈의 CMD를 이용할 것인지 묻는 창이 나옵니다. 저는 여기서 기본 윈도우즈의 CMD를 사용할 것이라서 두번째를 선택 했습니다. SSH로 어떤것.. 더보기