Macintosh メモ


自分の使用したパソコンの設定メモのうちMacintoshに関するものです。

LibreOfficeで24時間を超えた時間を表示

時間関連関数 その1  LibreOfficeを参考に。

表示形式を[HH]:MM:HHと、hを大括弧で囲む。

LibreOfficeで式の計算結果に0を表示させない

LibreOffice/OpenOffice Calcで参照セルのゼロを空白にするを参考に。

「=IF((D3-C3)=0,"",D3-C3)」的に設定。

macOS版LibreOfficeで現在時刻を挿入するショートカットを設定

Command - ; で現在日付が挿入されるのですが、現在時刻を挿入するショートカットが見当たらなかったので、ツール – カスタマイズで任意のキーボードショートカットに割り当てました。

「ちぇ○ーそふと」な伏せ字を変換した時の作業メモ

「ちぇ○ーそふと」な伏せ字を変換した時の作業メモです。まずはバックアップ。


tar -cvf bak.tar *.html

どれだけあるか目視で確認。


cat *.html | grep ちぇ○ー
    

で見たら1ファイルだったので手動で書き換え。次に「ちぇりー」だけのを「ちぇりーそふと」に。


cat *.html | grep ちぇりー

で探したら幾つかのファイルに記述されていたのでシェルスクリプトで変換。


for i in *.html; do cat ${i} | sed s/"ちぇりー"/"ちぇりーそふと"/g > ${i%.html}.new.html; done

for i in *.new.html; do cat ${i} | sed s/"ちぇりーそふとそふと"/"ちぇりーそふと"/g > ${i%.new.html}.new2.html; done

メモを書くために読み返したらパイプで繋げて一行に出来ると気づきました。


for i in *.html; do cat ${i} | sed s/"ちぇりー"/"ちぇりーそふと"/g | sed s/"ちぇりーそふとそふと"/"ちぇりーそふと"/g > ${i%.html}.new.html; done      

で。目視で確認。


cat *.new2.html | grep ちぇりー      

大丈夫じゃないかなー。ファイルをリネームします。この作業をした時にTwitterで話題に(?)なっていたrenameコマンドを使おうと確認したのですが、


which rename

ありませんでした。バックアップを取って前の作業と同じように処理してリネーム。


tar -cvf bak.new.tar *.new2.html

for i in *.new2.html; do mv ${i} ${i%.new2.html}.html; done

確認します。


cat *.html | grep ちぇりー

cat *.html | grep ◯
cat *.html | grep ○

望ましいように変換出来たのではないでしょうか。このあたりで作業を切り上げ、ファイルをWEBサーバーにアップロードしました。

サークルカットチェックシェルスクリプト

サークルカットチェックシェルスクリプトを書いたのでメモです。


#!/bin/bash

sips -g all $1
sips -g all $2

diff <(sips -g all $1) <(sips -g all $2)

  

./hogescript.sh [ダウンロードしたテンプレート] [書いたサークルカット] と使っています。

4の倍数

中綴じコピー本のページ数を数えるのに、100までの4の倍数を一覧しました。

    
4
8
12
16
20
24
28
32
36
40
44
48
52
56
60
64
68
72
76
80
84
88
92
96
100
    
  
    
#include <iostream>

int main(int argc,char *argv[]){
	for(int i=1;i<=100;i++){
		if(i%4==0){
			std::cout << i << std::endl;
		}
	}
	return 0;
}
    
  

iPodTouchとiTunesで曲を同期すると「プレイリスト名1」というプレイリストが自動で作成されるのを止めました

iTunes12.5.3.17、iOS10.1.1。

iTunesライブラリーの曲はiPodTouchに全部格納できないので、プレイリストを指定してiPodTouchに転送している環境。

iTunesでプレイリストに曲を追加・削除→iPodTouchに曲を転送、すると「プレイリスト名1」というプレイリストが自動でiTunesとiPodTouchに作成されるので、現象を発生させなくしました。

iTunesとiPodTouch間のプレイリスト同期について を参考に。

  1. iTunesで、現象の発生するプレイリストの情報を、ファイル - ライブラリー - プレイリストを書き出し でテキストファイルに書き出す。
  2. iPodTouchで「ダウンロード済み」をタップして、現象の発生するプレイリストを削除する。
  3. iTunesとiPodTouchを同期する。現象の発生するプレイリストが、iTunesから削除される。
  4. iTunesで、プレイリストの情報を、ファイル - ライブラリー - プレイリストを読み込み で読み込む。
  5. iTunesとiPodTouchをもう一度同期する。現象の発生するプレイリストに格納されている曲が、改めてiPodTouchに転送される。

以上の作業を行った後、以前現象の発生していたプレイリストに曲を追加して現象が発生するか試したところ、現象は発生しませんでした。

また改めて現象が発生したら、その都度解消方法を調べます。以上メモです。

追記。また現象が発生したのでぐぐったところ、iPod touch 第6世代とiTunesの同期時の問題 が見つかったので試してみたら現象は再現しませんでした。追記メモです。

LibreOffice5.2で入力するとセルの背景色を変更しました

セルを選択、書式 - 条件付き書式、条件。

「新しいスタイル」を選択するとダイアログが表示されるのでセルの背景色を選択する。

以上で入力されていないセルに色を付け、入力されると色が白になるようにしました。メモです。

homebrewでboost


brew update

brew upgrade

brew install boost  

でインストールしました。


c++ --std=c++11 -o hoge -I /usr/local/include ./Hoge.cpp

で使えました。以上メモです。

LibreOfficeでプルダウンメニュー

OpenOffice Calcでセル入力値をプルダウンリストからの選択にするを参考に。

セルを選択して、データ - 入力規則 - 条件 - リスト で入力項目に項目を設定してOKボタンを押下。

以上メモです。

GaucheをEmacsから使えるように設定しました

SICPを読むためにやっておくと便利かもしれないことを参考に。


brew install gauche

which gosh

/usr/local/bin/gosh

init.elに


;; SICP
(setq scheme-program-name "/usr/local/bin/gosh")
(require 'cmuscheme)

(defun scheme-other-window ()
    "Run scheme on other window"
    (interactive)
    (switch-to-buffer-other-window
        (get-buffer-create "*scheme*"))
    (run-scheme scheme-program-name))

(define-key global-map
    "\C-cS" 'scheme-other-window)

を記述してM-x eval-buffer。定義したように、C-cSを押下するとGausheが起動した。


gosh> (define pi 3.14159)(define radius 10.0)(* pi (* radius radius))
pi
gosh> radius
gosh> 314.159
gosh> (exit)

Process scheme finished

一年以上かかりそうです。ぽちぽちと進めます。

emacsでかっこハイライト

emacsでかっこのハイライト。GNU Emacs 対応する括弧をハイライトさせる を参考に。$HOME/.emacs.d/init.elに、


 (show-paren-mode t)

を記述しました。以上メモです。

emacsで多言語入力

Emacs で多言語入力(例.ドイツ語とフィンランド語)を参考に。


C-x RET C-\ TAB

で一覧が表示されるので選択。以上メモです。

ファイルの存在確認

ビッグサイトの写真ページでリンクミスしていそうで自信がなかったので確認しました。


cat ./index.html | grep .jpg | sed -e 's/    <td><a href=\".\///g' | awk -F "\"" '{print $1}' > list.txt

で一覧ファイルを作成。


for file in `cat list.txt`; do [ ! -e $file ] && echo "$file NOT found."; done

で確認。もうちょっとワンライナーに縮められればよいです。ダサいですが、


cat ./index.html | grep .jpg | sed -e 's/    <td><a href=\".\///g' | awk -F "\"" '{print $1}' | xargs ls -l | grep "no such file"

なら一行です。ちょい詰めて、


cat ./index.html | grep .jpg | sed -e 's/    <td><a href=\".\///g' | awk -F "\"" '{print $1}' | xargs -L1 bash -c 'if [ ! -e $0 ]; then echo "$0 NOT found."; fi'

こんな感じでどうかしらん。ここで切り上げました。

emacs25のプレテストをコンパイル

emacs25のプレテストをコンパイルしました。OS X Yosemite (10.10) に Emacs HEAD (25.0) をインストールしたを参考に。


git clone https://github.com/suzuki/emacs-inline-patch

xz -cd ./emacs-25.0.91.tar.xz | tar -xvf -

cd emacs-25.0.91

patch -p1 < ./../emacs-inline-patch/emacs-inline.patch

./configure --with-ns --without-x && make bootstrap && make install

以上メモです。

emacsで編集中のhtmlファイルをデフォルトWEBブラウザーで開く

【Emacs】編集中のファイルをブラウザで開くを参考に。


M-x browse-url-of-file

以上メモです。

EmacsでC++のメソッド名補完

auto-completeを使用しました。emacs auto-complete.el「Emacsのトラノマキ」連載第09回「auto-completeを使おう」(松山智大)を参考に。


M-x package-refresh-contents
M-x package-install [RET] auto-complete

$HOME/.emacs.d/init.elに


(require 'auto-complete)
(global-auto-complete-mode t)

と記述。init.elをM-x eval-bufferした後C++ソースでメソッド名を入力したらメソッド名の補完一覧が表示されました。メモです。

homebrewでmypaintのアンインストール


brew cask uninstall mypaint

こんな感じでアンインストールできました。

コマンドラインで警告音


echo ^G

^GはC-v C-gで入力。$ hogehoge && echo ^G みたいな感じで使いました。

scpでファイルを持ってくる

scpでとあるディレクトリー配下を持ってきました。ssh でファイル転送(SCP コマンド)を参考に。


scp -rq [ユーザー名]@[ホスト名]:[ディレクトリーをフルパスで] [ローカルパス]

OSX Yosemiteでライン入力をヘッドホンで聞く

ライン入力を適当な機器につなげて、機器で音を出して、QuickTimePlayerを立ち上げてファイル - 新規オーディオ収録。

するとOSX YosemiteをインストールしているMacintoshで音が聞けました。メモです。

emacs24.5でキーボードマクロ

[F3]で記録開始、[F4]で記録終了、[F4]でマクロ実行、が出来ました。メモです。

Googleさんからスマートフォン対応のページにすれとメッセージが来たので

GoogleさんからWEBサイトをスマートフォン対応のページにすれとメッセージが来ました。

んだもんですのでグーグル先生に聞いてhtmlを変更しました。HEADタグの中に、


<meta name="viewport" content="width=device-width, initial-scale=1.0">

タグを記述。iPodTouchで見てみるとなんとなく文字が大きく見えるようになったかなー程度に。

絵日記ページではなんちゃってメニューを記載していて、iPodTouchで見ると横が厳しいかなーと。JavaScriptでスタイルシートを切り替えました。なんちゃってなスクリプトですけれども、


<script>
  <!--
    (function(){
    var _UA = navigator.userAgent;
    if (_UA.indexOf('iPhone') > 0 || _UA.indexOf('iPod') > 0 || _UA.indexOf('Android') > 0) {
      document.write('<link href="diary5_SmartPhone.css" type="text/css" rel="stylesheet"/>');
    }else{
      document.write('<link href="diary5.css" type="text/css" rel="stylesheet"/>');
    }
  })();
  // -->
</script>

これで切り替え。手持ちの、SSL繋がらなくなったケータイで見てみたらそもそもでスタイルシート適用されなくてそれっぽく見えてたのでケータイは知らないです。

そんな状態で何ヶ月か放置して置いたら随分エラーが減りました。以上メモです。

OSXでMIDIファイルをAIFFファイルに変換

OSX YosemiteでWindows95用のエロゲのCDに入っていたMIDIファイルをAIFFファイルに変換しました。Mac OS XでMIDIファイルをオーディオに変換する方法を参考にしました。


$ sudo port search fluidsynth

見つかったのでインストール。


$ sudo port install fluidsynth


$ curl -I http://kujirahand.com/download/2014/TimGM6mb.sf2
HTTP/1.1 200 OK
...

あったので取得。


$ curl -O http://kujirahand.com/download/2014/TimGM6mb.sf2


$ fluidsynth -F KH01_FM.aiff ./TimGM6mb.sf2 ./KH01_FM.MID 
FluidSynth version 1.1.6
Copyright (C) 2000-2012 Peter Hanappe and others.
Distributed under the LGPL license.
SoundFont(R) is a registered trademark of E-mu Systems, Inc.

Rendering audio to file 'KH01_FM.aiff'..

変換できました。試しに聞いてみる。聞けています。まとめて変換。


for i in *.MID; do fluidsynth -F ${i%.MID}.aiff ./TimGM6mb.sf2 ${i}; done

変換し終わって、適当にiTunesにぼっこんで適当に聞いています。警告が出たファイルもなんとなく聞けています。音の再現度は分かりません。以上、メモです。

前置インクリメントと後置インクリメント

後計算と前計算らしいですよ、とはインターネットで読んだのですが、どうせならアセンブラーソースを見てみよう、と、簡単なC言語ソースからアセンブラーソースを生成して慣れないながらも読んでみました。

使ったのはOSX Yosemiteにインストールしたclangでした。


/**
 * メイン。
 */
int main(int argc,char *argv[]){
    int a=0,b=6,c=7;
    a=(b++)-(c++);
    a=(++b)-(++c);
    return 0;
}


# 初期化。
        movl	$0, -20(%rbp)
	movl	$6, -24(%rbp)
	movl	$7, -28(%rbp)


# a=(b++)-(c++);
        movl	-24(%rbp), %edi
	movl	%edi, %ecx
	addl	$1, %ecx
	movl	%ecx, -24(%rbp)
	movl	-28(%rbp), %ecx
	movl	%ecx, %edx
	addl	$1, %edx
	movl	%edx, -28(%rbp)
	subl	%ecx, %edi
	movl	%edi, -20(%rbp)


# a=(++b)-(++c)
        movl	-24(%rbp), %ecx
	addl	$1, %ecx
	movl	%ecx, -24(%rbp)
	movl	-28(%rbp), %edx
	addl	$1, %edx
	movl	%edx, -28(%rbp)
	subl	%edx, %ecx
	movl	%ecx, -20(%rbp)

てな感じで、a=(b++)-(c++)は++で足す前の値避けておいて足す前の値で引き算していますが、a=(++b)-(++c)は足した後の値で引き算していました。

てなわけで、後置インクリメントは式の実行時にはインクリメント前の数値を使用しています、とかなんとかそんなことなんだろうなあとぼややんと思っておきます。

clangでC言語ソースからアセンブラーソースを作る


cc -S dis.c

で、dis.sというファイルにアセンブラーソースが生成されました。メモ。

行数数え

2013年の10月くらいに、2015年4月現在本WEBページをアップロードしているロリポップさん上で運用されているWordPressページへの不正アクセスがありました。

本WEBページではWordPressを使用していないので、wp-login.phpにPOSTが飛んできて404がだらだら続いているのつまらないなーと。

ですので不正アクセス者がどんなパスワードで試行しているんやら、とユーザーIDとパスワードをけっぱるphpをでっちあげました。

今月号(2015/05月号)のSoftwareDesignさんでテキスト処理ベーシックレッスンと題してシェル芸が紹介されていたのでちょうどいいやあ、と不正アクセス者が当WEBサイトに試行したパスワードのトップ30を集計しました。ちょうど、不正アクセス者に破られやすいパスワード一覧になりました。


cat ./data_whole.csv | awk -F "," '{print $3}' | sort | uniq -c | sort -rn | head -30
 165 admin
 159 1234
 154 123456
 147 123123
 145 password
 145 12345678
 137 12345
 132 test123
 130 121212
 125 admin123
 125 123456789
 125 1234567
 116 1234567890
 112 test
 102 11111
 101 demo
  86 
  81 00000
  34 qwerty
  34 mods123
  34 mods
  32 aoshima256123
  32 aoshima256
  31 administrator
  30 123654
  29 654321
  29 123321
  28 mods.jp
  28 aoshima256.jp
  28 123mods

こんな一覧になりました。URL使ったりもするんだなー。

lftpで任意のディレクトリ配下のファイルをまとめて送受信

mirror -R で送信、mirror で受信。

画像のサイズを取得

コマンドラインで画像のサイズを取得できないかなあと。画像ファイルを操作する(sips)を参考に取得。


$ sips -g all ./stroke_hyoushi_thumb.jpg 
/Users/.../stroke_hyoushi_thumb.jpg
  pixelWidth: 250
  pixelHeight: 354
  typeIdentifier: public.jpeg
  format: jpeg
  formatOptions: default
  dpiWidth: 72.000
  dpiHeight: 72.000
  samplesPerPixel: 3
  bitsPerSample: 8
  hasAlpha: no
  space: RGB

こんな感じで取得出来ました。

emacs24.5をコンパイル

案内のe-mailが届いていたのでemacs24.5をダウンロードしてコンパイルしました。

ダウンロードしたソースを展開して、24.4用のインラインパッチを置いて、


cd ./emacs-24.5
patch -p1 < ./../emacs-24.4-inline.patch

で24.4用のインラインパッチを当てた。当たった。


./configure --with-ns --without-x && make bootstrap && make install

でコンパイル。コンパイル出来て、現在コンパイルした24.5でメモを記述しています。メモ。

C++でmapに格納されている要素を逐次見る


std::map<std::string,User> userMap;

... mapにデーターを格納する処理 ...

std::vector<User> users;
for(auto itr=userMap.begin();itr!=userMap.end();++itr){
    users.push_back(itr->second);
}
sort(users.begin(),users.end());

ダサイ方法かも知れませんがこんなコードで教本の問題の正答は作成できました。Keyを見るにはitr->firstらしいです。メモ。

C++でvectorの要素を逐次見る


std::vector<int> hoge={1,2,3,4,5}
for(auto && elem:hoge){
    std::cout << elem << std::endl;
}

こんな感じでした。C++11からの機能だったかどうかは忘れました。

cppchecker

なんかC++で書いた小物コード、メモリーリークしてないかなー、大丈夫かなーと。

ですのでチェックツールでチェックしました。使ったのはcppchecker。


sudo port install cppchecker

でインストール。


$ cppcheck --enable=all ./hoge.cpp
Checking hoge.cpp...

と走らせた所、メモリーリークしているとは表示されませんでした。今書いている書き方ならメモリーリークしないで済むのかな? 今書いている書き方を敷衍してさらに小物プログラム群を書いて行きます。

opensslのバージョン確認

openssl --version してもエラーになるんでどうするんじゃらいと調べたらopenssl version でした。メモ。

OSXでWEBサーバー上のファイルのHTTPヘッダー取得

HTTPのページのヘッダ情報だけ取得する curl/wgetコマンドを見て。


curl -I [URL]

curlで取得出来ました。

emacs24.4.90でC++ソースを書くときのインデント

設定していない状態だと、ときどきタブが入るので設定を変更しました。Emacs における C, C++ 系モードのインデント設定を参考にしました。

M-x customize-group [RET] c [RET]。

24.4.90だと、「C Default Style」でスタイルを設定するようでした。試しにbsdスタイルで設定。

「C Basic Offset」を「Override style settings: 4」で設定。

自分はタブは全体的に使わないので、init.elに


(setq-default indent-tabs-mode nil)

を記述。以上、メモです。

PreTestのemacs24.4.90をコンパイルしてみました

e-mailで届いたemacs-24.4.90.tar.xzへのリンクをSafari上でクリックしてダウンロード。

tar.xzってことはなんかzオプションつけるんだっけ、zオプションとかJオプションとかつけても弾かれるんだけど、とダメ元で


tar -xvf ./emacs-24.4.90.tar.xz 

で展開出来ました。すでにSafariが解凍してくれていたかどうかは不明。fileするとxz compressed dataとは言われるのだけれど。


patch -p1 < ./../emacs-24.4-inline.patch

./configure --with-ns --without-x && make bootstrap && make install

でコンパイル。現在文章をコンパイルしたemacsで書いています。ぽちぽちで使える…かな? 24.5も使えますように。

Emacs24.4でパッケージの更新

M-x package-list-packagesを実行したら、インストールされているいくつかのパッケージが古いので、"U"を押して更新してください、と表示されました。

"U"を押して更新をマーク、実行はなんだっけ、と調べたら"x"でした。メモです。

Emacs24.4にemacs-w3mをインストール

Emacs24.4にemacs-w3mをインストールしました。すでにMacPortsでw3mをインストールしていました。バージョンはw3m version w3m/0.5.3。

EmacsでM-x package-list-packages。リストからw3mを検索。Installを選択してインストール。Emacs再起動。

M-x w3mでw3mを起動したところ、


w3m command in `exec-path' or set `w3m-command' variable correctly

とエラー。w3mをMacPortsでインストールして、/opt/local/bin/にあるからなあ、と、init.elに、


(setq w3m-command "/opt/local/bin/w3m")

を記述してEmacsを再起動。もう一度M-x w3mしたらw3mバッファーが見られて、URLを入力してWEBサイトが閲覧出来ました。以上、メモです。

C++とかJavaで階乗

C++とかJavaで、5!とか10!とかの階乗。多分C言語でも出来るでしょう。


for(int i=1;i<=n;i++){
    a*=i;
    std::cout << "a : " << a << std::endl;
}

こんな感じです。以上、メモです。

実行時間

実行時間測定。


$ time ./keiro1 
126

real	0m0.005s
user	0m0.001s
sys	0m0.002s

こんな感じです。

iPodTouch 5th Generationの電源が入らなくなったのでリセットしました

iPodTouch 5th Generationの画面が映らなくなったので、iOS デバイスの電源の入/切 (再起動) とリセットを参考に、スリープボタンとホームボタンを同時長押ししてリセットしました。

リセット後、iTunesに接続せよと表示されたのでMacMiniでiTunesを立ち上げMacMiniに接続し、処理が走りました。その後、iPodTouchが再起動し、使えました。以上、メモです。

OSX YosemiteのC++コンパイラーでC++11でコンパイルする

OSX YosemiteのC++コンパイラーでC++11でコンパイルする方法。


c++ -std=c++11 -o maze ./MazeMaker.cpp
      

以上、メモ。

OSX Yosemiteでインラインパッチを当ててemacs24.4をコンパイルしました

OS X Mavericksにemacs 24.4.50を導入

Emacs 24.4 with libxml2 for Mac OS X Yosemite

を参考にしてemacs24.4.1にYosemiteでインラインパッチを当てました。


curl -O http://plamo.linet.gr.jp/~matsuki/mac/emacs-24.4-inline.patch.bz2
bzip2 -d emacs-24.4-inline.patch.bz2

でemacs24.4を展開したディレクトリと同じディレクトリにパッチを置きました。それからemacs24.4を展開したディレクトリに移動して、

    
patch -p1 < ./../emacs-24.4-inline.patch

でパッチを当ててから、


./configure --with-ns --without-x ; make bootstrap ; make install

してコンパイル。インラインパッチが当たって、IMで日本語を変換しているときに分節が見えやすくなりました。以上、メモ。

Yosemiteにアップグレードした後MacPortsを更新しました

Marvericksでsudo port selfupdateしておいたMacPortsをYosemiteでselftupdateしたらOSがミスマッチだとコケました。

OSをYosemiteにアップグレードしてからsudo port selfupdateしたら、


$ sudo port selfupdate
Error: Current platform "darwin 14" does not match expected platform "darwin 13"
Error: If you upgraded your OS, please follow the migration instructions: https://trac.macports.org/wiki/Migration
OS platform mismatch
    while executing
"mportinit ui_options global_options global_variations"
Error: /opt/local/bin/port: Failed to initialize MacPorts, OS platform mismatch   

とエラーに。

Yosemite Problemsに、Yosemiteにバージョンアップしたらportを再インストールせよと書いてあったので、

Installing MacPortsからパッケージのYosemite用のMacPortsのパッケージをダウンロードしてインストール。したらportを実行してもエラーが出なくなりました。その後、


xcode-select --install

を実行。

次に、sudo port upgrade outdated。したら、perl5のインストールでコケました。


port -f activate perl5

せよと表示されたので、


sudo port -f activate perl5 @5.12.4_0+perl5_16

を実行。再度sudo port upgrade outdatedを実行。

次に、ffmpegのコンパイル時に、libblurayのfetchでコケました。特にBlurayを再生する予定は無いので外せないかなーと思ったけれど、


ftp://ftp.videolan.org/pub/videolan/libbluray/0.6.0      

にftpでアクセスしてソースコードをダウンロードして、


/opt/local/var/macports/distfiles/libbluray

の下に格納し、もう一度sudo port upgrade outdated。

コンパイルは最後まで通って、コンパイル結果のチェックが走って終わりました。以上、作業した時のメモです。

emacsを24.4.1にしました

OSX Mavericksで使っているemacsを24.4.1にしました。tarボールを取得して、


./configure --with-ns --without-x ; make bootstrap ; make install

してコンパイル。インラインパッチは当てませんでした。後で当てるかもしれません。

一年か二年か前にel-getで取得したmagitがコケたので、$HOME/.emacs.d/el-get ディレクトリをtarでまとめてバックアップ。また、init.elのel-getの設定をコメントアウト。

magit/magitを見て、init.elに、


(require 'package)
  (add-to-list 'package-archives
  '("melpa" . "http://melpa.milkbox.net/packages/") t)

を記述してMELPAリポジトリーを追加してemacsを再起動。


M-x package-install RET magit RET

でmagitをインストール。magit-statusで起動、コミット、PUSHまで行けました。以上、メモです。

MacPortsのselfupdateに失敗したので

遊びでC++でフィボナッチ数列を表示させるプログラムを作成しました。99番目まで表示させたところ、long longの範囲もぶっちぎってしまって。

boostライブラリーのint124_tなら入りそうでした。なので、C++のboostライブラリー入れようと。そこでMacPortsをselfupdateしたら失敗したのでメモ。

バージョン : MacPorts 2.3.0。


sudo port selfupdate

すると、


Error: Extracting http://www.macports.org/files/ports.tar.gz failed (can't read "verboseflag": no such variable)

てな具合にエラー。

selfupdate failed - can't read "verboseflag": no such variableで解決できるようでした。

patchファイルが見つけられなかったので、


/opt/local/libexec/macports/lib/macports1.0/macports.tcl

をエディターで編集してしまいました。set verboseflagの行をローテクで追加。


@@ -2496,6 +2496,8 @@
                 if {$macports::portverbose eq {yes}} {
                     set progressflag "--progress builtin"
+                    set verboseflag "-v"
                 } elseif {[info exists macports::ui_options(progress_download)]} {
                     set progressflag "--progress ${macports::ui_options(progress_download)}"
+                    set verboseflag ""
                 }

この後にsudo port selfupdateしたら通りました。その後にsudo port upgrade outdated。boostはすでに入っていたようでsudo port install boostしてもバイナリーのチェックするだけでした。

最初、作ったソースをコンパイルしたところboostなんてねーよと怒られたのですがそういえば /opt/local/include にパス通してなかった。

コンパイラーに、-I /opt/local/include でインクルードファイルのパス追加してあげてコンパイルが通り、99番目までフィボナッチ数列を表示するプログラムを動かしました。以上、メモ。

画像の一覧とサムネイル

ちぇりーのExileのイベント絵のサムネイル一覧と絵にリンク張ったhtmlを作成したので作成メモ。

イベント絵をWindows7でソフト付属の出力機能を使ってbmpに出力し、OSXに持ってきて作業。


sudo port install imagemagick

でImageMagickをインストール。


for i in *.BMP; do convert ${i} ${i%.BMP}.JPG; done

でjpgに変換。


for i in *.JPG; do convert -thumbnail 160x120 ${i} ${i%.JPG}Thumb.JPG; done

でサムネイル作成。


#!/bin/bash

echo "<html>"
echo "<body>"

echo "<table>"

count=1

echo "<tr>"

for i in *Thumb.JPG
do
    #echo ${i}
    #echo ${count}
    echo "<td><a href=\""${i%Thumb.JPG}.JPG"\"><img src=\"${i}\"></a></td>"
    if [ $(($count % 5)) = 0 ]; then
	echo "</tr>"
	echo "<tr>"
    fi	
    count=$(($count + 1))
done

echo "</tr>"

echo "</table>"

echo "</body>"
echo "</html>"

なシェルスクリプトでサムネイルを一覧して画像ファイルにリンクを張るhtmlを作成。以上、メモ。

OSX Marvericksのプレビューとヒューレットパッカード HP C5280で中とじコピー誌

OSX Marvericksのプレビューとヒューレットパッカード HP C5280で中とじプリントアウトコピー誌を作成する際のメモを自分用に残します。本文1ページ目を数えるのが楽ちんなので表紙と裏表紙の裏に前書きと後書きをプリントアウトしています。

マンガ。

manga_hyou

manga_mae

で一組。OSXのプレビューを使って表紙と裏表紙をプリントアウトしたら、

manga_printer

裏返さず、左右も反転せず、そのまま給紙トレイにプリントアウト済みの紙を格納し、前書きと後書きをプリントアウトする。

以上で紙1枚分、表紙と裏表紙と前書き後書きがプリントアウトできるので、同じように1ページ目から面付けしたファイルをプリントアウトする。

横書き文字本。

moji_hyou

moji_mae

マンガ同様、表紙と裏表紙をプリントアウトしたら、プリントアウトした紙を挿しなおして前書きと後書きをプリントアウトする。

以上、メモです。

MacPortsのqemuでDebian

ぼっこわしてもいい環境が手軽に作れないかなー、とMacPortsからインストールしたqemuを試してみました。OSのバージョンはMarvericks。


$ qemu-system-i386 -version
QEMU emulator version 1.7.0, Copyright (c) 2003-2008 Fabrice Bellard


$ qemu-img create -f qcow2 debian.qcow 12G
$ qemu-system-i386 -hda ./debian.qcow -cdrom ./debian-7.4.0-i386-DVD-1.iso -boot d -m 256

でインストーラーが走ってインストールされたようです。


$ qemu-system-i386 -hda ./debian.qcow -m 256

で起動。以上、メモです。

emacsのcalcで平方根

数字を入力して、Q。

OSX MarvericksでC++プログラム書いてコンパイルしたところエラーになったので

OSX MarvericksでC++プログラム書いてclangでコンパイルしたらエラーになったので調べたらclang++を使うと通ります、とのことでした。

clangでc++コードをコンパイルする方法(解説付き)を参考にしました。


#include <iostream>
using namespace std;

int main(int argc, char *argv[]){
  cout << "Hello, World." << endl;
}

なコードを、


clang -o Hello ./Hello.cpp

すると、


Undefined symbols for architecture x86_64:
  "std::__1::locale::use_facet(std::__1::locale::id&) const", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<<<std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) in Hello-qMPtJj.o
.
.
.

てな感じでエラーになりました。


$ clang++ -o Hello ./Hello.cpp
$ ./Hello
Hello, World.

てな感じで解決。ちなみに、


#include <stdio.h>

int main(int argc, char *argv[]){
  printf("Hello, World of C.\n");
}

なソースだと、


$ clang -o HelloC ./Hello.c
$ ./HelloC
Hello, World of C.

でした。そういえばリターン文書いてない。以上メモです。

OSX MarvericksでMacports2.2.0から2.2.1へのアップデート時にエラーになったので

OSX MarvericksでMacports2.2.0から2.2.1へのアップデート時にエラーになったのでメモ。


bash-3.2$ sudo port selfupdate
--->  Updating MacPorts base sources using rsync
MacPorts base version 2.2.0 installed,
MacPorts base version 2.2.1 downloaded.
--->  Updating the ports tree
--->  MacPorts base is outdated, installing new version 2.2.1
.
.
.
checking for Tcl configuration... configure: error: Can't find Tcl configuration definitions

と、Tclの設定でエラーになった。ぐぐったら、

Fix “macports checking for Tcl configuration… configure: error: Can’t find Tcl configuration definitions” when selfupdating Macports in Mac OS X 10.9 Mavericks

に、


sudo xcode-select --install
sudo xcodebuild -license

すると解決するよ、と書いてあったので実行。その後にsudo port selfupdateしたら通りました。以上、メモ。

emacsのアウトラインモードメモ

emacsのアウトラインモードをメモします。

現在の見出しを閉じる
C-c C-d
現在の見出しを開ける
C-c C-e
見出しを全て開ける
C-c C-a
現在参照している見出し以外の見出しを全て閉じる
C-c C-t
下の見出しに移動する
C-c C-n
上の見出しに移動する
C-c C-p

Mountain Lion + ATOK2012でひっかかることがあったのでATOK2012を再インストールしました

Mountain Lion + ATOK2012でひっかかることがありました。ATOK2012を再インストールしても、改善されませんでした。しょうがないのでことえりを使っていました。

せっかくお金出したし、ことえりはときどき変換がどうもなーと思ったのでATOK2012の再インストールにもう一度トライしました。ATOK2012のアンインストール → 設定ファイルの削除 → ATOK2012のインストールを行いました。今のところ変換時にひっかかることはありません。

ATOK 2012を削除・再インストールする方法を参考にしました。

こちらのページでは、設定ファイルを書き戻す手順になっていますが、設定ファイルがイケていないことになっているかもしれないな、と思ったので、辞書ファイルをエクスポートして、インポートしました。

辞書ユーティリティ → ツール → 単語・用例の一覧出力 で今まで学習させた用語をファイルにエクスポートしました。

IMをことえりに変えて、/Applications/JustSystem/配下にあるATOKのアンインストーラでATOKをアンインストールしました。

その次に、残っている設定ファイルも削除しました。/Users/[ユーザ名]/Library/Preferences/ATOK25と、ATOK25ディレクトリと同じディレクトリに格納されている、com.justsystems.*なファイルも削除しました。

また、ATOK2010だったかな…からバージョンアップしたので、たぶん、ATOK23だったか24だったかのディレクトリも残っていたと思います。こちらも削除しました。

ATOKをアンインストーラを使用してアンインストールして、設定ファイルを削除したあと、ATOKを再インストールしました。

再インストールしたあと、辞書をインポートしようと思って辞書ユーティリティを立ち上げたら、「ユーザ辞書ファイルがありません」的な警告が出て驚きました。ATOK Syncと、ATOK Directの設定ウィザードをある程度進めてからキャンセルしたら、「ユーザ辞書ファイルがありません」的な警告は出なくなりました。

ユーザ辞書ファイルがありません的な警告は、インストールしてから時間がたてば解消されるのか、ATOK SyncとATOK Directの設定ウィザードを進めないとユーザ辞書ファイルが作成されないのかは、わからないです。

とりあえず、辞書ユーティリティが立ち上がったので、ツール - ファイルから登録・削除で、エクスポートした用語ファイルを取り込みました。

以上で、ATOK2012の再インストールを行いました。一週間くらい使用していますが、いまのところ変換時にひっかかることはありません。

またひっかかったら、またそのときに対応策を考えます。以上、メモです。

emacs24.3.1にmagitを設定しました

emacsにmagitを設定するときに、24.1.1のままだとエラーになったのでメモします。

emacs24.1.1でmagitを設定しようと思いました。M-x el-get-installするとらくちんだよ、というページを見かけました。

el-getを設定していなかったので、el-getを設定しました。el-getのインストールを参考にしました。


;; So the idea is that you copy/paste this code into your *scratch* buffer,
;; hit C-j, and you have a working el-get.
(url-retrieve
 "https://raw.github.com/dimitri/el-get/master/el-get-install.el"
 (lambda (s)
   (goto-char (point-max))
   (eval-print-last-sexp)))

スクラッチバッファにコピーアンドペーストして、C-jするとel-getがインストール出来ます、とのことでしたのでやってみました。

C-jを押した後で、格納ディレクトリ自分で変更すればよかったと思いました。後の祭りでした。格納ディレクトリを変更しなかった場合、$HOME/.emacs.dに格納されました。

「基本的な設定」の欄に、


(add-to-list 'load-path "~/.emacs.d/el-get/el-get")

(unless (require 'el-get nil 'noerror)
  (with-current-buffer
      (url-retrieve-synchronously
       "https://raw.github.com/dimitri/el-get/master/el-get-install.el")
    (goto-char (point-max))
    (eval-print-last-sexp)))

(add-to-list 'el-get-recipe-path "~/.emacs.d/el-get-user/recipes")
(el-get 'sync)

と書かれていたので、こちらを.emacsに記述しました。まだ.emacsを使っています。init.elにした方がいいのだろうと思います。また、$HOME/.emacs.d/el-get/el-getと二回el-getが続くのはどうだかなあ、と思います。将来的に修正されるのかもしれません。

el-getはインストールされましたので、el-getを使用してmagitをインストールしました。M-x el-get-installと入力してからmagitと入力。すると、


...
magit.tmp.el:143:1:Error: Cannot open load file: cl-lib

と、エラーになりました。cl-libってなんだろうなあ、とグーグル先生で検索してみたら、Common Lisp for Emacsで、Lispの関数とマクロなんだそうです。

24.3より前は、cl.elで提供されていたようですが、24.3から、cl-lib.elになったみたいです。ですので、cl-libが見つからないというエラーは、24.3にバージョン上げれば解消されるかな、と思いました。

24.3にして、起動したら、途中でこけていたel-get-installが最後まで通って、magitが使えるようになりました。

M-x magit statusして、ちょうど文章のtypoを見つけたので修正して、gで再表示すると編集したファイルが表示されました。

cを押してcommit、コミットログを記述してC-c C-c、PでPush、と、当面必要な一通りのことを確認しました。たぶんこのまま使用出来るのではと思います。

以上、メモです。

MacPortsでlftp

sudo port install lftp でインストールしました。メモ。

emacsのcalcで対数

真数、底の順番で数字を積んで、Bを押す。

emacsでアウトラインモード

emacsでアウトラインモードを使用した。M-x outline-modeでアウトラインモードに。

M-x text-modeでテキストモードになるらしい。以上、メモ。

Mountain LionにアップグレードしたらATOK2012が重くなったので解消した

LionにATOK2010をインストール→ATOK2012のダウンロード版を購入してLionにATOK2012をインストール→LionをMountainLionにバージョンアップ。

という流れでパソコンを使いました。MountainLionにバージョンアップしたあと、ATOK2012で変換する際にレインボーカーソルが出るようになりました。

パッチを当てると解消されることがあるよ、というページを見ました。すでにATOKは最新版でしたがパッチを当ててみました。自分の環境ではレインボーカーソルが出る現象は解消されませんでした。

ATOK2012を再インストールすると解消されることがあるよ、というページも見つけました。ATOK2012をアンインストール→再インストールしてみました。

以前のように入力する度にレインボーカーソルで待たされることがなくなりました。今のところ快適に使用できています。メモ。

Mountain LionにJDK1.7.0_11をインストールした

Mountain LionにOracleからダウンロードしたJDK1.7.0_11をインストールした。すでに以前のバージョンのJavaをインストールしていた。

インストーラを起動してインストールした。ターミナルでjava -versionと入力してバージョンを確認した。バージョンがインストール前と変化しなかった。

なので、/Library/Java/JavaVirtualMachines 配下のディレクトリを一度tarでまとめて、削除した。その後でもう一度JDKのインストーラを起動した。そしてjava -versionと入力した。するとupdate 11と表示された。

以上、メモ。

YoruFukurouでフォントの変更

ターミナルで、


defaults write com.YoruFukurouProject.YoruFukurou TweetFontName "Hiragino Kaku Gothic Pro W3"

としてフォントを変更してみた。メモ。

OSX Mountain Lionでgccのインストール

AppStoreからXCodeをインストールする。XCodeを立ち上げて、Preferences→DownloadsでCommand Line Toolsのinstallをクリックしてインストール。

OSX Lionでコンピュータのスリープ

OSX Lionでコンピュータのスリープ。opt + command + eject でスリープ。メモ。

OSX LionのAutometerでePubを作成したとき

OSX LionのAutometerでePubを作成したとき、ちょっとつまづいたのでメモで残しておきます。

AutometerでePubを作成して、iPodTouchに転送して、一冊目のファイルはiPodTouchのiBooksの本棚に表示されたのだけれど、二冊目のファイルはiBooksの本棚に表示されなかった。

なんでだろうなあ、と思って試行錯誤したら、Autometerで、ePubのタイトルは初期値にして、あとでファイル名を変更したりiTunesでプロパティを変えたりして、Autometer自体は使いまわしていました。

原因は分からないですけれど、これが原因かなー、と思って、それぞれ別のAutometer作って、本のタイトルをAutometerにリテラルで書いてePubを作成したところ、二冊ともiPodTouchのiBooksの本棚に表示された。

テキストファイルのファイル名を取得して、ePub作成時にファイル名を渡して…とかすれば、使い回しの出来るAutometerが作れそうですが、現状、ePubを作成する頻度は高くないので、ePubを作成する度に使い捨てのAutometer作ろうかなあ、と思っている次第です。

以上、ショボイ話でしたが、ちょっと手間がかかったのでメモで残しておきます。以上です。

iPodTouchでホームシェアリングしている音楽を聞く方法

iOS:iOS デバイスのホームシェアリングを設定する に書いてあったのでメモ。iTunes10.7とiOS5.1.1でやりました。

Macintoshのハードディスクデータ消去

Mac OS X:ディスク上のすべてのデータをゼロにする方法で消去した。OSに消去機能ついているんですね、という感じでした。以上、メモです。

OracleからdmgをダウンロードしてJavaをインストールした

OracleからdmgをダウンロードしてJavaのJDKをインストールしました。バージョンは1.7.0_07でした。

ダウンロードしたパッケージからインストーラを立ち上げて、インストールが完了した後にターミナルでjava -versionと入力してみても、バージョンが変わらなかった。どうすればいいんだろう、と調べたところ、

アプリケーション - ユーティリティ - Java Preferencesで、使用するJavaの優先順位を変更することで、新しくインストールしたJavaを使うことが出来るみたい。

/usr/bin/javaに上書きされるのかと思っていたので、じゃあ/usr/bin/javaってなんじゃらい、と思ってls -lしてみたら、シンボリックリンクでした。

たぶんシンボリックリンクのリンク先を切り替えることで複数のjavaを切り替えているのかなー…?と思いました。

以上、メモです。

iPodTouchからMacintoshに写真を読み込んだ

iPodTouchからMacintoshに写真を読み込みました。最初分からなかったのですが、オンラインのユーザーズガイドを読んだら、「iPhotoを使用して読み込む」と書いてあったのでiPhotoを使ったらiPodTouchから写真の読み込みが出来ました。以上、メモ。

emacs24.1をコンパイルしました

emacs24.1がリリースされた、ということでしたので、取得してコンパイルしました。ミラーサイトから取得したtar.gzファイルをgzipとtarで展開して、


./configure --with-ns --without-x
make bootstrap
make install

で、nextstepディレクトリの下にEmacs.appがコンパイルされましたので/Applicationsの下にコピーして使っています。以上です。

bashのlsの色変えた

ターミナルではbashを使用しているのですけれど、lsの色を変えて表示するようにしてみました。

$HOME/.bash_profileに、


# 色変える
export CLICOLOR=1
export LSCOLORS=exfxcxdxbxegedabagacad

で記述。

Safari5でTopSitesにページ追加

Safari5でTopSitesにページ追加。ブックマークに追加するときに、追加先でTopSitesが選べる。以上、メモ。

MacOSX Lion + Soundflower + Audacityで録音

MacOSX Lion + Soundflower + Audacityで録音のメモ。

Soundflowerを立ち上げる
2chのBuild-in Outputを選択することで下の設定してもヘッドホンにも音が回ってくる。
下でOS → Soundflowerに回しているサウンドをヘッドホンにも回しているのかなと思っているけれどいまいち仕組みを分かっていない。

システム環境設定 - サウンド、出力でSoundflower(2ch)を選択する。

AudacityのPrefences、Recording - DeviceをSoundflower(2ch)に設定する。

以上でAudacityで録音できる。メモ。

MacMini mid 2011を無線LAN親にしてiPodTouchをインターネットに接続できるようにした

MacMini mid 2011を無線LAN親にしてiPodTouchをインターネットに接続できるようにした。

システム環境設定 - 共有 - インターネット共有、「相手のコンピュータが使用するポート」はWifiを選択。WEPキーを設定して共有開始。

iPodTouchの設定でWifi、MacMiniの共有名を選択してWEPキーを入力して、設定終わり。

Radikoアプリケーションだのらじる★らじるアプリケーションだのをダウンロードして聞いています。以上。

bashでfor

PC-UNIXの方とどちらに記述するか迷ったけれど、作業自体はMacOSXでやったのでこちらに記述。bashでfor。Ubuntu道場見ながら記述しましたです。


for i in `ls *.wav`; do ffmpeg -i $i -vn $i.mp3 ; done

こんな感じでした。ではでは。

OSX LionでperlとSayKotoeri2でTwitterのタイムラインを読み上げさせてみた

OSX LionでperlとSayKotoeri2を使ってTwitterのタイムラインを読み上げさせてみました。MacでTwitterのタイムラインを読み上げさせるというページを参考にさせて頂きました。

OAuthで認証しに行っているので起動する度にPINコードを入力します。また、無限ループですので、止めたいときにはCtrl-Cで止めています。メモ。


#!/opt/local/bin/perl

use strict;
use Net::Twitter;

my $twitter = Net::Twitter->new(
    traits => ['API::REST', 'OAuth'], 
    consumer_key => '[コンシューマーキーを記述]', 
    consumer_secret => '[コンシューマーシークレットを記述]', 
);

print 'access this url : '.$twitter->get_authorization_url."\n";
print 'input verifier PIN : ';

my $verifier = <STDIN>;
chomp $verifier;

my($at, $ats) = $twitter->request_access_token(verifier => $verifier);

my $array_ref;
my $i;

while(){

#TLを取得

    $array_ref = $twitter->home_timeline();

    $i = 0;
    foreach my $ref( @$array_ref ) {
	$i = $i + 1;
	my $username = $ref->{'user'}{'name'};
	my $line = $ref->{'text'};

	$username =~ s/\(//g;
	$username =~ s/\)//g;
	$line =~ s/\(//g;
	$line =~ s/\)//g;
	$line =~ s/【/ /g;
	$line =~ s/】/ /g;
	#$line =~ s/@//g;
	#$line =~ s/://g;
	$line =~ s/ //g;
	$line =~ s/ //g;

	print $username;
	print $line;

	system("saykotoeri2 -b 30 \"$username\"");
	system("saykotoeri2 -b 30 \"$line\"");
	sleep(3);
	# 5件でループを抜ける。
	last if ($i >= 5);

    }

    system("saykotoeri2 -b 30 \"終わり\"");
    sleep(120);

}

2016/07/28追記。コマンドインジェクション対策はしてありますが、bashの脆弱性などあり、sayコマンドをforkする部分は各自工夫されて下さい。

OSX Lion+iTunes10.04->Ubuntu10.04+mt-daapdに音楽ファイルをsamba経由でコピーして

OSX Lionだけに限った話ではないかもしれない。メモ。

OSX Lion+iTunes10.04の音楽ライブラリ(もともとはWindowsXP+iTunes10.04でリッピングしたものが多くてwavファイルが大半)を、Ubuntu10.04+mt-daapdにコピーした際、wavファイルについて、iTunes Music Library.xmlに書いてある情報がとりこぼされてmt-daapdに認識された。

とりこぼされている音楽ファイルはどんなファイルだろう…と見ていったら、ディレクトリ名に「ラリーズ」とか「レコード」とか「ショパン」とか濁点や破裂音(?)が含まれていた。

OSX Lionのインストールされているマシンに格納されているiTunes Music Library.xmlをperlスクリプトでURLデコードして見てみたら、ファイルパスが「レコート゛」「ショハ゜ン」と表示された。どうやら、UTF-8には、NFCとかNFDとか濁点や破裂音のデータの持ち方にいろいろ種類があって、OSX Lionのファイルシステムでは「レコート゛」でデータを持つけれど、Ubuntu10.04では「レコード」でデータを持つらしい。

sambaでファイルをコピーする際、この違いの変換をしてくれるみたいなのだけれど、iTunes Music Library.xmlの内容は変換していないので、ここでアンマッチが起き、mt-daapd的には「レコート゛」なんてディレクトリありませーん、ということになっていたのではないかと自分的に思っている。

で、グーグルでいろいろなサイトさまを回らせていただいて、慣れないperlで変換スクリプト書いてみました。切り貼り見え見えの、かっこわるいスクリプトだけれど、自分で使う分にはまずはコレ程度、と思っています。メモで残しておきます。

使ったperlはMacPortsでインストールしたもの。バージョンは"This is perl 5, version 12, subversion 3 (v5.12.3) built for darwin-multi-2level"。


#!/opt/local/bin/perl

#use utf8;
#use Encode;
#use Unicode::Normalize;
use URI::Escape;
use Text::Iconv;

# ファイルを読む
open INFILE, '<', $ARGV[0];

# ファイルを一行ずつ読んでいく
$outStr = "";
$tmp = "";
while ($line=<INFILE>){

    $tmp = $line;
    $tmp =~ s/\t//g;

    # ロケーションのとこだけデコードして合成してエンコードする。
    # <key>Location</key><string>file://localhost/Users/...</string>
    # のstringのとこだけ。
    if ($tmp =~ /^<key>Location<\/key>/) {

	$tmp =~ tr/\+/ /;

	# デコードする
	$tmp =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;

	# Ubuntuに合わせて合成
	$tmp = Text::Iconv->new('UTF-8-MAC', 'UTF-8')->convert($tmp);

	# タグ削る
	$location = $tmp;
	$location =~ s/<key>Location<\/key>//g;
	$location =~ s/<string>//g;
	$location =~ s/<\/string>//g;


	# エンコードする
	$location = uri_escape($location);
	$location =~ s/%2F/\//g;
	$location =~ s/%3A/:/g;
	$location =~ s/%0A//g;
	$location =~ s/%26%2338%3B/&#38;/g;
	#$location =~ s/([^\w ])/'%'.unpack('H2', $1)/eg;
	#$location =~ tr/ /+/;

	# タグつける
	$tmp = "<key>Location</key><string>" . $location . "</string>";
	
    }
	
    $outStr = $outStr . $tmp;
}
close(INFILE);
# 標準出力に書き出す
print STDOUT $outStr;

以上です。

OSX LionでモニタEIZO FlexScanL367を使っていて

PowerMacG5 + Leopard + EIZO FlexScanL367から、MacMini Mid 2011 + Lion + EIZO FlexScanL367に乗り換えたとき、なんだかフォントが前の環境に比べてがたがたに見えるなーと思っていた。

でもまあいいかーとそのまま使用していたのだけれど、これを解消する方法があると知ったのでメモ。

コンソールで、


defaults -currentHost write -globalDomain AppleFontSmoothing -int 2

で設定。int 2の数字でサブピクセルレンダリングという値を設定しているらしい。非apple製ディスプレイでサブピクセルレンダリングを設定するを参考にさせていただいた。以上、メモ。

MacPortsの検索


port search [アプリケーション名]

で、検索できました。メモ。

OSX LionのFinderでカット&ペースト的なキーボードショートカット操作

Lion以前のMacOSXで出来るかどうかは分からない。たぶん出来そうな気がしている。

Command+Cでコピー、ペーストする際にOption+Command+Vするとコピー先にファイルがコピーされ、コピー元のファイルは消える。

ちなみにLionだと、コピー先に同名のファイルが存在した場合警告が出て、「両方残す」を選択すると、**のコピー、的な名前に変えてペーストされる。これはこれで結構便利。以上、メモ。

MacPortsでbzrをインストール


sudo port selfupdate
port upgrade outdated
sudo port install bzr

で、/opt/local/binにbzrがインストールされた。

bzrでemacs24のソースを取得した


bzr whoami "自分の名前 <メールアドレス>"
bzr init-repo --2a emacs24/
cd emacs24
bzr checkout http://bzr.savannah.gnu.org/r/emacs/trunk trunk

でソースを取得しました。2011/07/24に取得したら、24.0.50だった。

OSX LionでEmacs24.0.50をCoCoaを使うようにコンパイルした

2011/07/24現在。MacPortsでbzrをインストールして、MacPortsのアプリケーションが格納されている/opt/...に優先的にパス通して、bzrでemacsのソースツリー落としてきて、READMEとINSTALL読んで、


./autogen.sh
./configure --with-ns --without-x
make bootstrap
make install

でコンパイルが通った。また、ATOK 2010 for Macでインライン入力も出来ている。とりあえず使えていますので、安定版がリリースされたらそちらを使おうかと思います。ではでは。

現状の.emacs。ちょっとフォントの大きさが大きいかなーと思うのでこれからいろいろいじってみる予定。


;; Japanese setting
;;(when (equal emacs-major-version 21) (require 'un-define))
(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(setq file-name-coding-system 'utf-8)

;; load-path
(setq load-path (append (list (expand-file-name "~/emacs_lisp")) load-path))

;=============
; cyclebuffer
;
;=============
(autoload `cyclebuffer-forward "cyclebuffer" "cycle forward" t)
(autoload `cyclebuffer-backward "cyclebuffer" "cycle backward" t)
(global-set-key [?\C-,] 'cyclebuffer-forward)
(global-set-key [?\C-.] 'cyclebuffer-backward)

;; Ctrl-h
(global-set-key "\C-h" 'delete-backward-char)

;; IM
(setq default-input-method "MacOSX")

;; moji
(column-number-mode 1)

;; font
(let* ((size 14)
         (asciifont "Menlo")
         (jpfont "Hiragino Maru Gothic ProN")
         (h (* size 10))
         (fontspec)
         (jp-fontspec))
    (set-face-attribute 'default nil :family asciifont :height h)
    (setq fontspec (font-spec :family asciifont))
    (setq jp-fontspec (font-spec :family jpfont))
    (set-fontset-font nil 'japanese-jisx0208 jp-fontspec)
    (set-fontset-font nil 'japanese-jisx0212 jp-fontspec)
    (set-fontset-font nil 'japanese-jisx0213-1 jp-fontspec)
    (set-fontset-font nil 'japanese-jisx0213-2 jp-fontspec)
    (set-fontset-font nil '(#x0080 . #x024F) fontspec)
    (set-fontset-font nil '(#x0370 . #x03FF) fontspec))

OSX LionでEmacs23.3をCoCoaを使うようにコンパイルした

2011/07/22現在では、以下の手順でコンパイルは出来たけれど日本語入力が出来なかった。原因は自分としては把握していない。とりあえずメモ。

XCodeは4.1。

Gnu FTP Mirror Listで自分から近いミラーサーバーを探してemacsのtarを取得する。(GNU Mirror List)

インライン入力パッチとXCode4系でコンパイルできるようにするパッチを取得する。(macemacsjp - Revision 584: /inline_patch/trunk)


$ export CFLAGS="-fno-pie -O2"
$ export LDFLAGS="-fno-pie"

$ gzip -cd emacs-23.3.tar.gz | tar -xvf -

$ cd emacs-23.3

$ patch -p 0 < ./../inline_patch-svn/emacs-inline.patch
$ patch -p 0 < ./../inline_patch-svn/font.patch
$ patch -p 0 < ./../inline_patch-svn/xcode4.patch

$ ./configure --with-ns --without-x

$ make bootstrap
$ make install

でEmacs.appをコンパイルできたけれど、ことえりやATOK2010 for Macで日本語入力が出来なかった。現在はデフォルトでインストールされているemacs22をターミナルから使用している。メモ。

Lionでのマウスのスクロールホイールに関して

Microsoft Basic Optical Mouse v2.0を使用。たぶん他の大半のマウスでも同じ話だと思う。

既に情報としてWEBで見ていましたが、スクロールホイールの動作が自分が前に使っていたLeopardとは逆になっていました。システム環境設定-マウス-スクロールまたは移動するときに、コンテンツを指で…なチェックを外すと、Leopardを使っていたときと同じ動作になりました。メモ。

ちなみにこれ外すとMagicTrackPadを使ったときはどうなるんだろうかなーと思いました。たぶん指の動きと反対方向に動くのかなあ。MTP持ってないので分からないです。それでは。

AppStoreからXCodeをダウンロードしたとき

OSX LionではXCodeはAppStoreからダウンロードするらしい。で、AppStore使うの初めてだったのでよくわからなくてごちゃごちゃいじっているうちにダウンロード中にAppStoreを終了させてしまった。

ダウンロードをやり直すのは、購入済み、から一覧を表示して再開、でダウンロードのやり直しが出来ました。

また、ダウンロードが終了した後、AppStoreの表示では「インストール済み」になっていたのですが、ハードディスクの中にgccもmakeも見あたらなかったので、なんでだろうと/Applicationの下を見たら、Install XCodeが格納されていました。このアプリケーションを起動したら、XCodeのインストール処理が走りました。

インストールの途中で、「インストールを続けるには次のアプリケーションを閉じてください iTunes」というメッセージが表示された。iTunes立ち上げていなかったので、なんでだろうと思って調べたら、iTunesHelperも含めてのメッセージだった模様。

アクティビティモニタから、iTunesHelperをkillしたらインストールが続行され、完了した。メモ。

MacOSXのXCodeの最新版をダウンロードする

OSX LionはMacAppStoreからのダウンロード販売のみ、ということみたいなので、たぶん「XCodeはインストールDVDからインストール」ってなことは出来ないんだろうなあ、と思ったので、XCodeのダウンロードのメモ。

AppleDeveloperでアカウントにログイン。アカウント持ってない場合は、このページから登録できる。

MacDevCenter

から任意のバージョンのXCodeをダウンロードする。LionだとたぶんXCode4系になるのかなー(よく分からない)

Safari5.0.5でブックマークのエクスポート

Safari5.0.5でブックマークのエクスポートを行うには、ファイル-ブックマークを書き出す、でhtmlファイルにエクスポート出来る。メモ。

MacOSX Leopard+Safari+ATOKでCommand+Spaceで日本語入力の切り替えが出来なくなった場合

設定にもよるけれど、自分はことえり風バインドにしていて、その場合、Ctrl+Shift+Jで日本語入力にIMのモードが切り替わった。以上。

追記。Ctrl+Shift+:で英字。

WindowsXPのATOK2008からMacOSXLeopardのATOK2010にユーザ辞書移行

WindowsXPのATOK2008でユーザ辞書をテキストファイルに出力。辞書ユーティリティ-ツール-単語・用例の一覧出力で出力。

出力したファイルをLeopardに持って行く。LeopardのATOK2010で辞書ユーティリティ-ツール-ファイルから登録・削除でユーザ辞書を読み込み。

以上でユーザ辞書を読み込んだ。メモ。

MacOSX Leopardにemacs22をインストール


cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co -r EMACS_22_BASE emacs
cd emacs
./configure --with-carbon -without-x
make bootstrap
make install

で、macディレクトリの下にEmacs.appが作成されるのでそれを/Applicationsとかにコピって使用した。

ことえりでかな入力にしていると、FEPがONになっている状態でキーボードショートカットを入力すると、「C-こ」とか「C-せ」とか認識されたのだけれど、FEPをATOK for Macに変えたら現象は回避された。以上、メモ。

MacOSX Tigerにemacs22.1をインストールした

XCodeをインストールして、gccとかmakeをインストールしておく。また、emacsのソースとともに、MacUIM.patchとtransparencyも用意しておいた。


gzip -cd emacs-22.1.tar.gz | tar -xvf -
tar -xvf transparency-3.1.2.tar

mkdir carbon

cd ./emacs-22.1
patch -p0 < ./../transparency-3.1.2/transparency3.patch
cd src
patch -p0 < ./../../MacUIM.patch

cd ./../../carbon
./../emacs-22.1/configure CFLAGS="-O3 -pipe" --prefix=/Applications/Emacs.app/Contents/Resources --enable-carbon-app=/Applications --without-x
make

cd lisp
make recompile
cd ./../
make all
sudo make install

てな感じでインストールされた。以上。

ことえりで文節の伸張

Ctrl-iで文節を縮める、Ctrl-oで文節を長くする。

MacOSXでアップルメニューへのキーボードショートカット

Control-F2。

MacOSXのOperaでタブ間の移動

alt+command+←→

MacOSXのホスト名変更方法

システム環境設定-共有-コンピュータ名の編集ボタンから。

MacOSXでディスクの検証

ディスクユーティリティで、ハードディスクを選択して「ディスクを検証」ボタンを押下する。

MacOSXのキーボードショートカット

Mac OS Xのキーボードショートカットというページにキーボードショートカットが一覧されていたので便利便利。

個人的には、Dockにフォーカスを移すのがControl+F3だと知ったのが便利でした。今のところそれくらいしか覚えていないのですが、これからさらに色々調べていくともっと便利になるのではないかと思っています。楽しみです。

MacOSXにカレンダーアプリケーションをインストールしました

MacOSXにCloCalXというカレンダーアプリケーションをインストールしました。最前面の表示もできて快適です。

いとーけーのページさんから頂戴しました。

MacOSXでCD-Rにファイルを焼く

DiscBurnerという機能らしい。

ブランクディスクを入れる→デスクトップに表示されたCD-Rアイコンに目的のファイルをドラッグ・アンド・ドロップ→なんか黒と黄色のくるくるアイコンをクリックしたらディスクの作成が始まった。

以上です。

MacOSXでshaのダイジェスト

Tiger。デフォルトで入ってるopensslが使える。


openssl sha1 ファイル名

だけど、sha256が出せなかった。なので、ソースからコンパイルしてGnuPG入れた。後になって気づいたんだけれど、MacPortsで入れたほうが整合性取れて良かったなあ、と反省した。


gpg --print-md sha256 ファイル名

で、sha256でハッシュ取ってくれた。

iMacでCDドライブ開閉

OSはTiger。でも他のOSXで行けると思う。

キーボードにHHKPro2使っている。F12でCDドライブ開閉。

MacOSXでISOディスクイメージをCD-Rに焼く方法

ディスクユーティリティを使用した。ちなみに、ここで言うISOって、9660?CDだから9660なんじゃないかと思っているのだけれど…。

ディスクユーティリティにISOファイルをドラッグする→ISOイメージアイコンを選択→左上にある"ディスクを作成"アイコンをクリックする。

MacOSXの時計の表示

MacOSXは日付と時計をタスクバー以外の場所にも表示できたはず…とちょっと探したんだけれどわからなくて調べたらすぐわかった。

システム環境設定->日付と時刻->時計->

で表示する場所を「ウインドウ」としたところ時計が表示されました。下のデジタル時計/アナログ時計を適当に選んで設定。今はデジタル時計を選択している。日付が大きく見えていいかなと思ったので。

ls

Tiger.
alias ls='ls -F'を.bash_profileに記載した。

Tigerにアンチウィルスソフトをインストールした

ClamXavというソフトをインストールした。

ClamXav

からダウンロードしてインストール。

MacOSX10.4にXCode

TigerにXcodeをいれようかなと思う。

以上でインストールされました。

MacOSX10.4にffmpeg

MacPortsでインストールした。

MacPortsのインストール方法は忘れてしまいました。たぶん、./configure;make;make installで行けるのではないかなあ、とは思いますが…。また念のためですが、gccなどが必要なので、xcodeがインストールされている必要があると思います。


    sudo port install ffmpeg +lame +xvid +x264 +faac
  

flvファイルの音声部分をaiffにする。

ニコニコ動画に上がっている、ファルコムゲーのギターアレンジの動画を、aiffにしてまとめて繰り返し聴きたかったので、うp主と動画コメントでコミュニケーション取ってOKもらって、ダウンロードしてaiffに変換した。(上記の手続き、ファルコムの許諾条件には抵触していないと思うし、動画そのものやアレンジの複製権に関しても、うp主にコメントでOKもらったので上の手続きでクリアされていると思っています。なので、動機について記述してしまいます。)


    ffmpeg -i hogehoge.flv -vn hogehoge.aiff
  

MacOSXにftpサーバを動作させる

WindowsXPが動いているAT互換機のノートPCと、MacOSXが動いているPowerPCのアップル社製コンピュータの間でデータをやりとりしたかったので。

MacOSX 10.4.11。
システム環境設定→「インターネットとネットワーク」の「共有」→FTPサービスにチェックをつける。

ユーザの作成や、既存のユーザのパスワードの変更は、「システム」の「アカウント」より。


[目次]