君は牛を二頭持っている

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

2013年まとめ

2013年の大晦日なので、技術系の記事ではないけど今年を振り返ってちょっとだけ書いてみる

  • 全体的に

高校後半〜大学前半2年間に比べるとかなり平凡な一年だったと思います。
特に、研究室の先輩の紹介でかなり自由度の高いWebプログラマのバイトやれたことは良い経験だったと思います。
あと、今までやったことない分野ということで今の研究室選んだけど、やっぱりメチャクチャ向いてないということがよく分かりました。

  • 1月〜4月

就職が2月頭で決まったので研究活動に集中できたとは思う
ただし、この頃はまだまだ研究室の空気に馴染めてなかったかなあと思う。
この辺りは今年の後輩が春休み前半で馴染めるように何か考える参考にしたい

  • 4月〜8月

まだ授業が残ってるので、色々ヤバい。
結構バイトと授業と卒検の3並行で体力使ったし、単位この時期までに取ってないと色々ヤバいと分かった。もはや手遅れだが

  • 8月〜12月

Linuxカーネル以上に、NICの仕様とかIEEE802.11に苦しみまくった。ていうかまだ苦しんでる。

  • その他やったこと
    • Perl本格的に始めました
    • Unityちょっと弄ってミニゲーム作りました
    • 彼女はできませんでした
    • 研究室内で使うISBN読んで蔵書管理してくれるサービス開発しました
  • ひとこと
    • AndroidアプリでWebsocket叩くのはしんどい
    • Python年が終わりますが、皆さんはPythonのことを忘れないで下さい

netfilterメモ(NF_STOLEN)

タイトルのまま。
netfilterの概要とかはググったら大体出てきますので省く。
具体的にどういう仕組みでフックしてるのかとかも、今回は省く。
netfilterを使って登録するフック関数には,いくつかの戻り値があって,それぞれでパケットに対する制御を行う。

  • NF_ACCEPT:通してOK。パケットは次の処理に渡す
  • NF_DROP:具体的にどう処理されるのかは見てませんが、送受信パケットはドロップされる

他にもいくつか(NF_QUEUEなど)
今回のタイトルにあるNF_STOLENは,「このパケットに関しては,カーネルモジュール側で処理しておくので放っておいてください」みたいな感じで、本来の処理フローからパケットを外してしまう。
つまり、LKM側でレイヤ間のやり取りを実現しないといけない。
自分で別の流れに渡すのも良いし、後々、別のタイミングでフック関数に渡される関数(okfn)に再度渡しても良い。

超初心者向けPython入門

このポストは研究室内で行った勉強会の内容を基に書いています

Python2.7を対象にしていますが、Python3以降でも動くようにソースを書いています。
どうしようもない場合は2つのバージョンを書いています
追記:投稿後3分で@utisamくんからFizzBuzzソースがPython3で動かない旨の指摘が入りました。ありがとうございます!!謹んで修正いたしました

はじめに

Python チュートリアル — Python 3.3 documentation ここ読んだほうが早いかも知れない

このポストでは、Pythonの(見た目的な)特徴と組み込み関数(のごく一部)と制御構造(の一部)とデータ構造(の一部)を紹介しています。
多分、FizzBuzzに毛が生えた程度のことができるようになります。
以下の様な方を対象にしています。

  • とりあえず,学校でC言語覚えたし別のプログラミング言語でどんなのあるか知りたい
  • スクリプト言語の雰囲気だけちょっと見てみたい
  • なにはともあれPython書いてみたいがHelloWorldとかチマチマやるの面倒だけど,特に自分で勉強するほどの気分でもない!

逆に以下の様な内容はありません。聞かれたら分かるかもしれないし分からないかも知れません

続きを読む

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

一年近く放置してた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()の再帰のバグが治ったとか書いてある.
今回は重大な点はないようだけど,今後もこまめに見ていくことにする