六帖のかたすみ

DVを受けていた男性。家を脱出して二周目の人生を生きています。自閉症スペクトラム(受動型)です。http://rokujo.org/ に引っ越しました。

プログラミング

詰碁印刷2

詰碁印刷のためのプログラム - diary 六帖 の続き。今日はSGFのパーサーを作るところまでで時間切れで終了。来週はcanvasに問題図と正解図を描いて並べて表示したい。 kickzone/SGFPrint · GitHubSGFファイル仕様参考 SGFƒtƒ@ƒCƒ‹Œ`Ž® 次のサイトを参考にし…

PHPイミフ仕様3 __get(), __set()

PHPはクラスに存在しないプロパティをセットすることができる。これだけでもかなりフリーダムすぎる仕様だと思う。 その上、クラスに存在しないプロパティが呼び出されたとき専用のメソッドを定義することができる。それが、__get()と__set()である。 b = 1;…

jQuery, getterとsetterのヘンテコ動作

Programming PHPと並行してjQueryのオンラインマニュアルを読んでいる。 jQuery Learning Center 今日とても変わっている実装だと思ったのはこちら。getterとsetterについての解説だ。 Working with Selections | jQuery Learning Centersetterはセレクタで…

PHPイミフ仕様2 連想配列に順序がある

"横浜市", '埼玉県' => "さいたま市", '千葉県' => "千葉市", '茨城県' => "水戸市", '静岡県' => "静岡市" '山梨県' => "甲府市" ); $removed = array_splice($kencho, 2, 2); // 千葉、茨城が消える $tokyo = array('東京都' => "新宿区"); array_splice(…

PHPイミフ仕様1 strpos

次のコードは動作しない。 なぜなら、上のコードならstrposは0を返すので、0とfalseは==や!=のような演算子なら等しいものとして扱われてしまう。さらに厳格な===や!==を使わなければならない。

VBA:それは全角と半角、大文字小文字を区別しないアバウトな言語

仕事でAccessVBAを使っていて1点ハマったことがあった。CSVファイルのカンマ区切りの指定したカラムの文字列を取り出す、という私ではない誰かが作った関数に欠陥があるので、その調査をしていた。 '※記述は変えてあります Public Function mid_between_com…

PHPフリーダムその4、可変変数による関数コール

$変数名() で変数名と同じ名前の関数をコールできる。 これは次のコードと等しい。 何でもありだな。$whichの名前をもつ関数がなければ当然ランタイムエラーなので、次のようにしてエラーを予防できる。

PHPのゆるーい型付け、タイプヒンティング

PHP5で導入されたタイプヒンティング。関数の引数に型情報を書くことができる。

詰碁印刷のためのプログラム

詰碁を印刷できるプログラムが必要になった。 日本中で売られている詰碁集には限りがあり、買い占めていけばいずれ全部解き終わってしまう日がやってくる。 インターネット上、特に中国には大量のsgfファイルがあり、これを扱えるようになれば10年は詰碁に不…

PHP、入れ子関数

PHPの関数は全てグローバル空間に配置されるため、どこからでも呼び出せる。 ただし、外側→内側の順で呼び出さなければならない。おそらく、外側の関数が呼び出されて初めて、内側の関数がグローバル空間に配置される、ということなのだろう。 function oute…

サーバー不要!クロスドメインAjax実験

ランキングアニメーション・仕様書 - diary 六帖 の仕様を変更し、クロスドメインAjaxの威力を試すため、javascript内で完結できるようにした。前回書いたPHPのコードはとりあえず保留。 まず骨子を作る。 http://rokujo.esy.es/Responsive/ranking.html 23…

フリーダムPHPその3、多重ループを抜ける

PHPはwhileループやforループを何段階も抜ける記述方法がある。break 2; のように、breakのあとに数字を指定してやればよい。 ふつーの構造化プログラミング言語だったらbreakする前にフラグを立てて、1段階外でフラグを見てもう1段階抜けるって書き方をす…

フリーダムPHPその2 ビット演算子を文字列に…

PHPのビット演算子は数値だけでなく文字列にも適用が可能だそうな。 いったい何に使えるというのだ。。

PHP、文字列インクリメント

PHPの可変変数に次ぐフリーダム仕様、文字列インクリメント。文字列aをインクリメントするとbになる。フハハ怖かろう。しかも繰り上がりもする。 $str = "a"; $str++; echo $str; //b $str = "z"; $str++; echo $str; //aa $str = "K9"; $str++; echo $str; …

PHP、演算子の優先順位

PHPには多数の演算子がある。その優先順位は21段階にも及ぶ。 ※上のものほど先に実行される 演算子の優先順位 結合時の評価演算子追加情報 結合しない clone new clone および new left [ array() right ** 代数演算子 right ++ -- ~ (int) (float) (string)…

クロスドメインAjax

通常、ajax通信は同一ドメイン内でしか行えない。自サーバーのphpスクリプトなどを実行し動的に結果を取得するのに使われる。 しかし、ドメインを飛び越えてajaxを動作させる方法があるらしい。jquery.xdomainajax.js というスクリプトを使用する。jquery.fn…

PHPの可変変数

Programming PHP で仕様の総確認をしていたら、「可変変数」なるものに出会った。なんじゃこりゃ? 簡単に言うと、「変数名を格納する変数」ということらしい。 $arg1 = "nannkadaru-"; $arg2 = "arg1"; echo ${$arg2}; // nannkadaru- 応用例は、例えば連番…

ランキングアニメーション・仕様書

使用技術 jQuery+PHP+HTML5/CSS?(PHP) 頻繁に更新されるランキングサイトにアクセスしスクレイピング、順位+タイトル+リンク+値を上から10番までゲットしてJSONで返す(jQuery)1分ごとにajaxで↑のスクリプトを実行する。タイトルをキーにして、順位に変動…

PHPコードバラバラ殺人事件

PHPの技術が近いうちに必要になる事態になってしまったので、次の書籍を読んで知識総ざらい中。Programming PHP: Kevin Tatroe, Peter MacIntyre, Rasmus Lerdorf: 9781449392772: Amazon.com: Books読み始めたらいきなり打ちひしがれた。こんな記法ありなの…

even the teeniest change, which they swear could not possibly affect anything else, actually does

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…

HTML5/CSS3超初心者レベルからのスタート

EclipseはPHP+JavaScriptの特訓のときにインストールしたから、Aptena Studioプラグインを導入してHTML5/CSS3に対応させた。 参考:Eclipse ウェブプロジェクト開発プラグイン Aptana Studio - System House ACT タグはある程度知っているけど、HTML自体を根…

プラグイン的pythonプログラミング

5/21に運よく(運悪く)小田急線で人身事故が起きたため、小田急線の運行情報をゲットするスクリプトが書けた。 import lxml.html import requests #<BR>タグを改行文字に変換して文字列化 def repBR(element): rawstr = lxml.html.tostring(element) repstr = raw…

運行状況通知プログラムの欠点

さあ日曜だ運行状況通知プログラムの続き、と思ったが、一つ欠点があることが分かった。そもそもこのプログラムは電車が遅延したり止まったりしないと、対象サイトの構造が分からないからスクレイピングのためのコードが書けないし、テストもできない!最近…

JR東日本のサイトから運行情報をゲットするスクリプト1

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を学んでいるのは、スキルの向上に加えて言語の簡潔さ・拡張の容易さ・ライブラリの充実性に惹かれたためだ。とくにPythonはデータ解析処理ライブラリが充実している。 金融商品のテクニカル分析による未来予測にはあまり意味がないと思っている。…

Billion Laughs

Introducing Pythonに載っていた。次のXMLを読み込むと大抵のPCが落ちるか、動作不安定になる。

Introducing Python Chapter7の宿題

mistery = '\U0001f4a9' を表示しろと言われた。。UNICODEはフリーダムなのですね。