IT정리노트

블로그 이미지

Edward. K

메멘토적 기억능력을 소유한 개발자 노트.

'Programming'에 해당되는 글 154건

제목 날짜
  • JAVA ID3 TAG API 2009.07.15
  • SQL 모니터링 log4sql 2009.07.15
  • springsource의 무료 온라인 강의 2009.07.15
  • JAVA Decompiler GUI 2009.07.15
  • Optimizing JavaScript code 2009.06.30

JAVA ID3 TAG API

Programming/JAVA 2009. 7. 15. 16:33
반응형
MP3 Header

http://javamusictag.sourceforge.net/index.html

http://javamusictag.sourceforge.net/docs.htm
반응형
저작자표시 비영리 변경금지 (새창열림)
Posted by Edward. K

SQL 모니터링 log4sql

Programming/JAVA 2009. 7. 15. 16:01
반응형

참고 :  SQL 모니터링 Open source 'p6spy'


p6spy 와 동일한 기능을 하는 듯 하며, ( 아직 테스트는 안해봤다..--;)
설정 페이지를 따로 만들어서 관리 편의성을 높인듯 하다.

우선..링크만 걸어두고..  추후 적용한 후 리뷰를 적어봐야겠다.

http://log4sql.sourceforge.net/index_kr.html
반응형
저작자표시 비영리 변경금지 (새창열림)
Posted by Edward. K

springsource의 무료 온라인 강의

Programming/JAVA 2009. 7. 15. 15:43
반응형
http://www.springsource.com/training/freeonline


무료 등록하시면 됩니다.
반응형
저작자표시 비영리 변경금지 (새창열림)
Posted by Edward. K

JAVA Decompiler GUI

Programming/JAVA 2009. 7. 15. 12:45
반응형
오...이뻐졌다다..
http://java.decompiler.free.fr/
jd-gui-0.2.10.windows.zip
jdeclipse_update_site.zip

 1. Java Decompiler 파일  (http://eknote.tistory.com/350 )
     : 설명없이 걍 파일 만 올려두었다.
 2. Eclipse On JAD ( Java Decompiler ) (http://eknote.tistory.com/580)
     : Eclipse 3.3.x 버젼에서   JAD Plugin 사용하기
 3. Use Decompiler (http://eknote.tistory.com/581)
     : JAD 사용법 설명
 4. 역컴파일을 방지하자!! (http://eknote.tistory.com/645)
     : Decompiler 에 대응하는 자세!!! 

-------------------------------------------------------------------


Eclipse Version :    Eclipse 3.4 (Ganymede)
걍..따라하시면 됩니다.

1. Software Updates..
    



2. Available Sostware > Add Site
    


3. JD-Eclipse 업데이트 링크 추가
    (Duplicate URL 은 신경쓰지 마세요..-_-;  캡쳐 실패해서 다시한거에용)
    http://java.decompiler.free.fr/jd-eclipse/update
    


4. 추가한 사이트 선택하고  Install 선택
    

     


5. install 항목을 선택하고 Next
    


6. 라이선스 체크
    


7. 설치 진행.
    

     진행중 확인창이 뜨면..체크후 OK
    


8. 설치 완료후 재시작합니다.
    


9. 클래스 파일을 선택하면 디컴파일 되어서 보여집니다.
   참 쉽죠~잉~

   


반응형
저작자표시 비영리 변경금지 (새창열림)
Posted by Edward. K

Optimizing JavaScript code

Programming/JavaScript 2009. 6. 30. 14:34
반응형
링크 : Optimizing JavaScript code
          see alse : IE+JScript Performance Recommendations Part 3: JavaScript Code inefficiencies


Optimizing JavaScript code

Authors: Gregory Baker, Software Engineer on GMail & Erik Arvidsson, Software Engineer on Google Chrome

Recommended experience: Working knowledge of JavaScript

Client-side scripting can make your application dynamic and active, but the browser's interpretation of this code can itself introduce inefficiencies, and the performance of different constructs varies from client to client. Here we discuss a few tips and best practices to optimize your JavaScript code.

Working with Strings

String concatenation causes major problems with Internet Explorer 6 and 7 garbage collection performance. Although these issues have been addressed in Internet Explorer 8 -- concatenating is actually slightly more efficient on IE8 and other non-IE browsers such as Chrome -- if a significant portion of your user population uses Internet Explorer 6 or 7, you should pay serious attention to the way you build your strings.

Consider this example:
var veryLongMessage =
'This is a long string that due to our strict line length limit of' +
maxCharsPerLine +
' characters per line must be wrapped. ' +
percentWhoDislike +
'% of engineers dislike this rule. The line length limit is for ' +
' style purposes, but we don't want it to have a performance impact.' +
' So the question is how should we do the wrapping?';

Instead of concatenation, try using a join:
var veryLongMessage =
['This is a long string that due to our strict line length limit of',
maxCharsPerLine,
' characters per line must be wrapped. ',
percentWhoDislike,
'% of engineers dislike this rule. The line length limit is for ',
' style purposes, but we don't want it to have a performance impact.',
' So the question is how should we do the wrapping?'
].join();

Similarly, building up a string across conditional statements and/or loops by using concatenation can be very inefficient.

The wrong way:
var fibonacciStr = 'First 20 Fibonacci Numbers
';
for (var i = 0; i < 20; i++) {
fibonacciStr += i + ' = ' + fibonacci(i) + '
';
}

The right way:
var strBuilder = ['First 20 fibonacci numbers:'];
for (var i = 0; i < 20; i++) {
  strBuilder.push(i, ' = ', fibonacci(i));
}
var fibonacciStr = strBuilder.join('');

Building strings with portions coming from helper functions

Build up long strings by passing string builders (either an array or a helper class) into functions, to avoid temporary result strings.

For example, assuming buildMenuItemHtml_ needs to build up a string from literals and variables and would use a string builder internally,
instead of using:
var strBuilder = [];
for (var i = 0; i < menuItems.length; i++) {
  strBuilder.push(this.buildMenuItemHtml_(menuItems[i]));
}
var menuHtml = strBuilder.join();

Use:
var strBuilder = [];
for (var i = 0; i < menuItems.length; i++) {
  this.buildMenuItem_(menuItems[i], strBuilder);
}
var menuHtml = strBuilder.join();

Defining class methods

The following is inefficient, as each time a instance of baz.Bar is constructed, a new function and closure is created for foo:

baz.Bar = function() {
  // constructor body
  this.foo = function() {
  // method body
  };
}

The preferred approach is:
baz.Bar = function() {
  // constructor body
};
baz.Bar.prototype.foo = function() {
  // method body
};

With this approach, no matter how many instances of baz.Bar are constructed, only a single function is ever created for foo, and no closures are created.

Initializing instance variables

Place instance variable declaration/initialization on the prototype for instance variables with value type (rather than reference type) initialization values (i.e. values of type number, Boolean, null, undefined, or string). This avoids unnecessarily running the initialization code each time the constructor is called. (This can't be done for instance variables whose initial value is dependent on arguments to the constructor, or some other state at time of construction.)

For example, instead of:

foo.Bar = function() {
  this.prop1_ = 4;
  this.prop2_ = true;
  this.prop3_ = [];
  this.prop4_ = 'blah';
};

Use:

foo.Bar = function() {
  this.prop3_ = [];
};

foo.Bar.prototype.prop1_ = 4;

foo.Bar.prototype.prop2_ = true;

foo.Bar.prototype.prop4_ = 'blah';

Be careful using closures

Closures are a powerful and useful feature of JavaScript; however, they have several drawbacks, including:

  • They are the most common source of memory leaks.
  • Creating a closure is significantly slower then creating an inner function without a closure, and much slower than reusing a static function. For example:

    function setupAlertTimeout() {
      var msg = 'Message to alert';
      window.setTimeout(function() { alert(msg); }, 100);
    }

    is slower than:

    function setupAlertTimeout() {
      window.setTimeout(function() {
        var msg = 'Message to alert';
        alert(msg);
      }, 100);
    }

    which is slower than:

    function alertMsg() {
      var msg = 'Message to alert';
      alert(msg);
    }

    function setupAlertTimeout() {
      window.setTimeout(alertMsg, 100);
    }
  • They add a level to the scope chain. When the browser resolves properties, each level of the scope chain must be checked. In the following example:

    var a = 'a';

    function createFunctionWithClosure() {
      var b = 'b';
      return function () {
        var c = 'c';
        a;
        b;
        c;
      };
    }

    var f = createFunctionWithClosure();
    f();

    when f is invoked, referencing a is slower than referencing b, which is slower than referencing c.

See IE+JScript Performance Recommendations Part 3: JavaScript Code inefficiencies for information on when to use closures with IE.



반응형
저작자표시 비영리 변경금지 (새창열림)
Posted by Edward. K
이전페이지 다음페이지
블로그 이미지

메멘토적 기억능력을 소유한 개발자 노트.

by Edward. K

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

  • Jboss
  • sqlgate
  • android
  • 개한민국
  • 미네르바
  • 전자정부프레임워크
  • egov
  • 이클립스
  • 색상코드표
  • tomcat
  • Graphic
  • toad
  • 컴퓨터 관리
  • 플래시 게임
  • netbeans
  • STS
  • EditPlus
  • 중독성게임
  • eclipse plugin
  • ERwin
  • Flash Player
  • 캡쳐툴
  • iBATIS
  • 이미지 편집
  • EkNote
  • Eclipse
  • rocketdock
  • 사업 이야기
  • flex
  • 가상화폐무료

글 보관함

«   2025/12   »
일 월 화 수 목 금 토
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

링크

카테고리

분류 전체보기 (792)
행운이와함께 (1)
EkNote Project (18)
ARIS (0)
Android (2)
LINK (39)
UML (9)
Programming (154)
Cobol (0)
ASP (0)
CSS (5)
C_C++ (2)
IBatis (2)
JSP (3)
JAVA (76)
JavaScript (44)
PHP (2)
Utility (76)
Protable (3)
MobileProgram (4)
SKT (0)
KTF (0)
LGT (0)
자료들 (4)
DB (82)
mongoDB (0)
MySQL (8)
Oracle (61)
MSSQL (4)
Graphic (8)
Flash (3)
PhotoShop (3)
SourceFactory (4)
Collection (73)
작가의기막힌상상력 (14)
미소를찾아보는공간 (44)
내심장은작동중일까 (6)
멀더와스컬리의노트 (3)
이건어디에사용할까 (6)
Edward (275)
나만 알기엔 아까워 (100)
기억하기 위한 기록 (123)
시선이 머무는 공간 (50)
숨기고 싶은 이야기 (2)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
Edward. K's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

IT정리노트

메멘토적 기억능력을 소유한 개발자 노트.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 분류 전체보기 (792)
    • 행운이와함께 (1)
    • EkNote Project (18)
    • ARIS (0)
    • Android (2)
    • LINK (39)
    • UML (9)
    • Programming (154)
      • Cobol (0)
      • ASP (0)
      • CSS (5)
      • C_C++ (2)
      • IBatis (2)
      • JSP (3)
      • JAVA (76)
      • JavaScript (44)
      • PHP (2)
    • Utility (76)
      • Protable (3)
    • MobileProgram (4)
      • SKT (0)
      • KTF (0)
      • LGT (0)
      • 자료들 (4)
    • DB (82)
      • mongoDB (0)
      • MySQL (8)
      • Oracle (61)
      • MSSQL (4)
    • Graphic (8)
      • Flash (3)
      • PhotoShop (3)
    • SourceFactory (4)
    • Collection (73)
      • 작가의기막힌상상력 (14)
      • 미소를찾아보는공간 (44)
      • 내심장은작동중일까 (6)
      • 멀더와스컬리의노트 (3)
      • 이건어디에사용할까 (6)
    • Edward (275)
      • 나만 알기엔 아까워 (100)
      • 기억하기 위한 기록 (123)
      • 시선이 머무는 공간 (50)
      • 숨기고 싶은 이야기 (2)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바