jQueryでDeferredオブジェクトをゴリゴリ作ってると、時々DeferredのNullオブジェクトが欲しくなる。 JavaScriptはダックタイピングな言語なので、単純にDeferredオブジェクトのインターフェース持ったオブジェクト作ればいいと思う。 $.extend({ nullDeferred: (function(){ function returnThis(){ return this; } var promise = {}; // 基本はメソッドチェーンできるメソッドなので、自身を返すメソッドを生やす for(var n in $.Deferred().promise()){ promise[n] = returnThis; } // 例外的にその他オブジェクトを返すメソッドを決め打ちで生やす $.extend(promise, { state: function()
グローバル変数とは違って、こちらは受け渡されるものが値なので書き換えの心配もなく、安心して使いやすい。 PHPの場合、式では書けず文にせざるを得ない構文が多いので、上記のままだとうまく書けないケースがあるかもしれない。その場合はJavaScript風に即時関数を組み合わせるとよい。
このテキストは JavaScript のコールバック地獄に疲れたひとのためのコールバック駆逐術指南書です。対象読者は JavaScript道初段くらいの人です。このテキストを読むと、以下のそれぞれの手段における非同期処理制御の仕組み、利点および欠点がわかるようになるかもしれません。 コールバック地獄 jQuery.Deferred async.js Concurrent.Thread generators co fibers Web Workers (※なぜか『進撃の巨人』の一部ネタバレが含まれるので注意してください) それは『何故人はコールバックするのか』という話でしょうか? 非同期処理って面倒ですよね。JavaScriptではいわゆる コールバック地獄 というやつにしばしば陥りがちです。たとえば、Ajax でふたつのファイル hoge.txt と piyo.txt を持ってきて、それら
コマンドのパスを知りたいんじゃなく、コマンドの存在をチェックしたいだけならwhichよりhashを使ったほうが良いかもっていう話。→追記: typeが最強っぽい。 追記: command -vも良い。プログラムの存在チェックorパスを探したいだけなら互換性を考えると一番良いかも。 比較してみる whichよりhashよりtype=command -vが高速→typeまたはcommand -vの勝ち whichは実ファイルという実体があるプログラムです。hashとtypeはbashの組み込みコマンドです。なので当然ですがプログラムの起動コストがない分hashやtypeの方が速いです。 $ time bash -c 'for((i=0;i<10000;i++));do which perl; done >/dev/null' real 0m7.739s user 0m2.928s sys 0m
bower cached git://github.com/jlong/sass-twitter-bootstrap.git#2.3.2 bower validate 2.3.2 against git://github.com/jlong/sass-twitter-bootstrap.git#~2.3.0 bower cached git://github.com/components/jquery.git#1.9.1 bower validate 1.9.1 against git://github.com/components/jquery.git#~1.9.0 bower cached git://github.com/jrburke/requirejs.git#2.1.8 bower validate 2.1.8 against git://github.com/jrburke/
私のように Ubuntu をずっと使ってきた人が Mac を使った時に抵抗がある部分を書いておきます 正直私は全部覚えているのですが,他人に説明するのが面倒なのでw Xcode/Command Line Tools は導入済みであることが前提です Homebrew のインストール 何はともあれ Homebrew を入れましょう Homebrew — MacPorts driving you to drink? Try Homebrew! 公式サイトの下の方に書かれているコードを実行するだけです (私が最初にハマったのですが)Homebrew は apt-get とは根本的に異なります apt-get はバイナリが落ちてきますし,依存関係も壊れることはまずありません しかし Homebrew はソースコードの URL とコンパイルオプションを所持しているだけなのでコンパイルが走って時間がかか
実行時間が長いコマンドが終わったら、zshが勝手にGrowl通知してくる (Mac/Linux/SSH接続先)ZshMacLinuxGrowlMacOSX Linuxカーネルのmakeとか、実行に時間のかかるコマンドを実行して、終わるのを待って眺めるのは辛い。でもその隙に別のことをやると、そのまま完了を待っているのを忘れてしまって時間を無駄にした気持ちになって辛い。&& growlnotify とかコマンドの後につけるのを忘れたことに気がついて、Ctrl-Cで一旦止めるかどうか悩むのが辛い。 というわけで zshのフックを適当に使って、普通にzshでコマンドを叩くだけで、閾値以上の時間がかかるコマンドが終わると通知してくれる設定を考えてみた。 MacのGrowl 対応 ( growlnotify 必須 ) Linuxのデスクトップ通知対応 ( notify-send 必須 ) SSH接続先
<canvas id="sample_canvas" width="640" height="800" style="width: 320px; height: 400px"></canvas> これで、Retinaディスプレイできれいに表示できる。 しかし、このままでは以下のような問題が起きちゃう。 2倍のサイズのCanvasに描画を行うため、処理が重くなる そのため 一部のAndroid端末にて、ブラウザが落ちる、端末が発熱する 一部のAndroid端末にて、Canvas要素のstyle属性を動的に変更するとブラウザが落ちる そこで、Retina以外の端末向けに、処理の切り分けが必要になる。 Canvas要素は実際のサイズ。Canvas上の座標系をあわせるために、 Canvasのscaleを0.5にする。
Subject Alternate Names の略で、サーバ証明書のCN(Common Name)の別名というか追加名のこと。 普通サーバ証明書を買うと www.example.com など一つのホスト名がCNとして設定されたものが発行される。 ブラウザ等はサブドメインまで含めて完全一致でこのホスト名をチェックするから、www2.exmaple.com や example.com なんかのホスト名でアクセスすると証明書エラーが出る。でも www.example.com と example.com はサイトの中身同じだしどっちでもアクセスできるようにしたい。 だけどその為に証明書2枚も買うのはもったないし設定も面倒…。というのに対する一つの回答がSANという機能と思えば良い。より詳しいことは「Subject Alternate Names」でググれば分かる。 要は一つの証明書の中に2つ以上
フレームレートが定期的に一瞬落ちる現象が起きた。 外部モニタに接続するとなぜか起きない。 ガベコレっぽい雰囲気を感じて原因を探ったが、 コードを変更しても改善はなかった。 ふと、自分のMacBook Proにグラボが2ついて、 自動で切り替わる事を思い出す。 設定は システム環境設定 > 省エネルギー > グラフィックスの自動切り替え にある。 試しにチェックを外すと、、、 滑らかになった!! 外部モニタにつなぐとグラボを切り替えるらしい。 だから外部モニタだと問題が起きなかったんだ。。 さて、jsでmacのグラボの切り替えが直接できるはずもないので、 方法を考えた。 負荷がかかりそうだと判断したり、 OpenGLを使ったアプリを立ち上げると切り替わるらしいので、 まず最初に思いつくのは、WebGLっしょ。 window.onload = -> c = document.createEle
var url = 'http://www.youtube.com/watch?v=Q16KpquGsIc&gl=JP&hl=ja#comment'; var elm = $('<a>', { href:url } )[0]; console.log(elm.hostname); //->www.youtube.com console.log(elm.pathname); //->/watch console.log(elm.search); //->?v=Q16KpquGsIc&gl=JP&hl=ja console.log(elm.hash); //->#comment Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficien
大体の内容はDOCTYPE宣言、<head>内の記述方法となります。 さて、HTML4.01でCSS、Javascriptを使用するときの雛形は以下のようになります。HTML 4.01でCSS、Javascriptを使用するとき必要最低限記述する必要のあるもののみ記述しています。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja-JP"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Style-Type" content="text/css"> <me
以前何かの案件でIE8での表示がIE7チックになってるって事があったので、meta要素を追加して難を逃れたわけですが、このmeta要素の記述について詳しく調べていなかったので、自分なりにまとめてみました。ちなみにその時に追記したmeta要素は以下。 <meta http-equiv="X-UA-Compatible" content="IE=Edge, chrome=1"> 上記meta要素はIE8以上のブラウザの時にレンダリングモードを指定するものなんですが、他にもレンダリングモードを決定する条件があるんですが、これを書けばCSSで言う「!important」みたいな感じで確実に指定されるので他の条件は省きます(というか把握してません・・)。 レンダリングモード指定の種類 content属性の値はいくつか指定があります。 <meta http-equiv="X-UA-Compatible
CSSやJavaScriptを使って、IE6, IE7, IE8, IE9 とIEの異なるバージョンごとにスタイルシートを適用する方法のまとめを紹介します。 Use Different Styles For Different Internet Explorer Versions [ad#ad-2] 下記は各ポイントを意訳したものです。 CSS: 条件付きコメント(class) CSS: 条件付きコメント(外部スタイルシート) CSS: CSS Hack JavaScript JavaScript: jQuery おまけ CSS: 条件付きコメント 条件付きコメントを使用して、ドキュメントの一番上の要素(html)にIE6/7/8用のclassを付与します。 HTML <!--[if IE 6]> <html class="ie6"> <![endif]--
このブログをHTML5に変更してみました。最近流行のFacebookのOGP(Open Graph Protocol)も設定しました。 HTML5に変更した理由は、OGP(Open Graph Protocol)を設置したときにvalidなHTMLにしたかったからなのですが、そもそもproperty属性はHTML5の属性ではなく、RDFaの仕様のようでした。勉強不足ですいません・・・。OGPを設置するにあたってHTML5にする必要はないようです。 ただしOGPを設置する場合、html要素に「xmlns:prefix」というネームスペースに対応した属性を設定する必要があります。FacebookのOGPに対応する場合は「prefix」に「og」を設定します。この設定はhtml5とかxhtmlには依存しません。 <html lang="ja" xmlns:og="http://ogp.me/ns
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
この記事は、普段サーバーサイドスクリプト言語(PHP、Perl、Ruby等)を書いていない方を対象に、PHP を使うとどのようなことができるのか、あるいはできないのかを解説した入門記事です。 キャンペーンページで、指定の時間に受付を終了する たとえばキャンペーンページで、指定の時間までは「お申込みはこちら!」というボタンを表示し、それ以降は「キャンペーンは終了しました」と表示させたいとします。 こういう時、PHP はわりと直感的に書けるので便利です。 "; // 現在時刻が、キャンペーン終了後であれば } else { echo "キャンペーンは終了しました "; } ?> ※コメントで、「日付はUNIXタイムスタンプに変換してから比較したほうがよい」とご指摘いただいたので、strtotime() を使用するよう変更しました。 3行目に “2013-09-01 00:00:00” という箇
<META>タグはクローラーやウェブブラウザに対して、文書の内容や付加情報を知らせる為に使うタグです。 keywords description robots ウェブサイトで集客を行うサイトの場合に意識して使われる中では上記の3つがよく使われています。 今回はMETA要素の中でも、セットで使われることの多いname属性のkeywordsとdescriptionについて解説いたします。 <META>タグ <meta>タグの使い方 keywords(重要度は低い) description(重要度は高い) <META>タグの使い方 <META>タグはページのヘッドセクションに入れます。 <meta name=”hoge” content=”hoge”>という形式になります。 記述例 <head> <meta name=”keywords” content=”重火器,拳銃,手榴弾”> <meta
「Mac App Store」の登場によりソフトのインストールは簡単になりましたが、要らなくなったソフトはどうやって削除したら良いのでしょう? もちろんゴミ箱に入れれば良いのですが‥‥。 Macで要らなくなったものは基本、ゴミ箱に入れればOKです。それはソフトも同じ。 アプリケーションソフトの入ったフォルダから、ゴミ箱に移動すればOK‥‥なのですが、それだとソフト本体は削除されますが、設定ファイルなどは残ってしまいます。 昨今のハードディスクは大容量化していますので、ちょっとした設定ファイルなど残っていても関係ないかもしれませんが、それが気持ち悪いという人もいるはず! ということで、Macでソフトを削除(アンインストール)するソフト(方法)をいくつかご紹介します。 ////// (1)AppZapper アプリケーションソフト本体をドラッグ&ドロップすると、関連したファイルを探し出して一緒
私もMacを使っているのですが、このメンテナンスを実践した所、PCの動作が見るからに速くなりました。もし、Macの動作が重たいと感じた時には, かんたんにできますので、是非一度試してみてください。 私のPC環境 MacOS10.8 MacbookAir(2011) 1、リカバリーモードに入る まずは、「リカバリーモード」と呼ばれる画面に入ります。 これは、Macの電源を入れた後に起動音が鳴ると同時に、「Command(コマンド)キー」+「R」のボタンを押します。 そうすると、下記のような画面に繋がります。 「主に日本語を使用する」を選択して、ボタンを押します。(この画面はMacBoocAirの時に出ました。iMacでやったときは出ませんでした) そうするとMacのユーティリティという画面が出てきます。 ここでは「ディスクユーティリティ」を選択し、「続ける」を押します。 ディスクユーティリテ
FINDJOB! 終了のお知らせ 2023年9月29日にFINDJOB!を終了いたしました。 これまでFINDJOB!をご利用いただいた企業様、求職者様、様々なご関係者様。 大変長らくFINDJOB!をご愛顧いただき、誠にありがとうございました。 IT/Web系の仕事や求人がまだ広く普及していない頃にFind Job!をリリースしてから 約26年間、多くの方々に支えていただき、運営を続けてまいりました。 転職成功のお声、採用成功のお声など、嬉しい言葉もたくさんいただきました。 またFINDJOB!経由で入社された方が人事担当になり、 FINDJOB!を通じて、新たな人材に出会うことができたなど、 たくさんのご縁をつくることができたのではないかと思っております。 2023年9月29日をもって、FINDJOB!はその歴史の幕を下ろすこととなりましたが、 今後も、IT/Web業界やクリエイティブ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く