サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
skirnir.hatenadiary.org
@__gfx__さんがhttp://d.hatena.ne.jp/gfx/20120223/1329996834:JavaScriptのthisの扱いが難しすぎる件という記事を書いていたので見てみました。 いろいろなケースでthisに何がなぜ設定されるのかが分からない、というものです。以下転載。 var o = {}, tmp; o.f = function() { console.log(this.toString()) }; o.toString = function() { return "o" }; o.f.toString = function() { return "o.f" }; (function(){ return this })().toString = function() { return "global"; }; o.f(); // o (o.f)(); // o
iPhoneとAndroidでは以下のような指定をHTMLに書いておくことによりホーム画面にショートカットを作成した時のアイコンイメージを指定できる。 <link rel="apple-touch-icon" href="/img/icon.png"> ところが開発環境などで試しているとこの指定をしているにも関わらず指定したアイコンイメージが使われないことがある。 その場合は開発環境でBASIC認証を使っていないかどうかを確認すると良い。 具体的にはアイコンイメージのURLにBASIC認証がかかっているとNGである。 仮にショートカットを作成する対象画面のURLに同じBASIC認証がかかっていて画面表示の際にIDとパスワードを入力済みであってもNGである。(このせいでハマった) ちなみにAndroidは機種によって挙動が違うようで、BASIC認証がかかっていてもOKな機種があるかもしれない
僕が始めてマイコンに興味を持ったのは小学校6年生の時だった。 仲の良かった友人Oに教えられたのがきっかけだった。O曰く「マイコンを使えばいろいろなゲームができるんだよ」。 当時は今のような百花繚乱な家庭用ゲーム機はなく、あったのはせいぜい数種類の組み込みのゲームを切り替えて遊べるゲーム機くらいだった。 そんなご時勢に、マイコンとやらを買えば数種類どころか数十種類、数百種類のゲームを遊ぶことができ、さらにプログラムというものを覚えればなんと自分でゲームを作ることもできるらしい。 当時の僕はマイコンに熱狂した。もっとマイコンの事を知りたくて、近所の本屋に行って「月刊マイコン」を買った。パラパラと中をめくってみるとなんだか難しいことがたくさん書いてあるようだったが、カラーページにゲームの画面がいくつか載っていてわくわくした。わくわくしながらも、レジに持っていく時、何か少し大人の世界に足を踏み入れ
Perlを使うようになってからはコード書きにVimを使うようになったのだが、Eclipseと違ってコードを追いかけるのが大変。 そこでctagsを使ってタグファイルを生成してそれを読み込ませるようにしてみたところ、シンボル上でCtrl-]を押して定義にジャンプしたりCtrl-tを使って戻ったりできるようになり若干楽になったのだが、なぜか Hoe::Fuga::hehe(0); のようなパッケージ名つき関数呼び出しなどではタグジャンプしてくれない。 生成されたタグファイルの中身を見てみるとそもそも「Hoe::Fuga::hehe」のエントリがないので、ctagsに素敵なオプションをつけることで生成してくれたりしないかななどとネットで情報を探してみたのだが、なぜか対策が見つからなかった。 これは個人的にはイタいのだが、みんな困ってないのかな?…それはさておき、次のようなスクリプトを書いて「Ho
6月13日付でDeNAに転職しました。 転職した理由はいくつかありますが、SIの旧来のビジネスモデルに限界を感じた のが大きな理由の一つです。 前の会社ではいわゆるSIをしており、仕事の進め方はいわゆる 一括請負+ウォーターフォール型の開発が大半を占めていましたが、 このやり方にはいろいろ問題があると思っていました。 例えば、一括請負という契約形態は成果物が最初の段階でFIXしている場合には 有効に機能するかもしれませんが、ソフトウェア開発では大半のケースでは 成果物がFIXしていません。そのため成果物がFIXするまでの紆余曲折分を バッファとして工数に積まないとリスクヘッジができませんが、コスト削減 したい顧客からはバッファ分を上乗せすることに難色を示されることが少なく ありません。そうすると奇跡的にうまくいった場合でトントン、通常は赤字、 ということになってしまいます。 また、ウォータ
Freemarkerテンプレートに例えば ${value}と書いた場合、valueとして許される型は文字列または数値型だけのようである。 boolean(Booleanも)は不可(エラーになる)。booleanの値を表示したい場合は次のようにstring built-inを使う必要がある。 ${value?string}また、java.util.Date型も不可。Date型の値を表示したい場合は次のようにdate、time、datetime等のbuilt-inを使う必要がある。 ${value?date}
漫画 on Webで公開されている佐藤秀峰さん(「ブラックジャックによろしく」や「海猿」の作者)の「特攻の島」の1巻分+最新話が今なら無料!ということで読んでみた。 作品を読み進めていると、主人公の苦悩ってIT業界と似ているところがあるんじゃないの?と思いパロディを作ってみた。 で勝手に公開するのもマズいと思い、Twitterで佐藤さんに「公開の許可をいただくにはどうすればいいですか?」と尋ねたところ、なんと快諾していただいたのでここに公開します。佐藤さん、ありがとうございます! この漫画はまだ完結していないけれど、主人公の苦悩が晴れたらいいなぁと願いつつ読み進めることにします。IT業界も苦悩が晴れたらいいなぁ。
あるクラスCに内部enum Eを定義する場合、staticキーワードをつけるべきだろうか? enumはその性質上staticと扱われないといろいろ不都合が生じるため、内部enumを作る場合にはstaticにしないといけない気がするが、ではstaticキーワードをつけないとどうなるのだろうか。 public class C { public enum E {}; } Eが持つコンストラクタを調べてみる。 for (Constructor<?> c : E.class.getDeclaredConstructors()) { System.out.println(c); } すると以下のようになる。 public C$E(java.lang.String,int) staticでない内部クラスは第一引数として親クラスを受け取るようなコンストラクタを持つが、staticキーワードをつけないで内部
今日友人に聞かれて調べたので備忘録として書いておく。 Maven2でプロジェクトの依存ライブラリのソースコードをダウンロードをするには、 mvn dependency:sources とすればよい。
型パラメータつきクラスHoeがあるとして、指定された型パラメータをHoeクラスの中から知る方法。 public class Hoe<E> { private Class<E> type; public Hoe(E... e) { @SuppressWarnings("unchecked") Class<E> type = (Class<E>) e.getClass().getComponentType(); this.type = type; } public Class<E> getType() { return type; } } こうすると、具体的な型パラメータを取得できる。 例えば Hoe<Fuga> hoe = new Hoe<Fuga>(); という文があった場合、hoe.getType()はFuga.classになる。 かなり裏技的だけど。
3連休はYmirの1.0.0リリースのための作業をしていたが、Sonatype版m2eclipseのあまりの遅さにブチ切れました*1。 プロジェクトの整合性を取るには仕方ないのでしょうが、自分としては必要に応じてEclipseの外でMaven2を起動するので、ビルドパスの解決だけをしてくれれば十分なのです。 というわけでm2eclipseプラグインからビルドパスの解決機能以外を削ぎ落としたm2eclipse-lightプラグインを作成しました。 作成したといってもm2eclipseプラグインから余計な機能を削ぎ落としただけです。ライセンスはm2eclipseに準拠します。 The Seasar ProjectのEclipseプラグインのアップデートサイトからダウンロードできます。Ymirカテゴリの中に入っています。 動作にはm2eclipseプラグインのフィーチャに含まれるいくつかのプラグ
現在のmaven-release-pluginでは、フラットなディレクトリ構成のマルチプロジェクトのリリースはサポートされていない。 「フラットなディレクトリ構成のマルチプロジェクト」とは、例えば次のようなファイル構造をもつプロジェクトである。 (以下、ymir-coreはymir-projectの子であるとする) ymir | +-ymir-project | | | +-pom.xml | +-ymir-core | | | +-pom.xml これは論理的には以下の構造と同値である。 ymir-project | +-ymir-core 論理的な構造と同じようなディレクトリ構造にするとEclipseにプロジェクトをインポートできないので、Eclipseで開発している時はフラットなディレクトリ構成のマルチプロジェクトにせざるを得ない。 このマルチプロジェクトをmaven-release
maven-release-pluginを使うと成果物のリリースを簡単に行なうことができる。 リリースの前にリリースができる状態かの確認をする。これはrelease:prepareゴールに-DdryRun=trueオプションを指定することで行なう。 mvn -DdryRun=true release:prepare FAILUREしたら指示に従って問題を解消する。問題を解消したら再度上記コマンドを実行する。FAILUREしなくなったらrelease:cleanゴールを実行してから次へ。 mvn release:clean リリースができる状態であれば、リリースの準備をする。リリースの準備では次のことが自動的に行なわれる。 trunkのpom.xml中の成果物のバージョン番号をリリースするバージョンに変更した状態のソースツリーをtagsにadd trunkのpom.xml中の成果物のバージョ
土曜の話ですが、「エンジニアの未来サミット」に行ってきました。 聞いた感想は概ねこの方と同じで、 IT業界=泥という話はある程度業界を理解している学生なら知っている訳だし、むしろ知らないで働いていたり就職活動している層をどう変えていくかという話なのに、「自己努力で何とかしろ。自己責任だ!」というのは突き放しすぎている気もする。特に、現在の学生に対しての対処という意味では。 IT業界=泥と言われてるのをどうにかしなきゃいけないよねと言うイベントだったはずなのに、勝手に頑張れってそんな結論しか出ないのなら最初からイベント開かなきゃいいのに。と言うか、選ぶ面子が間違ってる。 http://d.hatena.ne.jp/satromi/20080914/1221387120 学生さんが真に知りたいことを聞けなかったんじゃないかなぁ、という感じでした。 このイベントの主催は技術評論社さんで、聞くと技
HudsonのWARはサーブレットコンテナに配備して動作するが、次のようにすることで単体で動作させることも可能になっている。 java -jar hudson.war 一体どういう風にしてこのようなことを実現しているのだろうと思い調べてみた。 結果: 軽量サーブレットコンテナであるwinstoneのJARファイルが同梱されている WARは実行可能JARファイルになっている(WARもJARの一種なので) 実行されるとMainクラスのmainメソッドが呼び出され、次の処理が行なわれる winstone.jarをファイルシステムにコピー コピーしたwinstone.jarからURLクラスローダを構築 構築したクラスローダからwinstoneのランチャメソッドを探索 引数として「--warfile=自分自身」をつけてランチャメソッドを起動 同じことを自作アプリのWARでやるのも簡単そう。Hudso
Tomcatのデフォルトのエラー画面を差し替えるには、TOMCAT_HOME/conf/web.xmlにタグを書くのが簡単。 <error-page> <error-code>404</error-code> <location>/error/404.html</location> </error-page> ここで注意すべきは、locationの値は存在するコンテキストについてはそのコンテキスト相対パス、存在しないコンテキストについてはROOTコンテキスト相対パスであるということ。つまり/error/404.htmlと書いた場合でhttp://localhost:8080/exist/notFoundURLにアクセスした場合はTOMCAT_HOME/webapps/exist/error/404.htmlがエラー画面として表示され、http://localhost:8080/notExi
このページを最初にブックマークしてみませんか?
『Skirnirnismal』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く