'0. Management'에 해당되는 글 17건
- 2016.11.27 내가 몰랐던 More Filters 옵션
- 2016.11.27 How to fix overallocated resources
- 2016.11.26 Inactive Task
- 2016.11.24 마일스톤 배경 색상 변경하기
- 2016.11.24 Health check! Status 칼럼을 아이콘으로 표시하기
- 2013.04.25 Hudson Architecture
- 2011.10.28 AnkhSVN - Subversion Support for Visual Studio
- 2011.10.15 The Joel Test: 나은 코딩을 위한 12단계
- 2011.07.29 Google Code
- 2011.07.29 CodePlex - Project Hosting for Open Source Software
- 2011.07.29 HUDSON
- 2011.07.19 CruiseControl
- 2010.04.22 Mantis: Free web-based Bug Tracking system
- 2009.02.13 WinCVS 사용법
- 2009.02.05 VSS 6.0 에서 다중 사용자 Checkout 허용하기
- 2009.02.04 비스타 운영체제에서 Visual Studio 2005와 Source Safe 6.0 연동하기
- 2008.11.03 공유메모리를 만들자
View > Highlight 또는 Filter 에서 늘 하고 싶었던 게 금주의 Task 또는 금주 + 다음주까지의 Task 를 보고 싶었는데 어떻게 하는지 몰라서 'Date range...' 를 사용했었습니다. 근데 적어도 이번주 Task 에 대한 필터는 'More Filters' 에서 보면 존재한다는 사실. 그리고 이 필터를 참고하면 여러가지 다양한 필터를 만들 수 도 있다는 사실을 알았다.
'More Filters...' 를 클릭하면 많은 필터의 목록을 볼 수 있다.
위 목록에서 'Tasks Due This Week' 라는 필터가 있는데 이걸 선택하고 Edit 버튼을 누르면 좀 더 상세한 내용을 볼 수 있다.
이 필터의 조건을 상세하게 볼 수 있는데 필요하면 이런 것들을 응용해서 내가 원하는 필터를 얼마든지 만들 수 있다는 것을 알게 되었다.
How to fix overallocated resources

Task 는 기본적으로 하루를 다 소요하는 것으로 설정되기 때문에, 리소스 할당 시 overallocated 때문에 이를 수정을 하고 싶어진다. 이럴 때 Inspect 를 사용하면 보다 쉽게 수정할 수 있다.
Inspect 버튼을 누르면 왼쪽에 Task Inspector 가 나타난다.. 이때 초과 할당된 리소스의 경우 Reschedule 과 Team Planner 액션이 있는데 Team Planner 를 누르면 아래 화면이 나온다.
Reschedule Task 는 잘 이해가 안됬고, Team Planner 를 누르면 좀 더 쉽게 수정하기 위한 화면을 볼 수 있다.
위에서 보면 초과 할당된 리소스에는 빨간색으로 표시되며 Development, Test, Release 등 3개의 Task 를 볼 수 있다. 단순히 이 화면에서는 이게 뭐지 할 텐데 Details 버튼을 누르면 좀 더 자세한 내용을 볼 수 있다.
위 화면에서 Development 를 선택하면 해당 Task 에 대한 상세한 내용을 볼 수 있고, 여기서 Work 시간을 조정해서 적당한 시간을 할당하면 3개의 Task 가 하루에 24 h 가 아닌 8 h 에 맞추어 일정을 올바르게 수립할 수 있다.
이건 어디까지나 지금까지 둘러본 나만의 팁인거고 더 좋은 방법이 있을수도 있다.
Inactive task is when used to cancel a task but keep a record of the task in the project plan. The task remains in the project plan, but does not affect resource availability, the project schedule, or how other tasks are scheduled.
중요한 일정에 대해 마일스톤을 추가하고, 이를 다른 것들과 구분되도록 하기 위해서 배경 색상을 다르게 표시하고 싶을 때 간단하게 할 수 있다.
Format > Text Styles
Health check! Status 칼럼을 아이콘으로 표시하기

Status 칼럼은 다음과 같은 정보를 표시한다.
Name | Value | Description |
---|---|---|
pjComplete | 0 | Task complete. |
pjFutureTask | 3 | Task for future. |
pjLate | 2 | Task late. |
pjNoData | 4 | Status not available. |
pjOnSchedule | 1 | Task on schedule. |
[참고: https://msdn.microsoft.com/en-us/library/ff863390.aspx]
이 정보를 이용해서 Health 라고 하는 Custom 칼럼을 추가해 보자. 이 칼럼은 Status 값에 따라서 아이콘으로 좀더 효과적으로 보이게 하기 위한 것이다.
1. Health 라는 Custom 칼럼 하나를 추가
2. 해당 칼럼 위에서 오른쪽 마우스를 눌러 'Custom Fields' 를 클릭
3. Formula 를 선택해서 다음을 입력
Switch([Status]=0,'Complete',[Status]=1,'OnSchedule',[Status]=2,'Late',[Status]=3,'FutureTask',[Status]=4,'NoData') |
4. 'Graphical Indicators...' 를 클릭한 후, 아래 그림 처럼 각 값 마다 적절한 이미지를 지정해 준다.
이렇게 하면 Health Column 에는 상태에 따라 아이콘이 표시된다. Status 칼럼은 Start/Finish 그리고 Complete 에 따라서 자동으로 설정되는 값이며 아래와 같다.
How Calculated If the task is 100 percent complete, then Microsoft Office Project sets the Status field to Complete. If the task start date is greater than the status date, then the Status field contains Future Task. If timephased cumulative percent complete is spread to at least the day before the status date, then the Status field contains On Schedule. If the timephased cumulative percent complete does not reach midnight on the day before the status date, then the Status field contains Late. |
https://support.office.com/en-us/article/Status-task-field-769145ac-e052-45af-a847-e5ef15778bb1
AnkhSVN - Subversion Support for Visual Studio

AnkhSVN is a Subversion Source Control Provider for Microsoft Visual Studio 2005, 2008 and 2010.
AnkhSVN provides Apache Subversion source code management support to all project types supported by Visual Studio and allows you to perform the most common version control operations directly from inside the Microsoft Visual Studio IDE.
글 : Joel Spolsky
번역 : B.K. Chung 정봉겸
감수 : Jang Han Goo 구장한
2000년 8월 9일
SEMA에 대해서 들어보신 적이 있습니까? 소프트웨어 팀이 얼마나 잘하는지를 재는 나름대로 복잡한 시스템입니다. 앗, 아니! 그 링크를 누르지 마세요. SEMA를 "이해"만 하는데 아마 6년정도가 걸릴것입니다. 그래서 소프트웨어 팀이 얼마나 좋은지 등급을 매길 수 있는 - 좀 무책임하고 되는대로의 - 자체적인 버젼의 테스트를 만들었습니다. 이 테스트의 장점은 3분정도밖에 걸리지 않는다는 것입니다. 절약되는 시간으로 의대에 가서 공부할 수도 있을 것입니다.
The Joel Test
|
Joel Test이 특별한 점은 각 직문에 예/아니오로 바로 대답할 수 있다는 것이다. lines-of-code-per-day(하루동안 산출되는 코드의 줄수)나 average-bugs-per-inflection-point(산출 시점의 평균 버그수) 같은 것은 알 필요가 없습니다. "예"에 해당 하는 질문에 1점씬 가산됩니다. 하지만 이 테스트는 핵 원자로에 사용하는 소프트웨어가 안전한지를 검사하는등 에는 사용하지 말아주십시오.
12점은 완벽, 11은 충분한 점수이지만 10점이나 그 이하는 심각한 문제가 있다는 신호입니다. 사실은 대개의 소프트웨어 회사 들이 2~3점을 받고 있고, 심각한 도움을 필요로 하고 있습니다. Microsoft같은 회사는 12점 만점을 받고 있습니다.
당연한 이야기지만 이것들만으로 성공과 실패를 가를 수는 없습니다. 특히, 아무도 필요없는 제품을 굉장히 훌륭한 소프트웨어 팀이 만들고 있다면, 역시나 아무도 원하지 않을 것입니다. 반대로 이런 방식을 따르지 않는 명인들이 세상을 바꾸는 소프트웨어 를 만드는 경우로 생각할 수 있겠습니다. 그러나, 이 12가지 이외의 요소를 모두 동등하게 놓고 본다면, 이들만 제대로 한다면 지속적으로 좋은 결과를 내는 잘 훈련된 팀이 될 것입니다.
.... 중략 ...
번역: http://korean.joelonsoftware.com/Articles/TheJoelTest.html
Project Hosting on Google Code provides a free collaborative development environment for open source projects. Each project comes with its own member controls, Subversion/Mercurial/Git repository, issue tracker, wiki pages, and downloads section. Our project hosting service is simple, fast, reliable, and scalable, so that you can focus on your own open source development.
http://code.google.com/hosting/
CodePlex - Project Hosting for Open Source Software

CodePlex is hosted by Microsoft. Microsoft does not control, review, revise, endorse or distribute the third party projects on this site. Microsoft is hosting the CodePlex site solely as a web storage site as a service to the developer community. For more information, read the CodePlex Terms of Use.
What is Hudson?
Hudson monitors executions of repeated jobs, such as building a software project or jobs run by cron. Among those things, current Hudson focuses on the following two jobs:
- Building/testing software projects continuously, just like CruiseControl or DamageControl. In a nutshell, Hudson provides an easy-to-use so-called continuous integration system, making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. The automated, continuous build increases the productivity.
- Monitoring executions of externally-run jobs, such as cron jobs and procmail jobs, even those that are run on a remote machine. For example, with cron, all you receive is regular e-mails that capture the output, and it is up to you to look at them diligently and notice when it broke. Hudson keeps those outputs and makes it easy for you to notice when something is wrong.
Features
Hudson offers the following features:
- Easy installation: Just java -jar hudson.war for testing. Use a native package or deploy it in a servlet container for production use. No additional install, no database.
- Easy configuration: Hudson can be configured entirely from its friendly web GUI with extensive on-the-fly error checks and inline help. There's no need to tweak XML manually anymore, although if you'd like to do so, you can do that, too.
- Change set support: Hudson can generate a list of changes made into the build from SCM systems like CVS, Subversion, Git and many others.. This is done in a fairly efficient fashion, to reduce the load on the repository.
- Permanent links: Hudson gives you clean readable URLs for most of its pages, including some permalinks like "latest build"/"latest successful build", so that they can be easily linked from elsewhere.
- RSS/E-mail/IM Integration: Monitor build results by RSS or e-mail to get real-time notifications on failures.
- After-the-fact tagging: Builds can be tagged long after builds are completed
- JUnit/TestNG test reporting: JUnit test reports can be tabulated, summarized, and displayed with history information, such as when it started breaking, etc. History trend is plotted into a graph.
- Distributed builds: Hudson can distribute build/test loads to multiple computers. This lets you get the most out of those idle workstations sitting beneath developers' desks.
- File fingerprinting: Hudson can keep track of which build produced which jars, and which build is using which version of jars, and so on. This works even for jars that are produced outside Hudson, and is ideal for projects to track dependency.
- Plugin Support: Hudson can be extended via 3rd party plugins. You can write plugins to make Hudson support tools/processes that your team uses.
출처: http://hudson-ci.org/
CruiseControl is both a continuous integration tool and an extensible framework for creating a custom continuous build process. It includes dozens of plugins for a variety of source controls, build technologies, and notifications schemes including email and instant messaging. A web interface provides details of the current and previous builds. And the standard CruiseControl distribution is augmented through a rich selection of 3rd Party Tools.
Mantis: Free web-based Bug Tracking system

Windows XP 의 IIS 환경에서 php 를 돌려야 하기 때문에 생각보다 쉽지 않았고, 또 회사 방화벽 때문인지 망할놈의 인캅스 때문인지... 이래저래 갑갑한 것들이 많았던 것 같다. 그냥 기능을 다 꺼버리고 사용하기로 했다. 특히 SMTP 는... 왜 안될까... 이것때문에 계정생성하더라도 암호 설정을 할수 없어서 그냥 anonymous 로 issue 를 등록하도록 했다. ㅜㅜ
진행하면서 부딪혔던 것들을 정리해 보기로 했다. 아직 안되는 부분들이 있긴 하지만 그건 시간을 두고 하나씩 개선해 가자구.
1. Mantis 다운로드
3. Microsoft Web Platform Installer 를 이용하여 플랫폼과 WordPress 를 설치(MySql 설치용)하자.
위 주소에서 파일을 다운받아서 실행하면, 웹플랫폼과 애플리케이션을 선택하여 설치할 수 있다.
그 중에 php 랑 WordPress 를 설치하면 된다.
단, MySql 이 설치되어 있거나, MySql 설치와 설정과 관련된 부분을 직접 할 수 있다면 WordPress 는 설치하지 않아도 된다. 여기서 WordPress 를 설치하는 이유는 단지 MySql 을 설치하기 위해서이다. 또 그와 관련된 설정을 하지 않기 위해서... (구글링을 하다 보면 이렇게 하는게 편하다고 얘기하는 사람이 많다.)
이후의 삽집은 두서없이 정리해야겠다.
* mantis 설치가 성공하면 기본 로그인 아이디와 암호는 administrator/root 이다. mantis 폴더 아래 doc 밑에 보면 관련 매뉴얼을 html 과 pdf 형식으로 제공한다. 자세한 내용은 이문서를 참고하자.
* mysql 에 mantis 계정을 추가했다. 자꾸 권한이 없다고 해서.. mysql 콘솔에서 다음과 같이 해서 만들었다.
grant all privileges on *.* to mantis@localhost;
flush privileges;
일단 급해서 막 구글링해서 되는데로 했다. 중요했던건 mantis 를 사용하는 것이었다...ㅋㅋ
* admin/check.php 를 이용하면 현재 설정이 올바른지 확인할 수 있다. config_inc.php 를 변경해야할 때가 있는데 이 설정이 올바르게 동작하는지도 check.php 에서 확인할 수 있다.
하루 정도의 삽질끝에 mantis 를 설치하고 사용할 수 있었다. 얼마나 좋은지는 좀더 사용해보아야겠다.
* 참고
http://www.visualwin.com/PHP/
http://blog.amagrammer.net/?p=6
http://www.jopenbusiness.com/tc/oss/103
그외 구글링하면서 접했던 여러사이트들, thanks to...
WinCVS 사용법
1. Wincvs 프로그램을 다운로드.
C. \\156.147.109.217\common\util\WinCvs
설치하고 설명하려는 버전은 1.3b23입니다. 버전마다 인터페이스가 다르기 때문에 여기서 버전이 다르면 설정과 쓰는 법이 다릅니다.
2. WinCvs를 설치
[WinCVS 설치]
A. 받은 파일을 압축을 풀고 wincvs_setup.exe를 실행시킴니다.
B. Welcome to the WinCvs Setup Wizard에서 Next 클릭.
C. License Argeement에서 동의하고 Next 클릭
D. Information 화면에서 Next 클릭
E. Select Destination Location에서 Next
F. Select Components에서 Full installation 선택 후 Next 클릭
G. Select Start Menu Folder에서 Next 클릭
H. Select Additional Tasks에서 Next클릭
I. Ready to Install에서 Install 클릭 -> 설치를 합니다…
J. Completing the WinCvs Setup Wizard 에서 Install CVSNT를 선택하고 Finish를 클릭. 그러면 이제는 CVSNT설치 화면이 나온다.
[CVSNT 설치]
K. Welecom to the cvsnt Setup Wizard 에서 Next 클릭
L. License Agreement 에서 동의하고 Next를 클릭
M. Select Destination Location에서 Next를 클릭
N. Select Components에서 그냥 Typical installation을 선택하고 Next 클릭
O. Select Start Menu Folder에서 Next 클릭
P. Select Additional Tasks에서 모두 선택 후 Next를 클릭
Q. Ready to Install에서 Install을 클릭 -> 설치를 합니다.
R. Completing the cvsnt Setup Wizard에서 Finish를 선택. 재부팅을 한다.
3. WinCvs 실행
A. [시작] -> [프로그램] -> [WinCvs] -> [WinCvs] 클릭 해서 프로그램을 시작한다.
B. Tip of the Day 창이 나오면 Close를 누른다.
C. Admin -> Preferences -> WinCvs에서 Default editor에 자기가 좋아하는 에디터의 경로를 입력한다.
4. WinCvs 로그인
A. WinCvs위에서 Admin -> Login을 누르면 Login setting창이 나오면 CVSROOT에 체크를 하고 :ssh:hhjeong@156.147.109.217:/common/project/cvs를 입력하고 확인을 누른다. 여기서 hhjeong 대신 각자 자기의 Id입력한다.
B. 암호를 묻는 창이 나오면 암호를 입력하면 로그인이 성공하고 메시지창에 CVS exit normailly with code 0이 나온다.
5. 모듈 체크 아웃
-> 프로젝트의 내용을 자기 컴퓨터로 가지고 오는 것을 check out이라고 한다.
A. Remote -> Checkout module를 누른다.
B. checkout settings에 내용을 입력한다.
i. Module name and path on the server 에는 체크아웃할 프로젝트 이름 또는 거기에 해당하는 디렉토리를 적으면 된다. 예를 들어 LDV-S304 프로젝트를 체크아웃 하려면 LDV-S304를 입력하고 거기의 드라이버만 가지고 오려면 LDV-S304/drivers를 입력한다.
ii. Local folder to checkout to 에는 체크 아웃에서 데이터를 저장할 자기 컴퓨터의 폴더의 이름을 적는다.
iii. CVSROOT에는 자기가 가지고 올 CVSROOT를 선택하는 것이다. 아까 로그인 했을 때와 마찬가지고 하면 된다. 예제는 아래 그림과 같다.
iv. 확인을 누르면 지정한 폴더로 체크 아웃한다.
6. Commit (Check in)
A. 아래와 같이 wincvs 창에서 commit 할 것에 선택 후 오른쪽 버튼을 눌러서 commit를 하면 된다.
7. Update
A. Commit와 비슷한 방법으로 한다.
8. tag 만들기 branch 만들기
출처 : bigot.tistory.com/attachment/hk5.doc
VSS 6.0 에서 다중 사용자 Checkout 허용하기

다중 사용자의 check out을 허용하기 위해서는 따로 옵션을 지정해 주어야 한다는 것을 잊지 말자.
만약 이 옵션이 체크되어 있지 않은 경우에는 한번에 한명의 사용자만 체크아웃 하여 작업할 수 있게 된다.
그리고 이와 동시에 Project Rights 탭에서 사용자 권한을 설정할 수 있도록 하는 옵션도 사용하도록 하자.
이 다중 사용자 체크아웃이 활성화 되어 있지 않아서, 자꾸만 2005에서
"코드 요소 'null' 이(가) 읽기 전용이므로 추가/제거 작업을 수행할 수 없습니다."
라는 메시지 박스를 계속 보게되어 원인을 파악한 후 해결하였음. 그리고 만약 이 경우 같은 원인때문에 문제가 발생한다면 단지 저 옵션만을 활성화 한다고 바로 문제가 해결되는 것은 아니고,
기존에 단독 권한으로 체크인 되어 있는 것들을 모두 풀고, 각 클라이언트의 솔루션마다 소스 제어를 새로 설정하여 다시 솔루션을 로드한 후에야 정상적으로 동작한다.
비스타 운영체제에서 Visual Studio 2005와 Source Safe 6.0 연동하기

이번에는 형상관리를 위한 서버(데스크탑)를 두고, 클라이언트(노트북)에서
개발 작업을 하기 위한 환경을 구축하기로 했다.
먼저 개발 툴인 Visual Studio 버전을 선택해야 했는데,
회사에서 최근에 2005로 업그레이드 되었기 때문에,
오랫동안 익숙했던 Visual Studio 6.0과 2003을 버리기로 했고, 컴퓨터에 설치하지도 않았다.
그렇게 2005를 설치하고, 형상 관리 툴을 설치해야 했는데 Source Safe 2005는 팀 에디션에 있는 것이라서
구하기가 어려웠고 결국 Source Safe 6.0을 설치하였다.
XP가 설치된 데스크탑에 공유 폴더를 생성하고, VSS Admin을 실행하여 데이터베이스를 하나 만들었다.
그리곤 노트북에서 VSS 클라이언트를 실행하여 접속을 테스트 해보았고 정상적으로 연결되는 것을 확인하였다.
이제 Visual Studio 2005에서 프로젝트를 하나 만들어 VSS와 연동을 하려고 했다.
근데 프로젝트 생성을 하고 VSS와 연동하는 데 있어 문제가 발생햇다.
VSS 클라이언트만 단독으로 실행하여 원격 서버에 접속하면 연결되던 것이, VS 2005에서 접속을 시도하면
VSS의 연결 목록에 아무것도 나오지 않는 것이었다.
그래서 Nave와 Google을 뒤적거리며 관련자료를 찾아보니, 2005 서비스 팩과 함께 몇가지를 설치해야 한다는 것을 알게 되었다.
우여곡절 끝에 형상관리를 위한 환경을 구축했고 그 과정을 요약하여 정리하였다. (한글판)
1. [ Microsoft Visual Studio 2005 Service Pack 1 ]
http://www.microsoft.com/downloads/details.aspx?familyid=BB4A75AB-E2D4-4C96-B39D-37BAF6B5B1DC&displaylang=ko
2. [ Microsoft Visual Studio 2005 Service Pack 1 for Windows Vista ]
http://www.microsoft.com/downloads/details.aspx?FamilyID=90E2942D-3AD1-4873-A2EE-4ACC0AACE5B6&displaylang=ko
3. 위 두가지 서비스 팩을 설치 한 후 Visual Studio 2005를 관리자 권한으로 실행하면 됨.
-> 매번 오른쪽 마우스로 실행하기 귀찮으므로 파일 속성에서 관리자 권한으로 실행하기를 체크해 두자.
참고 자료 : http://msdn.microsoft.com/en-us/vstudio/aa948853.aspx?lcid=1042
sprintf(achTemp, "%s%s", achSharedName, "_Map");
m_hSharedMemory = CreateFileMappingA(
(HANDLE)0xFFFFFFFF,
NULL,
PAGE_READWRITE,
0,
sizeof(int) + iDataSize,
achTemp
);
if(m_hSharedMemory == NULL)
{
SM_TRACE("Failed to create file mapping \n");
return FALSE;
}
// 메모리 매핑
m_piSize = (int*)MapViewOfFile(m_hSharedMemory,
FILE_MAP_ALL_ACCESS,
0,
0,
sizeof(int));
if(m_piSize == NULL)
{
SM_TRACE("Failed on MapViwewOfFile \n");
return FALSE;
}
m_pbSharedMemory = (BYTE*)MapViewOfFile(m_hSharedMemory,
FILE_MAP_ALL_ACCESS,
0,
0,
sizeof(int) + m_iDataSize);
if(m_pbSharedMemory == NULL)
{
SM_TRACE("Failed on MapViewOfFile 2 \n");
return FALSE;
}
m_pbSharedMemory += sizeof(int);