Libraのハッカソンやってるという話は先日「HackLibra、最初のオンラインハッカソン」で書きました。 …
Libraのハッカソンやってるという話は先日「HackLibra、最初のオンラインハッカソン」で書きました。 …
現場主導のデジタル変革 ビジネス変革のための“ITの民主化” そして 変わるIT部門の役割 コーマス広告の大変動 プライバシー保護とパーソナライズの狭間で マーケティングの効果を最大化するためには 注目急上昇中のDaaS最新情報 コロナ禍を背景に利用者と機能を拡大中 Azure Virtual Desktop最新情報 年間5,000件の問い合わせに対応 疑問を解消したいユーザーも答える情シスも みんな幸せになるヘルプデスクの最適解 ID管理の基礎知識 新しい働き方におけるITガバナンスの 向上にむけて Kubernetes活用の最適解とは? 今、注目のコンテナを活用した柔軟なIT基盤 運用、管理の課題を解決しメリットを最大化 勝つためのクラウド活用術 New Value on Azure ビジネスを次のステージへ! 電話営業・インサイドセールの革新 AIによる自動文字起こし・会話分析が 音
Firebug - Firebug Lite 25日(米国時間)、Firebug Liteの最新版となるFirebug Lite 1.2が公開された。Firebug LiteはFirebugの機能をJavaScriptで実装したサブセット版。ページに挿入可能なJavaScriptとして実装されているためFirefoxのみならずIE、Safari、Operaなどのブラウザでも使えるという特徴がある。 Webアプリケーション開発やWebデザイン調整に人気のあるエクステンションがFirebugだ。しかしエクステンションとして実装されているためFirefox以外では使えないという制約がある。同じデバッグ機能をIEやSafariで試したいと思っても使えない。Firebug LiteはFirebugの機能を挿入可能なJavaScriptで実装することでIEやSafari、Operaでも動作するようにし
前回の続き 実際にやってみました。(Canvas要素を使っているのでFirefoxでどうぞ) http://eva-lu-ator.net/~gemma/geocities/jsmario/jsmario.html マリオのようにジャンプで放物線運動をするゲームを作るとき、 たいていは、座標と速度を使って物理計算すると思います。これはEuler法といいます。 Verlet法では、座標と、前回の座標を使って計算します。つまり、速度を記憶しません。 Verlet法では、座標だけ扱えばすむので、壁にめりこんじゃいけないといった条件を簡単に書くことができます。 単に座標を、壁の直前にするだけでいいです。 ネタ元はCowboy Programming >> Blob Physicsです。 今回のコードの肝は以下の部分です。衝突判定がすっきり書けました。 //Verlet法 var y_temp =
いまさらアルゴリズムを学ぶ意味:コーディングに役立つ! アルゴリズムの基本(1)(1/3 ページ) 本連載ではアルゴリズムを学ぶ、または学び直すことで、プログラミングのスキルを深めていきます。アルゴリズムは学問として取り扱われることが多いですが、この連載では開発の現場に役立つスキルを身に付けることを目的とします。初回は、アルゴリズムを学ぶ意義について。コンピュータに「3の倍数と3の付く数字」を判断させるにはどうしたらいいか。発想力を鍛えよう。 アルゴリズムを学ぶ意味 IT技術者である読者の皆さんなら、普段から何げなく「アルゴリズム」という言葉はよく使っていることでしょう。しかしあらためて「『アルゴリズム』とは何か」と問われて、すぐに明快に答えられるでしょうか。 また、IT技術者であってもアルゴリズムをきちんと勉強した人は意外と多くないのではないでしょうか。大学で学んだとか、入社後の新人研修
id:GimiteさんがHotRubyがC Rubyより速い本当の理由は? - monthly gimiteのエントリでJavaScriptの高速化の別の方法を考えられてました。 シンプルな上に使いやすそうです。目から鱗。 id:Gimiteさんの方法だと、 c=a+b; e=a+d; としたときにコピーが発生するはずです。Firefoxでそうなるかどうか見てみました。 //巨大な文字列を作っておく sum=""; for(i=0;i<50000-1;i++){sum+=i;} //ベンチマーク開始 t1=new Date().getTime(); sum2=""; for (i = 0; i<50000;i++) { sum2 = sum + i; } t2=new Date().getTime(); alert((t2-t1)/1000+"sec") 実行すると 46.844sec だ
JavaScriptが速くて、Rubyが遅い理由というエントリがあったのですが、コメントやトラックバック、追記などを読むと 実用上HotRubyがC Rubyより速いというわけではまったくない プリミティブ型の有無が原因という話はどうやら間違い のようです。 とはいえ「↓のベンチマークでHotRubyがC Rubyより速い」というのは事実です。これがなぜなのかちょっと気になったので考えてみました。 startTime = Time.new.to_f sum = "" 50000.times{|e| sum += e.to_s} endTime = Time.new.to_f puts (endTime - startTime).to_s + ' sec' これについてはRubyが遅いのは本当にBoxingのせいか?が参考になります。まず、C Rubyではベンチマークの += を << に書
面白そうなのでトラックバックもつけてみます。 8/1の日記の結果から、どうやら、FirefoxのJavaScriptの文字列処理は+(結合演算)に工夫があるように見えます。特に、文字列が大きくなっても結合の速度が変わりません。これは普通の感覚からするととても奇妙なことです。 なので、ちょこっと調べてみました。 普通はどうなるのか?(Java編) 普通の例、かどうかは別としてまずはJavaで文字列結合するとどうなるか見てみます。 import java.util.Date; class JavaStr { static public String exec(String sum) { Date t1 = new Date(); for (int i = 0; i < 10000; i ++) { sum += new Integer(i).toString(); } Date t2 = ne
http://d.hatena.ne.jp/yukoba/20080729 HotRubyがYARVより速いのはBoxingのせい、ということのようです。ベンチマークと言うのが何をさしているのか分かりませんが、とりあえずHotRubyのサイトのStringのベンチマークを対象として考えます。 それはこんなベンチマークです。 startTime = Time.new.to_f sum = "" 50000.times{|e| sum += e.to_s} endTime = Time.new.to_f puts (endTime - startTime).to_s + ' sec' 本当にBoxingのせいなんでしょうか? 結論から言うとそんなことはないのではないか?って感じです。 もともとRubyのプリミティブ型はソースコード中で特別扱いされていたし(1.8しか見てませんが)、C言語レベル
« MyMiniCity 日本語化 | メイン | JSRuby から jQuery を使う ( Javascript 連携 ) » Javascript で実装した Ruby インタプリタ JSRuby 0.1 リリースしました。 あけましておめでとうございます。 1月からサイボウズ・ラボのオフィスが引っ越しました。新年から気分も新しくぶりぶり仕事します。よろしくです。 というわけでちょっとずつ作っていました Javascript で実装した Ruby インタプリタの "JSRuby" を一区切り付けるべくバージョン番号を付けてリリースしました。 JSRuby Project Page (CodeRepos) http://coderepos.org/share/wiki/JSRuby JSRuby Test Page https://labs.cybozu.co.jp/blog/nak
僕自身も僕の周辺もJSONをよく使います。でも、細かい点でけっこうミスをやらかしています(苦笑)。このエントリーで、JSONを使う上で注意すべきこと/間違いやすい点をすべて列挙します。 内容 兼チェックリスト: 仕様原典さえ読めば完璧(のはずだが) 数値の前にゼロを付けてはいけない 16進数表記も禁止だよ 数値の前にプラスを付けてはいけない 小数点からはじまる数値はダメ 用語法が違うよ:プロパティとメンバー メンバー名には常に文字列を使う 空文字列""もメンバー名に使える 配列要素はキッチリと並べよう 文字列を囲むには二重引用符だけ 文字列内のエスケープが微妙に違う 仕様にないエスケープは構文エラー undefinedもNaNもありません ラッパーオブジェクトは使わないのが吉 型システムとtypeofに関する注意 最後に 仕様原典さえ読めば完璧(のはずだが) JSONは、小さくて簡単な仕様
経緯 id:kazuhooku さんが一年前にやってたことですが Kazuho@Cybozu Labs: JavaScript/1.7 で協調的マルチスレッド 今日やっと挙動が理解できたのと、 Weave のソースを読んでいたらこのテクニックをバリバリ使っていて「ちょwwおまwww」ってなったので、自分でも作ってみようと思いました。 ほとんど id:kazuhooku さんのと同じものなので、既出です><本当にありがとうございました>< まず、 yield とは何か yield とは、 JavaScript 1.7 から導入された機能です。 以下に yield の細かい挙動を示しておきます。 function f() { // なんかの処理 yield; // ... (1) // なんかの処理 yield; // ... (2) // なんかの処理 } var g = f(); // こ
var defer = function(/* f1, f2, ... */){ var self = this, fn = Array.prototype.slice.call(arguments); (function(/* arg2, arg3, ... */){ var args = Array.prototype.slice.call(arguments); (fn.shift()).apply(self, [arguments.callee].concat(args)); })(); }; defer(function(next){ var t=1; alert(t); window.setTimeout(function(){ next(t+1); }, 1000); // 1秒後に第2引数を2として次の関数を呼ぶ }, function(next,t){ alert(t);
New in JavaScript 1.7 - MDC JavaScript1.7 の yield を使って、非同期処理を同期処理のように書く方法 - IT戦記 // ==UserScript== // @name defer // @namespace http://mayokara.info/ // @description sample script // @include http://* // ==/UserScript== (function(cdata){ // type指定しないとyieldが使えない var s = document.createElement("script"); s.type = "application/javascript;version=1.7"; s.textContent = cdata.toString(); var head = docu
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く