LANG=C

Windows用の実行ファイルをMacでも動かすことができるWineというアプリケーション。これを使っている時に、文字コード?フォント?のエラーに悩まされた。LANG=Cで誤摩化して動かしていたが
SVNにコミットする際にいちいち.bash_profileを変更したり、make allの前にLANG=Cを付けたりするのが煩わしくなってきた。

友人のMacBookAirで、同様の手順で環境を整えた際には、この現象は起きなかったので、未だに原因不明なままよく分かっていない。
アプリケーション形式のWineではなく、macportでビルドし直しているので、単純に比較は出来ない?のかもしれない。

.bash_profileの中に、export LANG=Cと設定せずにコンパイルしようとすると下記のようなエラーが出る。

trunk ユーザー名$ make all
Compiling /Users/ユーザー名/nxtOSEK/ecrobot/../toppers_osek/kernel/alarm.c to alarm.o
Compiling /Users/ユーザー名/nxtOSEK/ecrobot/../toppers_osek/kernel/event.c to event.o
Compiling /Users/ユーザー名/nxtOSEK/ecrobot/../toppers_osek/kernel/interrupt.c to interrupt.o
Compiling /Users/ユーザー名/nxtOSEK/ecrobot/../toppers_osek/kernel/osctl.c to osctl.o
Compiling /Users/ユーザー名/nxtOSEK/ecrobot/../toppers_osek/kernel/resource.c to resource.o
Compiling /Users/ユーザー名/nxtOSEK/ecrobot/../toppers_osek/kernel/task.c to task.o
Compiling /Users/ユーザー名/nxtOSEK/ecrobot/../toppers_osek/kernel/task_manage.c to task_manage.o
Compiling /Users/ユーザー名/nxtOSEK/ecrobot/../toppers_osek/config/at91sam7s-gnu/cpu_config.c to cpu_config.o
Compiling /Users/ユーザー名/nxtOSEK/ecrobot/../toppers_osek/config/at91sam7s-gnu/lego_nxt/sys_config.c to sys_config.o
Generating OSEK kernel config files from LineTrace.oil
err:wineconsole:WINECON_Fatal Couldn't find a decent font, aborting

Compiling kernel_cfg.c to kernel_cfg.o
arm-none-eabi-gcc: error: kernel_cfg.c: No such file or directory
arm-none-eabi-gcc: fatal error: no input files
compilation terminated.
make: *** [build/./kernel_cfg.o] Error 1

次に、

LANG=C make all

を実行すると、コンパイルが通る。

うーん… 言ってる事は何となく分かるものの… 未解決。

GoProで撮った動画をiMovieで編集する

GoPro Hero3+ Black Editionをゴールデンウィーク前に購入して、立山黒部アルペンルートへのドライブ途中や、金沢旅行の途中に撮ってきました。

車のルーフに付けたり、ドアに付けてタイヤの動きを見たり、無難にルームミラーの隣に付けてドライブレコーダーとして使ってみたり、

諸々の動画達を、iMovieで編集しようとすると、”iMovieに最適化された動画はありません。”
のようなことを言われるので、何時ものようにググります。

「お前は、ぐぐって色んな情報に右往左往して、失敗するタイプだよな。」と今日言われた先輩の言葉が脳裏を過りますが、仕事じゃないのでよし。

「カメラで使われるH.264ファイルフォーマットは編集用に作られてはいないため、ファイルをGoPro/CineFormファイルフォーマットに変換する。」

GoPro ソースビデオファイルを編集用に変換する方法(Apple/Mac)

手順に従って進めます。

1. GoPro Studio をダウンロードします。インストールします。
GoPro 公式ウエブサイト。世界一多才なカメラ

2. GoProSTUDIOを起動し、左上のIMPORT NEW FILESをクリック
f:id:The_macmak:20140530000838p:plain

3.FILENAME: と、SAVE TOを変更して、ADD CLIP TO CONVERSION LISTボタンで追加。

4. CONVERTで、変換が始まります。終了したら完了。


かなり雑ですが、こんな感じ。
INとOUTボタンで、動画の一部を切り取って、ADD CLIP TO CONVERSION もでき
ADVANCED SETTINGSで、フレームレート、画質も設定出来ます。

⌘+Shift+4 画面の一部をスクリーンショット
⌘+Shift+3 画面の全体をスクリーンショット

Android開発環境を整える時に躓いたことのまとめ

定番のeclipse+AndroidSDKで、環境を整えようとしたところ、Helloworld実行の際にエラーが続いたのでメモ。

編集中



Raspberry Pi をsshで,Macから操作する

Raspberry Pi のSDカードにRaspbianをフラッシュ済み.~
sudo dd if=2014-01-07-wheezy-raspbian.img of =/dev/disk1 bs=1m

Windows環境で,Win32DiskImagerを使い書き込みを行うと,
RaspberryPiのUSB接続キーボードの認識を上手くしてくれず,起動自体もそこで終了してしまう… 未解決

注意1

「一度,RaspberryPiに差し込み起動したSDカードは,パーティションに区切られ,WindowsMacでSDカードを読もうとしても,58MBのSDカードとしか読み込めなくなる.」~

  • フォーマットするためには,SDFormatterというソフトが必要.~
  • フォーマット時には,論理サイズ調整をONにしてフォーマット.~
  • Windowsのディスクの管理では,このパーティションは見られない.~

Raspberry PiをMacからSSH通信で操作 [#o0fbff3b]

  • RaspberryPiと,Mac(HostPC)をLANケーブルで接続.
  • RaspberryPiを起動して,
 pi@raspberrypi ~$ sudo raspi-config

8 Advanced Options >> SSH の設定内容をenableにする.~
サーバー側の設定はこれで終了.

 pi@raspberrypi ~$ ifconfig
IPアドレスを固定する
 cd /etc/network
 sudo vi interfaces

ここに

 iface eth0 inet static
 address 192.168.1.100
 netmask 255.255.255.0

と設定.~
ifconfigで,設定されていることを確認.~

  • Mac側から,

注意2の最後にある,ネットワークの設定を行ったあと
ssh pi@
で接続.~

注意2 port:22 Connection refused

参考


>Macのターミナルを開く~
>「ssh-keygen -R 172.16.65.###」とRaspberry PiのIPに対するKeyを作成する~
>「ssh -X pi@172.16.65.###」と最初のsshをかける~
>「yes」としてパスワードを入れるとssh出来た(^_^)~

ssh-keygen -R
を行うと,
/Users/***/.ssh/known_hosts: No such file or directory
と出て出来ない.~
known_hostsは,過去にssh通信を行った相手のIPアドレスやらを保存しておくファイル.過去に一度も通信を行ったことが無いから,無いのは当たり前?~

known_hostsを生成し,再実行すると
Original contents retained as ...../known_hosts.old

pingが送れるのかを確認すると,互いに遅れていない.
→そもそも繋がっていない~
~
Macのネットワークの環境設定で,RaspberryPiと被らない適当なIPアドレスサブネットマスクを設定.~
RaspberryPiから,pingを送ってみると,返ってきた!~
Macから,RaspberryPiへも当然おk.~

http://ameblo.jp/dumbobambino/entry-11443128789.html


''ディスプレイ,キーボード,マウス要らずな環境になりました.''~

[MacOSX]nxtOSEKの環境設定 Part2

ビルドが終わったファイルをnxt本体に転送

tool_gcc_makの編集
nxtOSEK/ecrobot/tool_gcc_mak

内のGCCと、NEXTTOOLのルートを訂正します。
nexttoolをダウンロードしてきて、ルート先を変更。

転送完了したものの、nxtで実行するとバグった画面になり、終了もできない。
バッテリーを外して、再度やり直し。


MacPortでインストールしたgcc,binutils,newlibがインストールされているか確認するも、gdbのインストールが上手くされていない位しか分からず。
MacPortでインストールしようとするも、エラーが出るので、コンパイル済みのパッケージが入ったyagartoを入れる事にした。

ecrobotのリビルド

tool_gcc_makでルートを設定してあげると、途中から以下のようなエラーが連続で出てきた。

yagarto/yagarto-4.6.2/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/bin/ld: error: Source object ../../ecrobot/../ecrobot/libecrobot.a(ecrobot_device_hook.o) has EABI version 0, but target helloworld_OSEK_rom.elf has EABI version 5

gccのEABIのバージョンと、nxtOSEK内に含まれているEABIのバージョンが違うので、公式サイトにあるようにリビルドする。
nxtOSEK: Installation Mac

nxtOSEK/ecrobot/c
nxtOSEK/ecrobot/c++
nxtOSEK/ecrobot/bios
nxtOSEK/ecrobot/nxtcommfantom
nxtOSEK/ecrobot/nxtway_gs_balancer
のそれぞれで、
make all
make release

無事エラー解消。

gcc-4.7.2でビルドすると砂嵐画面になる

gcc-4.7.2でビルドしたものを転送すると、砂嵐画面になります。
(samples_c/helloworld)

gcc-4.6.2に下げてみた所、何事も無かったかのように動きました。

.bash_profileの設定

書き忘れてましたが

export LANG=C

を追加しないと、ビルドが通りません。

2014/05/13
友人のMBAで同環境をインストールしたところ,export LANG=C無しでビルドできました.
違いは,WineをMacPortからビルドして入れているか,アプリケーションの形になっているものを入れているかの違い.
あとは,.bash_profileにインストール前に全てのパスを通してから始めた点?

nxtOSEKの環境設定

ETロボコンで、今年はC++でコードを書く予定。
Cファイルだと、ビルド出来るけれど、C++だとビルド出来ない状況なので、設定を見直して2014年版の設定を施していく。

(去年は結局、Macは使わずにWindowsPCとcygwin環境で作っていたので、今年こそはかっこいいMacBookProでやりたい訳ですよ。)

去年は、Cファイルのビルドが出来てnxt本体にも転送出来て、動作していたが、文字化けが起きていたのでこのことを解決しなければならないことが一点。

Generating OSEK kernel config files from ./helloworld.oil
Wine cannot find the FreeType font library.  To enable Wine to
use TrueType fonts please install a version of FreeType greater than
or equal to 2.0.5.
http://www.freetype.org

改めてmake allしてみると、フォントが見付けられ無いよと言われたので、freetypeフォントをインストール。

freetypeフォントのインストール

あったら良いなと、探してみると…

$ sudo port search freetype
bitstream-vera @1.10_2 (graphics)
    Bitstream Vera Fonts for use with Freetype/Fontconfig

freetype @2.5.3_1 (print, graphics)
    A software font engine

ftgl @2.1.3-rc5 (graphics)
    Freetype / OpenGL bridge

あった!

sudo port install freetype

インストール後、下記のバイナリが生成されたので、これにシンボリックリンクをはる

cd /usr/bin
sudo ln /opt/local/bin/freetype-config .

これで、正しくシンボリックリンクが張れた訳ですが、この前にbinを入れずにシンボリックリンクが張れた物だと思い作業を進め。やはり、駄目だとサードパーティー製のWineアプリケーションを削除してしまいました。

Wineを入れ直します… 今度は、Mac Portを使ってインストール。

--->  Extracting lcms2
Error: org.macports.extract for port lcms2 returned: command execution failed
Please see the log file for port lcms2 for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_lcms2/lcms2/main.log
Error: Unable to upgrade port: 1
Error: Unable to execute port: upgrade lcms2 failed

インストール失敗… 言われた通り、ログを見に行くと

:info:extract sh: /usr/bin/gnutar: No such file or directory
:info:extract gzip: error writing to output: Broken pipe
:info:extract gzip: /opt/local/var/macports/distfiles/lcms2/lcms2-2.6.tar.gz: uncompress failed
:info:extract Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_lcms2/lcms2/work" && /u\
sr/bin/gzip -dc '/opt/local/var/macports/distfiles/lcms2/lcms2-2.6.tar.gz' | /usr/bin/gnutar --no-same-owner -xf -
:info:extract Exit code: 127
:error:extract org.macports.extract for port lcms2 returned: command execution failed
:debug:extract Error code: NONE
:debug:extract Backtrace: command execution failed
    while executing
"$procedure $targetname"

gnutarバイナリが無い事が原因のよう。
この後も、対処するも直接関係がないRファイルでエラーを吐いたりと面倒になったので
.app形式のwineをインストール。

→無事インストール完了。

err:wineconsole:WCUSER_SetFont wrong font
err:wineconsole:WINECON_Fatal Couldn't find a decent font, aborting

ビルドすると今度は違うエラー. .bash_profileに、

export LANG=C

を追加してビルド成功!

Part2へ

emacsの設定ファイル[init.el]

emacsを使っているので、設定ファイルを失うとemacs-lispをスラスラと読めない私には
環境を戻すのが面倒

現在の、スパゲティ設定ファイルを保存。あぁ、恥ずかしい。

;;; ~/.emacs.d/init.el
;;;---------------------------------
;;; 基本設定
;;;---------------------------------
;; 自分でダウンロードした *.el, *.elc のディレクトリ
(setq my-site-lisp (expand-file-name "~/.emacs.d/site-lisp"))
;; my-site-lisp を load-path に追加
(add-to-list 'load-path my-site-lisp)
;; 起動メッセージを表示しない
(setq inhibit-startup-message t)
;; キャレットが '(' や ')' の直後にある場合に対応する括弧を強調
(show-paren-mode t)
;;スペースを表示
;;(global-whitespace-mode 1)
;; スペースの定義は全角スペースとする。
;;(setq whitespace-space-regexp "\x3000+")

;; 改行の色を変更
;;(set-face-foreground 'whitespace-newline "gray40")

;; 強調したくない要素を削除
;(dolist (d '(face lines space-before-tab
 ;                 indentation empty space-after-tab tab-mark))
  ;(setq whitespace-style (delq d whitespace-style)))



;; Emacs サーバを起動する
;; R だと edit や fix を実行する時に必要
(when (require 'server nil t)
  (if (not (server-running-p))
    (server-start)))

;; 日本語を utf-8 に統一
(set-language-environment "Japanese")
(setq default-buffer-file-coding-system 'utf-8)

(set-buffer-file-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-clipboard-coding-system 'utf-8)
(setq locale-coding-system 'utf-8)
(prefer-coding-system 'utf-8)

;; comint-mode で重複するコマンドは履歴に保存しない
(add-hook 'comint-mode-hook
          (lambda ()
	    (setq comint-input-ignoredups t)))
		
		
		;;;---------------------------------
;;; 必須の便利機能
;;;---------------------------------
;; *.el のインストール用
(when (require 'auto-install nil t)
  (setq auto-install-directory (expand-file-name my-site-lisp))
  (if (executable-find auto-install-wget-command)
      (auto-install-update-emacswiki-package-name t)
    (message (format "Error: %s command not found." auto-install-wget-command)))
  (auto-install-compatibility-setup))


;; 補完機能の追加
(when (require 'auto-complete-config nil t)
  (global-auto-complete-mode t)
  (add-to-list 'ac-dictionary-directories (expand-file-name "~/.emacs.d/site-lisp/ac-dict"))
  (ac-config-default)
  ;; 補完候補が表示されている間のみ有効な ac-menu-map を有効にする
  ;; デフォルトで C-n, C-p が利用可能
  ;; TAB を2回押して(ac-expand が2回実行されて)補完候補が表示された時に有効にならないので(バグ?)使わない
  ;;(setq ac-use-menu-map t)
  ;; 補完候補が表示されている時に M-h を押すと即座にドキュメントが表示されるようにする
  ;; (define-key ac-completing-map (kbd "M-h") (lambda () (interactive) (ac-quick-help t))) だとダメ
  (defun ac-quick-help-force ()
    (interactive)
    (ac-quick-help t))
  (define-key ac-completing-map (kbd "M-h") 'ac-quick-help-force)
  (define-key ac-completing-map (kbd "C-n") 'ac-next)
  (define-key ac-completing-map (kbd "C-p") 'ac-previous))

;;ess
(load "~/ess-12.09/lisp/ess-site.el")
(require 'ess-site)

;;(add-to-list 'load-path "~/.emacs.d/")
;;(require 'auto-complete-config)
;;(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict")
;;(ac-config-default)
;;(require 'popup)
;;(require 'ess-R-object-popup)

(setq auto-mode-alist
     (cons (cons "\\.R$" 'R-mode) auto-mode-alist))
(autoload 'R-mode "ess-site" "Emacs Speaks Statistics mode" t)
(setq ess-ask-for-ess-directory nil)
(setq ess-pre-run-hook
    '((lambda ()
    (setq default-process-coding-system '(utf-8 . utf-8))
    (auto-complete-mode))))



;;; Rの設定
(global-font-lock-mode t)                                        ; S/R   TeX
(set-face-foreground 'font-lock-comment-face       "Firebrick")  ; #com  %com
(set-face-foreground 'font-lock-string-face         "SeaGreen")  ; "str" "str"
;(set-face-foreground 'font-lock-keyword-face      "MediumBlue")  ; if    \end
(set-face-foreground 'font-lock-keyword-face      "DeepSkyBlue")  ; if    \end
(set-face-foreground 'font-lock-constant-face      "VioletRed")  ; fun<- {ctr}
(set-face-foreground 'font-lock-type-face      "DarkGoldenrod")  ; T,F    ?
;(set-face-foreground 'font-lock-variable-name-face      "Blue")  ; xv
(set-face-foreground 'font-lock-variable-name-face      "DeepPink")  ; xv
(set-face-foreground 'font-lock-function-name-face "VioletRed")  ; <-    {eq1}

(setq auto-mode-alist
     (cons (cons "\\.R$" 'R-mode) auto-mode-alist))
(autoload 'R-mode "ess-site" "Emacs Speaks Statistics mode" t)
 (setq ess-ask-for-ess-directory nil)
 (setq ess-pre-run-hook
     '((lambda ()
     (setq default-process-coding-system '(utf-8 . utf-8))
     (auto-complete-mode))))
		
		
		
		
		;;;---------------------------------
;;; R & ESS の設定
;;;---------------------------------
;; パスの追加
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/ess")
;; 拡張子が r, R の場合に R-mode を起動
(add-to-list 'auto-mode-alist '("\\.[rR]$" . R-mode))
;; R-mode を起動する時に ess-site をロード
(autoload 'R-mode "ess-site" "Emacs Speaks Statistics mode" t)
;; R を起動する時に ess-site をロード
(autoload 'R "ess-site" "start R" t)


;; R-mode 起動直後の処理
;(add-hook 'R-mode-hook 'ess-load-hook)

;; R 起動直前の処理
;(add-hook 'ess-pre-run-hook (lambda () (ess-load-hook t)))


;; YaTeX
;;texファイルを起動したときには自動的にYatexモードにする
(setq auto-mode-alist 
      (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq tex-command "platex-utf8")

;;ReTex自動起動
;(add-hook 'yatex-mode-hook'turn-on-reftex)
;(setq TeX-parse-sefl t)
;(setq-default TeX-master nill)

;;漢字設定(UTF8)
(setq YaTeX-kanji-code 4)

(setq load-path (cons (expand-file-name "/usr/local/share/emacs/site-lisp/yatex") load-path))
(setq tex-command "/usr/texbin/platex"   ;;"~/Library/TeXShop/bin/platex2pdf-utf8"   ; eucの場合はplatex2pdf-euc
     dvi2-command "open -a Preview")  ; Preview.appを使ってPDFを開く

(setenv "PATH" 
(concat "/usr/local/texlive/2012/bin/x86_64-darwin" (getenv "PATH"))) 
(put 'upcase-region 'disabled nil)

;;便利機能
;; ミニバッファ履歴リストの最大長:tなら無限
(setq history-length t)
;; session.el
;;   kill-ringやミニバッファで過去に開いたファイルなどの履歴を保存する
(when (require 'session nil t)
  (setq session-initialize '(de-saveplace session keys menus places)
        session-globals-include '((kill-ring 50)
                                  (session-file-alist 500 t)
                                  (file-name-history 10000)))
  (add-hook 'after-init-hook 'session-initialize)
  ;; 前回閉じたときの位置にカーソルを復帰
  (setq session-undo-check -1))
;; minibuf-isearch
;;   minibufでisearchを使えるようにする
(require 'minibuf-isearch nil t)
(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(custom-enabled-themes (quote (manoj-dark)))
 '(session-use-package t nil (session)))
(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 )

;;magit
(add-to-list 'load-path "~/.emacs.d/site-lisp/magit")
(require 'magit)

;;install-elispの設定--------------------------
;; まず、install-elisp のコマンドを使える様にします。
(require 'install-elisp)
;; 次に、Elisp ファイルをインストールする場所を指定します。
(setq install-elisp-repository-directory "~/.emacs.d/site-lisp/")

;;Ruby-modeの設定----------------
(autoload 'ruby-mode "ruby-mode"                                                        
  "Mode for editing ruby source files" t)                                               
(setq auto-mode-alist                                                                   
      (append '(("\\.rb$" . ruby-mode)) auto-mode-alist))                               
(setq interpreter-mode-alist (append '(("ruby" . ruby-mode))                            
                                     interpreter-mode-alist))                           
(autoload 'run-ruby "inf-ruby"                                                          
  "Run an inferior Ruby process")                                                       
(autoload 'inf-ruby-keys "inf-ruby"                                                     
  "Set local key defs for inf-ruby in ruby-mode")                                       
(add-hook 'ruby-mode-hook                                                               
          '(lambda ()                                                                   
	     (inf-ruby-keys)))                                                           
(global-font-lock-mode 1)                                                               
(setq default-frame-alist                                                               
      (append                                                                           
       '((foreground-color . "gray")  ;                                                 
         (background-color . "black") ;                                                 
         (cursor-color     . "blue")  ;                                                                                                 
	 )                                                                               
       default-frame-alist))                                                                  


;;ruby smart0compile.el
;;(load "~/.emacs.d/site-lisp/smart-compile.el")
;;(require 'smart-compile)
;;(define-key ruby-mode-map (kbd "C-c c") 'smart-compile)
;;(define-key ruby-mode-map (kbd "C-c C-c") (kbd "C-c c C-m"))

(setq c-basic-offset 8)