2012/07/30

Hokkaido.pm Casual #1, #2, #3の資料

#1はテーマはよくわからんけど、fluxflexの話

もうサービス終了したので、良い子はheroku buildpacksでperl動かそうね


#2は開発環境だったので、普段使っているVim Pluginsの話


#3は入出力ということでPerlIOを使ってみた

[impress.js][css] 黒背景、白文字、overflow-yを有効にしたCSS

gistに貼っておくだけだと見失いそうなので、こちらにメモ。

  • impress.cssの末尾にくっつけて使う
  • 背景はグラデーションかけてKeynoteの黒背景っぽくしてある
  • 長いコードを貼った時に、各スライドで縦スクロールさせたいのでscroll-yを有効にしてある

2012/06/12

ack(1)でJSXのファイルを検索する

ack(1)で.jsxを検索したかったのでメモ

~/.ackrcに以下の1行を追加する

--type-set=jsx=.jsx

これで指定なしで検索できるし、--jsx, --nojsxの指定ができる。
詳しくはman ackのDefining your own typesを参照

2012/05/13

[hokkaidopm]Hokkaido.pm#7 参加しました

Hokkaido.pm#7

Hokkaido.pmに行って来ました
私の今回の発表は「DancerでWebアプリ再入門」です。

また今回もJPA様の講師派遣支援制度でりーおさん(@riywo)にお越し頂き、Perlの運用ツールのお話しを聞くことができました。
Touryoのオープンソース化を待ち望んでいますので、是非お願いします!

以下はりーおさんのセッション時のメモです。

Ops Tools with Perl @riywoさん

スライドはこちら

CloudForecast

  • サーバリソースのモニタリング
  • Installが簡単
    • SNMP, RRDs系が別途必要
  • 軽量 5,000行程度(テンプレート含む)
  • WAF: Shirahata.pm

GrowthForecast

  • API and Graph
  • Installが簡単
    • RRDsは別に必要
  • 使用例
    • fluentでGrowthForecastになげて、Webから見る

chase-tail

  • tail -f error_log | chase-tail -l 10 -t various_erro
  • エラー箇所に色付け
    • 目grepを楽にする
  • エラーの流れ早すぎる場合は適度に省略してくれる

App::Ikachan

  • IRCのHTTP API

Percona Toolkit

  • MaartkitとAspersaが混ざってる
  • MySQL用のツール
    • pt-query-digestがパフォーマンスチューニングに役立つ
      • tcpdumpをどばっと食わせると実行時間とかみれる

Touryo

  • Configuration Management Tool
  • Chefは良かったけど、カスタマイズが大変
  • Amon2で設定をWeb画面で可視化
  • CLI
    • touryo test web01 環境があっているかテスト
    • touryou run web01 間違っている箇所を訂正
  • 設定
    • roleを定義する
    • roleは継承可能
  • blueprint
    • crontab等のテンプレート
    • Text::Xslate使ってる
  • roleだけじゃなくてnodeで特定のサーバ毎に設定を追加できる

2012/05/05

[JavaScript] Sapporo.js-20120505に行って来ました #sapporojs

Sapporo.js-20120505

今回は「8章 メソッド」のArray#reverseからスタート

解説したメソッド

  • array.reverse()
  • array.shift()

一般発表

ぬるjs @PUPRLさん

  • ぬRubyからきました
  • node-five
    • nodeでQtでcanvasでデスクトップアプリ
    • 関係ないけどmake.js
      • この作者が使ってるjs製のMakefile

NotHub API の紹介 @tricknotesさん

  • githubの更新を表示するChrome Extension
  • 用意しているI/F
    • Socket.IO
    • WebSocket
  • 見えないときは心の目で確認する

Web Audio APIとNode.jsで楽々ウェブ楽器の作り方~Beatonica @aike1000さん

  • Beatonica
    • twitterのソーシャルグラフを利用
    • 人にランダムに音を割り当ててる
  • Web Audio API
    • 音の加工が簡単

2012/04/21

[PHP][Security] PHPカンファレンス北海道に行って来ました

[PHP][Security] PHPカンファレンス北海道に行って来ました

PHカンファレンス北海道に行って来ました。
目的は徳丸さんのセッションです。


徳丸本に載っていないWebアプリケーションセキュリティのメモ

Webアプリケーションとキャッシュ

色々なレイヤで高速化等のためにキャッシュを利用する - フレームワーク - リバースプロキシー

別人問題

  • 別人のキャッシュされた情報が見れてしまう問題

OpenPNEのキャッシュ制御問題のDEMO

  • 現在は修正済み
  • DEMO用に以前のバージョンを利用している

はてなブックマークのDEMO

  • ブラウザのキャッシュで前の人のデータが見える

これは脆弱性なのか?

  • ブラウザやキャッシュサーバの問題
  • でもWebアプリ側で対応したほうが安心
    • cache-control: no-store
    • pragma: no-cache

クリックジャッキング攻撃対策

  • X-Frame-Optionsを使う

evalインジェクション対策

  • JSONのレスポンスを返すときに正しいヘッダーを追加する
    • Content-Type: application/json; charset=utf8
    • X-Content-Type-Options: nosniff

JSONハイジャック対策

  • XMLHttpRequest時に特別なヘッダをいれておいてチェックする
    • こっちを推奨
  • JSONの中にfor(;;)を入れておく

2012/04/19

[perl][hokkaidopm] Hokkaido.pm Casual#0

Hokkaido.pm Casual#0

Hokkaido.pm Casual#0に行って来ました。
参加者も10名を超える盛況ぶりで、今回の参加者はこちらのatndで確認できます。
何故かyappoさんがいたりとCasualなのか微妙な感じがしてましたが、行ってみると結構Casualでした! 次回以降はもっとCasualに行きたいですね。

LTについて

全員LTということで、今回はimpress.js Remoteというのを作ってみました。
Keynote Remoteのようにimpress.jsをiPhoneから操作するというソフトウェアです。

実装の概要としてはnodeでWebSocket Serverを立てて、iPhoneのtouchイベントをPC側に送るシンプル実装です。
まだまだ機能が足りないので、後日整理してからgithubにあげようと思います。

TODOとして以下が残っています

  • Remote側のHTML出力の自動化
  • 一覧ページの追加
  • カンペ表示の対応
  • jQueryを依存から外す
  • Web ServerとWebSocket Serverの共通化

今後について

これから毎月1回開催していくということで、もっとCasualになるといいですね。
LTの途中とかで随時質問していける雰囲気があるといいんじゃないでしょうか。後、最初からビールがあるといいと思います。