プログラミング
詰碁印刷のためのプログラム - diary 六帖 の続き。今日はSGFのパーサーを作るところまでで時間切れで終了。来週はcanvasに問題図と正解図を描いて並べて表示したい。 kickzone/SGFPrint · GitHubSGFファイル仕様参考 SGFt@C`® 次のサイトを参考にし…
PHPはクラスに存在しないプロパティをセットすることができる。これだけでもかなりフリーダムすぎる仕様だと思う。 その上、クラスに存在しないプロパティが呼び出されたとき専用のメソッドを定義することができる。それが、__get()と__set()である。 b = 1;…
Programming PHPと並行してjQueryのオンラインマニュアルを読んでいる。 jQuery Learning Center 今日とても変わっている実装だと思ったのはこちら。getterとsetterについての解説だ。 Working with Selections | jQuery Learning Centersetterはセレクタで…
"横浜市", '埼玉県' => "さいたま市", '千葉県' => "千葉市", '茨城県' => "水戸市", '静岡県' => "静岡市" '山梨県' => "甲府市" ); $removed = array_splice($kencho, 2, 2); // 千葉、茨城が消える $tokyo = array('東京都' => "新宿区"); array_splice(…
次のコードは動作しない。 なぜなら、上のコードならstrposは0を返すので、0とfalseは==や!=のような演算子なら等しいものとして扱われてしまう。さらに厳格な===や!==を使わなければならない。
仕事でAccessVBAを使っていて1点ハマったことがあった。CSVファイルのカンマ区切りの指定したカラムの文字列を取り出す、という私ではない誰かが作った関数に欠陥があるので、その調査をしていた。 '※記述は変えてあります Public Function mid_between_com…
$変数名() で変数名と同じ名前の関数をコールできる。 これは次のコードと等しい。 何でもありだな。$whichの名前をもつ関数がなければ当然ランタイムエラーなので、次のようにしてエラーを予防できる。
PHP5で導入されたタイプヒンティング。関数の引数に型情報を書くことができる。
詰碁を印刷できるプログラムが必要になった。 日本中で売られている詰碁集には限りがあり、買い占めていけばいずれ全部解き終わってしまう日がやってくる。 インターネット上、特に中国には大量のsgfファイルがあり、これを扱えるようになれば10年は詰碁に不…
PHPの関数は全てグローバル空間に配置されるため、どこからでも呼び出せる。 ただし、外側→内側の順で呼び出さなければならない。おそらく、外側の関数が呼び出されて初めて、内側の関数がグローバル空間に配置される、ということなのだろう。 function oute…
ランキングアニメーション・仕様書 - diary 六帖 の仕様を変更し、クロスドメインAjaxの威力を試すため、javascript内で完結できるようにした。前回書いたPHPのコードはとりあえず保留。 まず骨子を作る。 http://rokujo.esy.es/Responsive/ranking.html 23…
PHPはwhileループやforループを何段階も抜ける記述方法がある。break 2; のように、breakのあとに数字を指定してやればよい。 ふつーの構造化プログラミング言語だったらbreakする前にフラグを立てて、1段階外でフラグを見てもう1段階抜けるって書き方をす…
PHPのビット演算子は数値だけでなく文字列にも適用が可能だそうな。 いったい何に使えるというのだ。。
PHPの可変変数に次ぐフリーダム仕様、文字列インクリメント。文字列aをインクリメントするとbになる。フハハ怖かろう。しかも繰り上がりもする。 $str = "a"; $str++; echo $str; //b $str = "z"; $str++; echo $str; //aa $str = "K9"; $str++; echo $str; …
PHPには多数の演算子がある。その優先順位は21段階にも及ぶ。 ※上のものほど先に実行される 演算子の優先順位 結合時の評価演算子追加情報 結合しない clone new clone および new left [ array() right ** 代数演算子 right ++ -- ~ (int) (float) (string)…
通常、ajax通信は同一ドメイン内でしか行えない。自サーバーのphpスクリプトなどを実行し動的に結果を取得するのに使われる。 しかし、ドメインを飛び越えてajaxを動作させる方法があるらしい。jquery.xdomainajax.js というスクリプトを使用する。jquery.fn…
Programming PHP で仕様の総確認をしていたら、「可変変数」なるものに出会った。なんじゃこりゃ? 簡単に言うと、「変数名を格納する変数」ということらしい。 $arg1 = "nannkadaru-"; $arg2 = "arg1"; echo ${$arg2}; // nannkadaru- 応用例は、例えば連番…
使用技術 jQuery+PHP+HTML5/CSS?(PHP) 頻繁に更新されるランキングサイトにアクセスしスクレイピング、順位+タイトル+リンク+値を上から10番までゲットしてJSONで返す(jQuery)1分ごとにajaxで↑のスクリプトを実行する。タイトルをキーにして、順位に変動…
PHPの技術が近いうちに必要になる事態になってしまったので、次の書籍を読んで知識総ざらい中。Programming PHP: Kevin Tatroe, Peter MacIntyre, Rasmus Lerdorf: 9781449392772: Amazon.com: Books読み始めたらいきなり打ちひしがれた。こんな記法ありなの…
Writing tests can seem tedious at first, but they really do help you find problems faster—especially regressions (breaking something that used to work). Painful experience teaches all developers that even the teeniest change, which they sw…
EclipseはPHP+JavaScriptの特訓のときにインストールしたから、Aptena Studioプラグインを導入してHTML5/CSS3に対応させた。 参考:Eclipse ウェブプロジェクト開発プラグイン Aptana Studio - System House ACT タグはある程度知っているけど、HTML自体を根…
5/21に運よく(運悪く)小田急線で人身事故が起きたため、小田急線の運行情報をゲットするスクリプトが書けた。 import lxml.html import requests #<BR>タグを改行文字に変換して文字列化 def repBR(element): rawstr = lxml.html.tostring(element) repstr = raw…
さあ日曜だ運行状況通知プログラムの続き、と思ったが、一つ欠点があることが分かった。そもそもこのプログラムは電車が遅延したり止まったりしないと、対象サイトの構造が分からないからスクレイピングのためのコードが書けないし、テストもできない!最近…
retDict = {} lines = ['東海道線', '中央線快速電車'] import lxml.html import requests try: target_url = 'http://traininfo.jreast.co.jp/train_info/kanto.aspx' target_html = requests.get(target_url).content root = lxml.html.fromstring(target_…
今日家に帰る時間の直前に中央線快速が止まり、とても困った。そこで列車運行情報通知アプリを作ろうと思い立った。新聞記事自動取得アプリの前哨戦だ。 即席で考えた仕様は次の通り。 ・メインのモジュールは1分ごとに運行情報サイトを巡回する ・サイトの…
自作ニュースアプリで一番重要視するのが、記事の読みやすさと操作性だ。 太宰治 走れメロス 著作権の問題があるので、青空文庫のテキストを例にとる。若干マージンがとってあるものの、これをフルHDのディスプレイで表示すれば1行に100文字以上表示されてし…
ニュースサイトの重さ、リソースの無駄遣いには毎日困っているので、早く作ってしまいたい。概観的な仕様を今のうちに作成しておく。 目標は、まるで新聞のように整形したHTML/CSSをオフラインで作成すること ボタン一発で、巡回しているニュースソースの記…
いまPythonを学んでいるのは、スキルの向上に加えて言語の簡潔さ・拡張の容易さ・ライブラリの充実性に惹かれたためだ。とくにPythonはデータ解析処理ライブラリが充実している。 金融商品のテクニカル分析による未来予測にはあまり意味がないと思っている。…
Introducing Pythonに載っていた。次のXMLを読み込むと大抵のPCが落ちるか、動作不安定になる。
mistery = '\U0001f4a9' を表示しろと言われた。。UNICODEはフリーダムなのですね。