GIT 커밋한 내용 되돌리는 방법

GIT 을 사용하다 보면 이전으로 되돌려야 할때가 있다. 이럴 경우 다음과 같이 사용한다. 일단 로컬 컴퓨터의 내용을 Remote와 같게 한다음 다음 명령을 입력한다. $ git reset HEAD^ $ git commit -m "바로 이전으로 되돌린다." $ git push origin + master <-- remote 저장소를 강제로 업데이트 하는 명령 위와 같이 하면 바로 이전 커밋으로 되돌린다.

swift 3 에서 pipe forward 연산 적용하기

이미지
Elixir 에서 |> 연산을 사용하는데 아주 직관적이다. 보통 함수는 이렇게 사용한다. let n = 67 let s = String(n + "$") print(s) 하지만 Pipe Forward 연산을 사용하면 이렇다. let n = 67 n |> {String($0) + "$"}    |> {print("2: \($0)") } 두개의 결과는 같다. |> (보통 pipe forward 라 부른다) 연산은 선언을 해야 한다. 이와 같이 하면 사용할 수 있다. 이런 방식이 함수가 중첩되어 표시되는 것보다 휠씬 가독성이 좋다.

[aqme] 255: AQDefaultDevice (162): skipping input stream 0 0 0x0 오류 조치 방법

[aqme] 255: AQDefaultDevice (162): skipping input stream 0 0 0x0 오류내용이 위와 같이 난다. 내용은 대충 AVFoundation 에서 나는 것 같다. 해결방법은 다음과 같다. 1. Xcode 에서 Product -> Scheme -> Edit SCheme 로 간다. 2. Argument 를 선택한다. 3.  Environment Variable 에 OS_ACTIVITY_MODE 를 추가하고 값을 disable 로 설정한다. 위와 같이 하니 에러 메시지는 나오지 않는다.

Linux 접속시 $ 과 # 만 나오도록 설정하기

.bash_profile 에 다음과 같이 설정한다. Shift + g 를 클릭하면 맨 뒤로 이동한다. 여기서 o 를 입력하면 다음 줄에 입력 준비를 한다 export PS1='\$ ' export LANG=C 두줄을 추가한다. 반드시 $ 앞에 \ 을 입력해야 한다. 그렇지 않으면 root 도 $ 으로 나온다. 일반 유저는 $ 만 나오도록 root 는 # 나오도록 하기 위한 설정이다.

Xcode "is missing from working copy" 오류 처리기

File - Add 하여 기존에 사용하던 프로젝트에서 sample.swift 파일을 하나 추가하였다. 하지만 sample.swift is missing from working copy 오류가 나는 것이다. 이에 파일을 삭제하고 다시 추가해도 오류는 없어지지 않는다. 누구는 Source Control 에서 Refresh Status 를 하라고 하는데 같은 결과이다. 또 누구는 SVN 관련 오류라고 하는데 Xcode 는 Git 이 내장되어 있다. 내가 해결한 방법은 이거다. 일단 터미널을 연다. 그런 다음 해당 프로젝트가 있는 디렉토리로 간다. 거기서 다음과 같은 명령어를 입력한다. $ git add . 엔터 거짓말 처럼 오류가 사라진다. Xcode 오류가 많아졌다. 애플이 왜 이러지.....,

남명 조식 선생 상소문

명종 10년에 단성 현감에 제수되었을 때 사직하며 올린 상소 ... 전하의 국사는 이미 잘못되고 나라의 근본이 망하여 천의도 인심도 벌써 떠났습니다. 비유하자면 백 년 된 큰나무에 벌레가 속을 다 갉아먹어 진액이 모두 말라버렸는데 회오리바람과 사나운 비가 언제 닥칠지 모르는 것 같은 상황입니다. ... 소관들은아래에서 시시덕거리며 주색이나 즐기고 대관들은 위에서 어물거리며 재물만 불립니다. 백성의 고통은 아랑곳하지 않은 채 내신들은 후원하는 세력을 심어 용을 물에 끌어들이듯 하고 외신들은 백성의 재산을 긁어들여 이리가 들판에서 날뛰듯 하면서도 가죽이 다 해지면 털도 붙어 있을 데가 없음을 모릅니다. 자전께오선 생각이 깊으시나 깊숙한 궁중의 한 과부에 지나지 않고 전하께오선 어리시어 단지 선왕의 외로운 후사에 지나지 않습니다. 천 백가지의 천재와 억만 갈래의 민심을 무엇으로 감당할 것이며 어떻게 수습하시겠습니까? ... 전하께서 좋아하시는 것은 어떤 일들입니까? 학문을 좋아하십니까? 풍류와 여색을 좋아하십니까? 군자를 좋아하십니까? 소인을 좋아하십니까? 전하께서 좋아하시는 것에 나라의 존망이 달려 있습니다. ... 이에 대한 명종의 답변이다 읽어보니 비록 간절하고 강직한 듯하나 자전에 대해 공손치 못한 표현이 있으니 군신의 의리를 모르는 것 같아 매우 한심스럽다. 이런 사람을 군신의 명분을 안다고 천거했는가? 임금이 아무리 어질지 못하기로 신하로서 어찌 차마 욕을 한단 말인가? 군상을 공경하지 않는 죄로 다스리고 싶지만 초야의 선비이므로 묻지 않겠다. 박시백의 조선왕조실록 09편 199-200

XCode 8.1 에서 Swift 3.0.1 으로 Realm 사용기

데이터베이스를 Realm 을 사용하기로 했다. 쉽고 간단하게 사용할 수 있다고 하며 매뉴얼이 잘되어 있다. 한번 따라 해보기로 했다. 프레임 워크를 수동으로 추가했다. 수동 추가 방법은 Target - General - Embedded Binaries 에서 + 버튼을 클릭하여 추가하면 된다. 반드시 다운받은 폴더에서 3.0.1 의 프레임 워크 파일을 선택해야 한다. Swift 3.0 폴더를 선택해서 한동안 알수 없는 오류로 마음고생을 해야 했다. 이제 프레임 워크를 임포트를 한다. import RealmSwift import Realm 그리고 데이터베이스에 사용할 클래스 구조를 선언한다. Class 와 Struct 의 차이는 참조 와 값 전달의 차이이다. class WorkList: Object {   dynamic var id: Int = 0 } 이를 사용하려면 let myWork = WorkList() myWork.id = 2 입력할 자료를 생성하고 let realm = try! Realm() do {   realm.beginWrite()   realm.add(myWork)   try realm.commitWrite() } catch {   print("realm error: \(error)") } 이렇게 하면 입력이 된다. 파일을 생성해서 할 수 도 있는데 그냥 default 를 사용해야한다. config 에 FileURL 을 설정하여 하는 방법이 인터넷에 있길래 받아서 했는데 되지 않는다. realm browser 에서 보이지 않는다. 파일을 읽으려면 let results = realm.objects(WorkList.self) print(results) 객체 안에 타입을 넣는데 이건 선언한 타입을 넣어야 한다. myWork.self 를 넣어서 한동안 마음고생을 했다. MaxOS sierra 에서 realm 파일은 이곳에...