오픈소스로 나온 zlib를 visual studio에서 컴파일 하는 방법.

visual studio 2010을 기본으로 스텝 작성

1. 파일 -> 프로젝트
2. Visual C++ -> Win32 콘솔 응용 프로그램 선택하여 zlib 라는 프로젝트명 입력.
3. 정적 라이브러리 선택, 미리 컴파일된 헤더 제거

4. 다운받은 zlib 소스의 header 파일과 source 파일을 추가하고 컴파일...

끝!!
1. 우선 Cygwin 을 닫는다.
2. command 창에서

cygwin 설치된 dir/bin/ash -c rebaseall



3. 다시 Cygwin을 실행하여 원하는 작업 진행.

이 간단한 것을 모르고.. 완전 삽질 ㅜㅜ/ 
 
MapView 에서 현재 화면의 중앙 latitude와 longitude 값을 얻는 것은 간단 합니다.

getMapCenter() 메소드를 통해서 GeoPoint를 얻기만 하면 되니까요...
그럼 화면의 최상단과 최하단의 latitude, longitude 값은 어떻게 얻을까요?
아래와 같이 하면 됩니다.

Projection proj = mMapView.getProjection();
GeoPoint topLeft = proj.fromPixels(0, 0);

GeoPoint bottomRight = proj.fromPixels(mMapView.getWidth() - 1, mMapView.getHeight() - 1);

double topLat = topLeft.getLatitudeE6() / 1E6;
double topLon = topLeft.getLongitudeE6() / 1E6;
double bottomLat = bottomRight.getLatitudeE6() / 1E6;
double bottomLon = bottomRight.getLongitudeE6() / 1E6;



이렇게 하면 현재 mapview 화면의 상단 하단의 latitude와 longitude 값을 구할 수 있습니다.
 
jar 파일을 디컴파일 하면 안에 있는 모든 내용의 소스를 풀어볼 수 있지요.
그래서 중요 코드는 난독화가 필요하고 
proguard를 통해서 코드 난독화를 진행할 수 있습니다.



기본적으로는 위 progard 홈페이지에 가서 필요 내용은 download 와 설명을 볼 수 있습니다.


proguard를 다운받고 나면 
 
bin 디렉토리안에 "proguardgui.bat" 파일이 있습니다.
이것을 통해서 gui에서 간단하게 proguard를 적용할 수 있습니다.

gui에서 직접 선택하여 진행할 수 잇고
적용할 설정 파일을 미리 작성하여 적용할 수도 있습니다.

아래 내용은 간단하게 적용한 설정 파일 내용들입니다.

-injars D:\input.jar
-outjars D:\output.jar

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.app.Activity {
   public void *(android.view.View);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}

 

 
이번 2011-12 시즌의 보딩을 위해서 구입해준
살로몬 오피셜 데크와 릴레이프로 바인딩을 구입해 주었습니다. ㅎㅎ
왠만해선 오피셜 데크가 이월이안되는 관계로다가... 입고되었다기에 구입을 위해서 학동 샵 나들이를 했지요...
오피셜데크와 릴레이프로 바인딩 조합으로 대충 가격을 예상하고... 돌아다니던 도중... 맨 마지막에 들어간 곳에서
생각보다 저렴한 가격에 주겠다고 하셔서는 구입 ㅎㅎ... 발품을 팔면 좋구나 하는 생각이 들더군요...
머 그래봤자 몇만원 차이긴 하지만... 그 몇만원 차이가 상당히 크죠 ^^

데크에 바인딩을 조립해서 택배로 배송을 요청하고 기다리는데...
도착했다는 연락을 받았습니다...
도착했을 때의 모습은

이런 모습이였습니다.. ㅎㅎ 충격 방지를 위해서 공기포장제?? 이걸로 꼭꼭 싸매서 보내주셨더군요 ㅋ
조심스럽게 포장제를 뜯기 시작해서

 보드 가방이 나타나는 군요... 아아... 이제 제 오피셜데크와 릴레이프로 바인딩이 곧!!! 보입니다 ㅎㅎ

아..드디어 구입하고 싶었던 제 오피셜 데크와 릴레이프로 바인딩 입니다 ^^...

오피셜 데크와 릴레이프로 바인딩은 한 셋트라고 할 수 있겠죠? ^^

 데크의 바닥 부분 입니다... 디자인 부분에서도 많이 신경을 쓴 모양 입니다 ^^

어여... 스키장이 개장을 했으면 좋겠네요... 이놈을 들고 가서 어여 보딩을 즐기고 싶습니다 ㅎㅎ

 릴레이프로 바인딩의 하이백 부분입니다... 이 부분을 보면 이번 데크와 디자인을 거의 맞췄다는 느낌이 듭니다... 색상의 조합이라고 할 수 있겠죠?

 세심한 부분까지의 이 깔맞춤!! ㅎㅎ

다른말 필요없고... 빨리 추워지고... 스키장 개장하고....
시즌권도 있으니... ㅎㅎㅎ 이번 겨울은 오피셜데크와 릴레이프로 바인딩이 절 즐겁게 해 줄것 같습니다 ^^ 

이직하고나서 첫 작품이 나왔습니다.
프로젝트에 뒤늦게 참여해서는 많은 부분을 담당하진 않았지만... 그래도 첫 출근부터 코딩과 야근을 했었던~
제 첫 직장이였던 소리바다에서 소리바다 안드로이드 앱 개발 했었는데... 이젠 mnet에 까지 와서 개발하게 되었네요 ㅎㅎ
mnet에서 나온 소셜 기능까지 들어간 mnet2.0...
릴리즈 하고 나니 멍~ 해지긴 하는데... 앞으로도 할일이 있으니...
우선 오자마자 하나 끝내고 잠시 있는 시간을 통해 블로그에 하나 글 남깁니다 ㅋ








 




예전부터 맥북을 하나 살까 하는 생각을 갖고 있다가
이제서야 하나 장만했습니다... 맥북프로를 살까.. 아니면 에어를 살까 고민하다가
그래도 가볍도 해상도가 좋은 에어를 선택했습니다.
개발용만으로 사용하기에는 아쉬운 cpu클럭이 있지만... 개발은 그냥 데스크탑에서 하고 에어는 휴대성과 간지용으로 사용해 보기로 했습니다. ㅋ
주문을 하고나서 배송하는데 한 일주일 걸린듯 싶어요...
cpu를 i7으로 올려서인지 조금 시간이 걸리더군요... 더군다나 주말이 끼어 있었기도 했고 ㅎㅎ

자... 그럼 박스부터... 아래 사지닝 배송된 상태입니다... 움푹 패인곳의 부분이 간담을 서늘하게 만들더군요 ㅎㅎㅎ



그리고 열었더니... 안의 내용물은 멀쩡했습니다...
그리고 제 에어만이 답겨 있는 박스 입니다 ㅎㅎ.. 뒷 사진들은 회사에서 사용하는 키보드와 마우스... 



박스를 열고나니 제 어어가 이렇게 보이네요... 



그리고 나서 포장된 부분을 없애기 위한 작업... 저 스티커가 보이는 것을 찢고 비틸을 벗기면 에어를 사용할 수 있습니다.



이제 제 에어입니다...



그리고 라이언으로 부팅한 모습이구요 ^^
뒤에 제 원피스의 써니호와 아스트레이건담.. 그리고 시난주가 에어를 반겨주고 있습니다 ㅋ 



간단하게 사용해본 결과...
cpu의 클럭이 조금 낮다는 단점이 있지만... 그래도 13인치에 가벼운 무게와 그리고 SSD 덕분에 사용하기에는 느리다는 느낌은 들지 않습니다. 그리고 지금 제가 하는 몇몇개 프로그래밍... 등을 돌렸을 때에도
상당히 만족스러웠습니다... 지금 집에서 사용하는 노트북이 대략 4년정도 되었던 모델에 SSD로 하드만 바꿔서 사용했을 때에도 아... 이정도 구나 한 경험으로 보아서는... 에어도 SSD의 성능이 있기에 이정도 퍼포먼스가 나오지 않나 싶습니다.
개발용으로 사용하기에는 많이 부족합니다.
하지만 서브용으로 사용하면서 이동성의 활용을 많이 한다면 절대 아깝지 않을 노트북인듯 싶습니다.

오랜만에 마우스를 하나 구매했습니다.
로지텍 G700 

게임을 많이 해서 게이밍 마우스를 산 것은 아니지만..
무선 마우스중에 로지텍 M950과 G700 둘중에 하나 고르던 중에 그저 G700을 골랐을 뿐입니다.
G700을 선택한 이유중에 큰 것은 DPI가 높다는 것?? 그리고 버튼이 많기 때문에 여러 설정을 할 수 있다는 것입니다.

아래 사진은 박스를 찍은 것입니다. 


아래 사진은 구성품..

이것은 마우스만 찍었습니다...



간단히 장단점을 적자면

장점
1. 버튼이 많다. 그래서 여러 버튼별로 기능을 만들어 쓸 수 있음. 개발자라 보니 컴파일 등등...
2. dpi 높다.
3. 무선? ㅎㅎ

단점
1. 배터리가 생각 이상으로 빨리 줄어든다.

몇일 사용해 본 결과 이정도밖에 모르겠네요.
배터리야 퇴근할 때 충전 케이블 연결하고 출근해서 뽑아서 무선으로 쓰고...
머 이러니 걱정은 없네요 ㅎㅎ 

+ Recent posts