明示的 意味 แพลตฟอร์มการเรียนรู้และพัฒนาทักษะด้วยเทคโนโลยี https://suin.io เป็นแพลตฟอร์มที่ให้คุณเรียนรู้และพัฒนาทักษะทางเทคโนโลยีอย่างสะดวกสบาย เรามุ่งมั่นในการให้ความรู้และประสบการณ์ที่มีคุณค่าในการพัฒนาตนเอง pascalcase
明示的 意味 แพลตฟอร์มการเรียนรู้และพัฒนาทักษะด้วยเทคโนโลยี https://suin.io เป็นแพลตฟอร์มที่ให้คุณเรียนรู้และพัฒนาทักษะทางเทคโนโลยีอย่างสะดวกสบาย เรามุ่งมั่นในการให้ความรู้และประสบการณ์ที่มีคุณค่าในการพัฒนาตนเอง pascalcase
$ brew info play play 2.0 http://www.playframework.org/ Not installed https://github.com/mxcl/homebrew/commits/master/Library/Formula/play.rb /usr/local/Library/Formula% git checkout 3caf5c5 /usr/local/Library/Formula/play.rb /usr/local/Library/Formula% git info play $ brew versions play 2.0 git checkout 351d751 /usr/local/Library/Formula/play.rb 1.2.4 git checkout 3caf5c5 /usr/local/Library/Formu
唐突に始まったScala Tipsコーナー、初学者が陥りがちなScalaのコードパターンを例にして、より良い方法を解説していきます。第一回はOptionクラスのmap()メソッドを使おうというものです。知ってる人には今更ですが、Option#map(f)は、レシーバーの値がSome(v)の場合は、fにvを渡した結果のSome(f(v))が、Noneの場合はNoneが返ります。したがって、パターンマッチを使った以下のようなコードは val result = exp1 match { case Some(v1) => val vx = //expression using v1 Some(vx) case None => None } 常に以下のような形に書き換えることができます。 val result = exp1.map{v1 => val vx = //expression using
昨日のエントリーに引き続き,バッドノウハウ的なものを箇条書きでまとめておく。思い付いた順に追加していく予定。 Activity関連 永続化はonPauseで行う*1。詳しくはActivityのライフサイクル図を参照のこと。 onPauseと対になっている処理は,onResumeで行うこと。onStart/onStopはあんまり使わない,気がする。 DialogはAlertDialog.Builderを使って実装するのが楽。ただし,裏で何らかの処理を行なっている間,ユーザーに操作をさせないために表示するダイアログ(いわゆるProgressDialog)は使わないようにする。DialogではなくActivityを新しく作って表示させることで,いくつかのトラブルを回避できる*2 *3。 重いタスクはUIスレッドで処理しない。AsyncTaskなどを使ってワーカースレッドで実行する。ただし,ワーカ
x-callback-url とはURLスキームを利用したアプリ間連携の仕組み。他アプリを呼び出すだけでなく、その名(コールバック)の通り呼び出し元で結果を受け取るまでの一連の動作を定めている。 x-callback-url 現在は 1.0 DRAFT...
git addを取り消す $ git reset HEAD foo.txt git add で編集内容が index に追加*1されます。 間違えて index に追加した場合に、このコマンドで取り消しができます。 $ git add foo.txt $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: foo.txt # $ git reset HEAD foo.txt Unstaged changes after reset: M foo.txt $ git status # On branch master # Changed but not updated: # (use "git add <file
(2009/06/13 追記: コメント欄に、とても簡単に置換する方法を教えてもらったので、まずそちらを参考にすることをお薦めします。) Widnowsのコマンドプロンプトで文字列の置換をする方法。 コマンドとしては提供されていないので、for文を利用する。 例えばシステム日付(例:2007/11/21)のスラッシュをハイフンにする場合。 @echo off rem 変換したい文字列をセット set before=%date% rem 置換する文字をセット set search=/ rem 置換後の文字をセット set replace=- rem 変数初期化 set after= set replace_wk= :loop if "%before%" == "" goto :end for /f "tokens=1* delims=%search%" %%A in ("%before%")
AndroidのフレームワークにはAndroidを強く特徴付けるIntentという仕組みがある。 IntentはActivityやServiceといった実行単位のコンポーネントを起動する場合に利用される。 プログラマはstartActivityやstartServiceといった関数を用いてActivityとServiceの起動を命ずるが、このとき引数にIntentを使うことにより実行対象を指定する。 Intentが優れているのはこの指定方法にある。 Intentは明示的にクラス名を指定することにより明らかに実行されるコンポーネントを指定することが可能だ。 しかし、より優れたIntentの利用方法は暗黙的なIntentの利用である。 暗黙的なIntentを用いることにより、直接実行コンポーネントを指定する必要がなくなる。 これによりコンポーネント間の結合はより緩やかな疎結合となる。 呼出元の
import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; public class CollectionsSample { public static void main(String[] args) { List list = new ArrayList(); Collection collection = list; list.add(new Integer(5)); list.add(new Integer(2)); list.add(new Integer(6)); list.add(new Integer(1)); list.add(new Integer(4)); list.add(new Integer(3)); C
忘れないようにメモ。 例えば検索条件をEditTextに入力する場合、 ユーザビリティ的にはソフトキーボードで入力完了後(EnterKey押下時)に検索ボタンを押さなくても自動的に検索が始まるのが好ましい。 また、ソフトキーボードは自動的に閉じられると良い。 コードは以下のとおり。 EditText searchEdit = (EditText) findViewById(R.id.search_edit); searchEdit.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { //EnterKeyが押されたかを判定 if (event.getAction() == KeyEvent.ACTION_DOWN && keyC
これはスペースを削減するためによく使われる手法ですが、フォームのテキストフィールドやテキストエリアにあらかじめ解説するテキストを初期値にしておき、フォーカスが当たった時にそれをクリアする関数です。 サンプル ソース <script type="text/javascript"> function Input(areaname,checkvalue,formname){ if(document.forms[formname].elements[areaname].value == checkvalue){ document.forms[formname].elements[areaname].value = ""; } } function Output(areaname,checkvalue,formname){ if(document.forms[formname].elements[a
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く