from http://social.msdn.microsoft.com/Forums/ie/en-US/a5c294e2-e407-491d-ba6a-b7f7edbcabaf/ie11-cant-post-form-data-to-specific-frame-or-window-dialog-opened-via-windowopen?forum=iewebdevelopment


Problem resolved by support team from Microsoft Developer Support for Internet Explorer.

The frame/dialog targeting problem described above is the result of a change introduced with installation of IE11 on a computer, affecting behavior of User Account Control: Use Admin Approval Mode for the built-in Administrator account setting within local security policy.

This setting can be configured using the Local Security Policy snap-in, in Local Policies / Security Options branch, under Policy item called: "User Account Control: Use Admin Approval Mode for the built-in Administrator account".

In simple terms, the steps needed to correct the problem are:

Before installation of IE11 - no need to do anything on any Windows or IE version to get frame targeting to work under default Admin. It works even with "User Account Control: Use Admin Approval Mode ..." set to Disabled.
 
After installation of IE11  - need to Enable "User Account Control: Use Admin Approval Mode for the built-in Administrator account" to get frame/dialog targeting to work for default Admin.

Confirmed the solution works with IE11 on Windows 2012R2 as well as Windows 7 SPK1, the adjustment takes effect after a restart. There is no need to make any changes to HTML pages.
 





SQL DEVELOPER 를 한국어 OS 에서 실행하면 각종 명령들이 한글로 나온다.

SQL 포맷을 맞추는걸 하고 실행하고 싶어도 번역된 단어가 뭔지 모르면 뭘 할 수 가 없다. 차라리 안하는게 나을까 -ㅅ-;?

format 을 형식으로 번역했고, 키맵핑에서 형식으로 검색하면된다. 거기에 키맵핑해두면된다.

사실 윈도버전은 ctrl+f7 로 이미 되어있는걸로 기억하는데, 맥은 키 맵핑이 안되어있다 -ㅅ-; 해서 맵핑하려고 찾다보면 혈압오른다 -ㅅ-; 





원문은 https://github.com/yakmoz/ref/tree/master/apach_tomcat_os_x_mod_jk 에 있음. 업데이트는 github 문서에만 적용됩니다. 

OS X (10.9.2 mavericks) 에서의 아파치 톰캣 연동

원래 보통 작은 규모의 사이트들이나, 엔지니어 혹은 개발자들이 연습삼아 apache 를 앞단에 두고(80포트) 자바 웹 서비스는 WAS (여기서는 톰캣)로 보내는 형태를 만들어 이용했다.

여기의 문서는 보통 다른 문서의 목표와 다르다. 이 문서의 목표는 아파치로 오는 요청을 죄다 톰캣으로 보내게 설정할 것이다. 보통은 그렇게 하지 않는다. 그러므로 원하는 내용에 맞지 않을 수 있으니 그에 맞는 메일을 찾거나 이 내용을 보고 학습하여 수정하기 바란다. 레퍼런스는 인터넷에 널렸다. :) gook luck~

준비물

  • 아파치 (이미 설치되어 있다)
  • 톰캣 (homebrew 로 설치할 것이다)
  • mod_jk 아파치에 설치될 모듈로 톰캣과 이어주는 역할을 한다. 이에 대한 추가설명은 따로 하겠다.

톰캣 설치

톰캣의 경우는 맥의 패키지 관리툴인 Homebrew 를 이용해서 설치했다. Homebrew 의 사용법은 홈페이지에서 확인바란다. Juntai Park 님이 한글화에 참여하여 홈페이지를 무려 한글로!!! 볼 수 있으니 겁먹지 마시라.

homebrew 가 이미 설치되어있다면 간단히

brew install tomcat 

로 설치하면 된다.

그렇게 해서 설치되는 버전은 7버전대이며, 패스가 잡히는 곳에 sh 이 존재하므로 catalina 해보면 설명이 나오는걸 볼 수 있다.

brew 로 설치하는 이유는, 리눅스등을 써보신분은 알겠지만 패키지 관리자를 이용하면 업데이트나 설치/제거등이 용이하다. 패키지 관리자 없이 설치한 패키지가 업데이트될때마다 하나하나 지우고 깔거나 업데이트,패치 등을 찾아서 적용하는것은 상당히 번거러운 작업이다.

과거에는 macport 등을 썼었지만 현재는 homebrew 로 대동단결이라고 봐도 된다.

mod_jk.so

아파치와 톰캣을 이어주는 방법은 한가지가 아니다. mod_jk 를 이용한 방법과 proxy 를 이용한 방법등이 있다. 여기서는 mod_jk 를 이용할 것이다.

아파치는 여러 모듈을 추가하여 기능을 확장할 수 있다. 그 확장모듈중 하나가 mod_jk 인데 파일로는 mod_jk.so 파일이다. 문제는 해당 so파일 ... 즉 dynamic lib 파일은 컴파일된 바이너리 파일로 보통 제공된다. 그 대상들은 널리 쓰이는 윈도나 리눅스등이다. 즉 맥버전으로 컴파일되어 생성된 바이너리를 mod_jk 를 제공하는 아파치사이트에서는 찾아볼 수 없다. 소스만 있을뿐이다.

해서 맥유저는 해당 소스를 받아와서 직접 컴파일하여 so 파일을 생성해야한다.

해당 글은 별도로 작성해놨으니 참고 바란다. 링크

그 글에 따라 직접 컴파일 해도 되고, 아니면 컴파일 해놓은(매버릭스 버전) so 파일을 그냥 다운로드 해서 써도 된다.

아파치의 구조

아파치는 나름 복잡하다. 상용에서도 많이 쓰이는 웹서버이다. 사실상 입구를 담당하고 그뒤로 WAS 에게 포워딩 하는 구조로 많이 쓰인다.

아파치의 설정은 httpd.conf 에 다 담을수도 있지만 설정을 파일로 할 수도 있다. 우리는 앞으로 JkWorkersFile 파일과 JkMountFile 파일에 설정을 쓰게 하고 그걸 일게 아파치설정을 할 것이다.

해당 파일들에 대한 설명은 아파치 톰캣 커넥터 글을 읽으면 알 수 있다.

우선 살펴보자면

Directive설명
JkWorkersFile톰캣 서블릿 컨테이너를 위한 worker 파일 이름이다. 설정의 글로벌 파트에 해당하며 선언은 오직 한번만 허용된다. 만약JkWorkerProperty 설정을 이용하지 않으면, 올바른 JkWorkersFile 파일을 정의해야한다. 기본값은 없다.
JkMountFile여러개의 맵핑정보를 worker 에게 매핑해주는 정보를 담은 파일 . 보통 uriworkermap.properties 파일로 불리운다. 상속에 대한 룰은 JkMountCopy 를 살펴보라. 기본값은 없다.

이런 설정을 이용할 것이다.

설정을 위한 기본위치

Apache

  • 설정 : /etc/apache2/이하
  • 모듈(.so) : /usr/libexec/apache2 이하

설정

  • 우선 httpd.conf 파일을 열어서 LoadModule 들이 설정되어 있는 라인에가서
LoadModule jk_module libexec/apache2/mod_jk.so

내용을 추가한다. 물론 해당 .so 파일이 설정에서 가리키는 위치에 있어야 한다.

  • jk_module 설정을 외부로 빼도 되고 그냥 httpd.conf 에 넣어도 된다.
<IfModule jk_module>
    JkWorkersFile /etc/apache2/workers.properties
    JkLogFile     /var/mod_jk.log
    JkLogLevel    info
    JkMountFile   /etc/apache2/uriworkermap.properties
</IfModule>
  • 해당 설정을 보면 앞에서 언급한 JkWorkersFile 과 JkMountFile ,2가지 설정을 이용하는걸 알 수 있다. 그설정들에 정의된 파일, 2개를 수정할것이다. 아마 2개의 파일은 이미 존재하고 있을것이다.

우선 workers.properties 를 수정하다.worker1 이라고 선언하고 내용을 설정한다.

worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
  • 다음 uriworkermap.properties 를 수정하자.
/*=worker1
/*.jsp=worker1

사실 jsp 만 톰캣에 가도 되는데 그냥 /* 로 다 넘기고자 했다. woker1 으로 맵핑해둔다.

서버재시작

톰캣을 기동하고, 아파치를 기동/재기동 할 것이다. 아파치의 경우는 아마 sudo 를 앞에 붙여야 제대로 될 것이다. (ex. sudo apachectl start)

  • 톰캣 기동
catalina start

만약 그런파일이 없거나.. 등 패스에 걸려있지 않다고 보이면 직접 가서 실행하면 된다. 보통은 /usr/local/bin 에 링크로 존재한다.

다음은 아파치을 기동 혹은 재기동하자.

  • 아파치 기동
apachectl stop
apachectl start

실행되고 있지 않았다면 stop 시에 에러가 날 것이다. 무시하고 start 하자.

이렇게 하고 우선 톰캣이 제대로 떴는지 보기위해 http://localhost:8080 으로 접근해보자. 톰캣페이지가 잘 보인다면 톰캣은 잘 뜬것이다. (8080 포트를 변경했다면 바꾼 포트로 접근바란다)

다음 http://localhost 로 접근해보자. 만약 it worked 던가가 나오면 다시 http://localhost/a.jsp 도 한번 해보기 바란다. 파일이 없을테니 404 가 보일텐데 잘보면 아파치 톰캣의 404 란걸 알 수 있다.

그럼 우선 jsp 파일을 제대로 톰캣에 보낸건 맞다. 그냥 / 도 톰캣에 보내게 해놨기에 localhost 로 접근해도 톰캣이 나와야 한다.

본인의 경우는 잘 됐는데 잘 안된다면 하나하나 확인하거나 다른 가이드 문서나 아파치 설정 문서를 잘 보기 바란다.



https://github.com/yakmoz/ref/blob/master/mod_jk 에서 so 파일 다운로드 가능 

os x 를 위한 mod_jk 컴파일 .so 입니다.

  • 환경 : 레티나 15 , os x 10.9.2 입니다.

mod_jk 컴파일 (os x Mavericks‎)

apache 의 module 디렉토리에 mod_jk 존재 확인해봐라 /usr/libexec/apache2 에서 찾아봐라. 없을것이다.

mod_jk 컴파일을 위해

  1. http://tomcat.apache.org/download-connectors.cgi 에 가서 mod_jk 소스를 다운로드 받는다. 다운로드 받아서 푼 다운 그 디렉토리의 native 로 들어간다.

  2. configure

    ./configure --with-apxs=/usr/sbin/apx
    

    하면 컴파일 실패가 나는데 checking for C compiler default output file name... configure: error: C compiler cannot create executables

  3. 본인은 이런 에러가 나왔다. 바로 윗줄을 보면 /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain/usr/bin/cc 호출중에 에러가 난것으로 해당 위치자체가 존재하지 않는다. 즉 컴파일러를 못찾아서 에러난것이다.

  4. 위의 디렉토리를 보면 /Applications/Xcode.app/Contents/Developer/Toolchains/ 까지는 존재한다. 그 안에 내용을 보면 XcodeDefault.xctoolchain 디렉토리가 있다. 즉 mod_jk 를 위한 컴파일러의 위치가 OSX10.9.xctoolchain/ 가 아니라 XcodeDefault.xctoolchain 인 것이다. 해서 소프트링크를 만들자.

  5. /Applications/Xcode.app/Contents/Developer/Toolchains 로 이동해서

    sudo ln -s ./XcodeDefault.xctoolchain/ ./OSX10.9.xctoolchain
    
  6. 다시 configure 해보면 성공할 것이다. make 실행 sudo make install 실행 (sudo 의 이유는 /usr/libexec/apache2/ 에 설치되기 때문임 )



아래의 글은 아직 작업중이라서 오역 및 오류가 가득할 수 있음을 알려드립니다.

github 쪽으로 markdown 작업중이니 해당 페이지에 가서 오류정정등을 하시면됩니다. (라지만 해당 github 에서 뭔가 협업을 해본적이 없어서 제대로 처리할지 0.0001% 걱정입니다)


최신버전은 https://github.com/yakmoz/ref/blob/master/java/java%208%20tutorial.md 를 통해서 확인해주세요 



Java 8 Tutorial (KOREAN)

... 아무래도 수정이 힘들어 github 쪽의 파일로 참고 부탁드립니다. 





코코아 프로그래밍중 autosizing 메뉴가 안보일때?

xcode 에서 view 사이즈 조절을 자동으로 하려고 뷰를 선택후 size inspector를 선택했을때 autosizing 설정부분이 안나올 수 있다. 

xcode 버전이 올라가면서 생긴 문제? 인데 File inspector 부분에 auto layout 설정이 되어있으면 나오지 않게 변경되었다. 해서 file inspector > auto layout 을 끄면 원하는 설정이 보이는걸 확인할 수 있다.

끄면 기존에 안보이던 autosizing 이 보인다. 

빨간색 친부분이 새로이 보이게 된다.





sublime Text 에서 markdown 설정하자

이것저것 다 써봤다. 유료 marked나 2 는 안써봤지만 (markdown pro 는 빼고 가겠다)

결론은 하나! sublime Text 가 만능인 이유가 여기서도 드러났다. markdown life 를 주로 쓰다가 하루패드를 좀 써보다가 결국은 sublimeText 에 3가지 플러그인을 까는걸로 우선은 정착한다. 하루패드가 나빠서 그런건 아니다. 괜찮게 보이길래 나름 약소하나마 기부도 했다. 다만 본인에게는 몇가지 문제점이 있어서 다른걸 찾다가 결국 다시 sublime 으로 왔다. json 도 그랬듯이...

여기 를 참고했다.

그리고 아래는 os x 에서 따라하는 내용이라 윈도에서는 cmd 대신 control 등으로 키를 달리 눌러야 할 것이다.


  1. 우선 누구나 알다시피 sublime Text 에 기능확장을 위해서 Package Control 을 설치해야한다. 방법은 간단하다. ctrl + ` 를 눌러서 콘솔을 띄우고 아래의 내용을 붙여넣은뒤 엔터, 그리고 재시작한다. 아래의 내용은 sublime 2 에 대한 설명으로 3도 알고 싶다면 [여기] 를 참고 바란다.

    import urllib2,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); open( os.path.join( ipp, pf), 'wb' ).write(by) if dh == h else None; print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation')

  2. cmd+shift+p 를 눌러 Package Control:install Package 를 선택한다. 그러면 뭔가 상태창아래에서 진행바가 보일것이고 곧 입력받을 수 있는 작은창을 보게 된다. 거기서 플러그인 4가지를 찾아서 설치할 것이다. 사실 저중에 그냥 Markdown Preview 만 깔아도 미리보기를 통해 작업은 가능하다. 하지만 나머지도 다 설치해주면 더 나은 환경 구성을 할 수 있다.

    • MarkdownEditing : .md(마크다운확장자) 파일을 편집하기 위한 플러그인
    • SmartMardDown : 문단 folding 관련 플러그인
    • MarkDown Preview : 웹으로 미리보기 위한 플러그인.
    • MarkDown TOC : 설치하고 나서 tools > markdown TOC > insert TOC 하면된다.
  3. 이제 설정을 해보자. 우선 마크다운 자체의 하이라이팅을 위해 설정을 하자. Preferences > Package Settings > Markdown Editing > Markdown (Standard)Settings 를 선택하고 아래의 코드를 넣는다. 그럼 에디팅 화면이 바뀌는걸 볼 수 있다.

    {"color_scheme": "Packages/Color Scheme - Default/Dawn.tmTheme"}
    

    테마는 다른 테마도 있으니 검색해보면 테마이름을 확인해볼 수 있다. 필요에 따라서 Markdown GFM Settings -User 에 뭔가 값을 설정할 필요가 있다면 설정하면된다.

  4. 단축키로 결과물을 브라우저로 확인하는 방법이 있다. Preview 를 설치하면 설명서가 나오는데 그곳에 보면 키바인딩에 아래와 같이 추가 설정하라고 되어있다. ',' 를 필요에 따라 넣도록 한다. 그리고 키 바인딩은 각자의 취향대로 하면된다. 아래는 alt+m 으로 되어있다.Preferences > Key Binding - User 에 바로 설정해도 되는듯한데, 만약 안된다면 현재 키보드입력이 한글인지 확인해보라. 그래도 안된다면 Preferences > Package Settings > Markdown Preview > Settings - User 에도 설정해 보기 바란다.

    { "keys": ["alt+m"], "command": "markdown_preview", "args": {"target": "browser", "parser":"markdown"} }
    

이정도면 기본설정은 마쳤다. 뭔가 제대로 표시되지 않는것 같다면 sublime 을 재시작 해보자. 그런데 뭔가 횡한 preview 라는 느낌이 들지 않는가? github 마크업으로 작성했다면 github preview 로 preview 를 할 필요가 있다.

cmd+shift+p 를 눌러서 mgp 라고 치면 Markdown Preview:Github Flavored Markdown:Preview in Browser 가 나오는걸 볼 수 있다. 해당 뷰로 보면 fenced code block 도 잘 적용되어서 보여진다.

그리고 cmd+r 을 눌러서 문단을 쉽게 오갈 수 있다. 문단의 의미는 # 같은게 된다.


!!!혹시 패키지 컨트롤 창을 띄워서 나오는 명령에 바로 단축키 맵핑하시는법 아시는분 있의면 댓글로 알려주시면 감사하겠습니다.




event.preventDefault() vs return false;

우선 둘다 기본 동작을 막는것이다. 이 의미는 만약 checkbox 를 선택했을때 onclick 등에 이벤트를 걸었을시, 해당 이벤트내에서 위의 2가지중 하나를 하면 checkbox 에 check 가 되지 않는다. 물론 펑션의 내용은 잘 실행된다.

아주 좋은 답이 있는데 stackoverflow 에 나와있는 답이다.

간단히 말하면 return false 는 preventDefault() 와 stopPropagation() 의 기능 둘다를 처리한다고 한다.

return false from within a jQuery event handler is effectively the same as calling bothe.preventDefault and e.stopPropagation on the passed jQuery.Event object.

e.preventDefault() will prevent the default event from occuring,e.stopPropagation() will prevent the event from bubbling up and return falsewill do both. Note that this behaviour differs from normal (non-jQuery) event handlers, in which, notably, return false does not stop the event from bubbling up.


+ Recent posts