2014-01-01から1年間の記事一覧
昨日の http://cs.hatenablog.jp/entry/2014/06/18/174157 には出題者の名前からちょまど問題という名前が付いたようです。16手というのは算数的解法で、数学的にはまだまだ先があるのですが、ともかく算数的には16手が最短かと思っていましたが、まだまだ改…
本日twitter上でエンジニアの間で話題になった問題。 4択問題10問のテストを全部埋めて提出すると正解数がわかります。 何回提出すればすべての正解を知ることができますか。10問すべての正解は、最大16回の試行で知ることができます。 (2014-06-20追記:こ…
タイトルの通り、PostgreSQLではテーブル名、カラム名など識別子に英大文字を使うべきではありません。
DBの主キーカラムに自動連番(MySQLならAUTO_INCREMENT、SQL ServerならIDENTITY、OracleやPostgreSQLならシーケンス)を設定していると、基本的には連続した数字が付番されていくのですが、行削除もしていないのに抜け番が発生する場合があります。 INSERT…
余計な一時変数というのはなるたけ作りたくないものですが、例えばJavaでこんなコード書いちゃうことあるじゃないですか。 static T poll() { Integer result = array[top]; // (1) if (++top >= array.length) top -= array.length;// (2) return result; }…
日付時刻のデータタイプはだいたいどの処理系でも深い闇を湛えているものです。 .Net FrameworkのDateTime型はさてどんな闇でしょう。
AngularjsはJavascript(以下JS)でリッチクライアントを書くためのMVCフレームワークです。JS MVCフレームワークはいま混戦状態で決定版はどれといいにくい状態ですが、確実に三強の一角ぐらいは占めていますね。Angularjsについてもう少し知りたい場合はこ…
Windowsのコマンドプロンプト(cmd.exe)でコマンド引数に空白を含む文字列を渡したいときは二重引用符でくくります。ここまではよく知られたノウハウ。では、二重引用符を含む文字列を渡したいときは?、となると大半の人はあやしいはず。「¥でエスケープす…
BEMS機器の接続規格として最も古いModbusは1970年代からあります。その物理層は二線式のRS-485。半二重のシリアル通信を二線間の電圧差分で伝達するものです。RS-485は単純なシリアル通信であり、ルーティング機能や衝突検知機能は持ちません。しかも半二重…
コーディング課題・5ℓと3ℓのバケツで4ℓの水を用意する問題 - C Sharpens you up 就活シーズンだからかこの記事が検索されることが増えてきたので、プログラムではなく人の頭で答にたどり着く方法をまとめておきます。問題は 5Lと3Lのバケツで4Lの水を作って…
Windowsを使えばよろしい。 …で終わってしまうのでLinuxでもマシン名でホストアクセスを受け付けるようにする方法。ドメインがexmaple.comでマシン名がmyhostだったら、dhclientの設定ファイルに次の設定を加えます。 send fqdn.fqdn "myhost.example.com"; …
Play!(2.2以前)も採用している軽量O/RマッピングライブラリEBeanに出していたプルリクエスト*1が通ったので手前味噌。これまでEBeanでは、トランザクションはtry-finallyで書くのが基本でした。 Ebean.beginTransaction(); try { Order order = Ebean.find…
GitBucketは驚きの超お手軽GitHubクローンです。 そのお手軽さたるや、落としてきたgitbucket.warファイルをTomcatにデプロイするかjarとして実行java -jar gitbucket.warするかするだけで社内GitHubがもう構築完了。 あとはrootユーザ(初期パスワード root…
HaxeはActionScriptをベースにした汎用言語だが、Javascriptへのコンパイルが当初から実現されているのでBetter JSのひとつとしても人気。 実験的にJava, C#, C++へのコンパイルまでサポートされている。特徴としては、強力な型推論を持ったクラスベースのオ…
新規プロジェクトのためクライアントサイド開発に使うBetter JSを選定中。 2014/01/09現在の状況。 TypeScriptコンパイラの導入 TypeScriptコンパイラtscはNode.js上で実装されているので まずNode.jsをインストール http://nodejs.org/ (PATHも通す) npm …
C#はラムダ記法で無名関数が書けますし、Javaも8からラムダ記法が可能になりました。しかし無名関数では再帰関数が書けません。 さてどういうことか。再帰関数の代表選手として階乗計算を例にとってみましょう。 まず、メソッドとして再帰的に書いてみます。…