home ホーム search 検索 -  login ログイン  | help ヘルプ

find 検索

151 - 160 / 1320    [|<]  [|<]  [<]  11  12  13  14  15  16  17  18  19  20   [>]  [>|][>|]
タイトル/名前 更新者 更新日
技術/Linux/RPMコマンドメモ(yum) msakamoto-sf 2014-09-15 19:03:25
JavaScript/ExtJS/「Sencha Ext JS 4実践開発ガイド」読書メモ msakamoto-sf 2014-09-15 13:21:07
JavaScript/ExtJS msakamoto-sf 2014-09-15 12:36:24
JavaScript msakamoto-sf 2014-09-14 18:56:55
技術/運用管理/Fabric msakamoto-sf 2014-09-06 22:13:05
技術/運用管理/調査メモ(Ansible, Kickstart) msakamoto-sf 2014-09-06 21:39:49
技術/Security/PKI,SSL,TLS/SSL, Certificate, Public Key Pinning msakamoto-sf 2014-09-06 15:43:21
Java msakamoto-sf 2014-09-06 15:00:25
日記/2014/09/06/JavaからWord(.docx)ファイル操作できるライブラリの予備調査 msakamoto-sf 2014-09-06 14:55:35
JavaScript/ExtJS/ExtJS4参考メモ msakamoto-sf 2014-08-24 21:49:10
ソート項目 / ソート順     1ページ 件ずつ表示

技術/Linux/RPMコマンドメモ(yum)  

所有者: msakamoto-sf    作成日: 2013-11-24 23:23:44
カテゴリ: Linux 

yum groupinstall コマンド

グループの一覧:

# yum grouplist

非表示含めたグループ一覧:

# yum grouplist hidden

非表示なグループ例:Core, Standard

グループの情報表示:

# yum groupinfo "グループ名"

グループで一気にインストール:

# yum groupinstall "グループ名"

参考:

yum provides コマンド

ファイル名のglobで、それを提供しているパッケージを探してくれる。

$ yum provides */dig

参考:

yum clean コマンド

yumの各種cacheを削除する。

全部削除
# yum clean all

参考:



プレーンテキスト形式でダウンロード
現在のバージョン : 3
更新者: msakamoto-sf
更新日: 2014-09-15 19:03:25
md5:12bee45925e4d354a7b5ce8344b0bb2e
sha1:b66954bfbce8dfe2523d46b1d3a2979fed92c44c

JavaScript/ExtJS/「Sencha Ext JS 4実践開発ガイド」読書メモ  

所有者: msakamoto-sf    作成日: 2014-09-15 12:38:14
カテゴリ: ExtJS JavaScript 読書 

「Sencha Ext JS 4実践開発ガイド」の読書メモです。

2014年9月現在、既にExtJS5がリリースされている状況ですが、ExtJS4以降の基本を網羅的に概説してくれている日本語書籍としては貴重な一冊です。

難点は、この書籍で解説されているExtJS4が(恐らく)もう入手できなくなっていることでしょうか。Sencha本家サイトから評価版、あるいはGPLv3用にDLできるのはExtJS5のみで、ExtJS4をDLするリンクは見当たりません。

この読書メモでは、そのような現在の状況で、この本でどう手を動かして学ぶか、また、自分が気になったポイントについてメモとして残します。


そもそも2014年9月現在でExtJS4を練習するには?→Sencha Fiddleを使いましょう。

Sencha Fiddleを使うと、過去のExtJSのバージョンを簡単に動かして練習ができます。

「開発ガイド」の方では.jsや.cssを手動で読み込む形式を紹介していますが、現在はSencha Cmdというビルドシステムが導入され、これでSPAのひな形を自動生成する流れが主流になっています。
Sencha Cmdで生成されたひな形をベースに、テスト用ならそれようのJSが、プロダクション環境用ならminifyされたJSがロードされるようにHTMLがビルドされます。
そのため、新規にアプリを作成する流れで勉強するなら、以下の順序が今ならオススメかと思います。

  1. Sencha Fiddleで遊ぶ。
  2. Sencha Cmdを勉強する。

ただし、既存のサイトに部分的に、ライブラリとしてExtJSを導入するのであれば、Sencha Cmdの重厚なビルドシステムを導入するのが難しい場合もあります。そうした場合に、ExtJSのライブラリやCSSを手動で既存のHTMLに組み込むことになると思います。そのようなときに、書籍で紹介されている方法が参考になると思います。

公式からAPIドキュメントは公開されてないの?→公開されてます。

ドキュメント

  • http://docs.sencha.com/extjs/
    • 2014-09現在、自動的にextjs 5.0にジャンプします。ただし、ヘッダーのメニューから、他のバージョンや他のSencha製品のドキュメントにアクセスできます。
    • もちろん、ExtJS4系のドキュメントも用意されてます。その中には、ExtJS4の時のサンプルアプリ集も含まれてます。

「第5章 クラスシステム」メモ

ExtJSは独自のクラスシステムを導入しています。その中で、個人的に特に押さえておいた方が良いのは、configとmixinとoverridesです。
なぜこれらが大事かというと・・・

  • configを理解していないと、問題発生時の調査に時間が取られる
    • configはExtJSコンポーネントを作成するときに必ず使われますので、ここで混乱してしまうと、ちょっとツマヅイた時にどこが悪いのか、問題調査に時間を取られます。
  • mixinを理解していないと、APIドキュメントを読み解くのが大変になる
    • 前述のAPIドキュメントでは、クラスのメソッド一覧に、継承した親クラスのメソッド + mixinされたクラスのメソッドが出てきます。そのため、「このメソッドはmixinされたクラスで提供されてるメソッドだな」という点を注意していないと、ドキュメントを読むときに混乱します。
  • overridesを理解していないと、フォーラムでのサンプルコードの意味が分からない時がある
    • overridesは既存クラスにパッチをあてる使われ方をしてまして、Senchaフォーラムで「こうしたら解決するよhahaha」的なサンプルコードに頻出します。
    • そのため、overridesの使い方を理解していないと、それが今自分が使っているバージョンに取り込まれているか、取り込まれていなければどう追加すれば良いのかわからなくなります。

config と mixin を理解しておけば、ExtJSのソースコードを読むのも楽になります。

ちょっと古いですが、Senchaの英語ドキュメントでこんなのもあります。

自分が、基本的なクラスシステムの使い方、config, mixin, overridesの使い方を練習したSencha Fiddle:

「第6章 イベントモデル」メモ

ExtJSはGUIコンポーネントが強力で、それらを使うとなればイベント駆動のプログラミングが必要です。ExtJSの場合、Ext.util.Observableというクラスをmixinすることで(このようにフレームワークの根本部分でmixinが使われてますので、mixinは重要)、DOM要素以外のクラスでもイベントハンドラを設定できます。このおかげで、イベントを発火させたい対象がDOM要素であるか否かを意識せずに、イベント駆動のプログラミングを実践できます。

ということで、DOM要素(=GUIコンポーネント)以外でもExt.util.Observableをmixinすればイベントハンドラを持てるようになるデモ:

書籍ではrelayEvents()も紹介されていますが、こちらもSencha Fiddleで練習してみました:

なお、Ext.util.Observableのメソッド一覧を見てみますと、"(add|remove)ManagedListener()"と対応する"mon|mun()"メソッドがあります。これと、普通の"(add|remove)Listener()"(on|un())との違いが分からなかったのですが、英語ですが良い記事がありました:

→この記事に出てくるサンプルコードをSencha Fiddleで練習してみました:

「第7章 コンポーネントモデル」

こちらの書籍では詳しく書かれていませんが、実際に開発する際は、ExtJSでボタンなどGUIコンポーネントを組み立てる時、どのようなライフサイクルで管理されているか知っておいたほうが良いと思います。

ExtJS5、しかも英語になりますが、ExtJS4から大きくは変わってない模様:

なぜライフサイクルを知っておいたほうが良いかというと、複雑なGUIを構築・管理する際に、必ず「いつレンダリングされるのか」「レンダリングされるタイミングで○○したい」「破棄されるタイミングはいつか」などを気にする必要が出てきます。この時、ライフサイクルがどうなっているか注意できるようになっておくと、解決方法も探しやすいです(実感)。

他に、書籍でちょっと気になったのが、「7.7. 状態管理」というところでExt.state.Providerの紹介です。CookieやlocalStorageで管理できるみたいで、面白そうです。
まだ練習できていないのですが、history APIも出てきていますので、このような状態管理をどう制御するのか、実際のアプリでも色々検討が必要なポイントかな、と思います。
特にSPAですと、この辺りはユーザの使い勝手に直結してきますので、より詳細な調査・検討が必要になる箇所かと思います。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2014-09-15 13:21:07
md5:ee5a49edc222be4e13166aa20dd537d4
sha1:7bc23feebb43e97667f227f9dddfca3e9a74d812

JavaScript/ExtJS  

所有者: msakamoto-sf    作成日: 2014-09-15 12:29:57
カテゴリ: ExtJS JavaScript 

本家

日本代理店

日本語コミュニティ, フォーラム

ドキュメント



Sencha Fiddle

使い方:

練習に作ったもの:



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2014-09-15 12:36:24
md5:8b7ab3895b3db23ddce81eea0997f2b1
sha1:ae17bb48bbe5d762c04f54020315fdbae2ff4a95

JavaScript  

所有者: msakamoto-sf    作成日: 2009-02-08 15:36:37
カテゴリ: JavaScript 





プレーンテキスト形式でダウンロード
現在のバージョン : 5
更新者: msakamoto-sf
更新日: 2014-09-14 18:56:55
md5:1106c9cb06a8a9be150e7316283f531c
sha1:1fe02ad599f1e3c6bfc26eb0408ba1726c2b5dca

技術/運用管理/Fabric  

所有者: msakamoto-sf    作成日: 2014-09-06 22:12:26
カテゴリ: DevOps Fabric 

最初の一歩、SSH接続オプション ベタ書き:

fab -u ログインID -i SSH秘密鍵ファイル名 -H ホスト名 (fabfile.py)

入門:

細かいTips

他のツールとの比較、連携など



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2014-09-06 22:13:05
md5:8ca4e603830dafaa44c50a8cc5be52e1
sha1:d5e6035caceef398bfbeef1f69949a65aff50273

技術/運用管理/調査メモ(Ansible, Kickstart)  

所有者: msakamoto-sf    作成日: 2014-05-06 12:25:31
カテゴリ: Ansible Chef DevOps Vagrant VirtualBox 

Ansibleと、Ansibleをローカルで動かすにはどうするか、参考:

Ansible勉強・参考メモリンク

  • Ansible入門 (全15回) - プログラミングならドットインストール
  • モジュールメモ
    • 設定ファイルの一行を正規表現で検索して、変更 : File Module -> lineinfile
    • linuxでのファイアウォールの設定 : System Module -> firewalld
    • SELINUXの設定:System Module -> selinux
    • デバイスとファイルシステムのマウント:System Module -> mount
  • AWS EC2 との連携

AnsibleとChefの比較参考:

RHEL系でOSのインストールを自動化するのに活用されてるKickstartについて

Ubuntuでのkickstartのサンプルと、Ubuntu系列ではPreseedというのがインストール自動化で使えるらしい:

KickstartとAWSの相性はどうだろうか?

  • CentOS AMIs from Kickstart - dan.carley
    • http://dan.carley.co/blog/2012/04/17/centos-amis-from-kickstart/
      • いろいろ大変そう・・・。最近、AWSの方でVMイメージのインポート機能が付いたようなので、むしろローカルNW環境でKickstartでセットアップしたのをAMIとしてインポートして展開とか出来るのであれば、そちらのほうが良いかも?


プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2014-09-06 21:39:49
md5:798ab184691fc41cc55455506f54948d
sha1:cba5542969cdab9c04e47bb6064b5887c315662e

技術/Security/PKI,SSL,TLS/SSL, Certificate, Public Key Pinning  

所有者: msakamoto-sf    作成日: 2013-11-24 15:22:06
カテゴリ: SSL/TLS セキュリティ 

勉強中のメモ。(あくまでも個人の意見や見解です)

2014-09追記:

  • 目的
    • OSやライブラリによる証明書チェーンの検証に頼らず、アプリケーション側で独自に、接続先のサーバ証明書を検証する。
      • 具体的にサーバ証明書(X509)のどの項目を検証するのかについては上に挙げた資料参照。
  • 技法
    • SSL/TLS通信を行うアプリケーションで、サーバ証明書の検証時に、証明書の公開鍵や署名、ホスト名などをアプリ側で持っているリストと一致しているか検証する。
  • 誰が行うのか
    • アプリケーションの開発者が行う。ChromeなどWebブラウザアプリや、スマホアプリなど、SSL/TLS接続を行うアプリケーション全般の開発者が行う。
  • 背景 (より突っ込んだ"目的")
    • 1. 認証局自体が攻撃されて、不正に証明書を発行される事例が近年発生している。不正に発行された証明書を使った悪意のあるサーバに対して、中間者攻撃などを使って誘導された場合、単にルート認証局からの証明書チェーンを検証しただけでは、本当に接続先のサーバが正規のサーバであるか検証できたことにならない。このため、サーバ証明書自体をアプリ側でも検証し、アプリ側に埋め込まれている正規のサーバ証明書と同じ内容か検証する。もしアプリ側の証明書情報と一致しなければ、攻撃者により誘導された不正なサーバに接続している可能性があることを判別できる。
      • 例 : ルート認証局のシステムが攻撃され、攻撃者により勝手にGoogle.comの証明書が発行され、攻撃者が用意したサーバに設定されるケース。攻撃によるものとはいえ、証明書自体は正規のルート認証局から発行されたものであるため、検証自体は成功する。その結果、被害者はGoogle.comに接続していると思い込んで、実際は攻撃者により誘導されたサーバに接続し、重要情報をやりとりする。
    • 2. アプリケーションのSSL/TLS通信を悪意のある利用者が盗聴・改ざんすることを防ぐ。
      • BurpなどMITMに対応してSSL/TLSの内容を盗聴・改ざん可能なプロキシツールがある。
      • これらのプロキシツールはアプリから接続された時にプロキシツール自身がSSL/TLSハンドシェイクを行う。この時、プロキシツールはアプリに対して、アプリ自身が生成したサーバ証明書を提示し、サーバとして振る舞う。プロキシツールは内部で生成した独自のルートCA証明書を保持し、共通してそれを認証局としてサーバ証明書を生成する仕組みを有する(場合が多い)。
      • アプリケーションの通信を解析したい利用者は、これらプロキシツールのルートCA証明書をエキスポートした後、自身の環境に信頼できるルート認証局の証明書としてインポートする。
        • この部分の難易度をPC/iOS/Androidそれぞれで正確に判定できる情報は持ち合わせてないので不明。
      • このため、単に証明書のキーチェーンだけを検証するだけでは、プロキシツールが介在していることを検出出来ない。サーバ証明書までをアプリ独自に検証することにより、もし一致していなければ、プロキシツールが生成した証明書でありプロキシツールが介在している可能性が考えられ、通信エラーとするなどしてSSL/TLS通信内容を盗聴・改ざんされることを防ぐことが可能になる。(100%防ぐことは出来なくとも、難易度を上げることはできる)
    • 3. 金銭面などもろもろの事情により、一般の認証局で証明書を発行できず、自己署名証明書を使いたい。証明書の検証を全く行わない事は危険なので、自己署名証明書のサーバ証明書をアプリ側で保持しておき、OS/ライブラリのルート認証局からのチェーン検証は行わず、サーバ証明書の情報だけを検証したい。
    • (他に何かあるか?)
  • 実装にはいくつかのバリエーションがありそう。
    • Chrome : Google.comの証明書について、予めChrome内にホワイトリストが埋め込まれていて、それらとの一致を検査しているらしい。
    • 単一のサーバとしか通信しないアプリケーションなら、開発者が予めそのサーバの証明書を入手して、それらの情報をアプリに埋め込み、それと一致するかチェックできそう。
    • Webブラウザなど不特定多数のサーバと接続する場合:そのサーバに最初に接続した時のサーバ証明書情報を覚えておいて、2回め以降の接続でそれと異なるようであれば警告あるいはエラーとするなどありそう。SSHクライアントでよく見かける。
      • ただしこの場合、初回接続時に既に攻撃を受けて攻撃者のサーバに誘導されていればナンセンスである。
    • チェーン検証の有無についてもバリエーションが出そう。
      • OS/ライブラリによる、システムの証明書を用いたチェーン検証+独自のサーバ証明書検証を行うパターン
      • 独自の証明書ストアを埋め込み、それによるチェーン検証+独自のサーバ証明書検証を行うパターン
      • OS/ライブラリによるチェーン検証も、独自の証明書ストアによるチェーン検証も行わず、単にサーバ証明書の検証だけを行うパターン
  • デメリット
    • サーバ証明書が再発行などで変更された場合、アプリ側に埋め込んだ情報も同期させる必要がある。つまり、アプリも同時に変更して配布する必要があり、自動更新処理などを検討する必要が生じる。
  • メモ
    • Pinningしていないのはアプリケーションの脆弱性か?・・・どうなんだろう・・。
    • 背景の2番目、SSL/TLS通信の盗聴・改ざんを防ぐためというのは個人的にはあんまりオススメしたく無いかな・・・。アプリの利用者自身により通信内容が見られて、改ざんされても、それでもセキュリティが担保されるようにシステムを作っておくほうが順序としては先の気がする。ただそういう要望がある、かもしれない、というのは認識しておきたところ。
    • SSL Pinningさえしておけば、自己署名証明書でも良いか?
      • 最低限度、アプリが妥当と認めるサーバとSSL/TLS接続を確立している、という点は担保できる。
      • しかし、その証明書に対する第三者機関による認証、という点を担保できていない状態になる。
      • ユーザの立場では、サーバ証明書を確認した場合に自己署名証明書だと、本当に正当な相手なのか確認できず、不安が残る。極端な話、アプリもサーバもセットで攻撃者が用意したフィッシングアプリ+サーバを想定すれば、自己署名証明書は利用者に対して不安を残すだけとなる。
      • スマホアプリだとサーバ証明書を確認できるユースケースが限られるなどの議論は出てきそうだが、技術スキルのあるユーザがサーバ証明書を確認することは不可能とはいえない状況である。
      • やはり一般的な認証局に発行してもらった証明書を使ってシステムを構築し、ユーザからも、確かに第三者により身元が証明されたものであることを確認できる状態のほうが適切といえそう・・・。

他:

  • Forward Secrecy at Twitter | Twitter Blogs
    • https://blog.twitter.com/2013/forward-secrecy-at-twitter-0
      • SSL/TLSの接続開始時のセキュリティ技術である "Forward Secrecy" をTwitterでも取り入れてみたよ、という記事(多分)。・・・なんだけど、最後のほうでHTTPSをより強化するためになぜかcertificate pinningが推奨されてる。HSTSとかと一緒になってるので、HTTPS関連の最近の改良トピックを一緒くたに推奨として混ぜ込んだだけ?
  • SSL/TLS & Perfect Forward Secrecy | Vincent Bernat


プレーンテキスト形式でダウンロード
現在のバージョン : 4
更新者: msakamoto-sf
更新日: 2014-09-06 15:43:21
md5:f1824d67ebeb171de831a85484e78552
sha1:baf054ece68f2706e81a8cd5601ee924d001bd5e

Java  

所有者: msakamoto-sf    作成日: 2009-10-12 01:50:17
カテゴリ: Java 

Javaに関するエントリや、役立ちリンクなど。


"Java/"形式に整理する以前の記事:

日記などより:


JDK Documents

usefull WWW pages

for beginners, basics



プレーンテキスト形式でダウンロード
現在のバージョン : 8
更新者: msakamoto-sf
更新日: 2014-09-06 15:00:25
md5:ba102e9065d232d23def0c91565ef153
sha1:f73f0e938aad0713bbd8c6324de7abee27e2b456

日記/2014/09/06/JavaからWord(.docx)ファイル操作できるライブラリの予備調査  

所有者: msakamoto-sf    作成日: 2014-09-06 14:51:42
カテゴリ: Java 

日記/2014/04/26/業務系文書の自動生成についての予備調査(OIpenXML, OpenDocument, OpenOffice.org, LibreOffice) 関連。

以下、いくつかJavaでWordを書いたり読んだりする記事で、Apache POIと並んで、docx4jが言及されてるので、それなりに有名なのかも。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2014-09-06 14:55:35
md5:05deab13c2f27af1555298b427934490
sha1:9607e463950933649b257c06511d210100eef8ff

JavaScript/ExtJS/ExtJS4参考メモ  

所有者: msakamoto-sf    作成日: 2014-06-08 20:20:40
カテゴリ: ExtJS JavaScript 

ExtJS4系での参考リンクのメモ。

日本代理店&Sencha本社から認定されたトレーニングを展開中の株式会社ゼノフィ様の技術Blogより、ExtJS4のクラスやMVCアーキテクチャについての解説

Gridのセル内で長い文字列を折り返す話題

GridのRowの背景色を、データの内容に応じて変更したい

注意:4.1 まではgetRowClass()で返すCSSクラス名単体でCSSで指定すればよかった。

.x-mygrid-true { background-color: green !important; }

→ 4.2 になると .x-grid-cell をあわせる必要があるようだ。

.x-mygrid-true .x-grid-cell {
    background-color: green !important;
}

Gridで、通常のRowの背景色だけでなく、mouse hoverやクリック時も変更したい

自力で解析した結果:(x-mygrid-true/falseは、booleanカラムに応じてRowのtrのCSSで切り替えているクラス名)

.x-mygrid-true.x-grid-row-over .x-grid-cell {
    background-color: red !important;
}

.x-mygrid-true.x-grid-row-focused .x-grid-cell {
    background-color: green !important;
}

.x-mygrid-true .x-grid-cell {
    background-color: yellow !important;
}

.x-mygrid-false.x-grid-row-over .x-grid-cell {
    background-color: gray !important;
}

.x-mygrid-false.x-grid-row-focused .x-grid-cell {
    background-color: dimgray !important;
}

.x-mygrid-false .x-grid-cell {
    background-color: black !important;
}

ちょっとクセがあって、

.x-mygrid-false
.x-grid-row-focused

はtrタグのclassに同時に設定され、".x-grid-cell"はその中のtdタグのclassに設定される。

.x-mygrid-false .x-grid-row-focused .x-grid-cell {

だと駄目で、同時、というのを上手く指定するには空白分割ではなく、連結する必要があった。

.x-mygrid-false.x-grid-row-focused .x-grid-cell {

Gridのactioncolumnで、行のデータによってアイコン表示/非表示を切り替えたい

getClass()のカスタマイズで実現できる。条件分岐で表示する方にする場合は、通常ならばiconClsで設定するクラス名を返す必要がある。表示しない場合だけ
"x-hide-display"して、表示する場合は何もしてないと、結局何も表示されずに終わる。

例:本来はiconClsで設定するアイコン表示用クラス名を、valueがtrueの場合にgetClass()で返している。

{text: 'warn', xtype: 'actioncolumn', dataIndex: 'booleanField', items: [{
  getClass: function(value, metaData, record) {
      if (value) {
        return 'fam3-16px-database_delete';
      } else {
        return 'x-hide-display';
      }
  }
}]},

Gridのネストしたカラムの、ヘッダーだけを消したい。つまるところ、tableの<th>タグのcolspan相当を実現したい

.hide-sub-headers .x-group-sub-header {
    display: none;
}

ただし、これをすると、groupしたヘッダ自体ではfilterやソートが使えなくなるので、「カラム4, 5, 6 をまとめる、ただしソート&フィルタはカラム5の値を使う」ような器用な機能まではそのままでは実現できない。

Gridのヘッダーにアイコンを表示したい

イベントの伝播(propagation)を切りたい。デフォルトのイベントハンドラを無効化したい。



プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2014-08-24 21:49:10
md5:5445a89e2450ca56a13fdaac99e218d9
sha1:c915133262f9921e9b104736abae989751a7a7d9