タグ

2015年7月15日のブックマーク (15件)

  • ステップアップのためのJavascriptデザインパターン入門(4) 【リビーリングモジュールパターン】

    今回はリビーリングモジュールパターンを紹介します。 リビーリングモジュールパターン このパターンはクリスチャン・ヘイルマンという人による、モジュールパターンを改良したパターンです。 全ての関数と変数をプライベートスコープ内で定義し、パブリックメンバとして公開したいプライベートメンバへのポインタを持つ無名オブジェクトを返します。 var myRevealingModule = function() { var privateVar = 'Hoge', publicVar = 'Foo'; function privateFunction() { console.log('Name:' + privateVar); } function publicSetName(strName) { privateName = strName; } function publicGetName() { pr

    ステップアップのためのJavascriptデザインパターン入門(4) 【リビーリングモジュールパターン】
  • JavaScriptで即時関数を使う理由 - Qiita

    (function (param1, param2) { //処理 }('hoge', 'fuga')); var result = (function (param1, param2) { return param1 + param2; }(1, 2)); console.log(result); //3が出力される。 ズバリ、スコープの汚染を防ぐため。 JavaScriptのスコープ JavaScriptのスコープは、「グローバルスコープ」と「関数スコープ」のみ。すなわち関数は任意にスコープを作るための唯一の手段である。 関数スコープの中でvarを使って定義された変数は関数の中でローカルな変数になるので、関数の外側の変数を上書きしたりすることはない。 なるべく変数の有効範囲をせばめる 一時変数を使用する一連の処理があった時に、それらの変数をすべてグローバル変数にしてしまうのはアンチパタ

    JavaScriptで即時関数を使う理由 - Qiita
  • がっかりされる話。「手っ取り早い成功の秘訣」か「時間のかかる地道な努力」か

    講演などすると、質疑応答や懇親会で聞かれるのが「最初どうやったのか?」「最初からそんなことができたのか?」ということで、それに真摯に答えると、わりとがっかりされてしまうという話。 私たちには営業がいなくて、100%お問い合わせで始まるインバウンドマーケティングをしているという話をすれば、「最初はどうしたんですか?」「最初からお問い合わせでお客様はこないですよね?」と。 確かに、いきなり今のスタイルでビジネスができた訳ではなくて、それまでの歴史があって今がある。さて「最初」とはいったい、どこまで遡って話すべきか、と思いつつ、それまでの歴史を説明をする。 たとえば、私が「アジャイル開発」の文脈で、これまでずっと色々な活動やブログ、講演などをしてきて、10年以上の時間をかけて多くの方に知って頂く機会をもって、その上で、起業したのでその時点で、既にけっこうな方に注目して頂けたというのが大きいはず。

  • Cache-Control: no-transform で各種メディアの変換(再圧縮等)を防ぐ

    まとめ サーバ側のHTTPレスポンスヘッダに Cache-Control: no-transform を設定することで、プロキシ含む通信経路上でのメディアの変換を禁止できる。 概要 モバイル版Chromeにおける帯域圧縮時のEXIF欠損について、という記事でモバイル版Chromeの「データ使用量を節約」機能を利用している場合には画像のEXIF情報を利用するWebアプリの動作に支障があるという話を書きました。 自分の場合にはEXIFデータのOrientation(画像の回転方向)を利用したアプリにおいて、モバイル版Chromeのデータ使用量節約時に画像の回転方法がおかしくなる不具合がありました。 この件について、2014年11月に開催されたハイパフォーマンス ブラウザネットワーキング ミートアップにてGoogleのIlya Grigorikさんに直接質問できる機会があり聞いてみたところ、HT

    Cache-Control: no-transform で各種メディアの変換(再圧縮等)を防ぐ
  • Amazon API Gatewayの設定の構造 - プログラマでありたい

    Amazon API Gatewayの登場で、2Tier-Architectureのピースが揃ったように思えます。いろいろ試してみたいのですが、ちょっと設定の構造が初見でよく解らなかったので一旦整理してみます。理解が間違っていたら、是非指摘してください。 Amazon API Gatewayの用途と構造 まずは、Amazon API Gatewayの公式ドキュメントを眺めてみます。幾つかの用語が出てきています。API,Resource,Method, Method's Settings,Models and Mapping Templates, Stagesまず最初の4つを整理してみます。 まずAPIを作ります。APIは、オブジェクト指向でいうところのクラスのようなものでしょう。クラスの中に、Resourceを作ります。リソースは、APIにアクセスする為のパスです。まずはデフォルトの/(ル

    Amazon API Gatewayの設定の構造 - プログラマでありたい
  • ゴルフダイジェスト・オンラインから学ぶ、「ソーシャルログイン」のベストプラクティス | フィードフォース全力ブログ

    フィードフォース全力ブログ 閉鎖のお知らせ 「フィードフォース全力ブログ」にアクセスいただきましてありがとうございます。 誠に勝手ながら、株式会社フィードフォースが運営する「フィードフォース全力ブログ」は2018年9月6日をもちまして閉鎖いたしました。 なお、フィードフォースが発信する情報は「Feedmatic Blog」や「work plus」にて引き続き更新しております。ぜひこちらのサイトをご覧いただけますと幸いです。 今後とも、どうぞよろしくお願いいたします。 マーケティングのトレンドやノウハウを知りたい方へ フィードフォースが企業のマーケティング担当者に向けて、「データフィード」「ダイナミック広告」「ID連携」を軸に、新しいマーケティングのトレンドや実践的なノウハウを発信しています。 読んでみる → フィードフォースの"人"や"取り組み"を知りたい方へ 「働く」を豊かにする。をミッ

    ゴルフダイジェスト・オンラインから学ぶ、「ソーシャルログイン」のベストプラクティス | フィードフォース全力ブログ
  • プラネックス、犬風のコンセント直挿し無線LAN中継器に“豪ワン”な11ac対応モデル 

    プラネックス、犬風のコンセント直挿し無線LAN中継器に“豪ワン”な11ac対応モデル 
  • JavaScriptデザインパターン – 第1部:シングルトン、コンポジット、ファサード | Adobe Developer Connection

    Basic JavaScript programming knowledge. Additional required other products (third-party/labs/open source) Query Library Download / Learn この記事は、JavaScriptでよく使用されるデザインパターンに関するシリーズ記事の第1部です。デザインパターンはプログラミングにおける実証済みの手法であり、特に、大規模なJavaScriptアプリケーションを大きなグループで作成する場合に不可欠なコードの保守性、スケーラビリティ、分離性を向上させます。 このシリーズ記事の第2部では、さらに、アダプター、デコレーター、ファクトリという3つのデザインパターンを紹介します。第3部では、さらに、プロキシ、オブザーバー、コマンドという3つのデザインパターンを紹介します。 シング

  • Mattermost - Go製のSlack代替サーバ MOONGIFT

    MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました Slackが急成長しています。多くの企業でSlackが使われており、遠隔地(または社内であっても)のコミュニケーションに役立てられています。しかし企業によってはセキュリティ上の理由などで導入できないこともあります。 そんな企業が使ってみたいのはSlackクローンになるでしょう。今回はDockerを使って簡単に導入できるMattermostを紹介します。 Mattermostの使い方 既にDockerが入っているならば、以下のコマンドを実行するだけです。 docker run --name mattermost-dev -d --publish 8065:80 mattermost/platform:helium 後はサーバにアクセスするだけですが、サブドメインを使うのでhostsな

    Mattermost - Go製のSlack代替サーバ MOONGIFT
  • PHP開発環境をDockerで構築する「phpstack」レビュー | さくらのナレッジ

    最近は開発環境を仮想化するケースが増えてきました。元々WindowsではPHPの開発時にVMWare Playerを使ってLinuxを動かして開発することが多かったですが、それがMac OSXLinuxであっても有益に使われています。一つのプロジェクトであれば環境をローカルに作ってしまっても良いのですが、プロジェクトごとに異なる環境を用意したり、LAMPだけに限らないアーキテクチャの場合に開発に携わる人員分、環境を作るのは大変です。 そこで今回はphpstackを紹介します。CoreOS上にDockerを使って様々なサービスをインストールして様々なプロジェクトに対応できるPHP開発環境を構築してくれます。リモートにログインせずとも使えるという利点があります。 必要なもの Docker Docker Compose オプションとして、 Vagrant VirtualBox があると便利です

    PHP開発環境をDockerで構築する「phpstack」レビュー | さくらのナレッジ
  • 昨今のメソッドの命名方法事情まとめ - Kengo's blog

    一時期はメソッド名は動詞で始まらなければならないと言われていましたが、昨今ではJava標準APIでも動詞ではないメソッド名が散見されます。エントリではその傾向をまとめます。 of, from(from, of, valueOf, fromString, fromNullable etc.) fromやofはEffective Javaでも触れられているように、ファクトリメソッドとして利用されることが多いようです。例えばJAX-RSでは valueOf(), fromString() といった名前のファクトリメソッドを利用します。 EnumSet.of Integer.valueOf to, as(toList, asList, toArray etc.) 主に自分自身を別の形に変換するインスタンスを返すメソッドに使います。 IntStream.toArray Arrays.asList

    昨今のメソッドの命名方法事情まとめ - Kengo's blog
  • gitでのヤバイ!を取り消す方法 - Qiita

    gitでよくある、やってしまった!を取り消す方法を紹介します。 gitを使っていると、「ヤバイ・・間違えてcommitしてしまった」「消しちゃいけないものをgit reset --hardしちゃった」とか色々なやばいがあります。 そのヤバイを取り消す便利な方法を備忘録として記録しておきます。 【case1】 commit内容が間違っていた。取り消して再度commitしたい 直前のcommitだけであれば、git commit --amendを使えば解決出来ます。 ファイルに修正を加えて、commit 間違っていた事に気づいたので、更に修正を加えた git addしてgit commit --amend これでOKです。 【case2】過去のcommitが誤っていた。commit自体を取り消したい よくあるようなパターン(私はやってしましますw)として、ローカルで作業してる時、 何か修正を加

    gitでのヤバイ!を取り消す方法 - Qiita
  • Java8が好きになる話(StreamAPIの話はしない) その2 Optional#map - Qiita

    StreamAPIも大好きですよ。 前回はラムダもなるべく推さないように書いていたつもりですがさすがに今回は使います。 Optional#map Optionalは、nullかもしれない返り値を示すやつですが、 返り値以外で使っても便利だと思うのです。 数珠つなぎなnullチェック public static class Struct1 { private final Struct2 value; public Struct1(Struct2 value) { this.value = value; } public Struct2 getValue() { return this.value; } } public static class Struct2 { private final Struct3 value; public Struct2(Struct3 value) { thi

    Java8が好きになる話(StreamAPIの話はしない) その2 Optional#map - Qiita
  • Weave Scopeでコンテナ構成をリアルタイム視覚化 | Pocketstudio.jp log3

    サーバの上で、どんなコンテナが動いているかを把握するのは大変ではないでしょうか。自分だけの環境ならまだしも、複数台のサーバ環境を見なくてはいけない場合は面倒。特に複雑にリンクしている場合や、グループやチーム内で共有している環境では、誰が何を立ちあげているのか確認するだけでも一苦労。 その問題を解決するのが、Weave Scope というツール。最近使う機会がありましたので、内容を軽く共有します。 ■ Weave ? Weave(http://weave.works/)という、Weaveworks 社が公開しているオープンソースのプロジェクトがあります。先月 Weave 1.0 としてリリースされました。これは Docker コンテナのネットワークを拡張するプラグイン機能であり、全体として3つのモジュールで構成されています(正確には、それぞれがコマンドラインのツールですが、一体的に運用しても

    Weave Scopeでコンテナ構成をリアルタイム視覚化 | Pocketstudio.jp log3
  • 優秀なJavaScriptの開発者になるための5か条 | POSTD

    (注記:7/15、いただいた翻訳フィードバックを元に記事を修正いたしました。) 子供の頃、私の興味は互いに関係性のない様々な分野に及んでいました。数学歴史も大好きでした。 ルネッサンスマン 、つまり 博学者 と言う、複数の分野に秀でた人になりたいと思っていました。これはとても難しい課題で、私は突如として、器用貧乏な人になってしまう危機に直面したのです。 私は特定の分野に特化しなくては、と考え始めました。そうすればたとえルネッサンスマンにはなれなくても、少なくとも、器用貧乏にならなくても済むと思ったのです。どうしたらソフトウェア開発をするのに必要な広い知識を保ちながら、1つの分野で専門性を高めることができるのでしょうか。 この記事では、過去5年間、私が良いJavaScript開発者になるために使ったテクニックとリソースの概要をお伝えしようと思います。 最近の多くのWeb開発者は、ある共通の

    優秀なJavaScriptの開発者になるための5か条 | POSTD