階乗の生成のアルゴリズムの調査を行っていて、こちらのリンクに紹介されている文献を読んでいたのですが、その中で、BigIntegerというクラスを初めてみたので、どんなものかちょっとぐぐることに。
変更が不可能な、任意精度の整数です。
via:BigInteger
なるほど、変更ができないんですね。
かつもう少し先を読んでみると、かなり数学的な計算を行うために用意されたクラスのようです。
普段、システムを作る上であまり使われないかもしれませんね。
Tweet
常にテンパってます。
階乗の生成のアルゴリズムの調査を行っていて、こちらのリンクに紹介されている文献を読んでいたのですが、その中で、BigIntegerというクラスを初めてみたので、どんなものかちょっとぐぐることに。
変更が不可能な、任意精度の整数です。
via:BigInteger
階乗を計算する必要があったので、ちょっと作ってみました。
function getFactorial(n,total){ |
開封式を行いました。
Lady Gagaを彷彿とさせる画面だ。
第一印象ですが、アプリの数が多すぎてどこをどうやって使っていいのか?悩むところです。
まーここら辺は追々なのかなと。
後、アプリのバックアップなどは、SDカードで保存するという寂しさ。
クラウドの時代なのに、今だにハードって。。。
そう考えるとiPhoneとiTunesの組み合わせってすごいなーっと今更ながら実感。
案の定、SIMカードを挟まなくてもネットができるという仕様に関してはiPhoneと同じ。
当分、2台もちが続きそうだ。。。
Tweet
先日、softbankの上板橋でiPhone 3Gで新規の契約をしようとしたのですが、どうやら規制が変わったらしくパケットし放題フラットではないと契約ができないそうなので、結局、諦めました。。。
それにしても、標準プライスプランでも契約できればいいのになー。
何か不都合なことでもあるのだろうか?
Tweet
これもおもしろかったなー。
第一章 ヨークアベニュー、66丁目、ニューヨーク
via:目次
第二章 アンサング・ヒーロー
第三章 フォー・レター・ワード
第四章 シャルガフのパズル
第五章 サーファー・ゲッツ・ノーベルプライズ
第六章 ダークサイド・オブ・DNA
第七章 チャンスは、準備された心に降り立つ
第八章 原子が秩序を生み出すとき
第九章 動的平衡とは何か
第十章 タンパク質のかすかな口づけ
第十一章 内部の内部は外部である
第十二章 細胞膜のダイナミズム
第十三章 膜にかたちを与えるもの
第十四章 数・タイミング・ノックアウト
第十五章 時間という名の解けない折り紙
こちらも読了
年収10倍アップ時間投資法 基礎編
via:目次
1 なぜ時間管理はうまくいかないのか
2 なぜ新しい行動は続かないのか
3 勝間式「黄金の時間の5原則」
4 黄金の時間を増やすための5つのステップ
年収10倍アップ時間投資法 実践編
5 実践ケーススタディー1―時間効率10倍アップを目指して手帳を使いこなす
6 実践ケーススタディー2―勝間式時間投資法 ある夏の一週間のスケジュール
前回、iPhoneの位置が変わった時にJavaScriptにonorientationchangeハンドラーがコールされるということを書きましたが、調査してみてわかったのは、向きを変更しなくても、window.orientationを値は取得できるようです。
0がhomeボタンが下の場合です。
参考
DOMWindow Additions Class Reference
Tweet
JavaScriptでiPhoneの位置(向き)が変わった時の通知してくれるイベントハンドラーを発見したので、サンプルを作りました。
<html> <head> <title>Sample Code</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> <meta name="viewport" content="width=device-width, user-scalable=no" /> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"> </script> <script type="text/javascript"> function OrientationChangeFunction(){ var displayStr = "Orientation : " + window.orientation; $("#hoge").text(displayStr); } </script> </head> <body onorientationchange="OrientationChangeFunction()" > <div id="hoge"></div> </body> </html> |
についてですが、前回作ったmetaタグに属性を少し追加するだけで対応できるようです。
<meta name="viewport" content="width=device-width, user-scalable=no" /> |
方法ですが、User Experience Coding How-To's for Safari on iPhoneの「How do I ensure that my web content uses all of the available screen space on iPhone?」を読むと、
<meta name="viewport" content="width=device-width" /> |
Google App Engineにやっと念願のChannel APIが導入されました。
これは何かというと、早い話、websocketです。
というわけで、さっそく簡単な例を
(ドメインは、http://hoge.appspot.com/とします)
#!/usr/bin/env python # # Copyright 2007 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # import os from google.appengine.ext import webapp from google.appengine.ext.webapp import util from google.appengine.api import channel from google.appengine.api import users from google.appengine.ext.webapp import template class MainHandler(webapp.RequestHandler): def get(self): #下のメソッドの引数は文字列ではないとエラーになる token = channel.create_channel("websockettest") template_values = {'token':token} path = os.path.join(os.path.dirname(__file__), 'index.html') self.response.out.write(template.render(path, template_values)) def post(self): msg = self.request.get('msg') msg = msg.encode('utf-8') self.response.out.write("var ret; ret = {result:true};") #下のメソッドの引数は上のcreate_channelメソッドと同じでオッケー channel.send_message("websockettest",msg) def main(): application = webapp.WSGIApplication([('/', MainHandler)],debug=True) util.run_wsgi_app(application) if __name__ == '__main__': main() |
<html> <head> <title>Sample Code</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script src='http://hoge.appspot.com/_ah/channel/jsapi'></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"> </script> </head> <body> <script type="text/javascript"> var socket; $(document).ready(function(){ channel = new goog.appengine.Channel('{{ token }}'); socket = channel.open(); socket.onopen = onOpened; socket.onmessage = onMessage; socket.onerror = onError; socket.onclose = onClose; $("#msg_post").bind('click',function(){ $.ajax({ type: "POST", url: "http://hoge.appspot.com/", data: "msg="+encodeURIComponent($("#msg").val()), success: function(data){ console.log(data) }, error:function(){ console.log("失敗しました。") } }); }); }); function onOpened(){ } function onClose(){ console.log("閉じます") } function onError(error){ console.log("エラーが発生しました。") } function onMessage(res){ $("#total_msg").append(res.data + "<br>"); } </script> <input type="text" id="msg" value=""> <input type="button" value="投稿" id="msg_post"> <div id="total_msg"></div> </body> </html> |
JavaScriptの関数の効能を調べるために、よくポケットリファレンスを使っているのですが、その中で、setTimeoutとsetIntervalの各関数の引数について、文字列で渡しているのですが、実際のところ、ここの部分は、無名関数でもいいみたい。
setTimeout(function(){console.log("hoge")},1000) |
これってノンフィクションなのだろうか?
1 急降下した業績
via:目次
2 社員はこうして「やる気」を失った
3 社内総無責任体制
4 「成果主義」と企業文化
5 人事部の暗部
6 日本型「成果主義」の確立へ
読了
年収10倍アップ勉強法―基礎編
via:目次
1 なぜ勉強するのか?
2 なぜ勉強が続かないのか?
3 まずは道具を揃えよう
4 勉強の基本的なコツを知る
5 目でする勉強―本・新聞・雑誌・ネット
6 耳でする勉強―オーディオブック・音声コンテンツダウンロード
7 目と耳でする勉強―セミナー・DVD
8 学校に行ってみる
9 基礎編のまとめ―「勉強の仕組み」を投資しながら組み立てる
年収10倍アップ勉強法―実践編
10 何を勉強すればいいのか?
11 英語―めざせ、TOEIC八六〇点
12 会計―「さおだけ屋」を超える知識とは?
13 IT―みんなに頼られるエキスパート
14 経済―日経新聞の裏を読める
15 転職―身につけたものをお金にしよう
16 資産運用―勉強内容が収入に直結する
17 さぁ、スケジュール帳に予定を入れましょう
されました。
原因としては、ただのwebコンテンツを出すのは、NGとのこと。
ただコンテンツを出力するだけではなく、「設定」アプリから言語が選択できるようにしたのですが。
あまりにも年内にリリースした気持ちが先行しすぎて少し焦ってしまったのかもしれません。
今年中には、無理そうなので、来年こそ、腰を落ち着かせて確実にリリースしたいと思います。
Tweet
読了
#0 Ruby on Rails開発者 David Heinemeier Hansson
via:目次
「アーキテクト」って言葉を使ったら負け
#1 (株)はてなCTO 伊藤 直也
良いサービスを作るのに,マネジメントはやはり重要
#2 Perl開発者 Larry Wall
優れたソフトウェアも,文化を持たなければ普及しない
#3 livedoor 池邉 智洋/谷口 公一/ma.la
ネットは個人の人生に何をもたらしているか
#4 Twitter Co-founder Evan Williams
大事なのは「好き」を貫けること
#5 The Seasar Project チーフコミッタ ひが やすを
世の中の根底にあるニーズに合ったものを提供したい
#6 『達人プログラマー』著者 Dave Thomas
コーディングを続けるという情熱が重要。それ以外は取るに足りない
#7 Pathtraq / Japanize 開発者 奥 一穂
自分は,コミュニケーションの形態を考えてる。ウェブは手段
#8 Mozilla Corporation / jQuery開発者 John Resig
自分が興味を持っているものに集中し,最適化を加える
#9 「Binary 2.0」「スルー力」提唱者 高林 哲
ハッカーに一番重要なのは,「深追い」できること
#10 Perl Mongers Ingy dot Net / Dave Rolsky / Jesse Vincent / C.L. Kao
今どき正気の人はいない。大事なのは役に立つ狂気かどうか
#11 『IT戦士』 天野 仁史 & こんにちはこんにちは! はまちや2
勢い重要。脆弱性とか気にしないでシンプルにリリースすべし
#12 夫婦対談. (株)はてな 近藤 淳也・令子×小飼 弾・直美
行動を起こしたほうに情報はついてくる
#-1 スペシャル対談:前編 きたみりゅうじの 小飼弾に逢ってきた
アルファギークとSEの現実と
#-2 スペシャル対談:後編 きたみりゅうじの 小飼弾に逢ってきた
知られざる小飼弾の歴史
こちらも読了
第1章 なぜ、利益の概念が必要なのか
via:目次
第2章 利益はどう計算するのか
第3章 利益を上げる方程式の解き方
第4章 原則1 どうやって顧客単価を上げるのか
第5章 原則2 どうやって顧客獲得コストを下げるのか
第6章 原則3 どうやって顧客原価を下げるのか
第7章 原則4 どうやって顧客数を伸ばすのか
第8章 明日からできる行動習慣
応用範囲がすごい
via:4つのすごい - 書評 - 勝間式「利益の方程式」
次にすごいのが、本書の応用範囲。本書の「利益の方程式」は、小は個人のアフィリエイターから、大はトヨタクラスの企業まで、利益を必要とする者全てに応用が利く。方程式の醍醐味がここにある。
おもしろすぎてすぐに読了
第1章 格差社会
via:目次
第2章 政治・裁判・税金
第3章 メディア
第4章 教育
第5章 IT
第6章 食とオンナとオシャレとお金
読了
第1章 モーニングコール
via:目次
第2章 脱出の名人
第3章 ハリウッド・ハイ
第4章 びっくりハウスで迷子になって
第5章 現実は厳しい
第6章 驚異の年
第7章 頭にあいた穴のように
第8章 プレゼントの包みを開ける
ajaxで送信されたパラメータをPython(正確に言うと、GoogleAppEngine)でキャッチすることはできたのですが、そこからURLエンコードするのに苦戦をしてしまいましたので、その方法を紹介。
import urllib ajaxparam = self.request.get('hoge') ajaxparam = ajaxparam.encode('utf-8') ajaxparam = urllib.quote_plus(ajaxparam) |
import urllib ajaxparam = self.request.get('hoge') ajaxparam = urllib.quote_plus(ajaxparam) |
昨日、chrome web storeがオープンしました。
Googleからの事前通告なしに、いつの間にか、Black and Whiteもリリースされていました。
Chromeのバージョンが8以降で、Googleにログインしていることが要件なのですが、
こちらからインストールすることが可能です。
もちろん無料なので、是非、是非、遊んでいただきたい。
感想や意見、要望などは、ここのReviewか、ブログのコメントに書いていただけると大変助かります。
Tweet
しました。
こちらからアクセスすることができます。
有料、無料といろいろなアプリをインストールすることができます。
果たして、この試みによって、widget業界を制覇することができるのでしょうか?
それを考えると、これも、一つのGoogleの挑戦なのかもしれない。
今まで、どの会社もこの分野に参入したが、未だに決定的にシェアを占めている会社はいないと思っています。
Yahoo widget
Opera widget
Windows vista gadget
Google desktop gadget
Apple Dashboard
など、色々とありますが。
今後の動きに注目していきたい。
Tweet
Safari Web Content GuideのConfiguring Web Applicationsを読んで気になったのですが、実は、ホーム画面にwebページを追加した後、そこから、開いたときにどうやら、ステータスバーのスタイルを変更することができるみたいです。
で、具体的にどうするかというと、metaタグに下記の2行を追加すればいいそうです。
<meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> |