2010-02-18

Subversion hosting 머가 좋을까?

Subversion (SVN) Hosting Comparison Review Chart

Name Monthly Cost ($) # of Modules # of Developers Disk Quota (MB) Support SSL Issue Mgmt WebSVN Trac Extras OSS Only
Google 0InfinityInfinityInfinity NoneNoCustomSimilar NoProject MgmtYes
BerliOS Developer0 Infinity InfinityInfinityEmail YesCustomNoNo Project MgmtYes
Gna 0Infinity InfinityInfinityEmail YesCustomNo NoProject MgmtYes
OpenSVN 0InfinityInfinity InfinityEmailYes CustomNoYes NoneNo
SourceForge0 InfinityInfinityInfinity EmailYes CustomNoNo Project MgmtYes
Bounty Source 0InfinityInfinity InfinityEmailYesCustom NoNoProject MgmtYes
ProjectLocker‡ 0Infinity5 500EmailYes CustomYesNo Project MgmtNo
Unfuddle0 12200 EmailNoYes NoNoProject Mgmt No
My Version Control 013100 EmailYesNoneNo YesBlogNo
Beanstalk0 13100 EmailNoNo NoNoLots of Integration No
Slik SVN0 1210 YesYesNo NoNoNone No
CVSDude 01Infinity 2EmailNo NoneNoNo NoneYes
SVNRepository.com4 1Infinity500 EmailYesNone NoYesNone No
ProjectLocker‡ 5Infinity 55000Email YesCustomYes NoProject MgmtNo
My Version Control 5 35500Email YesNoneNoYes BlogNo
Geek ISP 5Infinity Infinity50Email NoNoneNo YesWeb HostingNo
Project Hut5 1Infinity50None YesNoYesYes NoneNo
EuroSVN 61 Infinity150None YesNoneNo NoNoneNo
AVLUX6 1Infinity50Email YesNoneYesNo NoneNo
SVNRepository.com 7Infinity Infinity2000Email YesNoneNo YesNoneNo
wush.net*7 1Infinity1000Email YesExtraYesNo WebDAVNo
DevGuard 72 Infinity200Email YesNoneYes YesNoneNo
hosted-projects.com 7 InfinityInfinity100Email YesNoneNoYes WebDAVNo
Versionshelf 712 100EmailYesNone YesNoNoneNo
Geek ISP8 InfinityInfinity100Email NoNoneNoYes Web HostingNo
Unfuddle 94 4512Email NoYesNo NoProject MgmtNo
DreamHost†‡ 10 InfinityInfinity200000Email ExtraNoneYesNo Web HostingNo
SVNRepository.com 10Infinity Infinity5000Email YesBugzillaNo YesNoneNo
Slik SVN10 5105000Yes YesYesNoYes NoneNo
WebFaction‡ 10InfinityInfinity 1000EmailYesNone NoYesWeb HostingNo
Geek ISP10 InfinityInfinity300Email NoNoneNoYes Web HostingNo
CVSDude* 101 4200Email NoNoneNo NoNoneNo
Project Hut 1010Infinity 200NoneYes NoYesYes NoneNo
ProjectLocker‡12 Infinity1510000 EmailYesCustom YesYesProject Mgmt No
EuroSVN 131Infinity1000 NoneYesNoneNo YesNoneNo
wush.net15 1Infinity5000 EmailYesExtra YesYesWebDAV No
TextDrive†‡ 15InfinityInfinity 5000EmailYes NoneNoYes Web HostingNo
Beanstalk15 1053000 EmailYesNo NoNoLots of Integration No
WebFaction‡ 15InfinityInfinity 2000EmailYesNone NoYesWeb HostingNo
hosted-projects.com 15InfinityInfinity 1000EmailYes BugzillaNoYes WebDAVNo
Geek ISP 15InfinityInfinity 700EmailNoNone NoYesWeb HostingNo
DevGuard 1550Infinity 400EmailYes NoneYesYes NoneNo
AVLUX 155Infinity 250EmailYesNone YesNoNoneNo
DreamHost†‡ 20InfinityInfinity 300000EmailExtra NoneYesNo Web HostingNo
My Version Control 20InfinityInfinity 1000EmailYesNone NoYesBlogNo
Project Hut20 50Infinity1000None YesNoYesYes NoneNo
DevGuard 20100 Infinity800Email YesNoneYes YesNoneNo
AVLUX 20InfinityInfinity 500EmailYes NoneYesNo NoneNo
CVSDude 22Infinity12 1000EmailYesBugzilla YesYesNoneNo
My Version Control 24 InfinityInfinity3000Email YesNoneNoYes BlogNo
Unfuddle 241010 2000EmailYesYes NoNoProject MgmtNo
TextDrive†‡ 25InfinityInfinity 10000EmailYes NoneNoYes Web HostingNo
Beanstalk 251520 6000EmailYesNo NoNoLots of IntegrationNo
WebFaction‡25 InfinityInfinity4000Email YesNoneNoYes Web HostingNo
Geek ISP 25InfinityInfinity 2000EmailNoNone NoYesWeb HostingNo
Versionshelf25 55500Email YesNoneYesNo NoneNo
AbnHost‡ 251Infinity 200EmailYesNone NoNoNoneNo
ProjectLocker‡30 Infinity3030000Email YesCustomYesYes Project MgmtNo
hosted-projects.com 30Infinity Infinity3000Email YesBugzillaNo YesWebDAVNo
Project Hut30 200Infinity2000None YesNoYesYes NoneNo
DevGuard 30200 Infinity1000Email YesNoneYes YesNoneNo
AVLUX30 InfinityInfinity1000Email YesNoneYesNo NoneNo
CVSDude 32Infinity Infinity5000Email YesBugzillaYes YesNoneNo
WebFaction‡35 InfinityInfinity6000Email YesNoneNoYes Web HostingNo
Versionshelf 3810 101000Email YesNoneYes NoNoneNo
DreamHost†‡ 40InfinityInfinity 400000EmailExtra NoneYesNo Web HostingNo
Project Hut40 InfinityInfinity5000 NoneYesNo YesYesNone No
Unfuddle 4920 204000Email YesYesNo NoProject MgmtNo
AbnHost‡49 1Infinity500Email YesNoneNoNo NoneNo
CollabNet 50InfinityInfinity InfinityEmailYesCustom YesNoNoNo
Beanstalk50 30 4012000EmailYes NoNoNoLots of Integration No
CVSDude 50InfinityInfinity 7000EmailYes BugzillaYesYes NoneNo
DevGuard60 500Infinity5000 EmailYesNone YesYesNone No
SourceHosting.net† 651 5100Email YesExtraYes NoNoneNo
AVLUX75 InfinityInfinity5000Email YesNoneYesNo NoneNo
Versionshelf 7750 202000Email YesNoneYes NoNoneNo
DreamHost†‡ 80InfinityInfinity 500000EmailYes NoneYesNo Web HostingNo
ProjectPipe‡99 15Infinity EmailNoCustom NoNoProject Mgmt No
Unfuddle 9950 5010000Email YesYesNo NoProject MgmtNo
Beanstalk100 6510024000Email YesNoNoNo Lots of IntegrationNo
ProjectPipe‡ 1991 20InfinityEmail YesCustomNo NoProject MgmtNo
Beanstalk200 15020048000Email YesNoNoNo Lots of IntegrationNo
wush.net 205InfinityInfinity 250000EmailYesExtra YesYesWebDAV, DedicatedNo

Subversion backup and restore - ArchWiki

Subversion backup and restore - ArchWiki

CRC 카드로 설계 세션하기

2010-02-12

회사 메일로 Gmail을 쓰면서 대용량 첨부파일 문제를 해결하려면...

우리 회사 메일서버를 gmail 로 변경하기로 결정하면서 결국에 닥친 문제는 역시 대용량 메일 발송 문제였다.
(아... 주요 고객사에서 구글 메일 접속을 차단하는 것도 문제였지. 이 문제는 나중에...).

대안이 없을까 고민하다가 생각나는 방법들을 시도해 보았다.

대용량 메일이라는 것이 실은 메일을 대용량으로 보내는 것이 아니고 적당한 다른 스토리지에
파일을 올려두고 그 링크를 메일로 보내는 것이므로 이 작업을 사람이 직접 수동으로 하면 되는거지.

다만 기존에는 메일쓰기 화면에서 파일을 올리고 메일 발송을 하는 반면에 우리의 경우에는 파일을 적당한 장소에 올리고 그 파일을 공유(메일보내기)하는 순서로 작업하는 것이다.

첫째로, 먼저 생각난 것은 google docs에 파일을 올리고 공유를 하는 것이다.
최근에 구글은 구글 독스에 upload any files라는 기능을 추가하였다. 비록 용량은 1G 이지만
어찌되었든, 웹하드의 기능이 들어온 것이다. 구글 독스는 이미 문서 공유 기능이 있으므로
업로드 한 파일을 공유하기만 하면 된다.

둘째는 네이버메일과 같이 대용량 파일 첨부를 제공하는 포털 서비스를 이용한다.
다만 이 서비스를 이용해서 메일을 보낼 경우 회사 메일 계정으로 메일을 보내는 것이 아니기 때문에 나와 회사의 일관성(?)이 없다. 발신자가 네이버 아이디이기 때문이다. 머... 큰 문제인가? 받는 사람은 신경 안쓸 것 같기도 하고. 그래도 회신 주소를 회사메일 계정으로 할 수는 있다.

세째는 네이버의 ndrive나 MS의 skydrive같은 무료 저장공간을 이용해도 된다.
여기는 아주 넉넉한 저장공간을 무료로 제공한다. 사용 느낌도 제법 좋다. 여기에 파일을 업로드 하고 이 파일의 경로를 메일을 보내면 된다. 보통, 업로드된 파일에 대해 메일 보내기 메뉴가 제공된다. 역시 네이버 계정으로 메일을 보내는 것이다.

네째는, 알집으로 파일을 분할하여 압축하는 것이다. 분할 압축할 때에, 메일로 보낼 수 있을만큼
적당한 사이즈로 분할하여야 한다. 그런 다음 각각의 파일들을 메일 첨부로 넣으면 된다.
물론 받는 사람은 각각의 분할된 파일을 모두 다운로드하여 알집으로 풀어야 한다.
(약간 번거로운가?)

머... 이 정도... 생각해 보았다. 별 신통치는 않다.

그런데 이 글을 쓰면서 자꾸만 떠오르는 생각은, 과연 그렇게까지나 메일로 대용량 파일을 전송하고 싶을까 하는 것이다. 500메가, 1기가 하는 파일들을 정말 메일로 보내고 싶은 것일까.

메신저로 보내도 되고. 협업할 수 있는 웹사이트에 올려도 되고.
아니면 아파치 설치된 아무 웹서버에 파일 올려놓고 그 링크를 메일로 보내도 되고.
네이버 같은 서비스들은 결국 이런 일을 대신 해 주는 것이다. 흡사 이 기능이 메일의 서비스인 것처럼. 그런 서비스는 우리 개발자 친구들도 만들 수 있는 것이다.

그런 면에서 구글이 대용량 메일을 지원하지 않는 이유도 어느 정도 이해할 수 있을 것 같다. 애초에 메일은 대용량 첨부파일을 보내기 위한 도구가 아니기 때문이다.

2010-02-10

TDD를 위한 변호

TDD 혹은 테스팅 작업의 필요성을 조직에 설득하기는 쉽지 않다.

테스팅에 대해서는 필요성은 수긍하지만 과연 그러한지에 대해서는 분명한 이해를 가지고 있지 않을 가능성이 크다.
테스팅에 대해서도 그러한데, TDD는 말할 것도 없겠다. 개발 시간을 늦추니 말이다.

품질문제를 제기하면 어떨까?

테스트를 가진 코드는 확실히 품질이 좋다. 이것만큼은 대부분 동의한다.
품질이 좋으면 유지보수 비용도 줄일 수 있다.
왜냐하면 저품질의 코드를 읽는 것만큼 생산성을 떨어뜨리는 것도 없기 때문이다.
이렇게 해서 자연히 비용문제까지 꺼낼 수 있을 듯 하다.

하지만 과연 실전에서는...

Google talk 여러개 실행하기

"c:\program files\google\google talk\googletalk.exe" /nomutex

2010-02-09

스크럼 도입

http://sozu.tistory.com/tag/스크럼

매우 실용적이면서 경험으로부터 우러나는 통찰이 보인다.
왜 아날로그로 귀환했는지에 대해 기록한 부분이 특히.


팀에 하이버네이트 도입을 생각함

http://groups.google.com/group/KGGUG/browse_thread/thread/6447f7838e9b0689 에서
"[KGGUG] 그루비 에서 스칼라 로" 글을 읽다가 ORM(하이버네이트)에 대한 의견 충돌 발생.

흠... 사실 서로 다른 방식의 문제해결 접근인데 서로 맞추기는 힘들겠지.
그렇다고 해도 각자 갈 길을 가시오라고 말할 수 없는 것은 현실에서 항상 부딪치는 문제이기 때문이다.

내 개인적으로는 ORM쪽에 한 표.

나는 개발자들이 잔뜩 적은 sql문장을 견딜 수 없다. 한 개의 sql문이 모니터 화면 하나를 가득 채운다.
이게 관리가 안되는거다. 누가 도대체 그런 sql문을 이해하고 싶어 하겠는가 말이다.

아름답지 않은 코드에 끝까지 저항하자.

2010-02-03

Eclipse product launch / export Error

이상한 점이 한 둘이 아니다. 어디서부터 꼬였는지 당췌...
우선 갑자기 product export 가 안된다.
Cannot complete the install because one or more required items could not be found.
Missing requirement: XXX Monitor 1.0.0.201002031259
(com.example.monitor.product 1.0.0.201002031259) requires 
'com.example.monitor [1.0.0.201002031259]' 
but it could not be found

흠... 그래서 product overview에서 launch해 봤는데 갑자기 에러!
ClassNotFoundException이란다. Activator 클래스를 찾을 수 없다니.
가끔은 Application을 찾을 수 없다고 하기도 한다.

우선 이렇게라도 적어두고 하나씩 분석해보자.

Activator를 찾을 수 없을 경우: 어쩐 일인지 모르겠지만 build.properties가 META-INF/에 있었다. 프로젝트 루트로 이동함.


Export 시에 Eclipse compiler가 setText("한글"); 과 같은 코드에서 setText("濡쒓렇??); 와 같이 인코딩 오류로 에러를 냄 - string externalize 함.

캘리더 설계하기 - 어렵다

반복일정을 어떻게 설계할 것인가가 참으로 문제이다.

일단 다음을 참고하자. 물론 여기에도 당신이 원하는 답은 없을지 모른다.

Calendar Domain with Repeating Events
http://tech.groups.yahoo.com/group/domaindrivendesign/message/16930

Martin Fowler
http://www.martinfowler.com/apsupp/recurring.pdf


2010-02-01

디스크

병원을 다녀왔다.

몇 주 전부터 아팠던 허리도 문제였고, 이제는 목에 힘조차 줄 수도 없는 증상이 나타났다.
그냥 잠을 잘 못 잤겠거니 했다.

집사람이 병원엘 가 보잔다. 집사람은 유난이 심하다. 특히 나에 관한 문제에서는 더욱 더.

의사는 내 목을 이리저리 돌려 보라 하더니 디스크가 의심스럽단다.
단순히 잠을 잘 못 잤다면 왼쪽 목이 아픈데 오른쪽은 돌리기 쉽고 왼쪽이 어려울 수는 없다는거다.
더군다나 뒤로 목을 젖히는 것이 자연스럽지 않으니...

어짜피 허리 MRI와 목 MRI를 따로 찍는거보다 함께 찍으면 이익(?)인 듯 하니
MRI를 찍잔다. 켁. MRI? 이게 머였더라?

그러면서 간호사가 내게 던진 질문 하나. 엘리베이터나 좁은 곳에서 괜찮은지 물어본다.
(음... 간혹 엘리베이터나 사람 많은 지하철에서 심장이 벌렁거리긴 하는데... 왜 갑자기 이걸 물어보지?)
정신없이 날라오는 질문 중 하나여서 잠시 대답하지 못하고 머뭇거리는 동안 일사천리로 진행된 MRI 준비.

옷갈아 입고 들어가니... 와우... 내가 젤 싫어하는 것.
이거 이제와서 못하겠다는 말도 못하겠고... 딱 눈감고 버티자는 심정만으로 누웠다. 그 안으로 들어가는 모습, 주변을 보기 싫어서 절대 눈 뜨지 않으리라 다짐하고. 그러면서 약간 벌렁거리는 심장을 안정시키면서.

답답해지면 어떻게 해야 하나요?
한 쪽 다리를 드세요.
보고 계실거죠?

15분에서 20분 걸린다는 시간은 왜 이리 긴지.
양쪽 귀마게에 스펀지를 꽂고도 사이렌 소리같은 소음이 매우 불쾌하다. 어떤 레이저 같은 불빛이 내 온몸을 뚫고 지나가는 느낌... 다시는 이런걸 하지 않으리라.

결과는 당황스럽다. 의사가 약간 오버하는 느낌이 있긴 하지만 내가 잘 모르는 내용이니 그냥 믿어줄 수 밖에.
목에 3개, 허리에 2개의 디스크.
이거 참.

글쎄... 사실 그 동안 약간의 불편함은 있었지만 못 살 정도는 아니었는데.
갑자기 우울한 느낌. 내 인생이 이렇게나 늙었버렸나.

이거 씁쓸하구만..

디스크 관련 도서도 좀 읽고 운동도 해야겠다.