Windows でファイル作成日時をスクリプト言語から操作するために setctime.exe を作った
Windows でたくさんのファイルの作成日時を変更したくなったときに、Perl・Ruby・Python などのスクリプト言語を使おうとしたんだけど、作成日時を変更するための関数がなくて困った。 そもそも UNIX にファイルの作成日時がない stat(2) で取得できる情報のうち時刻に関するものは次の 3 つがある。 atime: 最終アクセス日時 (access time) utime:...
View Articleタッチ操作に対応した画像ビューワーをJavaScriptで作るならD3.jsが便利
スマホやタブレットで写真を表示していると、ピンチでズームしたり、ドラッグで移動したりができて便利なので、あれを Web 上で実現してみたくなった。 最近のブラウザーでは touchstart や touchmove イベントでタッチ情報を取れたり、イベントの touches でマルチタッチを扱えたりするので、実現するための基盤はそろっている。...
View Articleうちの年賀状2014
毎年恒例で、一年の最初のエントリは我が家の年賀状でのご挨拶です。 写真2つとイラストを無理矢理合成して作りました。 twitter アイコン twitter のアイコンも合わせて更新しています。 今年もよろしくおねがいします。
View ArticleWindows で Chef するときに PATH で混乱しないように専用のコンソールを作った
話題の Chef をいまさら試したくなって、手元の Windows 環境に環境を作ってみた。 http://www.getchef.com/chef/install/ からインストーラーをダウンロードしてインストールした。Cygwin を使うと無駄にはまるし、ぐぐるといっぱい出てくる「gem から入れる手順」は公式サイトでは見つからなくなっている。...
View Articleリモート デスクトップでポート番号を指定して接続する方法
Windows のリモート デスクトップは 3389 番ポートを利用している。 通常はポート番号は変わらないんだけど、ポートフォワードで別のポート番号で待機する場合がある。 たとえば、NAT で外に出ていく仮想マシンにリモートデスクトップで接続したい場合、ポートフォワードを使って、ゲストの 3389 番をホストの 13389 番などで公開することがある。 「ホスト名:ポート番号」でいける 13389...
View ArticleVagrant で作ったり壊したりできる Windows 環境を手に入れるまでの手順
最近話題の Vagrant さんは「Linux の環境を作ったり壊したりして開発とか試験が楽になるよ」と紹介されることが多いけど、Windows の環境だって作ったり壊したりしたい! いろいろ調べつつ環境を作ってみたので、その手順を共有しておく。 完成イメージはこんな感じ。コマンドプロンプトから vagrant up をしたら VirtualBox 上に Windows Server 2012 R2...
View ArticleWindows の Jenkins で JENKINS_HOME を別のフォルダーに変更する方法
Jenkins を Windows 環境に MSI ファイルで導入すると、デフォルトでは C:\Program Files (x86) にインストールされる (64 ビットの場合)。 Java の実行環境を同梱してくれていたり、自動でサービスに登録してくれたりして嬉しいのだけど、気になるのが JENKINS_HOME が C:\Program Files (x86)\Jenkins...
View ArticleConEmu 突っ込んだら Git for Windows の Git Bash がカッコよくなった
Git for Windows の Git Bash の配色がイマイチだなーと思ってググってたら、Console2 だとか ConEmu を使うと楽にできるっぽいことが、Stack Overflow とか英語のブログで見つかった。 そこで、ConEmu を試してみたら色々と幸せになった (Console2 はそのままでは日本語が使えなかった。解決方法はあるらしいけど…)。 左が Git...
View Article全角半角混在の文章で 1 行に半角何文字分あるか調べる方法
「ソースコードは 1 行あたり 80 文字以内」とか「コミットログは横幅 72 文字以内」とか、文字数に関するルールはいろいろある。 ルールを徹底するには機械的に判定したい。と思って、簡単なスクリプトを書こうとした瞬間、意外と「1 行あたりの文字数」をカウントするのが難しいことに気付いた。 たとえば、「あA」は「全角 1 文字+半角 1 文字」なので半角 3 文字分としてカウントしたい。...
View ArticleGit for Windows でレポジトリー上の CR LF を LF に変換する手順
Git for Windows では改行コードが「レポジトリー上は LF」「ワーキング ディレクトリーは CR LF」となるように、git config の core.autocrlf が true となる状態でインストールされる (インストーラーでデフォルトの [Checkout Windows-style, commit Unix-style line endings] を選択した場合)。...
View ArticleD3.js で自作クラスにイベント発行機能を追加する
D3.js を使っていると、自作クラスのイベント発行も D3.js を使いたくなる。そんなときには d3.dispatch を使うとよい。 使う側の実装 イメージしやすいように、最初に使う側のコードを示しておく。 var myButton = new MyButton(d3.select("button")); myButton.on("myclick", function(e) {...
View ArticleRuby で HTTPS 接続するときの証明書で悩んだ話
flickr の API が HTTPS のみになるというので、以前作ったスクリプトに手を入れようとしたら無駄に手こずったので、ググって得た知見をメモしておく。 Ruby 1.8 系で証明書を検証しない問題 上記のスクリプトは、さくらのレンタルサーバーにて Ruby で動かしている。 2014 年にどうかという話だけど、Ruby のバージョンは 1.8.7 である・・・。 Net::HTTP で...
View ArticleVue.js が data に渡した値を激しく書き換える件について
最近、JavaScript の MV* フレームワークの中で Vue.js が少しずつ注目を浴びてきているようであります。 5分でわかるVue.jsと、jQueryで頑張ってはいけない理由 | 株式会社インフィニットループ技術ブログ Vue.jsから手軽に始めるJavaScriptフレームワーク - Qiita 軽量でパワフルなデータバインディングMVVM, vue.jsで遊んでみた -...
View ArticleJavaScript フレームワークがデータバインディングを実現する4通りの手法
最近流行りの JavaScript MV* フレームワークは、どれもデータバインディングをサポートしているが、実現方法はフレームワークによって異なる。 この記事では、各種フレームワークがどのようにモデルの変更を検知しているかを次の 4 つのパターンに分類して紹介する。 モデル クラス方式 (Ember.js、Backbone.js、Ractive.js、Knockout.js など) 力ずく方式...
View ArticleObject.observe の死 (ECMAScript の提案取り下げ、V8 からも削除予定)
1年前の記事 JavaScript フレームワークがデータバインディングを実現する4通りの手法 では、Object.observe() について次のように説明した。 JavaScript オブジェクトが変更されたときにコールバックを呼んでくれる API データバインディングの実装が簡単になる Google Chrome には実装済み ECMAScript 7 に提案中 提案が通れば MV*...
View ArticleVisual Studio Code は JavaScript 開発が超絶便利になる可能性を秘めている!
クロスプラットフォームでオープンソースな IDE 環境、Visual Studio Code が公開されたので試してみた。 拡張を入れなくても、デフォルトで JavaScript の「自動 Lint」「Grunt、Gulp 連携」「デバッグ」が動いた。なんだかすごく便利そうな予感。 Windows 環境で起動してみたらこんな画面だった。...
View ArticleGo 言語でソースコードから画像生成する
Go 言語には画像生成する image パッケージが標準で入っている。imagemagick や GD を導入する必要がないので、気軽に画像を生成できて便利そうだったので試してみた。 ただ、標準ではピクセル単位で色を設定することしかできないので、線を引いたり色を塗ったりするには、何らかのライブラリーに頼る必要がある。...
View ArticleGo 言語でアニメーション GIF を作成する
Golang でアニメーション GIF を作る手順を 3 通り紹介します。 フレームごとの画像から生成 ビデオから生成 Go 言語で最初から生成 フレームごとの画像から生成 こんな GIF 画像があったとします (ここ より拝借)。 変換結果はこんな感じ。 生成するためのコードはこんな感じ。 package main import "image" import "image/gif" import...
View ArticleGo 言語で宇宙旅行風のアニメーション GIF を作った
宇宙旅行風のアニメーション GIF を Golang で生成してみました。完成品はこちら。 ソースコードはこの記事の末尾に掲載しています。以下では使ったライブラリーやテクニックを簡単に説明します。 draw2d を使って描画する Golang の標準ライブラリーだけでは複雑な図形を描画するのは難しいので、draw2d...
View Article小学一年生向けの「けいさんカード」アプリを作った話
子どもが小学校に入学して、毎日、ちょっとした宿題が出るわけですが、その中でちょっと手間がかかったのが 計算カードの宿題 でした。 こんな感じの計算カードの中から親が問題を選んで、子どもに答えていってもらう・・・という宿題です。 どこが面倒なのか カードをあらかじめシャッフルしておくと、毎回同じ問題の並び順になってしまいます。...
View Article