はてなブログに引越しました
一年近く放置してたBlogger(http://uhavetwocows.blogspot.jp/) からはてなブログに移行しました.
移行した理由
理由としては特にないです。別にGoogle嫌いとか言うわけではないですし,僕の研究室内の資料のほとんどはGoogleに管理されてますのでむしろGoogle好きといっても過言ではないです。でも個人情報はあんまり抜かないでもらえると気持ち嬉しいかなとは思います。
はてなブログに移行したのは,単純に久しぶりに更新しようかどうしようか迷ってたら
とかありますが、みんながよく使ってる道具に変えたらやる気でるというアレに期待した部分が大きいです。
おわりに
とりあえず引越しの報告だけ書いておきますが、実は来週月曜に研究室内で先生に現在の進捗を本格的にチェックされるゼミがあるのでこんなことやってる場合ではないです。
jQueryでaddClass使って詰まった話
半年ぶりの更新.
特にメモしておきたいことだったので,自分の中で整理する意味も含めてのポスト.
端的に言うと,CSSの優先順位の問題に突き当たった訳です.
普段,それなりにCSSいじっておきながら実感することのなかった点ですが,なかなか面倒だったので,今回のケースについて整理.まず,今回の問題が発生した経緯ですが
(スタイルシート)
.before{
background:blue;
}
.after{
background:red;
}
(スクリプト)
var state = true;
$(document).click(function(){
if(state)
$("#toggle").addClass("after", 300, function(){
$("#toggle").removeClass("before")
});
else
$("#toggle").addClass("before", 300, function(){
$("#toggle").removeClass("after")
});
state = !state;
});
- 本人的には,クリックする度に赤と青がスムーズに入れ替わって欲しいわけですが,
実際にはこんな感じになる - before(青)->after(赤)はスムーズに変化(意図通り)
- after(赤)->before(青)は一瞬で変化(何かおかしい)
- 問題のあるソースコードの部分の流れとしては
- 対象の要素に"before"を指定する
- 300ms後"after"を除去する
- この内,問題が発生していたのはaddClassの処理の部分であって,
具体的には一つの要素に重複する属性を持つ2つ以上のクラスが指定されていた場合,優先されるのは「後に(下の方で)定義されたクラス」という法則を見落としていたので,うまく行ってなかった訳です. - 実際にはもっと色々基準がありますが,問題は変わらないので割愛
参考:CSSのセレクタによる優先順位を分かりやすくビジュアル化するオンラインツール -Specificity Calculator | コリス - では,どうするべきか
- beforeと全く同じダミー(dummyとする)のクラスをafterの下に追記して以下のようにしてafter->beforeの処理を以下のように変更する
- addClass("dummy")&300ms待つ
- removeClass("after")
- addClass("before")
- removeClass("dummy")
- callbackで繋げれば一応これで多分動きます(非推奨)
- jQueryUIを使う(ダウンロードして解凍してhtmlファイルぶち込む)
if(state)
$("#toggle").switchClass("normal", "warn", 300);
else
$("#toggle").switchClass( "warn","normal", 300);
state = !state; - 凄くシンプル!やったね!!(白目)
- ここまで1時間半
結論:jQueryUI使え
因みにjQueryUIだとanimateとかも微妙に拡張されて便利になってます
追記:ちょっと不適切だったのでタイトル変更しました
KC3レポート
2012年9月15日(土曜日), 京都リサーチパーク(KRP)にて関西情報系学生団体交流会(KC3)に参加してきました.
(主催のRCCさんのサイト:http://www.rcc.ritsumei.ac.jp/)
近畿圏のサークルが集まってお互いの活動内容の紹介をしたり,得意分野を活かして勉強会を開いたりするって内容です.去年に比べて新しく甲南大学文化会(KSWL)さんが参加して更に規模が大きくなってました.
新言語のお話
午後の部の最初にconnectFreeのクリスさん(Kristopher Tateさん.Wikipediaに記事が http://en.wikipedia.org/wiki/Kristopher_Tate)が5分ほどサプライズでお話していただける時間があって突然の「新しい言語作りましたー」宣言.
levという言語らしいです.https://github.com/connectFree/lev
勉強会
サーバー構築の話で,Debianインストール中に時間が終わってしまいましたが,いつもCentOSで構築してるので,違いを知ることができたという意味では良かったです.
講演
企業の方の講演の時間ではpaperboy&co.;の専務でエンジニアの吉田健吾さんがいらっしゃって企業の紹介やサービスのトレーラーを流してくれました!(SQALE: http://www.paperboy.co.jp/news/201208221500.php)
懇親会
ある意味本番の飲み会では吉田さんの対面に座ることが出来て,これからやろうとしていることに対して色々と貴重な意見を頂いたり,エンジニアの生活について聞いたりすることが出来て非常にレアな機会でした!
最後に
会場を提供していただいたKRP様,主催のRCC様,サプライズ参加していただいたKristopher Tate様,講演に来ていただいた吉田 健吾様,一緒に参加した皆様,本当にありがとうございました.こういう学生同士で集まる場を利用して刺激を受けた分,別な形でアウトプットできるように頑張ります!
CakePHP2.2.1リリース
最近CakePHPに触れる機会が多くなってきたので本格的にバグとか最新機能の面も見ていかなければと思い,まずは最新版の更新情報から
http://bakery.cakephp.org/articles/markstory/2012/09/01/cakephp_2_2_2_release
特に注目すべき点はなさそうだけどLOGSとかCACHEの定数をアプリケーション側で設定できるようになったとかでdebug()の再帰のバグが治ったとか書いてある.
今回は重大な点はないようだけど,今後もこまめに見ていくことにする
Amazon MWS APIの叩き方
最近,機会があってAmazon MWS(Merketplace Web Service) APIを利用して商品の情報とか取得する機会があったのでAPIを叩くまで一番簡単な方法(多分)をメモしておく
- AmazonMWSのページ(https://developer.amazonservices.jp/)を参考に登録IDを取得.
ただし,大口出品者のIDが必要.取得は このURL から - 必要な情報(出品者ID、マーケットプレイスID、開発者アカウントID、アクセスキーID、秘密キー)を取得する.
- ここらへんのドキュメントを読んで,叩きたいAPIを決める
- MWSのページの左側のメニューの『API&ドキュメント』のページから叩きたいAPIのページを見て,好きな言語のクライアントライブラリ(2012月8月現在ではPHP,Java,C#がある)をダウンロード.
- 後はサンプルにちょっとだけ手を加えるととりあえず叩けるようになる.
例としてPHPの場合だと
OSC行って来ました
先週の3日-4日の2日間OSC京都に行って来ました.イベントの詳細は下記
OpenSourceConference 2012 Kansai@Kyoto
ちなみに会場のKRP(京都リサーチパーク)は,京都の五条あたり(JRで言うと丹波口付近)にあって,京都から電車ですぐ行けるところが非常にありがたいです.また,Ri-oneとして毎年参加させて頂いてるKC3(関西情報系学生団体交流会)の会場として貸していただいたりもしたので,行く機会も度々ありました
全体
OSC2日間全体としてのイメージはだいたい- 年齢層,レベル問わず興味を持った人たちが集まる(でもレベル高い人たち多い)
- 最近,注目を浴びてる分野のセッションとか聞ける
- ネタなブースからやや堅めのブースまで色々あって面白い
- 全く知らない製品,技術でも「初めて聞きましたー」って言えば懇切丁寧に教えてもらえる
一日目 8月3日 金曜日
- 平日だったので人は少なめ.特に10時開始直後は準備中のブースも所々あった
- 10:00開始に間に合わなかった.JR10分も遅れたし困った
- RCCの人とかRi-oneの後輩に会ったけど,一人openSUSEユーザ会の人と話し込んでた後輩がいた.
- MozillaのブースでFirefox(Android板)の最新版いじってみた.かなり最初の方だったので、なんとなく喜ばしい
- Qt5について色々聞いてみた.ボードコンピュータでもCPUによってはそこそこ動くらしい.3から4の大惨事についても少し話したけど、あんな感じにはならないとのこと.どうもQt4では3のソースが殆ど動かなくなってたとか
- お昼あたりのLTでMSの人がAzureで5分でWebサイト立ち上げ〜gitでコミットするよ!(ただし,仮想マシンの立ち上げはスキップ)ってやってたけど、gitでコミットまでは行かなかった.とりあえず,すごく簡単に見えるのはよく分かった
- Citrix(Xenとか仮想化関係)の担当者の人のプレゼンが1日目の中では一番印象的だった
- NetBSDをOMRONのLunaとかいう,結構古いPCに入れるまでの情熱を感じてきた
二日目 8月4日 土曜日
- 来場者数,1日目の3倍は余裕でいた.1日目の間におおかた興味のある展示ブース回っといて良かった
- 最初からW3Cのセミナーがあった.HTML5は分裂しないよ!らしい.HTML.nextは開発ブランチとのこと
- Linuxセキュリティ入門と並行してopenSUSEがいかに便利かを見せつけられた.設定管理の方法が全然別で驚いた.特に,HTTPサーバーとかのソフトウェア周りを極力シンプルな物を使うべきって話は勉強になった.
- Qt5はモバイル方面が強くなったらしい.あとはよく分からんかった.リリース時期は結構遅れそうとのこと.
- Ubuntuの基本的な紹介とコミュニティについて色々な説明受けた.じゃんけん大会の商品のTシャツ欲しかった
- AppleのappStoreの話とかいろいろスマホ業界の話を耳に挟むなど.発表の主な内容である,「Mozillaが考えるFirefoxによって訪れる、なまらすげー未来の展望」みたいなの聞いて「こいつはパネェ!!」ってなった.実装もかなり進んでるとのお話.W3Cの人も言ってたけど,Webをアプリケーションのプラットフォームとして見る考え方がかなり進んで来てる雰囲気を感じた
- 最後のLTは色々カオスな発表があって大いに楽しめた
ユーザー登録をする場合のDB設計
久しぶりの更新ですが、Webサービス作るときのメモです。いわゆる仮登録をするタイプの登録の作り方です。
自分が作るサービスで、ユーザー登録をするときの流れはだいたい以下のような感じ。
- ユーザーが情報を入力して送信(仮登録)
- ユーザーに本登録用URLを記載したメールが届く
- URLをクリックした時点で本登録完了&ログインセッション発行
- ワンタイムパスワードを設定(本登録用URLにひっつける)
- 本登録完了したかどうか
更に、本登録完了時点で、ワンタイムパスワードの登録を消して、完了って流れにしてます。
他にはどんな方法があるんでしょうか、例えば仮登録と本登録で全く別のテーブルにするとか?
良い方法会ったら教えてください。