맥북 에어 M1 사용하고 있습니다. 스토리지가 작아서 저장 공간이 신경이 쓰이는데, Docker를 사용해야 되서, 점점 더 관심을 갖게 되는 것이 여유 공간입니다.

제가 추천하는 것은 Disk Inventory X 입니다. 옛날 윈도우에서 쓰던 디스크 조각 모음과는 다릅니다.

Disk Inventory X 분석 결과

http://www.derlien.com/ 에서 다운로드 받아서 사용할 수 있습니다.

생각보다 Caches 파일 용량이 많이 들고, 네트워크로 다운로드 파일 받는 것들은 설거지 느낌으로 관리할 필요가 있다고 생각이 드는 지금입니다.

뭐, 귀찮다면 저장용량이 큰 것을 구입하거나, 그냥 맥을 주기적으로 초기화하는 것도 괜찮은 방법입니다. 중요한 자료는 클라우드가 있으니까요.

 

맥의 에너지 관리가 10.9(매버릭)에서 더 자세하게 볼 수 있습니다.

시계옆에 있는 배터리 표시를 클릭하면 다음과 같이 나옵니다.



VMWare에서는 Windows가 돌고 있습니다. ^^; 그럴 수 있겠죠.


스포트라이트에서 "활성"으로 검색하면 활성 상태 보기 애플리케이션이 나옵니다. 실행해서 에너지 탭을 누르면 어떤 앱이 배터리 방전의 주범인지 알 수 있습니다. 배터리 사용을 오래하려면 참고해야겠지요.


지난 8시간의 기록도 볼 수 있습니다.



 

한참을 삽질했습니다. 구글링을 해보니 mac의 jdk와 호환이 되지 않아서 발생하는 문제라고 합니다.

http://stackoverflow.com/questions/17822795/google-app-engine-javax-servlet-unavailableexception-initialization-failed#comment27168122_17822795


역시나 윈도우 가상머신에 GAE 개발환경 갖추고 실행하니 같은 소스가 잘 동작합니다.



다음은 앱엔진 로그에 나타나는 메시지입니다.

  1. 2013-10-15 16:22:29.386 / 500 5066ms 0kb Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/536.30.1 (KHTML, like Gecko) Version/6.0.5 Safari/536.30.1
    210.98.50.4 - - [15/Oct/2013:16:22:29 -0700] "GET / HTTP/1.1" 500 0 - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/536.30.1 (KHTML, like Gecko) Version/6.0.5 Safari/536.30.1" "1.okgawi.appspot.com" ms=5067 cpu_ms=2567 loading_request=1 app_engine_release=1.8.6 instance=00c61b117cc605edbcad33f6d430edbd601896
  2. W2013-10-15 16:22:29.299
    EXCEPTION 
    java.lang.IllegalArgumentException
    	at com.google.appengine.runtime.Request.process-3c18ce8f0ef50d07(Request.java)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:360)
    	at org.mortbay.util.Loader.loadClass(Loader.java:91)
    	at org.mortbay.util.Loader.loadClass(Loader.java:71)
    	at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73)
    	at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242)
    	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)
    	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
    	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
    	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
    	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
    	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    	at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:435)
    	at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:442)
    	at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:186)
    	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:306)
    	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:298)
    	at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:439)
    	at java.lang.Thread.run(Thread.java:724)
    
  3. E2013-10-15 16:22:29.376
    javax.servlet.ServletContext log: unavailable
    javax.servlet.UnavailableException
    	at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79)
    	at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242)
    	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)
    	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
    	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
    	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
    	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
    	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    	at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:219)
    	at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:194)
    	at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:134)
    	at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:446)
    	at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:435)
    	at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:442)
    	at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:186)
    	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:306)
    	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:298)
    	at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:439)
    	at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
    	at java.lang.Thread.run(Thread.java:724)
    
  4. W2013-10-15 16:22:29.380
    Failed startup of context com.google.apphosting.utils.jetty.RuntimeAppEngineWebAppContext@1d9525e{/,/base/data/home/apps/s~okgawi/1.370945407503011368}
    java.lang.NullPointerException
    	at java.lang.Class.isAssignableFrom(Native Method)
    	at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
    	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)
    	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
    	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
    	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
    	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
    	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    	at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:219)
    	at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:194)
    	at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:134)
    	at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:446)
    	at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:435)
    	at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:442)
    	at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:186)
    	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:306)
    	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:298)
    	at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:439)
    	at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
    	at java.lang.Thread.run(Thread.java:724)



쉬운 게 없군요.


freemind의 파일확장자인 mm은 xcode와 연결됩니다. 이것을 freemind로 연결시키려면 *.mm 확장자에 대한 기본 실행 프로그램 설정이 필요합니다.

정보보기에서 "다음으로 열기"를 선택하고 실행할 Freemind를 선택합니다. 그리고 "모두 변경"을 클릭하면 이후로는 mm 파일은 Freemind로 열리게 됩니다.




관련: http://www.appilogue.kr/2843780

 

맥OS

  • 전원
    • 왼쪽 뒤편 하단 버튼
      • iMac
    • 우측 상단 전원 버튼
      • Macbook *
  • 멀티부팅
    • 전원켜고 alt키 누르고 선택
    • bootcamp
  • 한영전환
    • command+space
    • command
      • spacebar 왼쪽
    • 누르고 있으면 세벌식 선택 가능
    • 한자 alt + enter
  • 시작버튼 없음
    • 검색
      • 스포트라이트
        • 우측상단 돋보기 아이콘
      • Safari 타이핑
        • 실행
    • Spotlight
      • 시스템 타이핑
        • Dock
        • 트랙패드
      • 시스템 환경설정
        • Network
        • WiFi
        • 인터넷 설정
  • 메뉴바
    • 전체 화면 최상단
    • 애플리케이션 선택할 때마다 상단이 바뀜
  • 트랙패드
    • 사파리에서
    • 스크롤
      • 두손가락 동시 터치해서 밀면
    • 백/포워드
      • 좌우로 밀면
  • 맥의 사양
    • 왼쪽상단 사과 아이콘
    • 이 매킨토시에 관하여
  • Finder
    • 탐색기 역할
    • 키스아이콘
      • Dock의 왼쪽끝
  • 터미널
    • java -version
    • cd
      • 사용자 홈 경로 이동
      • cd -
        • 이전 경로로 이동
    • cd cbapp
      • cbapp 으로 경로 이동
    • pwd
      • 현재 경로 출력
    • mkdir
      • 폴더 만들기
      • mkdir cbapp
    • unzip
    • history
  • 복사
    • command + C
    • 윈도우의 control이 맥에서는 command
  • 붙여넣기
    • command + V
  • 화면캡처
    • command+shift+3
      • 전체
    • command+shift+4
      • 부분
  • 애플리케이션 전환
    • command+tab
    • command+`
      • 뒤로

윈도우와 비교

  • 창 종료
    • @F4
    • ⌘q
  • 탭 생성
    • ⌘t
  • 탭 종료
    • ^q
    • ⌘w
  • 복사/붙이기
    • ^c/^v
    • ⌘c/⌘v
  • 한영전환
    • 한영키
    • ⌘space
  • 프로그램전환
    • @tab
    • ⌘tab  
음, iCloud 처음 써 봅니다.

 
from http://www.insoya.com/bbs/zboard.php?id=simple_info&no=5242 
윈도우를 기준으로 되어 있는데 맥용은 약간의 삽질이 필요합니다.
해당 파일은 Windows XP Professional.vmx 인데, Finder에서는 접근할 수 없기 때문에 터미널을 열어서 console에서 접근해야 합니다.

제 맥에서의 경로입니다.
/Users/kenu/Documents/Virtual Machines.localized/Windows XP Professional.vmwarevm>
편집기로 파일을 엽니다.
vi Windows\ XP\ Professional.vmx

제일 하단에 다음 설정을 추가합니다.

monitor_control.restrict_backdoor = "TRUE"

disable_acceleration = "TRUE"

monitor_control.vt32 = " TRUE"

monitor_control.enable_svm = "TRUE"


지금 설치 중인데 잘 되면 좋겠습니다.

Mac에서는 Smultron (http://sourceforge.net/projects/smultron/)이라는 편집기를 사용하고 있습니다.

한글도 잘 인식하는 편이고 추천할 만합니다. 컬럼편집이 지원되지 않지만, 바꾸기를 통해서 대신 할 수 있겠죠.

command+shift+F 를 누르면 정규표현식을 써서 변경도 가능합니다. 패턴을 입력하고 Find 버튼을 눌러서 확인한 뒤에 이상이 없다면 Replace 버튼을 클릭하면 됩니다.


맥용 ultraedit도 나왔습니다만 smultron도 따로 비용이 들지 않습니다. 유료($4.99)로 전환중이네요. 맥앱스토어에도 있습니다만 아직 소스포지에서 무료버전을 다운로드 받을 수 있습니다.



개장 첫날 등록되어 있는 앱은 1,000개가 넘는군요. 가격대까지 함께 공개되었습니다.
한국 개발자들이 감히 엄두를 내지 못하는 게임 카테고리가 단연 1등입니다.

아이폰용앱은 $1이 대세였던 것에 반해서 $4~5, $10~50 가격대의 앱들이 상당히 있습니다. Free는 시간이 더 지나야 많이 늘어날 것 같습니다.

또 다른 플랫폼 전쟁의 서막이 올려졌습니다.
개발자에게 해가 뜰까요.

소프트웨어 업데이트를 통해서 그동안 Dashboard 자리의 아이콘이 App Store로 바뀌었네요.


아이튠스에서 보던 UI와 크게 다르지 않습니다.

Top Charts의 1위 앵그리 버드 대단합니다. 데탑용은 $4.99네요.

카테고리별 페이지입니다.

구매한 목록도 볼 수 있습니다. 물론 저는 Free만 받아놓은 상태입니다.

바탕화면 Dock에 자연스럽게 추가되는군요.

디지털 콘텐츠 유통의 기술, 애플이 장난이 아닌듯 합니다.

+ Recent posts