これ以上に解りやすく説明できるという人は、@super_rti までURLを教えて下さい。世界一わかりやすいの看板を差し上げます。
Javaのジェネリクスで,型パラメータ T のインスタンスが欲しくなったことはあるだろうか? 昨今のオブジェクト指向プログラミングにおいて,ジェネリクスは必須の基本文法だ。 扱う対象のクラスが抽象化されて汎用的になりつつ,なおかつ型安全性が確保される。 そのおかげで,処理の重複や分岐をコーディングする必要が無くなり,コード量が驚異的に削減される。 そういう基本的な原則を踏まえると, 「型パラメータのインスタンスが欲しい」 というシチュエーションは,Javaのジェネリクスの本来の導入目的に真っ向から逆らう。 なぜなら,ジェネリクスは型を抽象化して透過的に扱えるようにするための機構なのだから, せっかく抽象化した物をわざわざ具体化してどうするというお怒りを生む事になるのだ。 頑張って詳細なクラス情報を「T」でパラメータ化して具体性を隠ぺいしたにも関らず, その T に対して .class で具
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
昨日のエントリーに引き続き,バッドノウハウ的なものを箇条書きでまとめておく。思い付いた順に追加していく予定。 Activity関連 永続化はonPauseで行う*1。詳しくはActivityのライフサイクル図を参照のこと。 onPauseと対になっている処理は,onResumeで行うこと。onStart/onStopはあんまり使わない,気がする。 DialogはAlertDialog.Builderを使って実装するのが楽。ただし,裏で何らかの処理を行なっている間,ユーザーに操作をさせないために表示するダイアログ(いわゆるProgressDialog)は使わないようにする。DialogではなくActivityを新しく作って表示させることで,いくつかのトラブルを回避できる*2 *3。 重いタスクはUIスレッドで処理しない。AsyncTaskなどを使ってワーカースレッドで実行する。ただし,ワーカ
こんにちは、id:shiba_yu36です。 はてなのエンジニア陣によって執筆されたウェブアプリケーション作成の基本を学ぶための「はてな教科書」をgithub上に公開しましたのでお知らせします。 はてな教科書は、はてなサマーインターンでも利用されている、約1週間でウェブアプリケーションの基本を身に付けるためのものです。はてなでは日々のウェブ開発で得られたノウハウをこの教科書を継続的に盛り込みながら、インターンシップやエンジニアの新人教育などに利用しています。今回、はてな教科書をgithub上で公開することで、広くPerlを使ったウェブアプリケーション開発に興味を持ってもらえれば、と思います。 いまのところ公開されている資料は、以下の4つになります。 Perl によるオブジェクト指向プログラミング ORM によるデータベース操作 (DBIx::MoCo を使った開発) MVC によるウェブア
短縮URLっぽいURLの文字列。http://bit.ly/wEFnVF の場合「wEFnVF」の部分をどうやって生成するかちょっと考えてみたけど、大まかに三通りしかなさそうだというメモ。1.一方向ハッシュ関数MD5とか。この方法が一番手軽な場合けっこうあると思う。ただし、文字数がやたらと多くなってしまうため短縮URLとかでは使えない。 2.適当な文字列ほとんどこれだと思う。ただし、重複チェックが必要になるので生成するたびにDBアクセスが発生するし、桁が上がる直前になると鬼のようにDBアクセスが発生するため工夫が必要。bitlyのように、あとからパスを変えられるタイプは大体これ形式なはず。 3.62進数データベースの連番のidとかを62進数に変換すれば重複なしでスマートっぽくできる。元の10進数の数字を知られたくない場合、下のコードだと@n_mapの文字達を適当にすれば簡単には分からなくな
Javaのクラス宣言には5種類ある。 トップレベルクラス・ネストしたクラス・内部クラス・ローカル内部クラス・匿名クラス(無名クラスとも言われる)の5種類だ。 今回はこの5種類のクラス宣言のおさらい。 トップレベルクラス これは普段使っているクラス。拡張子が.javaのファイルを作り、そのファイル名とクラス名を合致させなくてはいけない。そのjavaファイルのトップレベルに位置する。 ネストしたクラス 「ネストしたクラス」(Nested class)とはクラスの中にクラスがネストしている状態。トップレベルクラスの内側にstaticキーワードをつけてクラス宣言を行う。 public class Outer { public static class Nested { } } このネストしたクラスは、トップレベルクラスと同等の機能性を持つ。 クラス名はOuter.Nestedという名前で扱われるが
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 2019/06/11追記: これは2012年の投稿です。なぜかはてなブックマークで拡散されていますが、内容は時代にそぐわなくなったものもあるのでご注意ください。 これ知らないプログラマって損してんなって思う汎用的なツールのコメントに寄せられたツールを分類分けしてみました。 解説は、ほぼコメントに寄せられた内容のコピペです。 URLのみの記述は公式サイト(か、ほぼ公式サイトと化しているサイト) 公式サイトとは別に、ページタイトルだけでツールを説明しきっているページへのリンクも付けておきました。類似ページが複数ある場合は、はてブのブックマー
トップ 目次 はじめに コマンド Rubyの起動 環境変数 Ruby 言語仕様 Ruby でのオブジェクト オブジェクト クラス プロセスの実行 Ruby プログラムの実行 終了処理 スレッド セキュリティモデル Ruby の文法 字句構造 プログラム・文・式 変数と定数 リテラル 演算子式 制御構造 メソッド呼び出し(super・ブロック付き・yield) クラス/メソッドの定義 その他 多言語化 正規表現 手続きオブジェクトの挙動の詳細 組み込みライブラリ Builtin libraries 標準添付ライブラリ All libraries C API All C API その他 pack テンプレート文字列 sprintf フォーマット Ruby用語集 Rubyで使われる記号の意味(正規表現の複雑な記号は除く) 疑似BNFによるRubyの文法 配布条件 このマニュアルのヘルプ
Cでのポインタの読み方 Cのポインタの読み方は、ルールを知らないと摩訶不思議です。 ルールを覚えれば、 int (*p[5])[3]; char (*(*fp)(void))(int); なんてのも解読する事ができます。 大事な前程 ポインタを読む際には、「英語で読む」必要があります。 「え~、英語~」 と思う方もいるかもしれませんが、逆に日本語で読む方が大変です。 基本ルール ルール 後置演算子が優先。 関数の() 配列の[] 前置はあとで。 要は、「後ろに何かあったら、後ろが優先」です。 演算子の英語での読み方 * pointer to ... () function returning ... [] array of ... Lesson 1 まず、演算子が単独で出てくる場合です。 Lesson 1-1 pointer to ... int *p; これは、まずpを見ましょう。 i
オブジェクト指向プログラミングの考え方については、今までこのブログでも何度か取り上げてきました。 [オブジェクト指向] - 達人プログラマーを目指して オブジェクト指向プログラミングはプログラミング技法のすべてではないとはいえ、Javaのようなオブジェクト指向言語で本格的なプログラムを作るには理解を避けて通ることができませんし、また、関数型言語など他のパラダイムの言語を利用するにしても、オブジェクト指向の考え方をまったく理解しないまま使いこなすということは困難でしょう。オブジェクト指向の考え方はデータ構造やアルゴリズムといったことと同様に、プロフェッショナルなプログラマーが理解しておくべき基本的な素養といってもよいと思います。実際、海外では募集要項でオブジェクト指向の理解を前提とすると書かれていることが普通ですし、プログラマーの面接試験で、アルゴリズムと並んでオブジェクト指向プログラミング
@mopemopeさんからバトンを渡されました、2011 Pythonアドベントカレンダー(Python3) 16日目担当のおもけん(@doloopwhile)です。 Q「RubyとPythonどちらが初心者向けでしょうか?」 A「Pythonは日本語情報が少ないので、Rubyがおすすめです」 質問掲示板などで、しばしば見かけるやり取りです。しかし、本当にPythonは日本語情報が少ないのでしょうか? 確かに、かつてはRubyの情報量の方が圧倒的だったでしょう。しかし、現在ではPythonも日本で広く使われ、Pythonプログラマーのブログも多数あります。少なくとも初心者がPythonを始めるのに情報不足ということはありません。 そこで、明日のPythonプログラマーのため、日本語情報を列挙しておきます。ワリと無難というか、常識的な資料ばかりです。 結局、何を読めばいいの?5つの日本語情報
The Eclipse Ceylon™ project encompasses development of the language itself (the language specification), the compiler frontend (typechecker), the compiler backends for Java and JavaScript, the module system, the command-line tooling, the SDK, and the Eclipse-based IDE. A future direction is tooling for Eclipse Che. The project also maintains the website and documentation for the language. Eclipse
1日たってしまいましたが、11/06にTDD Boot Camp 横浜に参加してきました。詳しい記事は、id:absj31さんの記事が素晴らしくまとまっているので、ご覧くださいませ。 TDD Boot Camp 横浜に参加してきた #tddbc - Diary of absj31 TDD BCの感想と、Groovyを初めて触った感想です Groovyペアに立候補した理由 「募集」をしているわけで、立候補すれば、その場でペア成立 Groovyを触ったことがなくても大丈夫という前提 プログラミング言語好きとしては、Groovy触ってみたかった 普通なら、師匠は直々に、言語のフォースを教えくれない 運営の方と、TDDやったほうが身につきそう! たしか、こんな理由だったと思います。打算と興味が五分五分といったところでしょうか。運営の方が、Groovy本を持ってきてくれて、 パラパラと見た第一印象は
Chop is Retired! It’s all good though, we’ve got bigger and better things in store for you! Check Out Helio Chop's FAQ A little app from ZURB that lets people slice up bad code and share their feedback to help put it back together. Why? Giving one-off feedback on coding errors is a pain. You just want to share a quick, contextual note with someone, but there aren't any good tools out there to help
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く