2015/08/25

영어표현

1. the heck out of (ZeroMQ 가이드 변역 중)
예문
On the other hand it annoys the heck out of some Danish folk who write us things like "ØMG røtfl", and "Ø is not a funny looking zero!" and "Rødgrød med fløde!", which is apparently an insult that means "may your neighbours be the direct descendants of Grendel!" Seems like a fair trade.

뜻 : 많이, (heck = 제기랄)

참고
  • http://forum.wordreference.com/threads/the-heck-out-of-me.1618358
  • 2015-08-24

    23일 일요일 낮에 처음으로 녹변을 봤다. 만 하루가 조금 넘을 때까지 변을 보지 못 하더니 엄청난 양의 녹색괴물을 낳았다...
    기쁜 마음으로 지아를 목욕 시키는데 갑자기 자지러지게 울기 시작했다.
    겨우겨우 다잡아뒀다고 생각, 아니 착각했던 그나마만큼의 평온하던 고작 며칠 동안의 패턴이 무너지기 시작한 순간이다.
    모르겠다. 우는 이유를 모르겠다. 그것도 마치 격통을 겪는 것 같이 갑작스럽게 우는 이유를 모르겠다.
    다행인지 오히려 걱정거리인지 모유든 분유든 뭐든 먹이기만 하면 진정이 된다.
    하지만 엄마와 아빠가 괜히 미웠던건지 먹는 양도 조금 줄어들고, 줄어든만큼 금세 배가 고픈가보다.
    다시 자지러진다.
    이러기를 반복, 또 반복. 결국 밤새도록 같은 과정이 반복되었고 걱정스런 마음으로 지아를 남겨놓고 출근을 하게 됐다.
    늘 기아 1단의 찡찡거림부터 기아 4단의 자지러짐까지 단계별로 진행이 됐었는데, 밤새도록 기아 4단으로 자지러지기만 했다.
    천만다행으로 낮 동안에는 얌전했다고 한다.
    갑작스레 자지러질듯 한 4단계의 울음은 다시 1단계 찡찡거림부터 시작하게 됐고, 잘 먹고, 잘 잤다고 한다.
    안심하고 퇴근했다. 퇴근해서 보니 자고 있댄다.
    괜한 걱정에 숨소리도 확인해봤다. 조용히 쌕쌕거리며 자는 모습이 참.. 아내가 대견하고 기특해보였다.
    아내가 조용히 이야기 한다. 장모님께서 약국에서 약사가 먹이랬다며 얻어오신 기응환을 한 알만 먹였다고.
    아.. 충격이었다. 다급히 인터넷을 찾아보고 삐뽀삐뽀119도 봤다. 기응환은.. 먹이지 말란다.
    아내에게 차분히 이야기 했다. 약을 숨기라고..
    그러고 하루가 지난 오늘 과연 내 판단과 행동이 잘못되진 않았을까 하는 생각에 기응환에 대해 다시 찾아보았다.
    그에 대해 아주 상세하게 설명되어 있는, 그리고 내가 판단하는데 도움이 된 블로그를 찾게 됐다.
    이미 먹어버린 기응환은 특별한 효과라거나 문제를 일으키진 않는 것 같다.
    먹은 후에 얌전하던 모습도, 먹은 후에 애가 몽롱해 보이던 모습은 먹이고 싶어하는 사람과 먹이기 싫어하는 사람들 각자가 보고싶어 하는 모습일지도 모른다.
    아이는 그저 배고프면 울고, 먹으면 졸리고, 졸리면 잠들게 되는.. 늘 똑같은 일상일 뿐인데 말이다.

    어쨌든 결론은.. 기응환은 절대 먹이지 말자. 어른들이 말씀하시면 잘 설명드리거나, 기어이 사오시면 먹이는 척만 하자.
    그리고 기응환을 먹여야 될 것만 같이 불안한 상태라면 그냥 소아과로 데려가자.


  • 기응환
  • 2015/08/06

    원격 데스크톱 연결 중 파일 복사 붙여넣기가 안될 때

    로컬 컴퓨터와 원격 컴퓨터 간에 파일 혹은 폴더를 복사(Ctrl+C, Ctrl+V) 하려고 할 때 정상 작동하지 않을 경우
    (원격 데스크톱 연결 중에 랜선 접촉 불량 등과 같이 네트워크 연결이 끊기거나 할 경우에 주로 발생한다.)
    작업관리자에서 rdpclip.exe 프로세스를 끄고 다시 시작하면 된다.

  • RDPCLIP.EXE: Does Not Work If Session Was Disconnected
  • 디자인 원칙 (Design Pattern Principle)

    1. 바뀌는 부분은 캡슐화 한다. 애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부분으로부터 분리시킨다.
    2. 구현이 아닌 인터페이스에 맞춰서 프로그래밍한다.
    3. 상속보다는 구현을 활용한다.
    4. 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인을 사용해야 한다.
    5. OCP (Open Close Principle : 개방 폐쇄 원칙) - 클래스는 확장에 대해서는 열려 있지만 변경에 대해서는 닫혀 있어야 한다.
    6. 추상화된 것에 의존하도록 만들어라. 구상 클래스에 의존하도록 만들지 않도록 한다.
    7. PLK (Principle of Least Knowledge : 최소 지식 원칙 == Law of Demeter : 데메테르의 법칙) - 정말 친한 친구하고만 얘기하라.
    8. 먼저 연락하지 마세요. 저희가 연락 드리겠습니다.
    9. SRP (Single Responsibility Principle : 단일 책임 원칙) - 클래스를 바꾸는 이유는 한 가지 뿐이어야 한다.

    - 헤드퍼스트 디자인 패턴 (Head First Design Patterns)

    2015/06/05

    XA, JTA, Atomikos and Spring


  • [번역]JTA와 XA, 그리고 Atomikos
  • Atomikos 3.7 - Spring3.1 - Tomcat7 Integration
  • 스프링(Spring) 3.2 + Atomikos 3.8.0 + Tomcat 7로 분산트랜젝션 구성하기
  • [Spring 3 - Transaction] JTA를 이용한 글로벌/분산 트랜잭션
  • Understanding Java EE Support
  • Atomikos Spring integration
  • JAVA 애플리케이션을 XA 구성 하기 위해서는 DBMS부터 XA 설정이 되어야 하는데, MS-SQL SERVER의 경우 XA 구성은 JDBC 드라이버에 설정 파일들이 포함되어 있다. CPU 아키텍처 별로 sqljdbc_xa.dll 파일을 구분하여 SQL SERVER INSTANCE가 설치 되어 있는 BINN 폴더로 복사를 해야하고, xa_install.sql 파일의 스크립트를 실행해서 XA user와 권한을 등록해야 한다. 또한 Windows OS에서도 설정을 해야 하는데 제어판 > 관리도구 > 구성 요소 서비스(Component Service) > 컴퓨터 >> Local DTC 속성 > 보안 탭 > XA 트랜잭션 사용 체크를 반드시 해야 한다. JDBC Connection URL을 확인 SQL-SERVER의 경우 ClassName을 com.microsoft.sqlserver.jdbc.SQLServerXADataSource라고 지정해줘야한다. 오라클도 마찬가지. XA 클래스네임을 반드시 확인하자.
  • Understanding XA Transactions
  • Spring application-context 설정
    <bean id="eslDataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close">
        <property name="uniqueResourceName" value="mssql" />
        <property name="xaDataSourceClassName" value="#{db['esl.driverClassName']}" />  
        <property name="xaProperties">
            <props>
                <prop key="user">#{db['esl.username']}</prop>
                <prop key="password">#{db['esl.password']}</prop>
                <prop key="URL">#{db['esl.url']}</prop>
            </props>
        </property>
        <property name="testQuery" value="Select 1" />
        <property name="minPoolSize" value="10" />
        <property name="maxPoolSize" value="10" />
    </bean>
    
    <bean id="AtomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close">
        <property name="forceShutdown" value="false" />
    </bean>
     
    <bean id="AtomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp">
        <property name="transactionTimeout" value="300" />
    </bean>
     
    <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
        <property name="transactionManager" ref="AtomikosTransactionManager" />
        <property name="userTransaction" ref="AtomikosUserTransaction" />
    </bean>

    2015/05/24

    Google Blogger PrettyPrint 설정

    SyntaxyHighlighter 이거 겨우 설정을 해뒀더니 모바일에서는 적용도 되지 않을 뿐더러 완전 모양빠지게 나와서 다시 찾은 대안이 google PrettyPrint. 근데 템플릿에 적용 해뒀더니 페이지별로 조회는 잘 되는데 페이지 전체 목록에서 볼 때는 RowBackgroundColor가 구림. 그래서.. 필요한 페이지는 직접 아래 소스를 직접 입력한다. 그럼 모바일에서도 적용 되고 템플릿 변경해도 따로 작업하지 않아도 된다.

    <script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js?autoload=true&skin=sons-of-obsidian&lang=html" defer="defer"></script>
    skin style(소문자로 적어야 제대로 적용된다)
    language list

    사용법
    before

    <pre class="prettyprint lang-java linenums">
    package test;

    public class Test {
    public static main(String...args) {
    System.out.println("Hello world");
    }
    }
    </pre>
    after

    package test;

    public class Test {
    public static main(String...args) {
    System.out.println("Hello world");
    }
    }


    before

    <?prettify lang=java linenums=40?> <!-- linenumber를 40부터 시작 -->
    <pre class="prettyprint">
    package test;

    public class Test {
    public static main(String...args) {
    System.out.println("Hello world");
    }
    }
    </pre>
    after

    package test;

    public class Test {
    public static main(String...args) {
    System.out.println("Hello world");
    }
    }
    더 자세한 설명은 아래 링크에서 확인
    https://code.google.com/p/google-code-prettify/
    Github으로 이사 갔음.
    https://github.com/google/code-prettify

    2015/05/23

    Google Blogger SyntaxHighlighter 설정

    블로그 만들 때 마다 계속 까먹어서 저장해두기로 한다.
    출처 : http://anshnote.blogspot.kr/2011/07/syntax-highlighter-blogger.html

    수정해야할 포인트는 총 3군데.

    1. CSS 추가
    수정 위치 : 내 블로그 > 템플릿 > 맞춤설정 > 고급 > CSS 추가 > 맞춤 CSS 추가
    아래 소스를 그대로 Copy & Paste 후에 블로그에 적용
    {    
    font-family: "Consolas", "Courier New", Courier, mono, serif;
    font-size: 12px;
    background-color: #E7E5DC;
    width: 99%;
    overflow: auto;
    margin: 18px 0 18px 0 !important;
    padding-top: 1px; /* adds a little border on top when controls are hidden */
    }

    /* clear styles */
    .dp-highlighter ol,
    .dp-highlighter ol li,
    .dp-highlighter ol li span
    {
    margin: 0;
    padding: 0;
    border: none;
    }

    .dp-highlighter a,
    .dp-highlighter a:hover
    {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    }

    .dp-highlighter .bar
    {
    padding-left: 45px;
    }

    .dp-highlighter.collapsed .bar,
    .dp-highlighter.nogutter .bar
    {
    padding-left: 0px;
    }

    .dp-highlighter ol
    {
    list-style: decimal; /* for ie */
    background-color: #fff;
    margin: 0px 0px 1px 45px !important; /* 1px bottom margin seems to fix occasional Firefox scrolling */
    padding: 0px;
    color: #5C5C5C;
    }

    .dp-highlighter.nogutter ol,
    .dp-highlighter.nogutter ol li
    {
    list-style: none !important;
    margin-left: 0px !important;
    }

    .dp-highlighter ol li,
    .dp-highlighter .columns div
    {
    list-style: decimal-leading-zero; /* better look for others, override cascade from OL */
    list-style-position: outside !important;
    border-left: 3px solid #6CE26C;
    background-color: #F8F8F8;
    color: #5C5C5C;
    padding: 0 3px 0 10px !important;
    margin: 0 !important;
    line-height: 14px;
    }

    .dp-highlighter.nogutter ol li,
    .dp-highlighter.nogutter .columns div
    {
    border: 0;
    }

    .dp-highlighter .columns
    {
    background-color: #F8F8F8;
    color: gray;
    overflow: hidden;
    width: 100%;
    }

    .dp-highlighter .columns div
    {
    padding-bottom: 5px;
    }

    .dp-highlighter ol li.alt
    {
    background-color: #FFF;
    color: inherit;
    }

    .dp-highlighter ol li span
    {
    color: black;
    background-color: inherit;
    }

    /* Adjust some properties when collapsed */

    .dp-highlighter.collapsed ol
    {
    margin: 0px;
    }

    .dp-highlighter.collapsed ol li
    {
    display: none;
    }

    /* Additional modifications when in print-view */

    .dp-highlighter.printing
    {
    border: none;
    }

    .dp-highlighter.printing .tools
    {
    display: none !important;
    }

    .dp-highlighter.printing li
    {
    display: list-item !important;
    }

    /* Styles for the tools */

    .dp-highlighter .tools
    {
    padding: 3px 8px 3px 10px;
    font: 9px Verdana, Geneva, Arial, Helvetica, sans-serif;
    color: silver;
    background-color: #f8f8f8;
    padding-bottom: 10px;
    border-left: 3px solid #6CE26C;
    }

    .dp-highlighter.nogutter .tools
    {
    border-left: 0;
    }

    .dp-highlighter.collapsed .tools
    {
    border-bottom: 0;
    }

    .dp-highlighter .tools a
    {
    font-size: 9px;
    color: #a0a0a0;
    background-color: inherit;
    text-decoration: none;
    margin-right: 10px;
    }

    .dp-highlighter .tools a:hover
    {
    color: red;
    background-color: inherit;
    text-decoration: underline;
    }

    /* About dialog styles */

    .dp-about { background-color: #fff; color: #333; margin: 0px; padding: 0px; }
    .dp-about table { width: 100%; height: 100%; font-size: 11px; font-family: Tahoma, Verdana, Arial, sans-serif !important; }
    .dp-about td { padding: 10px; vertical-align: top; }
    .dp-about .copy { border-bottom: 1px solid #ACA899; height: 95%; }
    .dp-about .title { color: red; background-color: inherit; font-weight: bold; }
    .dp-about .para { margin: 0 0 4px 0; }
    .dp-about .footer { background-color: #ECEADB; color: #333; border-top: 1px solid #fff; text-align: right; }
    .dp-about .close { font-size: 11px; font-family: Tahoma, Verdana, Arial, sans-serif !important; background-color: #ECEADB; color: #333; width: 60px; height: 22px; }

    /* Language specific styles */

    .dp-highlighter .comment, .dp-highlighter .comments { color: #008200; background-color: inherit; }
    .dp-highlighter .string { color: blue; background-color: inherit; }
    .dp-highlighter .keyword { color: #069; font-weight: bold; background-color: inherit; }
    .dp-highlighter .preprocessor { color: gray; background-color: inherit; }

    2. 템플릿 수정
    수정 위치 : 내 블로그 > 템플릿 > HTML 편집
    a : </head> 태그를 찾아서 바로 앞에 아래의 소스 그대로 Copy & Paste
    <script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shCore.js" type="text/javascript"></script>
    <script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCSharp.js" type="text/javascript"></script>
    <script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushPhp.js" type="text/javascript"></script>
    <script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushJScript.js" type="text/javascript"></script>
    <script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushJava.js" type="text/javascript"></script>
    <script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushVb.js" type="text/javascript"></script>
    <script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushSql.js" type="text/javascript"></script>
    <script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushXml.js" type="text/javascript"></script>
    <script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushDelphi.js" type="text/javascript"></script>
    <script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushPython.js" type="text/javascript"></script>
    <script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushRuby.js" type="text/javascript"></script>
    <script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCss.js" type="text/javascript"></script>
    <script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCpp.js" type="text/javascript"></script>
    <script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushScala.js" type="text/javascript"></script>
    <script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushGroovy.js" type="text/javascript"></script>
    <script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushBash.js" type="text/javascript"></scriptf>

    b : </body> 태그를 찾아서 바로 앞에 아래의 소스를 그대로 Copy & Paste
    <script type="text/javascript">
    dp.SyntaxHighlighter.BloggerMode();
    dp.SyntaxHighlighter.HighlightAll('code');
    </script>

    수정은 끝. 하지만 템플릿을 변경하게 되면 다시 해줘야 하므로 까먹지 말자.
    그럼 이제 사용하려면
    <pre>
    package test;

    public class Test {
    public static main(String...args) {
    System.out.println("Hello world");
    }
    }
    </pre>

    혹은
    <textarea class="java" name="code">
    package test;

    public class Test {
    public static main(String...args) {
    System.out.println("Hello world");
    }
    }
    </textarea>
    지원 언어 및 추가 사용법
    https://code.google.com/p/syntaxhighlighter/wiki/Usage

    하지만 정작 이 글이 google-code-prettify로 작성되었다는 건 함정

    2015/05/22

    test


    #include
    main()
    {
    printf("Hello World");
    return;
    }

    package test;

    public class Test {
    public static main(String...args) {
    System.out.println("Hello world");
    }
    }