오늘은 Mac이 AI PC로서 왜 최고인지에 대해 이야기해보려고 합니다. 여러분도 알다시피, 인공지능은 우리 삶의 많은 부분을 변화시키고 있죠. 그리고 이러한 변화를 이끌어가는 데 있어서 Mac 컴퓨터가 중요한 역할을 하고 있습니다.

강력한 뉴럴 엔진

Mac 컴퓨터는 매년 더 발전하는 신경망 엔진(Neural Engine)을 갖추고 있어서, 강력한 AI PC로 사용할 수 있습니다. Apple의 M3 칩 가족은 세 년 전 M1 칩과 비교하여 60% 더 빠른 신경망 엔진을 갖추고 있으며, 이전의 M2 칩과 비교하면 15% 더 빠릅니다.

메모리 관리

AI 작업에는 많은 메모리(RAM)와 그래픽 메모리(VRAM)가 필요합니다. Mac 컴퓨터는 이러한 작업에 대한 메모리 관리를 뛰어나게 잘 합니다. Apple Silicon Mac은 중앙 처리 장치(CPU)와 그래픽 처리 장치(GPU) 코어 간에 공유되는 단일 메모리를 사용하지만, Windows PC보다 메모리 관리가 더 좋습니다.

서드파티 AI 앱 지원

Mac은 다양한 온라인 AI 도구를 실행할 수 있습니다. 예를 들어, LM Studio를 Mac에서 사용하여 주요 언어 모델(LLM)을 실행할 수 있습니다. Llama 2도 다양한 방법으로 로컬로 실행될 수 있습니다. 오디오와 동영상 AI 소프트웨어 앱, 같은 Stable Diffusion과 Whisper도 Mac에서 원활하게 작동합니다.

사용자 기반

Mac은 이미 AI PC로 사용되고 있습니다. 2020년부터 Mac은 신경망 엔진을 탑재하여 AI PC로 사용할 수 있습니다. 이는 2020년 출시된 엔트리 레벨 Mac Mini와 MacBook Air가 4년된 지금도 AI PC로 사용할 수 있다는 것을 의미합니다.

Mac은 사용자가 구매해야 할 새로운 AI PC를 구매하지 않고도 AI를 사용할 수 있는 장점이 있습니다. 새로운 노트북이나 PC를 구매하는 빈도가 높지 않기 때문에, 평균 Windows 사용자는 몇 년 동안 NPU를 탑재한 시스템을 구매할 것입니다. 그러나 Mac을 보면, 수백만 명의 사람들이 이미 AI PC로 사용할 수 있는 Mac을 가지고 있습니다.

반응형

'개발' 카테고리의 다른 글

코딩 AI 랭킹  (0) 2024.03.09
2024년 프로그래밍 랭킹  (1) 2024.01.02
gitlab 설치(apache --proxy--> gitlab)  (0) 2023.12.27
elixir vs rust 비교  (1) 2023.12.27
vscode dev containers  (1) 2023.12.22

기본설정은 capslock 이 한/영 전환으로 설정되어 있지만, 저는 capslock 과 ctrl 을 스왑해서 사용하고 있습니다. 이로 인해 한/영 전환을 해야할때, 왼손새끼 손가락을 꿇어야 하는 모양새가 되었습니다. 이를 방지 하기 위해서 window 와 비슷하게 오른쪽 command key 를 변경하여서 사용하기로 했습니다.

일시적 설정

재부팅하면 재입력 하여야 합니다.

$ hidutil property --set '{"UserKeyMapping":[
{
"HIDKeyboardModifierMappingSrc": 0x7000000E7,
"HIDKeyboardModifierMappingDst": 0x70000006D
}
]}'

영구적 설정

com.local.KeyRemapping.plist 로 파일 저장

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.local.KeyRemapping</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/hidutil</string>
        <string>property</string>
        <string>--set</string>
        <string>{"UserKeyMapping":[
            {
              "HIDKeyboardModifierMappingSrc": 0x7000000E7,
              "HIDKeyboardModifierMappingDst": 0x70000006D
            }
        ]}</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

![info] fish term 에서는 아래 명령어가 작동 안 할수 있음.

터미널에서 한방에 실행

파일생성

$ cat <<EOF >> com.local.KeyRemapping.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.local.KeyRemapping</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/hidutil</string>
        <string>property</string>
        <string>--set</string>
        <string>{"UserKeyMapping":[

            {
              "HIDKeyboardModifierMappingSrc": 0x7000000E7,
              "HIDKeyboardModifierMappingDst": 0x70000006D
            }

        ]}</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>
EOF

맥 실행시 자동설정

$ mv com.local.KeyRemapping.plist ~/Library/LaunchAgents

~/Library/LaunchAgents는 맥이 실행될 때, 실행되는 프로그램입니다.

반응형

리눅스 서버를 다루다보니, 터미널을 매일사용하고 있습니다. 저는 기본으로 fish, tmux. alacritty 을 이용해서 작업을 하고 있습니다. 제가 사용하는 것들의 주요 특징들은 가볍고 빠릅니다.
iterm2는 전혀 성에 차지 않습니다. wasp와 같은 터미널 프로그램은 쓸만합니다. 하지만, 기본기로 돌아가면 alacritty 사용을 권하고 싶습니다. (rust 로 작성되어 있다는 점도 무시할 수 없습니다.)

현재 사용중인 stack

오늘부터 도전!

자주가는 reddit.comr/unixpron에는 커스텀화 된 화면들을 공유하고 자신들의 설정을 공유하는 곳입니다. 리눅스 사용자들을 위한 곳입니다. 리눅스도 같이 사용하고 있는 저에게는 지루한 랩탑을 좋은 놀이깜으로 만들어주는 곳입니다. (리눅스에 대해서도 학습하면서...)
아래 적용하려고 하는 도구들도 이 곳에서는 많이 사용하는 것들입니다.

여기서 최신 도구들을 몇개 사용해 보려고 합니다. 선정이유는 다들 rust로 작성되어 있는 점입니다. rust를 사랑하는 개발자로서 이 세팅은 반드시(!) 좋을 것 같습니다.

아래 TOOLS 를 사용하려고 하고, 장점에 대해서 설명하려고 합니다.

  • nushell
  • startship
  • zellij

nushell

rust로 작성된 최신 데이터 지향 쉘입니다. 기본적인 구성만으로 자동완성 및 기타 유용한 기능을 사용하기 위해 여러 설정을 할 필요가 없습니다.

아직 사용하기에는 여러문제들이 보임.

설치

$ brew install nushell
.......
$ nu
✘  ~  nu
No environment config file found at /Users/forteleaf/Library/Application Support/nushell/env.nu
Would you like to create one with defaults (Y/n):

Config file created at: /Users/forteleaf/Library/Application Support/nushell/env.nu
No config file found at /Users/forteleaf/Library/Application Support/nushell/config.nu
Would you like to create one with defaults (Y/n):

Config file created at: /Users/forteleaf/Library/Application Support/nushell/config.nu
     __  ,
 .--()°'.' Welcome to Nushell,
'|, . ,'   based on the nu language,
 !_-(_\    where all data is structured!

Please join our Discord community at https://discord.gg/NtAbbGn
Our GitHub repository is at https://github.com/nushell/nushell
Our Documentation is located at http://nushell.sh
Tweet us at @nu_shell

Nushell has been around for:
3yr 4month 3wk 1day 23hr 37min 48sec 769ms 498µs

You can disable this banner using the config nu command
to modify the config.nu file and setting show_banner to false.

let-env config {
    show_banner: false
    ...
}

장점

  1. Linux, macOS, Window 에서 작동
  2. nu pipeline은 구조화 된 데이터를 사용.
    안전하게 선택, 필터링, 정렬을 사용
  3. 강력한 플러그인

단점

  1. command 학습이 필요함.
    shell이름을 확인하려고 했는데....

    `echo $SHELL`
    Error: nu::parser::variable_not_found (link)
    
    × Variable not found.
    ╭─[entry #12:1:1]
    1 │ echo $SHELL
    ·      ───┬──
    ·         ╰── variable not found
    ╰────

nushell는 데이터 표현을 테이블 저장합니다. 마치 DB의 쿼리를 이용해서 물러오는 것 같습니다. 기본 zsh, fish, bash 등에 익숙해 있다면 생소한`cui
화면 처럼 보이기도 합니다.

/Users/forteleaf/vagrant〉ls                                                                                                                             09/28/2022 11:43:33 PM
╭───┬──────────┬──────┬───────┬──────────────╮
│ # │   name   │ type │ size  │   modified   │
├───┼──────────┼──────┼───────┼──────────────┤
│ 0 │ kubeset  │ dir  │ 320 B │ 2 months ago │
│ 1 │ window10 │ dir  │ 128 B │ 2 months ago │
╰───┴──────────┴──────┴───────┴──────────────╯
  1. 미완성적인 부분
    기존에 것들과 차이가 나고 PATH등 설정을 새로 해야함

starship

  • 호환성 우선
  • RUST 를 이용한 최고의 퍼포먼스와 안정성
  • 세심한 CUSTOM

Starship은 간단한 yaml 파일에 매우 다양한 구성 옵션을 제공 합니다. 그러나 nushell과 마찬가지로 처음에는 구성이 필요하지 않습니다. 모든 기본값이 이미 설정되어 있습니다! 바로 사용할 수 있는 멋진 구성 사전 설정을 제공합니다.

Starship은 다른 여러 도구 및 기술과 자동으로 통합됩니다. 패키지 버전을 표시하고(예: Poetry 프로젝트에 있을 때) AWS 리전, kubernetes 컨텍스트 및 네임스페이스를 표시할 수 있습니다. 간단히 말해서 모든 것과 작동합니다. 여기에서 전체 통합 목록을 살펴보십시오.


현재는 pastel Powerline으로 설정해서 사용하고 있습니다.

rust 로 작성되어 있어서 빠르다고 생각했지만, 별 차이를 느낄 수 없었습니다.

zellij

tmux와 매우 유사한 기능을 가지고 있습니다. 이쁜 라인이 생겨서 화면을 구분할 수 있는 큰 장점이 있습니다. 그런데 이로 인해서 볼 수 있는 text가 조금은 줄어듭니다. 한줄 정도 차이지만, 신경이 쓰입니다.

설치

$ brew install # Zellij
or
# zsh
bash <(curl -L zellij.dev/launch)

# fish
bash (curl -L zellij.dev/launch | psub)

장점

  • 기존에 사용하던 tmux의 단축키가 호환
  • 이쁨
  • layout 저장 (tmuxinator를 사용하고 있어서 ....)
  • pane 이동 기능이 직관적이고 편리

단점

  • tmuxinator 를 사용하고 있는데 이와 같은게 안 보임
  • ctrl+p 로 과거 실행했던 메뉴를 찾는데, 단축키가 설정되어 있음(pane 설정용)
    별도의 세팅을 해야되는 아쉬움
  • synchronize-pane 기능이 없다. 2021년에 기능이 추가 됨

기존에 사용하던 tmux의 단축키의 익숙함 때문에 zellij 에 적응이 안됩니다. 그리고, 기본 repository 에서 tmux 를 실행할 수 있는데, 굳이 zellij 를 설치해서 사용할 필요가 있을까 싶습니다.

반응형

'개발 > 리눅스' 카테고리의 다른 글

arch ctrl <-> caps lock swap  (0) 2023.01.02
freebsd | minidlna 구축  (0) 2022.10.13
ansible - 자동화의 시작  (0) 2022.07.14
Gitlab-CE 업그레이드  (0) 2022.07.05
LINUX | Linus Torvalds 가 우분투, 데비안을 싫어하는 이유  (0) 2020.07.13

update : 2020.07.07

이번에 회사에서 지급 된 맥북 프로를 정리하면서 기존에 설치되어 있는 프로그램에 대해서 가록하고자 합니다. 무엇을 사용하고 있었는지 알고, 새로 맥북을 구매했을 때 바로 설치를 하기 위함입니다.

필수 설치 유틸

맥을 사용 있다면 반드시 설치해야되는 프로그램을 모았습니다. 시스템을 구축하는데 도움이 됩니다.

brew

macOS용 패키지관리자입니다. 맥에 설치 되는 대부분의 어플들을 brew를 통해서 간단히 설치 할 수 있습니다. 꼭 설치하세요.

Terminal에서 아래와 같이 입력하세요.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

이제 설치되는 모든 파일들은 /usr/local/Cellar/폴더에 저장이 됩니다. 간혹 이 사실을 잊고 일반적인 배포본과 동시에 설치할 수 있습니다. 이 부분을 조심하시기 바랍니다.

설치가능 한 앱 검색

# brew로 설치할 수 앱검색
$ brew search [앱이름]

설치방법

# brew를 통해서 앱 설치하기
$ brew install [앱이름]

업데이트

설치되어 있는 앱들 또한 아래의 명령어를 통해서 간단히 업데이트 할 수 있습니다. brew cask또한 비슷하게 업데이트 할 수 있습니다만 조금 사용법이 다릅니다.

$ brew update
$ brew upgrade

APP들 한방에 설치하기

app 도 이름만 알고 있으면 해당 사이트에 접속을 하지 않고 명령어 하나로 설치 할수 있습니다. 아래에 나와 있는 대부분 앱들은 brew cask라는 툴을 사용해서 한방에 설치할 수 있습니다.

# cask는 기존 brew 검색명령으로 검색할 수 있다. 하지만 아래 옵션을 통해서 검색을 할 수도 있다.
$ brew search [앱이름] --casks
$ brew cask install [앱이름]

AppCleaner

맥에 여러가지 app을 설치하고 난 뒤에 지울때 깔끔하게 삭제가 되지 않습니다. 이를 해결해 주는 앱이 Cleaner앱입니다. 무료/유료로 제공되는데 저는 이게 맘에 들어서 이것저것 사용하다가 잠시 이 것으로 정착 했습니다

설치

$ brew cask install appcleaner

CheatSheet

Command키를 누르고 있으면, 앱에 기본으로 설정되어 있는 단축키들을 보여줍니다. 단축키를 익히는데 상당히 많은 도움을 줍니다

$ brew cask install cheatsheet

Firefox

chrome이 너무 무거운 나머지 옮겨갔다. 개발에서도 깔금한 개발자화면을 제공해 줘서 chrome 보다 잘 사용하고 있다.

$ brew cask install firefox

Language Switcher

영문 상위에서 운영체제를 사용하고 있다면 한글로 앱을 실행하기 위해서 커맨드를 입력하는 번거로움을 방지해 준다.

Magnet(유료 2500₩)

Window에서 처럼 앱을 드레그 해서 이동할 때, 오른쪽 끝으로 이동하면 화면을 50:50 으로 앱 실행화면을 나눠준다.
돈이 아깝지 않습니다.

앱스토에서 구매하자

The Unarchiver

압축파일 해제시에 생기는 파일이름 깨지는 것을 방지해 준다. 한글운영체계에서는 필수적으로 사용하길 추천한다.

$ brew cask isntall the-unarchiver

Karabiner(*)

한/영 키를 window 에서와 같이 오른쪽 command키 부분으로 하고 싶을 때, 또는 개인이 키보드의 키 설정을 변경하고 싶을 때 사용하자.
기본 설정으로 caps lock을 한영으로 사용했는데, 본인은 ctrlcaps lock를 바꿔놓고 사용을 하고 있다.

다양한 키보드를 사용하고 있다면 반드시 하자.

$ brew cask karabiner-elements

data cloud

OneDrive

Google Drive

dropbox

최고의 Sync 기능을 자랑한다. 2019년 6월 기준으로 요금을 올리면서 동시사용할 수 있는 기기 목록수도 줄였다. 다른 서비스로 옮기는 것이 어떨가 고민하고 있다.

개발도구

Postman

REST API 문서를 테스트하기 필수앱. 게다가 무료로 사용해도 충분한 기능을 사용할 수 있다.

RESTFUL를 테스트 하기 위해서 필수로 사용하는 툴이다.

$ brew cask install postman

Alacritty

GPU 가속을 지원하는 터미널. 한글 자음모음이 깨지는 걸 제외하고서는 문제가 없다. 현재는 주력 터미널로 사용하고 있다. tmux + vim 의 조합으로 너무나 잘 사용하고 있다.

Visual Studio Code

말이 필요없는 코딩용 프로그램. MS에서 개발을 하였고, Window, Ubuntu, MacOS 거진 모든 OS에서 지원하고 있은 프로그램입니다.

Docker

말이 필요없는 가상화 프로그램입니다.

Redhat에서 제한하는 가상화 도구 podman 이라는 것도 있습니다. docker가 갖고 있는 단점 docker service가 죽으면 모든 컨테이너가 죽는 현상을 제거 했습니다. 컨테이너 마다 다른 pid가 부여된다고 생각하면 이해가 쉽습니다.

FileZilla

FTP 전송 필수앱.
과거에 CyberDuck(?)를 자주 사용했는데, window 와 macOS 에서 동시에 사용할 수 있고 자주 업그레이드되는 장점을 갖고 있습니다.
FTP 전송에서는 아직 다른 앱을 사용해 보지 않았습니다.

IntelliJ IDEA

JetBrains에서 판매하는 코딩 IDE. 유료로 제공되고 있지만, 한번 사용하면 다른 것들은 사용할 수 없다. 너무 많은 기능들과 최신 기술들을 빠르게 적용시켜주는 어플이다.

Sourcetree

Atlassian에서 제작한 git 소스 관리용 툴입니다. 애자일 개발 방식에 따른 소스 브런치 관리법이 적용하고자 하면 이를 사용해 보는 것이 좋습니다.

Smartgit

Sourcetree를 사용해서 사용하던 git 관리앱을 변경했습니다. 이유는 유료이기 때문입니다.
리눅스에서도 출시되어 있는 툴 Smartgit으로 변경했습니다. 이제 리눅스, 윈도우, 맥에서 같은 앱을 사용해서 코딩을 관리 할 수 있게 되었습니다.

그러나 현실은 콘솔

OracleDataModeler

현재 사용하고 있는 DB가 Oracle 이기 때문에 이를 Model들을 파악하기 위해서 설치한 앱.

생산성

OmniFocus -> Microsoft To-Do

최고의 일정관리앱 입니다. 많은 분들이 사용하고 맥과 아이폰에서 좋은 호환성으로 많은 사랑을 받고 있습니다. 히지만, 저는 아이폰을 사용하지 않습니다. 맥에서만 사용 할수 있어서 사용을 변경 했습니다.

Staiton

웹앱들을 모아놓고 실행관리 할 수 있는 앱. Linux, Window, Mac 멀티플랫폼을 제공하기 때문에 여러 OS를 사용하고 있다면 사용하기 용이하다.
한 앱에서 여러 웹앱들을 모아 놓을 수 있어서 화면을 깔끔하게 구성할 수 있습니다.

한번은 사용 해 볼 수 있는데, 웹앱을 지원하는 것들만 설치를 할 수 있다.

TogglDesktop

Time Tracker라고 해서 자신이 한 일을 일일히 시간대 별로 체크

Trello

칠판에 할 일을 작성하듯이 할 일과 스케쥴을 관리하는 앱. 개발 프로젝트를 기획, 트래킹을 하는데 필수적이다.

사용하는 회사를 만나야지 나만 써봤자.. 뭐하는지 모르겠다

Spark

메일을 관리앱. Android, iOS, macOS 을 지원하고, 메일을 사용하는데 이런 기능이 있어야 하나 싶은 기능들을 제공하고 있습니다.
기본메일함을 사용하는 것도 나쁘지 않은 선택이지만, 한번 사용해 보는 것도 나쁘지 않습니다.

Slack

개발자들간의 의사 소통을 위한 필수 앱이 되었다.

Pocket

브라우저에서 링크를 스크랩 하는 기능. google 계정으로 로그인이 가능.

Skitch (무료)

가벼운 사진 편집을 진행하기 좋다.
[PhotoScape X]가 나오기 전에 블로그에 수록 된 간단한 사진을 편집하기 좋았다. 단순한 그림에 표시하기 및 텍스트를 추가 하는데 좋다.

PhotoScape X (무료)

사진들을 일괄 편집할 수 있는 앱. Window에서도 제공하고 있다. 간편하게 사진들을 일괄편집 또는 이펙트를 적용하기 좋다.

OmniGraffle (유료)

간단한 그래프를 그리기 위해서 빠르게 작업할 수 있는 앱. 최근에 명함을 구성하는데 사용했는데, AI 처럼 다른 구조체와의 규칙성을 파악해서 알려주는 기능이 끝내준다.

OmniOutliner (유료)

아직 활용 능력이 미흡해서 잘 사용하고 있지는 못하다. 간단한 메모용도로 사용하고 있다. 자료가 쌓이면서 이를 저장해서 어디에 모아놓을지 전혀 생각을 못하고 있다.
확실한 용도를 생각 해 봐야 되겠다.

Notion (유료)

Imgur

evernote와 같은 메모기능을 주를 이루고 있다. 하지만, Notion이라는 앱은 에버노트를 넘어 더 많은 다양한 기능들을 제공하고 있다.

4$의 유로 결제를 해야지만 더 많은 기능들을 제한 없이 사용할 수 있다.

지금은 무료로 많은 기능을 사용할 수 있게 되었습니다. 예전에는 작성할 수 있는 페이지 수가 제한이 있었는데 이제는 무제한이 되었습니다.

$ brew cask install notion

Microsoft Teams (업무용)

Office 365를 구독해서 사용하면서 처음으로 첩하게 된 앱. 다른 사람들과 공동작업을 진행할 때 사용하기에 좋다. 무료로는 일정기능만 제공하기 때문에 부족한 점도 있지만, 깔끔한 영상통화와 파일을 공유하는 기능은 정말 깔끔하게 필요한 기능만을 제공하는 것 같다.
다른 3rd party 앱들도 연동해서 사용할 수 있기 때문에 확장성이 좋습니다.

Pages (무료)

최근에 성능이 좋은 맥을 사용하고 난 뒤에는 좋은 앱이라는 것을 알게 됨. 무료이면서 몇번의 클릭질로 윈도우에서 볼 수 없는 이쁜작업물이 나온다.

office365를 사용하고 있어서 잘은 안 쓰지만, mac에서 잘 작동하는 것을 역시 pages다.

MacJournal (무료)

매일 블로그나 글을 작성하기 위해서 사용하던 프로그램.
현재는 무료로 기능을 제공하고 있다. app store에 유료로 배포하고 있었지만, 무료버전을 제공하고 있다.

매일 글을 적는 때에 일기장으로 사용할 수 있고, 블로그에 포스팅하는 기능도 가지고 있다.
하지만, 지금은 잘 사용하고 있지 않다.

DEVONThink 3

꾸준히 업데이트가 되고 있는 맥을 사용하는 사람들이 극찬하는 앱.

여러가지 인터넷에 돌고 있는 내용들을 수집하는데 최고의 어플입니다. 많은 이용자들이 논문자료 정리용 앱으로 잘 사용합니다. 저는 블로그 글들을 모아놓은데 사용하고 있습니다.

단점 : 맥에서만 사용할 수 있다. 다양한 기기에서 호환이 안된다.

지금은 역시 잘 사용하고 있지 않다.

스탠다드 프로 서버
$ 99 $ 199 $499

Microsoft Office

회사에서 이를 사용하지 않고 일을 할 수 있을까요?

Adobe

영상이나 그래픽 쪽 일을 한다면 필수적인 앱

개인정보

LastPass

암호관리 프로그램. safari 와 firefox, chrome 의 암호 동기화를 위해서 사용하게 되었다. 생각보다 유연하게 작동되지 않아서, 사용에 주저하게 되어 현재는 설치는 되어 있는데, 한번 더 생각을 해 보고 암호를 저장한다.

현재는 Firefox 에서만 Firefox Lockwise 에 저장하는 걸로 한다.

취미/놀이

Movist (PRO) $7.99

맥에서 제공하는 최고의 동영상 재생기.
PRO 버전을 현재는 app store 정책 때문에 홈페이지에게 판매하고 있다.

반드시 구매하자

Steam

맥에서 게임을 즐기기 위해서는 필수아닌 필수 입니다.

Epic Games

요즈음 자주 무료로 풀고 있어서 라이브러리를 모으고 있습니다.

Battle.net

역사의 뒤안길로 가게 된 블리자드.. 까끔 과거를 회상하며 설치했다가도 이 영상으로 uninstall하게되는 자신을 발견한다.

기타 도구들

HapticKey

맥북 터치바에서 키를 누르면 진동을 발생시킨다.
vim을 자주 사용하는 입장에서 esc버튼을 누르면 이 것이 눌러졌는지 알수가 없다. 이를 진동을 통해서 알게 해 준다.

지금은 삭제 : 밧데리 많이 먹을 꺼 같아서...

iStat Menus

맥을 상단바에 현재맥의 이더넷, 메모리, 램, CPU 등 다양한 정보를 제공한다. 100MB 정도의 메모리로 상주해 있으며, 현재 상태를 간결히 빠르게 볼 수 있는 점이 좋다.

반응형

grep 을 통해서 해당 text가 포함 된 파일을 찾고, 이 파일들에서 일정 부분을 수정하는 코드를 작성하려고 한다.

LINUX에서는 되는 명령어가 MAC에서는 옵션의 차이로 안되는 상황이 있다.

$ grep 'jquery-3.3.1.min.js' -rl . | xargs sed -i '' -e '/jquery-3.3.1.min.js/jquery-3.4.1.min.js/g'

-r : recursive 하위폴더까지 검색

-l : list 찾은 파일들을 리스트.
pipe 구문을 사용하기 위해서 이 옵션을 추가 한다.

xargs는 유닉스 및 유닉스 계열 운영 체제의 명령어로 표준 입력을 통해 명령 줄을 만들고 실행하는 데 사용한다

-i : 출력하지 않고, 파일로 저장한다.

-e : EOF 또는 지정된 문자열이 나올때 까지 계속 xargs 를 통한 필터링을 수행.

파일 마커 문자열의 논리적 끝을 eof-str로 설정하십시오. 파일 마커 문자열의 논리적 끝이 입력 행으로 발생하면 나머지 입력은 무시됩니다. eof-str을 생략 ( '-e')하거나 공백 ( '-e'또는 '-E')하면 파일 마커 문자열의 논리적 끝이 없습니다. 이 옵션의‘-e’형식은 POSIX 호환‘-E’옵션 대신 사용되지 않으며 대신 사용해야합니다. GNU xargs 버전 4.2.9부터 xargs의 기본 동작은 파일 마커 문자열의 논리적 끝이 아닙니다. POSIX 표준 (IEEE Std 1003.1, 2004 Edition)이이를 허용합니다.
‘-d’또는‘-0’옵션이 유효한 경우 파일 마커 문자열의 논리적 끝은 특별히 처리되지 않습니다. 즉, 이러한 옵션 중 하나가 적용되면‘-E’를 사용하더라도 전체 입력 파일을 읽습니다.

반응형

실리콘 밸리의 개발자 대부분은 Linux, Window 보다 MacOS를 선호할까?

두 가지를 모두 사용했으며, Linux가 나를위한 더 나은 선택이라고 확실하게 말할 수 있습니다. 나는 OS선택에 있어서 다른 사람들에 의해서 강요되어 지고 있다고 생각합니다. OSX는 어떤면에서는 Linux보다 좋았지만, 그 혜택은 거의 사라졌습니다.

분명히 리눅스를 주 OS로 사용하는 것이 좋은 생각이라고 생각합니다.

실리콘에서는 개발자들이 마더보드에 16GB를 판매한 2,500달러의 맥북 레티나 프로와 인텔 아이리스 프로 그래픽스 + AMD 라데온 R9 M370X의 트로피를 받을 때까지 "만들 수 없다"는 믿음이 있다.

Mac 하드웨어가 (GPU)보다 더 뒤처지고 소프트웨어의 품질이 계속 떨어짐에 따라, 나는 MBP의 트로피 상태가 떨어지면서 리눅스가 인기를 얻을 것으로 기대한다.

성공의 열쇠는 리눅스에 맞춰져 있고 제조업체가 지원하는 컴퓨터를 사는 것이다. 이는 많은 사람들이 "그냥 일부 오래된 하드웨어"에 로딩할 때 겪는 하드웨어 호환성 문제를 없애는 것입니다.

저는 system76 노트북과 데스크톱을 사용하고 있으며 그들의 컴퓨터와 서비스에 매우 만족해 왔습니다. 노트북 중 하나인 Oryx Pro는 GSync, PCIe SSD, i7, 32GB RAM과 아름다운 IPS 디스플레이를 갖춘 GTX970m GPU를 가지고 있다. 또한 Kubuntu의 선호 소프트웨어에 대한소식지 목록을 유지하는 것입니다. 이외의 건설적인 의견을 존중합니다.
Linux를 개발 및 개인 컴퓨팅 전용으로 사용하는 이유는 다음과 같습니다.

뛰어난 GPU 및 CPU

내 가정용 PC와 노트북은 최상의 디스플레이와 GPU를 갖춘 최고급 기기들입니다. 나와 아이들은 2,000개의 게임 중 많은 게임을 스팀에서 하고, 나는 CUDA와 심오한 학습에도 관심이 있습니다. Mac에서는 이 것을 잘 할 수 없습니다. 강력한 GPU는 나에게 매우 중요하기 때문에 나는 32GB System76 i7 WildDogPro에 3440x1440 커브드 모니터에 GTX980Ti를 구매 했습니다.
아이리스 그래픽으로 데크 아웃한 MBP 레티나와 거의 비슷한 가격이였습니다.

서버와의 진정한 호환성

빌드 스크립트의 절반이 Linux Bash + GNU 도구에 있고, 절반이 Bash + BSD 도구를 사용하고 있습니다.
왜냐하면 개발자들이 MBP를 보유해야 한다고 주장하면서 "거의 Linux"라고 가정했기 때문에 반은 Bash + BSD 툴을 사용하고 있었습니다. 말해두지마,ᆫ 그것은 엄청난 착각이었습니다.
컴퓨터에서 코드를 작성하는 데 수 주일의 시간을 보내는데, "OSX가 다르다해도 상관 없다"고 말하는 사람들은 종종 "... OS X는 거의 리눅스에 가깝다"라고 말하면서 종종 모순됩니다. 그러나 그것은 중요한 문제가 아닙니다.

나를 예민하게 만들어 준다

최소한의 컨텍스트 전환으로, 나는 항상 거의 실물과 같은 툴 세트를 사용하고, 본능적으로 사물을 스크랍트를 작성하고, 서버 간에 원활하게 작읍합니다. 필자는 아직 스크립팅 기술로 저에게 깊은 인상을주는 맥 사용자를 아직 찾지 못했습니다.
나는 여러 클러스터에 있는 100대 이상의 리눅스 서버의 소프트웨어를 관리하곤 했는데, 그 작업에 리눅스에서 작업 하는 것 외에는 상사도 할 수 없습니다.

모든 것을 가능하게 한다

필자는 Mac을 사용하는 동료보다 Linux에 대한 문제점이 적다고 생각합니다.
/homebrew /fink /macPorts가 필요없고 sudo apt-get update & sudo apt-get upgrade를 사용합니다.
나는 몇몇 회원들이 "트로피"맥을 고집하는 팀을 관리했었습니다. 필자는 컴퓨터를 설치하기위한 스크립트와 절차를 작성했습니다. 맥은 꼬박 2 ~ 3 일의 시간이 필요했고, 리눅스에서는 약 1 시간 정도의 시간이 걸려 거의 완전 자동화되었습니다.

리눅스는 맥에서 못하는 일을 한다

요 전날 우리는 초고속 DPI 스크린 샷이 필요했습니다. 간단하게

$ xrandr -output DP-2.8 -s 3440x2880 -panning 3440x2880

그리고 나서 나는 크롬의 스케일 크기를 두 배로 늘리고 몇 분 안에 그것들을 얻기 위해 크스냅샷을 사용했다. Mac이나 Windows 기기를 가진 사람은 아무도 이것을 어떻게 해야 하는지 몰랐습니다.

"비즈니스 소프트웨어는 Linux에서 실행되지 않는다"라는 주장

은 대부분 설득력이 없다.
특히 MS Office가 곤경에 처한 SV에서는 더욱 그러하다. 필자는 Balsamiq 3, Slack, DropBox, Chrome, Hangoutouts, GoToMeeting, WebStorm, Skype, Gimp, Insync, Inkscape 등을 운영하고 있다.
아, 그리고 쉬는 시간에 스팀. 이 모든 것들은 매우 잘 운영되며, 나는 응용 프로그램이나 시스템 충돌은 거의 보지 못했다. 웹스톰(JetBrains IDE)은 Mac보다 Linux에서 더 잘 작동합니다. NodeJS, MongoDB, MySQL, SQLite 및 수십 개의 다른 개발자 도구와 동일합니다.

7 KDE/Plasma 인터페이스가 Windows와 OSX보다 우월하다고 생각한다.

모든 것을 사용해 봤습니다.
sysadmin과 스크립팅 기술이 제한된 수많은 개발자들을 상대하는 것은 답답합니다.
어떤 이들은 명령줄이 아닌 OSX GUI에서 생각하기 때문에 해결책을 생각하지 못합니다. 만약 내가 SV에서 회사를 차린다면, 리눅스 시스템을 우선으로 제공할 것입니다.

반응형

OmniFocus 에서 Webdav 를 이용해서 어디서든 동기화 해서 사용할 수 있는 시스템이 있다. 이렇게 한다면 아이폰이든 맥에서 자동으로 동기화가 되서 같은 DB 를 이용해서 사용할 수 있다.

Omnifocus 설정

동기화 설정에서 아래와 같이 설정하자

example.com:[https 포트]/[시놀로지 계정]

Imgur

지금 동기화 버튼을 누르면, 계정명암호를 입력하는 창이 나온다.
입력하면, webdav폴더에 파일이 생성되어 있는 것을 확인 할 수 있을 것이다

반응형

맥에서 다양한 키보드를 사용하다 보니 필요에 따라서 설정을 변경해야 할때가 많다.
기본적인 function키들은 설정이 가능한데, 추가 설정해야 할 경우에 karabiner를 사용하면 정말 편하다.

처음에는 단순히 한영 전환을 위해서만 사용했는데, 이 기능은 빙산으 일각에 불과하다.

기본적인 OS 에서 단축키 전환

Imgur
윈도우 키보드를 사용할 때 불편한 사항 중 하나가, 키 배열이 다르다는 점이다. 지 엉도 기능만으로 만족한다면 아래 응용프로그램을 사용 할 필요가 없다.

karabiner에서는 키보드별로 단축키를 설정할 수 있고, 모든 키보드에도 단축키를 전환 할 수 있다.

Karabiner를 설치하면 기본 맥에서 설정할 수 단축키는 작동하지 않는다.

Imgur
현재 왼쪽 OPTION, COMMAND, CAPSLOCK, CTRL키를 전환해서 사용하고 있다. 일반 키보드를 사용하면서도 맥의 키 타입을 사용할 수 있어서 좋다.

키보드자체에서 스위치(DLP SWITCH)로 키를 변경할 수 있는 키보드를 사용할 수도 있는데, 운영체제를 바꿔서 사용할때 번거롭다.
예 ) 레오폴드 660 시리즈, 해피해킹 등등

반응형

vscode를 잘 사용하고 있지만, 왠지 terminal 모드를 잘 사용하고 싶어서 다시 한번 vim에 도전을 해보려고 한다.
예전과 다르게 더 간단히 설치할 수 있게 되었다.

준비

python3 용 vim 설치

mac에 기본적으로 설치되어 있는 것은 python2 버전이다.
vim을 다시 설치 해 준다

$ brew install vim

python3 로 빌드 된 버전이 설치 된다.

Note: brew install vim --with-python3 명령어는 이제 지원하지 않는다.
Note2 : 터미널을 종료하고, 다시 실행시키자. vim이 brew 버전으로 변경된다.

VIM - Vi IMproved 8.1 (2018 May 18, compiled Apr 23 2019 20:00:52)
macOS version
Included patches: 1-1200
Compiled by Homebrew
Huge version without GUI.  Features included (+) or not (-):
+acl               +extra_search      +mouse_netterm     -tag_old_static
+arabic            -farsi             +mouse_sgr         -tag_any_white
+autocmd           +file_in_path      -mouse_sysmouse    -tcl
+autochdir         +find_in_path      +mouse_urxvt       +termguicolors
-autoservername    +float             +mouse_xterm       +terminal
-balloon_eval      +folding           +multi_byte        +terminfo
+balloon_eval_term -footer            +multi_lang        +termresponse
-browse            +fork()            -mzscheme          +textobjects
++builtin_terms    +gettext           +netbeans_intg     +textprop
+byte_offset       -hangul_input      +num64             +timers
+channel           +iconv             +packages          +title
+cindent           +insert_expand     +path_extra        -toolbar
-clientserver      +job               +perl              +user_commands
+clipboard         +jumplist          +persistent_undo   +vartabs
+cmdline_compl     +keymap            +postscript        +vertsplit
+cmdline_hist      +lambda            +printer           +virtualedit
+cmdline_info      +langmap           +profile           +visual
+comments          +libcall           -python            +visualextra
+conceal           +linebreak         +python3           +viminfo
+cryptv            +lispindent        +quickfix          +vreplace
+cscope            +listcmds          +reltime           +wildignore
+cursorbind        +localmap          +rightleft         +wildmenu
+cursorshape       +lua               +ruby              +windows
+dialog_con        +menu              +scrollbind        +writebackup
+diff              +mksession         +signs             -X11
+digraphs          +modify_fname      +smartindent       -xfontset
-dnd               +mouse             +startuptime       -xim
-ebcdic            -mouseshape        +statusline        -xpm
+emacs_tags        +mouse_dec         -sun_workshop      -xsmp
+eval              -mouse_gpm         +syntax            -xterm_clipboard
+ex_extra          -mouse_jsbterm     +tag_binary        -xterm_save
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/usr/local/share/vim"
Compilation: clang -c -I. -Iproto -DHAVE_CONFIG_H   -DMACOS_X -DMACOS_X_DARWIN  -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1       
Linking: clang   -L. -fstack-protector-strong -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib  -L/usr/local/lib -o vim        -lncurses -liconv -lintl -framework AppKit  -L/usr/local/opt/lua/lib -llua5.3 -mmacosx-version-min=10.14 -fstack-protector-strong -L/usr/local/lib  -L/usr/local/Cellar/perl/5.28.1/lib/perl5/5.28.1/darwin-thread-multi-2level/CORE -lperl -lm -lutil -lc  -L/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin -lpython3.7m -framework CoreFoundation  -lruby.2.6     

빌드 설치

$ brew install cmake

YouCompleteMe 설치

vim 플러그인 Vundle설치

$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim`

참조:https://github.com/VundleVim/Vundle.vim

YoutCompleteMe 설치

Vundle에 플러그인 설치

$ vi ~/.vimrc

아래와 같은 내용을 추가

Plugin 'Valloric/YouCompleteMe' "항목추가

:w 명령어를 통해 저장하고, :PluginInstall 명령어를 통해서 설치한다.

Note: 용량이 크기때문에 시간이 조금 더 걸릴 수 있다.
~/.vim/bundle/YouCompleteMe/폴더를 확인할 수 있다.

YCM 빌드

YouCompleteMe 폴더로 이동

$ cd ~/.vim/bundle/YouCompleteMe

자동완성 기능을 추가하기에 앞서서 어떤 언어를 지원하는지 확인 할수 있다.

$ python3 install.py --help
optional arguments:
  --clang-completer     Enable C-family semantic completion engine through
                        libclang.
  --clangd-completer    Enable C-family semantic completion engine through
                        clangd lsp server.(EXPERIMENTAL)
  --cs-completer        Enable C# semantic completion engine.
  --go-completer        Enable Go semantic completion engine.
  --rust-completer      Enable Rust semantic completion engine.
  --java-completer      Enable Java semantic completion engine.
  --ts-completer        Enable JavaScript and TypeScript semantic completion
                        engine.

여러가지 옵션들이 있지만, 위의 내용만을 참조해서 사용하자.
go와 javascript 언어를 사용하기에 아래와 같은 옵션을 사용했다

$ python3 install.py --go-completer --ts-completer
Searching Python 3.7 libraries...
Found Python library: /usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin/libpython3.7.dylib
Found Python headers folder: /usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/include/python3.7m
-- The C compiler identification is AppleClang 10.0.1.10010046
-- The CXX compiler identification is AppleClang 10.0.1.10010046
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PythonLibs: /usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin/libpython3.7.dylib (found suitable version "3.7.3", minimum required is "3.5")
-- NOT using libclang, no semantic completion for C/C++/ObjC will be available
-- NOT using clang-tidy for static analysis.
-- Configuring done
-- Generating done
-- Build files have been written to: /private/var/folders/76/tll39g2x4cz8fyxqk6zxh3_00000gn/T/ycm_build__txi1732
Scanning dependencies of target BoostParts
[  2%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/filesystem/src/codecvt_error_category.cpp.o
[  7%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/filesystem/src/path_traits.cpp.o
[  7%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/filesystem/src/path.cpp.o
[  9%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/filesystem/src/utf8_codecvt_facet.cpp.o
[ 14%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/filesystem/src/portability.cpp.o
[ 14%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/filesystem/src/operations.cpp.o
[ 19%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/filesystem/src/unique_path.cpp.o
[ 19%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/filesystem/src/windows_file_codecvt.cpp.o
[ 21%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/c_regex_traits.cpp.o
[ 26%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/fileiter.cpp.o
[ 28%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/cpp_regex_traits.cpp.o
[ 28%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/cregex.cpp.o
[ 30%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/icu.cpp.o
[ 33%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/instances.cpp.o
[ 35%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/posix_api.cpp.o
[ 38%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/regex.cpp.o
[ 40%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/regex_debug.cpp.o
[ 42%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/regex_raw_buffer.cpp.o
[ 45%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/regex_traits_defaults.cpp.o
[ 47%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/static_mutex.cpp.o
[ 50%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/usinstances.cpp.o
[ 52%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/w32_regex_traits.cpp.o
[ 54%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/wc_regex_traits.cpp.o
[ 57%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/wide_posix_api.cpp.o
[ 59%] Building CXX object BoostParts/CMakeFiles/BoostParts.dir/libs/regex/src/winstances.cpp.o
[ 61%] Linking CXX static library libBoostParts.a
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libBoostParts.a(windows_file_codecvt.cpp.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libBoostParts.a(icu.cpp.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libBoostParts.a(instances.cpp.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libBoostParts.a(regex_debug.cpp.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libBoostParts.a(usinstances.cpp.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libBoostParts.a(w32_regex_traits.cpp.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libBoostParts.a(winstances.cpp.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libBoostParts.a(windows_file_codecvt.cpp.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libBoostParts.a(icu.cpp.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libBoostParts.a(instances.cpp.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libBoostParts.a(regex_debug.cpp.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libBoostParts.a(usinstances.cpp.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libBoostParts.a(w32_regex_traits.cpp.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libBoostParts.a(winstances.cpp.o) has no symbols
[ 61%] Built target BoostParts
Scanning dependencies of target ycm_core
[ 64%] Building CXX object ycm/CMakeFiles/ycm_core.dir/Candidate.cpp.o
[ 66%] Building CXX object ycm/CMakeFiles/ycm_core.dir/CharacterRepository.cpp.o
[ 69%] Building CXX object ycm/CMakeFiles/ycm_core.dir/Character.cpp.o
[ 71%] Building CXX object ycm/CMakeFiles/ycm_core.dir/CandidateRepository.cpp.o
[ 73%] Building CXX object ycm/CMakeFiles/ycm_core.dir/CodePointRepository.cpp.o
[ 78%] Building CXX object ycm/CMakeFiles/ycm_core.dir/IdentifierDatabase.cpp.o
[ 78%] Building CXX object ycm/CMakeFiles/ycm_core.dir/CodePoint.cpp.o
[ 80%] Building CXX object ycm/CMakeFiles/ycm_core.dir/IdentifierCompleter.cpp.o
[ 83%] Building CXX object ycm/CMakeFiles/ycm_core.dir/IdentifierUtils.cpp.o
[ 88%] Building CXX object ycm/CMakeFiles/ycm_core.dir/PythonSupport.cpp.o
[ 88%] Building CXX object ycm/CMakeFiles/ycm_core.dir/Result.cpp.o
[ 90%] Building CXX object ycm/CMakeFiles/ycm_core.dir/Utils.cpp.o
[ 92%] Building CXX object ycm/CMakeFiles/ycm_core.dir/Word.cpp.o
[ 95%] Building CXX object ycm/CMakeFiles/ycm_core.dir/versioning.cpp.o
[ 97%] Building CXX object ycm/CMakeFiles/ycm_core.dir/ycm_core.cpp.o
[100%] Linking CXX shared library /Users/forteleaf/.vim/bundle/YouCompleteMe/third_party/ycmd/ycm_core.so
[100%] Built target ycm_core
-- The C compiler identification is AppleClang 10.0.1.10010046
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found PythonLibs: /usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin/libpython3.7.dylib (found version "3.7.3")
-- Configuring done
-- Generating done
-- Build files have been written to: /private/var/folders/76/tll39g2x4cz8fyxqk6zxh3_00000gn/T/regex_build_5gvorctk
Scanning dependencies of target _regex
[ 66%] Building C object CMakeFiles/_regex.dir/regex_3/_regex_unicode.c.o
[ 66%] Building C object CMakeFiles/_regex.dir/regex_3/_regex.c.o
[100%] Linking C shared library /Users/forteleaf/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/cregex/regex_3/_regex.so
[100%] Built target _regex
/Users/forteleaf/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/tsserver/bin/tsc -> /Users/forteleaf/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/tsserver/lib/node_modules/typescript/bin/tsc
/Users/forteleaf/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/tsserver/bin/tsserver -> /Users/forteleaf/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/tsserver/lib/node_modules/typescript/bin/tsserver
+ typescript@3.3.3333
updated 1 package in 0.641s
반응형
여러 블로그들을 들어가보면, 사진들에 이쁘게 사진의 사이트들을 알리는 마크 또는 사이트 주소들을 사진에 땅땅하고 찍어 놓는 경우가 있습니다.
다른 곳에 사진을 퍼 가더라도 라이센스를 유지하기 위해서 이렇게 만드는 것인데요. 저도 한번 만들어 보았습니다.
개인적인 사이트들을 운영한지는 꽤 되었지만, 한번도 자신의 마크를 가져본 적이 없었는데요. 한번 제대로 블로깅을 해보자 마음을 먹어서 이렇게 만들게 되었습니다.

저는 macupdate.com 에서 watermark 프로그램을 검색하다가 최신날짜로 업데이트가 되어 있는 어플을 사용했습니다.
자주 업데이트 해주는 어플이 사후 관리를 잘 해주는 좋은 어플이라고 생각합니다.

가격은 30$ 입니다.



제공되는 기능들

  • 워터마크 찍기
  • 사이즈 조절하기
  • 사진 필터
  • 등등등 ....

이 어플의 장점은 resize 와 watermark 를 동시에 실행할 수 있다는 점이다.
설정을 한번 해주면, 그에 맞춰서 사이즈를 줄여주고, 다시 워터마크를 찍어준다.

어떤 순서로 진행되는지는 모르겠지만, 아마도 워터마크 해상도를 보아하니, 사이즈를 줄이고 난 다음에 워터마크를 찍는 듯 합니다.



반응형

+ Recent posts