먼저 범주부터 나열하자면 다음과 같습니다.

List 계열
AbstractListArrayListLinkedListVector 


Map계열 
AbstractMapAttributesHashMapHashtableIdentityHashMapRenderingHintsTreeMapWeakHashMap


Set계열
AbstractSetHashSetLinkedHashSetTreeSet

 

위의 List, Map,Set은 모두 Collection이라는 넘의 자식이라고 생각하시면됩니다.

말그대로... 먼가를 수집하는 박스라는 의미이죠.

 

Collection, List, Map,Set은 모두 구현되지 않은 interface입니다. 그냥 이러이러하다고 틀만 잡아놓은거죠... 이것들을 실제로 사용할 수 있게 구현한것이 위에 적어 놓은 자식들입니다.

예를들어보자면..

List a = new Vector();  --> 다형성(부모는 여러가지 자식의 형태로 나타날 수 잇다.)의 예가됩니다.

이러한 것은 가능하지만...

List a = new List();

이렇게는 사용할 수없다는 것입니다.

 

 

 

이러한 Collection 의 자식들은 자신들만의 고유한 특징을 명확히 가지게됩니다.

List :  수집의 순서가 있으며, 동일한 데이터의 중복 입력이 가능합니다.

          순차적으로 대량의 데이터를 억세스하거나 입력할때 유리한 방식입니다.

 

Map : Key & Value의 형태로 입력이되며, 키값을 입력하면 해당하는 value값을 획득할 수있습니다. 수집의 순서를 기억하지 않으며, 동일한 데이터를 Key값으로 사용할 수 없습니다. (물론 key값이 틀리고 value값이 동일한건 가능합니다.)

다건의 데이터에서 원하는 특정 데이터에 접근(검색)할 때 유리한 방식입니다. 

 

Set : 중복데이터를 불허하는 것을 제외하고는 큰 특징이 없습니다.

      입력되는 당시의 순서에는 따르지 않으나... 순차적인 접근을 위해서는 Iterator로 접근하게됩니다.

 

그리고 각가의 구현 class들의 특징도 조금씩이나마 차이가 발생합니다.

음.. 예만 들어보자면... 같은 Map 계열임에도 불구하고.. HashMap은 데이터 입출력이 동기화되지 않고 처리속도가 빠른 반면  HashTable은 모든 입출력이 동기화(토근을 부여받아 순차적으로 객체에 접근)되며 처리속도는 다소 떨어지게됩니다.

 

그외 List계열의 Vector와 ArrayList도 Vector가 synchronized(동기화) 되는 반면 ArrayList는 그렇지 않다는 정도입니다.(물론 특정상황에서는 이것이 매우 중요한 문제가 될 수 있습니다.)





 출처 : http://blog.naver.com/atonikkaz?Redirect=Log&logNo=10017976539

Posted by 철냄비짱
,

============================= 발췌 부분 시작 ======================================
JSP 2.0의 el( ${} )과 jstl(c, fmt, fn)을 쓰다보면 이렇게 편할수 있구나 하고 느꼇는데...
뭔가 부족한게 있어서 fn관련 Soruce를 보게 되었는데..
헉.... fn.tld를 보면 <function>이라는 tag에 class명과 호출 방식으로 선언되어 있고
Classs를 보면 일반 Static function을 바로 불러 쓰고 있었습니다.
다음은 fn.tld의 예 인데.. 너무 단순하지요...
taglib를 만든 다기 보다는 taglib에 기존 Class 함수를 정의만 해두면 되니까요.
예제
------------------- [mi-html-util.tld]----------------
<function>
<description>
New line to br tag
</description>
<name>nl2br</name>
<function-class>
javacross.util.HTMLUtil
</function-class>
<function-signature>
java.lang.String nl2br(java.lang.String)
</function-signature>
<example>
${mhtml:nl2br(String txt)}
</example>
</function>
---------------- HTMLUtil.java --------------
package javacross.util;
public class HTMLUtil {
static final RE reg_NL = new RE("(\015\012)|(\015)|(\012)");
public static String nl2br(String txt){
if (txt == null) {
return null;
} else {
return reg_NL.subst(txt,"<br />" );
}
}
public static String null2nbsp(String txt){
if (txt == null) {
return "&nbsp;";
} else {
return txt;
}
}
}
------------------- test.jsp ----------------------
<%@ page language="java" contentType="text/html; charset=MS949" %>
<%@ taglib prefix="mhtml" uri="/WEB-INF/tld/mi-html-util.tld" %>
<table>
<tr>
<th>테스트 해보기</th>
</tr>
<tr>
<td>${mhtml:nl2br(course.first_remark)}</td>
</tr>
</table>
============================= 발췌 부분 끝 ========================================

출처 : http://haruma95.blog.me/80009565986
Posted by 철냄비짱
,
아직 Parallels 6와 Lion의 호환성에 문제가 있는듯. 
다음 쉘 명령을 통해 커널익스텐션을 로딩해 주면 정상적으로 작동. 

응용프로그램 > 유틸리티에 있는 터미널을 실행 한다음 다음 Shell명령을 한줄씩 실행 합니다.
 

1. Shell 명령:
sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/prl_hypervisor.kext"
sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/prl_hid_hook.kext"
sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/prl_usb_connect.kext"
sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/prl_netbridge.kext" 
sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/prl_vnic.kext"


2. 위에 5가지 를 한방에 
for x in prl_hypervisor prl_hid_hook prl_usb_connect prl_netbridge prl_vnic; do      sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/$x.kext"; done 


3. Update Parallels.
Parallels 12090 버젼에서는 정상적인 구동을 확인함.

 
출처 : http://ngsung.tistory.com/2
Posted by 철냄비짱
,

Posted by 철냄비짱
,

T420s 4171 6HK

Person/Favorite 2011. 5. 17. 17:49

2년여 만에 교체된 씽크패드 ^^










 








정확한 사양.
여기서 메모리 4기가 업. 토탈 8기가.

Posted by 철냄비짱
,

지금까지 낸드로이드 / HD2 윈도우폰7 만들기에 대해서 설명해드렸습니다. 

그런데 낸드로이드는 설치 만으로 거의 모든 작업을 할 수 있습니다. 일단 구글마켓 자체가 사용자 인증 보안 수준이 상당히 낮아서
완벽하게 안드로이드를 즐길 수 있습니다. 

하지만 윈도우폰7은 그렇지 못합니다. 엑스박스의 사례에서 볼 수 있듯이 언제든지 불법 사용자를 블럭할 수 있는 시스템을 갖추고 있습니다.
윈도우폰7도 예외는 아니라서 불법(?)으로 윈도우폰7을 HD2에 설치하게 되면 윈도우폰7을 사용하는데 필수적인 서비스인 윈도우라이브계정
활성화가 불가능합니다. 

하지만 방법이 없는 것은 아닙니다. 다행히 아직 윈도우폰7 운영체제 인증이 완벽한 수준이 아니기 때문입니다. 아주 드물게 진짜 윈도우폰7도
라이브 계정 활성화가 이루어지지 않는 경우가 있습니다. 그렇다면 이 분들은 어떻게 라이브 계정을 활성화할까요??????

고객센터에 전화해서 활성화코드를 발급받을 수 있습니다. 다만 지금까지의 정황을 살펴보았을 때 활성화코드에 필요한 정보는 모델명 정도인
것 같습니다. 특정 모델명을 알려주고 받은 활성화코드가 다른 모델에서는 먹히지 않기 때문이죠. 그 이외의 일련번호 등에 대한 정보를 물어보는
것은 복불복이기 때문에 일련번호 자체가 활성화코드와는 연관이 없는 것으로 생각됩니다. 


그럼 어떻게 하면 될까요??? 

일단 저는 http://forum.xda-developers.com/showthread.php?t=911579 에서 참고를 했습니다. 

하지만 그 전에 제가 작성한 

http://www.todaysppc.com/mbzine/bbs/view.php?id=free&page=1&sn1=&divpage=15&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=74435 까지의 작업이 완료가 되어야
합니다. 

그래서 우선 HD2에 WP7이 설치되었다는 전제 하에서 필요한 방법을 알려드리겠습니다. 


일단 한방에 압축한 파일을 받습니다. 작업에 필요한 파일(XDA에서 받음), 개발툴, ZUNE 등 필요한 파일을 모두 모았습니다. 

분할파일1.
분할파일2.






1. Windows Phone Devoloper Tools를 설치합니다. 

WPDT 다운로드 : http://download.microsoft.com/download/1/7/7/177D6AF8-17FA-40E7-AB53-00B7CED31729/vm_web.exe

실행파일은 용량이 매우 작지만 설치파일을 별도로 다운로드 후 설치하기 때문에 전체 설치 시간이 조금 걸립니다. 

또는 제가 첨부한 압축파일 1. WPDT_setup 폴더에 있는 vm_web.exe를 실행합니다.




2. PC용 ZUNE을 설치합니다. 

ZUNE 다운로드 : http://go.microsoft.com/?linkid=9753463

또는 제가 첨부한 압축파일 2. ZUNE_setup 폴더에 있는 ZuneSetupPkg.exe 를 실행합니다.




3. WPDT 및 ZUNE이 설치되면 ZUNE을 실행하고 WP7이 설치된 HD2를 연결합니다. 그리고 파트서쉽 설정을 합니다.


드라이버 설치는 인터넷이 연결되었을 때 자동으로 이루어집니다. 그리고 디바이스가 제대로 인식이 되었다면 ZUNE에서의 설정이 시작됩니다.












이렇게 ZUNE과 HD2와의 파트너관계 설정이 완료되면 디바이스 정보를 확인할 수 있습니다. 


지금부터는 언락작업과 HD2를 HD7으로 변신시키기 위한 작업을 해야합니다. 

대략의 순서는 

언락 -> 프로그램 설치 -> 파일교체로 진행이 됩니다. 



4. WP7의 메일계정 설정을 합니다. 단 절대 윈도우라이브메일이 아닌 기타 메일로 설정합니다.

그 이유는 첫번째 설정하는 라이브계정은 삭제가 불가능한데 라이브계정을 어떻게 설정했냐에 따라서 마켓플레이스 등을 사용할 수 
없게 됩니다. 보통 쥐메일을 사용하시면 무난합니다. 


5. WP7에서 설정한 메일 계정으로 ChevronWP7.cer파일을 첨부해서 보냅니다. 

제가 첨부한 압축파일 5. ChevronWP7.cer_mail 폴더 ChevronWP7.cer이 있습니다. 이 파일을 메일로 보냅니다.



6. WP7에 도착한 메일에 첨부된 ChevronWP7.cer를 설치합니다. WP7에서 설치합니다. 

왜 메일로 보내느냐? WP7은 탐색기를 제공하지 않기 때문입니다. 때문에 메일로 첨부된 파일을 설치하면 됩니다. 1KB의 작은 용량
이므로 3G로 받으셔도 됩니다. 물론 Wi-Fi로 받으셔도 무방합니다.

<input src="http://www.todaysppc.com/userfiles/P1170665.JPG" width="250" height="417" type="image" /> <input src="http://www.todaysppc.com/userfiles/P1170673.jpg" width="250" height="417" type="image" /> <input src="http://www.todaysppc.com/userfiles/P1170674.jpg" width="250" height="417" type="image" />






7. ZUNE과 WP7에 연결된 상태에서 ChevronWP7.exe를 관리자 권한으로 실행합니다.

제가 첨부한 압축파일 7. ChevronWP7.exe 폴더에 ChevronWP7.exe 이 있습니다.



<input src="http://www.todaysppc.com/userfiles/123123(14).jpg" width="600" height="319" type="image" />


간혹 에러가 발생하는 경우가 있습니다. 


첫 번째 경우

<input src="http://www.todaysppc.com/userfiles/1116(1).jpg" width="319" height="161" type="image" />

이 경우 setting ->  lock & wallpaper 설정으로 가셔서 password를 off로 바꾸고 Scrren time-out을 never로 설정하세요. 



두 번째 경우 

<input src="http://www.todaysppc.com/userfiles/1117(1).jpg" width="421" height="174" type="image" />

이 경우 원인이 여러가지입니다. 때문에 가장 추천하는 방법은 1번부터 다시 해보시는 것 입니다. 케이블 문제일수도 있습니다. 

가급적 상태좋은 정품 케이블 이용을 부탁드립니다. 




언락화면은 다음과 같습니다. 

<input src="http://www.todaysppc.com/userfiles/1118.jpg" width="500" height="318" type="image" />

체크박스 2개를 모두 누른다음에
Unlock은 1번만 누릅니다. Unlock / Relock반복이 가능하기 때문입니다. 2번 누르면 다시 Relock이 되는 것이죠. 

쉽게 설명하면 
Unlock버튼이 보이는 상태라면 현재 lock이 걸린 상태
Relock버튼이 보이는 상태라면 현재 unlock이 된 상태입니다.


언락이 성공하면 어플리케이션을 설치해야 합니다. 윈도우폰7용 앱은 .xap확장자인데 PC에서는 실행되지 않습니다. 

때문에 .xap이 실행할 수 있게 도와주는 프로그램을 먼저 실행합니다.




8. Tom XAP Installer.exe 폴더에 있는 Tom XAP Installer.exe 를 관리자 권한으로 실행합니다. 

여기서 9번의 .xap확장자 파일 3개를 설치할 때 까지 Tom XAP Installer.exe는 실행이 되고 있어야 합니다. 

<input src="http://www.todaysppc.com/userfiles/1119(2).jpg" width="367" height="121" type="image" />





9. xap_3_setup 폴더에 있는 TouchXplorer.xap / XBMODDeployer.xap / Connection Setup.xap를 3개를 모두 설치합니다. 





Install to는 기본 Device로 되어 있습니다. 변경하지 말고 Install을 누르면 잠시 후에 HD2의 화면에 설치된 앱이 실행되어
설치가 완료되었다는 것을 확인할 수 있습니다.



이제 PC에서 설정해야 할 기본적인 것들이 완료되었습니다. 




중간보고 : 최대한 간략하고 쉽게 정리하려고 하는데 아직까지 내용이 좀 남았습니다.. 헥헥헥





XBMODDeployer.xap의 역활은 디바이스를 변경하는 레지스트리 정보가 담긴 CustClear.provxml 파일을 
My Device/My Documents/My Ringtones로 복사하는 것입니다. 원하는 기기 정보에 맞는 CustClear.provxml 를 생성하는 
커스텀 XBMODDeployer.xap를 만드는 방법이 있으나 상당히 번거롭고 이미 HD2를 HD7으로 변경하는 XBMODDeployer.xap가 
배포되었기 때문에 별도로 생성할 필요 없이 첨부파일을 이용하시면 됩니다. 

 

10. TouchXplorer를 실행하여 My Device/My Documents/My Ringtones로 이동하여 CustClear.provxml 를 복사(Copy)합니다.



<input src="http://www.todaysppc.com/userfiles/P1170676.JPG" width="250" height="417" type="image" /> <input src="http://www.todaysppc.com/userfiles/P1170678.JPG" width="250" height="417" type="image" /> <input src="http://www.todaysppc.com/userfiles/P1170680.JPG" width="250" height="417" type="image" />



11. 복사한 CustClear.provxmlWindows폴더에 붙어넣습니다(Paste)


<input src="http://www.todaysppc.com/userfiles/P1170683.JPG" width="250" height="417" type="image" /> <input src="http://www.todaysppc.com/userfiles/P1170684.JPG" width="250" height="417" type="image" />


12. connection setup을 실행합니다. 실행하는 방법은 V체크를 누르면 됩니다. 

<input src="http://www.todaysppc.com/userfiles/P1170685.JPG" width="250" height="417" type="image" /> <input src="http://www.todaysppc.com/userfiles/P1170686.JPG" width="250" height="417" type="image" /> <input src="http://www.todaysppc.com/userfiles/P1170687.JPG" width="250" height="417" type="image" />



이제 HD7 변신이 완료되었습니다.!!!! 축하드립니다. 

지금까지 왜 이 짓을 했냐? 마이크로소프트 US 콜센터에 전화를 걸어서 엑티베이션 코드를 받으려고 해도 기기정보가 HD7으로
변경이 되어 있지 않는다면 인증이 되지 않습니다. 

그래서 단지 기기 정보를 HD7으로 바꾸기 위해서 이 기나긴 과정을 거친 것입니다. 



그렇다면 HD7으로 변경되었는지 확인해볼까요?? 

<input src="http://www.todaysppc.com/userfiles/P1170689.JPG" width="500" height="667" type="image" />

보다시피 잘 바뀌었죠? 만약 reset your phone을 누르시면 원상복귀됩니다. 




그렇다면 이제는 엑티베이션 코드를 구해야죠??? 왜 엑티베이션 코드를 구해야 될까요? 윈도우폰7의 핵심 서비스라 할 수 있는 

마켓플레이스 / 엑스박스 라이브를 사용하기 위해서는 Windows Live에 가입을 해야 합니다. 대부분 핫메일/msn정도는 가입이 되어 있을테지만
한국에서 생성된 계정으로는 이용할 수 없습니다. 

그래서 인터넷 브라우저 언어설정을 영어로 바꾸고 신규 계정을 생성합니다. 물론 모든 지역 설정을 US & Canada로 맞추셔야 합니다. 
이 과정은 간단한 과정이므로 설명하지 않겠습니다. 


이렇게 생성된 Live계정을 Setting - e-mail & account에서 입력할 수 있습니다.


<input src="http://www.todaysppc.com/userfiles/P1170692.JPG" width="250" height="417" type="image" /> <input src="http://www.todaysppc.com/userfiles/P1170694.JPG" width="250" height="417" type="image" />

이렇게 계정을 입력할 수 있습니다. 그러나...



<input src="http://www.todaysppc.com/userfiles/P1170695.JPG" width="480" height="800" type="image" />


짠!!! 이렇게 Activation Falied라는 메세지가 뜹니다. 

뭐 간단하게 이야기 하면 라이브 서버님께서 "나는 그 기계가 진짜인지 가까인지 모르겠다." 라는 것입니다.



하지만 방법은 있으니 바로 ..


<input src="http://www.todaysppc.com/userfiles/P1170696.JPG" width="480" height="800" type="image" />

시디키스러운 정보를 요구한다는 것입니다. 이 정보만 구할 수 있다면 우리의 HD2의 변신이 완벽해진다는 것이죠. 

이 정보를 Activation Code라고 하며 MS에서만 얻을 수 있습니다. 사실 지금부터는 애드립이 필요합니다. 중딩 수준의 회화능력도 필요합니다.




그래서 정리한 "엑티베이션 코드 구하기"




1. 스카이프 설치.
2. 스카이프 지역설정미국으로 설정
3. 800-642-7676으로 전화합니다. 미국으로 설정되어 있으면 무료로 전화 가능하며 국가번호는 기본 세팅되어 있을 것입니다. 



지금부터 자동 안내가 나옵니다. 아쉽게도 남자 목소리입니다. 

첫 번째 질문 : 테크니컬 서포트(Technical Support).... 혀를 잘 굴려주세요. 안그러면 모른다고 합니다. 
계속 인식이 안되면 키패드로 맞으면 1, 틀리면 2라고 묻기도 하고 종국에는 안내원 연결해주긴 합니다. 

두 번째 질문 : 퍼스널(Personal) , 개인용 제품이기 때문입니다. 그 밖에 비지니스 및 마이크로소프트 파트너 등이 있지만 해당 없음. 퍼스널의 발음을 엉성하게 하면 "파트너"로 인식해서 기업관련 항목으로 넘어가버립니다. 사실 제 발음이 별로인 것입니다.

세 번째 질문 : 아돈도(I don t Know) 어떤 product를 사용하는 것인지 물어보는 것인데 윈도우폰 / 윈도우모바일 / 윈도우폰7 모두 
인식이 안됩니다. 그래서 모른다고 하면 됩니다. 

네 번째 질문 : 노(NO), 케이스넘버를 물어보는데 모릅니다. 그냥 노. 하면 됩니다.


대략 이 과정을 거치면 상담원이 연결되며 물론 계속 인식이 실패해도 상담원이 연결됩니다. 



처음 인사를 하고 

1) First Name, Last Name을 물어봅니다. 본명을 쓰셔도 되고 가명을 쓰셔도 되고... As you wish...
2) US인지 Canada인지 물어봅니다. 전 not US / not Canada라고 답변을 했습니다. 전 솔직하니까요....
3) 그럼 어디인지 물어봅니다. South Korea라고 답변했습니다. 

여기서 중요합니다. 아마 해당 국가에 있는 지사 번호를 알려주겠다 혹은 연결하겠다... 정도의 이야기를 하는데 중간에 말을 가볍게 끊어주시고 

우리나라에 있는 마이크로소프트는 아직 윈도우폰7을 지원하지 않는다. 라고 답변했습니다. 
(My country s Microsoft do not support Windows phone 7 yet) 정도? 참고로 저 영어 안건드린지 몇 년 되었습니다. 너무 신뢰하지 마세요.

제가 만난 상담원은 여기서 OK. 그럼 뭐가 필요한데? 정도로 잘 넘어갔습니다. 다만 윈도우폰7을 윈도우7으로 알아먹더군요. 그래서 
윈도우"폰"7이라고 이야기 하니 OKOK.....대충 이런 식으로 대화가 진행됩니다. 

본격적으로 문의사항을 이야기 하기 전에 전화번호 및 이메일주소를 물어봅니다. 사실 전 워싱턴지역번호 voip하나 따서 fring에 연결해놓는
준비까지 했지만 Korea으로 한번 시도해본 이상 쓸 이유가 없었죠. 그냥 제 셀폰 넘버 알려줬습니다. 이메일은 수 많은 것 중 하나를 알려
줬습니다. : )



다음이 중요한데...여기서는 본인의 영어 실력에 맞게  저는 대략 이렇게 이야기 했습니다. 물론 실제 이야기한 것과 차이가 있을 수 있어요. 
문법이 틀리냐... 그런거로 태클걸지 마시길......

I am using HTC HD7. As you know, This is winodow phone 7. 
I tried to set Windows Live account in my phone. But phone shown Activation Failed message and require activation code. 
Maybe this code consist 5 group. Please give me activation code....


대략 이 정도 내용으로 상담원이 중간에 말을 끊지 않고 제 상황을 이야기해주었습니다. 
다음에 간단한 확인내용을 주고 받은 이후...(Activation Code. Right?.. 같은 내용들..)  잠시만 기다려주세용...


-----------그리고 노래가 대략 5분 안밖 동안 나옵니다.------------


상담원이 다시 등장하면 엑티베이션코드를 준비하고 이야기할 건데 Pen & Paper있냐고 물어봅니다. 가급적 손을 써야 하니 핸드프리가 
있으면 좋겠죠??? 상담원이 어떻게 이야기 하냐??

일단 알파벳 5자리가 5그룹이 있다고 이야기 해줍니다. 그럼 알파벳만 불러주냐??? 그럼 절대로 못 알아듣습니다. 친절한 상담원 님께서는

A for Apple, 이런 식으로 알려줍니다. 

만약 1st gruop이 AYQDP라면
A for Apple, Y for Yankee, Q for Quarterback, D for Dog, P for Product or PAPA... 헷갈리면 이렇게 몇 개 단어를 더 불러줍니다. 

숫자는 7일 경우 number seven. 이렇게 불러줍니다.


그래서 1st Group이 끝나면, 제가 똑같이 불러줍니다. A for Apple and, 블라블라......A for Apple, 

확인하고 마지막으로 right? 붙여주면 맞으면 ok, 틀리면 모르겠습니다. 뭐 다시 불러주겠죠. 

다음 2nd group, 3rd group, 4th, 5th .......까지 불러줍니다. 서로 반복적으로 불러야 하기 때문에 시간이 좀 걸립니다. 저도 대략 5~10분 정도
걸린 것 같습니다. 이 과정만...


저는 바로 HD2를 준비해서 그 자리에서 입력했습니다. Please wait a minute, now I m setting up my phone.....그리고 입력하면서 please wait...연발......

결국 성공했고 바로 성공했다고 이야기 했습니다. 

탱규 연발을 날려주면서 상담원의 기분을 살려줍니다. 기왕에 힘들게 안되는 영어 쓰면서 이야기 했는데 탱큐정도는.......




제가 했던 이야기를 가감없이 이야기 했습니다. 사실 언제 막힐지 모르고 실제 시도하시는 분들이 많지 않은 것 같더군요. 타 커뮤니티에
가봐도 성공기는 그리 많지 않습니다. 그리고 복불복입니다. 어떤 상담원을 만날지 모릅니다. 하지만 우리에겐 CID표시가 죽어도 안되는
스카이프가 있습니다.(설마 IP가 표시되지는 않겠지....)

한번 도전해보세요. HD2가 있으신 분이라면.........


<input src="http://www.todaysppc.com/userfiles/P1170697.JPG" width="600" height="450" type="image" />

HTC허브가 설치되어 있죠? 마켓플레이스에서 받았습니다. 일부 기능에서 한글 입력이 가능한 KOREAN SNS도 마켓에서 받았습니다. 
엑티베이션 코드만 있으면 굳이 .xap파일로 설치할 필요가 없습니다. 마켓플레이스가 가능하기 때문이죠.


<input src="http://www.todaysppc.com/userfiles/P1170698.JPG" width="600" height="450" type="image" />

게임도 받았습니다. WP7용 비쥬얼드 상당히 그래픽이 향상되었더군요. 그리고 WP7런칭 행사 때 보여준 ilomilo도 나왔습니다. 


<input src="http://www.todaysppc.com/userfiles/P1170701.JPG" width="600" height="450" type="image" />

다운로드가 가능하죠? 물론 2.99불 주고 구입한 것은 아니고 try로 구매한 것입니다. 일부 기능만 맛볼 수 있죠. 
이 기능은 마켓플레이스의 장점인 것 같습니다.







헉헉... 숨차네요.
추천:빨강망치
추천:돌깨기

출처 : http://blog.naver.com/magnesiumb?Redirect=Log&logNo=100121217162
Posted by 철냄비짱
,

Ajax 사용시 공부부족으로 고생한 UpdatePanel 사용법

<asp:UpdatePanel ID="MainUpdatePanel" runat="server" UpdateMode="Conditional">
  <ContentTemplate>

    <!-- 컨트롤 및 디자인 배치 -->
  </ContentTemplate>

  <Trigger>
    <!-- Trigger 옵션 --> 
  </Trigger>
</asp:UpdatePanel>


UpdateMode : Always(전체 PostBack), Conditional(비동기 CallBack)
프로그래밍부분에서 Update 호출 : MainUpdatePanel.Update(); 실행.
이벤트액션에서 Update 호출 : Button 컨트롤이 UpdatePanel 태그 안에 있어야 부분 Reload 가능.

Posted by 철냄비짱
,

JavaScript event.keyCode 자바스크립트 이벤트 키코드표

---------------------------------------
키코드표
---------------------------------------
←(백스페이스) = 8
TAB = 9
ENTER = 13
SHIFT = 16
CTRL = 17
ALT = 18
PAUSEBREAK = 19
CAPSLOOK = 20
한/영 = 21
한자 = 25
ESC = 27
스페이스 = 32

PAGEUP = 33
PAGEDN = 34
END = 35
HOME =36
←(중간) = 37
↑(중간) = 38
→(중간) = 39
↓(중간) = 40
INSERT = 45
DELETE = 46

0 = 48
1 = 49
2 = 50
3 = 51
4 = 52
5 = 53
6 = 54
7 = 55
8 = 56
9 = 57

A = 65
B = 66
C = 67
D = 68
E = 69
F = 70
G = 71
H = 72
I = 73
J = 74
K = 75
L = 76
M = 77
N = 78
O = 79
P = 80
Q = 81
R = 82
S = 83
T = 84
U = 85
V = 86
W = 87
X = 88
Y = 89
Z = 90

윈도우(왼쪽) = 91
윈도우(오른쪽) = 92
기능키 = 93

0(오른쪽) = 96
1(오른쪽) = 97
2(오른쪽) = 98
3(오른쪽) = 99
4(오른쪽) = 100
5(오른쪽) = 101
6(오른쪽) = 102
7(오른쪽) = 103
8(오른쪽) = 104
9(오른쪽) = 105

.(오른쪽) = 110
/(오른쪽) = 111
*(오른쪽) = 106
+(오른쪽) = 107
-(오른쪽) = 109

F1 = 112
F2 = 113
F3 = 114
F4 = 115
F5 = 116
F6 = 117
F7 = 118
F8 = 119
F9 = 120
F10 = 121
F11 = 122
F12 = 123

NUMLOCK = 144
SCROLLLOCK = 145
=(중간) = 187
-(중간) = 189
`(왼쪽콤마) = 192
\(중간) = 220
--------------------코드값알기---------------------
안녕하세요.
event.keyCode를 사용하시는 분들중에서 코드를 몰라서 못쓰시는 분들이 있을것
같아서 올립니다. 분명히 말씀드리지만 아시는 분들도 계실겁니다.
모르는 분들을 위해 올리는 것입니다. 혹시나 아신다고 욕쓰고 그러지 마십시요.
저번에도 알고리즘 하나 올렸는데 욕무지쓰셔서 속상했습니다..ㅠㅠ
그럼 즐거운하루 되시고...

그리고 코드를 알아낼수있는 방법은 다음과 같습니다.
<html>
<head>
<script>
function key_check(){
alert!("키번호는 [" +event.keyCode+ "] 입니다.");
}
</script>
</head>
<body onKeyDown='key_check();'>
알고싶은 키패드를 꽉! 눌러주세요...ㅡㅡ;
</body>
</html>

-------------------사용법-------------------------
필드 입력하고 나서 엔터 때리면 이벤트 발생
event.keyCode 의 키표를 보고 어떤걸 누룰것이지?
<input type="text" name="ccc"
omKeyDown="javascript:if(event.keyCode==13){alert!('ok!');}" >

-------------------------------------
출처 두군데것 조합 햇음


Posted by 철냄비짱
,

using Excel = Microsoft.Office.Interop.Excel;

 

ExcelSaveDialog.Title = "저장";
            ExcelSaveDialog.CreatePrompt = true;
            ExcelSaveDialog.OverwritePrompt = true;
            ExcelSaveDialog.FileName = dirPath.Substring(0, 4) + "년" + dirPath.Substring(4, 2) + "월" + dirPath.Substring(6, 2) + "일" + dirPath.Substring(8, 2) + "시" + dirPath.Substring(10, 2) + "분수검로그";
            ExcelSaveDialog.DefaultExt = "xls";
            ExcelSaveDialog.Filter = "Excel files(*.xls)|*.xls";
            ExcelSaveDialog.InitialDirectory = "C:\\HRDTMS\\받은자료";
           
            DialogResult result = ExcelSaveDialog.ShowDialog();
            if (result == DialogResult.OK)
            {
                try
                {
                    object missingType = Type.Missing;
                    FileInfo Logtxt = new FileInfo("C:\\HRDTMS\\SET_LOG\\" + CurDate + "_Log.txt");
                    if (Logtxt.Exists)
                    {
                        Excel.Application xls = new Excel.Application();
                        Excel._Workbook wbook = (Excel._Workbook)(xls.Workbooks.Add(Missing.Value));
                        Excel._Worksheet wSheet = (Excel._Worksheet)wbook.ActiveSheet;
                        xls.Visible = false;

                        StreamReader sr = new StreamReader("C:\\HRDTMS\\SET_LOG\\" + CurDate + "_Log.txt", System.Text.Encoding.Default);
                        int i = 0;
                        while (true)
                        {
                            string log = sr.ReadLine();
                            if (log == null)
                            {
                                break;
                            }
                            string[] token = log.Split('|');
                            i++;

                            if (i == 1)
                            {
                                wSheet.Cells[i, 1] = "시간";
                                wSheet.Cells[i, 2] = "PC번호";
                                wSheet.Cells[i, 3] = "비번호";
                                wSheet.Cells[i, 4] = "이름";
                                wSheet.Cells[i, 5] = "사용한연장시간";
                                wSheet.Cells[i, 6] = "로그";
                            }
                            if (log == "")
                            {
                                wSheet.Cells[(i + 1), 1] = "";
                                wSheet.Cells[(i + 1), 2] = "";
                                wSheet.Cells[(i + 1), 3] = "";
                                wSheet.Cells[(i + 1), 4] = "";
                                wSheet.Cells[(i + 1), 5] = "";
                                wSheet.Cells[(i + 1), 6] = "";
                            }
                            else if (log != "" && i != 1)
                            {
                                wSheet.Cells[(i + 1), 1] = token[0];
                                wSheet.Cells[(i + 1), 2] = token[1];
                                wSheet.Cells[(i + 1), 3] = token[2];
                                wSheet.Cells[(i + 1), 4] = token[3];
                                wSheet.Cells[(i + 1), 5] = token[4];
                                wSheet.Cells[(i + 1), 6] = token[5];
                            }
                        }
                        sr.Close();
                        wbook.SaveAs(@ExcelSaveDialog.FileName, Excel.XlFileFormat.xlWorkbookNormal, missingType, missingType, missingType, missingType, Excel.XlSaveAsAccessMode.xlNoChange, missingType, false, missingType, missingType, false);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(xls);
                        Process[] ExCel = Process.GetProcessesByName("EXCEL");
                        if (ExCel.Count() != 0)
                        {
                            ExCel[0].Kill();
                        }
                    }
                    else
                    {
                        MessageBox.Show("엑셀로 변경할 파일이 없습니다.");
                    }
                }
                catch (Exception)
                {
                    //MessageBox.Show("엑셀 파일로 변경중에 오류가 발생했습니다.");
                    Process[] ExCel = Process.GetProcessesByName("EXCEL");
                    if (ExCel.Count() != 0)
                    {
                        ExCel[0].Kill();
                    }
                }
            }

Posted by 철냄비짱
,

간혹 사용자 정의 컨트롤(.ascx) 파일에서 처리한 내용을 Page에 바로 출력하는 것이 아니라, 문자열로 받아야 할 경우가 있습니다.
ASP.NET 웹 폼의 경우에는 Page.LoadControl() 과 Control.RenderControl() 메서드를 이용하여 아래와 같은 코드로 사용자 정의 컨트롤이 처리한 내용을 문자열로 받아올 수 있습니다.

Control control = LoadControl("~/MailTemplate.ascx");

 

((MailTemplate)control).DestinationName = "Whistle";

 

StringBuilder stringBuilder = new StringBuilder();

using (StringWriter sw = new StringWriter(stringBuilder))

{

    using (HtmlTextWriter tw = new HtmlTextWriter(sw))

    {

        control.RenderControl(tw);

    }

}

 

string messageContent = stringBuilder.ToString();

ASP.NET 웹 폼은 자체가 Page 클래스를 상속받으므로, TemplateControl.LoadControl() 메서드를 사용할 수 있으므로, 사용자 정의 컨트롤을 로드하고 HtmlTextWriter를 이용하여 컨트롤의 실행된 내용을 문자열로 받아 올 수 있습니다.

ASP.NET MVC는 사용자 정의 컨트롤이 ViewUserContol을 상속받게 되며, MVC Controller는 자체적으로 ViewUserControl에 대한 LoadControl을 제공하지 않습니다,
ViewUserControl 클래스의 인스턴스를 생성은 ViewPage 클래스의 인스턴스 상에서만 가능합니다.

즉, MVC에서 사용자 정의 컨트롤이 생성하는 HTML을 문자열로 받기 위해서는, 가상의 ViewPage의 인스턴스를 생성하고, 그 ViewPage를 기반으로 사용자 정의 컨트롤을 생성한 후 ASP.NET 웹 폼에서와 같은 방법으로 문자열을 받아 올 수 있습니다.

ViewData["UserName"] = "Whistle";

 

ViewPage viewPage = new ViewPage() { ViewContext = new ViewContext() };

 

viewPage.ViewData = new ViewDataDictionary(ViewData);

viewPage.Controls.Add(viewPage.LoadControl("~/Views/Shared/MailTemplate.ascx"));

 

StringBuilder sb = new StringBuilder();

using (StringWriter sw = new StringWriter(sb))

{

    using (HtmlTextWriter tw = new HtmlTextWriter(sw))

    {

        viewPage.RenderControl(tw);

    }

}

 

string message = sb.ToString();

위와 같은 형식으로 MVC에서도 사용자 정의 컨트롤의 출력 내용을 문자열로 받아와서 처리가 가능합니다.



출처 : http://blog.ntils.com/50

Posted by 철냄비짱
,