君は牛を二頭持っている

ウェブエンジニアのブログ。はてなブログ以外のブログサービスいろいろ探し中

はてなブログに引越しました

一年近く放置してたBlogger(http://uhavetwocows.blogspot.jp/) からはてなブログに移行しました.

移行した理由

理由としては特にないです。別にGoogle嫌いとか言うわけではないですし,僕の研究室内の資料のほとんどはGoogleに管理されてますのでむしろGoogle好きといっても過言ではないです。でも個人情報はあんまり抜かないでもらえると気持ち嬉しいかなとは思います。
はてなブログに移行したのは,単純に久しぶりに更新しようかどうしようか迷ってたら

  • はてな記法だと結構楽に書けて更新頻度あがるんじゃない?
  • TwitterとかFacebookで更新のお知らせ自動でポストしてくれるしいいんじゃない?

とかありますが、みんながよく使ってる道具に変えたらやる気でるというアレに期待した部分が大きいです。

おわりに

とりあえず引越しの報告だけ書いておきますが、実は来週月曜に研究室内で先生に現在の進捗を本格的にチェックされるゼミがあるのでこんなことやってる場合ではないです。

jQueryでaddClass使って詰まった話

半年ぶりの更新.
特にメモしておきたいことだったので,自分の中で整理する意味も含めてのポスト.
端的に言うと,CSSの優先順位の問題に突き当たった訳です.
普段,それなりにCSSいじっておきながら実感することのなかった点ですが,なかなか面倒だったので,今回のケースについて整理.まず,今回の問題が発生した経緯ですが

    • 以下のような感じでjQueryaddClassでdiv要素を点滅させようと試みる(jQueryのバージョンは1.9.1)
(スタイルシート)
.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(青)は一瞬で変化(何かおかしい)
  • 問題のあるソースコードの部分の流れとしては
    1. 対象の要素に"before"を指定する
    2. 300ms後"after"を除去する
  • では,どうするべきか
    • beforeと全く同じダミー(dummyとする)のクラスをafterの下に追記して以下のようにしてafter->beforeの処理を以下のように変更する
      1. addClass("dummy")&300ms待つ
      2. removeClass("after")
      3. addClass("before")
      4. 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を叩くまで一番簡単な方法(多分)をメモしておく

  1.  AmazonMWSのページ(https://developer.amazonservices.jp/)を参考に登録IDを取得.
    ただし,大口出品者のIDが必要.取得は このURL から
  2.  必要な情報(出品者ID、マーケットプレイスID、開発者アカウントID、アクセスキーID、秘密キー)を取得する.
  3. ここらへんのドキュメントを読んで,叩きたいAPIを決める
  4. MWSのページの左側のメニューの『API&ドキュメント』のページから叩きたいAPIのページを見て,好きな言語のクライアントライブラリ(2012月8月現在ではPHP,Java,C#がある)をダウンロード.
  5. 後はサンプルにちょっとだけ手を加えるととりあえず叩けるようになる.
    例としてPHPの場合だと
    • Samples/.config.inc.php のID情報を書き換える
    • 叩きたいAPIのサンプルソースの最初のほうにあるURL(serviceURLって変数)のコメントアウトを外す
    • 後はAPIに応じたパラメータを入れてやると取得できるはず
簡単なメモだが、忘れないうちに

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サービス作るときのメモです。いわゆる仮登録をするタイプの登録の作り方です。
自分が作るサービスで、ユーザー登録をするときの流れはだいたい以下のような感じ。

  1. ユーザーが情報を入力して送信(仮登録)
  2. ユーザーに本登録用URLを記載したメールが届く
  3. URLをクリックした時点で本登録完了&ログインセッション発行
で、これのためにはユーザーがフォームに入力する情報以外に、
  • ワンタイムパスワードを設定(本登録用URLにひっつける)
  • 本登録完了したかどうか
のレコードをユーザーを管理してるテーブルに作ってます。
 更に、本登録完了時点で、ワンタイムパスワードの登録を消して、完了って流れにしてます。
他にはどんな方法があるんでしょうか、例えば仮登録と本登録で全く別のテーブルにするとか?
良い方法会ったら教えてください。