びったんびったん

ユーザビリティ・プログラミングについて。

MM94 ConnectedComponent

問題文 https://community.topcoder.com/longcontest/?module=ViewProblemStatement&rd=16958&pm=14678 基本方針 順列の左端N個が確定しているとすると順列の後ろにどんな値を足しても左上N×Nの領域の値は変わらない。なのでこの確定領域の最良コンポーネ…

TCO17MMR2 AbstractWars

問題文 https://community.topcoder.com/longcontest/?module=ViewProblemStatement&rd=16928&pm=14599 ヒューリスティクス的なアイデアが色々考えられて今までで一番好きな問題。 MMおつかれさまでしたビームサーチで速攻、序盤に奪う基地の探索中終盤は100…

Chokudai Contest 3 考えたこと

問題文 A: ○×ブロック - Chokudai Contest 003 | AtCoder 5864点18位でした。 . + -ブロックひとつを異なる種類の. + -ブロックに変えてスコアが上がるようなら保持、下がるようなら元に戻す山登りをした。 遷移でスコアが変わらなくても、連結ブロック数の…

MM92 考えたこと

問題文 https://community.topcoder.com/longcontest/?module=ViewProblemStatement&rd=16857&pm=14485 MMの方針誤差ゼロの焼きなましをひたすら高速化。近傍はライトを1つ動かす。最後に極近傍山登りで微調整(こちらも誤差ゼロ)試行回数は15万回~35…

Codeforces Marathon Round1 Online Exam

問題文 http://codeforces.com/contest/684/problem/A2 タイトルのマラソンで考えたことが書いてあります。過程を書いたので長いです。 暫定スコアは77261点、暫定順位は3位でした!がんばった! 69000点 2つのアイデアが必要でした。 1.ビッ…

MM89 考えたこと

マラソン参加3回目、がっつり参加したのは初めてだけれど楽しかったです。 暫定 72.34点 15位 Python 問題文 https://community.topcoder.com/longcontest/?module=ViewProblemStatement&rd=16494&pm=10967 全部Sにしたら100%になるよねーと思って上か…

Laravel 5 のデバッグ出力

Laravel 5 でデバッグ出力する3つのやり方についてまとめる。 ログファイルに書きだす 2通りの書き方がある。 ヘルパー関数 logger(), info() 1, 'b' => 2, 'c' => 3]; logger($message); info($message); // logger()->notice($message, $context); // l…

CoffeeScript と Phaser でゲームつくったよ!

ゲーム インビジゴースト - 見えざる敵の居所を探り、迎え撃て! ソース hakomo/InvisibleGhost · GitHub 遊んでみてね。 ゲームフレームワーク Phaser を使っていて思ったことを書きたい。

Atom を設定した

Atom の正式版公開当初にさわって以来ごぶさただったのですが、最近話題をちらちら見るのでさわってみたらよかったので設定した。 Atom は主に CoffeeScript, Stylus, Slim, Markdown, メモを書くのに使うと思う。たまに Python, Ruby も。 Sublime からの乗…

ゲームを作るかもしれない

ゼロからゲームが作られていくのがわかる開発ブログにしたい。昔はゲームばかり作っていて完成したためしがないんだけど、今なら完成させられる気がする。 作るゲームはローグライクライクです。アイデアを思いついて仕様を考えているところなので、次の更新…

npm メモ

npm のコマンドを目的別にまとめています。 npm は gulp にしか使っていません。 コマンドにはエイリアスがたくさんあるので使いやすいものを選びましょう。 npm のコマンドについて調べる npm-index パッケージを探す npm install プロジェクトにパッケージ…

Fit Win の新しいバージョンを公開しました!

ここでは技術的なことを書きます。 Fit Win の詳細は下記 URL をご覧ください。 Fit Win - ウィンドウを移動・サイズ変更するフリーソフト 開発言語は C#/Slim(HTML5)/Stylus(CSS3)/CoffeeScript(JavaScript) です。ただ本ソフトは Web アプリではありません…

マウスカーソルには2つの意味がある

状態を表すマウスカーソル PC がフリーズしているときの待ちアイコンや、ペイントソフトの鉛筆や消しゴムアイコンのことです。これらのアイコンは PC やソフトの状態に応じて変化し、ユーザがマウスアクションするとどのような効果が起こるのかユーザに伝え…

C# で SetWindowsHookEx() を使うと Form がフリーズするのをごり押す

C# でマウスグローバルフックを使うと Form がフリーズします。 c# - SetWindowsHookEx and clicking minimize/maximize/close buttons on form freezing - Stack Overflow C# から直接呼び出しても、 C++ で DLL を作って呼び出してもフリーズしたので C# …

Undo の設計 - 元に戻す・戻さない操作の違い

例えばテキストエディタに文字を入力してから元に戻すと、入力した文字は消える。しかしテキストエディタでスクロールしてから元に戻しても、スクロールは戻らない。当たり前かな?じゃあコードの折りたたみはどうだろう?答えはどちらもで、 Visual Studio …

Windows 10 未満のコマンドプロンプトを Ctrl + V で貼り付け

Windows 10 でコマンドプロンプトが使いやすくなるみたいですね。 Windows 10 ほどではありませんが既存の Windows のコマンドプロンプトを Ctrl + V で貼り付けができるようにし、少しだけ使いやすくする方法を紹介します。 汎用キーバインディング変更ソフ…

Form.Close() メソッドの CloseReason は UserClosing

Form アプリケーションがどのように終了する(した)のかは CloseReason で知ることができる。 CloseReason 列挙体 (System.Windows.Forms) これの注意点として CloseReason が UserClosing になるのはウィンドウの閉じるボタンや Alt + F4 で終了するときだ…

ShowWindow(hWnd, SW_RESTORE) は Visible プロパティを更新しない

やりたいこと 最小化されていてかつ非表示なフォームがある。これを表示し元のサイズに戻したい。 バグ 状況を再現する最小のコードを書いた。元のサイズに戻すことは .NET ではできないので Win32 の ShowWindow(hWnd, SW_RESTORE) 関数を使う。 class C { …

次バージョンを決めた

自作ソフトの現バージョンは 0.3 なのだけれど次バージョンは 1.1 に決めた。 メジャーバージョンを 0.X から 1.X に上げているのは大きな機能がたくさん増えるため。 なぜ 1.0 ではなく 1.1 なのかというと 1.0 だとユーザに初公開と勘違いされるかもしれな…

動作環境をわかりやすくするためのバージョン番号

最近では OS に限らずブラウザや IDE などにサードパーティ製のソフトウェアやアドオン、プラグインなどが増えてきました。 しかしソフトウェアの動作元のバージョンアップでソフトウェアが動かなくなることもあるので動作環境を明らかにすることは重要です…

エンドユーザがソフトウェアをインストールするときに DLL の依存関係を解消してくれたらいいな

ひとつの言語にひとつのパッケージ管理システムが当たり前になりつつある昨今、エンドユーザがソフトウェアをインストールするときにもパッケージ管理システムが普及して欲しいな。 たとえ複数のソフトウェアで同じサードパーティー製 DLL が使われていたと…

インライン SVG がうまく表示されない

インライン SVG というのは HTML に直接記述できる SVG です。こんな感じ。 <body> <svg> <path /> </svg> </body> そのインライン SVG が HTML 圧縮ツールのせいでうまく表示されませんでした。というのも input タグのような閉じタグのないタグは HTML ではスラッシュがいりません(あって…

プリミティブ型や構造体の FirstOrDefault

とてもよい本でした。 C#ショートコードプログラミング第2版 【▲→川俣晶の縁側→技術関連執筆情報】 この本に null 許容型を使えばプリミティブ型のデフォルトと区別をつけられるよーって書いてありました。 var v = (new int?[] { 1, 2, 3 }).FirstOrDefault…

gulp-slim が日本語を含むファイルのコンパイルに失敗する

結論から書くと、私の環境は Windows で gulp-slim は Slim のコンパイルに Ruby 実装を使っていた。 Windows で Ruby を使うときの文字コードの問題で失敗していたようだ。 環境変数 RUBYOPT に -EUTF-8 を設定すれば成功する。 WindowsでEncoding.default_…

Stylus ではまった点

CSS プリプロセッサというと Sass と Less の2強という感じですが Stylus もおすすめですよ。 Stylus は文法も覚えやすく1日もあれば使いこなせますが2点だけはまったのでメモ。 割り算をするときはかっこでくくる margin (500px / 3) font プロパティや …

CSS3 の calc() 関数はどんなプロパティにでも使えるわけじゃない

calc() 関数を使っていて動かなくても時間を無駄にせぬようメモ。 font-size: calc(36px / 2); なぜか動きませんでした。 css3 - CSS - calc() on font-size - changing font size based on container size - Stack Overflow 英語は読めないけど駄目だよーっ…

クロージャではまったのでメモ

クロージャではまるのは C# に続き CoffeeScript で2度目なのでメモ。 やりたかったこと 4つのクロージャに0、1、2、3のそれぞれを束縛したかった。 間違い f() for f in ((-> console.log i) for i in [0...4]) # 4 # 4 # 4 # 4 CoffeeScript の性質…

グリッドレイアウトを見やすくする小技

グリッドレイアウトやカードレイアウトが流行っていますよね。でも縦と横のマージンを安易に同じにしていませんか? 縦と横のマージンが同じ場合は、まず右に読み進めて下に右に読み進めて下に…なのか、下に読み進めて右に下に読み進めて右に…なのかわかりま…

Windows 7 と Windows 8 どちらのスクリーンショットがわかりやすい?

先日 Windows 用フリーソフトを公開したのですが、ありがたいことに多数のメディアに取り上げていただきました。そのとき疑問に思ったことについて書きます。 公開した Windows 用フリーソフトです。 Fit Win - ウィンドウの移動・サイズ変更ツール どのメデ…

ひとつのファイルにひとつのクラスか複数のクラスか?

つい面倒くさがって気がつくとひとつのファイルが長くなっているので自戒の意もこめて。 ひとつのファイルにひとつのクラスのメリット クラスをまとめてひとつのファイルにするかどうかで迷わなくてすむ 読みやすくなるようクラスをまとめても、クラスが増え…