タグ

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

  • ダイナミックリンクとスタティックリンク

    前回は「ビルド」という作業の中身を解説しました。今回は、その中でも「リンク」に焦点を当てて、その作業の内容を解き明かします(編集部) 再利用可能なソフトをまとめたものがライブラリ 前回はビルドとは一体どういう作業なのかということを解説しました。ざっと復習すると、ビルドとはコンパイルとリンクを実行して、ソースコードから実行可能な形式のファイルを作ることです。コンパイルにはコンパイラ、リンクにはリンカというツールが使われるのでした。 リンカへの入力は、2種類あります。1つはソースコードをコンパイルした結果であるオブジェクトファイル。これは前回解説しました。もう1つはライブラリです。 ライブラリとは一般に、再利用可能なソフトウェアの集合を指します。汎用性の高い処理はライブラリにしておけば、次に必要になったときに、もう一度作らずに済むというわけです。世界には多種多様なライブラリが存在しています。A

    ダイナミックリンクとスタティックリンク
  • iPhone/Android含むブラウザ自動テストの最終兵器Selenium WebDriverとは

    Webアプリケーションのテスト自動化をサポートするツール「Selenium WebDriver」は2011年にリリースされました。 Selenium WebDriverは広範なWebブラウザのサポートを行っていた「Selenium1(Selenium RC)」と高速軽量で汎用的なWebブラウザエミュレータの機能を持つ「WebDriver」を統合したものです。 稿では、Selenium WebDriverを簡単に試してみたい方や自動テストの実施を検討している方のために、前後編に分けて紹介します。Selenium WebDriverの特徴を整理するとともに、Selenium WebDriverを利用したWebアプリケーションに対する簡単な自動テストの実装、実施手法について解説します。 稿で使用する用語の説明 Selenium WebDriver Selenium WebDriverはSel

    iPhone/Android含むブラウザ自動テストの最終兵器Selenium WebDriverとは
  • エンジニアとして進化し続けるには

    ITゆかりの方々、カッコいいエンジニアの皆さんにお話を伺うシリーズ、今回は日米で活躍する開発者 増井さんに、エンジニアが進化し続けるために必要なマインドセットについて解説してもらう いまエンジニアとして働いている人の中には、管理職などにならず一生エンジニアとして生きていきたいと考えている人もいるでしょう。その場合、次々と育っていく若いエンジニアに負けないために、年を重ねるとともにエンジニアとして進化し続けていかなければなりません。そのためには何が必要か考えてみましょう。 短期の「チャレンジ」と長期の「目標」を考えよう エンジニアとして進化し続けるためには、常に勉強し続けることが求められます。しかし新しく面白そうな技術が次々と生まれている今、漫然と新しいことを勉強していても、一線のエンジニアとして長く生き残ることは難しいでしょう。 必要なのは、正しいタイミングに正しい方向で努力していくこ

    エンジニアとして進化し続けるには
  • スケーラブルで関数型でオブジェクト指向なScala入門

    Scalaの特徴を紹介し、基構文や関数、 クラスなど、Scalaの基的な機能について 解説する入門連載 EclipseでScalaプログラミングを始めるための基礎 スケーラブルで関数型でオブジェクト指向なScala入門(1) 概要や5つの特徴を紹介し、開発環境を構築して対話型実行環境「REPL」やEclipse上でHello Worldを実行します

  • ブラウザキャッシュでパフォーマンス向上

    キャッシュ制御の方法 サーバサイドからキャッシュを制御するには、以下の2つの方法がある。 HTTPヘッダによる制御 METAタグによる制御 まずは、これらがどのようなものか、軽くおさらいしておく。 ■HTTPヘッダによる制御 HTTPプロトコルでは、HTTPヘッダにさまざまな情報を格納することができる。そのうちいくつかの情報は、キャッシュ制御のためのヘッダである。リクエスト(クライアント→サーバ)用のものと、レスポンス(サーバ→クライアント)用、リクエスト/レスポンス共通のものが存在する。 ■リクエスト用 If-Modified-Since 日時を指定する。指定した日時より新しいコンテンツの場合のみデータを返却するようにサーバに指示する。ローカルキャッシュの最新確認に使用される If-None-Match 指定したエンティティタグに一致しない場合のみコンテンツを返却するようにサーバに指示す

    ブラウザキャッシュでパフォーマンス向上
  • 開発者がアプリのアイデアをヒラメクための22箇条まとめ

    「アプリやサービスを開発する技術はあるが、アイデアが出ない」という開発者たちのために、@ITで掲載したアイデアの発想につながる記事から抽出して22箇条としてまとめた。 ヒラメキを、すぐ形にできる開発者だからこそ これまで、@ITでは多くのアプリコンテストを行ってきた。そこで、いつも課題となるのは、「アプリやサービスを開発する技術はあるが、アイデアが出ない」という開発者たちの悩みだ。しかし、当にそうなのだろうか。 開発者の方がより良いアイデアを思い付くことがあるのでは、ないだろうか。なぜなら、何気ないヒラメキを、すぐに形にできることは重要なことだからだ。 例えば、ライフレシピ共有サイト「nanapi」のロケットスタート 代表取締役 古川健介氏へのインタビュー記事「伝えることを考え抜く『nanapi』のUIデザイン」(2011年6月29日、聞き手ホシナ カズキ氏)を引用しよう。 デザインに限

    開発者がアプリのアイデアをヒラメクための22箇条まとめ
  • JenkinsでCIすればiOSアプリのビルドは、もう面倒くさくない

    続いて、開発するアプリの登録を行います。アプリの登録では【1】アプリ名や識別名などの登録、【2】プロビジョニングプロファイルを作成しダウンロード、インストールします。 これらの準備が終わったら、App Storeへ公開するためのアプリ開発、パッケージング、アップロードといった流れになります。 「Jenkins Xcode Integration Plugin」でビルドを自動化 このアプリ公開までの作業のうち、いくつかをJenkinsによって自動化することで継続的にアプリを公開できるようになります。通常、アプリのビルドやパッケージングはXcodeから行うことになりますが、Jenkinsから実行する場合にはXcodeのコマンドラインツールである「xcodebuild」などを使って処理を行います。 Jenkinsジョブからシェルを起動してxcodebuildなどのコマンドを直接実行するか、「Je

    JenkinsでCIすればiOSアプリのビルドは、もう面倒くさくない
  • GitHubが実践するオープンソース式マネジメント法

    GitHubのミッションは、「1人で作業するよりも複数の人とコラボレーションしながら作業した方がいい。人のために、技術者のためにステキな環境を作ること」だ。GitHubは、2008年4月に「コラボレーションできる環境を作りたい」という夢を持った3人の想いが集まり始まったプロジェクトである。それから約5年経った現在では、300万人のユーザー数と500万のリポジトリが登録されている。 GitHubのはじまり 創業者の1人、ピージェー氏がプログラミングを始めたのは14歳のときである。ピージェー氏の父がパソコンを買ったことがきっかけで、「自分でいろんなものを作ってみたい」と好奇心が生まれたそうだ。 共同創業者のクリス・ワンストラス(Chris Wanstrath)氏と出会ったのは、「CNET Networks」で働いていたときであった。ピージェー氏とクリス氏は当時、Rubyを使ったプロジェクトやバ

    GitHubが実践するオープンソース式マネジメント法
  • iOS端末ハードウェアの歴史と近接センサアプリ開発(1/2) - @IT

    スマートフォンの「スマート」は、さまざまなセンサやハードウェアを使うところにある。連載で、さまざまなセンサやハードウェアを使うiOS(iPhoneiPad、iPod touch)のスマートなアプリを作ってみよう iOS端末ハードウェアの歴史まとめ 日iPhoneiPhone 3G)が販売されてから、もうすぐ4年になります。その間にiPhone 3GS、iPhone 4、iPhone 4Sと3回のモデルチェンジがありました。モデルチェンジの中でハードウェアの機能も増えています。 iPhone 3G マルチタッチディスプレイ、マイク、スピーカー、GPS、カメラ、加速度センサ、近接センサ、環境光センサなど iPhone 3GS iPhone 3Gの機能+カメラ(オートフォーカス、ビデオ)、音声コントロール、電子コンパスなど iPhone 4 iPhone 3GSの機能+3軸ジャイロスコ

  • Web2.0の先にあるC10K問題 ― @IT

    個々のクライアントがサーバに要求する処理量は小さなものでハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする――。これが最近Web開発者の間で話題となっている「C10K問題」(クライアント1万台問題)だ。 プロセス番号が足りなくなる パンクするのは例えばプロセス番号だ。 Ajaxの実装として最近注目されている技術に“Comet”(コメット)と呼ばれるものがある。HTTPのセッションをあえて切断せずに、サーバとクライアント間でつなぎっぱなしにするテクニックだ。Cometを使えばクライアントからのリクエストに応えるだけでなく、サーバ側からも不定期に情報を送り出すことができる。例えば、Web上でチャットサービスを実装するには、通常はクライアント側からサーバに一定間隔でポーリングすることで、ほかのユーザーの発言分をサーバから取得して表示するが、Cometの

  • Facebook Graph API活用iPhoneアプリ開発入門

    Facebook Graph API活用iPhoneアプリ開発入門:書籍転載:Facebook SDK for iOSアプリ開発ガイド(1)(1/3 ページ) Facebookのソーシャルグラフを扱うiOSアプリを作る 「Facebook SDK for iOS」は、iOS(iPhoneiPad、iPod touch)用のSDKで、Objective-Cで書かれています。企画では、iOSアプリケーションにFacebook連携機能を盛り込むことを想定し、前後編にわたり、以下の方法を解説します。 iOSアプリを使ったログイン Facebook Graph API(以下、Graph API)を利用した情報の取得 Graph APIを利用した投稿 Legacy REST API(「Old REST API」という呼称も使われている)やFQLの利用 ダイアログを使った投稿 企画は、アスキー・メ

    Facebook Graph API活用iPhoneアプリ開発入門
  • Railsのコントローラをテストする

    前回はインテグレーションテストとしてCucumberでテストを作成しました。今回はユニットテストとして、RSpecを使ってコントローラのテストを作成します 前回はインテグレーションテストとしてCucumberでテストを作成しました。今回はユニットテストとしてRSpecを使ってコントローラのテスト(RSpecのテストコードは“スペック”と呼ばれるので、以降はスペックと呼びます)を作成します。稿で紹介するスペックの全文はGitHub上にあります。 最初に、コードレビューの回で述べたコントローラの役割についてもう一度おさらいしてみましょう。 コントローラは外部から来たリクエストを受け付け、レスポンスを返すのが役割です。具体的には以下の3つの動作をおこないます。 適切なオブジェクトをとってくる オブジェクトに対する何らかの操作を指示する 操作が成功した際と失敗した際のビューの振る舞いを指定する

    Railsのコントローラをテストする
  • 減り続けるメモリ残量! 果たしてその原因は!? 第1回 (1/3) − @IT

    減り続けるメモリ残量! 果たしてその原因は!?:Linuxトラブルシューティング探偵団 番外編(1)(1/3 ページ) NTTグループの各社で鳴らした俺たちLinuxトラブルシューティング探偵団は、各社で培ったOSS関連技術を手に、NTT OSSセンタに集められた。普段は基的にNTTグループのみを相手に活動しているが、それだけで終わる俺たちじゃあない。 ソースコードさえあればどんなトラブルでも解決する命知らず、不可能を可能にし、多くのバグを粉砕する、俺たちLinuxトラブルシューティング探偵団! 助けを借りたいときは、いつでもいってくれ! OS:高田哲生 俺はリーダー、高田哲生。Linuxの達人。俺のようにソースコードレベルでOSを理解している人間でなければ、百戦錬磨のLinuxトラブルシューティング探偵団のリーダーは務まらん。 Web:福山義仁 俺は、福山義仁。Web技術の達人さ。Ap

    減り続けるメモリ残量! 果たしてその原因は!? 第1回 (1/3) − @IT
  • 減り続けるメモリ残量! 果たしてその原因は!? 第2回 (1/3) − @IT

    減り続ける利用可能メモリ……そしてついにリブート!:Linuxトラブルシューティング探偵団 番外編(2)(1/3 ページ) NTTグループの各社で鳴らした俺たちLinuxトラブルシューティング探偵団は、各社で培ったOSS関連技術を手に、NTT OSSセンタに集められた。普段は基的にNTTグループのみを相手に活動しているが、それだけで終わる俺たちじゃあない。 ソースコードさえあればどんなトラブルでも解決する命知らず、不可能を可能にし、多くのバグを粉砕する、俺たちLinuxトラブルシューティング探偵団! 助けを借りたいときは、いつでもいってくれ! OS:高田哲生 俺はリーダー、高田哲生。Linuxの達人。俺のようにソースコードレベルでOSを理解している人間でなければ、百戦錬磨のLinuxトラブルシューティング探偵団のリーダーは務まらん。 Web:福山義仁 俺は、福山義仁。Web技術の達人さ。

    減り続けるメモリ残量! 果たしてその原因は!? 第2回 (1/3) − @IT
  • ちょっと変わったLisp入門 - @IT

    Lispの一種であるScheme。いくつかある処理系の中でも気軽にスクリプトを書けるGaucheでLispの世界を体験してみよう(編集部) 「Gaucheでメタプログラミング」と題して、これからGaucheを使ったプログラミングの連載を書かせていただきます吉田裕美です。よろしくお願いいたします。 Gaucheとは 今回の連載で取り上げるGaucheはハワイ在住の日ハッカー、川合史朗さんが作った、Lispの一種であるSchemeのオープンソース処理系です。 Gaucheの特徴は、PerlRubyのように気軽に使える軽い処理系だということです。Perl同様に正規表現や文字列操作が行え、ちょっとしたツールの作成にも使えます。しかし、非常に強力なCommon Lisp風オブジェクトシステムを持ち、Lispならではのマクロに加え、Webやグラフィックスなどの豊富なライブラリも持っているので実用

    ちょっと変わったLisp入門 - @IT
  • 開発者が知らないと残念過ぎるAndroid 4.1の新機能36選

    もはやメジャーアップデートAndroid 4.1が登場 2012年6月27日、グーグルAndroidのバージョン4.1、コードネーム「Jelly Bean」を発表しました。7月10日には、ソースコードも公開されています。

    開発者が知らないと残念過ぎるAndroid 4.1の新機能36選
  • JenkinsでCI(継続的インテグレーション)すればAndroidアプリ開発はもう怖くない

    JenkinsでCI(継続的インテグレーション)すればAndroidアプリ開発はもう怖くない:Androidアプリ開発テスト入門(6)(1/2 ページ) 日Androidの会テスト部が、いままで培ってきたAndroidアプリ開発におけるテストのノウハウを、実際のテストコード例とともに紹介していきます 連載「Androidアプリ開発テスト入門」では、Androidアプリを開発している方のためにテストの基的なノウハウを解説しています。第6回では、CIツールである「Jenkins」を用いてAndroidをテストする方法を解説します。 いまさら聞けない「継続的インテグレーション(CI)」とは 「継続的インテグレーション」(以下、CI)とは、アジャイルのベストプラクティスの1つで、「すべてが自動化された再現可能なビルド・テストを日に何度も行うこと」です。 CIのメリットには、次のものがあります

    JenkinsでCI(継続的インテグレーション)すればAndroidアプリ開発はもう怖くない
  • 連載インデックス「Androidアプリ開発テスト入門」 - @IT

    Androidの会テスト部が、いままで培ってきたAndroidアプリ開発におけるテストのノウハウを、実際のテストコード例とともに紹介していきます ※連載はAndroidアプリ開発自体の解説ではなく、Androidアプリ開発におけるテストに関する連載です。Androidアプリ開発自体の解説については下記連載「Androidで動く携帯Javaアプリ作成入門」をご参照ください

  • 位置情報を取得する仕組み

    可能性の広がる位置推定技術。ケータイやカーナビ、モバイル端末での位置推定の仕組みを、具体的な製品や実装方法を交えて説明 位置情報の利用の広がり GPSを搭載した携帯電話の普及などによって、位置情報は単に道案内として利用されるだけではなく、位置情報に関連付けられた天気・お店などさまざまな情報が得られるようになってきました。 また、近年の無線通信技術の進歩によって、大量の情報がどこでも得られるような環境も整ってきています。これに合わせて、いままで携帯電話などを中心に利用されてきた位置情報が、PCにも広がりを見せています。 例えば、2009年1月の時点では、位置情報を取得する機能を搭載したノートPCが登場しているほか、Windows 7のベータ版には、位置情報に関する項目が標準で追加されています。 連載では、可能性が広がりつつある位置情報に関する技術について、具体的な実装方法を交えて紹介してい

    位置情報を取得する仕組み
  • リーン・スタートアップが生む価値――「Just do it!」の無駄を省く

    プログラマ向けのリーン・スタートアップ入門 「リーン・スタートアップ(Lean Startup)」は、いま世界中の起業家たちが注目している考え方です。日でも、『リーン・スタートアップ』の日語版が出版されたり、著者エリック・リースが来日したりと、注目を集めています。 そこで連載では、スタートアップで働くことに興味を持つエンジニアに向けて、リーン・スタートアップを解説します。 なぜスタートアップは失敗が多いのか? 無駄が多いからだ リーン・スタートアップとは、これまでにない新しい製品やサービスを作り出すための手法・考え方です。 提唱者は、エンジニア出身で連続起業家として名を馳せる、エリック・リース。彼のスタートアップで得た失敗と成功の経験をもとにして、まとめられたものが「リーン・スタートアップ」です。 「世の中の多くのスタートアップは失敗している。原因の多くは、来しなくてもいい無駄なこ

    リーン・スタートアップが生む価値――「Just do it!」の無駄を省く