タグ

ブックマーク / atmarkit.itmedia.co.jp (34)

  • ==演算子とEqualsメソッドの違いとは?[C#]

    .NETでは「2つのものが等しいかどうか」を比較するために==演算子、Equals/ReferenceEqualsメソッドを使える。これらの違い、使用する際の注意点を説明する。

    ==演算子とEqualsメソッドの違いとは?[C#]
    kenichiice
    kenichiice 2020/12/01
    値型とイミュータブル参照型は==、ミュータブル参照型はEquals()を使えとのこと
  • サンプル例に見る機能仕様書の基本的な書き方&読みやすくする7つのテクニック (1/3):プロジェクト成功確率向上の近道とは?(2) - @IT

    サンプル例に見る機能仕様書の基的な書き方&読みやすくする7つのテクニック:プロジェクト成功確率向上の近道とは?(2)(1/3 ページ) ITシステム開発の問題点の一つであるコミュニケーションの失敗。連載では、これを防ぐ方法としてお勧めしたい3つのドキュメントを紹介していく。今回は、Joelの機能仕様書を日人向けにカスタマイズされたものを例に、機能仕様書の基的な書き方、読みやすくする7つのテクニック、仕様書作成ツールは何を使うべきか、誰が書くべきかなども解説します。 連載目次 連載の第1回の前回「ドキュメントは最強のコミュニケーションツールである――Joelの機能仕様書入門」では、ITシステム開発がビジネスに貢献していくためには、まずは開発の成功が出発点になること、そしてITシステム開発におけるコミュニケーションの重要性、そしてコミュニケーションにおけるドキュメントの重要性について説

    サンプル例に見る機能仕様書の基本的な書き方&読みやすくする7つのテクニック (1/3):プロジェクト成功確率向上の近道とは?(2) - @IT
  • 「OSSライセンス=契約」という誤解を解く

    「OSSライセンス=契約」という誤解を解く:OSSライセンスで条件を指定する権利はどこからくるのか?(1/2 ページ) オープンソースソフトウェアについて解説した記事の中には、「OSSライセンスは契約である」という誤解を目にすることが多い。この連載は「第9回著作権・著作隣接権論文」で佳作に入選した論文をベースに、その誤解を解いてみるという試みをしたい。 問題意識:OSS開発者が条件を指定する権利はどこに由来するのか 前回の連載「企業技術者のためのオープンソースソフトウェア(OSS)ライセンス入門」では、企業がオープンソースソフトウェア(OSS)とうまく付き合っていくためのポイントを、ライセンスという観点から解説した。 それから6年が経過した。当時もそうだったが、OSSはますます広がり、企業が新たなビジネスやサービスを展開する際に利活用するのはもちろん、自らの成果物をオープンソースとして公開

    「OSSライセンス=契約」という誤解を解く
  • OpenJDK+SystemTapでトラブル解析はここまでできる!

    Javaでデバッグしにくい3つの場面 Javaアプリケーションで構築されたシステムの障害や性能問題が発生した場合、大半はデバッガやプロファイラ、ミドルウェアやサードパーティが提供するツールを用いることで解析できてしまいます。 しかし、以下のような状況ではJavaの世界からのアプローチがしにくく、通常のデバッグノウハウが使えないことがあります。 プロセス再起動が許されないシステムでの情報取得がしたいとき 番環境でしか発生せず、テスト環境でデバッグできない問題の場合 GC(ガベージ・コレクション)ログ(-Xloggcなど)のように、javaコマンド起動オプションを与えなければ取得できない情報が必要な場合 ソース変更が許されない場合に、特定状況下の情報を取得したいとき ある特定のメソッドなどが実行された瞬間のスレッドダンプやスタックトレースなどが必要な場合 ソースの変更ができない、環境の制約な

    OpenJDK+SystemTapでトラブル解析はここまでできる!
  • 少ない手間と知識でそれなりに見せる、ズルいデザインテクニック

    少ない手間と知識でそれなりに見せる、ズルいデザインテクニック:ズルいデザイン(1)(1/2 ページ) デザインが自分でイイ感じに作れたらいいなあというプログラマのみなさん。少ない手間で簡単に、ちょっといい感じのデザインに見せるための、ちょっとした小ズルいTipsを紹介します Webプログラマ、Webエンジニアの皆さんが、個人で作るWebサービスやハッカソンなどで、短期間に集中してサービス開発してローンチしたいときに、もうちょっと自分でイイ感じにデザインできるといいなあという声をよく聞きます。 この企画は、そんなプログラマが、少ない手間で簡単に、ちょっといい感じのデザインに見せるための、ちょっとした小ズルいTipsを紹介します。 (注)このページでは、個々のデザイン要素を分かりやすく説明するために、実寸サイズより画像を拡大して使用しています。 ズルいデザインはSassとCompassを利用し

    少ない手間と知識でそれなりに見せる、ズルいデザインテクニック
  • UDIDにおけるセキュリティ&プライバシー問題

    UDID代替の識別子 最近では、アップルがAppStoreの審査時にUDIDを取得するアプリをrejectするようになった影響もあり、UDIDの代わりにUUID(Universally Unique Identifier)と呼ばれる、端末に直接は結び付かない識別子を用いてかんたんログインを実現するケースも増えてきているようです。 またiOS 6.0からは、ベンダ向けデバイス識別子(identifierForVendor)と広告事業者向けデバイス識別子(advertisingIdentifier)というものも登場しました。 前述したUDIDのセキュリティ上の問題を理解した開発者が、UDIDの代替としてこれらの識別子を用い、かんたんログインを実装するケースも増えてきているようですが、残念ながらこれで問題が解決するというわけではありません。ここでは続けて、これらの識別子が抱えるセキュリティ上の問

    UDIDにおけるセキュリティ&プライバシー問題
    kenichiice
    kenichiice 2012/11/13
    「結論としては、それらのいずれも「認証トークン」が果たすべき条件をすべて満たせるものではありません。それらを利用してかんたんログインを実現する限り、なりすましの危険性や漏えい後のアカウントリカバリが」
  • スマホアプリとプライバシーの「越えてはいけない一線」 - @IT

    スマートフォンアプリは果たしてどこまで、端末に関する情報を取得してもいいのだろうか。 位置情報と連動してお勧め店舗情報を表示したり、過去の検索履歴を基に商品を提案したりと、端末の情報やユーザーの行動履歴を活用するスマートフォンアプリが登場している。中には便利なものも多いが、一歩間違えれば、ユーザーのプライベートな情報が筒抜けになりかねない。結果として、スマートフォンを活用したビジネスやそれを支える広告市場までもが、否定的な目で見られ、発展を阻害される恐れもある。 この議論が起こったきっかけの1つは、ミログが公開していた「AppLog」と「app.tv」というアプリだ。AppLogはSDKの形で提供され、これを自前のアプリに組み込むと、Android端末にインストールされているアプリの情報やその起動回数を収集し、同社のアプリケーション分析サービスに送信するようになっていた。開発者にはインスト

  • 第8回 魂、奪われた後――弱いパスワードの罪と罰

    それでも判明できない理由 さて、先ほどのJohn The Ripperの結果だが6つのユーザーのパスワードのうち完全に復元することのできたものは、4つであった。「king」と「joker」のパスワードは、一部は復元されているものの、すべては判明していない。 このような場合は、残された手段は、総当たりという力技しかない。だが、John The Ripperの総当たりモードですべての文字種を試すとしてもいつまでに復元できるという保証はまったくないのである。 これがどの程度の計算量が必要なのかを見てみよう。アルファベットの大文字と小文字、数字、記号(スペースを含む)を使用している可能性があるパスワードで使用可能な文字種の数は、以下のようになる。 である。もはや、いくらか即答できない数字である。この数字に対して、1日に60億パターン試行できるとしても、すべてを試行するには3000年以上かかることに

    第8回 魂、奪われた後――弱いパスワードの罪と罰
    kenichiice
    kenichiice 2010/12/10
    「Rainbow Crackによるパスワード復元」
  • 8月版 ブート時間の短縮にかけるカーネルアスリートたち(1/2) - @IT

    小崎資広 2008/9/1 OLS(Ottawa Linux Symposium)が終わって気分も一新、Linuxカーネルメーリングリスト(LKML)でのパッチの投稿ペースがまた上がってきています。 先日、某所で議論したところ、2008年のOLSのハイライトは 基調講演でTOMOYO LinuxがTOMOYA Linuxと呼ばれていた Tシャツの平均サイズが10年間でMからXLに成長。みんな大きくなったね だとか。 それでは、2008年8月のLKMLでどんなことが起きたのか見てみましょう。 ブート高速化フレームワークの開発始まる OSのブート処理の1つに、デバイスを初期化する処理があります。これによりさまざまなデバイスが使用可能になり、ディスクやネットワークといったリソースが使えるようになるわけです。 従来、Linuxの起動処理において、デバイスドライバの初期化は1つ1つシーケンシャルに処

    kenichiice
    kenichiice 2010/03/02
    「そのため、openシステムコールに「O_CLOEXECフラグ」を追加し、このフラグを指定すると、オープンと同時にclose-execをONにできるようにするという解決方法が選択されました。」
  • EclipseやSpringで使われている基盤技術OSGiとは (1/3) - @IT

    読者の皆さんは、「OSGi」という技術を耳にしたことはありますか? ソフトウェア統合開発環境の1つ「Eclipse」のコア技術というとピンと来る方も多いと思います。稿では、ここ数年さまざまなアプリケーションの(SpringやJBoss、GlassFishでも)基盤技術として採用されているOSGiについて解説します。 日企業も多数参加している「OSGi Alliance」 OSGiを一言でいうと、「Javaモジュールの動的追加や実行を管理するための基盤システム」です。この基盤システムの仕様をOSGi Service Platform仕様として、非営利団体であるOSGi Allianceが規定しています。 このOSGiの仕様を規定するOSGi Allianceは、1999年に「Open Service Gateway Initiative」という名称で設立されました。「Gateway」とい

  • DB設計の神ツール「ERMaster」なら、ここまでできる

    DB設計の神ツール「ERMaster」なら、ここまでできる:ユカイ、ツーカイ、カイハツ環境!(11)(1/3 ページ) 無料のEclipseプラグイン「ERMaster」とは データベースのテーブル設計を行うときに皆さんは、どのようにしているでしょうか? いくつかの無料で利用できるツールが提供されているので、筆者はそれらを利用していましたが、最近「ERMaster」と呼ばれるEclipseプラグインの存在を知りました。 ERMasterは、ほかのツールに比べ、直感的で分かりやすいUI(ユーザーインターフェイス)に、カスタマイズ可能な、Excelで出力できるテーブル定義書、辞書機能など痒いところに手が届くERモデリングのツールです。稿では、このERMasterについてご紹介します。 ERMasterの主な特徴、8つ ERMasterには、主に次のような特徴があります。 【1】直感的で使いや

    DB設計の神ツール「ERMaster」なら、ここまでできる
  • 知られざるLTEのネットワーク構成

    新しいコアネットワーク新しいコアネットワーク (1)プロトコルスタックの単純化 LTEでは前に述べたように、3Gネットワークに比べてRNCがなくなるなど、ネットワーク構成がシンプルになっています。それに伴い、NodeBとRNC間のインターフェイスであったIubインターフェイスがなくなるなど、プロトコルも単純化されています。 従来のRNCから、LTEのeNodeBおよびコアネットワークに移行された主な機能、プロトコルを図4に示します。 eNodeBには、RLC(Radio Link Control)、MAC(Medium Access Control)、PDCP(Packet Data Convergence Protocol)の機能が移行されています。また、コアネットワークのMME、S-GWには、NAS秘匿機能、Paging(呼び出し)制御、ハンドオーバー(HO)パス制御が移されました。

    知られざるLTEのネットワーク構成
  • APIアクセス権を委譲するプロトコル、OAuthを知る ― @IT

    クロスドメインでのデジタルアイデンティティを守る APIアクセス権を委譲するプロトコル、 OAuthを知る 作島 立樹 NRIパシフィック 2008/1/21 マッシュアップと呼ばれる仕組みで、既存のWebサービスが次々とつながり、新たなサービスが登場している。しかし、メールアドレスなど重要な個人情報が意図せずに「つながれてしまう」可能性もある。そこで登場したのがアクセス権の「委譲」を目的としたプロトコル、OAuthである。記事ではOAuthの仕組みとともに、なぜそれが登場したのかという背景にも触れる(編集部) マッシュアップの犠牲になるユーザーのアイデンティティ GETなどのHTTPメソッドをもちいてURLへリクエストする、いわゆる「RESTful」【注1】なWeb APIを使ったアプリケーション同士の交流は、いままさに隆盛を極めている。「マッシュアップ」と呼ばれているこのサービス形態

  • JNIより簡単にJavaとC/C++をつなぐ「JNA」とは(1/4)-@IT

    インターネットの普及に加えて、リッチクライアント/RIAの発展とともに、アプリケーションの形態は、C/S(クライアント/サーバ)システムから、Webアプリケーションシステムにシフトしています。一般の情報発信システムだけではなく、企業の基幹情報システムまで、盛んにWebアプリケーションで構築するようになりました。 この変化の主役であるといわれる、Java技術は、Webアプリケーションシステムの発展とともに、ネットワークの親和性や、プラットフォーム適用の多様性で、広く受け入れられて、Webアプリケーションシステム開発の基盤技術になっています。 これまでのC/Sシステムでは、サーバロジックはC/C++で実装されるケースが一般的でした。C/SシステムからWebアプリケーションシステムにシフトする際に、Java技術を導入することを決めた場合、Java技術で、すべて新規開発するのは1つの選択肢ですが、

  • “本物のマクロ”でCのコード行数を半分に! - @IT

    2009/09/07 毎年夏に開催される軽量プログラミング言語(LL:Lightweight Language)をテーマにした「LLイベント」。第7回目となる「LLTV」が、2009年8月29日に東京・中野で開催された。この記事ではプログラムの一部、「大改善!!劇的ビフォーアフター」をレポートする。前編では、Rubyによるfortuneコマンドの“増築”と、Firefox拡張によるslコマンドの実装というネタ系発表をレポートした。中編となる記事では、C言語にLisp風のマクロを取り入れ、lsコマンドのソースコードを約半分に“修繕”する匠の技をレポートする。後編では、売り場業務が滞りがちだった販売管理システムをbashコマンドで“建て直した”という劇的ビフォーアフターの発表をレポートする。 Cで書かれたlsのソースコードの問題点 「Real/Macro Metaprogramming On

    kenichiice
    kenichiice 2009/09/09
  • Windows XP SP2のZoneIdとは?

    解説 Windows XP Service Pack 2(以下XP SP2)のInternet Explorer(IE)では、セキュリティ対策の一環として、新たに「ZoneId(ゾーンID)」と呼ばれる仕組みが導入された。インターネットゾーンからダウンロードしたファイルや、Outlook Expressで保存したメールの添付ファイルに対して、ZoneIdと呼ばれる一種の「目印(マーカー)」を付けておき、エクスプローラなどでダブルクリックして実行しようとすると、当に実行してもよいかどうかがユーザーに対して問い合わせられる機能である。そして、ユーザーが許可した場合にのみプログラムの実行が行われる。従来は、いったんローカルにダウンロードすれば何の制約もなくファイルを実行することができたが、ZoneIdにより、インターネットゾーンから取得したファイルに対しては、ある程度の制約を課すことができるよ

    Windows XP SP2のZoneIdとは?
    kenichiice
    kenichiice 2009/08/06
    「 XP SP2では、ZoneId情報を持つファイルを実行しようとすると、実行してもよいかどうかをユーザーに問い合わせる。」
  • あなたの知らないJDKの便利ツールたち

    Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします(編集部) 標準JDKに含まれる便利なツール 読者の皆さんは、最近のJDK(Java SE)に、開発やデバッグに便利な新しいツールが含まれていることをご存じでしょうか? 古くからのJava開発者は、古い時代のJDKのツールしか知らず、一方で新しいJava開発者はEclipse/NetBeansなどの統合開発環境に慣れてしまい、細かなコマンドツールを直に使う状況が減ってきているかもしれません。 そこで今回は、最近のJava SE 6含めて比較的新しいと思われるツールを以下の5種類に分けて紹介します。 プロファイリング トラブルシューティング/情報取得 監視 配備/補助 スクリプティング 「こんなツー

    あなたの知らないJDKの便利ツールたち
    kenichiice
    kenichiice 2008/11/20
    VisualVMなどの紹介
  • データベースもアジャイル開発に対応したい! (1/3) - @IT

    Jiemamy作者が考える “データベースの進化的設計” データベースもアジャイル開発に対応したい! アジャイルの考え方においては、実装前にシステム要件・設計を確定させることはせず、常に変化を受け入れていく体制が必要です。アジャイル開発の考え方にのっとるなら、アプリケーションだけではなくデータベースについても設計の凍結はせず、また、ソースコードに限らずデータベースの構成・設計についてもリファクタリングが適用されるべきです。Jiemamyはこの問題に取り組むプロジェクトとして始められました。稿ではこのJiemamyの取り組みを紹介します。 ソースやスキーマだけ管理しても意味がない 近年注目を集めている「アジャイル開発」は、リファクタリングが重要な要素の1つであることはご存じのとおりです。アジャイルの考え方においては、実装前にシステム要件・設計を確定させることはせず、常に変化を受け入れていく

    kenichiice
    kenichiice 2008/10/17
    「Jiemamy (じーまみー)は、現在私が開発中のOSSプロジェクトであり、Eclipseのプラグインとして提供されているデータベースの設計・リファクタリングサポートツールです。」
  • SeasarのO/RマッピングツールS2Dao

    SQLファイルの内容を実行させる 前ページで新しいカテゴリを追加する処理を行った際、SQL文を自動生成させて実行したため、IDカラムの値を保存しようとしてしまうことになってしまいました。それでも先ほどの処理はうまく実行できましたが、いつも自動生成されるSQL文だけで必要とする処理ができるとは限りません。 そこで、開発者がカスタマイズしたSQL文を決められた形式の名称を持つファイル(SQLファイル)に保存しておくと、その内容を読み込んでデータベースに対して実行してくれる機能を用いて、新しいカテゴリを追加する処理を行うSQLをカスタマイズしてみます。 SQLファイルには、リスト7のように書き込んでおきます。/*〜*/の部分はSQLコメントという機能で、ここではcategory変数のnameプロパティの値を表しています。その次に記述されている'カテゴリ名称'は、仮にこの値が設定されていない場合の

    SeasarのO/RマッピングツールS2Dao
  • syslogdの限界と次世代シスログデーモン

    2つの次世代syslogデーモン syslogdの問題点を克服したシスログデーモンは、特定機器のために用意された有償製品も含めれば数多くありますが、ここではオープンソースソフトウェアで、Linuxディストリビューションでも標準採用されている「syslog-ng」と「rsyslog」を紹介します。 次世代を意識した「syslog-ng」 syslog-ngはGPLで利用可能なオープンソースソフトウェアです。ハンガリーに拠点を構えるBalaBit IT Securityにより提供されています。「ng」はnext generationを意味し、まさに次世代を意識した、さまざまな機能を備えています。 1998年、当時未完であったDarren Reed氏の「nsyslog」を基に、キャリアクラスで使用されることを前提に開発が行われました。2006年にはIPv6対応やさらなる最適化が施されるなど、現在

    syslogdの限界と次世代シスログデーモン