タグ

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

  • コントローラとモデルをリファクタリングする

    前回はコントローラのスペックを作成しました。スペックの全文はGitHubにあります。今回はリファクタリング後のコントローラのコードを解説していきます。リファクタリング前のコードは以下のコマンドで参照可能です。 実際のリファクタリングは一度に全部の変更をしてしまうのではなく、「少し変更」→「テストを走らせて、グリーンであることを確認」→「コミット」というサイクルを何度も繰り返すことで行います。今回のリファクタリングもitems_controllerだけで20回ぐらいに分けてコミットしました。全てのコミットを解説していくときりがないので、主要な変更点をリファクタリングの前後で比較しながら解説していきます。 before_filterを使って重複をなくす before_filterは各コントローラのアクションの前段階に実行したいメソッドを指定するためのフィルターです。元のコードでもauthori

    コントローラとモデルをリファクタリングする
    at_home
    at_home 2013/12/26
    面白いこと言う/“リファクタリングをしたい誘惑に負けて延々とやってしまうことを「リファクタベーション」(リファクタリング+マスターベーション)と呼んでいました。”
  • ActiveRecordの更新系操作

    前回はActiveRecordを使った参照について解説しましたが、今回は登録、更新、削除などの更新系を中心に見ていきます。 前回の記事では、Ruby on Railsのモデル層を担当するActiveRecordの概要と参照系の操作について解説しました。今回は、登録、更新、削除などの更新系の機能を中心に見ていきます。 登録・更新の際には、モデルに不正な値が保存されないようにデータをチェックして、問題があれば保存しないようにする「検証」(Validation)の仕組みが走ります。この検証機能の背後には、ActiveRecordのコールバックという仕組みがあります。コールバックを使うことで、登録、更新、検証、削除処理の前後に様々な処理を追加できます。今回と次回の2回にわたって、ActiveRecordの更新系操作のやり方とともに、検証、コールバックについて詳しく解説していきます。また、検証メッセ

    ActiveRecordの更新系操作
  • タッチUXを実現する7つのポイント

    思ったより指はじっとしていない。タッチUIの特徴と癖を分析して、タッチUXを実現する7つのポイントを紹介する。 普及してきたタッチデバイス 現在、スマートフォンやタブレット端末がすさまじい勢いで普及してきています。iPhone/iPadは新製品が出るたびに販売記録を塗り替え、Androidのスマートフォンやタブレットも各社からさまざまな端末が発売されています。今秋にはMicrosoftからWindows 8/RTも発売され、いよいよタブレットが格的な普及期に入ります。 これらはすべてタッチUIで操作する、ということがこれまでのPCと大きく異なります。 直感的で分かりやすいタッチUIはあっという間に市場に受け入れられました。ユーザーは新しい体験を期待と興奮で歓迎しました。今やスライドしてページスクロールは当たり前で、スワイプでページをめくることに迷う人はいません。 同時に、そのような端末で

    タッチUXを実現する7つのポイント
    at_home
    at_home 2012/10/18
    タッチしたい場所と実際のポイントはズレるんだって
  • which-コマンドの場所を調べるには

    whichコマンドは、環境変数のPATHに設定されているディレクトリ順に調べ、最初に見つかったコマンドを表示する。PATHに設定されている全ディレクトリを調べるには、-aオプションを使用する。 $ which -a vedit /usr/vine/bin/vedit ~/bin/vedit ←ユーザーのホームディレクトリ下にあるbinにもveditが見つかった コマンド(プログラム)のディレクトリを知るにはでは、typeというbashの組み込みコマンドを紹介している。このtypeコマンドとwhichコマンドにはどのような違いがあるのだろうか。 whichコマンドは、コマンドのフルパスを表示するプログラムであるのに対して、typeコマンドは、指定したコマンドがbashでどのように解釈されるかを調べるコマンドだ。例えば、エイリアスされたlsコマンドをwhichとtypeの両方で調べてみると、w

    at_home
    at_home 2012/10/04
    cd is a shell builtin
  • スマホアプリ開発に超絶便利なBaaSとは、MEAPとは

    バックエンドの設定用のモバイル向けクラウドサービス「BaaS」と、企業向け業務アプリの複数プラットフォーム対応ソリューション「MEAP」についてまとめて紹介します サーバ周りの開発に悩むアプリ開発者の救世主「BaaS」 近年、iPhoneAndroidなどのスマートフォンの浸透とともに、アプリの利用も広がり、多くのスマートフォン向けアプリが開発されるようになってきました。大規模な電子商取引系のWebサービスの開発に比べれば、少人数の開発者で短期間に開発できるのがスマートフォンアプリです。しかし、世界中の数多くの人々に使ってもらえる新しいサービスを考えた場合、アプリ単体で完結しないことが多く、Webサーバとの連携が必須になる場合も考えられます。 伝え聞くところによると、人気の写真共有アプリ「Instagram」の開発者は、初めは、まったくバックエンドに関する経験がなく、アプリを開発しながら

    スマホアプリ開発に超絶便利なBaaSとは、MEAPとは
  • いまアツいアジャイルプロジェクト管理ツール9選+Pivotal Tracker入門

    いま再びキてる「アジャイル」開発 世界で広がりつつあるアジャイル 2001年の「アジャイルソフトウェア開発宣言」から10年が経過しました。アジャイルマニフェスト登場当時の熱狂的な雰囲気は一時期停滞気味でしたが、最近再びアジャイル開発が広がりを見せています。 その理由の中心は、ITの進歩や世界のボーダレス化とともに、ビジネスの変化のスピードが早くなり、競争が激化したため、一刻も早く顧客に新しい価値(ソフトウェア)を届ける必要性が増したため、アジャイルに開発する必要が出てきたためでしょう。 欧米はもちろん、日でもアジャイルに対する注目は増していて、先日開催されたDevelopers Summit 2012のデブサミ2012アワードでも、角谷信太郎氏の講演『アジャイルマニフェスト ディケイド』が1位を取り、来場者数も過去最高を記録するなど高い注目を浴びています。 群雄割拠 アジャイルプロジェク

    いまアツいアジャイルプロジェクト管理ツール9選+Pivotal Tracker入門
    at_home
    at_home 2012/09/18
    しかしこれを読むとBacklogs(Redmine)のが良さ気かなぁ
  • 「OAuth」の基本動作を知る

    デジタル・アイデンティティの世界へようこそ はじめまして、OpenID Foundation JapanでエバンジェリストをしているNovです。 この連載では、僕を含めOpenID Foundation Japanにかかわるメンバーで、OpenID ConnectやOAuthなどの「デジタル・アイデンティティ(Digital Identity)」にかかわる技術について紹介していきます。 APIエコノミー時代のデジタル・アイデンティティ 世界中で9億人のユーザーを抱える「Facebook」や5億人のユーザーを持つ「Twitter」など、巨大なソーシャルグラフを持つサービスが、日々その存在感を増しています。日でも、グリーやモバゲーなどがそれぞれソーシャルゲームプラットフォームを公開し、国内に一気に巨大なソーシャルゲーム市場を作り上げました。最近では、ユーザー数が5000万人を突破し、プラット

    「OAuth」の基本動作を知る
  • 第4回 要素の操作&ユーティリティ編

    連載目次 $.eachメソッドは、引数objで指定されたオブジェクト(ハッシュ)、または配列の内容を、コールバック関数fncにより順に処理します。 コールバック関数fncは、以下のような性質を持ちます。 第1引数は、オブジェクト(ハッシュ)のキー、または配列のインデックス番号を受け取る 第2引数は、オブジェクト/配列の個々の値を受け取る 戻り値としてfalseを返した場合、その場で繰り返し処理を中止(それ以外の値を返した場合には無視) それでは、具体的な例を見てみましょう。以下のサンプルは、配列booksの内容を順にリスト表示します。ただし、categoryキーが「ASP.NET」以外のものが登場したところで処理を打ち切ります。 <script type="text/javascript"> $(function() { // 書籍情報を配列booksに格納 var books = [ {

    第4回 要素の操作&ユーティリティ編
    at_home
    at_home 2012/08/16
    each処理
  • 「コア技術こそが最強」と、フラッシュメモリ開発者は語る

    世界一の技術気で追求し続ける、フラッシュメモリ開発者 対談シリーズ「海外から見た! ニッポン人エンジニア」ではグローバル組織・人事コンサルティングを行うジェイエーエス 代表取締役社長 小平達也が、海外と深い接点を持つ人物へのインタビュー通じ、世界の経済・技術動向、文化政治状況などの外部環境の最新状況を掘り下げていく。 第12回目は、今年『世界で勝負する仕事術―最先端ITに挑むエンジニアの激走記―』(幻冬舎新書)を出版した、竹内健 中央大学理工学部教授に話を聞いた。 竹内氏は、「フラッシュメモリ」の開発に初期から携わり、東芝を大きく成長させたエンジニアの1人である。また、「良い技術が売れるためには、経営の知識が必要」という問題意識を持ち、スタンフォード大学ビジネススクールでMBAを修了したという、エンジニアとしては異色な経歴の持ち主である。現在は、東京大学工学系研究科准教授を経て、中央

    「コア技術こそが最強」と、フラッシュメモリ開発者は語る
    at_home
    at_home 2012/08/01
    当たり前のコトだけど言葉に重みがあるなぁ
  • ファーストサーバの障害、原因はプログラム記述ミスとプロセスの複合 - @IT

    2012/06/25 レンタルサーバサービスを手掛けるファーストサーバは6月25日、6月20日17時に発生した大規模障害に関する中間報告を公表した。メンテナンスのためにサーバ群に適用した更新プログラムに記述漏れがあったうえに、その際の検証手順が不十分だったこと、さらにバックアップ仕様の変更が重なったことが原因となり、データ消失に至ったという。 障害の影響を受けたのは、共有サーバサービスの「ビズ」「ビズ2」、専用サーバサービスの「エントリービズ」「エンタープライズ3」ならびに「EC-CUBEクラウドサーバ マネージドクラウド」の顧客の一部。FTPなどでサーバ上にアップロードしたデータのほか、メールボックス内のデータやデータベース、システム領域に保存されていた設定情報などが消失した。 同社は障害発生以来、外部専門業者を交えてデータ復旧を試みてきたが、23日、「データ復旧を行うことは不可能」とい

    at_home
    at_home 2012/06/26
    ファーストサーバ流石に潰れる気がする・・・
  • 第10回 iPhoneユーザーのためのWi-Fiスポット切り捨て設定術

    第10回 iPhoneユーザーのためのWi-Fiスポット切り捨て設定術:Windowsネットワーク管理者のためのiPhone/iPod touch入門(1/2 ページ) 外出先でWi-Fiスポットに接続できたと思ったら3Gより遅い…… そんなWi-Fiスポットへ、iPhoneが自動接続しないようにする設定方法を解説する。 連載目次 最近、外出中にスマートフォンが公衆無線LANサービス(Wi-Fiスポット)のアクセス・ポイントを検出することがとても多くなった。だが、見つかったWi-Fiスポットに接続しようとすると、思いのほかログインに時間がかかり、その間はほかの作業ができなかったりする。また接続できても通信速度は3G回線より遅いこともよくある。もう面倒なので外出中はWi-Fiをオフにしよう…… これは2012年4月に公開した弊誌4コマ・マンガ「がんばれ!アドミンくん」の第310話「Wi-Fi

    第10回 iPhoneユーザーのためのWi-Fiスポット切り捨て設定術
    at_home
    at_home 2012/06/22
    この設定後でやっとこう
  • ゆるふわ解釈しがちな「労働時間」の定義と考え方

    を労働時間の途中に与えること、とされています。 始業時刻と終業時刻のとらえ方は、地味にクリティカル この始業時刻と終業時刻、シンプルなようですが、実はさまざまなとらえ方があります。 いろいろな企業の就業規則を見てみると、単に「始業時刻は○時○分、終業時刻は○時○分」とだけ書かれているものがあれば、それぞれの時刻を定めた他に「始業時刻とは実際に業務を開始する時刻をいい、終業時刻とは業務の終了時刻をいう」と細かく定めているものもあります。 なぜこのような違いがあるかというと、労働時間は給与を計算するための根拠となるからです。 給与は実際に働いた時間に対して計算し、支給するのが原則です。そのため、始業時刻・終業時刻をどうとらええるべきか、定めているというわけです。 始業時刻ギリギリに出社し、まずはコーヒーでも入れてWebでニュースをチェックし、実際に仕事を始めるのは始業時刻を過ぎてから……という

    ゆるふわ解釈しがちな「労働時間」の定義と考え方
    at_home
    at_home 2012/06/21
    元SEという視点が面白い
  • bashのプロンプトを変更するには - @IT

    Linuxの標準シェルであるbashでは、PS1という環境変数によってプロンプトを定義している。従って、exportコマンドでPS1を変更すればいい。 デフォルトでは「[ユーザー名@ホスト名 カレントディレクトリ]」というプロンプトになっている。これを単純に「$」というプロンプトに変更するには、以下のコマンドを実行する。

  • SQLライクにHadoop Hiveを使い倒す!

    パーティションを利用する 今回は少し凝ったテーブルを定義をしてみましょう。 郵便番号データは毎月更新されるので、テーブル指定時にバージョンも指定できるようにします。このような場合、Hiveではパーティションを使います。 以下に郵便番号を保存するテーブル「zip」を定義しますが、日付型DATEのパーティションverを設定するようにします。 hive> CREATE TABLE zip (zip STRING, pref INT, city STRING, town STRING) > PARTITIONED BY (ver DATE) > ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' > LINES TERMINATED BY '\n'; OK Time taken: 0.128 seconds

    SQLライクにHadoop Hiveを使い倒す!
    at_home
    at_home 2012/02/14
    hadoop hiveはfacebookが開発したそうな。hadoop関連は奥が深いなぁ
  • 危機管理体制を整えよう! 個人情報漏えい後の対応ガイドライン

    危機管理体制を整えよう! 個人情報漏えい後の対応ガイドライン:Security&Trust ウォッチ(36) 前回のコラム「メールアドレスを漏えいから守る方法」では、メールアドレスという情報の重要性の見直しと漏えいから守る方法について紹介した。しかし、残念ながらどんなに個人情報保護対策を行っていたとしても、漏えいする可能性は0%にはならないものだ。 日々の対策を実施することも重要であるが、万が一漏えい事件が発生してしまった後の対処方法を知っておき、その状況になったときに確実に対応できるように危機管理体制を整えておくことが重要である。事件後の対処方法次第で個人情報漏えいを起こしてしまった企業のイメージがどれぐらい回復できるかが決まってくる。情報資産の扱いを甘く見てはならない。 個人情報漏えいが発生した後に正常な状態に復旧するまでの一般的な手順は次のようになる。 こういった手順と並行して(3)

    危機管理体制を整えよう! 個人情報漏えい後の対応ガイドライン
  • Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT

    IT 会議室 Indexリンク Windows Server Insider Insider.NET System Insider XML & SOA Linux Square Master of IP Network Java Solution Security & Trust Database Expert RFID+IC リッチクライアント & 帳票 Server & Storage Coding Edge @ITクラブ Cafe VB業務アプリケーション開発研究 @IT SpecialPR

  • ノートPCでデュアルディスプレイの表示設定を変更する

    現在販売されている多くのノートPCには、外部ディスプレイ出力が装備されており、そこにディスプレイやプロジェクタを接続することで、デュアルディスプレイにすることができる。デュアルディスプレイでは、液晶ディスプレイと同じ画面が表示できるほか、設定によって液晶ディスプレイの上下左右のいずれかの領域を表示させることができる。デュアルディスプレイの設定は、[画面のプロパティ]-[設定]タブで行える。 解説 現在販売されているノートPCに搭載されているグラフィックス・チップの多くは、デュアルディスプレイに対応しており、外部ディスプレイを接続することで、液晶ディスプレイと同じ画面を外部ディスプレイに表示(クローン表示、ミラー表示)したり、外部ディスプレイと合わせた広い作業領域(拡張デスクトップ表示)を実現したりできる。 この機能を利用すれば、プレゼンテーションやデモンストレーションを行う際に、液晶ディス

    ノートPCでデュアルディスプレイの表示設定を変更する
  • Webアプリケーションを作る前に知るべき10の脆弱性 ― @IT

    Webアプリケーションが攻撃者に付け込まれる脆弱性の多くは、設計者や開発者のレベルで排除することができます。実装に忙しい方も、最近よく狙われる脆弱性のトップ10を知ることで手っ取り早く概要を知り、開発の際にその存在を意識してセキュアなWebアプリケーションにしていただければ幸いです。 Webの世界を脅かす脆弱性を順位付け OWASP(Open Web Application Security Project)は、主にWebアプリケーションのセキュリティ向上を目的としたコミュニティで、そこでの調査や開発の成果物を誰でも利用できるように公開しています。 その中の「OWASP Top Ten Project」というプロジェクトでは、年に1回Webアプリケーションの脆弱性トップ10を掲載しています。2004年版は日語を含む各国語版が提供されていますが、2007年版は現在のところ英語版のみが提供さ

    Webアプリケーションを作る前に知るべき10の脆弱性 ― @IT
  • gaedirectをセットアップしてボランティア情報を管理

    gaedirectをセットアップしてボランティア情報を管理:クラウドとgaedirectでできる緊急対応マッシュアップ(4)(1/3 ページ) gaedirectのダウンロードとセットアップも 連載「クラウドとgaedirectでできる緊急対応マッシュアップ」では、第1回では「gaedirectを使用したGAEクラウドのBigtable基操作」でgaedirectの意義と基機能を紹介し、第2回の「Google Chart APIで作成する電力使用状況グラフ」、第3回の「Google Maps APIとのマッシュアップで作成する津波、不忘の記録」ではグラフ、地図表示とのマッシュアップを紹介してきました。 最終回となる今回は「ボランティア情報管理」を題材としてサンプルを作成し、Google App Engine(以下、GAE)/クラウドのデータストア「Bigtable」をJavaScri

    gaedirectをセットアップしてボランティア情報を管理
  • Windowsでポートのリッスン状態を調査する

    対象OS:Windows 2000 Professional/Windows XP Home Edition/Windows XP Professional/Windows 2000 Server/Windows 2000 Advanced Server/Windows Server 2003 解説 TCP/IPネットワークがつながらないといったトラブルが発生した場合、まず確認するのはpingコマンドによる応答があるかどうかであろう。これにより相手のサーバが生きているかどうかや、そのサーバまでの経路が有効であるかどうかなどが分かる。 そしてpingテストがパスすれば、次は特定のTCPやUDPのポートに対する接続テストを行い、サーバとクライアント間で通信が正しくできているかどうかを調べる、というのが一般的なところだろうか。 この接続性のテストのためにはいくつかの方法やツールがあるので、ここで

    Windowsでポートのリッスン状態を調査する