それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

2006-01-01から1年間の記事一覧

HTMLの補完制作中

HTMLの補完制作してみました。面倒だこいつ。ElementとAttributeとNodeValueを区別するのが面倒で、Elementツリーの解析が面倒。ドキュメントを先頭から順に読んでいって、スタックに積んでいけば良いんですが、close省略できるElementがあったり、IE(HTML 4…

Pythonで可変変数、可変関数

PHPなら構造がシンプルなので、 $methodname = "loadfilter"; $someClass->$methodname( $fff , );等と書ける。これはPHPの非常に便利なところ。これを使わないとPHPのソースはすっきりしない。ClassをXMLで定義するなんて無茶も出来るし、SimpleXMLモジュー…

PythonでWin32comを使えない

るびまを見た。Win32OLE 活用法 【第 7 回】 ほかの言語での COM さっそく、やってみた。。。動かないOnz。調べてみた。win32comは標準ではインストールされないらしい。RubyMagazineには書いてなかったのだが。記述漏れかな。 Python for Windows 95, 98, N…

for ( i =0;i

Generatorってつまりそういうことだ。Iteratorを作る(generate)ってことらしい。 間違ってるんかな。あした調べる

Python 2.3の新機能を見直してみる。

今日覚えたことは、Python2.3で追加された機能らしい。 スライスの拡張(1) >>>#みんなのPythonでは .reverse()をつかってた >>>a = range(10) >>>a.reverse() [9,8,7,6,5,4,3,2,1,0] >>>#スライスの拡張を使えばSimple >>>a[::-1] [9,8,7,6,5,4,3,2,1,0] >>>…

みんなのPythonのサンプルコードは動かない。

ふー疲れた・・・・なんなんだこの本は。 ちなみにウチの実行環境はPython2.5。これが原因か?そんなこともないだろう。もっと根本的。 今日ハマったのはThreadのサンプルコード #!/usr/bin/env python # -*- coding: utf-8 -*- #以下のURLからコピー #http:…

EmEditorのマクロ たった1行で(3)

document.selection.text = document.selection.text.replace( new RegExp( "\n", "g" ), "<br />\n" );見ての通り、選択範囲の改行をに変える。 スクリプト言語でマクロ書けるって嬉しいよね。

EmEditorのマクロ たった1行で(2)

PerlやPHP書いているとオブジェクトのメンバ呼び出しに、" . "ではなく " -> "を使う。これが意外に面倒だ。JavaやRuby、Pythonのように、書きたい。Shift押すの面倒だ。そこで、1行マクロ。 document.selection.Text="->";これを、[ Ctrl + . ]に割り振る…

EmEditorのマクロ たった1行で(1)

Microsoft FrontPageなどのHTMLエディタは、[ Shift + Enter ] を押せば改行が挿入される。ちょっとうらやましい。それマクロとして実行してみよう。 document.selection.Text = "<br />\n";これだ。たった1行だけど、重宝する。

EmEditorでブログを投稿する

EmEditorでブログ書きたい!!そんな欲望に流されました。 ブログかいてるとさ、ブラウザの戻るでフォームでうっかり消しちゃったり、アレコレ面倒なんだよね。コピーペーストも面倒だし、範囲選択が面倒だし。ソースコードのために、エスケープやら・・・面…

秀丸が妬ましい。

秀丸のどこが良いかがいまいちわからない。Vectorみてると、秀丸だけ、秀丸マクロフォルダがあってちょっと悔しい。EmEditorのマクロをもっと増やそうぜ。なぜEmEditorのマクロはカテゴライズされないか? VBScriptだから JavaScriptだから 公開するほどのこ…

Pythoのデフォルトエンコード

たとえば、ユニコードを無視して文字を書く #coding=shift_jis items = [ ["日本語", "ja"], ["英語", "en"], ["フランス語", "fr"]] for i,j in items: print i,j ###出力### #日本語 ja #英語 en #フランス語 frこれは通る、一方で次のコードはユニコード…

pysqliteはutf8以外でエラーになる?

みんなのPython で、pysqliteを使ったサンプルコード*1がある。これをShift_JISで動かしてやる #coding=shift_jis import sqlite3 #郵便番号 postnum = [ ["東京都千代田区", "100-0000"], ["東京都千代田区皇居外苑", "100-0001"], ["東京都千代田区飯田橋"…

mixiチェーン日記とリンクポリシー

Web2.0が無かった時代。SNSがまだ無かった時代。その頃のネットを考えると、リンクポリシーで無断リンク禁止と書いてる人に、「リンクさせてください。」とメールを送るのは、「mixiで友達登録お願いします」と言うに等しい行為な訳でした。 だから、無断…

高木さんの自宅の日記で無断リンクの話

野村総研がリンクする際には文書で申し出よというので文書で申し出た はずいぶん子供っぽい。(自治体の担当者いじめるのも相当子供っぽい) で、このブログ、結論が抜けてませんか。ライセンスの話が。著作物を公開するときのライセンスの話。リンクが云々と…

配列の比較

配列は、比較できる。前から順番に調べていき、違いが見つかったらそこでストップする。そこから後ろは評価されない。前から二つずつ値を取り出して調べる。 (1, 2, 3) < (1, 2, 4) [1, 2, 3] < [1, 2, 4] 'ABC' < 'C' < 'Pascal' < 'Python' (1, 2, 3, 4) <…

配列のループにEnumerateとIterate

配列をforループで順次取り出すには配列毎に便利なメソッドが用意されているSequenceの場合 a = "goooooooooooogle" for x,y in enumerate( a ): print x, " = ", y Dictionaryの場合 a = {"Perl","Larry","Python":"Guido", "ruby":"Matz"] for x,y in a.it…

Pythonこれだけは覚えとく

PythonのString (逆順は-1から) Pythonの配列 (配列から配列を簡単に取り出せる[1:2]) Pythonの関数 (デフォルト値は柔軟) PythonのLambda (関数は遅延出来る Pythonの可変引数 (配列が引数でもちゃん分解してくれる) JavaScript はデフォルト値などの処…

リストを文章で理解させる

filter()を使わず、map()を使わず、値をチェックする。そんな方法。かなり特徴的 配列から、偶数を取り出し、各要素を2乗する処理。 さっきのmap()とfilter()を使うとこうなる def f(x): return x%2 == 0 seq = filter( f, range(1,10) ) seq = map( lambda…

tupleとlist

タプル。配列の一種。 ここらでPython配列まとめ。Python配列には2種類ある A 可変長 B 固定長 可変長 一般的な配列、他のスクリプトと同じ。 Array List 配列 Dictionary 連想配列 固定長な配列 C言語っぽい配列 文字列(string) tuple Set と分類されてる…

変数を削除する

del x del y[1:8] del z[:] と書く。以上。

関数の引数は配列で渡す

ここがちょっと特徴的か? 関数のデフォルト値 def f( i, foo = "bar" ): print foo print i f(10) # # bar # 10 関数のデフォルト値2 def f( i, foo="bar", hoo="book" ): print i print foo print hoo f( 100, hoo="comic" ) #100 #bar #comicデフォルト…

PythonのLambda

lambda で関数への参照を返せる def f(n): """lambdaサンプル""" return lambda x : x + n JavaScriptだとこんな感じかな? var f = function(n){ return function(x){ return n+x; } } JavaScriptの関数をイメージすると理解しやすかった。

なぜPythonを始めるか?

PHPのPEARがいまいち。 PerlのCPANはMSDN並の巨大ダンジョンで困った。 俺の中でCPANとMSDNはラストダンジョンとエキストラダンジョン 宝箱いっぱいなのでたまに冒険に出かける 日常的に使いたくない Pythonアイコンがかっこいい。Rubyのアイコンはダサイ。 …

PythonのDocStringの書き方

def function() : """This is a Sample function.""" print 関数宣言 def の次行に書く。 先頭は大文字にする 末尾はピリオドで終わる 文字列は引用三つ """ でquoteする

with 構文のサポート

ECMAScriptには with 文というモノがあるwithを使えば、名前空間を変えることが出来る デフォルトの名前空間は window #type="text/javascript" with( window.document.location ){ alert("test");//関数が見つからないエラーになる window.alert("test");//…

例外を投げる

throw Exceptionと書きたいところだが、raise とかく raise Excetion , "エラーです" raise Exception("エラーです")なぜ2番目の書き方がゆるされるか? ExceptionがClassだから。ExceptionがClassということは、ユーザー定義のExceptionを利用できる class …

条件分岐に使える 例外処理

私は、Javaでtry 〜 catch を条件分岐の代わりに使うのは非推奨と習った。富豪プログラミングの立場では推奨かもしれない。Pythonでは条件分岐に使えと言わんばかりの使用になっているPythonの [try 〜 catch] try: except A: except : else: finally: のセ…

なんにつかうの? filter(), map(), reduce()

正直何に使うんだろう?と一瞬わからなかった。こいつら。filter, map, reduce。理解すると便利なので覚えよう。 配列のそれぞれに対して、Callbackしてくれる関数群。 prototype.js の Enumerable だと思えばいい。 PHPだとarray_walk()。 GOFでパターンのI…

"." や ".." を使った、パッケージの相互参照

親子のときは、簡単にImportできるんだけど、従兄弟くらいになると面倒だ。パッケージ構造 = ディレクトリ構造 だとすれば [..] (親) や [.](カレント) のような記述は出来ますか?出来ます。ただしPython 2.5以降 # "." がたくさん出てくるので 注意 from .…