ちょーど、仕事で、必要なったので、こちらを参考にしながら、半角数字を全角数字に変換するファンクションを作成しました。
/* 半角から全角に変換するファンクション */ |
これで引数に半角数字をぶっこめば、全角数字で返してくれるのですが、もっとスマートな方法ないかなー。
常にテンパってます。
ちょーど、仕事で、必要なったので、こちらを参考にしながら、半角数字を全角数字に変換するファンクションを作成しました。
/* 半角から全角に変換するファンクション */ |
今、本を読んでいる最中なのですが、確実に、schemeを使ってプログラミングを全然していないので、はやりなれずに苦戦しちゃってます。
飲み込みがとても悪いので、数をこなしたいと思うのですが、いっぱい、ソースが書かれているschemeの本とかないかなー。
試しに、引数に2を足すlambdaを作成
そして、結果は、こちら
プロシージャーの名前を決めなくても、プロシージャーを実行できるところが、はやりすごいと思う。
schemeでは、ラムダという概念が出てくると聞いてたのですが、先ほど、初めて登場しました。
まだ使い方をきちんと把握していないのですが、プロシージャーの名前を宣言せずに、プロシージャーの内容を宣言し、引数を割り当てて実行することができるみたいです。
今まで、pl/sqlにしろ、JavaScript(個人的には、無名関数として使ったことはあるのですが、業務ではないのです。)にしろ、ファンクション名、プロシージャー名を宣言せずに、実行したことがないので、ものすごく興奮してしまい思わずエントリーを書きました。
きっと、JavaScriptの無名関数もこの辺からきているのかなーと思うと、半端なく興奮してきます。
先が楽しみぃー
先輩社員が、過去に作ったhtmlとjavascriptだけで作られたポーカーを見て、どうやって作るんだろうーと疑問に思いながらソースを組んでいたら、プロトタイプができたので、ガジェットとして公開しました。
使い方を後で、ガジェット内部に埋め込む予定ですが、はじめに、「Bet」ボタンを押して、賭けるコインの枚数を設定します。
この時点で何枚でもかけることができて、もし、枚数を減らしたい場合は、右の「Cancel」ボタンを押せば、賭けた枚数を少なくすることができます。
で、オッケーな場合、左下にある「Start」ボタンを押すとプレイが開始されます。
ここからは、他のポーカーと同じで、残したいカードがある場合、下にある「Hold」のボタンを押します。
カードの下に「Hold」という文字が表示されれば、交換されずに保持されます。
Holdが完了したら、「Change」ボタンを押します。
今回は、負けてしまいましたが、勝った場合、ダブルと支払いをすることができます。
ちなみに、今後の予定としては、hetemlでサーバーを借りたので、mysqlを通して、最高枚数を表示したり、ランキング機能がついたサイトを作りたいと思っております。
ポーカーを作った先輩社員に見せたところ、なんと、「3カード」は、実は、「3 of a kind」で、「4 カード」は、「4 of a kind」だとのこと。(公開前に見せればよかったー。。。 orz)
後、オリジナリティを出したいと思い、ガジェットのUserPrefタグのhidden属性を使用して、コインの枚数を保持できるようにしました。(ちなみに、先輩社員は、cookieを使って実装しようと試みたそうです。)
さらに、若干、トランプのレイアウトも変更しました。
下のボタンから追加することができます。是非、どうぞ。
※後日、ガジェットのurlを変更する予定でいます。urlが変更され次第、また追って、新しいurlの場所を書きたいと思います。
前々から気になっていたボタンの小ささと、文字の小ささから、画面をリニューアルしました。
前よりはよくなったんじゃーないのかなと。
リニューアル時に、前回読んだ、ハイパフォーマンスWebサイトに書かれている項目を取り入れました。
具体的な項目は、
1章 ルール1:HTTPリクエストを減らす
5章 ルール5:スタイルシートは先頭に置く
6章 ルール6:スクリプトは最後に置く
7章 ルール7:CSS expressionの使用を控える
12章 ルール12:スクリプトを重複させない
の部分を使いました。ルールが14で展開されていたので、14項目中5項目使ったことになります。
残りの部分は、また今後作るガジェットに取り入れようと思います。
ガジェットの追加はこちらからできます。
前回、Bugle Diary: [scheme]modulo=remainderで、moduloとremainderは同じ挙動をするという記事を書いたのですが、その後、コメントを頂きまして、実は、違うということを教えていただきました。
(コメントありがとうございます(* ̄∇ ̄*))
コメントいただいたときに、リンクが紹介されていたので、そちらを参考に、再度、検証しました。
前回と同様に、下の場合は、同じ評価結果を表示します。
問題は、次です。
実は、下の場合は、違う結果を返します。
上の式は、
-5 = -1 * 4 -1 |
-5 = -2 * 4 +3 |
通勤中に読んでいたハイパフォーマンスWebサイトが読み終わったので(この本で得た知識を元に開発したプログラムの紹介はまた後日)、ヨドバシカメラのポイントを使ってThe Art of UNIX Programmingという本をゲットしました。
目次
via:The Art of UNIX Programming
序章
第1章 思想:大切なのは思想だ
第2章 歴史:2つの文化の物語
第3章 対比:Unix思想と他のOS
第4章 モジュール化:簡潔に、単純に
第5章 テキスト形式:優れたプロトコルが優れた実践を生む
第6章 透明性:光あれ
第7章 マルチプログラミング:プロセスを機能別に分割する
第8章 ミニ言語:歌いだす記法を探す
第9章 コード生成:高い水準で規定する
第10章 設定:気持ちよくスタートしよう
第11章 ユーザーインターフェイス:Unix環境におけるユーザーインターフェイス設計
第12章 最適化
第13章 複雑さ:できる限り単純に、それよりも単純でなく
第14章 言語:CすべきかCせざるべきか?
第15章 ツール:開発の戦略
第16章 再利用:やり直しを避けること
第17章 移植性:ソフトウェアの移植性と標準の維持
第18章 ドキュメント:Web中心の世界でコードの説明をする
第19章 オープンソース:新しいUnixコミュニティでのプログラミング
第20章 未来:危険と可能性
略語集
参考文献
寄稿者紹介
無根的根:不宇先生のUnix公案
開発をしていてずっと気になっていたのですが、document.all("")とdocument.getElementByIdのアクセス速度って違うのでしょうか?
前者は、documentにあるすべてのタグを見に行くのに対して、後者は、ピンポイントで指定しているから、ひょっとしたら後者の方が早い気がするのですが。。。
論より証拠ということで、ソースを作って実行してみたらところ、アクセス速度に違いはありませんでした。
以下、ソースです。
<CFOUTPUT> |
前回、Bugle Diary: [javascript]<td>内の値を取得する。で、t.satoさんから、firefoxでは、innerTextが使えなくて、代わりにtextContentを使えばオッケーというコメントをもらいました。
実際にソースを作ったところ、ちゃんとtrueを返したよ。
(thanks fot your advice!!)
以下、firefoxで実行されます。
<div id="hoge"></div> <script type="text/javascript"> document.getElementById("hoge").textContent = "foo"; </script> |
前回、Bugle Diary: [scheme]remainderってmodのことかいな!!で、「modulo」でも、modを求めることができるというコメントを頂いたので、検証しました。
確かに、modが算出されています。
SICPの1章後半なのですが、moduloの式はまだでてきていないのですが、文章には書かれています。
remainderしか式は登場していないのですが、これから先、登場するのでしょうか??
う~~~ん、楽しみ♪(* ̄ー ̄)v
isNaNの引数がnullだった場合、trueではなくfalseを返すので、開発時に気をつけたいところです。
まとめると下のような感じになるのかな。
//false |
他の人が作ったプログラムを見ていたところ、onloadに、onload = "javascript:・・・"と書かれていて、onload以下を無名関数に変更できないかなと試しに作ってみました。
まずは、scriptタグで下のソースを実行する。
//「test」と表示される。 |
//エラーになりました。 |
//「test」と表示される。 |
ハイパフォーマンスWebサイトを読んでいて知ったのですが、CSSを動的に変更する技として、css expressionという方法があるということを知りました。
cssにjavascriptを埋め込んで動的に変更するのですが、すぐに固まったり、不必要に動作してしまう可能性があるそうです。
javascriptからfunction経由で、変更すればいいんじゃーねぇーと思ってしまうのだが。
テキストに説明がなくて、結構、テンパってしまったのですが、remainderってmodのことだったんだー。
ここの説明はほしかったなー。。。
今、ガジェットを作っているんですけど、<td>の中を取得するのに、方法がわからなかったので、ちょっとぐぐってみたら、typeCS POTATO topsMさんのページに回答が書いてありました。
基本的には、document.getElementById('<td>のId').innerTextで取得できるよう。
当初の予想では、nodeを使って取得するのかなーと思っていたのですが、もっと簡単に取得できたんですね。
webだけでなく、sqlや○○○の時にも、何かと
ぶち込みたいときがあります。(たまには、シ~モ~ネ~タで)
oracleのpl/sqlでカーソルの宣言を行い、内部のsqlに変数を使いたい場合は、カーソルに引数を持たせることができます。
ここのサイトを参考にすると以下のように記述することができます。
DECLARE |
先日、Sato君から、while文を使わずに、トリムをかける方法を教えてもらったので、再度、取り上げたいと思います。(Sato君、サンクスです!!)
教えてもらった方法はこちらの通り。
var target; //LTRIM target.replace(/^[ ]*/gim, ""); //RTRIM target.replace(/[ ]*$/gim, ""); |
今年も参加しました。google developer day 2008
規模がデカかった。
↑基調講演
去年は、google maps apiとそれ以外って感じだったけど、今年は、gearsやgwt、open socialと幅広くセッションがありました。
open socialは、今まで、薄っすらとしか理解していなかったけど、より具体的なイメージを持つことができました。
充実した一日でした。