2006년 8월 29일 화요일

Alexa.com

Alexa Inernet은 Amazon.com을 모회사로둔 회사로서 다른 웹사이트의 웹 트래픽 정보를 제공하는 것으로 유명한 www.alex.com을 운영하고 있습니다.
출처:

P.S.
Alexa is a subsidiary company of Amazon.com라고 본문에 나와있는데 subsidiary는 다른 회사나 법인에 의해 통제 받는 회사를 의미한다고 합니다.

미련


그녀의 밥풀에 대한 미련은 끝이없다.

P.S. 이 사진을 마지막으로 카메라께서 몸져 누우셨다. ㅡㅡ;;

2006년 8월 25일 금요일

navigator.userAgent를 체크할 것인가?

브라우저마다 구현이 다른 코드를 사용하게 되는 경우 체크를 하는 방법에는 두 가지가 있습니다.
  • 하나는, navigator.userAgent같은 코드를 사용하여서 브라우저를 체크하여서 이를 사용하는 방법
  • 또 다른 하나는, 브라우저해서 해당하는 구현이 존재하는 지 여부를 체크하는 코드
두가지의 방법은 나름대로 장단점이 있습니다.
첫 번째의 경우, 장점은 로딩시 한번만 체크하면 확인하는 코드 없이 사용이 가능하다는 점입니다. 단점은 브라우저 종류별, 버전별 체크가 지속적으로 업데이트 되지 않으면 코드가 실행할 수 없는 문제가 발생할 수 있습니다.

if(document.implementation && document.implementation.createDocument){
   ...
}
두 번째의 경우, 장점은 브라우저의 종류, 버전에 상관없이 실행가능한지 여부를 체크하여 새버전 또는 새 브라우저가 나오는 경우 코드 수정없이 코드 실행이 가능하게 됩니다. 단점은, 항상 체크하는 코드를 실행해야 한다는 점과 구현이 안된 코드가 들어있는 경우 예외 상황이 발생할 수도 있습니다.

(이전에, WebKit을 이용하여 테스트를 했을 때, window.event를 사용하여서 체크하는 코드가 있었는데 구현이 안되어 있음에도 window.event가 존재하여서 예외가 발생한 경우가 있었습니다. ^^;; 정식 빌드가 아니긴 했지만요.)

두 번째의 경우는 object detection이라고도 합니다.

Joel on software에 "Listen up, LG dudes~"라는 기사가 떳네요.



Chocolate에 관련되서 디자인은 멋진데.. Blah, Blah, Blah
흠.. 글 중간에는 이런 제품이 어떻게 출시될 수 있는지 모르겠다는 말도 나오는 군요.
결론은, 보기에는 좋아서 많이 사겠지만 Chocoholic이 될 사람은 많지 않을 것이다.

출처:

2006년 8월 24일 목요일

Mac에서 Google talk를 사용하는 방법

gmail계정으로 접속하면 당연히 접속 가능하구요. 이 외에 iChat으로도 접속이 가능합니다.
Jabber를 추가하고 서버를 talk.google.com으로 설정하면 됩니다.


2006년 8월 22일 화요일

내일

내일 비오는데 예비군이다. 아싸~!!
ㅡㅡ;;

밤에는 비 갠다고 하네요.

위닉스 WMA-9700 에어컨

이동식 에어컨이란게 있더군요.

최저가로 40만원대인 이 에어컨의 가장 큰 장점은~
  1. 주인집 허락없이 설치할 수 있다. (환풍 배수관을 창틀에 끼우면 됩니다.)
  2. 이동식이다. (6평의 공간을 지원하는데 이동해봤자....)
그러나!! 단점이 당연히 있겠죠.
  1. 통합형이라서 소음이 크다.
  2. 환풍 배수관에 발열이 심하다.
  3. 물이 찰경우 수동으로 물을 버려줘야 한다.
  4. 가장 큰 문제는 40만원이면 이런 단점 없는 에어컨을 살 수 있다. --;;
이렇게 더울 줄 알았으면.. 노트북을 좀 늦게 지를 걸하는 생각이 드네요. ^^;;;

2006년 8월 18일 금요일

Amazon - The Real Web Services



Atthe core of the Amazon strategy are the Web Services. The Amazon teamtakes the concepts of search, storage, lookup and management the dataand turns them into pay-per-fetch and pay-per-space web services. Thisis a brilliant strategy and Amazon is certainly a visionary company.But what impresses me the most as an engineer is their ability to takevery complex problems, solve them and then shrink wrap their solutionswith a simple and elegant API.

...

Eat your own dog food
...
And how do you solve this problem for something like Amazon WebServices? Amazon's answer - turn ½ of the company to be the customers of the other half. This 'eat your own dog motto' forces the WebServices strategy on the success path. Failure is just simply not anoption, since it is going to undermine the operations of the mainbusiness.
...

from Amazon - The Real Web Services Company by Alex Iskold



2006년 8월 16일 수요일

Boot Camp Beta 1.1 update

제닉스님의 블로그에서 Boot Camp Beta 1.1이 업데이트 되었다고 하는  소식을 들었습니다. 변경된 내용은 다음과 같습니다. camera도 지원이 되는군요~ ^^

Changes in Boot Camp 1.1 beta

Boot Camp 1.1 beta contains many updates and is intended for all new and previous Boot Camp beta users.

Boot Camp 1.1 beta includes:

  • Support for the latest Intel-based Macintosh computers
  • Easier partitioning using presets for popular sizes
  • Ability to install Windows XP on any internal disk
  • iSight camera support
  • Support for built-in microphones
  • Right-click when pressing the right-hand Apple key on Apple keyboards
  • Improved Apple keyboard support including Delete, PrintScreen, NumLock, and ScrollLock keys

Updating to Boot Camp 1.1 beta

If youpreviously installed Boot Camp beta, you should update to Boot Camp 1.1beta. You don't need to partition your hard drive again (unless youwant to change its size) or reinstall your Macintosh and Windowssoftware or documents, but it's very important to update the Boot CampAssistant software, create a new Macintosh Drivers for Windows CD andinstall the updated software it contains on Windows XP. Completeinstructions are provided in the Installation and Setup Guide includedwith the Boot Camp 1.1 beta software.


출처:
제닉스 님의 'Boot Camp 새버전 출시!!'
Apple의 Boot Camp

Ajax Optimization

1. Ajax Optimization 중 Souce 배포에 관련된 Optimization

1. Minifying
프로그램에서 불필요한 주석이나 공백을 삭제합니다. 프로그램의 크기를 반정도 줄이는 게 가능하며 JSMin, ShrinkSafe을 사용하여 줄일 수 있습니다. Minifying을 하기 전에는 JSLint같은 프로그램을 사용하여 ';'의 사용 등을 체크할 필요가 있습니다.
@개인적으로 JSMin으로 실험해봤을 때는 많은 경우 58%까지 줄일 수 있고, 평균 66%정도가 주는 것 같습니다.

2. Obfuscating
변수 이름(variable names)이나 함수(function), 등을 모두 다른 변수명으로 바꿔서 프로그램의 크기를 최소화 시키고 또한, 프로그램을 읽기 힘들게 만듭니다. Saltstorm, Memtronic에서 제공됩니다. Memtronic의 경우 js파일을 gzip 형태로 압축도 가능합니다.

3. Gzipping
Http Compression은 Server에서 Client로 html파일이나 JavaScript파일을 전송할 때 gzip으로 압축해서 전송하고, 브라우저에서는 이를 받아서 압축을 푼다음 실행하게 됩니다. [유경상님의 'HTTP 압축 작동 원리' 참고]
IIS에서는 이를 지원하고 있으며, Apache에서도 mod_gzip, mod_deflate을 통해서 지원이 되고 있습니다.

2. Code 상에서의 Optimization
Ajax Program이 사용되면서 페이지 갱신없이 리로딩하는 방식이 사용되었습니다. 이로인하여 페이지에 할당되어 있는 Object가 GC되지 않아서 메모리 누수가 발생하게 됩니다. 이를 해결하기 위해서는 다음의 방법이 필요합니다.

1. Object에 대해서 사용하지 않는다는 표시를 명확하게 해줘야 한다. (null처리가 들어가야 한다.)

2. 여러 파일들을 하나의 파일로 합침으로서 로딩타임을 최소화 시킬 수 있다.
(Prototype의 경우 여러 클래스 파일들을 하나의 파일로 합쳐서 배포하는 형태를 취하고 있습니다. - 필요 클래스만 묶을 수 있다는 장점이 있는 반면에 config파일을 통해서 묶을 파일을 항상 정해줘야 하는 단점도 있습니다.)

3. WebApp의 Profiling
1. WebApp의 Loading time 측정 - new Date().getTime()을 사용하면 됩니다. /측정시에는 Cache를 삭제함으로서 초기 로딩시간에 대한 측정이 되어야 합니다. /이 외의 Profiling에서도 기준이 되는 것은 time과 관련하여 측정할 수 있습니다.

2. Dojo의 profile kit을 사용하는 방법

3. Server단 에서의 메모리 측정

출처:
유경상님의 Http Compression
OSCON 2006: Ajax Optimization Techniques
Yahoo! user interface blog : Minifycation vs Obfuscation
On the Stre@m: Biggest AJAX Problem
참고:

2006년 8월 15일 화요일

Open Data and APIs - Are they realistic?

Open Data and APIs가 유용한가? 유용하지 않은가?
자신이 가지고 있는 Data를 Open하게 되는 경우 금전적인 손해가 발생하지는 않는가?

Google Map을 살펴보자.
1. Google은 NavTeq의 Map Data를 샀다.
2. Google은 Map Data를 Open했다.
3. Google은 Tele Atlas에 Google Map API를 제공한다. (물론 돈을 받고)

원문  - Vitamin new를 통해서 An open (data) can of worms?

P.S.
단순하게 Data와 API를 open하는게 아니라 또 다른 생산물로 가공해서 판다는 얘기 같네요 ^^;;(짧은 영어실력이라)

Mac에서 iPhoto를 이용한 Image Resizing

Mac에서 Image Resizing을 하려면 iPhoto를 이용하면 됩니다.

'파일 > 보내기'를 눌러서 사진 보내기 다이얼로그를 띄웁니다. 여기에서 '파일보내기' 탭에서 포맷을 'JPG'로 선택을 하고 변경할 파일의 사이즈를 조절합니다.


문제는 JPG 이 외의 포맷을 지원하지 않는다는 것이네요. 더 쉬운 방법은 없나요?

P.S.
Mac의 Widget 중에 Image resizing하는게 없을까 찾아봤는데 없는 것 같네요. 
아래는 resizing가능한 widget을 찾다가 발견한 단축 키 widget "xCut"

JSLint

C언어가 만들어진지 얼마 안되었을 때, 컴파일러가 잡지 못했던 primitive compiler에서 잡지 못했던 에러가 발생하는 경우가 여럿있었습니다. 이를 해결하기 위해서 lint라는 프로그램을 사용하여 소스 파일의 문제점을 찾아서 수정하였습니다.

js파일로 체크를 한 결과


JavaScript에서도 lint에 해당하는 JSLint라는 프로그램이 있습니다. Semicolon, Line-End Punctuators, Comma, Required Blocks, Forbidden Blocks 등 여러 에러를 체크해줍니다. [체크 목록]

jslint.com


JSLint는 JSLint.com에서 제공되는 웹페이지 형태와 야후 위젯의 Konfabulator widgetWSH Command Line, Rhino Command Line 버전을 제공합니다.

2006년 8월 10일 목요일

Wiki란?

Wiki란?
사람들이 쉽게 웹브라우저를 사용하여 더하고, 삭제하도 편집할 수 있는 웹사이트를 말합니다. 사람들이 쉽게 다가설 수 있고, 페이지를 수정할 수 있으며 여러 사람들이 참여하는 큰 프로젝트에서 선택되는 툴로 알려져있습니다.

Wiki의 장점은?
  1. 크기에 상관없이 양식을 가진 글을 쉽고 편리하게 쓸 수 있다.
  2. 그룹간의 의견 교환 시 이메일로 문서의 교환함 없이 바로 협력이 가능해야한다.
  3. 웹에 접근이 가능하다면, 어디에서도 접근이 가능해야한다.
  4. 저장된 페이지는 리비젼(revision)이 가능해야한다.
Wiki의 단점은?
  1. 공개될 수 없는 내용에 대해서는 사용하기 어렵다.
  2. Wiki의 내용이 매우 커질수 있다. (Wiki는 만병통치약이 아니기 때문에 Wiki에 대해서 maintenance할 필요가 있다.)
  3. Content management system이 열악하다.
  4. Wiki가 public하게 공개된 경우 wiki의 내용에 대한 감시가 필요할 수 있다.
  5. 처음 Wiki를 접하는 사람들에게는 text markup의 개념 같은 기술적인 교육이 필요할 수 있다.
  6. Wiki Software를 어떻게  set up/back up할지에 대해서 명확하지가 않다.

출처:

2006년 8월 8일 화요일

javascript로 구현된 Ribon style의 메뉴

굳이 필요한지는 애매하지만 noovo communication이란 곳에서 Office 2007의 Ribbon 스타일의 메뉴바를 javascript로 구현했다는 기사가 ajaxian에 올라왔습니다. 재미있게도 한국회사라고 하네요 ^^


주된 목적은 웹에디터입니다. 도형 지원(div들로 이루어진 사각형들과 이미지가 혼합된 형태이군요)과 클립보드(설마 LiveClipboard?? ^^)지원이 매우 눈길을 끄네요

출처:

2006년 8월 7일 월요일

Javascript관련 팁들

Opera 9의 장점
1. Mac에서 Full-screen mode를 지원하는 단 하나의 브라우저
2. 대부분의 사이트에 대해서 호환성이 높다.
3. low memory footprint

Opera9의 javascript
1. Browser JavaScript - Opera Software ASA에서 배포하는 스크립트로 불안정한 웹페이지를 자동으로 수정하기 위해서 사용되는 스크립트로 유통기한(?)이 있다.
2. User JavaScript - 일반적으로 사용자가 자신의 사이트에 사용하는 JavaScript

JSON을 사용할 때 주의할 점
- JSON을 전송할 때 MIME-TYPE으로 text/html을 사용해서는 안된다. 따라서, application/json으로 사용해야한다.
(text/html로 전송할 때 브라우저에서 일반 html로 취급하여 화면에 표시할 수 있기 때문에 공격의 대상이 될 수 있기 때문이다.)

XML in Firefox 1.5
http://www-128.ibm.com/developerworks/xml/library/x-ffox15.html

IE 6.0의 버그들
crizin님이 오리신 IE 6.0에서의 버그들

2006년 8월 6일 일요일

Mac에서 자막있는 동영상 보기

Mac에서 동영상있는 자막 있는 동영상을 보려면 QuickTime으로는 어렵습니다.
따라서, 새로운 프로그램을 사용해야 하는데요. 이리저리 열심히 검색하다 인코딩 없이 자막과 함께 동영상을 볼 수 있는 방법을 찾아냈습니다. VLC라는 프로그램을 사용하는 건데요.

오픈 소스로서 정식버전이 나와있지는 않습니다. 다운받은 것은 8월 6일자 Nightly build를 받아서 사용해봤습니다. 한글이 안나와서 문제였는데요. 한글 문제는 apple forum에서 해결책을 찾았습니다.
  1. VCL의 설정을 엽니다.
  2. 'Vidoe > Subtitles/OSD > Text Renderer >  폰트'에서 한글  출력이 가능한  폰트를 설정해줍니다.

  3. 'Input/Codecs >  Other codecs > 자막'에서 Subtitles text encoding을 CP949로 설정해줍니다.

설정을 완료하고나면 Mac에서도 다른 인코딩없이 자막 포함하여 동영상을 볼 수 있습니다.

동영상은 고양이의 보은


출처:
VLC프로그램 (인텔 맥 버전 다운로드) - http://nightlies.videolan.org/build/macosx-intel/
Apple forum - VLC에서 한글자막 문제에 대한 해결책이 나와있는 글

Javascript Performance 관련 기사들

1. String concatenation
- Java와 비슷하게 += operator를 String객체에 적용할 때 발생하는 Performance 문제가 존재합니다.
해결책:
  1. String concatenation을 최소화한다. (이를 통해서 메모리 재할당을 줄입니다.)
  2. appended되는 String의 크기를 최소화합니다. (이를 통해서 좀더 적은 메모리를 재할당하게 됩니다.)
  3. Java와 같은 StringBuffer클래스를 생성해서 사용합니다. (내부에 []를 생성하고 append시 []에 추가되는 내용을 []에 더하고, toString 호출 시 []의 join을 통해서  String을 리턴시킵니다.)



  4. String의 메소드나 +=, + 사용을 줄입니다.


출처: Javascript String Concatenation

2 XML vs JSON
  - 일반적으로는 JSON을 사용하는 이유가 XML보다 데이터 전송량도 작고 빠르기 때문에 사용을 합니다만, 데이터를  파싱할 때 성능비교 했을 때 IE, FF에서 XML parser가 성능이 매우 높게 나온다고 합니다.

출처: JavaScript Benchmarking IV: JSON Revisited


Mac에서 bin/hqx파일 설치하기

Mac에서 bin/hqx파일을 받아서 설치하려면 bin/hqx파일을 풀기 위한 프로그램이 필요합니다. Stuffit Expander은 무료로 제공되므로 Stuffit Expander를 다운받습니다.

Stuffit expander를 실행시킨 모습


위처럼 실행된 Stuffit Expander에 bin/hqx파일을 드래그&드롭으로 던져넣으면 자동으로 extract된 후 실행이 됩니다.

P.S:
문제는 Naver 사전에서 발음듣기를 사용하기 위해서 Microsoft Mac Media Player를 설치하려 했습니다만, 압축을 풀어서 설치해도 발음듣기는 안되네요.

2006년 8월 5일 토요일

Programmatic value changes

ewbi.develops에서 Programmatic value changes and onchange event라는 재미있는 글을 봤습니다. 요즘 개발하는데 골머리를 알고 있는 input태그와 관련있는 글이라서 더 관심있게 보았는데요.
  1. 하나는 log출력 코드입니다.
    getElementById를 통해서 얻어온 div의 innerHTML에 log를 출력하는 내용인데요. 출력 위치를 구분하기 위해서 사용하는 <br/>태그 사용이 눈에 들어오네요 ^^
  2. textbox.onchange()를 직접 호출하는 코드입니다. textbox외부에서 onchange()를 호출함으로서 onchange이벤트를 발생시키는데요. textbox.onchange()를 호출할 때 onchange의 파라미터로 textbox가 들어가게 되므로 textbox를 따로 넣어주지 않고도 호출이 되게 됩니다.

    # addEventListener로 change 이벤트를 넣었을 때는 textbox.onchange자체를 없는 것으로 인식합니다.
다음은 관련 글에 나와있는 소스코드입니다.
<html>
<head>
<script type="text/javascript">

function onChange(textbox) {
    log("onChange (" + textbox.value + ")");
}

function programmaticChange() {
    log("programmaticChange");
    var textbox = document.getElementById("textbox");
    textbox.value += "*";
    if (typeof(textbox.onchange) == "function")
         textbox.onchange();
}

function log(text) {
    document.getElementById("log").innerHTML += "<br>" + text;
}

</script>
</head>
<body>
<input type="text" id="textbox" onchange="onChange(this)" />
<a href="#" onclick="programmaticChange(); return false">
programmaticChange
</a>
<hr />
<div id="log"></div>
</body>
</html>
출처:
Programmatic value changes and onchange event

Top Korean Web 2.0 Apps에 Thinkfree가 올라왔네요.

Korean Startups

Korea has a great list of startups and some of them are making a name for themselvesoverseas - e.g. OhMyNews and ThinkFree.


  • Enbee is a an end-to-end photo management servicethat's similar to HP's Snapfish.
  • Tattertools is the leading blog tool ofKorea. They recently launched a hosted blogging service (like Typepad) called Tistory as well.
  • Video sharing: Pandora TV (recently announced a$6M investment by Sillicon Valley investors),
  • Beedeo.com (founded by the original founder ofCyworld, but hasn't yet taken off in Korea)
  • Revu by Opinity is an Identity 2.0 (online reputation)service.
  • Thinkfree is a leading WebOffice service (has a US office) - n.b. I interviewed ThinkFree CEO TJ Kang for ZDNet (part 1 and part 2).
  • Ohmynews.com is a well-known Citizenjournalism site
  • Wingbus provides a travel booking servicealong with travel-related blogs, syndicated from various sources.
  • Han RSS is the #1 RSS reader in Korea, in termsof market share and features.
  • Cyworld openmarket is a "social commerce" site where people create blogs with shopping APIs (here is Chang's post about it)
P.S:
Tistory에 Wingbus까지 소개되어 있군요. 아.. 아쉽게도 이 글의 메인 App는 네이버와 Cyworld군요. ^^

출처:
맥매너스 씨의 Top Korean Web 2.0 Apps

Mac에서 ftp전송 쉽게하기

Woweb.net에 ftp로 파일을 전송하려고 했는데 ftp에서는 읽는것은 되는데 전송은 안되더군요. (터미널 상에서 접속했구요. ㅡㅡ;; 실수일지도 .....) 고로, 네이버 지식인을 검색하다가 맥에서 사용가능한 ftp 프로그램을 찾아보았는데 여러 사람이 Transmit을 추천하더군요.

Transmit을 설치하면 위와 같이 귀여운 자동차 아이콘이 생깁니다. 사용방법은 아주 간단합니다.


접속할 ftp 위치를 정한 후에 Connect를 눌러서 접속합니다.

접속하게 되면 좌측이 로컬, 우측이 서버 위치가 됩니다. Mac이나 , Unix, Windows 상관없이 접속이 잘되네요.
Shareware(기간제한이 있습니다.)로서 가격은 $29.95입니다. 상당히 깔끔한 프로그램이네요 ^^

P.S:
Mac에서 이미지 크기 조정하는 프로그램을 열심히 찾았었는데 안보이더군요. 그래서 Firefox에서 그대로 화면에 올리고 크기 조절만 하였습니다. 그 결과 Mac에서는 깔끔하게 보이는데 윈도우 에서는 글자가 깨져보이네요.
이런 놀라운 일이 ^^;;;

비교해보기..

2006년 8월 2일 수요일

지르자 품목 하나~


다음으로 지를 품목 결정 !!
출근이 기뻐지고 있다 ㅡㅡ;;