2012年9月16日日曜日

Code Puzzle【1】 --任天堂

先日Pycon2012へ参加した際、任天堂のCode Puzzleというものが入っていた。

↓こんなん



 ちょっと楽しくなったので、解いてみた。 



と言っても、sys.argv[1]なんて表記がある。

これ、引数に何指定しているかわからないので、どうしたものか、、、


エラー処理も書いてないけど、無視される仕様だとしたら、、、←おかしいw 


そんなわけで、とりあえず、 http://cp1.nintendo.co.jp/ へアクセスしてみたw



 すると、、、上記画像まんまのページへ飛ばされるww
答え書くところに、IndexError もしくは Errorといれてポストすると、違うと言われるww



なので、ちょっと考えてみた。。。



 【こっから先、回答書いてきます。 謎解きしたい方は見ないでください。】






































 そんなわけで、少し考えてみた。



1.sys.argv[1]が、上記画像からは何か読み取れない
2.if pow(m, e) % n == c : return str(m)と書かれている、、、
3.上記以外は""(空白)を返す



 ということは、答えは、mであればいいわけだ。


 で、 *[int(i) for i in (sys.argv[1], 17, 3569, 915)] とあるので、
上記の2は、 pow(sys.argv[1], 17) % 3569 == 915: return str(sys.argv[1]) となる。 




ってことは、これは逆を言えば、

   「mすなわち、sys.argv[1]を求めろ。」

 って問題なんじゃね??




 ってことで、解いてみた。
(いや、かなり無理やり解いてみたww) 



まずは、
  pow(sys.argv[1], 17) % 3569 == 915 を満たす最初の数
を探してみようと思ったので、



 def sugar(n):
  for i in range(n): 
   if pow(i, 17) % 3569 == 915:
     print "m=" + str(i) 
     break 


としてあげて、
 (変数名がsugarなのは、問題文がtea breakって書いてあったから)

 sugar(10000) で探してみた。
 (うん、ちからわざ!w でも早く答え知りたかったからね!)


 で、出てきた答えは、

  m=2012 !! 


そんなわけで、
answerに2012をいれて、POSTしてみたら。。。



 見事正解!w


 が、さっそく次の問題がw


 とりあえず、次回へ続く。


あ、第二問は、下記URLから確認できるよ!
 http://cp1.nintendo.co.jp/2012

2012年6月4日月曜日

【jQuery】jQuery Tools ToolTip

MitライセンスのjQuery Toolsを使う機会があって、大いにハマったので、記録。

やりたかったことは、ajax処理で、引っ張ってきたhtmlに対しても、このjQuery tools tooltipを適応させたいというだけ。

。。。たったこれだけのことなんですが、ハマったw

というわけで、簡単に解決策だけ。。


【ベースとなるhtml】
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
    <script type="text/javascript" src="/js/jquery.scrollTo-1.4.2-min.js"></script>

    <script type="text/javascript" charset="utf-8">
    $(document).ready(function(){
      $('対象のセレクタ名').tooltip();
    });
   
       <style>
    /* tooltip styling. by default the element to be styled is .tooltip  */
    #tooltips {
        display:none;
        background:transparent url(/images/white_arrow.png);
        font-size:5px;
        height:70px;
        width:160px;
        padding:25px;
        color:#333;
        }
    </style>
↑これ、(当たり前ですが)、$(document).ready()使ってるんで、そのページの読み込み時のみ有効ですよね。
なんで、試しにajax通信成功時に読み込むページで上記のスクリプト部分全部突っ込んでも音沙汰なし。

したらば、と、
$().live('mouseover', function(){
  $().tooltip();
});
としたり、$.getScriptで呼び出してもだめ。。。

(まぁこれまた至極当然、ちゃんと考えればわかるのに、思いつかなかったんだけども、)
解決策としては、
対象となるセレクタのajax成功時にこいつを動かすようにしてあげればokでした。。。
(.ajaxCompleteで呼び出してあげればよかった)

         $.ajax({
            type: 'GET',
            url: url,
            dataType: 'html',
            success: function(data) {
      $().ready(function(){
                        $.getScript("/js/jquery.tools.min.js");
                        $('対象としたいセレクタ名').ajaxComplete(function(){
                             $(this).tooltip();
           });
                     });
                },
             });


なんて簡単なお話で、気づかなかったんだ。。。
これで数時間悩んだので、もし他にも同じようなことで悩んでいる人がいたり、未来の自分のためのメモということで。。。

2012年2月25日土曜日

【読書録】ストーリーでわかる財務3表超入門

そろそろ卒業も近くなり、部屋の整理をしているときに見つけた本。

 『村上式シンプル仕事術ー厳しい時代を生き抜く14の原理原則ー』(村上憲朗(ムラカミ ノリオ)/ダイヤモンド社)

数年前に斜め読みして、ヤル気をもらったのは覚えているけれども、内容をすっかり忘れてしまっていた。。。
そんなわけで読みなおす。

と同時に、村上式で財務や経済学関係を学び直してみようと、ヤル気をもらう。
んでもって、毎回やろうやろうと結局は続かなかったブログで、インプットしたことをアウトプットしていこうと、またまたヤル気をみせる。。。


まぁがっつりと書いてたら、多分、また続かなくなるので、簡単にコメントしていく程度にアウトプットしようと決めた。


そんなこんなでブログリスタート。

1つ目を村上式で飾るのもいいけど、これは骨格としてもっておく本にしておいて、最初は下の本にしてみた。

 『ストーリーでわかる財務3表超入門―お金の流れで会計の仕組みが見えてくる』(國貞 克則(クニサダ カツノリ)/ダイヤモンド社)

本当は、この人の本の超図解財務3表を読みたかったんだけど(村上式で挙げられていた本)、近くの本屋にはこっちしかなかったので、仕方なく(失礼!)取ってみた本。


。。。が、この本すごくいい。
簿記関係はちょっとかじった程度には知識あったんだけど、まぁほぼ使わない知識だから、ほぼ無知と同じ状態の俺。
そんな俺でも、スイスイと頭に入ってくる感覚で読めた本。

大学卒業後、数年働いた26歳(だったはず)の会計知識ゼロの主人公あかねが、アクセサリーの路上販売から小さなお店を開いて1年経営を続けることで、起業から会計までを大まかに教えてくれる本。

PL(損益計算書)、BL(賃借対照表)、CL(キャッシュ・フロー計算書、ストーリー中では、収支計算書としてでてくる)の3つの関係性から財務3表を学ぶという切り口で書かれていてわかりやすかった。

ストーリーがあるので、頭の中で思い描きながら、会計の勉強をすると共に、さり気なく書かれている、起業する際にお金を借りることへの厳しい態度などがすごく印象的で面白く読めたかな。

数年前、仕分けから簿記を学んだ時は、なんとなくで覚えていて、ここで改めて振り返る形になったんだけど、それぞれの関係性を整理することはほとんどなかったような記憶しかないので、いい学びになったと思う。


ストーリーを追っていくだけでも、楽しめたかな。
まぁ話しの流れをつくるためとはいえ、主人公のあかねは、環境に恵まれすぎていて、羨ましかったんだけど笑

あかねとあかねの会社に出資した人、手を貸した人の気持ちを汲みながら、ストーリーを追っていくことができれば、世の中へ対する考え方を改めることができるし、コンピテンシーやお金・会社で働くことに対するリテラシーを身につけられるんじゃないかと思う。

会社へ出て働く前に出会えてよかったと思える一冊でした。


 

2011年11月21日月曜日

【Python】入門ソーシャルデータ その2

前回に引き続き、オライリーの入門ソーシャルデータに関して。

前回は、p6の例1−3で不具合があったので、修正した。
修正箇所は、easy_installしたtwitterのAPIラッパーの、api.pyの121行目あたりにちょろっと手を加えた。
夜も遅かったし、そこで寝てしまったんだけど、次の日、更に進めて行く上で、そのすぐしたの例1−4ですぐにこの手を加えた場所でエラーが起きた。。。

原因はsearch_.twitter.comとapi.twitter.comに投げるリクエストURIの形が違うから、前のをapi.twitter.comだけに都合のよいように書き換えたら、search.twitter.comの方にリクエストを投げるときに不具合が発生するためのよう。。。


そんなわけで、api.pyの121行目あたり、uri = '/'.join(uriparts) の後に次のように継ぎ足す。

uri = '/'.join(uriparts)
if self.domain == "api.twitter.com":
uri = uri + '/1'


これで一応、本で期待している通りには今のところ動く。

また書き直しがあるかな。。。??

【Python】入門ソーシャルデータ

オライリーの「入門ソーシャルデータ」を購入。



早速、第1章を読んで楽しもう!
。。。って思ったところ、1.2.1のtwitter ウェブAPIのラッパーを取得して、「Twitterの検索トレンドの取得」ってとこではまった。。。w

ターミナルで、

>>> import twitter
>>> twitter_api = twitter.Twitter(domain="api.twitter.com", api_version='1')
>>> trends = twitter_api.trends()

って本では入れるようになってるけど、どうにも

Traceback (most recent call last):
File "", line 1, in
File "/Library/Python/2.7/site-packages/twitter-1.7.1-py2.7.egg/twitter/api.py", line 155, in __call__
File "/Library/Python/2.7/site-packages/twitter-1.7.1-py2.7.egg/twitter/api.py", line 170, in _handle_response
twitter.api.TwitterHTTPError: Twitter sent status 404 for URL: 1/trends.json using parameters: ()
details:

ってエラーを吐いてるよ。。。orz

ってか「status 404 for URL:」って書いてあるよ?
あれ??
そんなわけで、Twitter本家のサイトを見に行くと、


うん、リクエストURL違うね?w

ラッパーだと、1/trends.json
でも、公式ガイドだと、1/trends/1.json

www


ってことで、仕方なく、easy_installしたtwitterのラッパーの「api.py」を見に行き、該当箇所を修正。
まぁ「api.py」の121行目の「uri = '/'.join(uriparts)」の後に改行いれて、122行目に「uri = uri + '/1'」っていれてあげるだけなんだけどね。

これで
(略)
>>> trends = twitter_api.trends()
っていれてもエラーはかなくなった!うん、よし!

で、続けて本にある通り、
>>> [ trend['name'] for trend in trends['trends'] ]
とリスト内包表記で、Go!!

。。。っと??またエラーだよ?w

>>> [trend['name'] for trend in trends['trends']]
Traceback (most recent call last):
File "", line 1, in
TypeError: list indices must be integers, not str

んーー??
インデックスエラー??

そんなわけで、さっき代入したtrendsの中を見てみる。

>>> trends
[{u'created_at': u'2011-11-20T16:32:46Z', u'as_of': u'2011-11-20T16:38:38Z', u'trends': [{u'url': u'http://twitter.com/search/%23HappyBirthdayJaxon', u'query': u'%23HappyBirthdayJaxon', u'events': None, u'promoted_content': None, u'name': u'#HappyBirthdayJaxon'}, {u'url': u'http://twitter.com/search/%22Katy%20is%20AMAzing%22', u'query': u'%22Katy%20is%20AMAzing%22', u'name': u'Katy is AMAzing', u'promoted_content': None, u'events': None}, {u'url': u'http://twitter.com/search/%23excaz', u'query': u'%23excaz', u'events': None, u'promoted_content': None, u'name': u'#excaz'}, {u'url': u'http://twitter.com/search/%22Get%20Ariana%20On%20Ellen%22', u'query': u'%22Get%20Ariana%20On%20Ellen%22', u'events': None, u'promoted_content': None, u'name': u'Get Ariana On Ellen'}, {u'url': u'http://twitter.com/search/%23MaisFeioQueORonaldinho', u'query': u'%23MaisFeioQueORonaldinho', u'events': None, u'promoted_content': None, u'name': u'#MaisFeioQueORonaldinho'}, {u'url': u'http://twitter.com/search/%22Edgar%20Allen%20Poe%22', u'query': u'%22Edgar%20Allen%20Poe%22', u'events': None, u'promoted_content': None, u'name': u'Edgar Allen Poe'}, {u'url': u'http://twitter.com/search/%22Excelsior%20-%20AZ%22', u'query': u'%22Excelsior%20-%20AZ%22', u'name': u'Excelsior - AZ', u'promoted_content': None, u'events': None}, {u'url': u'http://twitter.com/search/Jaxon', u'query': u'Jaxon', u'events': None, u'promoted_content': None, u'name': u'Jaxon'}, {u'url': u'http://twitter.com/search/%22David%20Luiz%22', u'query': u'%22David%20Luiz%22', u'events': None, u'promoted_content': None, u'name': u'David Luiz'}, {u'url': u"http://twitter.com/search/AMA's", u'query': u"AMA's", u'events': None, u'promoted_content': None, u'name': u"AMA's"}], u'locations': [{u'woeid': 1, u'name': u'Mundial'}]}]


あや??
u'trends': [{u'url': u'http://twitter.com/search/%23HappyBirthdayJaxon', u'query': u'%23HappyBirthdayJaxon', u'events': None, u'promoted_content': None, u'name': u'#HappyBirthdayJaxon'}, 。。。

ってなってる。

twitterの返してくる形が変わったのかな?

ということで、リスト内包表記を

>>> [ trend[u'name'] for trend in trends[0]["trends"] ]

に変えてあげると、見事、

[u'#HappyBirthdayJaxon', u'Katy is AMAzing', u'#excaz', u'Get Ariana On Ellen', u'#MaisFeioQueORonaldinho', u'Edgar Allen Poe', u'Excelsior - AZ', u'Jaxon', u'David Luiz', u"AMA's"]

本が期待してる結果になったね!!


真夜中にこんなハマるとは思わなかったw

そんなわけで、今日はここで寝ることに。

さてさて、明日もがんばるぞー!





追記:
また不具合起きたので、コードを追加しました。
こちら

2011年8月10日水曜日

ZONE TRIBUTE

限定版届きました!


さっき聴き始めたので、まだまだsecret base 〜10年後の夏〜へのアンサーソングは聴けてないけど。。。
女性ボーカルたちのカバー(disk1)はすべて聴き終わった!すてきすぎた!!


今は再結成ZONEのリセレクト(disk2)を聴いてる。
もうやばいww


明日も朝から予定あるけど、しーらない!聴きまくるww

2011年8月7日日曜日

原点回帰

新書がすごく好きで、年間結構読んでいると思う。
そして、インターネットも好き。

なんでなんだろう?と、考えてみた。

上記2つに共通していること、
「どっちも好きになりだしたのは、2007年くらいから。」
ということ。

どっちも好きになりだした2007年くらいに、一番印象的だった新書を考えてみる。

まず、2006年に読んだ、梅田さんのWeb進化論(ちくま新書)。
あれは大学の講義関係で読んだときは、正直、あんまり何も感じなかった。

で、2007年くらいに、ふと立入った本屋で発見したものが、
梅田さんと茂木さんの対談本、フューチャリスト宣言(ちくま新書)。

まぁ正直、今内容は覚えてない(笑)
でも、これにすごく衝撃を覚えた感覚は記憶にある。

アマゾンのレビューには、あまり得られるものはないとも書かれていたけれど、それまでPCやインターネットにほとんど触れてこなかった自分には、すごく収穫があったんだろう。

そう、思えばそこから。
インターネットや新書が好きになったのは。


「フューチャリスト宣言」
まさに、未来学者によって導かれた未来。

そこでまた考える。
本当に、今のまま、ここから未来へ行きたいか?と。

答えはNoだ。
もっと知識とスキルを磨いて向かいたい。
磨きながら進みたい。磨き続けたい。

でも焦ってもいいことはない。それは今までの経験からわかる。

そして、間違いなく、今はこれから進む道を決めるところにいる。
だからこそ今はちょっと立ち返ってみるトキだと思う。

そこで、このブログの一番始めの問いがでてきた。
そしてその解の一つが、「フューチャリスト宣言」だった。


さぁ原点にもどってみよう。これからインターネットの世界で生きていきたいと考える今こそ。

そんなわけで、少しの間読書に耽ろうと思う。


強く地面に突き進む雨をみて、轟渡る雷鳴をききながら。