サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Switch 2
tech.cm55.com
Search: LoginRecentChanges FindPage HelpContents Locked History Actions Designs/DIP DIPは間違っている この記事は以下に移動しました。 https://www.gwtcenter.com/dip-is-wrong last edited 2018-02-08 04:38:22 by ysugimura
トラブル qmail-remoteがタイムアウトしない qmail-remoteが何日だろうが、何ヶ月だろうが生きたままになっていることがある。 このようなプロセスが積み重なってくると、そのうちにconcurrencyremoteの数に到達してしまい一通のメールも送信できなくなってしまう。 このようなqmail-remoteを確認するコマンドは以下。 ps ax -o etime,pid,comm --no-heading | grep qmail-remoteこれにより以下のような出力が得られる。 02:10:33 12986 qmail-remote 03:47:23 28958 qmail-remoteフィールドは左から、コマンド投入後経過時間、プロセス番号、コマンド名 本来であれば、timeoutconnect,timeoutremote,timeoutsmtpdの値によって、時間
Google Guice 2.0のマニュアルの翻訳です。気の向いたときに訳していきます。 ※素人による翻訳です。できるだけ原典をあたってください。 ユーザガイド モチベーション 始め方 バインディング リンクバインディング バインディングアノテーション インスタンスバインディング @Providesメソッド Providerバインディング Untargetedバインディング ビルトインバインディング その場バインディング スコープ インジェクション プロバイダをインジェクトする AOP ベストプラクティス 変更可能性を最小にせよ 直接依存のみを注入せよ 静的状態を避けよ @Nullableを使用すべし モジュールは早く副作用の無いこと プロバイダ内のIOに注意 モジュール内条件ロジックを避けよ コンストラクタを隠せ FAQ 統合 ウェブとサーブレット 始めよう Guiceサーブレットの構成
以下はhttps://github.com/padraic/mockeryの抄訳。 Mockery MockeryはシンプルだがフレキシブルなユニットテストのためのPHP用のモックオブジェクトフレームワークである。 これはRubyのflexmockやJavaもMockitoにインスパイアされており、それらのAPIの要素を借用している。 Mockeryは新しいBSDライセンスの元で配布される。 Mockオブジェクト ユニットテストでは、モックオブジェクトはリアルオブジェクトのふるまいをシミュレートする。 それらは、未作成のオブジェクトの代役を努めたり、実装を行うことなくAPIの実験的なデザインを行うためのものである。 モックオブジェクトフレームワークのメリットとしては、モックオブジェクト(あるいはスタブ)のフレキシブルな生成を行えることにある。 フレキシブルなAPIを使用して、期待されるメソ
Ivy IvyはAntのサブプロジェクトであり、よくMavenと比較される。開発プロジェクト全体の構造やライフサイクルまでも規定しようとするMavenとは異なり、Ivyは依存関係の解決のみに絞っているようで、残りはAntでやれということである。 いっけんMavenの方が、(すべてを面倒みてくれるので)よさそうに思えるのだが、実はMavenでは「あらかじめ用意されているストーリー」から外れたことをしようとすると大変な努力を強いられる(ようだ)。それよりも、依存関係の解決のみをIvyに頼り、あとは従来通りAntで記述する方が面倒がなくてよい場合もあると思われる。 このIvyもまた、日本語の資料が極端に少ない。あってもハイレベルなユーザであるので、初心者には何のことやら訳がわからない。以下では特に、Eclipseで使うことに的を絞っている。つまり、EclipseのプラグインであるIvyDEを使っ
antをEclipse上で使う場合のTIPS Class not found: org.eclipse.jdt.core.JDTCompilerAdapterの問題 そのままantを実行しようとすると、 .... build.xml:XX: Class not found: org.eclipse.jdt.core.JDTCompilerAdapterというエラーになることがある。 この場合は「外部ツールダイアログ」を開き、 「JRE」タブにて「ワークスペースと同じJREで実行」を選択する。 antの使うコンパイラの指定 Antで利用するjavacとして、JDK標準のjavacを使うと都合が悪い場合がある。Eclipseが内臓するコンパイラとは、警告やエラーの出し方が異なるため(特にEclipse内臓コンパイラではエラーとならないのに、標準javacではエラーとなる場合あり - 詳細は未調
Ruby対Scala Javaの欠陥、Rubyの欠陥を埋めるものとしてScalaが選択されつつある。 ここでは特に、なぜRubyではだめなのか、他の方の言を紹介する。 なぜ Lift に違和感を覚えるか 一刻も早くJava から Ruby へ移行したいと思っていた。しかし、実際に Ruby で開発を行ってみると、そこには譲れないトレードオフがあった。Eclipse 上の Java コードは、死んだ文字列ではなく、呼びかければ応えてくれるオブジェクトだったが、Aptana RadRails 上の Ruby コードは、それとは程遠い代物だった。補完はまともに働かず、依存先へのナビゲーションや依存元の検索はインテリジェントでなく、リファクタリング支援は貧弱。これは、特定ツールの未成熟の問題というよりも、動的型付け言語のアイデンティティに関わる問題だろう。そして、Rails アプリケーションの実行
Androidエミュレータについて リンク 6.8 Android エミュレータ 何をエミュレートするものか Android用の開発プログラムは実機を用いることなくエミュレータ上で実行することができるのだが、このエミュレータなるものは、単にJavaコードを実行するのではなく、実機のCPUをエミュレートするものであるらしい。 つまり、実機のCPUがARMプロセッサであるならば、そのARMプロセッサ自体の動作をエミュレートし、その上にDalvik-VMを動作させ、その上で開発コード(Javaのコンパイル済みクラスをまとめたapkファイル)を実行するようだ。 このCPUエミュレーションにはQEMUというものが使用されているとのこと。 このように、おそらくx86系とは根本的に命令セットの異なると思われる(よく知らないのだが)ARMプロセッサをx86上で動作させるため、エミュレータの動作には非常にC
Anormについて Anorm, SQL data access with Play Scala Anorm, SQL data access with Play Scalaの抄訳(2011/5, バージョン0.9) ScalaモジュールにはAnormという新しいDBアクセスが含まれる。これには、生のSQLを使って問い合わせを行い、結果データセットをパース・変換するためのAPIがある。 AnormはORMではない 以下ではMySQLをサンプルとして説明するので、実行してみたい場合はMySQLウェブサイトの手順に従い、 以下の設定をconf/application.confファイルに記述して欲しい。 db=mysql:root@world 概要 今日のSQLデータベースアクセスにおいて、生の古いSQLに戻るというのは妙に感じられるかもしれない。 特にJavaデベロッパはHibernateのよ
IntelliJ IDEA EclipseユーザのためのIntelliJ IDEA IntelliJ IDEA Q&A for Eclipse Usersの訳(予定) 設定 以下は10.0.3で行なったもの。 サポートされているプラグインをダウンロード・インストールする File/Settingsメニューをクリックし、下の方にあるPluginsをクリック。availableタブから探し、右クリックし、Download and installを選択。 フリーカーソルをやめさせる(改行を超えて右に行ってしまう) 上記と同じSetting画面で、Editorをクリックし、右の方の「Allow placement of caret after end of line」のチェックをはずす。 エディタ画面の色合いを反転させる(黒バックの方が好み) http://tedwise.com/2009/02/
Android ※Androidについてはネット上にいくらでも資料が見つかるので、ここではほぼ流れだけを記述していく。 基本的にEclipse上での開発を想定している。 リンク Developing in Eclipse, with ADT Androidドキュメント日本語翻訳プロジェクト Android徹底批判 Android徹底批判 もろもろ 開発環境ひとめぐり AndroidのViewについて テスト環境について Androidアプリの開発方針 Androidソースの取得 View not attached to window manager問題 開発環境の使い方 ログレベルとLogCat XmlPullParser Context Activity Handler Dimension ImageView Matrix トラブル トラブル対策 インストール 開発環境は以下のもの。 e
AndroidのViewについて AndroidのViewの概念は、一見他のGUIツールキットと同じように見えるのだが、大きく違うところがある。 様々な書籍やウェブサイトでの記事もこの点を明確に指摘しているところは、ほぼ存在しない。 つまり、Android特有の用語が何を意味するのか全く定義せずに話を進めているため、読む方としては 何のことやらわからないという状態になってしまう。 様々なGUIツールキットを経験している人間であるほど理解不能に陥ってしまう。 ※以下は認識不足である可能性があります。注意してお読みください。 Swing等との違い AndroidではSwing等のコンポーネントと同じように、Viewを入れ子にして画面を作成していく。 ViewはSwingの場合のコンポーネントに対応する。 しかし、ListViewなど、実行時までその中身の繰り返し数がわからない場合の扱いはSwi
ImageView リンク AndroidのImageViewの表示サイズの決まり方 不必要に複雑なクラス このクラスはとにかく不必要に複雑すぎる。 やりたいことは単にDrawable等をセットして描画したいだけであるのに、異様に複雑で訳がわからない。 これは設計として間違いである。あらゆる要求を満たすクラスを用意するのは構わないのだが、多くのユーザが普通に使える機能を持つクラスでそれをラップすべきであろう。 ImageViewのサイズの決め方 リンク先で説明されているように、ここは非常に複雑になっている。普通の人は以下のようにすべきである。 wrap_contentは絶対に使わない。これを使うと話がかなりややこしくなる。 fill_parentか、あるいはサイズを明示的に指定する。 描画のしかた 以下ではImageViewの中にDrawableその他がどのように表示されるかについてだけ見
Activty Activityのライフサイクルに関する間違い http://developer.android.com/reference/android/app/Activity.html に以下のような図があるが、 onPauseの前の「Another Activity comes in front of the activity」という部分は間違い、あるいは間違いで無いとしても非常に紛らわしい。 onPauseが呼び出される以前には、Another Activityオブジェクトは生成されてもいないのである。これは、後述のonPauseメソッドの説明からも明らかである。 翻訳:「AのonPauseから返ってこない限りBはcreateされないため、ここで長い処理は行ってはならない」。 実際にトレースをおこなってみると、説明の通り、BのonCreateが呼び出されるのは、AのonPaus
テスト環境について Androidには立派なテスト環境があり、「これだけやっとけば大丈夫だろ」と言わんばかりのものらしいが、これは間違い! 。。。いや間違いではないのだが、主軸にしてはならない。 Eclipseを開発環境とするならば、Eclipse上でささっとテストができるべきである。 これがまず第一。その上で、テストしにくいGUI部分をこの環境で行うのなら完璧というところだろう。 わざわざテスト用のアプリを作成し、それを決して速いとは言えないエミュレータにインストールし、それからもろもろのテスト操作を行うというのでは、 嫌になること請け合いである。 テストは楽しくなければならないのである。 GUIとビジネスロジックを分割する Android云々、テスト環境云々以前に、まずこの技術を習得しなければならない。 そもそもGUIは、どういう方法をとってもテストしにくいものなのだから、GUIコード
View not attached to window manager 例外の発生状況 ProgressDialogをAsyncTaskの中で安易に使用すると、 java.lang.IllegalArgumentException: View not attahced to window managerという例外が発生することがある。再現する方法は以下の通り、 Avitivityの中でAsyncTaskを使用し、その処理の最初にProgressDialogを作成して表示し、処理が終了したらdismiss()を呼び出して消去する。 ProgressDialogが表示されている間(くるくる回るアイコンの表示中)に、端末の方向を変更する。例えば、OrientationをPortraitからLandscapeに変更する。 しばらく待つと上記の例外が発生する。 AndroidはConfigurati
roboguice ※※※ 注意 ※※※ このページの翻訳は途中ですが、今後メンテナンスされません。 そもそも、Androidのリソースシステムの「設計」自体が間違っており、開発者にとって非常に使いづらいものになってしまっています。 それをなんとか救おうとしているのがroboguiceであると考えるからです。 このような場当たり的な対応を行うよりも、Androidシステムそれ自体を修正すべきであると考えます。 ※※※ 注意 ※※※ リンク roboguice - Google Guice on Android 概要 要するに、Guiceをandroid上で便利に利用するためのサポートライブラリ。 特にこれがなければandroidでGuiceできないというわけではないが、あった方が全然便利。 ※ただし、もともとguiceのAOP機能はandroidのような実行のバイトコード生成をサポートして
Injectorをサービスロケータとして使う DIの考え方は非常にとっつきにくい。とっつきにくい原因は「制御の逆転」である。通常、我々があるクラスを作成する場合はその中で「好きな時に好きなオブジェクトを好きなだけ生成して使う」というやり方である。が、DIではそうはならない。「そのクラスで使うべきであろうオブジェクトがどこかで勝手に生成され、勝手に用意される」といった具合になる。 つまりこれは、考えるべき問題の範囲がクラスの外側にはみ出してしまうことを意味する。これまではクラスの中でだけ問題(いつどんなオブジェクトを生成するか)を考えればよかったにも関わらず、DIを使うとクラス以外の部分でそれらを検討する必要が出てくる。これは面倒だし、間違いが発生する可能性も大きい。追うべき範囲が広がるのでおそらくデバッグも難しくなる。 SpringのようにオブジェクトのセットアップをXMLを使って行うフレ
Search: LoginRecentChanges FindPage HelpContents Locked History Actions mockito/Manual 以下に移動しました。 https://www.gwtcenter.com/mockito-manual last edited 2018-08-02 05:41:56 by ysugimura
IvyDEの使い方 ここでは、Eclipse用のプラグインIvyDEを使って、できるだけ簡単に依存関係の定義・解決と、Antのビルドファイルからそれを使う方法をさぐってみる。 IvyDEはEclipse用のプラグインである。2010/9現在のバージョンは2.1.0。Eclipseは3.6を利用している。 マニュアルの翻訳 Ivy console Reverse Dependency Explorer IvyDEのインストール アップデートサイトから簡単にインストールできる。 Download 単純に新規リモートサイトとして Apache Ivy update site http://www.apache.org/dist/ant/ivyde/updatesite とすれば後はEclipseがよきにはからってくれる。 ※2011/9/29現在は、eclipse-indigo(3.7)の場合、
インジェクションの方法 wicket-guiceエクステンション 一般的にはwicket-guiceエクステンションのGuiceComponentInjectorを使うことになっているが、これは非常に問題が多い。まず、「オープンソース徹底活用 WicketによるWebアプリケーション開発」の380ページの例はおそらく間違い(ただし、この本は買って損の無い本です。とても助かってます)。 public class GuiceTestPage extends WebPage { @Inject Service service; public GuiceTestPage() { String message = service.doSomething(); add(new Label("messageLabel", message)); } }とあるが、 そもそもGuiceではフィールドインジェク
Guice Guice 2.0を前提としています。1.0では動作しないものも含まれます。 チュートリアル Guiceチュートリアル Guiceへのリファクタリング(翻訳) TIPS ProviderとFactoryProvider Injectorをサービスロケータとして使う バインディングをオーバライドする方法 Robot Legs Problem 子インジェクタ 型パラメータのある場合 サーブレット カスタムスコープ injectMembersはどこまで? WicketでGuiceを使う方法 AOPの使い方 マニュアル マニュアル(翻訳)
有限会社クリプトメディアの技術サイトです。 このサイトのコンテンツは、順次 www.gwtcenter.com に移行していきます。
このページを最初にブックマークしてみませんか?
『tech.cm55.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く