2011년 12월 30일 금요일

[ActiveX] Install Check (설치여부 체크)


     ActiveX가 사양기술이지만 웹개발 하다보면 만들진 않아도 사용은 할 수 밖에 없지


    <object id="objActiveX" onerror="activeXError()"></object>

    <script language="javascript" type="text/javascript">
        var isActiveXInstall;
        function activeXError() {
            isActiveXInstall = false;
        }
    </script>

2011년 12월 24일 토요일

[GoogleAPI] MapTypeId 종류

Google Maps Javascript API V3 Map Types

기본제공 지도형태

MapTypeId.ROADMAP
     - displays the default road map view
MapTypeId.SATELLITE
     - displays Google Earth satellite images
MapTypeId.HYBRID
     - displays a mixture of normal and satellite views
MapTypeId.TERRAIN
     - displays a physical map based on terrain information.


링크

2011년 12월 21일 수요일

2011년 12월 9일 금요일

[C#] 대문자 소문자 판별


        #region 대문자판별
        public static bool IsUpper(char c)
        {
            return (0x40 < c && 0x5b > c) ? true : false;
        }
        #endregion

        #region 소문자판별
        public static bool IsLower(char c)
        {
            return (0x60 < c && 0x7b > c) ? true : false;
        }
        #endregion

2011년 12월 4일 일요일

[Error] java.lang.IllegalStateException: zip file closed


 java.lang.IllegalStateException: zip file closed

알수없는에러..

http://blog.naver.com/PostView.nhn?blogId=hazard11&logNo=80036769856&parentCategoryNo=7&viewDate=&currentPage=1&listtype=0

이클립스 재시작이 정답이다.

[MySQL] 깔끔해진 설치

MySQL 설치가 많이 달라졌다.

Server, Workbench, Connector 가 한묶음으로 나왔네

이참에 업그레이드 해야지



2011년 11월 5일 토요일

벌써 11월

이번 프로젝트 한지도 3개월가량 되는거 같은데

이걸 왜 했을까?

jsp하다 생뚱맞게 실버라이트를 왜 했을까?

어찌되었든 선택의 기회가 왔기 때문에 한거긴하지만

결과적으로 이번 프로젝트를 하기로 마음먹은건

그분에 대한 나 스스로의 예의라고 생각했었지

덕분에 어느 한쪽 기술에 치우치는건 참 미련한 짓이라는것도 느끼고 있고

덕분에 각각의 장단점을 희미하게나마 볼수있는것 같고

asp하다 jsp로 옮겼을때도 그랬었지

벌써 11월. 올해도 두달남짓 남았는데

올해 나는 무엇을했을까.. 참 머리아픈 질문이야

올초 그 알수없는 자신감은 다 어디로 갔는지..

예상하셨겠지 빤히 눈앞에 보였겠지

그래도 계속 할거야

길지 않은 내 인생중 그래도 내 가슴속에 남아있는 사건들이 모두 흐지부지 되었지만

이번 건 만큼은 그렇게 되지 않도록

세상에 잘난 친구들 형누나들 동생들이 얼마나 많겠어

나 자신은 비록 키도 작고 외국어도 못하고 말을 조리있게 잘하는것도 아니고 운동신경도 꽝인 객관적으로 평균이하이지만

그래도 한 분야에서 만큼은 누구한테나 당당히 말하고 도움줄수있는 그런사람이 되고싶어

젊은것도 아니지만 늙은것도 아니잖아 그러니 나이에 쫓길 필요는 없어

이건 자기비판적인 생각은 아냐 객관적인거지ㅋ

2011년 10월 18일 화요일

[Silverlight] Drag & Drop


현재는 지정한 컨트롤의 모든영역에서 이벤트가 발생됨;;

특정 컨트롤에만 적용시키기위해서는 좀더 업데이트를 해야됨


Usage : DragnDropUtil.newInstance([Control]);


namespace Util
{
    /// <summary>
    /// Drag & Drop 적용
    /// </summary>      
    public partial class DragnDropUtil
    {
        private System.Windows.Controls.Control control;
        private bool isTrackingMouse = false;
        private Point mouseOffset;
        TranslateTransform renderTransform;
        private DragnDropUtil(System.Windows.Controls.Control control)
        {
            this.control = control;
            this.control.RenderTransform = renderTransform = new TranslateTransform();
            this.control.MouseLeftButtonUp += new MouseButtonEventHandler(MouseLeftButtonUp);
            this.control.MouseLeftButtonDown += new MouseButtonEventHandler(MouseLeftButtonDown);
            this.control.MouseMove += new MouseEventHandler(MouseMove);
        }
        internal static DragnDropUtil newInstance(System.Windows.Controls.Control control)
        {
            return new DragnDropUtil(control);
        }

        void MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            mouseOffset = e.GetPosition(null);
            control.CaptureMouse();
            isTrackingMouse = true;
        }

        void MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            control.ReleaseMouseCapture();
            isTrackingMouse = false;
        }

        void MouseMove(object sender, MouseEventArgs e)
        {
            if (isTrackingMouse)
            {
                Point point = e.GetPosition(null);
                double x0 = this.renderTransform.X;
                double y0 = this.renderTransform.Y;
                this.renderTransform.X = x0 + point.X - mouseOffset.X;
                this.renderTransform.Y = y0 + point.Y - mouseOffset.Y;
                mouseOffset = point;
            }
        }
    }
}

2011년 10월 8일 토요일

캄차카(Kamchatka) 반도


유라시아 대륙의 끝이고

태평양 연어의 20%가 이곳에 와서 알을낳고  세계에서 화산이 가장 밀집되어 있다는 곳

2년내에 꼭 한번 가보도록 하자

Steve Jobs


스티브 잡스.. 죽음.. 조계종에서도 조의를 표하다니.. 솔직히 좀 놀랍다.


조만간 자서전이나 평전 하나 읽어봐야겠군

얼마나 내적으로도 대단한 사람이었는지를


2011년 9월 19일 월요일

노무현 대통령 묘소

전부터 꼭 한번 들르고 싶었던 곳

대한민국의 역사적 장소

헌데 노점이 의외로 너무 많아


2011년 9월 18일 일요일

Restart

더이상 비판적이고 자기학대적인 생각은 안하련다

밀양역

환승때문에 잠시 내린 밀양역
 여유시간은 10여분 남짓 오줌이 마렵다
화장실에 가기위해 철도 건너편으로 넘어가려고 에스컬레이터에 몸을싫었는데
앞선여성의 걸음걸이가 애매하다 검은색 원피스와 매끈한 다리사이의 붉은 뒤꿈치 맞지않는 혹은 싼 구두를 신엇는지 걸으면서 통증을 완화하기위해 붉은색의 발두꿈치가 구두속을 들나날락거린다

쓰리겠다

도시적이진 않은 외모에 평범한 여성용 정장 옆의 동료들인듯한 남자둘 여자 하나 역시 정장 보아하니 결혼식에 다녀오는듯 밀양사람인듯 왠지 새내기 선생님일듯한 느낌도 있고
남자둘 멈춰서고 뒤꿈치 쓰린여성 포함 여자 둘 화장실행 나도 화장실행 쓰린 뒤꿈치보며 계속 걷는데 화장실에 벌써 들어온듯하다
근데 이상하다 주위에 아줌마들이 보인다 약 2초간의 순간 멈칫... 가슴속에서 들리는 외마디 비명 어쒸

2011년 9월 2일 금요일

[Javascript] Image to Clipboard


       투명처리 안됨

       /*
        * 이미지(url로부터) 클립보드 저장 / IE전용
        */
        function copyClipboardImageByUrl(url) {
            var userAgent = navigator.userAgent;
            var isIE = userAgent.indexOf("MSIE") != -1;
            if (!isIE) {
                alert("익스플로러에서만 가능합니다.");
                return;
            }

            var body = document.body;
            var iframe = document.createElement("iframe");
            iframe.style.display = "none";
            body.appendChild(iframe);
            var idoc = iframe.contentWindow.document;
            var ihtml = idoc.createElement("html");
            idoc.appendChild(ihtml);
            var ibody = idoc.createElement("body");
            ihtml.appendChild(ibody);
            var img = idoc.createElement("img");
            img.src = url;
            ibody.appendChild(img);
            if (ibody.createControlRange) {
                var cR = ibody.createControlRange();
                cR.addElement(img);
                cR.execCommand('Copy');
            }
            alert("클립보드에 저장되었습니다.");
        }

2011년 8월 26일 금요일

[Silverlight] 프린트(Print)

- C# -
public void Print(){
    System.Windows.Printing.PrintDocument doc = new System.Windows.Printing.PrintDocument();
    doc.BeginPrint += (s, e) => {};
    doc.PrintPage += (s, e) => {
        e.PageVisual = this; //UIElement
    };
    doc.EndPrint += (s, e) => {};
    doc.Print("print");
}

2011년 8월 16일 화요일

[SpringFramework] 스프링MVC(SpringMVC) 애노테이션(Annotation)을 이용한 URI컨트롤


Spring 알수록 매력적


@RequestMapping(value="/basic.{basicId}", method=RequestMethod.GET)
    public ModelAndView index(HttpServletRequest request, HttpServletResponse reponse,
    @PathVariable("basicId") String basicId
    ) {
    System.out.println("id:" + basicId);
    return new ModelAndView("basic");
    }


@RequestMapping(value="/basic/{basicId}", method=RequestMethod.GET)
    public ModelAndView index(HttpServletRequest request, HttpServletResponse reponse,
     @PathVariable("basicId") String basicId
     ) {
     System.out.println("id:" + basicId);
     return new ModelAndView("basic");
    }


@RequestMapping(value="/basic/*/{basicId}", method=RequestMethod.GET)
    public ModelAndView index(HttpServletRequest request, HttpServletResponse reponse,
     @PathVariable("basicId") String basicId
     ) {
     System.out.println("id:" + basicId);
     return new ModelAndView("basic");
    }


2011년 8월 8일 월요일

[ASP.net] 코드비하인드 소스페이지 연결

오랜만에 닷넷을 하게 되었다.

감을 찾느라 이것저것 만지다 apsx 페이지와 cs페이지 연결이 계속 안되는데

원인찾느라 한참을 삽질..

다른페이지 내용 전체를 복사하는 바람에 상단 페이지 설정부분이 날라가서 연결이 안되던 거였다.

페이지 상단에 Inherits 과 CodeBehind 지정을..

[xxx.aspx]
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="xxx.aspx.cs" Inherits="Test.Web.xxx" %>


[xxx.aspx.cs]

namespace Test.Web
{
    public partial class xxx : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}


떠돌이

남태령, 달맞이, 은아아파트

20대초반에 돌아다니면서 머릿속으로 한번 살아봤으면 하던곳들인데..

어떻게 다 한번씩 살아보게 되네

지금와서 생각하니 신기하군

또 살아보고 싶다고 생각한데가.. 제주도?

제주도도 1개월가량 있어으니 그걸로 퉁치고..

결론은 떠돌이 인생?--

정말 역마살인가.. 전에 이런말들으면 괜찮다 싶었는데;;

요즘들어선 솔직히 조금 두렵다

하는일도 정착하긴 힘든일이고 까놓고 능력이 안되서 정착하지 못하는거긴하지만

그래도 언제나 갈수있는 고향과 집이 있다는건 참 고마운 일이군

어릴땐 그렇게 나가고 싶었는데;;

지금도 집엔 오래 못있지만 쨌든..

2011년 7월 11일 월요일

책 정보 사이트

http://www.oneofworld.com

아,, 드뎌 올리는구나.

아직 정리할건 하도 많아 가늠도 안되지만 그래도 이제는 공개한다는거 자체가 좋구나.


2011년 6월 30일 목요일

[JavaScript] Date to String

function convertDateToYear(date){
    return date.getFullYear();
}

function convertDateToMonth(date){
    return date.getMonth() + 1;
}

function convertDateToDay(date){
    return date.getDate();
}

[Java] Date to String

public static String convertDateToString(Date date) {
if(date == null) return null;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy년 M월 d일, h시 m분 s초");
return formatter.format(date);
}

public static String convertDateToYear(Date date) {
if(date == null) return null;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy");
return formatter.format(date);
}

public static String convertDateToMonth(Date date) {
if(date == null) return null;
SimpleDateFormat formatter = new SimpleDateFormat("MM");
return formatter.format(date);
}


public static String convertDateToDay(Date date) {
if(date == null) return null;
SimpleDateFormat formatter = new SimpleDateFormat("dd");
return formatter.format(date);
}

2011년 5월 16일 월요일

[CSS] min-width / min-height / max-width / max-height



나에겐 최선의 방법

.minw1000{min-width :1000px; width :expression(this.clientWidth  < 1000 ? "1000px" : (this.style.width.trim()  == "auto" ? "auto" : this.style.width ));}
.minh1000{min-height:1000px; height:expression(this.clientHeight < 1000 ? "1000px" : (this.style.height.trim() == "auto" ? "auto" : this.style.height));}

.maxw1000{max-width: 1000px;  width:expression(this.clientWidth  > 1000 ? "1000px" : (this.style.width.trim()  == "auto" ? "auto" : this.style.width));}
.maxh1000{max-height: 1000px; height:expression(this.clientHeight > 1000 ? "1000px" : (this.style.height.trim() == "auto" ? "auto" : this.style.height));}


2011년 5월 1일 일요일

정권

김대중정권 욕하던 사람들
노무현정권 욕하던 사람들
이명박정권 욕하는 사람들
이사람들이 다른사람들일까?

공통점이 있는데 그건 인터넷 시대의 대한민국 지도자들이라는거다.

좁쌀만한 꼬뚜리도 잡아내는 인스턴트식 비난

하지만 이건 거스를수 없는 흐름

새로운 사회구조가 나오던지

아니면 이대로 서서히 무질서 속으로 빠져 역사속으로 사라지던지

인터넷 시대를 열어준 정권과 그후 극과 극의 정권을 경험하고 있는중이니

다음 정권은 어떠할지 참으로 굼금하다.

2011년 4월 20일 수요일

[Jsp] 페이지 갱신을 통한 뒤로가기 방지

jsp로 도무지 만료 페이지 구현이 안된다...

뭐가 문제인지는 모르겠어서 그냥

항상 페이지가 리로드 되게 하는데 그럭저럭 괜찮은거 같다
(뒤로가기시 캐쉬를 사용하지 않고 항상 페이지가 갱신된다.)

단.. 서버부하는 약간 늘어날듯;;

아직 개발단계라 상관없지만.. 나중되면 문제가 될것같다.

검색해보면 이것저것 설정법이 많은데.. 

response.setHeader("Cache-Control","no-store");

자바소스 한줄이면 작동한다. 

로그인이나 가입페이지에 등에만 심어놓으면 유용할듯


2011년 4월 5일 화요일

[Java] FileReader 한글깨짐

FileReader로 텍스트파일을 읽어오는데 한글이 계속 깨진다.


오랜시간 삽질끝에 원인을 알았다. 
인코딩때문이라면 설정할 곳이 없어 알아서 가져오나보다 했는데 그게 문제였다.
FileReader은 시스템의 인코딩으로 읽어온다고 한다.
읽으려는 파일은 UTF-8
InputStreamReader 을 사용하여 인코딩 설정을 하면 결과가 잘나온다.


String path = "???";
BufferedReader in = new BufferedReader(new FileReader(path));
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(path),"UTF8"));


.. 인코딩문제는 정말 머리 아프다.
인코딩에대한 이해가 없어 그런거겠지만;;


참조

2011년 3월 22일 화요일

멋진 사이트s


<방립동's 오픈창고>
http://www.securityplus.or.kr/xe/?vid=bangrip1
웹 인증기술(세션, 쿠키 등)에 대한 이해를 이곳에서 확실하게 마무리했다.
그밖에 주옥같은 글들..


<dns ever>
http://kr.dnsever.com/index.html
도메인 관리를 정말 손쉽게 할수 있는곳


<Creative Commons Korea>
http://www.creativecommons.or.kr
저작권 관련 표시방식를 정의해 놓은곳
진보적이고 신선함

2011년 3월 17일 목요일

20대 마지막 해

20대 마지막 해

지금 상태가 25살 이후로 29살을 생각하던 모습이기에

힘들지는 않다..

비록 생각하던것보다 더 볼품없고 사람한테 아쉽고 돈한테 아쉽고 하지만ㅋ

포기만 하지 않으면 된다.

근데 정말.. 진도가 안나가는구나.

지금 내가 이러는건.. 난..

평범하게 살기 싫어서 그런건가 평범하게 살지 못해서 그런건가..

비슷한 생각을 가끔하고 그때그때 유리한 쪽으로 결론을 내리지만..

정말 모르겠다..

조금씩 조금씩 아주 조금씩 살이 붙어가는 사이트

6월 이전에 이곳에 주소를 공개할 수 있기를 기대해본다.

난 30살부터는 지금까지 와는 다른 삶을 살것이다.

티벳인은 헛된 희망에 망하고 중국인은 의심이 많아서 망하고
한국인은?

포기하지 말자

2011년 2월 24일 목요일

[JavaScript] 스크롤바 위치 이용하여 특정 영역 도착 알아내기

요즘은 페이징처리된 게시판보다
스크롤바 내릴경우 기존 결과물에 몇개만 더 추가적으로 붙이는 형태가 많은데
대표적으로 트위터가그렇고..
밑에 소스에 ajax이용해서 쓰면 나름 모양은 같은 모양이 나올듯..

<html>
    <head>
        <script type="text/javascript">
            function checkTargetScroll(){
                var div = document.getElementById("divResultArea");
                var scrollHeight = div.scrollHeight;
                var scrollViewHeight = div.scrollTop + div.offsetHeight;
                if(scrollHeight <= scrollViewHeight){
        div.innerHTML = div.innerHTML + "add! scrollViewHeight : "
                                           +scrollViewHeight + "<br>"
                                           +"add!<br>";
                    div.scrollTop = div.scrollTop+20;
      }
                setTimeout("checkTargetScroll()",500);
            }
        </script>
    </head>
    <body onload="checkTargetScroll();">
        <div id="divResultArea" style="width: 300px;height: 150px;
                border: 2px;border-color:rgb(150,150,150);
                border-style:solid;overflow: auto;">
            test!<br>test!<br>test!<br>test!<br>test!<br>
            test!<br>test!<br>test!<br>test!<br>test!<br>
            test!<br>test!<br>test!<br>test!<br>test!<br>
        </div>
        <script type="text/javascript">checkTargetScroll();</script>
    </body>
</html>

<<sample>>

test!
test!
test!
test!
test!
test!
test!
test!
test!
test!
test!
test!
test!

2011년 2월 15일 화요일

왜..

"왜" 라는 물음에 어떻게 답변해야할지..

그분 앞에만 있으면 난 평상시의 나가 아니다.

가벼워지고 말이 많아진다. 인정받고 싶고.. 관심받고 싶어서일까..

그런 그분이 내 앞길의 중요한 선택에 대해 "왜" 라고 묻는다.

난 하고싶어서라고 하지만 그분은 그게 어떻게 대답이 될수 있으냐며 전혀 가치없는 선택으로 만들어 버린다...

후유증이 크다.. 뭐든의욕이 일시에 사라진 느낌..

2011년 1월 17일 월요일

[PHP] short_open_tag 옵션


php소스 처음으로 잠깐만지다 잠깐 헤맴
저처럼 처음이신분들 헤매지 않도록...

php 설치폴더의 php.ini 파일에서
short_open_tag 를 찾는다


short_open_tag = on   →   <? ?> 사용가능
short_open_tag = off   →   <? ?> 사용불가능 / <?php ?>로 사용


수정 후 서버 재시작

ex) short_open_tag = off

<?php $g4_path = "TEST"; ?>
<?php echo $g4_path; ?>


ex) short_open_tag = on

<? $g4_path = "TEST"; ?>
<?=$g4_path?>






2011년 1월 14일 금요일

[Java] 색상 정보 형태 변환

필요한데로 가공해서 쓰면 편리함

/** * 색상 정보 형태 변환 * @param strColorValue(RGB 16진수) ex)ff,ff,ff -> 255,255,255 * @return */ public static String getColorValueType2(String strColorValue) { String[] strColorValues = strColorValue.split(","); String strCovColor = String.format("%02x", Integer.parseInt(strColorValues[0], 10)) + String.format("%02x", Integer.parseInt(strColorValues[1], 10)) + String.format("%02x", Integer.parseInt(strColorValues[2], 10)); return strCovColor; } /** * 색상 정보 형태 변환 * @param strColorValue(RGB 16진수) ex)ffffff -> java.awt.Color * @return */ public static Color getColorType1(String strColorValue) { int r = Integer.parseInt(strColorValue.substring(0,2),16); int g = Integer.parseInt(strColorValue.substring(2,4),16); int b = Integer.parseInt(strColorValue.substring(4,6),16); return new Color(r,g,b); }

2011년 1월 12일 수요일

[Java] 세자리마다 <,> 표시하기

/**
* 세자리마다 <,> 표시
* @param d
* @return
*/
public static String getNumFromatInstance(double d) {
 NumberFormat nf = NumberFormat.getInstance();
 return nf.format(d);
}