タグ

ブックマーク / thinkit.co.jp (24)

  • Androidにおけるセキュリティ設計と動作(後編)

    ※この記事は、書籍『Android Security 安全なアプリケーションを作成するために』の第3章の内容を、ThinkIT向けに特別にオンラインで公開しているものです。詳しくは記事末尾の書籍紹介欄をご覧ください。 今回は、前回の「第3回 Androidにおけるセキュリティ設計と動作(前編)」に続いて、アンドロイドのセキュリティ関連の設計と動作について技術的な観点から見ていきます。 3.5 固有識別子 多くのWebアプリケーションでは、ユーザがログインIDとパスワードを入力してサーバにログインし、そのユーザのデータにアクセスします。ユーザがアカウントを作成したり、入力ボックスにパスワードを入力したりするのは非常に手間がかかります。このためWebの世界では、Cookieを利用することで、実際にはログインしていなくてもログインしているかのように扱うケースがあります。たとえばAmazonでは、

    Androidにおけるセキュリティ設計と動作(後編)
    hisasann
    hisasann 2012/11/21
    UUID生成して、保存する方法
  • いったん、水を差されたHTML5の現状と、将来について

    藤川真一(えふしん) FA装置メーカー、Web制作のベンチャーを経て、2006年にpaperboy&co.へ。ショッピングモールサービスにプロデューサーとして携わるかたわら、2007年からモバイル端末向けのTwitterウェブサービス型クライアント『モバツイ』の開発・運営を個人で開始。2010年、想創社(現・マインドスコープ)を設立。2012年4月30日まで代表取締役社長を務める Facebookが、HTML5をベースにしたアプリから、ネイティブアプリに舵を切った時に、「HTML5に賭けたのは失敗」という話が業界を駆け巡った。 それまでHTML5は、新しいWeb技術の希望の星のように言われており、将来を渇望されていたところに水を差された形になった。 そこで、改めて冷静に「HTMLとは何なのか?」ということを考え直してみた方が良いと思う。 HTMLとWebブラウザの技術的メリットは、 画像な

  • これからはじめるRuby on Rails

    はじめに Rubyと出会ったころ、その簡潔さに感動した著者は、「ここまで自然言語に近い形でプログラムが書けるのであれば、インターネットとPCの違いすら理解しないでも、少しはプログラミングができるようになるかもしれない」と、家庭での普及に挑戦したことがあります。 その試みは、渡した入門書を「はじめてのRUBAI」と読まれた時点で頓挫したわけですが、その経験から「Rubyの文法に従ってはいるが、何やら他言語の匂いを感じるコード」のことを、Rubyの潜在力を生かしきれていないという意味で「RUBAIコード」と呼ぶことにしました。 そして、社内のさまざまな分野のプログラマにRuby開発を指導してみて分かったのは、"RUBAIコード"には、実装レベルの間違いと、設計レベルの間違いがあるということです。 実装レベルの間違いとは、処理を他言語の習慣に従って記述することで引き起こされます。Javaプログ

    hisasann
    hisasann 2010/10/06
    RUBAIコードを書くのなら得意です!
  • やりなおしのJavaScript

    Copyright © 2004-2024 Impress Corporation. An Impress Group Company. All rights reserved.

  • [ThinkIT] 第1回:Webブラウザを使ったテストツールSeleniumとは (3/3)

    Seleniumのテストコード体系はシンプルで理解しやすいものですが、操作の1つ1つを記述していく作業はやはり大変なものです。これはJUnitをはじめとする単体テストのフレームワークでもテストコードの記述に多くの工数を要するのと同様です。 しかしSeleniumには、この面倒なテストコード記述をサポートする強力なツール「Selenium IDE」というものが存在します。このSelenium IDEは「Webブラウザの操作を記録し、Seleniumのテストコードを生成してくれる」という画期的なツールで、Firefoxの拡張機能として提供されています。 実はSeleniumが現在大変注目を浴びる存在になったのも、このSelenium IDEの存在が大きかったのではないかと思います。Seleniumでテストケースを作成する際、まずSelenium IDEで一通り手動で操作を行ったものを記録してテ

  • [ThinkIT] 第1回:Webブラウザを使ったテストツールSeleniumとは (1/3)

    この連載は、WebアプリケーションのテストツールであるSelenium(セレニウム)についてサンプルを用いながら概要と基的な使い方を解説していきます。連載第1回の今回は、Seleniumの概要について紹介します。 Seleniumとは、Webブラウザを使ってWebアプリケーションをテストするツールです。この「Webブラウザを使って」というのが非常に大きなポイントで、人が手でWebブラウザを操作する代わりにSeleniumがWebブラウザを操作してくれるのです。 そして単純に操作するだけでなく、例えばエラーメッセージが正しく表示されているかといった検証も行うことができます。つまり、今まで人手を必要としていたWebブラウザを使った試験が自動化できるものなのです。そのため数百項目もあるテストも、クリック1回で実施できます。 より重要なことは「自動化することによって試験を繰返し実施できる」こと

  • [ThinkIT] 第2回:jQueryライブラリの内部とonloadイベント記法 (2/2)

    HTML中のscript要素に記述したJavaScriptは、ページ全体のブラウザー描画が完了する前でも、そのscript要素が登場した時点でJavaScriptコードが実行されます。そのため、document.write()メソッドでHTMLを出力すると、内部的にはそのscript要素の直後にHTMLが追記されるわけです。 しかし、DOM操作を行うコードなど、ページ全体の描画が完了してDOMツリーが完成した後で初めて実行させたい場合もあります。そのような場合は、onloadイベントを利用して、ページの描画が終わった後で実行されるJavaScriptコードを定義する必要があります。 従来型のonloadイベント呼び出しの定義方法は、body要素のonLoad属性にJavaScriptコードを埋め込むものでした。 しかし、これではJavaScriptコード中にダブルクオートも使えないほか、H

    hisasann
    hisasann 2008/07/01
    DomContentLoaded
  • [Think IT] 第1回:JSONってなにもの? (1/3)

    JSONとは何か? JSONとはJavaScript Object Notationの略で、XMLなどと同様のテキストベースのデータフォーマットです。 その名前の由来の通りJSONはJavaScriptのオブジェクト表記構文のサブセットとなっており、XMLと比べると簡潔に構造化されたデータを記述することができるため、記述が容易で人間が理解しやすいデータフォーマットと言えます。 なお、JSONは2006年に「RFC 4627(http://www.rfc-editor.org/rfc/rfc4627.txt)」として公開されています。 例としてXMLとJSONで同じデータを記述したものをリスト1とリスト2に示します(図1)。 リスト1のXMLではすべての情報をタグで囲んだテキストノードとして記述していますが、XMLでデータを表現する場合、データの記述方法として属性とテキストノードの使い分けが

    hisasann
    hisasann 2008/06/27
    JSONJSON
  • JavaScriptを使って描画するCanvasとは?

    Canvasとは、JavaScriptを使って動的に図を描くために策定された仕様です。これまで、動的に図を表示させる方法としては、Flashが代表的な選択肢でした。しかし、Canvasを使うことで、テキストエディタさえあれば、誰でも無料で動的に図を描くアプリケーションを作ることができるようになるのです。 手前みそで恐縮ですが、図1は筆者がCanvasを使って作った棒グラフを描くJavaScriptライブラリのキャプチャ画像です。Canvasを使うことで、簡単な図だけではなく、かなり凝ったデザインも扱うことができることがおわかりいただけると思います。 しかし、Canvasは決してFlashの代替技術ではありません。まずは、Canvasの特徴を簡単にまとめてみましょう。Canvasの特徴としては、「JavaScriptを使って描画する」「文字は描けない」「アニメーション機能がない」の3つがあり

    hisasann
    hisasann 2008/06/27
    canvasまだ使ったことない
  • [Think IT] 第1回:XHTMLの文書構造化とボックスモデル (1/3)

    【即実践!HTML+CSS】 テーブルレイアウトから脱出せよ! 第1回:XHTMLの文書構造化とボックスモデル 著者:米倉 明男 公開日:2008/04/01(火) テーブルレイアウトとは HTMLコーディングの主流が、旧式のテーブルレイアウトからCSSレイアウトに変わり、大規模Webサイトを中心にXHTMLへの移行がひと段落した感があります。しかし、まだテープルレイアウトを用いたWebサイトが多いのも実情です。 そこで連載では、慣れ親しんだテーブルレイアウトからなかなか抜け出せない方向けに、CSSレイアウトへスムーズに移行をできるポイントを解説していきます。はじめにCSSレイアウトはHTML 4.01、XHTMLいずれのバージョンでも対応可能ですが、記事ではXHTML 1.0を対象にCSSコーディングについて解説します。 テーブルレイアウトとは、HTMLタグの1つである表組み<tab

    hisasann
    hisasann 2008/06/27
    そっか、外側のdivにはpadding:margin入れないんだね
  • [ThinkIT] 第4回:JavaScriptライブラリの作成 (1/2)

    これまで、既存のJavaScriptライブラリの構造やその手法を解析してきました。ここでは、実際にオリジナルのWebサービスJavaScriptライブラリを構築してみます。Webサービスと言っても高度な機能ではなく、リスト5に示すPerlで単に四則演算を行って結果を返すだけのCGIです。 リスト5:calc.cgiサンプルCGI(Webサービス側) #!/usr/bin/perl -T use strict; use CGI; use JSON; # クエリ変数qを取り出す my $cgi = new CGI(); my $q = $cgi->param('q'); # 計算処理を行う my $out = {}; if ( $q =~ /^([\d\-\+\*\/\.\(\)\s]+)$/s ) { my $e = $1; local $@; $out->{result} = eval(

    hisasann
    hisasann 2008/06/27
    やってみたい
  • Tomcatと外部のプログラムを連携させよう!

    なぜWebサーバと連携させるのか これまではTomcatをスタンドアロンのWebサーバとして動作させてきました。最終回の今回はTomcatと他のWebサーバ(Apache)やデータベース(MySQL)との連携について解説します。 Tomcat単体でWebサーバとしての機能があるにもかかわらず、なぜ外部のWebサーバと連携させる必要があるのでしょうか。主な理由としては「パフォーマンス」「セキュリティ」「安定性」「設定の柔軟性」「拡張性」があげられます。 「第1回:Tomcatって何ですか?」でも触れたように、静的コンテンツの処理をJavaで書かれたサーブレットコンテナで行うことは効率的ではなく、パフォーマンスが悪くなってしまいます。 ApacheなどのWebサーバはTomcatより歴史の長く、その分セキュリティーホールの危険性も少ないためセキュリティの面でTomcatよりも信頼性が高いのです

    hisasann
    hisasann 2008/05/20
    連携
  • [ThinkIT] 第1回:Railsが注目されている理由 (1/3)

    RailsはDevid Heinemeier Hansson氏(以下、Hansson氏)が中心となって作成を続けているRuby製のオープンソースWebアプリケーションフレームワークです。まずはその概要について少し探ってみましょう。 Railsは、2003年の夏にHansson氏が作成を開始して、2004年にはじめて一般に公開されました。 それまでは「すぐに作れるけどゴチャゴチャしがちなPHPと、きれいだけど作るのに時間がかかるJavaを使ってソフトウェア開発をしていた」とHansson氏は語っています。そこで両者のいいとこどりをした「早くてきれいな」フレームワークを目指して開発をはじめ、現実のものにした結果がRailsなのです。

  • [ThinkIT] 第1回:Prototype.jsを使う準備 (1/2)

    筆者がPrototype.jsに初めて出会ったのは、2005年9月ごろだったと思います。この頃、オブジェクト指向JavaScriptはまだまだ黎明期で、オブジェクト指向の書き方もさまざまな我流が存在していたことを覚えています。 もちろん、筆者も我流のオブジェクト指向で書いていました。しかし、すべてのエンジニアが我流の書き方をしていては、JavaScriptのオブジェクト指向は普及しません。 そんな時にさまざまなブログで取り上げられ始めたのがPrototype.jsでした。Prototype.jsにはクラスを定義するという機能があり、すべてのエンジニアが同じ方法でクラスを定義できるのです。それは、大きなインパクトでした。しかし、その当時Prototype.jsにはまとまったドキュメントが無く、目利きのJavaScripterたちはこぞってソースを読んでいました。 そして、そのことが図らずとも

  • [Think IT] 【これならわかる!JavaScript/Ajax】やりなおしのJavaScript 第1回:そろそろ本気で学びませんか? (1/3)

    画面の一部を瞬時に切り替える方法 JavaScriptを勉強したいけど、プログラム構造がよく分からなくて、なんとなく使っている人は多いのではないかと思います。市販のやWebサイトにはJavaScriptのサンプルがたくさん載っているので、必要なところをコピー&ペーストしてしまうと、JavaScriptの文法が分からなくても動いてしまいます。 しかし、このような使い方をしていると、JavaScriptサンプルを少しだけ修正したいという時に対応できなくなります。これでは「JavaScriptを使える」とは言えませんよね。 そこで、連載では、JavaScriptをもう一度やり直したい方々のために、勉強の切り口を変えて紹介していきましょう。 最初のトピックでは、JavaScriptを使ってHTMLのコンテンツを入れ替える方法について紹介してます。この技術は、最近話題になっているAjaxのベース

  • [Think IT] 第1回:エンジニアだって色にこだわりたい (1/3)

    Webデザイナは知っていた 第1回:エンジニアだって色にこだわりたい 著者:シンクイット制作部 公開日:2008/02/14(木) 2008年3月の連載ランキング4位(一覧を見る) Webデザイナがよくやる色の決め方 ある日、社内のプログラマの1人から突然こんな質問をされました。 「社内用のWebアプリケーションツールのフォーマットの色を見栄えよく変更したいんだけど、何色がよいか教えてくれない?16進数で」 16進数で!? 色名ではなく具体的な数値で聞いてくるところはさすがエンジニア気質。色という同じ話題なのに職種の違いだけで面白い要求が来るものだと関心してしまいました。 今まで筆者がいた会社にはWebデザイナと営業、プログラムが少し分かる人がいるという程度でした。しかし弊社インプレスITには編集者・ライター・Webデザイナ・エンジニアが社内に揃っていて、それぞれ自分の業務に関してプロなわ

  • Eclipseと連携で快適チェック環境!

    Webアプリケーション時代の開発要件とは 近年のWebアプリケーション開発においては、Internet Explorer 6〜7(以下、IE)やSafari 2.x、FireFox 2.xなど「複数のWebブラウザで表示可能とすること」が、要件に盛り込まれるケースが当たり前となってきました。 このような要件のもとでは「IEではきちんと画面が表示されるのに、Safariでは表示が乱れる」といった問題が頻繁に発生します。この原因は、もちろんWebブラウザ側の仕様の問題にもありますが、その何割かはHTMLの文法ミスに起因しています。 開発言語がJavaである場合、Webブラウザに表示する画面側の開発には「Eclipse+HTMLEditorプラグイン」の組み合わせが多く 利用されているでしょう。HTMLEditorプラグインはプレビュー機能も備えているため非常に便利なのですが、生成されるHTML

  • [ThinkIT] 第2回:jQueryライブラリの内部とonloadイベント記法 (1/2)

    ※注3: http://jquery.com/ 稿では執筆時点の最新版であるバージョン1.0.4を解説しますが、2007年3月現在では、バージョン1.1.2がリリースされています。下記の解説部分は、1.1.2でも同様の処理が実装されています。 Prototypeライブラリがscript.aculo.usライブラリとの組み合わせで実現していたエフェクト処理の一部も、jQueryではそれ単体のみで対応しており、プログラマにとってWebページを制作する際に必要となる、かゆい所に手が届いた実装が魅力のようです。 また、jQueryライブラリのソースコードにはJavaScriptプログラミングの最新ノウハウがギッシリと詰まっています。リスト1にjQueryのコードを一部抜粋しましたので、実装方法を解析してテクニックの一部を確認してみましょう。 Prototypeライブラリは、JavaScript

  • タスクとコードをつなげるMylyn

    用途に合わせたEclipse 3.3のパッケージ こんにちは。チェンジビジョンの近藤です。Eclipse 3.3(コード名:Europa)がリリースされてはや2ヶ月が経ちました。普段Eclipseをお使いの方はEclipse 3.3へ乗り換えられたでしょうか。 今回リリースされたEclipse 3.3では用途に合わせて5つのパッケージが用意されています。 これまで通りの構成で作成されたEclipse Classic 一般的なJava開発エンジニア用のEclipse IDE for Java Developers JEE開発エンジニア用のEclipse IDE for JEE Developers C/C++言語開発者用のEclipse IDE for C/C++ Developers RCP/Plugin開発者用のEclipse for RCP/Plug-in Developers

    hisasann
    hisasann 2007/10/30
    tracで使ったプラグイン
  • [ThinkIT] 第2回:Subversionによるバージョン管理(前編) (1/3)

    今回は、Subversionによるバージョン管理方法とウノウでの導入事例について前編と後編にわけて紹介していきます。 Subversionとは、無償で利用できるバージョン管理システムです。現在もオープンソースで活発に開発が進んでおり、執筆時点の最新バージョンは1.4.2となります。バージョン管理システムとは、ソースコードや仕様書などを含むドキュメントなど、時間とともに内容が変化するファイルを管理するシステムの総称です。 Subversionと同じようなバージョン管理システムとしては、CVS(Concurrent Version System)が有名ですが、SubversionではこのCVSで使いにくかった点を改良した次世代バージョン管理システムというコンセプトで開発が続けらています。筆者が実際にどちらも利用してみた結論として、導入をおすすめするバージョン管理システムは、やはり「Subver

    hisasann
    hisasann 2007/07/13
    やっぱりSubversionやね