utf-8 코멘트 파일과 함께 commit 했더니 히스토리에서 한글이 깨져보였다. --encoding UTF-8 파라미터와 함께 실행했더니 해결되었다.

> svn ci -F FILENAME --encoding UTF-8 myfile

참고 : https://stackoverflow.com/questions/19832954/how-do-i-commit-with-a-utf-8-message-file

728x90

문자열 길이를 알고 싶을 때 사용하는 함수다. 주의 할 점은 후행 공백이 제외된다는 점이다.

> SELECT LEN('test ') -- 4가 return 된다.

공백 제외가 문제된다면 DATALENGTH 라는 함수를 사용할 수 있는데 이 함수는 문자수가 아니라 사용된 바이트 수를 알려주기 때문에 데이터 형식과 인코딩에 따라 주의해야한다.

참고 : SQL Server - LEN(Transact-SQL)

 

LEN(Transact-SQL) - SQL Server

LEN(Transact-SQL)

docs.microsoft.com

SQL Server - DATALENGTH(Transact-SQL)

 

DATALENGTH(Transact-SQL) - SQL Server

DATALENGTH(Transact-SQL)

docs.microsoft.com

 

728x90

회사에서 resharper 사용중인데 string.Format 만 쓰면 아래와 같은 경고 메시지가 보인다.

string interpolation 표현식을 사용하라는 건데 아래와 같이 문자열 앞에 $ 마크를 붙이고 문자열 내에 {변수} 방식으로 형식화하는 방법이다. 기존 {0}, {1} 형식보다 직관적이라 가독성은 좋아진다.

string name = "Mark";
var date = DateTime.Now;

// Composite formatting:
Console.WriteLine("Hello, {0}! Today is {1}, it's {2:HH:mm} now.", name, date.DayOfWeek, date);
// String interpolation:
Console.WriteLine($"Hello, {name}! Today is {date.DayOfWeek}, it's {date:HH:mm} now.");
// Both calls produce the same output that is similar to:
// Hello, Mark! Today is Wednesday, it's 19:40 now.

참고 : $ - string interpolation (C# reference) at docs.microsoft.com

728x90

 std::tuple 로 return 되는 결과를 std::tie 로 연결해서 받을 때 사용하지 않는 값을 처리하기 위해서 std::ignore 를 사용하면 좋다.

std::set<std::string> setOfStr;
bool bInserted = false;
std::tie(std::ignore, inserted) = setOfStr.insert("test);

참고 : cppreference - std::ignore

728x90

애플워치 3 가 용량이 부족해서 최근 업데이트를 진행할 수 없었다. 오래 사용하다 보니 건강 데이터가 쌓여서 그런 것 같다. 애플워치 4 이후 모델은 재시동, 미디어 및 앱 제거하기 등을 이용해 용량을 확보하는 방법도 있는데 애플워치 3는 '애플워치 쌍으로 연결 해제 및 업데이트' 방법을 사용해야한다.

연결을 해제하고 초기화 후 업데이트 하는 방식이다.

아이폰 Watch 앱에서 나의 시계 목록에서 오른쪽에 있는 i 버튼을 탭한다.

'Apple Watch 연결 해제' 를 탭해서 연결을 해제한다.

처음 개봉했을 때 처럼 아이폰과 연결한다.

'새로운 Apple Watch(으)로 설정'을 탭한다.

설정이 완료된 후 새 Watch OS 로 업데이트한다. 그리고 다시 쌍으로 연결 해제 후 백업에서 복원을 선택한다. 

P.S. 백업에서 복원은 안했는데 딱히 앱 깔아둔 것도 없고 데이터 날라간게 있는지도 잘 모르겠다.

참고 : Apple Watch 업데이트를 위한 공간이 부족할 경우

728x90

Synology DiskStation 종료는 DiskStation 로그인 후 오른쪽 위 사용자 마크 '옵션' 메뉴에서 '종료'를 선택하면 됩니다.

728x90

iOS 14.5 가 정식 릴리즈 되었네요. 

베타 뉴스로 알고 있었지만 마스크 착용 상태에서 애플워치로 아이폰을 해제하는 옵션이 추가되었습니다. 

업데이트하고 설정 > Face ID 및 암호 로 들어가니 APPLE WATCH로 잠금 해제 항목이 보입니다. 애플워치도 업데이트가 필요하네요.

이 기능 사용을 위해서는 애플워치도 watchOS 7.4로 업데이트가 필요합니다.

아이폰, 애플워치 둘 다 업데이트 후 설정에서 APPLE WATCH로 잠금 해제를 활성화해줘야 합니다.

활성화하려면 애플워치 암호 설정이 필요하네요.

마스크 착용 후 최초 한번은 암호를 입력하거나 Face ID 로 열어줘야 합니다.

애플워치도 착용 후 한번은 비번 입력해서 인증된 상태여야 잠금해제되네요.

잘못 해제되었을 경우에는 와치를 사용해서 다시 잠글 수 있네요. 잠궜을 경우에는 다시 비번 입력이 필요합니다.

마스크에 후드까지 써도 잠금이 풀립니다. 모자를 써도 마찬가지로 풀립니다. 시계 찬 손을 등뒤로 하고 했더니 Apple Watch 를 가까이 이동하라는 메시지가 보입니다. 

(2021-05-15) 잠금 해제 쓰려면 wi-fi 도 켜 있어야 하네요.

다른 사람이 마스크 써도 열린다고 합니다. 복합 인증을 기대했는데 인증된 애플워치가 근처에 있으면 잠금이 해제되는 시스템인가 봅니다.

보안은 낮아졌지만 외부에서 마스크 착용하고 있을 때 비번 반복해서 입력해야하는 번거로움은 사라진 것 같습니다.

 

728x90

Plastic SCM 기본은 아래와 같이 수정, 삭제, 추가된 파일 목록만 보이는데 위와 같이 작업을 분류해서 볼 수 있다.

Main actions > 'Pending Changes' 탭에서 Options 창을 연다. What to show 탭에서 2번째에 있는 Group changes in "change lists" 를 체크해서 활성화한다.

위와 같이 보이던 Pending changes 목록이 아래와 같이 Default 그룹이 추가되어 보인다.

다른 changelist 로 옮기고 싶은 파일을 선택해서 checkout 한다. checkout 된 파일을 move to changelist 를 이용해서 새 changelist 나 기존 changelist 로 이동하면 된다. new 를 이용할 경우 이름과 설명을 적을 수 있다. 아쉽게도 위 내용은 그룹 구분 용이고 check-in comment 는 기존과 같이 comment 영역에 수동으로 입력해줘야 한다.

checkout -> move to changelist -> checkin 플로우 잊지말자.

728x90

tuple 형태로 return 되는 값을 이미 선언된 변수로 받고 싶을 때 std::tie 를 이용하면 된다.

std::tuple<bool, int> func()
{
    return { true, 1 };
}

void mainFunc()
{
    auto [ret, value] = func(); // 새로운 로컬 변수로 받을 때

    bool retB {false};
    int valueI {0};
    std::tie(retB, valueI) = func(); // 이미 선언된 변수로 받을 때
}

참고 : std::tie at cppreference.com

728x90

Unity 에디터에서 scene 실행하면 touch 가 되는지 pending changes에 내용은 바뀌지 않았지만 변경된 파일들이 잔뜩 생기는 경우가 있다. 변경하지 않은 파일들을 구분하기 위해 Preference > Other options > Miscellaneous 항목에서 'Check content (hash) when file timestamps is modified to set is as "Changed" 를 체크하면 내용이 바뀌지 않은 파일들은 보이지 않는다.

728x90

+ Recent posts