arveltのソフトウェア技術メモ

Arvelt's software technology memo

ステートフルJavascriptを読んでのまとめ

ステートフルJavascriptを読んであとで思い返すためのメモ。

フロントエンドでMVCをやるという今流行りの知見における走りなのかと思う。
コントローラーはURLハッシュの変化を検知する。ビューはテンプレート使い、モデルと対応する。モデルの更新でビューが同時に更新される。このへんのMVCの役割を把握しておけばあとはFWで処理する感じ。紹介されてたBackborn.jsのサンプルをいつでも見れるようにしておいた。


https://github.com/arvelt/backborn-sample


以下メモ


・クライアントでMVCをやる
・モデル、ビュー、コントローラーの役割とは。
JavascriptのProttypeの仕組み
事実上の継承とみなせる。それを用いたクラスっぽい定義。
・要素の外側から内側の順にイベントが発生していくイベントキャプチャリング。要素の内側から外側へイベントが発生していくイベントバブリングがある。実際にはイベントバブリングが使われることが多い。
・イベントに関係するプロパティ。bubbles,button,ctrlKey,altKey,shiftKey,metaKey,isChar,charCode,keyCode,which,pageX、pageY,screenX、screenY,currentTarget,target、originalTarget,relatedTarget。
・非Domにも使用できるパブリッシュ/サブスクライブパターンについて。
・ORMを用いてサーバーのデータをモデルとして扱う。モデルのインスタンスをDomと関連付けて扱う。
・コントローラーの内部状態をローカルスコープに保存し、モジュール内にカプセル化するやりかた。
・コントローラー1つにビュー1つを対応させる。
・URLのハッシュを検知することでルーティングをする。
・モデルの更新をすることで、テンプレートで定義されたビューが更新されるようにする。
・RequireJSで依存性を管理する。
・WebSocketで表現するリアルタイム性。Node.jsとSocket.IO
・Xunit系のQUnitやSpec系のJasmineを用いたユニットテスト
・開発コンソールで使用できる。consoleオブジェクト。log()、trace()、profile()、time()など
・デプロイ時に有効的な、YUI Compressorを用いたコードの最小化。


ステートフルJavaScript ―MVCアーキテクチャに基づくWebアプリケーションの状態管理

ステートフルJavaScript ―MVCアーキテクチャに基づくWebアプリケーションの状態管理

2013年を振り返って

2013年にやったことを振り返っています。

・前年度にたてた目標

以上を踏まえると来年は、もっとコードを書くこと、を目標にしていこうと思います。こういうのなら書いたことあるからなんとなくわかる、っていうストックをたくさん作りたい。


・今年やったこと
1月、JavaでTODOアプリ素振りっていうのやった。思いつきすぎて他に生かせてない。
2月、借りてるVPSにRuby入れてRedmine入れることを試す。自分の個人プロジェクト作業用にRedmine on VPSはかなり良い感じ。RubyKaigi行ってみた。
3月、シムシティやってた。市長、市長官邸を市の中央部に置くのはいかがなものでしょう。
4月、Sinatraでアプリ作成。VPS上において公開。
5月、美術館に行ったりしてた。転職活動的なこと。
6月、何してたっけ。転職活動的なこと。転職することを決めた。
7月、新職場はWeb系なのでMBAを購入して勉強。Vimを触ってみるがなじまないので諦める。
8月、新職場にて勤務し始めた。Javascriptで死ぬ。arvelt.netという独自ドメインを取得。VPSサーバを独自ドメインでアクセスできるので、俺の城感がすごくて楽しい。何につかうんだ?
9月、モンスタハンター4やってた。ランサーの誇りを胸に片手剣を使用する。Pycon行ってみた。
10月、ポケモンYやってた。私のギャラドスに勝てるやついんの?
11月、サイ本読んだ。Javascriptの気持ち悪さを知って暗い未来に思いを馳せる。
12月、ステートフルJavascript読んだ。仕事で使ってるFWがこれに沿っていることに気づき始める。美術検定3級とった。


転職活動といってはいますが、以前は受け入れられる状態じゃなかったけど今は大丈夫になったからうちに来ないかい、というお誘い的なことされただけですね。それにホイホイ乗っかかって決めた。


形に残せた成果としては、Sinatraアプリ作ったこと。独自ドメインとってみた。転職した。美術検定3級とった。


・目標を達成したか?
転職する、は達成したが、コードを書こう、は微妙なところ。1つでは十分とは言えないだろし、こうしたいならこう書くんだよのストックはできていない。


・振り返り
こう見てみると、コード書くとか言っておきながら全然書いてないのがダサいですね。それでも転職できたのはありがたいことです。つまり実力ではなく今後の活躍に期待して買われたという感じですね。これからがスタート。



・来年の目標とか
というわけで今こそコード書かなくてはなりません。来年の目標もコードを書くこと。目標は具体的にしましょう。サービスやライブラリを合わせて3つ作るとかそんな感じで。規模は前のTODOみたく小さくてもいいので、完結したものちゃんとやるということを目指しましょう。勉強ってことなので、上から下まで全部自分で1つ、Paas使ったのが1つ、ライブラリが1つ。みたいに形態の違うものにそれぞれ挑戦したいですね。
それと、退職しました記事書いたらホッテントリ入りしてしまいましたので、SIerからWebに転職したよアフターもぜひ書きたいです。8月頃に。
最近品質管理とかテスティングとかそういう感じのことに興味持ってるのでちょっと突っ込んで勉強したいです。体系的な知見として自分の中にまとめたい。前職だと品質強化イコールチェックリストでクロスチェックする、みたいな会社だったのでその反動でしょう。なんか違和感合ったけど実践としてどうすればいいのかはわからないし従うしかないみたいなストレスがありました。
具体的に触れていきたいものは、優先度順に、PythonJavascript、Git、GoogleAppsEngine、品質管理アジャイルRedmine。少し下げてRuby周り、Java周り、Android周り。あと個人的興味に基づくゲーム作成のいろは。
あと大きいカンファレンスに参加してみて。本物たちのの凄さを目の当たりにして圧倒されましたね。大きいのは聞くだけでも行くと意識高まるし、知らないこといっぱい見つかるので積極的に参加していきたいです。普通の勉強会の方は聞くだけだとあまり時間を使う意味がないということに気づいたので、発表する内容を用意して行くようにしたいです。
そんな感じでがんばっていきたいと思います。

Javascript本を読んでのメモ

いわいるサイ本。結構前に買ったやつなので第5版。
これ知らなかったなーって思ったトピックについてあとで思い出すためのメモ。
特に文法関係はいまだ理解できてないので何度でも読もう。
FlashとかJavaとの連携とかはほとんどスルー。


1.Javascriptの文法
・オブジェクトとプロパティ
・プロトタイプと継承
・nullとundefined
・変数のスコープ
・グローバルオブジェクトとCallオブジェクト
・thisの指すもの
演算子。等値と同値
javascriptでクラスを表現する
・ダックタイピングについて


2.クライアントサイドJavascript
・グローバルオブジェクトはWindowになる
・thisの指すもの
・基本的にイベント駆動
・同一出身ポリシー
クロスサイトスクリプティング
・ドキュメント構造とノード
JavascriptCSS
・プロパティとして設定するイベントハンドラ
・イベント伝播
Cookie
XMLHttpRequestオブジェクト
Ajaxの注意点
XPath

JavaScript 第6版

JavaScript 第6版

システムテスト自動化カンファレンス2013

http://kokucheese.com/event/index/118294/
行ったので書く。


公開されたスライドはここで見られるっぽい。
https://sites.google.com/site/testautomationresearch/event#TOC-2013-


まとめとか、感じたこと。
・システムテストの自動化で何が解決できるか考える。
・ROIを考え自動化するのがハッピーならばやる。ROI評価のコストも考慮する。
・手動テストと自動テストは主にコストの発生タイミングが変わることを考慮する。
・自動化やりすぎ自動化ハイに気をつける。なんのためのテストなのか。
AndroidテスティングはRobotuimおすすめ。非エンジニアならMonkeyTalkおすすめ。
・受け入れテスト駆動開発は、誰にとっての受け入れかを考える。ユーザーがテストスクリプトを書けるのか問題。
・シナリオBDD系ツールのCucumber、Spec系BDD系ツールのRspec
・業務モデルからテスト詳細設計を起こすやりかたもある。
・モデルには、状態遷移モデル、論理モデル、組み合わせモデルがある。
・ツールにはAstash(有償)、CEGTest、Pictmaster等がある
・単純操作のテストは自動化に向いている。
・設計実装の段階でテストしやすいかを考慮する。一意のID、Classを振る
・HPのQTP+ALMは色々できる。それなりに高いので大規模PJでないと見合わない。


以下発表のメモ。敬称略。


「よりよいテスト自動化のためにちょっと考えてみませんか?
―スコープ、ROI、プロセスを中心に―」近江 久美子
ROIの評価
品質・コスト・スコープ

ツール、テストプロセス、人、プロダクト
・手動テストと違って、初期コストと運用コストが異なる
・ツールは外部のものか内部のものか
・自動化すると、必要なプロセス・人材が変わる
・自動化するための制約

評価
・ROI評価にこだわりすぎてしまって割高になってしまわないように、必要な部分のみ

プロセスを見直す
手動テストと自動テストで変わるものはなにか

テスト実行の例
実行するための設計・実装・セットアップ、そのための構成管理は増える
実行する、レポートを作るを手間は減る
テスト条件は事前に確定させる必要

・負荷が変わるもの
・タイミングが変わるもの

スキル、チーム
テスト自動化に必要なもの
プログラミング、テスト、プロジェクト管理、

・自動化されたテスト実行のバグの分析
 結果で分類
  テスト対象のバグ
  テストのバグ
 原因による分類
  プログラムの問題
  環境の問題
  スクリプトの問題
  テストツールの問題



「事例から見るテスト自動化のポイント」TABOK関西
自動化のパターン
1,部分的な自動化
2,システム肥大化
3,システム不適合
4,過剰な自動化

ファクトリオートメーション
信頼性が最も重要視する

システムテスト自動化の歩み
 思ったより効果がなかったとき
 テスト設計の観点
 多品種大量生産
  既存システムの強化
  新システムの展開

 自動化の前に、テストとしての認識を持つ
 不健全な数値目標は捨てる

自動化の難しさ
 従来、人がやる仕事は、すごく賢いし、情報の流れとかは見えてこない
 無意識にやってることは見えるようにすることすら難しい

成功の秘訣
 生産システムは構造化設計されている
 プロセス全体の流れが最適になるようになっている
 現場には効果計測振り返りをベースにした、たゆまぬ改善がある

無意識の意識化
テスト自動化に必要な技術の整理
テストシステムとして最適化・構造化

テスト工程の自動化を行う未来

自動化とは?
「機会にできることは機会に任せ、人間はより創造的な分野で活動を楽しむべきである」オムロン創業者



スマートフォンアプリのテスト自動化をはじめよう」長谷川 孝二 @nowsprinting
http://www.slideshare.net/nowsprinting/starcon2013-mobile-testautomationkeynote6
テスト自動化の現状
ユニットテスト
 Ios
  Xcode標準にOCUUnit
 android
  AndroidTestingFramework
  UI操作のRobotium
  Mockito、EasyMock、Robolectric
システムテスト
 理想の高い利益
  正しい画面表示
  OS機種依存バグを検出できる
 投資
  ツール
  スクリプト
  保守
  データ、スタブサーバー
 現実的な利益
  テスト実行時間の短縮
  複数のOSバージョンで実行できる
 テストの目的
  血管を摘出
  品質レベルが十分か
  意思決定のための情報
  欠陥の作り込み
 欲張らないROI
 頑張らないテストスクリプト
  乱数起因のテストはユニットテストでモックで頑張る方が楽
  レイアウト崩れを頑張ろうとするとつらい
  機種依存の問題を狙ってテストしようとしない
 頑張らない事例
  UIAlertView
  UIPickerView
  UITableView
  AndroidのDrawRect
  Viewのヒエラルキーが多い時に、ソフトウェアキーボードが出るとStackOverFlowError
 抑えたいポイント
  すべての画面遷移、ハッピーケースだけじゃなくエラーケースも含める
  CIにのせたときとかのSSの比較はImageMagickなどで自動化する
  実行時間もかかるから、テストケースの絞込は意識する
 利益を拡大する
  テスト実行時間の短縮
   4−6習慣でリリースするのが理想
  複数OSバージョンでの実行
   テスト実行環境を増やす
 手動ではできないこと
  ロードテスト
   メモリリーク
   低メモリ
  コンカレンシーテスト
  再現率低いテスト
 Android MonkeyRunner
 Androdi Robotuium
  Seliumライクにかける
  端末回転、スクリーンショットとかかとれる
 UiautoMator
  Robotuiumuより楽になってる
 Espresso
  Android
IOS
 UIAutomation
  Xcode同梱
 Appium
  両刀
  スクリプトとでかける
 Calabash
  CucumberのテストをIos/Androidで実行できる
 MonkeyTalk
  専用のIDEでテスト作れる。スクリプト詳しくなくてもいける
 選定のポイント
  スクリプトを書けるかどうか
  Ios/androidでテストを共有したいか
  何が実行できるか、の差は縮まりつつある
 Genymotion(早いエミュレーター
 MonkeyTalkデモ
 TestFlight
 AppKitBoxRemoteTestKit
まとめ
 欲張らない
 頑張らない
MonkeyTalkではWebViewのテストもできる


「ATDD実践入門」きょん@Kyon_mm
テストなくしたいからテスト勉強してる
ATDD→受け入れテスト駆動開発
TDD
 KentBeck
  レッド、グリーン、リファクタリング
 UncleBob
  失敗するテストを書く、失敗するなら追加してはいけない、成功させるプロダクトがあるならプロダクト
 T_wada
  開発の健全さを保つプラクティス
  レッド、グリーン、リファクタリングを回す
 Kyon−mm
  開発者支援フレームワーク
  開発者の意図を確認する、開発者が心地よいコードを書く
 Fit/Fitness
 BDD
  常にユーザーの立場でテストを実装する
  実装のテストをしてしまうのはよくない
 シナリオBDD
  Cucunber
 SpecBDD
  Rspec
 Scrum
  Readyの定義、Doneの定義
 SpecificationByExsample
  仕様を例示する生きたドキュメント
 ATDDはハッピーケースに限定するわけじゃない
目的
 ユーザーと共通の一枚絵のようなものを得ること
 十分に対象のソフトウェアの仕様を把握できること
 その仕様が満たせているかどうかがいつでもわかること
Fitness
シナリオBDD
 Cucumber
 SpecFlow
Spec
 Rspec
Spock
 Groovyによって実装されたフレームワーク
アンチパターン
 開発者がAcceptanceTestを書くことはいけない
 補助者する人がいない
理想と現実
 DDDとATDD
  ATDDはユビキタス言語(お客様がわかる言い方)を得られる機会にはなるが、ドメインモデリングには適さない
 Role
  開発者が行うATDDはSTDDにしかならない。Userが理解できる言葉でのみ実装されたものこそである、しかしほんとうにそれはできるか?
まとめ
 誰にとてのAccptanceTestなのか
 XDDはツールではなく、プロセスと態度で決まるもの
 コンテキストに合わせて取り組まなくてはいけない。現状ではXPを実践できるチームの成果物でしかない
 ATDDはやらないよりましだが、間違うと自分たちの生産性を下げる
  開発者向けの範囲でより広いTDDを考える GOOS By Stev
  テストケースの設計を考える方法 ソフトウェアテスト技法
  最高のATDDをやりたい人 つくりましょう


「モデルベースドテスト入門ーテスト詳細設計」 朱峰 錦司(あけみねきんじ)@kjstylepp
http://www.slideshare.net/kjstylepp/ss-28784815
内容
 テスト詳細設計お自動化できる
 設計モデルから作ります
 デモします
テストとは
 JSTQBでの定義
  テスト分析と設計
  テスト実装と実行
  終了基準の評価とレポート
 Test.SSFでの定義
  テストの要求分析
  テストアーキテクチャ設計
  その先は同じ
テスト詳細設計
 方針にもとづいてテスト対象の仕様からテストケースを作る作業
 方針や仕様が決まっていれば自動でつくれるんじゃね!?
モデル
 テスト対象の振る舞いや正スツを到底の観点抽象化して表現したもの
 ひとつのモデルで全ての仕様を表現することはできない
 ・状態遷移モデル
 ・論理モデル
 ・組み合わせモデル
 ・フローモデル
 ・台数モデル
状態遷移モデル
 状態の変化に着目してシステムの振る舞いをモデリング
論理モデル
 構成要素間の論理関係に着もk空いてロジックをモデリング
組み合わせモデル
 構成要素のバリエーションや制約に着もk水、構成要素間の組み合わせ元をモデリング
注意点
 特性に応じて適切なモデリング手法を選択
モデルベースドテスト
 モデルを活用してテスト成果物を作成(ブラックボックステストになる
 モデル→抽象化されたテスト→実行可能なテスト
テストの抽象表現
 テストモデリングのための規格
  UML Testing Profile
  Testing and ContorolNotation version3
状態遷移列にによるテストシナリオ
論理パターンによるテストシナリオ
組み合わせパターンによるテスト条件
注意点
 テストパターンが多くなる
 詳細化が必要
モデルベースドテストの適用例とツールデモ
状態遷移テスト
 Astash品質スイートの活用(有償
論理モデル
 デシジョンテーブルテスト
 CEGTestの活用
組み合わせテスト
 Pictmasterの活用
導入のポイント
 設計モデルの記述によるメリット
 自動化によるメリット
必要なスキル
 モデルベースドテストのスコープ
まとめ
 テスト対象の理解
 ミス防止
 テストエンジニアが書くしかない
 まずモデリングからしていこう


「手動テストからの移行大作戦」浦山 さつき
テストつまらない
 刺し身たんぽぽのテスト→自動化に向いてます
なぜ定着しなかったのか
 よく止まる
  バグが出そうなやつを自動化
  時間の制約があるものを自動化した
  →スコープを間違えた
 作った人にしかわからない
  →可読性が低かった
テスト自動化システムの3要素と照らし合わせる
 入力値が曖昧→テストケースのフォーマット改修
 操作内容があいまい→1通りの操作をトレース
 判定方法があいまい→どんなときに・どこが・どうであればを決める
 わかりやすいログ


「激しいUI変更との戦い」玉川 紘子
http://www.slideshare.net/hirokotamagawa/20131201-lt
自動テストの保守性を高めるにはどうするか
なぜ保守が大変なのか
 テストしづらい製品コードは指摘する
 要素にIDClassがない
 純粋なテスト対象を切り分けられない
 テストケースのもとをメンテナンスする
テスト対処のアプリケーションと会話するための基本動作を定義する
スクリプトの元をメンテナンスできるようにする


「テスト自動化の事例紹介による有償ツール選択のポイント」藤井 暢人
投資したら取り返す!
HP所属
短期間でROIのを得られた事例
ツール
 QTP;GUIのテスト実行の自動化
 ALM;QTPスクリプトの管理、レポート
 ポイント
  QTPスクリプトのメンテナンス
  QTP+ALMの連携
デモ
がんばるところを間違えずに自動化しよう
 テスト自動化の目的を実現できる投資を見極める
 有償ツールの昨日は、ツール連携、サービスも確認しよう


「組み込み開発での実機テストの自動化」井芹 洋輝
http://www.slideshare.net/goyoki/ss-28809804
組み込み開発の制約
 リアルタイム性
 物理的なインターフェース
 実行環境が変わる
 内部観測井の低さ
テストの責務を分散する
テスト自動化の負荷を分散する


「テスト自動化のこれまでとこれから」辰巳 敬三
http://www.slideshare.net/Bugler/2013-28786846
テスト自動化のこれまで
テスト自動化の今
テスト自動化のこれから
Seleniumの名前の由来
 Selenium、セレン
 水銀中毒 MercuryPoisoning
 JasonHuggins MerecuryPoisonを治療するSelenium
まとめ
 テスト自動化の歴史は古いが、専門家され始めてから15年程度
 自動化はテスト技術者の必須知識。開発に関わる
 ツールを使うだけではなく、自動化ノウハウを方法論としてまとめたり、新しいツール開発を行うこと

Pycon APAC 2013の感想メモ

Pycon2013にいったので、講演のメモなど。
2日目は台風のせいで帰れなくなるじゃないかと思って行かなかったんですが、実際そうでもなかったようで惜しいことをしました。


おぼえたこと。英語わからない、Sphinxおもしろそう、Pythonの環境はVirtualenvおすすめ、WindowsAzureは途上感ある、英語わからない。
GoogleComputeEngineとAmazonSebServiceとWindowsAzureで競争して、どんどんプログラマブルな仮想環境が使いやすくなってほしいと思いました。



「基調講演」Georg Brandl
python and Neutrons


python3.Xのパッケージ増えている
The FRM2で pythonを使用している
中性子をX線の用に使って走査することができる
中性子の計測装置
いろいろな条件、いろいろな操作
それらの装置をしっかりコントロールしたい
 たくさんのハードウエア
 自動化
 新しい機器が増える
 使いやすくないといけない
プログラマと物理学者
NICOS
新しいPythonも挙動
デーモンをキャッシュするとき
ドキュメンテーション
ユーザー体験
NameSpaceハック
デバッキング
 PyEval_SetTrace()
メタクラス
デコレーター
コンパイルについて


「パッケージングの今と未来」@Odagiri
http://www.slideshare.net/aodag/ss-26183017
パッケージングの基礎知識
 なぜパッケージングするのか?
  人に使ってもらうため
 distutils
 setup.pyに情報書いて実行すればいい
パッケージングの今
 Pypaツール群
 Pypa PythonPackagingAuthority
  パッケージングツールをメンテナスしてる
 pypaツール
 virtualenv ←これ入れればOk
 setuptool
 pip
 setuptools/distrivute
  distributeはsetuptoolsにマージされた
  entry-point
   起動時点を指定する仕組み
 setuptoolsの使い方
 setup.pyの書き方とか
パッケージの未来
 wheel
 distlib
まとめ
 今はSetuptoolsとsetup.pyの使い方を覚えておく
 今後はwheelとかに注目する


Sphinx入門」@tell_k
Sphnx概要
 ドキュメンテーションツール
 pipでインストールできる
 .rstファイルが元データとなる
 いろんな形式に出力できる
 テーマを設定できる。
  変更できるし、改造できる。
 ドキュメント作成に
  自動ビルドにはWatchdogを使う
  自動ビルドにjekins
   そういうことをやってくれるサービスReadTheDocs
 APIリファレンス
  sphinx.etx.autodoc
 DB定義
 よく使う拡張
 参考
  Sphinxx-User.jp
  アドベントカレンダー
  カンファレンス
 QA
  電子書籍特化ならRubyのReview使うと捗る


「Django逆入門」Nozomu Kaneko
https://speakerdeck.com/knzm/pyramid-karafalse-django-ni-ru-men
pyramid(ピラミッド)
django
 自前でパッケージ持ってる
Pyramid
 都度読み込んでる
Requestオブジェクトのとりかた
 だいたい同じ
ORマッパー
 相違点いくつか
ビュー
 相違点いくつか
デバッグツール
 django-debug-toobar
ルーティング
スキーママイグレーション
 djangoはsouth
 sqlalceammyはalembic
フォーム
テストランナー


「VFX業界におけるPython活用例」@alpaca3
CGプロダクションのプログラマ
 映像制作の支援
VFXの製作工程
 プリプロ
 脚本
  絵コンテ
  絵の方向性
  レイアウト
 モデリング
  3Dデータを作成
 リギング
  動かせるようにする
 アニメーション
  動かす
 エフェクト
 ライティング
 コンポジット
  各素材を合成
  ルックを決める
 編集
  タイミング
  カラコレ
 いろんな作業でいろんなソフトを使う
 無駄な作業
  クリエイティブでない作業
  自動化・効率化
 効率化のための機能拡張
 業界として
  デザイナーが圧倒的多数
 スクリプト出来る人いない
  現場とツール制作兼任
 DSLの弱いところ
  クラスの概念なし
  ネットワークなし
 Maya8.5
  Python対応
 Pythonの恩恵
  ソフトに依存させないで使える
  実現可能な幅の広がり
   ネットワークやDB、ライブラリを使える
 ツール2
  スクリプトを整理するためのアプリ
 GUIへの影響
  Qtの採用
   PyQt、PySlide
 Pythonベース、Pythonで書かれたソフト
  Nuke,Katana、Trac、TACTIC
 インハウスをOSSにしていたり
 プロダクションの論文検証・実装活用
  NumPyやSciPy
 Python2.Xが主流
 TDとTR
 TD
  現場に近いプログラマ
  納期が短い(今日中とか
  デザイナーとプログラマ
  元デザイナー
 RD
  プロジェクトには属さない
  長期開発
  海外だともっと細かく分類
  VFX業界にPythonは普及してる
  プログラマを専業で雇うところは少ない
   海外では多い



「Programing AWS with Python」@understeer
http://www.slideshare.net/understeer/20130914-py-conapacawspublic
AWSをPythonで使う話
AWSのSDK
AWSのサービス操作
 ManagementConsole
 コマンドラインツール
 AWSCLI
いずれのツールもAPIを操作しているだけ
AWSSDK
 現在はPerl以外のメジャーな言語版で出ている
Boto
 Python用のAWSSDK
 AmazonWebServiceだけではなく、GoogleStorage、OpenStack、Eucalyptusでも使える。
JavaとBotoはAPI全てにほぼ対応している
DynamoDBの操作例
デモ

 DyamicDNSとして使える
 ServerSwapping
 ScaleUp
まとめ
 SDKを使うことでAWSをアプリのバックエンドで利用可
 AWSはコーディングする方の力を最大限に引き出せる



Python on WindowsAzureの心得」高橋和也
WindowsAzure概要
仮想マシン
 汎用IaaS
 WindowsServer
 CentOS
 Ubuntu
 SUSE
クラウドサービス
 汎用PaaS
 専用SDKで作成したアプリをWindowsServer上にデプロイできる
Webサイト
 Git,FTP等でデプロイ可能 
 最大10サイトまで
 Django/flaskをサポート
開発ツール
 PythonToolsForVisualStudio
 WindowsAzureSDKforPython
仮想マシンの注意点
 Linux仮想マシンの初期状態ではスワップ領域が構成されてない
  /etc/waagent.cfgを編集しないといけない
 一時領域ディスクにファイルを置かない
  再起動で消される
 インスタンス上のPythonは2.7
 クラウドサービス独特のルール
  SDK
  設定ファイル
  デプロイ
  ライフサイクル
 パッケージの作成方法によりデプロイ後のPythonインタプリタの構成が異なる
  PythonToolsForVisualStudio
   Virtualenvの内容をまとめてデプロイ
  WindowsAzurePowerShell
   必要なライブラリでも自動デプロイされないので、自分でいれる
   Djangoのバージョンが古い
 メンテナンスダウンへの対策
  仮想マシン
   可用性セットを構成して、ダウンを回避
  クラウドサービス
Webサイトの注意点
 Python2.7
 Django1.4
 pip等実行できないため、必要なライブラリはすべて抱え込まないといけない
AzureStorageの注意点
 複雑な検索は遅い
SQLDatabaseの注意点
 1DBで150GB
 サポートされないSQL
 コネクション強制切断されることがあるため、リトライロジックが必須
 SQLserver2008以降のデータ型が使えない(datetime2)
 同名DBでも作成のたびに日割り料金が発生する
仮想ネットワークの注意点
 IPアドレスの永続期間
  IPはDHCP割り当て
  仮想マシンを停止すると変わる(再起動はOK)
まとめ
 WindowsAzureでPythonを使える。ツールもある。
 注意点がいくつかある。


「Running your Python applications on Google Computer Engine」BrainDorsey
UsingComputeEngine
 Demo
VirtualMactine
BlockStorage
 snapshot
Networking
Building&PortingYourApplication
QA

Windowsを新規インストールしたときに行うことメモ

Windows新規インストールする。デバイスドライバ入れる、グラフィックドライバ入れる、サウンドドライバ入れる。
そのあとでいれとくアプリのメモ。有償ソフトとかも入っているし完全に自分用。


google日本語入力
chrome
firefox
discord
skype
sonar
初音ミク
Dropbox
Box
ウイルス対策
itunes
dropbox
steam
origin
Open Broadcaster Software
1password
clip studio
東方
Honeyview


・基本のソフト
google日本語入力
Clanch
Orchis
chrome
firefox
thunderbird
skype
sai
picasa
秀丸
sublimetext
sonar
domino
初音ミク
kingsoft
winamp
Dropbox
Box
(foobar)
ウイルス対策
itunes


・開発のソフト
eclipse
virtual box
unity
teraterm
7zip
visualstudio
dropbox


・開発環境
java
python
ruby
directx9cSDK
windowsSDK
cygwin
git for windows


・ツール類
アーカイブしてるフリーソフト
flash media live encoder
SCFH
1password
clip studio


・ゲーム
steam
origin
東方

2013年にDirectXでゲームを作りたいときに知っておくべきこと

2013年9月現在は、Windowsの過渡期であるためか開発環境がややこしいことになっている。注意することをまとめたメモ。


1. Visual studio 2012で使用する環境の構築。

  • オフィシャルページで配布されているDirectXデモプロジェクトをVS上で開くには、Windows8 上でVisualStudioExpressForWindows8を使用するか、有料のPro以降のエディションを使用する必要がある。


まず、マイクロソフトの公式のページを見る。

DirectX ゲーム開発とサンプルのチュートリアル (Windows)
http://msdn.microsoft.com/ja-jp/library/windows/apps/hh465149.aspx

このページを辿って行くと、DirectXゲームのでもプロジェクトをダウンロードすることができる。しかし、VisualStudio2012 Express For Desktopをダウンロードしてこのプロジェクトを開こうとしても開くことはできない。それは仕様であり下記でアナウンスされている。
http://support.microsoft.com/kb/2756246/ja


よって、デモプロジェクトを開くためには、VisualStudio2012 Express for Windows8か、有料のPro以降のVisualStudioのエディションが必要なる。

デモプロジェクトを開く環境が用意できるのであれば、公式のチュートリアルを粛々と進めていけば問題無い。ただし、Windows8ストア向けアプリのための話なのか、DirectXの機能そのものの話なのか、ゲームのロジックに関する話なのか、なんの話題なのかに気をつけること。


2.DirectXについて
DirectX 入門」とかでぐぐると出てくる情報は、ほとんどがDirectX8やDirectX9をもとに書かれている。そしてDirectX9以前のAPIは、Windows8で、WindowSDKとして統合されたのだと思われる。
例えば、Direct9で必要な”d3d9.h”のヘッダファイルはWindlwsSDKはあったが、同様に必要なはずの”d3dx9.h”のヘッダファイルは含まれていなかった。
以前のDirectSDKはWindowsSDKに統合され、なくなっているものもある。ということなのだろう。


3.じゃあどうすればいいか?

  • DirectXSDKを別途インストールすればDirecx9のAPIが使える
  • 最新のDirectX11で3Dゴリゴリやりたい場合は、Pro以降のエディションを購入する。もしくはWindos8上でVSExpressを使う。ただしその場合はWindows8用ストアアプリしか作れない。

例えば2Dゲームを作りたいならDirectX9の機能で十分。かつての名著なども安く手に入る。過去のAPIを使うためには、マイクロソフトのUSサイトからDirectXSDKをダウンロードして、追加のインクルードファイルとしてVSに認識させればいい。

Download DirectX Software Development Kit from Official Microsoft Download Center http://www.microsoft.com/en-us/download/details.aspx?id=6812

これをインストールすれば、”d3d9.h”や”d3dx9.h”などをインクルードできるようになるので、開発が行える。