본문 바로가기

Lecture & Tip/eclipse_android

Eclipse가 사내 망에서 Update 동작이 되지 않을때 조치 방법 사내에서 Eclipse를 사용하다 여러번 겪은 Eclipse Plugin들의 Update가 되지 않는 문제. 그 이유는 바로 Proxy설정에 문제가 있었다.일반적으로 System Proxy설정을 이용하는데 System Proxy는 대부분이 무심결에 모든 프로토콜에 대한 적용 같은 것을 설정하는 바람에SOCKS, HTTPS, HTTP에 모두 동일 Proxy가 적용된다. 문제는 사내에서 SOCKS를 지원하지 않는데 SOCKS proxy를 설정해두면 Eclipse가 update시에 하염없이 SOCKS의 response를 기다린다는 것.그러니 Eclipse Preference에 들어가서 살포시 SOCKS proxy를 꺼주자.웬만한 Update Site는 HTTP, HTTPS는 지원하니 이것만으로 충분. 이제 삽.. 더보기
Hackathon. 그 마력에 빠져 봅시다. 근래들어 국내에서 소프트웨어 개발에 대한 이목이 집중되고, 산업내 소프트웨어에 대한 중요도가 높아지면서 각종 소프트웨어 개발자 행사들이 홍수를 이루고 있습니다. 그 중에서 느뤼가 가장 주목하고 있는 행사! Hackathon = Hack + Marathon 1999년 OpenBSD에서 미국 소프트웨어 보안 수출법을 회피하기 위해, 개발자들과 개최한 이벤트에서 유래되었고,Hackathon이란 단어는 같은 년도에 Sun이 개최한 JavaOne에서 ParmV용 Java Application 제작하는 이벤트를 "The Hackathon"이라고 칭하면서 시작되었다고 합니다.10여년 전부터 특정 문제나 이슈에 대하여 개발자들이 해결을 위해 즉흥적으로 Team을 만들어 해결하는 개발 문화를 지칭하는데 사용되었습니다.... 더보기
lsof 에서 java가 pipe를 많이 남기는 이유. 자바에서 발생하는 FileNotFoundException (too many open files)에대해 분석을 하다가 새로운 사실을 알았다. 일단 위의 Exception은 File Descriptior가 너무 많이 열렸다는 것이고 Linux에서 가지고 있는 fd-max값을 넘겼다는 것. 어떤 파일들이 열렸는지 확인을 하기위해 lsof command를 쳐보니. java 1447 root 7w FIFO 0,6 24992 pipe 와 같이 jvm에서 pipe를 아주 많이 만들고 있는 것이 아닌가? 두둥.. 그래서 왜이런 일이 있는지 구글신에 문의 결과. JVM pipe는 거의 Stream에 의해 생성이 되고. Runtime.exec("cmd"); 를 사용하였을 경우 내부적으로 3개의 Stream (InputSt.. 더보기
Rich Client Platform (RCP) Tutorial 번역. 느뤼가 요새 RCP 공부겸 영어 공부겸 IBM에서 제공하는 RCP Tutorial을 번역하기로 맘먹었습니다. 느뤼의 스프링노트에서 시작하고 있구요. 번역되는데로 아래링크 리스트에 추가하겠습니다. 의역과 오역이 남발하지만 혹여나 RCP 공부에 쬐끔은 도움이 되셨으면 합니다. ---------------------------------------------------------------------- Rich Client Tutorial Part 1 Rich Client Tutorial Part 2 Rich Client Tutorial Part 3 ---------------------------------------------------------------------- 더보기
JTextArea.getText의 무서움. 로깅 뷰어가 필요해서 swing으로 하나를 만들었다. 근데 가로막힌 문제가 로그의 양이 매우 많고 빨리 찍히다보니 JTextArea에 그리는 것이 문제가 되었다. 실제 타겟의 동작은 종료되었는데 로그는 계속 찍고 있는 문제....동기가 안맞는 것이다;;; 한마디로 그리는게 느리다. public void printMsg(String msg, Highlighter.HighlightPainter selectPainter) { _startPosition = _msgArea.getText().length(); _endPosition = _startPosition + msg.length(); _msgArea.append(msg + "\n"); //하이라이팅 try { if (selectPainter != null).. 더보기