2009 年 1 月 27 日 by sou — Web/JS, workshop
jQuery と言えばセレクタ、大変に便利で使える機能です。
さーて新卒皆にもセレクタ教えるぞーと意気込んでみたところ、バージョンアップに伴いセレクタがパワーアップしておりまして知らない表現が色々と・・
これではいかんと密かに自分の勉強も兼ねつつ jQuery Selector クイズを作って勉強会に持ち出してみました。
まるっと暗記するのではなく
状態になるため、リファレンスにざっと目を通した後にクイズとリファレンスを交互に見比べながら遊んで貰えると良いと思います。
興味ある方はチャレンジしてみてください。
この投稿の続きを読む »
2009 年 1 月 23 日 by hnw — workshop, セキュリティ
「サーバセキュリティ」というタイトルで社内勉強会を開催しました。普段の勉強会ではSQLインジェクションやXSSなどWebアプリケーションのセキュリティの話題が多く、サーバのセキュリティについては人によって知識がまちまちなので、簡単にまとめてみました。普段サーバをいじらないポジションの人でも、セキュリティフィックスを当てる際にお客さんに説明することはあるでしょうから、サーバまわりについても概要を知っておいた方が良いと思います。
まとめ
- remote exploitは要注意
- 公開サーバは常時パスワード総当たり攻撃を受ける
- 簡単なパスワードをつけない
- 可能ならパスワードログインを禁止すべき
- トロイの木馬は現実にあり得る脅威
- うっかりopen proxyを作ったりしないように
この投稿の続きを読む »
2009 年 1 月 14 日 by kouno — workshop, メール
「メール」をテーマに講習会を開きました。今後、複数回に渡りメール周りの様々な知識を紹介して行ければと考えています。
プログラマとしての担当範囲という視点では、「mb_sendmail()等の関数を用いればメールが送れる」しか知らなくてもギリギリ仕事はできるかもしれませんが、本当にそれだけの知識しか無いとしたら不安です。メールに限らず、ある程度の周辺知識は何事にも必要ですよね。
「メール」第一回目の今回は、送信した後の事がイメージできるようになることを目標に、メールを送信してからどのような過程を経て相手に届くかについて説明しました。
メールの送受信の仕組みには、多くの登場人物(アクター)が絡んでいます。登場人物が多い分、トラブルが起こるポイントも様々です。
今回の講義では、各過程におけるトラブルの原因や、確認方法も合わせて紹介しています。メール送受信の仕組みを知る事で、トラブルの原因発見や解決の一助となるのではないでしょうか。
この投稿の続きを読む »
2009 年 1 月 7 日 by sou — Web/JS, workshop
エンジニア一年生に贈る Web/JavaScript(あまくち) part.5 です。
今回はイベントハンドラを扱っています。
前回に引き続きまたまたid:cos31が
レポート
を取ってくれましたので、good なまとめとしてご利用ください。
この投稿の続きを読む »
2009 年 1 月 6 日 by hnw — PHP, workshop
「コンピュータと時刻・日付」というタイトルで社内勉強会を開催しました。今回は一つのテーマに関してアラカルト的に細かい話題を集めてみましたが、おおむね好評だったようです。主に初級者向けの内容でしたが、一定の経験がある人もそれなりに得るものがあったようです。
まとめ
- 日付・時刻の処理には用心しよう
- 仕様は固まっているか?
- 自前実装にバグがないか?
- サーバの時刻は合っているか?(NTP)
- unix timeで扱える範囲内か?(2038年問題)
この投稿の続きを読む »
2009 年 1 月 5 日 by sou — Web/JS, workshop
エンジニア一年生に贈る Web/JavaScript(あまくち) part.4 です。
今回は DOM を扱っています。
id:cos31先生の
素晴らしいレポートがあるのでまとめはそちらをご覧下さい。
この投稿の続きを読む »
2008 年 12 月 29 日 by hnw — Emacs, zsh
久々にEmacsの話題です。trampって便利ですよね。ローカルのEmacsでssh先のファイルを編集したり、sudoしてroot権限で編集できたりするのは素晴らしいと思います。trampの素晴らしさを知らない人は、下記サイトなどを参照してください。
ところで、zshをログインシェルにしているとtrampが上手く動かない現象に出くわします。具体的には、「/sudo::/etc/hosts」などを開こうとして下記のように怒られることがあります。
tramp: Waiting 30s for remote `/bin/sh' to come up...
apply: Couldn't `exec env 'ENV=' 'PS1=$ ' /bin/sh', see buffer `*tramp/sudo *'
この解決方法ですが、.zshrcや.zsh_profileなどに下記のように書けばOKです。
この投稿の続きを読む »
2008 年 12 月 17 日 by sou — Web/JS, workshop
エンジニア一年生に贈る Web/JavaScript(あまくち) part.3 です。
今回はオブジェクトを扱っています。
この投稿の続きを読む »
2008 年 12 月 2 日 by sou — JavaScript, Web/JS, workshop
Web/JS(あまくち) part.2 - 変数宣言、関数、無名関数
で関数オブジェクトの生成について触れましたが、var name = function(無名関数を変数にバインド)とする方法とリテラルとでは挙動が違うのではないかとの指摘がありました。
JavaScript の var についての考察にあるように、
function() {
var foo = 1;
};
というコードは内部解釈的に見ると(インタプリタの挙動的に解釈すると)
function() {
var foo;
foo = 1;
};
となります。
という事は関数に付いても同様で、関数リテラルの場合は名前付き関数オブジェクトが先積みされ、var name = function とした場合は変数 name だけ先積みされる(name = null の状態)と考えられます。
試してみましょう。
console.log(foo == null); // true
console.log(typeof bar == 'function'); // true
var foo = function() {
};
function bar () {
}
ばっちり予想通りとなりました。
2008 年 12 月 1 日 by hnw — Linux, UNIX, shell, workshop
「シェルスクリプト入門」というタイトルで社内勉強会を開催しました。社内でアンケートを取ってみたところ、シェルスクリプトに苦手意識を持っている人がいるようです。「いやいや、普段のコマンドラインと大差ないよ」ということを伝えたくて、簡単な講習をしてみました。これで苦手意識が無くなってくれればいいんですが。
まとめ
- if文がわかればシェルスクリプトは完璧(?)
- 条件式の評価には[コマンド(又はtestコマンド)
- 変数展開はクオーティングに注意
- 比較するときは”x$hogehoge”を使えば万全
- exit codeで他のコマンドと連携
この投稿の続きを読む »