2020년 9월 23일 수요일

데스크톱 PC 구입, 딥러닝 실습

모 포털 사이트 데이터 분석 대회 수상자의 솔루션을 소개하는 책 교정을 맡아서 하고 있다. 솔루션의 코드가 그래픽 카드를 이용해 딥 러닝을 하는 것이라, 기존에 사용하던 노트북으로는 실행할 수 없어 데스크톱 PC를 새로 샀다.

조립 PC를 알아보고 직접 구성하는 데 시간과 노력을 들일 여력이 없어, 대기업에서 나온 윈도우까지 사전 설치된 제품을 선택했다. HP OMEN 30L 중 NVIDIA 2080ti가 들어간 것으로 했다. 이번 교정비보다 더 비싸다. 요즘 엔비디아에서 성능이 더 좋고 가격도 저렴한 신상품이 나오는 중이라 조금 더 기다릴 수 있으면 좋았겠지만 당장 테스트 결과를 내는 것이 중요했다. 

사실은 이번 달까지 보안 책 번역 끝내고 나면 게임용 PC를 사서 놀아야겠다고 생각하던 참이다.




2020년 7월 31일 금요일

edX C 프로그래밍 수강, 맥에서 gcc 사용을 위해 명령행 개발자 도구 설치

edX의 C  Programming with Linux Certificate 프로그램을 수강하고 있다. 7개 코스가 하나의 프로그램을 이루는 것으로, 유료로 수강해 수료하면 Professional Certificate를 준다. 동기 부여를 위해 유료로 수강 중이고, 현재 3개 코스를 마치고 네 번째를 듣고 있다.

전에도 edX에서 수업을 몇 가지 들었는데, 지나고 나면 기억이 희미해지는 것이 아쉬웠다. 그래서 이번에는 수업 내용을 위키독스에 영어로 배우는 C 프로그래밍이라는 이름으로 정리하고 있다.

이 수업은 PC에 컴파일러를 설치하지 않고 웹 브라우저에서 바로 해볼 수 있다.

포인터 연산 수업을 듣고 객관식 문제를 풀다가 같은 문제를 자꾸 틀려서 코드를 직접 작성해서 테스트해보니 예상과 다르게 나왔다. 혹시나 컴파일러가 달라지면 다르게 작동할까 싶어, 맥북에서 한 번 더 테스트해보았다.

코드:

% cat pointer.c
#include 

int main(void) {
    int numbers[] = {4, -1, 8, 3, 0, -11};
    printf("%d", numbers[10]);
    return 0;
}


gcc를 사용하기 위해 명령행 개발자 도구를 설치:

% xcode-select --install

컴파일:

% gcc pointer.c
pointer.c:5:18: warning: array index 10 is past the end of the array (which
      contains 6 elements) [-Warray-bounds]
    printf("%d", numbers[10]);
                 ^       ~~
pointer.c:4:5: note: array 'numbers' declared here
    int numbers[] = {4, -1, 8, 3, 0, -11};
    ^
1 warning generated.


실행:

% ./a.out
1860979913

실행 결과를 확인하니 아차 싶었다. C 언어를 옛날에도 배웠고 지금도 다시 배우고 있음에도, 특성을 정확히 이해하지 못한 부분을 이 문제가 잘 지적해주었다.

2020년 7월 15일 수요일

Windows 10 초기화

다른 사람이 쓰던 PC를 얻었는데 Windows 10 계정이 그대로 남아있고 패스워드는 몰라서 바로 사용할 수 없는 상태였다. 그래서 Windows를 재설치해야 하는데, Windows 7 이후로는 재설치 해본 적이 없어서 좀 헤맸다.

찾아보니 간단한 방법이 있었다.

로그인 화면에서 키보드의 Shift 키를 누른 채로,
- 전원 아이콘을 클릭한 다음,
- '다시 시작'을 선택하고, 
- "다시 시작하면 이 PC를 사용하던..." 메시지의 '다시 시작' 버튼을 누른다.

'옵션 선택' 화면에서 '문제 해결'을 선택하고 '이 PC 초기화'를 선택한다.