六帖のかたすみ

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

プログラミング

outlookのアイテムからヘッダ内容を読み込む

メモoutlookをC#から操作するとき、メールのヘッダ内容だけ読み込みたいことがありますが、outlook付属のインターフェースにはヘッダを表すプロパティがありません。 長い時間をかけて調査したら、次のサイトが引っかかりました。 [Solved] Outlook add-in i…

覚書

基本機能:縦書き表示、スタイルシートをリアルタイム適用、epub読み込み・書き込み 執筆者向け機能:表記ゆれチェック、数字の表記チェック、語句の一括変換 編集支援機能:チャット、強調表示、メモ できたらいいな:原稿をサーバー上で一括管理、差分表示…

Windows + CakePHP3 でMySQLを動作させるまで

開発がしたくてフレームワークなるものを初めて触ったので、それなりにメジャーっぽいCakePHPというものをインストールしてみました。 ブックマークチュートリアル 公式サイトの↑に従って、 getcomposer.org まずこれをインストールして、 Composer Windows …

C#で半角カナを全角カナに変換

半角カナはダサいので全角カナにしましょう。という依頼を受けました。.NETでそんなメソッドあるんかいな。 調べたらありました。 ひらがなとカタカナ、全角と半角の変換を行う: .NET Tips: C#, VB.NET C#からならVBで使えるレガシーメソッドを使えるように…

WindowsでiPhone開発もできた

rokujo.hatenadiary.com 上記記事の続きです 5GBという超大なXCodeを無事にインストールしたけど、Playgroundを開いてみて、さあhello worldを入力!というところで、= が入力できない!!なぜか _ アンダースコアになる!これじゃ代入できない! 色々調べた…

Windows内にMac環境をつくる

iPhoneアプリを開発したい。WindowsPCしか持ってないけどAndroidアプリはSDKもAndroid Studioもあって楽勝で開発できるんだから、iPhoneもいけるだろ?と思っていたら、どうもそうじゃないらしいです。Macがないと開発できないそうです。なにそれアップルの…

VirtualBox + ubuntuを導入

単価の高いエンジニア案件をゲットするためには最新技術に触れておかないといけません。今日から読書時間を半分に削り、毎日1時間かけて技術の勉強をすることにしました。 Pythonプロフェッショナルプログラミング第2版 作者: ビープラウド 出版社/メーカー:…

python: 偶数列だけ取り出す方法・ドイツ語はLatin-1に変換するしかないのか?

数か月ぶり、久々に趣味でプログラミングです。今日は料理中にシャドウイングするドイツ語の教材を作るために、ある教材から読み上げ用のテキストを抽出するためのツールを作りました。言語はpythonです。教材を作るだけなら手動でコピペしまくってもできま…

語学が最強の趣味である件について

久しぶりに語学学習を再開しようと、まず自分用ソフトのデータベース修復から始めました。 自分用ソフトは登録した問題を最後に解いた日付から一定時間経過すると自動的に復習してくれる仕組みなのですが、休むことを想定していないため1日放置すると次の日…

数独ソルバー続々

昨日も数独ソルバー野続を作業していましたが、もう無理だ!プログラムにバグがあって必ずフリーズしてしまう!と頭がパンクして、昨日は京王のダイヤDBを作って眺める作業に逃避してしまいました。 疲れたので答え見てやる!とweb検索すると引っかかったの…

京王ダイヤ改正とか

TrainNavi2 更新しました。2015/09/25に行われた京王線系列のダイヤ改正に対応しました。 なぜこんなものを作るかと言うとダイヤを目で見て愛でるためです。時刻表は昔から好きです。おそらく時刻表は数字で表現されているからでしょう。何駅から何駅までは…

数独ソルバー

最近webプログラムを全く作成しておらず腕がなまって仕方ないので、新聞で見たシルバーウィーク数独特集!みたいな記事に触発されて数独ソルバーを作ってみました。時間もないので即興で2時間半しかかけてません。ですので予想が必要な難しい問題は一切でき…

「LoaderLockが検出されました。」がうっとおしい

C++アプリケーションと.NETアプリケーション(C#, VB.NET)を混在して成り立っているプロジェクトで頻繁に出現するこのウインドウ。 長い長い時間をかけてデバッグしてきたのにこのメッセージのせいで処理が先に進まなくなると絶望的な気持ちになります。デバ…

jQuery: showとhideの正体

Introduction to Effects | jQuery Learning Centerlearn.jquery.com 1 2 3 4 5 // Instantaneously hide all paragraphs $( "p" ).hide(); // Instantaneously show all divs that have the hidden style class $( "div.hidden" ).show(); When jQuery hide…

自分用単語記憶ソフトを開発して1年、6000語以上学習できた

私の趣味の一つに外国語学習があります。かれこれ4年くらいになります。 震災後からスタート きっかけは東日本大震災でした。地震後からさまざまな情報が氾濫し、毎日ニュースにくぎ付けになっていました。近隣のスーパーから水が無くなったり、住んでいる地…

jQuery: イベントバブルをストップ

恥ずかしながらイベントバブルについて知らなかったので次の記事で学習しました。 Introducing Events | jQuery Learning Centerlearn.jquery.com イベントバブルとは あるイベント(クリックしたとか)が発生すると、そのイベントはすべての親要素に通知され…

jQuery: イベントにnamespace!?

jQuery Event Basics | jQuery Learning Centerlearn.jquery.com jQueryはイベントにネームスペースを導入し、利便性の向上を図っています。 Namespacing Events For complex applications and for plugins you share with others, it can be useful to name…

Windows8.1(64bit)+PHP環境でLZHファイルを解凍したい

あるwebサービスを作ろうとして、LZHファイルの自動展開が必要になったので方法を調べて試行錯誤していましたが、難しかったのでメモします。 PHPからはexecコマンドを使って、コマンドプロンプトと同じ仕様でwindowsプログラムを走らせることができます。 …

PHP: パフォーマンス改善のためにすべきこと

• Avoid printf() when echo is all you need. • Avoid recomputing values inside a loop, as PHP’s parser does not remove loop invariants. For example, don’t do this if the size of $array doesn’t change:for ($i = 0; $i < count($array); $i++) {…

先駆者がいた。。

電車が線路のどこを走っているのかを地図上にリアルタイム表示する「鉄道Now」を使ってみたgigazine.net 発想が私の作ったTrainNavi2と全く同じでした。 http://rokujo.esy.es/TrainNavi2/index.html こいつは去年、覚えたてのJavaScript+PHP+MySQLのプログ…

C++で書かれたDLLにC#からポインタを渡す

C++で書かれたDLLにポインタを渡したいことがあります。例えば次のような関数がエクスポートされていたとします。 void WINAPI ConvertToShort(char* pstr, short* pret); これをC#側から使用したい。char* は文字列なので C# 側からは string を渡してやる…

C++で作るDLLにはDEFファイルをつけるべき

DLLファイル関連でハマりました。C++で作ったDLLで、 _declspec(dllexport) を使ってエクスポートした関数をC#側から読み込もうとしても、うまくいきません。「エントリ ポイントがありません」と言われて動きません。原因を調べたところ、dllexportの仕様で…

jQuery: 『getter→引数なし、setter→引数あり』の思想

How do I replace text from the 3rd element of a list of 10 items? | jQuery Learning Centerlearn.jquery.com ふつうのオブジェクト指向なプログラミング言語に馴染んだ人間にとって、次のコードは直感に反します。 // This doesn't work; text() return…

詰碁印刷(SGFPrint)4 WindowsのファイルシステムはSJISだった!?CSSで改ページ・印刷時だけ表示したくないアイテムの設定

詰碁印刷3 碁盤と碁石と手順の描画、javascriptで配列の簡単なシャローコピーの作り方 - 六帖のかたすみ の続きです。 ようやく公開できるレベルになったのでwebサイトにアップロードします。 六帖webアプリ kickzone/SGFPrint · GitHub 今日一番苦労したの…

jQuery: CSSプロパティのセットは非推奨!?

jQueryの公式ガイドを読んでいたらちょっとびっくりする記述がありました。 CSS, Styling, & Dimensions | jQuery Learning Centerlearn.jquery.com // Setting CSS properties. $( "h1" ).css( "fontSize", "100px" ); // Setting an individual property. …

jQuery: jQueryオブジェクトの変数名には$を付けるという慣習

The jQuery Object | jQuery Learning Centerlearn.jquery.comjQueryオブジェクトはラッパーです。セレクタで要素を選択するごとに、毎回新規作成されます。商品がレジ袋で包まれるようなものです。 var logo1 = $( "#logo" ); var logo2 = $( "#logo" ); al…

詰碁印刷3 碁盤と碁石と手順の描画、javascriptで配列の簡単なシャローコピーの作り方

詰碁印刷2 - 六帖のかたすみ の続きです。ソースはこちら kickzone/SGFPrint · GitHub碁盤と手順を表示できるようになりました。使っている技術は大したことはなく、easeljsでゴリゴリ碁盤や碁石を描いているだけです。 一番苦労したのはノードの全分岐をゲ…

PHP: GETとPOSTの思想的違い

フォームなどからサーバーにデータを渡す時に使用する GET と POST は、主に形式的な違いのみが取り上げられがちです。私もそのように理解していました。しかしProgramming PHPにはそのように書いてありませんでした。 形式的な違い GETはURLの後に?をつけて…

jQuery, エレメント作成時には予約語のclassに注意

Manipulating Elements | jQuery Learning Centerlearn.jquery.com jQueryはDOMエレメントを動的生成できます。私の探していた機能のうちの一つです。ところが、次のコードを見ると不自然なダブルクォーテーションが見つかります。 // Creating a new elemen…

PHP、traitsってどう使うのさ?

traitsとは、PHP5.4で実装された複数のクラスに実装する共通メソッドを定義するための仕組み。Programming PHPを読んでもtraitsの使いどころがわからない。スーパークラスじゃダメなの? web検索すると、疑問にズバリ答えてくれるブログが見つかった! PHP5.…

詰碁印刷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…