タグ

2013年4月18日のブックマーク (92件)

  • fluent-plugin-anomalydetect 作りました - PolyPeaceLight

    jubatusでも異常値検知がリリースされたばかりですが、簡単でメモリもわずに異常値検知できるといろいろ捗るかなぁと思い、異常値検知のpluginを作りました。 rubygems github 一日動かしてみましたが、手元の環境では特にリークもなく、fluentd体、このplugin、node.js expressを立ち上げ、abで適当に負荷をかけ続けましたが、全体で60MBくらいでした。 <match access.**> type anomalydetect tag anomaly.access tick 86400 </match> こんな感じで設定すると、tickで指定した時間(秒)にaccess.**に入ってくるデータ数を数えてそれの異常値をスコアリングします。 また <match access.**> type anomalydetect tag anomaly.acces

    fluent-plugin-anomalydetect 作りました - PolyPeaceLight
  • CROSS 2013レポート(2) - mad-pの日記

    CROSS 2013レポートパート2です。次世代Webセッションのメモ。 CROSS 2013 間違いや発言意図と違う表現だ、などということがあると思います。ご指摘いただければ幸いです。 次世代Webセッション前半〜プロトコル編 http://www.cross-party.com/programs/?p=138 http://www.ustream.tv/recorded/28598269 司会 Jackさん(@Jxck_) 以下J 大津さん(@jovi0608) SPDY関連 以下jovi 小松さん(@komasshu) Websockets 以下koma 清水さん(@kazubu) HTTP/2.0 以下kazubu HTTP2 2012/11最初のドラフト。絶賛議論中 どんなところが問題? kazubu: 前回のIETFの続きのトピック。crimeアタックに関して圧縮回り見直しとか

    CROSS 2013レポート(2) - mad-pの日記
  • 元ゴミ回収ドライバーが作るエロWebサービス

  • Hyper-V, VMware, XenServer - 3大仮想化製品の比較表 2013 - 仮想化でプリセールスしてるSEの一日

    製品選定にあたり、使う・使わないに関係なく機能・スペックを全て洗い出し比較する... 日人がよく揶揄される「製品比較表」ですが、 当に中立と思えるものは残念ながらほとんど目にしません。 個人の主観程度であればまだ良いですが、 予想以上に売上を大きく左右することもあり、現在ではマーケティングの一環で、小さな会社に外注して書かせるケースも残念ながら事実です。 大きく分類すると、概ね次のような感じ。 対象製品を開発・販売している当事者が作成したもの、記事稿 偏り:大 ("battlecard" とも呼ばれる) 訴訟が緩い国の、あまり著名でないコンサル会社が作成したもの 偏り:中 (一見中立だが、販売元が外注で書かせているものが多い) 大手メディアが作成したもの 偏り:小 (除く:記事稿) ブロガーなどが趣味で作成し、実個人名で Web 公開したもの 偏り:小 (このブログは匿名なのでダメです

    Hyper-V, VMware, XenServer - 3大仮想化製品の比較表 2013 - 仮想化でプリセールスしてるSEの一日
  • サービス終了のお知らせ - NAVER まとめ

    サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。

    サービス終了のお知らせ - NAVER まとめ
  • 「秒速で1億PV稼ぐ条件」をエンジニアに聞いてみた

    平日は割りと仕事しているんですが、 さっきふとこんな技術相談を、エンジニアに投げてみました。 お題を投げてみた barimi ねえねえ、技術相談なんだけど、秒速で1億PV稼ぐサイト作るなら、技術的にどうする? 私ならオートリロードとiframeだと思うんだけど。

  • 異常値検出プラグイン fluent-plugin-anomalydetect を使ってみたのでそろそろ閾値を決めたい - 酒日記 はてな支店

    異常値検知、素敵な響きですね!fluent-plugin-anomalydetect 作りました - PolyPeaceLight あらかじめ固定値でアラートの条件を決めておかなくても、通常と異なる数値変化を検出してアラートできたら大変嬉しい、ということでインストールして一週間ほど運用してみました。 fluent-agent-lite で送信されてくる nginx のアクセスログの数を対象 60秒間隔で集計 <match nginx.access.**> type copy <store> ... </store> <store> ... </store> <store> type anomalydetect tag nginx.anomaly.access_log tick 60 store_file /var/log/td-agent/anomalydetect.dat </store

    異常値検出プラグイン fluent-plugin-anomalydetect を使ってみたのでそろそろ閾値を決めたい - 酒日記 はてな支店
  • Nginx で SPDY ! - dogmap.jp

    SPDY (スピーディー) は、Googleが提唱し、現在標準化作業が進められている通信プロトコルです。 HTTP の次期バージョン HTTP 2.0 のベースとなる技術の有力候補として SPDY が挙げられてたりもするので要注目ですね。 ブラウザが対応していないと恩恵に預かれませんが、Chrome や Firefox, Opera の最新版であれば問題なく利用できます。IE ? なにそれ?おいしいの? Wikipedia から、抜粋して引用すると… SPDYは、Googleが提唱し、現在標準化作業が進められている通信プロトコルの一つ。2012年8月現在の最新バージョンはSPDY Protocol – Draft 3(一般には「SPDYv3」と称されることが多い)。 基的には既存のHTTPを拡張しダウンロードの高速化を目指したプロトコルで、TLS接続の上にセッション層を追加し、単一のSP

    Nginx で SPDY ! - dogmap.jp
  • DevOps とは何か 何であるべきか

    http://togetter.com/li/445424?page=2 の 2013-01-26 15:13 ぐらいから15:38 ぐらいまでの tweet も合わせてご参照ください。

    DevOps とは何か 何であるべきか
  • #qpstudy に参加したよ

    あれは昨日のことでした。 qpstudy 「DevOpsをぶち壊せ(仮) ~DevOps言うな(仮)~」 に参加してきました。 devops関連のパネルディスカッションということでしたが登壇者が豪華。 パネル自体もあれだけど、登壇者の方と懇親会で話したくて参加してきました。 ただの参加者なのでとても気楽。ビールもたくさん飲みました。 devopsと直接関係はないけどtwitterや懇親会や二次会で大盛り上がりしたのが教育について。 ある一定ライン以上の自動化とかしようとすると数学(確率統計とか待ち行列理論とか)と計算機科学は当に当に大事なのでちゃんと修めておけばよかった。 単位はとったけど忘れてる。あのときに知識が残っていたらこんなに伸び悩まないのにな…(泣 懇親会ではmizzyさんkenjiskywalkerさんysaotomeさんはじめいろいろとたくさん話せて満足。 懇親会でも少し

  • Cucumber, ChefSpecとchefでテスト駆動のサーバ構築管理 - Qiita

    この記事は最終更新から1年以上経過しています。 気をつけてね。 Chef,Puppetに代表される自動構築・構成管理ツールを使うと開発したサーバを検証用などの目的で簡単に再現可能になります。 ただ、漠然としたサーバ構築をしていると何をサービス提供しているのかという定義が曖昧になるため、Cucumber等を使ったテストを軸にテスト駆動でのサーバ構築をしてみましょう。 応用すれば既存のサーバをCucumberによってモデリングし、Chefによって繰り返し再現可能な状態に持っていけます。 このコンテンツで使ったコードはGithubの https://github.com/higanworks/test_driven_infrastructure_example で公開しています、参考にしてみたりフィードバックしてもらえると助かります。 ツール Cucumber: "ふるまい"を自然言語のように記

    Cucumber, ChefSpecとchefでテスト駆動のサーバ構築管理 - Qiita
  • AWS(VPC)でサービスするインフラを作る | Ore no homepage

    明けましておめでとうございます。Cassandraいじってたと思ったら次はAWSですか….。次から次へとまぁ…目下余裕がないんだよね。さてさて、今日はAWSVPCな環境を作ったのでそのメモ。AWSでサービスする環境を作ったのは初めてだったけど、ほとんどハマりどころが無かった(ただ、これで良いのかはワカンネ。気になることがあったら指摘チョンマゲ)。しかし楽だね、Amazon。ちょっと金かかるけど。 0. アーキテクチャ 次のような構成のものを作った。典型的なWeb-DBな構成。ここには書かなかったけど、chefサーバとかjenkins用のサーバもいる。あとredisも。 黒線はサービストラフィック。青線は社内ネットワークからのアクセス(数字はポート)で、EC2インスタンスへのログインはまずは踏み台にsshしてから他のインスタンスにログインする(NATインスタンスやWebサーバインスタンスな

  • MySQLの冗長化 2013-01-24

    <SKILL BASECAMP 2013> MySQLの冗長化~無停止運用を実現するには~ http://www.pasonatech.co.jp/entry/index.jsp?mode=2&d=on&no=3756Read less

    MySQLの冗長化 2013-01-24
  • 開発メモ#2 : AWS でのホスト / クラウドネイティブなデプロイ - naoyaのはてなダイアリー

    開発メモ#1 : Cinnamon によるデプロイ - naoyaのはてなダイアリー に引き続き、その2です。 最近は個人で作るような小規模なものでも AWS を利用してホストしています。たとえ個人で作ったものとはいえ、利用するユーザーがいる以上はおいそれと落とすこともできない。かといって運用にあまり手間をかけたくない。その辺り、AWS で解決できる点が多い。 AWS の良いところはインフラが動的なので「後からどうとでもなる」ところ。 インスタンスの性能が足りないのであればスケールアップするでもいいし、冗長性が欲しくなったらそのタイミングで ELB (ロードバランサ) を用意すれば良い。その時、仮想化されていないハードウェアを使っていると移行のためにサーバーを再セットアップしたりアプリケーションをデプロイし直したりと手間がかかるところ、AWS ではその辺りの手間がほとんどかからない・・・と

    開発メモ#2 : AWS でのホスト / クラウドネイティブなデプロイ - naoyaのはてなダイアリー
  • スタートアップ企業向けインフラ運用入門(4):システム拡張の具体例

    システムをリリースして無事運用に乗った後も、様々な要因によりシステムを拡張する必要が出てきます。今回は、システム拡張の要因、及び基的なシステム拡張の方法を具体例を挙げつつ説明していきます。 初めに これまで4回に渡り、インフラ運用に関する入門的な記事を書いてきました。それらの内容を実施して、システムが安定運用に乗ってきたと仮定します。業務系のシステムであれば、そこでインフラ担当の仕事は大体終わりとなり、オペレーターなどに主要な業務を引き継ぐことになると思います。それに対してRettyのようなWebサービスの場合は、システムが軌道に乗った後も継続的なシステム拡張が発生することが一般的です。 記事では、まずどのような事をきっかけ・要因としてシステム拡張が必要になるのかについて説明します。次に、Rettyのシステム構成を簡単に説明し、システム拡張が必要となる各種要因に対して、どのような方針で

    スタートアップ企業向けインフラ運用入門(4):システム拡張の具体例
  • 開発メモ#4 : EC2スナップショットとの差分は chef-solo で解決 - naoyaのはてなダイアリー

    開発メモその4です。 開発メモ#2 : AWS でのホスト / クラウドネイティブなデプロイ - naoyaのはてなダイアリー で、システム構成の変更時に EC2のスナップショットからインスタンスを複製して Elastic IP で切り替えているという話をしました。 ただ、この方法はそのままでは一点問題があります。スナップショットを取ったタイミングと現時点でシステム構成に差分があった場合にどうするか、です。例えば nginx の設定をほんの少しだけ書き換えたい、とかその都度スナップショットを取っていては流石に面倒。 その手のスナップショット時点からの差分を複製されたインスタンスに簡単に適用するために、基的なサーバー設定周りは chef-solo で管理してます。chef はサーバー構築自動化ツールで、chef-solo は chef のクライアント・サーバーを必要としないライト版、とでも

    開発メモ#4 : EC2スナップショットとの差分は chef-solo で解決 - naoyaのはてなダイアリー
  • Supervisorでnginxを管理してみる - akihitoのログ置き場

    daemontoolsを使っていますが、設定や導入の分かりやすさやからSupervisorを使いはじめています http://supervisord.org インストールや細かい設定は省きますが、/etc/supervisord.confに外部設定ファイルを参照するようにしてデーモンを管理するのがいいようです。 [include] files = /etc/supervisord.d/*.conf nginxを追加してみる /etc/supervisord.d/nginx.confを新たに作成してSupervisor配下にいれます。 [program:nginx] command=//usr/sbin/nginx -c /etc/nginx/conf/nginx.conf process_name=%(program_name)s numprocs=1 stopsignal=QUIT 起動

    Supervisorでnginxを管理してみる - akihitoのログ置き場
  • Amazon VPCを使ったミニマム構成のサーバ環境を構築する | DevelopersIO

    よく訓練されたアップル信者、都元です。AWSにおいては、ネットワーク環境をあまり気にせず、数クリックで簡単にサーバを構築できるのは一つのメリットだと言えます。しかし、格的に運用するシステムに関しては、ネットワーク環境をコントロールする需要も出てきます。AWS Virtual Private Cloud (VPC)を使えば、AWS上に仮想ネットワークを定義し、その上に各種サーバを配置することができます。 深く考えずに非VPC環境に構築してしまったAWSサーバ環境は、簡単にはVPC環境に移行することはできません。従って弊社では、小さなシステムであっても、最初からVPC環境にシステムを構築することを推奨しています。「非VPCが許されるのは小学生までだよねー」とボスが申しておりました。かといって、ネットワークの構成をゼロから考えて構築するのもひと苦労であるため、エントリーでは、システムの初期段

    Amazon VPCを使ったミニマム構成のサーバ環境を構築する | DevelopersIO
  • Facebook、データセンター自動化ツールにChefの新バージョンを全面採用、Erlangでスケーラビリティ拡大。Opscodeが発表

    Facebook、データセンター自動化ツールにChefの新バージョンを全面採用、Erlangでスケーラビリティ拡大。Opscodeが発表 世界最大級の規模のサーバを運用しているFacebookでは、データセンターにサーバを投入したり、既存のサーバのコードをアップデートする膨大な作業が毎日発生しています。特に同社は開発したコードをすぐにデプロイし、利用者からのフィードバックを迅速に開発へ反映させるDevOpsと呼ばれるスタイルを採用していることから、大規模かつ柔軟性の高いデプロイツールが欠かせません。 そこで必要なのがこうしたサーバのコンフィグレーションをデータセンター規模で自動化してくれるツールです。その1つとしてよく知られるのがChef。Rubyで書かれており、コンフィグレーションの内容や手順を記述するレシピ(Recipe)やクックブック(Cookbook)を用いた柔軟なデータセンター自

    Facebook、データセンター自動化ツールにChefの新バージョンを全面採用、Erlangでスケーラビリティ拡大。Opscodeが発表
  • [ #qpstudy ]対立企業同士の案件でDevOpsを適用するにはどうするか[ #DevOps ] | oshiire*BLOG

    やっと、”qpstudy 2013.01” の内容がまとまりましたので、この場をかりてご報告します。なお、今回の内容は、qpstudy内での情報だけを元にまとめたものであって、課題の調査に、他のソースは使っていません。 これを元に次のフェーズに入るとした場合、調査も含めて言及するつもりです。 めずらしく、いきなり題に入ります。 今回の”qpstudy 2013.01“で解決したかった課題は です。Dev と Ops とで異なる企業が案件を受託した場合、そこでは同一企業内の部門同士のバトルとは比較にならないほどの、バトルが繰り広げられています。「お客様に価値を届ける」「お客様至上主義」「お客様を一番に」たくさんのスローガンをもって、企業はお客様にサービスを届けていますが、DevOpsをうまく取り入れて実践されている SIerと言うものはあるでしょうか? あったとしてもごく少数であったり、真

    [ #qpstudy ]対立企業同士の案件でDevOpsを適用するにはどうするか[ #DevOps ] | oshiire*BLOG
  • LTSV FAQ - LTSV って何? どういうところが良いの? - naoyaのはてなダイアリー

    LTSV って何? Labeled Tab-Separated Values という、テキストのフォーマットの仕様です。CSV や TSV や JSON そのほかと同じ、テキストデータのフォーマット名。主にログ、特に httpd のアクセスログなどに適用すると便利です。 仕様は http://ltsv.org にまとまっています。随時更新中です。 LTSV は単なるログのフォーマットであって、それ以上でもそれ以下でもありません。 LTSV ってタブ区切りで値に名前を付けただけのもの? はい、そうです。 これが 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.08 [en] (

    LTSV FAQ - LTSV って何? どういうところが良いの? - naoyaのはてなダイアリー
  • LTSV のもうひとつのメリット、あるいは、プログラムでログを出力する際に気をつけるべきこと - kazuhoのメモ置き場

    Labeled Tab-separated Values (LTSV) がブームのようです。 LTSV については、ラベルをつけることで柔軟に拡張できるという点が、その特徴として取り上げられますが、もう一点、タブをセパレータに使うことでログのパースが簡単になった、という点を忘れるべきではないでしょう。 特に httpd のログは NCSA httpd という HTTP/0.9 時代のWebサーバのログフォーマットがベースに拡張されてきたため、以下のようにセパレータとして空白、[]、ダブルクォート ("")*1が混在するという、とても処理しづらいものになっていました。どれほど複雑かは「404 Blog Not Found:perl - Apache Combined Log を LTSV に」の実装を見れば明らかでしょう。 127.0.0.1 - - [08/Feb/2012:23:52:4

    LTSV のもうひとつのメリット、あるいは、プログラムでログを出力する際に気をつけるべきこと - kazuhoのメモ置き場
  • perl - Apache Combined Log を LTSV に : 404 Blog Not Found

    2013年02月08日19:00 カテゴリTipsLightweight Languages perl - Apache Combined Log を LTSV に びっぐうぇ〜ぶに乗る前の準備として。 Labeled Tab-separated Values (LTSV) Labeled Tab Separated Valuesノススメ - stanakaのブログ タグ「ltsv」を検索 - はてなブックマーク 移行にあたっては当然「過去ログどうするよ」という問題が発生するわけですが、一番使われているであろう (common|combined) log をLTSVに変換するスクリプトが、ざっと見回しても見つからなかったので。つーかススメるならこれくらい用意しようよ>id:stanaka ltsv.orgのexampleもcombined_ltsvの方がいいと思う。 Enjoy! Dan

    perl - Apache Combined Log を LTSV に : 404 Blog Not Found
  • 【今北産業】3分で分かるLTSV業界のまとめ【LTSV】 - naoyaのはてなダイアリー

    id:stanaka がはてなで使って居るログフォーマットが LTSV だよーとブログに書く Labeled Tab Separated Values (LTSV) ノススメ - stanaka's blog Web界隈のエンジニアたち、特にログとか、#fluentd 関係者がざわつく 「ざわ・・・ざわ・・・」 @t_wada 「Unix 哲学の大事な点が形になっていると思う。素晴らしい。」 @hotchpotch 「cool」 六木、渋谷、白金台方面から京都へ熱い視線が送られる id:naoya がただ vagrant + chef を使いたいがために LTSV に乗っかる GrowthForecast を使っていたため GF の中の人が反応する @kazeburo 「[growthforecast]」 id:naoya が勢いで Text::LTSV を作る あまり反応がないのでしょ

    【今北産業】3分で分かるLTSV業界のまとめ【LTSV】 - naoyaのはてなダイアリー
  • LTSV が行指向な Key-Value フォーマットで捗る話 - naoyaのはてなダイアリー

    引き続き LTSV について。Text::LTSV はやってることは単にタブの split でしょうもないのだけど、せっかく作ったんだし何か利用方法はないかなと考えた。 LTSV のログは欠点があってそのままでは見づらいこと。 Text::LTSV でハッシュになるのだから、YAML とかで出力したらどうなるか試してみよう。さらに、YAML に色づけする YAML::Tiny::Color というのがあったぞ。 #!/usr/bin/env perl use strict; use warnings; use Project::Libs; use YAML::Tiny::Color qw/Dump/; use Text::LTSV; while (<>) { my $hash = Text::LTSV->parse_line($_); print Dump $hash; } こんなスクリプ

    LTSV が行指向な Key-Value フォーマットで捗る話 - naoyaのはてなダイアリー
  • LTSVフォーマットなログを fluentd + GrowthForecast で料理 - naoyaのはてなダイアリー

    ここ数年のデータ解析の重要性の高まりから、ログに関するソリューションが方々で活発に探求されている昨今でございます。ウェブサーバーの単純なアクセスログをそのまま保存するではなく追加情報を添加してみたり、あるいはアプリケーションから直接ログを吐いてそれらをデータウェアに投げ込んで・・・というのも当然のように行うようになりましたね。 しかしあまり自由度のない access_log の combined フォーマット。さてどうしたもんか・・・ ここで id:stanaka の登場です。 Labeled Tab Separated Valueというのは、はてなで使っているログフォーマットのことで、広く使われているTSV(Tab Separated Value)フォーマットにラベルを付けて扱い易くしたものです。はてなでは、もう3年以上、このフォーマットでログを残していて、one-linerからflue

    LTSVフォーマットなログを fluentd + GrowthForecast で料理 - naoyaのはてなダイアリー
  • @ITイベントカレンダー

    平素よりイベントカレンダー+ログをご利用いただき、誠にありがとうございます。 イベントカレンダー+ログは「IT・製造業・ビジネス関係のイベント(セミナー・展示会・勉強会・コンテスト・Webイベントなど)を開催する企業・コミュニティが登録したイベント情報のポータルサイト」として約7年間運営をしてきました。これまでサービスを続けることができたのは、イベントカレンダー+ログのコンセプトに共感をいただき、適切なイベント情報をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、イベント情報の入手方法の多様化やイベント紹介サービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年6月30日(火)15:00をもちましてイベントカレンダー+ログのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知ら

    @ITイベントカレンダー
  • Labeled Tab Separated Values (LTSV) ノススメ - stanaka's blog

    追記(2/8 11:30) id:naoyaによる一連のまとめが【今北産業】3分で分かるLTSV業界のまとめ【LTSV】 - naoyaのはてなダイアリーにあります。 また、仕様などをまとめるために http://ltsv.org/ を立ち上げました。 追記ここまで Labeled Tab Separated Values (LTSV) というのは、はてなで使っているログフォーマットのことで、広く使われているTSV(Tab Separated Value)フォーマットにラベルを付けて扱い易くしたものです。はてなでは、もう3年以上、このフォーマットでログを残していて、one-linerからfluentd、Apache Hiveまで幅広く便利に使えています。 ログフォーマットに期待されることは、 フォーマットが統一されている → 共通のツールで集計し易い 新しいフィールドの追加が容易 → サー

    Labeled Tab Separated Values (LTSV) ノススメ - stanaka's blog
  • 【インタビュー】VPSのインフラにOpenStackを採用した「お名前.com VPS」開発者に聞く ~実運用から1年弱、開発の裏側と実運用で使ってみて

  • AWS News Blog

    Amazon Titan Text V2 now available in Amazon Bedrock, optimized for improving RAG The Amazon Titan family of models, available exclusively in Amazon Bedrock, is built on top of 25 years of Amazon expertise in artificial intelligence (AI) and machine learning (ML) advancements. Amazon Titan foundation models (FMs) offer a comprehensive suite of pre-trained image, multimodal, and text models accessi

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Amazon Route 53のDNSフェイルオーバー機能を利用したリージョンを跨いだバックアップサイトの構築(EC2 to S3編) | DevelopersIO

    Amazon Route 53のDNSフェイルオーバー機能を利用したリージョンを跨いだバックアップサイトの構築(EC2 to S3編) [2013/02/15]記事のタイトルを変えました。 プライマリサイト(EC2ベース)からセカンダリサイト(S3ベース)へのDNSフェイルオーバーの記事となります。 Route 53へのフェイルオーバー機能とヘルスチェック機能の追加 先日のAWSよりRoute 53へのフェイルオーバー機能とヘルスチェック機能の追加に関しての発表がありました。 AWSでWebサイトなどをホストする場合、障害発生時に一時的にSorry Pageを表示したり、バックアップのWebサイトに切り替えたりといったことを自動的に行うことはこれまで比較的難しいかったと思います。 今回、Route 53にフェイルオーバー機能が追加されたことにより、プライマリサイトがダウンした際に、自動的に

  • Chefをベースにした日本製の運用自動化ツール「Cloudrop」、エクシードから

    データセンターへ投入したサーバの構成やアプリケーションのデプロイツールとしてよく知られているのが「Chef」や「Puppet」といったオープンソースの運用自動化ツールです。特にChefは先日Facebookが採用したことが発表されています。 そのChefをベースにした運用自動化ツール「Cloudrop」がエクシードから発表されました。同社はシステム構築や運用サービスに加え、パブリッククラウドの「Libra」などを提供する日の企業で、Cloudropはそうした同社の経験を踏まえて作られたもの。 運用自動化ツールは、開発と運用が協力してビジネスゴールを目指す「DevOps」ムーブメントの中で、システムの開発運用を迅速に改善するうえで欠かせないツールとして注目されています。 運用の属人性を排除して自動化、効率化 CloudropはChefをベースにしているため、Chefでの手順書に当たるレシピ

    Chefをベースにした日本製の運用自動化ツール「Cloudrop」、エクシードから
  • Fluentdで始めるリアルタイムでのログ有効活用

    はじめに Fluentdは、ログを収集し格納するためのログ収集基盤ソフトウェアです。Fluentdにインプットされた、すべてのログをJSONに変換し、アウトプットします。インプットとアウトプットはモジュール化されており、モジュールを追加することでインプット元とアウトプット先を追加できるようになっています。 Fluentdは急速に知名度を高め、多くのWebサービス会社で実際に使用されるようになりました。従来のログが抱えていた問題も、Fluentdが適切な解決策となっていると認知され、かつ簡単に導入・スモールスタートできるミドルウェアであったことが大きかったと思います。 稿では、Fluentdの簡単な仕組みと導入方法、シンプルな動作事例について紹介します。 対象読者 システム管理者 データサイエンティスト 必要な環境 UNIX系OS Ruby 1.9 ログを出力する理由 システム運用を始める

    Fluentdで始めるリアルタイムでのログ有効活用
  • http://blog.inouetakuya.info/entry/20130216/1361015295

    http://blog.inouetakuya.info/entry/20130216/1361015295
  • 第17回 Webアプリケーションのパフォーマンス改善(1) | gihyo.jp

    大きな効果を上げるために チューニンガソン#1~#3の改善率を見ると、アプリケーションや全体のアーキテクチャに手を入れないで改善できるのは最大でも10倍以下です。もちろん数倍速度が違えばサーバ台数を大きく減らせるので有意義なのは間違いないのですが、ISUCONやチューニンガソン#4のような飛躍的な高速化は望めないことがわかります。 つまりチューニングでは、単にパラメータ設定を変更するのみではなく、ボトルネックになっているコードやクエリ、アーキテクチャに的確に手を入れていくことで大きな効果を上げることができるのです。 ボトルネックの発見と解消が大事 システム全体の処理時間についてパレートの法則(経験則)を適用すると、「⁠全体の処理時間の80%は20%の部分で発生している」ということになります。実際にシステム全体で一番ボトルネックになっている部分を解消しないことには、ほかの部分に手を入れても大

    第17回 Webアプリケーションのパフォーマンス改善(1) | gihyo.jp
  • Vagrant + chef-solo 使って nginx + sinatra で HelloWorld! | 諸葛亮孔明もびっくりですわ のブログ

    2013/02/18 2013/02/18 14:41 Vagrant + chef-solo 使って nginx + sinatra で HelloWorld! Markdown 手順書スラスラ書けてまじイノベーティブ!とか言ってたやつ誰だ! ( おれだ! ) Vagrant + chef-solo で  nginx + sinatra で HelloWorld! してみました。 amazedkoumei / vagrant-centos-nginx_sinatra きっかけをくれたはこちらのエントリ Vagrant - naoyaのはてなダイアリー ちょっとしたテストのために壊してもいい環境が欲しいというのにももちろん使えますし、方々を見ていると組織の中で標準化された開発環境を全開発者に配布するときなんかにも使われているようですね。自分は EC2 でホストしているステージングサーバーへ

  • Chef社内勉強会(第1回)

    オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)NTT DATA Technology & Innovation

    Chef社内勉強会(第1回)
  • 「全自動パラメータチューニングさん」は何であって何でないのか - 昼メシ物語

    発表資料: 全自動パラメータチューニングさん // Speaker Deck ソースコード: https://github.com/mirakui/tuningsan これは何なのか ハッカソンイベント「Open Hack Day Japan」にて、24時間の制限の中で開発し、90秒でプレゼンテーションした作品です 2013/2/16〜2/18 にかけてヤフー株式会社で開催された、「Open Hack Day Japan」という大規模ハッカッソンイベントで開発しました。 上記のプレゼンテーションは発表で使用したものです。 Open Hack Day Japan - Yahoo! JAPAN 作品は、全参加作品の中で唯一のコマンドラインツールであり非常に地味でしたが、ありがたいことに KLab賞をいただくことができました。どうもありがとうございます。 指定した1パラメータの自動調整によって

    「全自動パラメータチューニングさん」は何であって何でないのか - 昼メシ物語
  • AWS News Blog

    Announcing Amazon Managed Service for Apache Flink Renamed from Amazon Kinesis Data Analytics Today we are announcing the rename of Amazon Kinesis Data Analytics to Amazon Managed Service for Apache Flink, a fully managed and serverless service for you to build and run real-time streaming applications using Apache Flink. We continue to deliver the same experience in your Flink applications without

  • もう迷わない!EC2のインスタンスタイプ名 対比表 - サーバーワークスエンジニアブログ

    追記2013/11/9 M3値下げ対応 (AWSブログ) g2.2xlarge対応 (AWSブログ) => サービス名称をAPI名で呼ぶ様になったのか正式な英語名、日語名が分からなかった。でも多分過去の名称とAPI名からするにHigh GPU Double Extra Largeになると思う 物理プロセッサ、Intel AES-NI・Intel AVX/Intel Turbo対応状況対応 => cc1.4xlargeだけドキュメントに物理プロセッサ記載が無かったが、過去の別ドキュメントページの記載からIntel Xeon X5570だと思う。 hs1.8xlarge提供開始が始まっていたリージョン追記 コメント: お勧めの方法としてはPDFのリンクをブラウザーのタブに入れておいて、何か聞かれたらさっと確認、が一番使い易い方法かなーと思います。 追記2013/6/14 金額を修正し、リザー

    もう迷わない!EC2のインスタンスタイプ名 対比表 - サーバーワークスエンジニアブログ
  • chef 勉強会 - naoyaのはてなダイアリー

    昨日恵比寿の Engine Yard さんオフィスでの chef 勉強会 #eytokyo に行ってきました。自分の LT の資料はこちら。 https://speakerdeck.com/naoya/vagrant-plus-chef 先日書いた Vagrant と chef についてのイントロダクションです。(また Speaker Deck の script タグが貼れなくなってるぞー > ダイアリー中の人) 感想など 勉強会全体としては chef 入門にはじまり、中の人っぽい方々からの発表があったり、AWS OpsWorks の話があったりとでいいかんじでした。id:rx7 におかれましては、AWS の中の人が OpsWorks のプレゼンをすると知らず、オオトリなのに同じ内容の LT をかますという事故がありましたが 2回聞けばより記憶に残りやすいということで・・・w PaaS ベ

    chef 勉強会 - naoyaのはてなダイアリー
  • nginx(1.3.13)でWebSocketをリバースプロキシしてみる - 人と技術のマッシュアップ

    nginx(1.3.13)でWebSocketのプロキシを試してみました 2013/2/19にnginxが正式にWebSocketに対応したとアナウンスがあったので、試しに使ってみました。 ダウンロード・インストール ここからnginx-1.3.13をダウンロードしてきて、インストールします。 インストールオプションはあえてデフォルトで $ wget http://nginx.org/download/nginx-1.3.13.tar.gz $ tar xvf nginx-1.3.13.tar.gz $ cd nginx-1.3.13 $ ./configure $ make $ sudo make install 設定ファイルの書き換え 次にnginx.confを書き換えます。構成は リバースプロキシ: 192.168.0.8:80 バックエンドサーバ: 192.168.0.2:3000

    nginx(1.3.13)でWebSocketをリバースプロキシしてみる - 人と技術のマッシュアップ
  • AWSアドバンストコンサルティングパートナーになったのでそろそろ本気出す | DevelopersIO

    AWS Partner Network (APN) APNは、AWS(Amazon Web Services)が、パートナー企業向けの認定プログラムとしてワールドワイドで展開しています。日でも多くのパートナー企業が登録されています。パートナーには、2種類ありまして、AWSを使ったサービスを提供しているテクノロジーパートナーと、AWSの活用を支援するコンサルティングパートナーに分かれています。当社は、コンサルティングパートナーとして活動しています。そして、つい先日、様々な条件を満たすことができまして、AWSアドバンストコンサルティングパートナーになりました。 クラスメソッドのAWSビジネスについて クラスメソッドのAWSビジネスについていくつかご紹介したいと思います。クラスメソッドでは、AWSが日にデータセンターを作る前から、EC2やS3を使ったシステムの開発を数多く行ってきました。初め

    AWSアドバンストコンサルティングパートナーになったのでそろそろ本気出す | DevelopersIO
  • Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語

    2. Five Worlds by Joel Spolsky 受託 パッケージ 組み込み 使い捨て ゲーム Posted at May 6, 2002 on http://www.joelonsoftware.com/articles/FiveWorlds.html 3. About me 染田貴志 (SOMEDA Takashi) http://d.hatena.ne.jp/tksmd 株式会社ヌーラボ所属 Backlog の開発・インフラ・サポート Cacoo のインフラ JAWS UG 京都支部長 関西 Java エンジニアの会 常連 jaws-ug santo 2013 4. Job history 2010年 Nulab Inc. エンジニア 2008年 チョイスタジオ CTO 2006年 四次元データ (現シナジーマーケティング) 技術研究部員 2005年 未踏ソフトウェア フ

    Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
  • AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013

    2. About me 染田貴志 (SOMEDA Takashi) http://d.hatena.ne.jp/tksmd JAWS UG 京都支部長 株式会社ヌーラボ所属 Backlog の開発・インフラ・サポート Cacoo のインフラ 好きな… EBS・CloudFront Cache Distribution Pattern JAWS Days 2013 3. Job history 2010年 Nulab Inc. エンジニア 2008年 チョイスタジオ CTO 2006年 四次元データ (現シナジーマーケティング) 技術研究部員 2005年 未踏ソフトウェア フリーランス 2002年 Sun Microsystems (現Oracle) ベンチマークエンジニア JAWS Days 2013 5. 国内を中心に 約13万ユーザ が利用するプロジェクト管理ツール タスク管理機能に加

    AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
  • [chef] data bag活用法 | ITインフラ雑記帳

    data_bagを使う chefにはdata_bagというものがあります。 attributeとは何が違うのかなーと思っていましたが、良い使い方を見つけましたのでご紹介させていただきます。 ユーザアカウントは全てdata_bagで管理 ユーザアカウント系は全てdata_bagで管理すると楽かも!と思ってやってみました。 例えばログインアカウント。 サーバの機能や場所ごとにroleを作りますが、そのroleの中でログインアカウントを管理するrecipeを入れるとします。 data_bagを使わないとrecpieもしくはroleのattributeにユーザ情報を格納して、recipeのuser resourceでユーザを作成することになると思います。 僕の管理している環境では鍵認証が基なので公開鍵の情報も管理をしたいです。公開鍵はユーザに紐づいていてどのサーバでも同じ鍵で入れると便

  • chef-xbuild を作った! - Studio3104::BLOG.new

    サーバーのセットアップは perlbrew とかじゃなくてよくね? という時のライフハック - blog.64p.org 番環境でのperl/ruby/nodeのセットアップ - tagomorisのメモ置き場 番環境で使う LightweightLanguages を **env とかで入れるのはアレだよね。な流れに乗ってそういう環境を作る Chef の Cookbook を書きました。 作ったとは言っても、tagomoris/xbuild · GitHub をそのまま cookbook に書き換えた、という感じです。 chef-xbuild https://github.com/studio3104/chef-xbuild お気軽にお試しいただけます。 Ruby 実行環境があり、Virtualbox がインストールされていれば、簡単に試していただくことが出来ますのでご興味を持たれま

    chef-xbuild を作った! - Studio3104::BLOG.new
  • インフラエンジニアのキャリアとクラウドについて

    もう注目されるようになって久しいクラウドについて、思うところを書いておきます。 LinuxなりMySQLなりといったインフラ技術のスペシャリストの人が、GoogleなりFacebookなりといったサービス事業者で働くことは珍しくありません。これはそうしたサービス事業者にとって、インフラ技術のスペシャリストがある程度必要だということでもあります。ではこれからLinuxなりMySQLなりのスペシャリストになりたいという人(新卒/中途問わず)はどういう会社を目指すのが良いのでしょうか。私は家ベンダー(RedHatなりOracleなり)や大手サービス事業者(FacebookなりDeNAなり)が良いと思っていますが、一点「クラウド上で主力サービスを展開している事業者」はやめた方が良いと考えています。 なぜなら、インフラ技術を語る上で欠かせないハードウェアとネットワークが、クラウド上ではブラックボッ

  • AWSにApache+PHP+MySQLとphpMyAdmin,vsftpdを導入する手順 |https://wp.yat-net.com/name

    インスタンスが立ち上がったらSSHでサーバーにログインし、パッケージをインストールしていきます。SSHでログインするにはMacなら標準で搭載のターミナル、WindowsならTeraTermのようなフリーソフトを利用します。 まずはサーバーへ接続しましょう ssh -i (鍵のパス) ec2-user@(Public DNS) 鍵のパスは、KeyPairsを作成した際に保存した***.pemというファイルです。それが保存されている場所を指定します。 ec2-userはユーザーIDで、AWSにてSSH接続する際は大体このIDで接続します。 Public DNSはインスタンスを立ち上げた際に割り当てられる言わばURLに当たります。 もし接続した際に下記のようなエラーが出た場合は鍵のパーミッションを変更しないと行けません。 chmod 600 (鍵のパス) 接続できたらsuを利用してroot権限に

    AWSにApache+PHP+MySQLとphpMyAdmin,vsftpdを導入する手順 |https://wp.yat-net.com/name
  • Perlの m// は中身が固定文字列だと爆速になる - Islands in the byte stream (legacy)

    [追記] 実際に検証してみると、パターンが短いと index() のほう速いこともあるようです。パターンが長いと正規表現のほうが高速になるのでそもそもアルゴリズムが違うようですね。 よってこのエントリの内容は必ずしも正確ではありません! cf. https://gist.github.com/kazuho/5410635 [/追記] Perlの話題を日語で – Lingr で出た話題です。 Perlの正規表現マッチはパターンが単純だと index() とおなじく Boyer-Moorアルゴリズムで検索するので非常に高速です。要は最適化のつもりでパターンマッチをindex()に書き換えるのは無意味なのです。 ソースは pp.c や regexec.c あたりを fbm_instr() で検索かな? ドキュメントもどこかで読んだ気がするのですが思い出せず>< perl -MDevel::Pe

    Perlの m// は中身が固定文字列だと爆速になる - Islands in the byte stream (legacy)
  • 社内Jenkins勉強会でLTしました | 松桐坊主

    私が勤めている株式会社ドリコムではよく社内勉強会が発生するのですが、今回は sue445の「やりましょう!」という呼びかけでJenkins勉強会が開催されました。 チラっとお呼ばれしたのでLTさせてもらいましたので資料を公開します。 ドリコム社内勉強会LT資料 「RubyならRDoc, JavaならJavadocを使えばいいのですが、(私が今開発している)C/C++/Objective-CだったらDoxygen使えるよ!」という内容です。 Jenkins氏、とても器用なのでRubyコードのCIや今回のドキュメンテーションに限らずもっと活用していきたいですね。 以外にもSIerドキュメントがウケて、ひさびさにExcelを起動した甲斐がありました(笑) あと社内にsue445みたいなJenkinsブン回してる人が居てすぐ質問できるってのは幸せだなーと改めて思いました。 なおドリコムではエ

  • Java 経験者が C# で開発する場合

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。

    Java 経験者が C# で開発する場合
  • [CSS]デスクトップ・スマフォ・タブレット向けの美しいUIエレメントを簡単に実装できるスタイルシート -TopCoat

    クリーンなHTMLを使い、レスポンシブを念頭においたUIエレメントを簡単に実装できるオープンソースのライブラリを紹介します。 TopCoat TopCoat -GitHub TopCoatのセットアップ 当スタイルシートを外部ファイルとして配置するだけです。 <link rel="stylesheet" type="text/css" href="css/topcoat-desktop-min.css"> TopCoatのスタイルシートは2種類あり、デスクトップ用(24KB)、スマフォ用(20KB)となっています。 それぞれのデモを見てみましょう。 TopCoat for Desktop TopCoat for Mobile TopCoat for Desktop デスクトップ用のデモです。 デスクトップでご覧ください。 TopCoat for Desktop

  • イマドキのIDE事情(153) Groovyベースのビルドツール「Gradle」をEclipseで使ってみる

    Gradleとは? Gradleというビルドツールをご存じだろうか? JavaではビルドツールとしてMavenやAntが利用されることが多いが、Gradleはこれらと同種のツールで、Groovyを使用しているという特徴がある。Mavenは少しでも規約から外れたことをしようとした場合の煩雑さ、Antはすべての処理を一から記述しなくてはならずXMLが肥大化しがちという問題をそれぞれ抱えている。 GradleはGroovyを使用しているものの、Groovy専用のビルドツールというわけではなく、Javaでの開発にも利用できる。ビルドスクリプトの記述にGroovyを使用するため、MavenやAntのXMLベースのビルドファイルのように冗長な記述は不要だ。また、Maven/IvyリポジトリやAntのビルドファイルを利用できるなど既存資産も活用することができる。 このようにGradleはこれまでMave

    イマドキのIDE事情(153) Groovyベースのビルドツール「Gradle」をEclipseで使ってみる
  • Googleカレンダーっぽい物や日付ピッカー等カレンダー関連のjQueryプラグイン集15:phpspot開発日誌

    15 Useful JQuery Calendar and Date Picker Plugins - DesignM.ag Googleカレンダーっぽい物や日付ピッカー等カレンダー関連のjQueryプラグイン集15がまとまっていました。 今日では実に沢山のカレンダー関連プラグインが存在するので、カレンダー関連のプラグイン実装の際の参考にできそうです。 関連エントリ レスポンシブで超クールなカレンダーデモとjQueryプラグイン「Calendario」 Googleカレンダー風操作感を持つ美しいカレンダーを実装できる「FullCalendar」 カレンダーやDateピッカー関連のjQueryプラグイン20 これは新しい!クールなタイル状の年間カレンダー実装jQueryプラグイン「jQuery Verbose Calendar」

  • #mysqlcasual vol.4 でカジュアルに発表してきました · さよならインターネット

    April 18, 2013 MySQL Casual Talks vol.4 で発表してきました。 お声がけしていただいた@myfinderさん 会場提供していただいたOracleさん 業務中にSQLの勉強してるのを暖かく見守っていていてくれた弊社のみなさま @fujiwaraさん ありがとうございました。 発表内容 順番が@saisa6153さんの次という並び順でよかった。 カジュアルにSQLを勉強するには〜的な話が続けられて最高だった。 今回は初参加の人が半数以上いて、これはもしやいけるのでは!?って思って 発表はじめる前に、会場でSQL書いたことのない人いますか? って聞いて、誰も手を上げなくて、会場で話す意味合いなくなって インターネットの向こう側とか、まだ見ぬエンジニアに向けてみたいな発表になった。 インターネットの向こう側へ話したこと(2週間で何ができたか) を買った 「初

  • テーブル行をインクリメンタル検索できるようにするjQueryプラグイン「Sieve」:phpspot開発日誌

    Sieve jQuery Plugin テーブル行をインクリメンタル検索できるようにするjQueryプラグイン「Sieve」。 テーブル行数が多いと探すのが大変だったりしますが、このプラグインでインクリメンタル検索で表示要素を絞り込むことができるようになります。 地味に便利で簡単に実装できるので覚えておくとよさそう 関連エントリ HTMLのあらゆるエレメントに注釈を入れられるjQueryプラグイン「Chardin.js」 iPhoneのサイドメニュー風UIが作れるjQueryプラグイン「jPanelMenu」 パララックスなスライダーを実装できるjQueryプラグイン「FractionSlider」 Google画像検索っぽい画像ギャラリーが作れるjQueryプラグイン「Superbox」 アニメーションしながらソートできるjQueryプラグイン「Animated Table Sorter

  • 「勝手に添削 - JavaScript 入門」を勝手に添削 - IT戦記

    このエントリーは以下のエントリーへの解答です 404 Blog Not Found:javascript - 勝手に添削 - JavaScript入門 はじめに 僕はあまりブログを一生懸命書くのは嫌いです。で、いつも適当に言葉は少なめにソースだけで解説しているが。今回は、それだけでは伝わらないところまで突っ込まれてしまったので、僕が伝えたかった意図をこと細かく説明していこうと思います。 文章が苦手なので、変な言い回しで読み辛かったりすると思いますがよろしくお願いします。 一応、弾さんには断っておきますが、別に弾さんに噛みついている訳ではないです。ただ、弾さんのような有名人に突っ込まれたら、僕の講義を聞いてくれたエンジニアが嘘を教えられたと不安になってしまうのではないかと思ったのです。僕の講義を聞きにくれた人には、虚像でもいいから 100 % の自信と勇気を付けて欲しい(プログラムを書く上で

    「勝手に添削 - JavaScript 入門」を勝手に添削 - IT戦記
  • Firefox 拡張を jQuery で書く! Jetpack を使ってみた。 - IT戦記

    はじめに JavaScript が書ければ、誰でも簡単に Firefox の拡張が書けてしまう。しかも、もれなく jQuery が付いて来る! というものを Mozilla Labs がリリースしたみたいですね。 https://jetpack.mozillalabs.com/ というわけで 少し触ってみました Jetpack Feature の書き方 Jetpack で書く Firefox 拡張を「Jetpack Feature」といいます。 これは、以下の 2 つのものを用意すれば誰でも簡単に公開することが出来ます。 JavaScript ファイル 公開用 HTML ファイル JavaScript ファイル JavaScript ファイルには、 Jetpack Feature のアプリケーションコードを書きます。 (function() { Jetpack.statusBar.appe

    Firefox 拡張を jQuery で書く! Jetpack を使ってみた。 - IT戦記
  • FireBug に JavaScript デバッガが付いて便利すぎる件について - IT戦記

    Firebug を更新したら、またもや凄いことになってました。 まずはこれを見てください。 http://sample.ecmascript.jp/20060526.htm 要は JavaScriptをステップ実行しながら結果を確認できる。 変数の値をウォッチできる。 適当にブレークポイントを貼ってスタックを追えば、他人のサイトを簡単にハックできる。 うれしい!たのしい!こんにちわ! FireBug のインストール https://addons.mozilla.org/extensions/moreinfo.php?application=firefox&id=1843

    FireBug に JavaScript デバッガが付いて便利すぎる件について - IT戦記
  • for 文と無名関数のイディオム - IT戦記

    id:cho45 がチョロっと書いたコードが話題になっている 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtech このような書き方は、自分もたまにする。 というわけで、この書き方をする利点を以下の順に解説して見る。 単純な for 文の問題点 with 文を使った解決方法と、その微妙な問題点 無名関数を使った解決方法 単純な for 文の問題点 まずは、以下の HTML に対して <ul> <li>hoge</li> <li>fuga</li> <li>piyo</li> </ul> 以下の JavaScript を実行して var list = document.querySelectorAll('ul > li'); for (var i = 0, len = list.length; i < len; i++) { var node = list[i]; v

    for 文と無名関数のイディオム - IT戦記
  • IT戦記 - JavaScript を学ぶ際に一番重要なのに、誤解されがちな setTimeout 系の概念

    おそらく、JavaScript を使いこなす肝は setInterval、setTimeout、イベントによる関数の実行を理解することだと思う 例えば 次のコードの結果を考えたとき document.write("hoge\n"); setTimeout(function(){ document.write("fuga\n") }, 1000); document.write("piyo\n");普通に JavaScript を使いこなしてる人なら、hoge → piyo と表示して、 1 秒後に fuga が表示されるな。って思うはずなんです。 でも、 JavaScript を始めたばっかりの人の中には、 hoge と表示したあと 1 秒後に fuga → piyo と表示するな。って思ってる人が非常に多い。(経験的に) 何故か? たぶん、どのサイトの setTimeout の説明を見て

    IT戦記 - JavaScript を学ぶ際に一番重要なのに、誤解されがちな setTimeout 系の概念
  • Safari4 と IE8 で実装された DOM Storage とは何か - IT戦記

    はじめに 皆様 JavaScript のスピード競争が激化し、 ECMAScript 3.1 の仕様の策定が進むなど、激動の JavaScript 時代をいかがお過ごしでしょうか。 さて今日は、今、ちまたで大ブレイクの兆しを見せている DOM Storage という仕様を紹介したいと思います。 DOM Storage とは何か まず、 DOM Storage とはどんなものなのでしょうか。 とても簡単に言ってしまえば、とてもたくさんのデータが保存できてサーバーに自動で送られない Cookie みたいなものです。 さらに、 Cookie とは違って JavaScript からとても扱い易く作られています。 では、この DOMStorage の具体的なソースコードを見てみましょう。 <!DOCTYPE html> <html> <head><title>DOMStorage の使い方</tit

    Safari4 と IE8 で実装された DOM Storage とは何か - IT戦記
  • それすぐ実行!JavaScript! - IT戦記

    思った JavaScript はすぐに実行してみましょう! ブラウザの URL 入力欄に javascript:(function() { /*実行したいコードを書く*/ })()FireBug を使ってる人は、コンソール開いて実行したいコードを書く。 たとえばこんなことができます。 これらの例は僕が日頃使っているものです。 グローバルで使える関数を列挙する(Firefox Only) FireBug用 for(var n in window) if(typeof window[n]=='function')console.log(n); URL用 javascript:(function(){var b='';for(var n in window)if(typeof window[n]=='function')b+=n+"\n";alert(b)})() Object.prototyp

    それすぐ実行!JavaScript! - IT戦記
  • IT戦記 - JavaScript の this について

    WEB+DB PRESS 編集の R たんから、僕の連載記事に読者様から質問が来ていると教えていただいたので、その内容を教えていただきました。 以下、内容を転載 「JavaScriptわくわく開発道」の記事に関して質問です。 今回の内容で特に興味を持ったのはthisキーワードの振る舞いでした。 thisキーワードの説明には、オブジェクト型の変数を別の変数にコピーしてから初期化すると、コピーした変数からメソッドを実行できなくなるという例が紹介されていました。 そこには「(1)の時点でobj0には{}が入っているため、hogeは未定義となってしまう」という説明があるのですが、誌面の都合上省略があるためか、thisキーワードを用いることで問題を回避できるという理由がなかなか理解できないでいます。 自分なりに考えてみたところ、内部的には以下のようなことが起きているのではないかと思いました。 (1)

    IT戦記 - JavaScript の this について
  • JavaScript の配列と連想配列の違い - IT戦記

    id:cheesepie:20070131:1170172709 最近は、こういう風に JavaScript を勉強する人が増えていてとても嬉しいです ^^ id:cheesepie さん頑張ってください! で、ちょっと配列と連想配列の使いかたが違うようなので、エントリーを書こうと思いました。おせっかいだったらすみません>< ! やっぱり、このへんが JavaScript の難しいところのひとつなのだろうか。 ということで、 JavaScript の配列と連想配列の違い いってみよおー 連想配列とは JavaScript では連想配列は一番シンプルなオブジェクトのことである。つまり、すべてのオブジェクトは連想配列である。 以下のすべての連想配列はまったく同じものである。 // 1 var obj = { hoge: 'hoge' }; // 2 var obj = { 'hoge': 'h

    JavaScript の配列と連想配列の違い - IT戦記
  • JavaScript OOP におけるクラス定義方法 - IT戦記

    クラスを定義する方法です。考え付くだけでも、これだけたくさんの方法があります。やっぱり、 JavaScript って柔軟であり複雑な言語ですね。 ちなみに、以下のすべての例はこのクラスを定義しています。 ちなみに、僕は一番下の書き方ですね。 皆さんはどのようにプログラミングしていますか? プロトタイプを使わない。クロージャを使う。 // プロトタイプを使わない。 // クロージャを使う。 function Item(price) { this.showPrice = function() { alert(price); }; } プロトタイプを使わない。クロージャを使わない。 // プロトタイプを使わない。 // クロージャを使わない。 function Item(price) { this.price = price; this.showPrice = function() { aler

  • プログラミング未経験者が JavaScript でプログラミングを始めるまでに必要なこと - IT戦記

    (執筆中) (文章の練習も兼ねてぐだぐだと執筆中、現時点で読んでも日語になってないと思います。) (執筆途中だけど、こうしたらいい!とか、アドバイスがあれば教えてください><読者みんなが編集者!とか言ってみる) (あ、はてな記法のパッチを送ってくれてもいいです^^) (ちょっと、 Shibuya.JS in Kyoto → PHP カンファレンスがあるので、次の更新はそれ以降になるかも) 自分の知り合いに「まったくのプログラミング未経験だけど、自分のウェブサイトを作ってみたい!」という人がいるので、プログラミングを始める前に必要な知識や心構えや準備などを書いておこうと思います。もちろん、最初に使う言語は JavaScript です。 この文章は、プログラミングまったくの未経験者が読んで分かる文章を目指しています。もし、分からない部分がある場合は指摘してください。聞いてください。自分で調べ

    プログラミング未経験者が JavaScript でプログラミングを始めるまでに必要なこと - IT戦記
  • 次の JavaScript の仕様はこうなる! ECMAScript 3.0 から 3.1 への変更点まとめ - IT戦記

    はじめに JavaScript の標準仕様である ECMAScript 3rd Edition (ECMAScript 3.0) が 9 年ぶりにバージョンアップしようとしています。 実は、これまでも様々なバージョンアップの案が上がっては消え、また上がっては消えていました。 しかし、今回のバージョンアップには今までと違う点が一つだけあります。 それは、現時点での主要な ECMAScript インタプリタ(JavaScript の実行エンジン)を作っている全団体(以下を参照)がこの仕様に同意したことです。 Mozilla (Firefox) Apple (Safari) Microsoft (Internet Explorer) Opera (Opera) Adobe (Flash) Yahoo (Yahoo Widget) Google この同意は JavaScript のこれからを大きく

    次の JavaScript の仕様はこうなる! ECMAScript 3.0 から 3.1 への変更点まとめ - IT戦記
  • JavaScript はどのように実行されるか - IT戦記

    JavaScript はどのように実行されるか Safari*1 の実装を例に JavaScript はどのようにして実行されているかを書く。自分用のメモ。日語の出来は気にしない 1. ブラウザを起動して以下のようなページを開いたとする <html> <head> <script> var a = 1; var b = 2; alert(a + b); </script> </head> <body> </body> </html> 2. インターネットからデータが到着する そうすると WebCore::FrameLoader::write という関数に生の文字列が渡される。型は char* だ。 http://trac.webkit.org/browser/trunk/WebCore/loader/FrameLoader.cpp#L990 この関数の中では、到着した文字の文字コードを解

    JavaScript はどのように実行されるか - IT戦記
  • WebKit サーバーというものを作ってみた - IT戦記

    みなさん お久しぶりですヽ(´ー`)ノ夏休みの宿題終わりました? 毎日が夏休みの最終日みたいな生活してるあまちゃんです! さてさて 今日は WebKit サーバーというものを作ってみたので、紹介してみます。 WebKit って何? WebKit っていうのは Chrome や Safari の中に入ってるブラウザのエンジンのことです! 実はブラウザっていうのは、エンジン部分と見た目の部分(タブとかボタンとかね)に別れていて、意外と違うブラウザでもエンジン部分は同じものを使ってるってことも多いんですよ(*´ー`) ブラウザのサーバーってどういうこと? 要は、サーバーサイドでブラウザを起動して JavaScript を実行したり、 JavaScript が実行されないと読めないページから値を持ってくるのに使ったりしようという魂胆です。 今まではそういうのなかったの? 実は、今までは JavaS

    WebKit サーバーというものを作ってみた - IT戦記
  • はてなブックマークのコンテンツの JavaScript を高速化する - IT戦記

    はじめに 「新はてなブックマーク」になったということで、とっても便利になったのですが、ブックマーク一覧ページ*1が若干 JavaScript に時間が掛かっているみたいです。 というわけで 調査してみたいと思います。調査して、改善できそうなところは後で纏めて「はてなアイデア」にでも登録しようと思います。 この日記は調査しながら、過程を書いていくつもりです。 準備 まずは、人のサイトの JavaScript を書き換えて試してみるための環境を作ります。 作業用ディレクトリを作る とりあえず、ホームに HatenaJS というディレクトリを作ります。 $ mkdir HatenaJS $ cd HatenaJS CocProxy をダウンロードしてくる 以下から CocProxy というツールをダウンロードしてきます。 http://coderepos.org/share/wiki/CocPr

    はてなブックマークのコンテンツの JavaScript を高速化する - IT戦記
  • Prototype.js を使った JavaScript OOP 講座 #01

    社内の精鋭エンジニアを中心に定期的に勉強会をすることになった。んで、 JavaScript の講義は僕がやることになった。 資料を社内だけでとどめておくのはもったいないので、ここに公開していきます。社内の人も社外の人も読んでください。 講義の内容は基的にソース嫁。ソースレビュー形式。 ※ターゲットは JavaScript は書いたことない、オブジェクト指向言語プログラマ。 Section 00 Prototype.js の前に JavaScript のオブジェクトの概要・・・ オブジェクトを作ってみる。 var object = {};オブジェクトにメソッドとかプロパティを追加してみる。 var object = { field: 'IT戦士', method: function() { alert('hello ' + this.field); } }; object.method()

    Prototype.js を使った JavaScript OOP 講座 #01
  • ブラウザでお絵描きプログラミング! Processing.js 登場! - IT戦記

    はじめに 今日、 jQuery の作者として有名な John Resig さんが Processing.js という JavaScript のライブラリを公開しました。 John Resig - Processing.js このライブラリを使うと、比較的簡単に以下のようなグラフィックスやアニメーションを書くことができるようになります。 というわけで、公開されたばかりのこのライブラリを簡単な使い方から詳しい使い方までとことん掘り下げてみたいと思います。 Processing.js 概要 まず、 Processing.js とは何かという話をします。 Processing.js とは、ブラウザで Processing というプログラミング言語を実行する JavaScript のライブラリです。 では、 Processing とはどのようなプログラミング言語なのでしょうか。 Processing

    ブラウザでお絵描きプログラミング! Processing.js 登場! - IT戦記
  • JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記

    JavaScript-XPath とは JavaScript-XPath は、 DOM 3 XPath を実装していないブラウザに対して、実用的な速度で動作する DOM 3 XPath のエンジンを追加します。 一言で乱暴に言ってしまえば、どのブラウザでも document.evaluate って関数で XPath 使えるようになるよ!ってことです。 以下が公式サイトになります。 http://coderepos.org/share/wiki/JavaScript-XPath DOM 3 XPath ってなんなの!? めっちゃ簡単(で、ちょっとだけ適当)なDOM 3 XPath の説明をします><。 JavaScript でよく使う document.getElementById や document.getElementsByTagName って関数ありますよね? DOM 3 XPath

    JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記
  • Element Traversal API - 三等兵

    今更ながらJavaScriptのDOM Core基礎 - 三等兵の付け足し。あの記事長いので重くて開けない。 http://www.w3.org/TR/ElementTraversal/ なんぞ? firstChildとかlastChildとかが便利になったやつ。空白ノードとかコメントノードとか無駄なノードをよけて、要素ノード(nodeTypeが1)しか手を出しません。 やってみる // js var oda = document.getElementById('love_story'); alert(oda.firstChild.nodeType); // 3(テキストノード) alert(oda.firstElementChild.nodeType); // 1 alert(oda.lastChild.nodeType); // 3(テキストノード) alert(oda.lastEle

    Element Traversal API - 三等兵
  • 大量の要素を挿入するときcreateDocumentFragmentメソッド - 三等兵

    var frame = document.createDocumentFragment(); for(var i = 0; i <= 255; i++) { var div = document.createElement('div'); div.style.width = '100px'; div.style.height = '1px'; div.style.backgroundColor = 'rgb('+i+','+i+','+i+')'; frame.appendChild(div); } document.body.appendChild(frame); これだと体感的には違いが分からないかも。でも1つ1つ挿入するよりかレンダリングはスムーズだよね。そういえば以前500個ぐらいのdivつめたときもさっとしてたな。その場合canvas使えば良かっただけだけど。 詳しくはこっち。つ

    大量の要素を挿入するときcreateDocumentFragmentメソッド - 三等兵
  • JavaScriptの奇妙さに対してその真面目な態度は失礼だと思わないのかね - 三等兵

    なんだねその真面目にパソコンの前に座ってJSを書いている態度は。大変いただけない。まっこといただけない。あるいは、いただけない。ところで、いただけない。だから、お金を、いただきたい! …いやもっとゆるい感じで現代の人間の代表的な欲求をありのままに発言しただけだって私は決して己の欲望を発言したわけではありませんよほほほほほ。つまりですね、もっとユーモラスにファンシーにスピリッツに、そしてルシにパルスのパージがライトニングだということなのです。FFなんて8で時がとまってる。 というわけでFF13の映像みたらプログラミング書籍よりも唐突すぎる専門用語連発でビックリしたというお話。 あとはどうでもいいのだけど、やっぱりどうでもよくないのだけど、JSに対してJavaのように堅実な付き合い方はいただけません。それはJSに対して大変失礼だ。だらしないやる気を前面に押し出し、あきらかにやる気ありませんよア

    JavaScriptの奇妙さに対してその真面目な態度は失礼だと思わないのかね - 三等兵
  • setIntervalとsetTimeoutを調べた結果余分なことになった - 三等兵

    なかなかどうして、怠惰な若輩者につき不明な点が多々あるため先人の知恵をお借りしたく候。というわけでいろいろ知恵や知識などいただきます。・・・消化不良でしたorz setTimeoutの中の小難しいお話 自分だけじゃ到底調べられないし分かる術もない。Cなんて知るか。だのにこうしてなんとなくでも知ることができるのはありがたいことです。 http://labs.gmo.jp/blog/ku/2007/09/firefoxsettimeout.html Firefoxだけで少し古い記事だけど今でも同じようなものかな。他に私がわかるような資料もないのでこちらをベースに考えさせてもらいます。大きな変更はないだろうし。 タイマースレッド URL先読んだだけではイメージできなかった。整理のため箇条で要約。 Firefoxにはタイマー処理だけを管理している専用のスレッドがある(TimerThread) タイ

    setIntervalとsetTimeoutを調べた結果余分なことになった - 三等兵
  • setTimeoutのメソッドチェーンとループ時の利便性向上について - 三等兵

    ppBlog official これは私も以前悩みました。もう解決したとは思いますがいろいろやってみます。 コードを拝借。 var foo = function(){}; // 関数オブジェクトを作成 foo.prototype = { // プロトタイプを設定 say : function(s){ alert(s); return this; }, await : function(ms){ // ここで遅延処理をゴニョゴニョしたい // var _this = this; // setTimeout(function(){ // return _this; # まぁ、これはダメだけど、こんな感じでやれたらいい // }, ms); return this; } } var bar = new foo(); bar.await(2000).say("Hello"); // すぐに「Hel

    setTimeoutのメソッドチェーンとループ時の利便性向上について - 三等兵
  • クロージャ入門物語 - 三等兵

    なんかクロージャを説明している文章をサイで読んでモゾモゾしつつクロージャを成すために激動の時代を生き抜いた熱い物語である! 完!sandai先生の次回作にご期待ください! 分岐 まずは生真面目にやってみる! http://dqn.sakusakutto.jp/2009/01/javascript_5.html わからなかった・・・ とりあえず書くんだ同志よ! がむしゃらにクロージャのコードを書く こっちでもクロージャのコード書く!よっしゃー突貫じゃー!!! function soto() { var num = 0; } 次。 function soto() { var num = 0; function naka() { num+=1; alert(num); // 数値を確認するためのalert } return naka; } var func = soto(); 出来上がり。

    クロージャ入門物語 - 三等兵
  • valueOfとtoStringメソッドの水深43cmぐらいの深さの話 - 三等兵

    だいぶ前に、 var o = { i: 10, valueOf: function() { return this.i; } } のようなコード(もっと使い道のあるコード)を見たことがあった。そのときはvalueOfっていうとオブジェクトのメソッドて印象しかなくて、ほとんど使ったことがなかったからおっぺけぺーのおひゃーとスルーしましたが。 これはたとえば、 alert(o > 20); // false と扱うことができる。なんでオブジェクトが数値と比較できてるんだと思ったけど、 alert(+o); // 10 数値として扱えた。 これはvalueOfメソッドによるもので、valueOfメソッドというのはオブジェクトを基型などに変換する(数値型が多い)ときに呼び出され、オブジェクトを基型として扱う場面では内部で自動で呼び出される。 ということで、この場合数値として振舞うべきだぜブラン

    valueOfとtoStringメソッドの水深43cmぐらいの深さの話 - 三等兵
  • JavaScriptで簡単にクロスドメイン対応RSSリーダーを作る - 三等兵

    んだ。とあるサイトで使うのでJSだけで作ろうかと。クロスドメインはどうにもならん。かといってサーバで用意するとなるとPHPとか使っちゃう。うわん。そういうわけで。今回はgoogleプロフェッサーの力を。 http://code.google.com/intl/ja/apis/ajaxfeeds/ 結局外部のつかってるじゃんて?そこはあれです。見ざる言わざるやんばざるということで見ないふり。 使い方はこちら。このAPIを利用するには専用のキーを取得しなきゃいけませんが、簡単な署名をするだけです。 http://code.google.com/intl/ja/apis/ajaxfeeds/documentation/#HelloWorld サンプル まずはこのブログのフィードを取得。htmlタグは抜いてます。 google.load("feeds", "1"); function initia

    JavaScriptで簡単にクロスドメイン対応RSSリーダーを作る - 三等兵
  • 名前空間を一つだけ用意する方法と引数渡しについて - 三等兵

    1. 名前空間を一つだけ用意して、それのみを使うこと 2. 設定はグローバル変数ではなく、引数渡しにすること http://blog.livedoor.jp/dankogai/archives/51554037.html こういったテクニックは入門系の書籍ではあまりみかけなかったと思うので少し落として具体的に。 ありがちですが、 (function(window) { var jp; // jpにいろいろぶっこむ window.jp = jp; // グローバルに })(window); とすればグローバルれっつごー。別に、 var jp; (function(){ var obj; // objにいろいろぶっこむ jp = obj; // グローバルに })(); でも。これらの方法はよくみかけますね。 こうすればスコープ内でtypeとかidとか変数名使ってもグローバルには影響いきません

    名前空間を一つだけ用意する方法と引数渡しについて - 三等兵
  • YOUもCSSプロパティ覚えてJavaScript楽しんじゃいなよ - 三等兵

    YOUもJSやっちゃいなよー!ジースジュニア(ジースJr.)に入っちゃいなよー!ええ?どんな活動をするかって?そりゃ決まってるよー、歌をうたったりダンスしながらJavaScriptのコーディングするんだよーアーハー! さあ今日からキミもジースジュニアの一員だよー!やっぱりダイナミックが売りだからね!最新最先端技術(笑)のDHTMLやるよー!ダサイHTMLじゃないよー!死語じゃないよー!最低限これ覚えておくとジースジュニアとしてダイナミックに活躍できるプロパティ覚えたらどうかなーウーハー! プロパティはここから選ばさせてもらってるZE☆ http://css-happylifezero.com/property/ ダイナミックに使いがちなCSSプロパティ の前にちょっと注意。moonshellというの使ってみました。横▲んとこ押すと実行されます。あとちょっと読み込みに時間かかるかもしれません

    YOUもCSSプロパティ覚えてJavaScript楽しんじゃいなよ - 三等兵
  • typeof演算子から学ぶJavaScriptのデータ型の概念と関係する考察のまとめ - 三等兵

    まずはtypeof演算子について。JavaScript Gardenというウェブページがありまして。こういう一文がありまして。 The typeof operator (together with instanceof) is probably the biggest design flaw of JavaScript, as it is near of being completely broken. http://bonsaiden.github.com/JavaScript-Garden/#typeof 訳)http://efcl.info/adiary/Javascript/JavaScriptGarden#k95p17 要するにtypeof演算子は「ヒャッハーtypeof演算子ぶっ壊れてるぜー」ってことらしい。理由が下記の表。 [表1] Value Class Type - "f

    typeof演算子から学ぶJavaScriptのデータ型の概念と関係する考察のまとめ - 三等兵
  • ハイテンションAjax入門 - 三等兵

    JSが少しできる人ならうじうじ考えるほどのこともでもない! 何も難しいことはない!ぶっとんぢまいなよ!ヒャッパー!!! というノリでAjaxを学んでみました。醜いです。 Ajax入門 Ajaxはいろいろできるんだぜ! 以上入門終り!キミは完璧だ!次いけ! Ajaxは非同期通信だかなんだかそんなもんはどうでもいいんだ! どうでもいい!そんなことよりもXMLHttpRequestオブジェクト生成! var request = false; if(window.XMLHttpRequest) { request = new XMLHttpRequest(); //frefox ie7,8 safai opera } else if(window.ActiveXObject) { try { request = new ActiveXObject("Msxml2.XMLHTTP"); // ie6

    ハイテンションAjax入門 - 三等兵
  • JavaScriptのDOM Core基礎 - 三等兵

    Coreの簡易リファレンス。Coreは要素を参照したり、相対位置から周りのノードを参照したり、要素を生成するといった部分。主に利用するであろうプロパティやメソッドはカバーしているつもりですけど、これも入れとけってのあったら教えてください。 このあたりは地味で使いづらくその上理解しにくいという残念な部分。ふと忘れたときに使う個人的なものですが、慢性jQuery拒絶症候群な人よかったらどうぞ。それにしても暑い。ガリガリ君おいしいね。 DOMとは。 Document Object Model (DOM) は、HTML および XML ドキュメントのための API です。これはドキュメントの構造的な表現を提供し、内容や表示形態の変更を可能にします。端的に言えば、Web ページをスクリプトやプログラミング言語とつなぐような機構です。 https://developer.mozilla.org/ja/

    JavaScriptのDOM Core基礎 - 三等兵
  • 細かいJavaScriptの仕様や習慣やテク集 - 三等兵

    気づいたことやミスしたことなどメモしていたので確認作業。細かい仕様だったり暗黙のルールだったり、テクニックだったり。JSに慣れていたら当たり前なことばかりかもしらん。 追記のところはid:os0xさんより。ありがとうございます! undefined var a; alert(a) // undefined 宣言だけだとundefined。undefinedというのは、宣言している変数に値が入っていませんよ、ということ。 そしてオブジェクトには無いプロパティとか参照すると出てくる。 var a = 100; alert(a.length); // undefined さらに引数も。 function func(val) { alert(val); } func() // undefined 引数はCallオブジェクトってのに格納される。このオブジェクトはローカルの変数が格納されるオブジェクト

    細かいJavaScriptの仕様や習慣やテク集 - 三等兵
  • JavaScript初心者におくる24のグレイトなtips - 三等兵

    私が作ったわけではなく海外の記事です。自分も学習してみました。 phpスポーツ啓発日誌や、コカトリスさんや、アイスクレアームパラダイスさんのような、品質の良い訳は私にはできませんので見出しは意訳もしくは誤訳、文章は無視して訳してません。かつ、私がいろいろコードや文章つけたしてます。内容的にはほとんどズレてはないと思いますが、適当なのでおかしいところがあるかもしれません。 うっとうしい場合は原文をどうぞ。 24 JavaScript Best Practices for Beginners 1. 等価演算子で==使うなよボケ===だろナスチン野郎 ひぃぃぃ。 ==|!= だとねー、型は自動に変換されるんすよねー。ねー。 s = '1'; i = 1; alert(s == i); // true alert(s === i); //false えーと、==は「わし、数値も文字列も中身が一緒だ

    JavaScript初心者におくる24のグレイトなtips - 三等兵
  • 知ってて当然?初級者のためのJavaScriptで使う即時関数(function(){...})()の全て

    (function(){...})()は、 (function($){ $.hoge = function() { }; })(jQuery) みたいに使われていたりするコード。GreasemonkeyとかjQueryのプラグインとか、あれこれ見かけることがあると思います。 この話題はいくつかWebでも取り上げられていますが何がどうなってんのかちょっと難しいですね。しかし、誰でも理解できるレベルではあります。というのも、こういう種の難しさは体系的な知識が備わっているか否かということなのです。 でも、この知識を体系化する作業って結構しんどくて、難しくて、まーハゲるほど悩むこともあるかもしれない。それはきっと、とても毛根に悪いかもしれない。スカルプDも真っ青の状況になるかもしれない。それは、悲しいことなのだと思う・・・っ! 毛根にはこれからもがんばってほしい!いつだって頭を温かいまなざしで見守