雲雀は高く空を舞い このページをアンテナに追加 RSSフィード

「ひよこは高く空を舞い」について

2009-11-30

[]文字列をaとbとcとdで分割したい 文字列をaとbとcとdで分割したい - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - 文字列をaとbとcとdで分割したい - 雲雀は高く空を舞い 文字列をaとbとcとdで分割したい - 雲雀は高く空を舞い のブックマークコメント

文字列をseparatorで分割するときはStrings.split()メソッドを使う。

text = u'おはようございます。それでは行ってまいります。横浜は雲が出ているものの、晴れ間がのぞいています。'
seped = text.split('')
print seped
[u'おはようございます',
u'それでは行ってまいります',
u'横浜は雲が出ているものの、晴れ間がのぞいています'

文字列を複数の位置で分割したいときは?

  1. splitをループで使う
  2. 正規表現のre.split()メソッドを使う
text = u'おはようございます。それでは行ってまいります。横浜は雲が出ているものの、晴れ間がのぞいています。'
seped = re.split(u'。|、', text)
print seped
[u'おはようございます',
u'それでは行ってまいります',
u'横浜は雲が出ているものの'
u'晴れ間がのぞいています'

区切り文字を出力に含みたいときはpatternをグループ化すればおk

seped = re.split(u'(。|、)', text)
トラックバック - http://chick.g.hatena.ne.jp/allegro/20091130

2009-11-28

[]PythonからSQLite3への日付型変数の登録 PythonからSQLite3への日付型変数の登録 - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - PythonからSQLite3への日付型変数の登録 - 雲雀は高く空を舞い PythonからSQLite3への日付型変数の登録 - 雲雀は高く空を舞い のブックマークコメント

PythonからSQLiteにデータを登録するに当たり,datetime.date型とdatetime.datetime型をISO日付形式,ISO タイムスタンプ形式に変換する適合関数がデフォルトで登録されている.それ以外の形式に,あるいはそれ以外の型を適切な型に変換して登録したいときには適当な適合関数を書いて登録すればよい。

import sqlite3
import datetime, time
sqlite3.connect(":memory:")
cur = con.cursor()

cur.execute("select ?", (datetime.datetime.now(),))
print(cur.fetchone()[0])
2009-11-28 11:56:02.498758



sqlite3の日付処理関数については以前にまとめたけど再び。

日付処理関数はstrftime, datetime, date, time, Juliandayがあって、このうち datetime, date, time, Juliandayはそれぞれstrftimeの特別な場合。


書式はstrftime(format, timestring, [modifier, ...])datetime(timestring, [modifier, ...])など。


modifierにutcを指定した場合は,与えられたtimestringをローカルタイムゾーンでの日時として解釈しUTCの日時に変換して表示する.ローカルタイムゾーンがJSTの場合はtimestringから9時間引かれた時間が返る.


逆にlocaltimeを指定した場合は与えられたtimestringをUTCでの日時として解釈しローカルタイムゾーンの日時に変換して表示する。ローカルタイムゾーンがJSTの場合はtimestringに9時間たされた時間が返る.




cur.execute("select date(?)", (datetime.datetime.now(),))
print(cur.fetchone()[0])

2009-11-28
cur.execute("select time(?)", (datetime.datetime.now(),))
print(cur.fetchone()[0])

11:59:48
cur.execute("select datetime(?)", (datetime.datetime.now(),))
print(cur.fetchone()[0])

2009-11-28 11:59:48
cur.execute("select datetime(?, 'utc')", (datetime.datetime.now(),))
print(cur.fetchone()[0])

2009-11-28 02:59:29
cur.execute("select datetime(?, 'localtime')", (datetime.datetime.now(),))
print(cur.fetchone()[0])

2009-11-28 20:59:11

RizalRizal2014/07/09 08:56I'm impressed by your writing. Are you a professional or just very knoewedgeabll?

LevonLevon2014/07/22 08:01A piece of <a href="http://stosri.com">erioutidn</a> unlike any other!

DianaDiana2014/07/28 07:15Holy Tolode, so glad I clicked on this site first! http://lczmzwdrs.com [url=http://tstikgdimx.com]tstikgdimx[/url] [link=http://qosuuplpkx.com]qosuuplpkx[/link]

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091128

2009-11-21

[]iPythonで日本語を表示する iPythonで日本語を表示する - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - iPythonで日本語を表示する - 雲雀は高く空を舞い iPythonで日本語を表示する - 雲雀は高く空を舞い のブックマークコメント

iPython 0.10(with Python 2.6.3.iPythonSciPyNumPyと一緒に入れた (or入った)でユニコード文字列がうまく取り扱えない例。

こちらにより修正しました。

s = u'あいうえお'
print s
<もじばけもじばけ>

ユニコード1文字(3byte)を1byteずつの3ユニコード文字列としてしまうことに由来するバグだとか。

修正方法は以下。iplib.pyの2200行目付近を以下のように修正。一行目をコメントアウトし、以降の文字列をユニコード文字列に変更するだけ。これで無事表示されるようになる。

-        source=source.encode(self.stdin_encoding)
-        if source[:1] in [' ', '¥t']:
-            source = 'if 1:¥n%s' % source
+       #source=source.encode(self.stdin_encoding)
+        if source[:1] in [u' ', u'¥t']:
+            source = u'if 1:¥n%s' % source

ちなみにiplib.pyportを使ってSciPyとかと一緒に入れた僕の場合は、/opt/local/var/macports/software/py26-ipython/0.10_0+scientific/opt/local/
Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/IPython/ipapi.py にありました。

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091121

2009-11-18

[]GUIDE使用時、guiパーツ間で使い回すデータを保存するにはguidata(hObject, handles)を使う GUIDE使用時、guiパーツ間で使い回すデータを保存するにはguidata(hObject, handles)を使う - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - GUIDE使用時、guiパーツ間で使い回すデータを保存するにはguidata(hObject, handles)を使う - 雲雀は高く空を舞い GUIDE使用時、guiパーツ間で使い回すデータを保存するにはguidata(hObject, handles)を使う - 雲雀は高く空を舞い のブックマークコメント

タイトルで言い尽くした間が無きにしもあらず。

今までは、

set(handles.guiparts, 'UserData', data)

などとしていたんだけど、

  • 1つのパーツに1形式のデータしか保存できない
  • どのパーツにどのデータが保存されているか分からない

ということで不便だし、スマートじゃないなと思っていたんだけど、こういう時はguidata(hObject, handles)を使えばよいのだった。

guidata(object_handle,data) は、変数 data を GUI データとして保存します。

object_handle が Figure のハンドルでない場合、オブジェクトの親 Figure が使用されます。data は、任意の MATLAB 変数ですが、通常は、必要に応じて新しいフィールドの追加が可能な構造体とします。

MATLAB Documentation

% hObject  : handles.<the_guipart>
% handles  : handles

% store
handles.userdata1 = userdata1;
handles.userdata2 = userdata2;
guidata(hObject,handles)

% load
handles = guidata(hObject)

[]git入門メモ (1) ローカル編 git入門メモ (1) ローカル編 - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - git入門メモ (1) ローカル編 - 雲雀は高く空を舞い git入門メモ (1) ローカル編 - 雲雀は高く空を舞い のブックマークコメント

ここら辺を参考にしました。

f:id:allegro:20091117165308p:image

gitの概念図 from Git - openSUSE

何はともあれ初期設定

git config --global user.name "allegro"

git config --global user.mail allegro@allegrovivace.jp

ローカルリポジトリの作成

mkdir pysom

cd pysom

git init

git remote add origin git@github.com:git_user_name/pysom.git

READMEファイルの作成

このファイルの中身がGitHubのプロジェクトトップに表示される

touch README

無視するファイルの設定

リポジトリディレクトリに.gitignoreを作成.

# General Noise

.*

!.git*

# OSX noise

.DS_Store

~/.git/info/excludeに統一設定可能

# git-ls-files --others --exclude-from=.git/info/exclude

# Lines that start with '#' are comments.

# For a project mostly in C, the following would be a good set of

# exclude patterns (uncomment them if you want to use them):

# *.[oa]

# *~

/data

/cache

/includes

ローカルリポジトリにコミット

新規ファイルがない場合

git commit -a -m 'comment here'

追加したファイルがある

git add -A

git commit -a -m 'comment here'

削除したファイルがある

git rm filename

git commit -a -m 'comment here'

GitHubにプッシュ

gut push origin master

(origin master)は省略可能

[] git入門 (2) githubとやりとりする  git入門 (2) githubとやりとりする - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク -  git入門 (2) githubとやりとりする - 雲雀は高く空を舞い  git入門 (2) githubとやりとりする - 雲雀は高く空を舞い のブックマークコメント

gitのリモートリポジトリをローカルへ。

cloneの作成

git clone git@github.com:pneu/chat.git

このときchat/という作業領域も確保される

ブランチを切る

git branch <branchname>

ブランチの確認

git branch

* master

branch1

*がアクティブなブランチ

切ったブランチへのスイッチ

git checkout <branchname>

リモートリポジトリにローカルリポジトリの変更を反映

git push origin <branchname>

リモート<origin>のブランチをローカルリポジトリ<master>にコピー

git fetch origin <remote-branch>:<new-local-branch>

追記

コメントいただきました。

clmemo@aka: Git で他の人と共同開発する

とかを見るとちょっとわかりやすい、ような。ちょっとまだ概念をちゃんとつかめてないんだけど、

git fetch

でリモートリポジトリの情報を更新(?) (この動作は、自分自身の(master含む)ブランチについては何も変更しない)。このあと必要事項だけcheckoutするとか何とか。

WEB+DB PRESS Vol.50がgit特集だったようなので入手してこよう。


後はここら辺見る

ふ2009/11/18 01:51"git fetch origin <src>:<dst>" は間違いではありませんが古風ですね。現代のgitなら、単に"git fetch"して、origin/<branch>から使う、というのが標準的だと思います。

ネタ元のウェブページを更新してもらったら良いかも知れません。

allegroallegro2009/11/18 10:43ありがとうございます!そこら辺はちゃんと押さえておかないと使用時に混乱しそうなので勉強します、ありがとうございました!

pneumasterpneumaster2009/11/18 20:03こんにちは。
gitコマンドでの挙動を調べつつ追記いたします。

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091118

2009-11-17

[][]Numpy速い! Numpy速い! - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - Numpy速い! - 雲雀は高く空を舞い Numpy速い! - 雲雀は高く空を舞い のブックマークコメント

Pythonの行列・配列ライブラリNumpyは、高速に行列演算が可能とのことだったので,果たしてどのくらい高速なのかしらと言うことで、2個の100次元ベクトル間の距離を計算してみた。距離の計算方法は次の二つ(に無名関数バージョンを追加)

計算環境はPython 2.6 (64bit, on MacOSX 10.6, MacBookPro, 2.53GB C2D, 4GB mem)

def getdistsA(unitA, unitB):
        #dim = len(unitA)
        dist = sqrt(sum([(unitA[x] - unitB[x])  for x in arange(dim)]))
        return dist[0]

def getdistsB(unitA, unitB):
        return sqrt(dot((unitA-unitB)**2, E))
getdistsC = lambda A,B:sqrt(dot((A-B)**2, E))

これを10k回計算してかかった時間を比較した。

tt0 = datetime.datetime.now()
for i in arange(1000*10):
    A = random.random((dim,1))*10
    B = random.random((dim,1))*10
    d= getdistsA(A,B)

tt1 = datetime.datetime.now()
t0 = tt1 - tt0

したところ、リスト内包形式で計算した場合は、10.69秒。行列演算した場合は関数形式で0.343秒、無名関数で0.347秒でした。(ちなみに、距離計算無しでAとBを10k回定義したところ0.231秒でした。

という感じで、NumPyを使った場合計算次第で、使わない場合の3%位の計算時間で実行が可能でした。早い。

ちなみに、matlabで同じ事をした場合0.536秒だったのでもしかしたらPythonが遅いだけかもしれません。


dim = 100
E = ones(dim,1);
funct= @(A,B) ((A-B).^2)*E
tic 
for i = 1:1000*10
   A = rand(1,dim);
   B=rand(1,dim);
   C=funct(A,B);
end
toc
トラックバック - http://chick.g.hatena.ne.jp/allegro/20091117

2009-11-16

som grid som grid - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - som grid - 雲雀は高く空を舞い som grid - 雲雀は高く空を舞い のブックマークコメント

1) 普通のrectangle lattice.最近傍点(d=1)は4点。次点はd=sqrt(2)(4点)でその次はd=2(4点)

f:id:allegro:20091116211942p:image

2) 偶数行を1/2だけずらして、縦方向の距離をsqrt(3/4)倍する

f:id:allegro:20091116211941p:image

3) 適当に線を足す

f:id:allegro:20091116211940p:image

4) hexagonal lattice.最近傍点(d=1)は6点。次点はd=sqrt(3)(2?)でその次はd=2(4?)。

f:id:allegro:20091116211939p:image

続きを読む

[][]バックグラウンドで関数を実行する バックグラウンドで関数を実行する - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - バックグラウンドで関数を実行する - 雲雀は高く空を舞い バックグラウンドで関数を実行する - 雲雀は高く空を舞い のブックマークコメント

バックグランドで関数を実行するには%bg python_statementを使う

バックグランドで実行しているものを確認するにはjobs.jobs_runかな?

ちなみにiPython上でのスクリプトの実行は%run -i foo.pyバックグランドでスクリプトを実行するには%bg _ip.magic('run -i foo.py')

[][]モジュールのリロードとディープリロード モジュールのリロードとディープリロード - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - モジュールのリロードとディープリロード - 雲雀は高く空を舞い モジュールのリロードとディープリロード - 雲雀は高く空を舞い のブックマークコメント

モジュールを再読込する場合はreload。モジュールないでimportされてるモジュールまで含めてリロードする場合はdreload

[][] 2009-11-16 - 雲雀は高く空を舞い を含むブックマーク 2009-11-16 - 雲雀は高く空を舞い のブックマークコメント

NumPyに関する適当にリンクをまとめる

SciPyについては何ができるのかあんまり把握してない…

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091116

2009-11-15

[][]numpy for matlab users numpy for matlab users - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - numpy for matlab users - 雲雀は高く空を舞い numpy for matlab users - 雲雀は高く空を舞い のブックマークコメント

この二つがすごい参考になる。

以下この二つからの適当な写し。

matlabnumpy
a(:,1)a[:,1]
[a; b]vstack( (a, b))
size(a)a.shape

[]loadmap loadmap - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - loadmap - 雲雀は高く空を舞い loadmap - 雲雀は高く空を舞い のブックマークコメント

Initialize

  • map initialize
    • shape
      • sheet <ok>
      • toroid
      • sphere
      • cylinder
    • lattice
      • rectangle <ok>
      • triangle
      • hexagon
  • unit initialize
    • random initialize <ok>
    • linear initialize

Training

  • distance calc
    • euclidean dist <ok>
    • city dist
    • 測地線距離
  • training method
    • sequencial <ok>
    • batch
  • neighborhood function <ok>
  • learning ratio function <ok>
  • training phase
    • rough tune
    • fine tune
  • online, growing, supervised, semi-supervised, etc...

Visualize

  • codebook visualization
    • 2d visualization <ok>
    • 2-d projection
  • u-matrix <ok>
トラックバック - http://chick.g.hatena.ne.jp/allegro/20091115

2009-11-12

[]hsmc hsmc  - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - hsmc  - 雲雀は高く空を舞い hsmc  - 雲雀は高く空を舞い のブックマークコメント

errorurlsからpostを取得。JSON Errorがずいぶんな量になるので実行時は何らかの形で分割すると良いかも。

r = salvage2.register_errorfiles()
errorurls = r.collect_urls()

type = errorurls.keys()[0]
posts = []
eurl0 = []
eurl = []

for url in errorurls[type]:
    try:
        post = r.get_a_post(url=url)
    except:
        eurl0.append(url)
    if post:
        posts.append(post)
    else:
        eurl.append(url)
    time.sleep(3*random.random())

あとこの、eurlの処理はどうするんだっけか…

[]error on Adobe Unit Types.osax (Snow Leopard) error on Adobe Unit Types.osax (Snow Leopard) - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - error on Adobe Unit Types.osax (Snow Leopard) - 雲雀は高く空を舞い error on Adobe Unit Types.osax (Snow Leopard) - 雲雀は高く空を舞い のブックマークコメント

最近何か、Macの調子があまりよろしくないなーと思ってconsole眺めていたら、iPhoneの同期中に Adobe Unit Typesのえらーが出てるのを発見

09/11/12 8:25:37 [0x0-0xd50d5].com.apple.iTunes[7019] 2009-11-12 08:25:37.642 osascript[7096:607] Error loading /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types: dlopen(/Library/ScriptingAdditions/Adobe Unit Types~.osax/Contents/MacOS/Adobe Unit Types, 262): no suitable image found. Did find:

Apple Script関係の何かだとか。インストールされているのが32bit版で64bit appからロードしようとしてこけてる見たい。

解決策はこちら。こちらから最新版をダウンロードして /Library/ScriptingAdditionsに入れればオッケー。

som_unit_coords  som_unit_coords - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク -  som_unit_coords - 雲雀は高く空を舞い  som_unit_coords - 雲雀は高く空を舞い のブックマークコメント

Input

topology

  • topology struct from som_set or map struct
  • map size vector

lattice

  • rectangular or hexagonal

shape

  • sheet
  • cylinder
  • toroid

Output

[munits x k(dimmention)]

See also

som_unit_dists

som_unit_neighs

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091112

2009-11-11

[]オブジェクト指向な書き方 at Matlab 2008a (2) プロパティアクセス オブジェクト指向な書き方 at Matlab 2008a (2) プロパティアクセス - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - オブジェクト指向な書き方 at Matlab 2008a (2) プロパティアクセス - 雲雀は高く空を舞い オブジェクト指向な書き方 at Matlab 2008a (2) プロパティアクセス - 雲雀は高く空を舞い のブックマークコメント

set, get methodを使う事で、classのプロパティにアクセスした際に何らかの処理を実行させることが出来る

methods
function set.<propertyname>(obj, value)
obj.propertyname = value;
disp('value was set!')
end

function value = get.<propertyname>(obj)
value = obj.propertyname;
disp(num2str(value))
end
end
a = classA;
a.propA = 4;
> value was set!

b = a.propA;
> 4


プロパティ set または get アクセスメソッド内からに限り、プロパティ値の設定、取得を行うことが可能です。set または get メソッドから他の関数を呼び出すことはできません。その関数から、プロパティ値にアクセスすることはできません。

リファレンスにはこう書いてあるんだけど、最後の「その関数」は、どの関数なんだろう…

[] get EXIF info  get EXIF info - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク -  get EXIF info - 雲雀は高く空を舞い  get EXIF info - 雲雀は高く空を舞い のブックマークコメント

exif情報を得るにはEXIFライブラリを使う

sudo port install py26-exif

import exif

fotofile = './test.jpeg'
exif = exif.process_file(open(fotofile,'r'))

あるいはPILでもできるとか。ただちょっとkeyの名前がわかりづらい。というかわからない

import Image

image = Image.open(fotofile)
exif = Image._getexif()

[] get image from web and save to local file  get image from web and save to local file - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク -  get image from web and save to local file - 雲雀は高く空を舞い  get image from web and save to local file - 雲雀は高く空を舞い のブックマークコメント

webから画像をダウンロードして保存するよ。urllibを使えばオッケー。

import urllib

urllib.urlretrieve(fotourl, savefilepath)

[]get RSS/Atom feed get RSS/Atom feed - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - get RSS/Atom feed - 雲雀は高く空を舞い get RSS/Atom feed - 雲雀は高く空を舞い のブックマークコメント

lxmlを使えば簡単…!とおもったけどfeed用のを使った方がもっと簡単かな、ということでfeedparserを使用。

port install feedparser
import feedparser
url = 'http://chick.g.hatena.ne.jp/allegro/rss'
feed = feedparser(url)

取得データはタグをキーとした辞書構造

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091111

2009-11-10

[]salvage script salvage script - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - salvage script - 雲雀は高く空を舞い salvage script - 雲雀は高く空を舞い のブックマークコメント

import salvage2
s = salvage2
for y in [2008, 2009]:
	for m in [t+1 for t in range(12)]:
		for d in [x+1 for x in range(31)]:
			s.main(y,m,d)

[]sfwordprocessingエラー (未解決) sfwordprocessingエラー (未解決) - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - sfwordprocessingエラー (未解決) - 雲雀は高く空を舞い sfwordprocessingエラー (未解決) - 雲雀は高く空を舞い のブックマークコメント

SnowLeopardを10.6.2にアップデートしたところ、特定書類をPagesで開くとSFWordprocessingエラーが出て落ちてしまうようになった。

ちょっと検索してみるとTigerの時代からiWorks, iLifeで出ているフォント関係の問題みたい。該当ファイルのパーミッションがおかしいとか、Toast入れ直せ(そもそも入れてない)とか言われてるけど、明確な解決策とappleからのサポート/回答は無し.…はて。

とりあえずアクセス権の修正を行ってみたけど、問題はなし。iWorksの再インストールってどうやるのかな…

1) アクセス権の修復、した(効果無し

2) OnyXでフォントキャッシュのクリア(効果無し

3) Applications/iWork' 09と~/Library/Caches/iwork関係の削除をして、iWorkの再インストール(効果無し

......OSのインストール…なの??

[]辞書.appの検索結果を新規ウィンドウで開かない 辞書.appの検索結果を新規ウィンドウで開かない - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - 辞書.appの検索結果を新規ウィンドウで開かない - 雲雀は高く空を舞い 辞書.appの検索結果を新規ウィンドウで開かない - 雲雀は高く空を舞い のブックマークコメント

default writeする

defaults write com.apple.Dictionary ProhibitNewWindowForRequest -bool TRUE

元に戻すにはFALSEにすればよい

defaults write com.apple.Dictionary ProhibitNewWindowForRequest -bool FALSE

mac123mac1232009/11/12 16:33全く同じエラーが、Keynoteでも出ています。10.6.2に上げてからで、10.6.1では起きていません。プレゼン書類が開けないと、仕事にならない...。

allegroallegro2009/11/18 10:36まったくです…、非常に困ります、が、どうも解決されてない問題のようで…困ったものです、本当に。。。

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091110

2009-11-09

[]TeX on Snow Leopard TeX on Snow Leopard - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - TeX on Snow Leopard - 雲雀は高く空を舞い TeX on Snow Leopard - 雲雀は高く空を舞い のブックマークコメント

TeXなんてもう忘れたほんとに忘れた全然覚えてない。初心者と同じ。というわけで,ええとまずはインストールから。jarticle.clsってなんだっけ…とかそこからだったまじか。

とりあえず以下にこうやったらできた、というメモ。

こちらからDrag & Drop pTeXをダウンロード、Application dirにDrag & Drop。

つづいてTeXshopのダウンロード

TeXshop内部設定の(pdf)TeXのパスを/Applications/pTeX.app/teTeX/bin, pdfTeXのLaTeXpdflatex --shell-escape, TeX+dvips+distillerのTeXを空欄にLaTeXdotexshopにする。

メニューバーのタイプセットをLaTeXTeX+DVIにして、文字コードShift-Jisにて以下の文章をコンパイル。でできた。

\documentclass{jsarticle}
\begin{document}
てすとa
\end{document}

追記

  • Shift-JISファイルを開くと文字化けする…
  • open panelから文字コードを指定して開くと文字化けしない

[]Mac OS XでNTFS formatted mediaに書き込むには Mac OS XでNTFS formatted mediaに書き込むには - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - Mac OS XでNTFS formatted mediaに書き込むには - 雲雀は高く空を舞い Mac OS XでNTFS formatted mediaに書き込むには - 雲雀は高く空を舞い のブックマークコメント

色々あるようだけど一番単純なのは /etc/fstabに記述する方法。

こちらを参考にした。

1) ターミナル上でdiskutil info /Volumes/Volume名としてVolumeのUUIDを取得。こんな感じで表示される。

Volume UUID: 79CAFC2C-44XX-0X00-X000-00X00XX00X0X

2) /etc/fstabを編集。初期状態では存在しないので適当に作成。

UUID=79CAFC2C-44XX-0X00-X000-00X00XX00X0X none ntfs rw

UUIDは取得したもの, noneはマウントポイント, ntfsはファイルフォーマット, rwはread/write。

追記

日本語ファイルがどうかとか何とかはこれから検証。

起動時につながってないと駄目かなと思ったけどそんなことはなくて、普通に外付けUSB HDDを起動後に接続しても読み書き可能。

日本語ファイルの書き込みもOK 。

なんかNTFS-3Gを使ってNTFSの読み書きを可能にした場合ジャーナリングされてない(なかった)とかていう記述を見つけたんだけど、fstabをした場合はどうなんだろう…?Mac OS XからWindowsのNTFSパーティションに書き込めるようにするには(改訂版) - パソコンよろずQ&A

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091109

2009-11-07

必要最低限のVim 必要最低限のVim - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - 必要最低限のVim - 雲雀は高く空を舞い 必要最低限のVim - 雲雀は高く空を舞い のブックマークコメント

ノーマルモード(起動時のモード)から編集可能なインサートモードへ入るには「i」、ノーマルモードに戻るには「esc

保存して終了するにはノーマルモードで「ZZ」、保存しないで終了する場合はノーマルモードで「ZQ

:wqで保存して終了、など。

その他色々詳しくは、こちらのサイトがよくまとまっているようなのでこちらを見ればよいと思う

AronAron2013/05/06 03:04At last some rationality in our little dbetae.

qffloqqffloq2013/05/08 02:08TSFykU , [url=http://bfqqcrmbadus.com/]bfqqcrmbadus[/url], [link=http://atcxpdzllnyf.com/]atcxpdzllnyf[/link], http://oxryaoonzffq.com/

qwezifqwezif2013/05/12 13:39S6N3WF , [url=http://mvwwvqucmxhr.com/]mvwwvqucmxhr[/url], [link=http://hjfwsiftwied.com/]hjfwsiftwied[/link], http://jjmckllqtvat.com/

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091107

2009-11-06

[]SQLiteにおける日付データの検索 SQLiteにおける日付データの検索 - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - SQLiteにおける日付データの検索 - 雲雀は高く空を舞い SQLiteにおける日付データの検索 - 雲雀は高く空を舞い のブックマークコメント

SQLiteの日付処理関数の出力は文字列になるのでLike句などを用いて日付の検索を行う.

like句を用いた検索

select カラム, ... from テーブル where カラム like パターン;

パターンは文字列と演算子%, _を使用できる

%
任意の0文字以上の文字列
_
任意の1文字

テーブルtest中のtimestamp型変数var1に時間データが保存されているとして

114日のデータを検索
select var1 from table where date(var) == '2009-11-04'
23時のデータを検索
select var1 from table where time(var) like '23:%'
2009年の毎月4日のデータ
select var1 from table where date(var) like '2009-__-04'

日曜日のデータ
select var1 from table where strftime('%w', var) == 0

[]SQLite3の日付処理関数 SQLite3の日付処理関数 - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - SQLite3の日付処理関数 - 雲雀は高く空を舞い SQLite3の日付処理関数 - 雲雀は高く空を舞い のブックマークコメント

日付処理関数

SQLiteの日付処理関数としてstrftime, datetime, date, time, Juliandayがある。

日付処理関数は後述の書式の文字列/数値を、日付を表す文字列(Time Strings)として取り扱う.

日付処理関数のうちstrftime(format, timestring, [modifier, ...])はtimestringをformatを書式とした文字列を返す。残りの4関数はstrftimeの特別な場合となる.

Time Strings

  • YYYY-MM-DD
  • YYYY-MM-DD HH:MM
  • YYYY-MM-DD HH:MM:SS
  • YYYY-MM-DD HH:MM:SS.SSS
  • YYYY-MM-DDTHH:MM
  • YYYY-MM-DDTHH:MM:SS
  • YYYY-MM-DDTHH:MM:SS.SSS
  • HH:MM
  • HH:MM:SS
  • HH:MM:SS.SSS
  • now
  • DDDDDDDDDD (Jurius Time Stamp or Unix Time Stamp)

ユリウス歴日は紀元前4713年1月1日正午(UTC)からの日数、Unixタイムスタンプは1970-01-01 00:00 UTCを起点とする秒

strftimeのformat

%Y
%m
%d
月はじめからの日付
%H
時間(24時制)
%M
%S
%f
SS.SSS
%J
ユリウス歴日
%s
1970-01-01 00:00 UTCを起点とする秒 (UNIXタイムスタンプ)
%j
年始からの日付
%W
年始から何週目か
%w
曜日 (日曜日を0とした日付)
%%
%そのもの

日付処理関数のmodifier

  • NNN days
  • NNN hours
  • NNN minutes
  • NNN.NNNN seconds
  • NNN months
  • NNN years
  • start of month
  • start of year
  • start of day
  • weekday N
  • unixepoch
  • localtime
  • utc

unixepochが指定された場合、与えられたDDDDDDDDDD形式のtimestringをUnixタイムスタンプとして扱う。指定されなかった場合はユリウス歴日として扱う。

localtimeが指定された場合、与えられたtimestringをUTCでの日時として解釈しローカルタイムゾーンの日時に変換して表示する。

utcが指定された場合、与えられたtimestringをローカルタイムゾーンでの日時として解釈しUTCの日時に変換して表示する。

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091106

2009-11-02

[]ちょっとめも ちょっとめも - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - ちょっとめも - 雲雀は高く空を舞い ちょっとめも - 雲雀は高く空を舞い のブックマークコメント

追記

10k(個)*30(days)*12(monthes)*2(years)のデータをdbに登録するに当たり、インサート1回ずつcommitをしていたら、5400sec(=90min)/1daydataかかっていてこれはきつい、と思っていたんだけど、1dayごとにcommitするように変えたら5sec/1daydataになった…。なんということだ…。





sqliteの書き込みが遅いな、ということでメモ。

1) commitしないで書き込めば早い (その分データベースの破壊が恐い)

2) (これは僕のプログラミングスキルの問題)データを登録する前にそのデータがdbに存在するかを select で確認するよりもunique制約をつけた方が早い

3) executemany使うとどうなのかな。

executemanyはイテレータに使える。 12.6. sqlite3 ? DB-API 2.0 interface for SQLite databases — Python 3.6.3 documentation

import sqlite3

class IterChars:
    def __init__(self):
        self.count = ord('a')

    def __iter__(self):
        return self

    def next(self):
        if self.count > ord('z'):
            raise StopIteration
        self.count += 1
        return (chr(self.count - 1),) # this is a 1-tuple

con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("create table characters(c)")

theIter = IterChars()
cur.executemany("insert into characters(c) values (?)", theIter)

cur.execute("select c from characters")
print cur.fetchall()

4) O/R mapper使え?

ここら辺はよくわからない。ググってたら2007年の記事でSQLObjectとSQLAlchemyだったらSQLAlchemyの方がよっぽど早い、とか言う記事があったりした。O/R mapperはsqlを抽象化してオブジェクトから統一的に扱えるとかそう言う感じなのかしら。チューニングとか何とかいろいろな部分はmapper層にお任せしちゃうとかなのかなー(よくわかってない)

[] 2009-11-02 - 雲雀は高く空を舞い を含むブックマーク 2009-11-02 - 雲雀は高く空を舞い のブックマークコメント

「あわせて読みたい」導入して、まだ安定してないからかいろいろなページが表示されてておもしろいんだけど、昔よく読ませていただいていた「やねしん」さんのblogが表示されててびっくり。といっても犬りんくからこっそり読んでるだけでコメントつけるだなんてとんでもないて感じだったのでこっちが一方的に読んでいるだけだったんだけど。キディグレイドとかやってた頃だよなーあのころ犬リンク界隈のブログ/テキストサイトよく巡回してたっけとか思ったら、いままたキディグレイドの続編(?)がやってるんだとか。後で見てみよう。

no title

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091102

2009-11-01

[] Ubuntu 9.10 (karmic koala) リリース  Ubuntu 9.10 (karmic koala) リリース - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク -  Ubuntu 9.10 (karmic koala) リリース - 雲雀は高く空を舞い  Ubuntu 9.10 (karmic koala) リリース - 雲雀は高く空を舞い のブックマークコメント

先日Ubuntu 9.10がリリースになった。新機能はこんな感じ。だとか。

Develop/Karmic/TechnicalOverview - Ubuntu Japanese Wiki

  • カーネル 2.6.31
  • GNOME 2.28
  • Upstartがネイティブジョブになり起動時間が短縮
  • ext4がデフォルトに
  • GRUB 2がデフォルトに
  • halの廃止
  • Ubuntu Oneとの連携機能
  • Ubuntuソフトウェアセンター
  • Firefox 3.5
  • AppArmorプロファイルの増加(evinceなど)、ufwの機能の強化(outgoing filtering)
  • IMのSCIMからIBusへの変更
Ubuntu 9.10 リリース | スラド

Ubuntu Oneはファイルバックアップサービスとかそんな感じなのかな?Ubuntuソフトウェアセンターは今までのアプリケーションの追加と削除を置き換えるものだとか。

うーん、とりあえず保留…でいいかな…。

そういえばNetBookバージョンもあるとか聞いた記憶があるんだけど、小容量版もあるのかなそれはXubuntu入れろとかそう言う話かな。

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091101
テクノラティプロフィール