タグ

ブックマーク / qiita.com (74)

  • React/Redux苦労話 2015 - Qiita

    この記事は、React.js Advent Calendar 2015の24日目の記事であり、 8月よりReactとReduxで既存システムの置き換えを行った、私の苦労話です。 簡単に対象のシステムを紹介するとこんな感じです。 約50機能のシステム PCブラウザで見ることが前提 サーバサイドも置き換えをする(実装言語はGo) フロントもサーバサイドも自分がやる この記事には以下の内容は含まれません。 Reactの使い方 Reduxの使い方 すごくかっこいいこと それでは全ての始まった8月より始めます。 8月 その前にReact/Reduxを選んだわけ みなさんご存知の通り、React以外にも、UI向けのライブラリはいくつかあります。今回もReact以外にAngularJS、Angular2、Mithril、Riotが候補に上がっていました。 しかしAngularJSはAngular2が発表

    React/Redux苦労話 2015 - Qiita
  • AltJSの選び方フローチャート - Qiita

    JavaScriptわかる - YES 型がほしい - YES Flash/ActionScript3が青春だった - YES Haxe - NO DeNAに勤めている - YES JSX - NO TypeScript - NO Ruby or Python が好き - YES coffee-script - NO クラスはほしい - YES EcmaScript6(Traceur Compiler) or CoffeeScript - NO JavaScriptの文法に不満がある - YES https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS - NO JavaScript書けよ - NO 関数型わかる - YES 自分の好きな言語に深く精通している - YES 好きな言

    AltJSの選び方フローチャート - Qiita
  • GoogleのHTTPロードバランサーの破壊力があり過ぎる #gcpja - Qiita

    そもそもGoogle Compute Engineのロードバランサー、GCE LBは、1インスタンス・1グローバルIP・ウォームアップなしでいきなり100万リクエスト/秒を捌けてしまう謎性能を備えていて、既存の他社クラウドのLBだけこれで置き換えたい! という声もちらほら聞かれるほどの強力LBサービスであった。 From Compute Engine Load Balancing hits 1 million requests per second! そして今回、正式公開ではないLimited Preview版ではあるものの、GCE LBの新機能としてHTTP Load Balancingが発表された。その性能と機能の破壊力があり過ぎるので、GCPブログ記事のリンクをシェアするだけではあまりにもったいない! と思い、要点を訳してみた。 DNSに頼らない、1グローバルIPによるUS、EU、A

    GoogleのHTTPロードバランサーの破壊力があり過ぎる #gcpja - Qiita
  • DDoS攻撃されたらそこで試合終了!? レンサバから利用停止を宣告される前にできる8つの対策 - Qiita

    もしも運用しているサーバにDDoS攻撃をされて、大量のトラフィックを理由にホスティング業者から、そのサーバの利用停止を唐突に宣告されたらどうしますか? なにか対策を考えていますか? by woodleywonderworks. CC BY 2.0 「ファイアウォールでそういった攻撃を防いでいるから大丈夫」「まさか契約上そんな一方的なことができるはずない」と思うかもしれません。私もそのような認識でした。しかし、実際にDDoS攻撃を受けてみると業者の対応は次のようでした。 ホスティング業者は味方をしてくれない ホスティング業者は技術的に的はずれな対策を講じる ホスティング業者は利用規約を拡大解釈し、サービス停止を迫ってくる この3点を信じられない方のために、「付録:DDoS攻撃を受けた時のGMOクラウドPublicと私のやりとり」をこの記事の最後に書いたので、現実のホスティング業者の対応が実際

    DDoS攻撃されたらそこで試合終了!? レンサバから利用停止を宣告される前にできる8つの対策 - Qiita
  • Chrome ExtensionとOn Demand JavaScript - Qiita

    Chrome Extension + On Demand JavaScript extensionにおいて、content scriptは唯一表示中のコンテンツ(要するにDOM)を参照/更新することが可能なコンポーネントである。 しかし、content scriptはDOMへのアクセスは可能だが、windowオブジェクトは共有しない。 例えば、extension側のcontent scriptに下記を書いたとして、

    Chrome ExtensionとOn Demand JavaScript - Qiita
  • 登録されるとつらいユーザー名リスト - Qiita

    Twitter, GitHub, Qiita などのように root/(username) でユーザーページをルーティングするところが増えてきている. このルーティングを採用し, help などのユーザー名を許可すると, root/help が奪われてしまう. そこで, 登録時に validate で, ある程度排除するのが習わしになっていると思うが, 急に root 直下に置きたいページが増えたときなどに取得されていると悲しいことになる. また, サブドメインを利用するサービスだと, api などをうっかり取られてしまうケースが後を絶たない. http://api.hatenablog.com/ みたいに取られることによる面白みもあるが, おおむねつらい. 実際, twitter では search アカウントが取られていて, TweetDeck では twitter.com/searc

    登録されるとつらいユーザー名リスト - Qiita
  • パスワード問合せシステムを作る (clojureのreducers) - Qiita

    現在のパスワードを教えてくれるからといって、「平文で保存してる!くぁwせdrftgyふじこlp‎」と脊髄反射してはいけません。 JALの6桁数字パスワードがどう格納されているか? 古いシステムなのでMD5でハッシュ化していると想定しますが、もちろんsaltは付けているでしょう。 さて、そんなパスワード保管方式で、現在のパスワード問合せに応答するシステムを作ってみます。 パスワードを「567890」、saltを「hoge」として、データベースには"hoge$567890"のMD5値"4b364677946ccf79f841114e73ccaf4f"が格納されているとします。 総当りしてみましょう。 (ns six-length.core (:require [clojure.core.reducers :as r]) (:import [java.security MessageDigest

    パスワード問合せシステムを作る (clojureのreducers) - Qiita
  • Chrome/Firefox の JavaScript Debugger でステップ実行時にライブラリ・フレームワークをスキップする - Qiita

    JavaScript のデバッガ、便利ですよね。つかって、ますよね! Chrome, Firefox 両方の Developer Tool (Web Inspector) には JavaScript デバッガが付属しています。両者には Event Listener Breakpoints 機能が存在し、特定イベントのリスナ全部にブレークポイントを仕掛ける事が可能です。 しかし、jQuery の $.on, $.bind, その他 $.click(fn) 等でイベントハンドラを定義すると jQuery の中で addEventListeners が呼ばれ内部で処理をした後に実際に jQuery に渡した関数が呼ばれます。 そのため、JavaScript デバッガは jQuery 内部でブレークし来飛んでほしいはずの関数に一発で飛んでくれません。 そこで Firefox には Library

    Chrome/Firefox の JavaScript Debugger でステップ実行時にライブラリ・フレームワークをスキップする - Qiita
  • D3.jsとOpen Data〜その1地図を描画する - Qiita

    この記事はD3.js Advent Calendar 2013の9日目です。Open Dataと大きなことを言いましたが、今回は行政データの基のキであるところの地図を描画してみます。なわけで地図を描画するところがゴールです。 今回の完成図は下記です。国土交通省から神奈川県の行政区域データを取得しD3.jsで描画します。ついでにホームタウンとしているJリーグチーム毎に色塗りしてみました。(マリノスの最終節については触れるべからず!) サンプルページはこちら D3 Geo Projection D3.jsには地理描画機能がデフォルトで含まれており、さまざまな投影法によって地形データを描画することができます。 https://github.com/mbostock/d3/wiki/Geo-Projections この機能を使って地図を描画します データの入手 まずは国土交通省のページから行政区

    D3.jsとOpen Data〜その1地図を描画する - Qiita
  • シェルスクリプトでTCPの読み書きをする - Qiita

    LinuxではシェルスクリプトだけでTCPの読み書きが出来るのでやり方をメモ。 BASHでTCPクライアント #適当なファイルディスクリプタでTCPを開く(0,1,2は標準入力/出力/エラーで使われてるからそれ以外) exec 5<>/dev/tcp/www.google.com/80 #先程のディスクリプタに対して書き込む echo "GET / HTTP/1.1" >&5 echo "Host: www.google.com" >&5 echo >&5 #レスポンスをディスクリプタから読み込む cat <&5 HTTP/1.1 302 Found Location: http://www.google.co.jp/?gws_rd=cr&ei=5azLUvfcBczRkwXW4oCADw Cache-Control: private Content-Type: text/html; ch

    シェルスクリプトでTCPの読み書きをする - Qiita
  • tmuxで大量のサーバーを操る最高の方法 - Qiita

    こんにちはこんにちは 私は日々大量のサーバーで作業をする必要があるので tmux が欠かせません そんな中最高便利な記事が先日公開されました Tmuxでウィンドウをインタラクティブに移動する - Qiita [キータ] しかしこの記事が全く話題になっていません おそらく理解されていないのだと思います ということで私がもう少し詳しく説明したいと思います 先程の記事と同様に ssh-configにはパターンが使えるので便利 - Qiita [キータ] tmuxで色んなホストにsshする時に便利な.ssh/config - Qiita [キータ] の合計 3 記事を組み合わせて初めて達成できる最高のソリューションを紹介します tmux のウィンドウの名前 tmux で大量のウィンドウを立ち上げて ssh しているとどのウィンドウがどこのホストにいるのか分からなくなります そこで先程紹介した 2

    tmuxで大量のサーバーを操る最高の方法 - Qiita
  • upstartでデーモン化してみる - Qiita

    デーモン化するのにdeamontoolsを使っていたが、設定が簡単そうなupstartを使ってみる 特徴 タスクとサービスはイベントによって起動・停止される イベントは、タスクやサービスを起動・停止する時に生成される イベントは、システム上の他のプロセスから受ける サービスは、予期せずプロセスが死んだ時に再起動される 親プロセスと別の監視と再起動デーモン D-Busを超えてinit deamonで通信 ユーザがプロセスを起動・停止できる 対応環境 Ubuntu 6.10 以降 Red Hat Enterprise Linux 6 以降 Fedora 9 ~ 14 Debian 6.0(Squeeze) 以降 Maemo WebOS Chromium OS Chrome OS 設定 # nginx description "nginx http daemon" author “my@loca

    upstartでデーモン化してみる - Qiita
  • Node.js + MongoDB でのアーキテクチャ考 - Qiita

    今回はNode.js + MongoDBの組み合わせを使ったシステムのアーキテクチャについて書いてみようと思います。コードの類いは殆どありません。 非同期ノンブロッキング、Webサービス全般 MongoDBが主の記事ですが、題名はNode.jsから始まってます。これは今回のアーキテクチャ考のスタートポイントがNode.jsだからです。Node.jsの特徴というと サーバーサイド javascriptでそれなりに高速 非同期ノンブロッキング主義 対話型インタープリタで色々試しながら開発できる というのが個人的に気に入っている点なんですが、これってWebサービス全般を書くにはよさそうだなぁとか普段から考えていました。どうしてかと言うと、一般にWebサービスと言えば 不特定多数が不特定なタイミングで利用する 多数のユーザーに個別な処理がある 多数のユーザーでの共有な処理がある レスポンスは早けれ

    Node.js + MongoDB でのアーキテクチャ考 - Qiita
  • Gruntのtaskの実行にかかる時間を劇的に短縮する方法 - Qiita

    最近ではGrunt無しでのフロントエンド開発は考えられなくなってきた気がしますが、大抵taskを実行した際に結構時間がかかってしまいます。 Gruntの実行にかかる時間を減らすにはどうすれば良いのか調べてみたら、loadTasks as they are needed to speed up Grunt load time · Issue #975 · gruntjs/gruntのissueに方法がありました。 何に時間がかかっているか taskを走らせた際、何で時間がかかっているのかをtime-gruntで確認してみると、実行しているtask自体ではなくnpmタスク(適切な表現かは分かりませんがGruntプラグインの事です。)の読み込みの方に時間がかかっている事が分かります。 loadNpmTasks()で2秒はかかっている状態 npmタスクの読み込みに何故時間がかかるかというと、Gru

    Gruntのtaskの実行にかかる時間を劇的に短縮する方法 - Qiita
  • reveal.js+Markdown - Qiita

    お手軽スライド作成 @siguremon /twitter /github /Qiita reveal.jsって HTMLで書けるプレゼンツールです reveal.js - The HTML Presentation Framework -- 特徴 スライドが横だけでなく、縦にも配置できる Overviewがみれて、プレゼンの途中で行ったり来たりできる(Escキー) コードスニペットが書ける上にsyntax highlightもしてくれる Pdfにも出力できる reveal.jsの簡単な使い方 このページが詳しいので以下略 (reveal.jsで作ったスライドによる説明) reveal.jsを使ってみた スライドを作る でもhtmlをせっせと書くのはめんどくさい… hamlとかmarkdownで書けるといいなー -- 同じようなことを考えた先人たちがいました Reveal.jsとMarkd

    reveal.js+Markdown - Qiita
  • MavericksでCommand Line Tools for Xcodeをインストールする - Qiita

    macのOSをMavericksにしたらxcodeのcommand line toolsのインストール方法がわからなくてちょっと調べたのでメモ 手順 メニューからXcode->Open Developer Tool->More Developer Tools Downloads for Apple Developerページが開くのでそこのリストから”Command Line Tools(OS X Mavericks) for Xcode”をダウンロードしてインストール Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark theme

    MavericksでCommand Line Tools for Xcodeをインストールする - Qiita
  • Git で複数のリポジトリをまとめたり、逆に切り出したりする - Qiita

    ~/repo1/subdir に ~/repo2 を入れる あるリポジトリのサブディレクトリに別のリポジトリの中身を入れたいとき。たとえば、あるリポジトリのサブディレクトリを切り出して別のリポジトリとして管理しているものを、元のリポジトリに合流させたいとき。 cd ~/repo1 git remote add repo2 ~/repo2 git fetch repo2 # サブディレクトリの内容に repo2 の内容をマージする # (repo2 と内容が似ているサブディレクトリを自動で判別) git merge -s subtree repo2/master # ↑でうまくいかないときにはパスを指定する↓ git merge -X subtree=subdir repo2/master # そもそも ~/repo1/subdir が存在しないときには↓ git read-tree --p

    Git で複数のリポジトリをまとめたり、逆に切り出したりする - Qiita
  • JS軽量クライアントサイドルーティングライブラリいろいろ - Qiita

    JSの軽量クライアントサイドルーティングライブラリをなんとなくまとめました。 ここで述べるルーティングライブラリとは、文字列、または正規表現によって定義したパスに対してコールバックをマッピングできるライブラリを指します。また、ルーティング機能のみを提供するものを中心として紹介します。backbone.js等のフレームワークは省いています。 kazitori.js Example class Router extends Kazitori beforeAnytime:["testBefore"] befores: '/<int:id>':['testShow'] routes : '/':'index' '/<int:id>':'show' '/<string:username>/<int:id>':'post' index:()-> # console.log "index" $('.cu

    JS軽量クライアントサイドルーティングライブラリいろいろ - Qiita
  • Go の Test に対する考え方 - Qiita

    この記事は Go Advent Calendar 2013 の 9 日目の投稿です。 今回は、 Go の testing というパッケージの使い方を解説しようと思ったのですが、 それだとつまらなすぎるので、合わせて Go が test というか assert についてどういうスタンスをとっているかを書いてみます。 Go でテスト さて、「テストのないコードはレガシーコード」などと言われて久しく、様々な言語が test (主に Unittest) について言語レベルでサポートしたり、デファクトなライブラリが確立したりといった状況が、今日では至って普通のこととなっています。 そんな言語や環境で、息をするようにテストを書いてきたみなさんが、はじめて Go でコードを書く時に見るべきは testing パッケージです。 http://golang.org/pkg/testing/ 命名規則 では、

    Go の Test に対する考え方 - Qiita
    sasaplus1
    sasaplus1 2013/12/09
  • grunt-pluginの作り方と解剖 - Qiita

    先日、はじめてgrunt-pluginを公開してみました。 そこでいくつか、「!?」となる箇所があったので、grunt-pluginをつくるときの注意まとめしてみます。 ある程度gruntを使っていて、Gruntfileもしこしこ書いたことある方向けです。 grunt-pluginとは? そもそもgrunt-pluginとは何なんでしょうか。 最低限必要なのは、 gruntにtaskを追加するスクリプト 、ってとこだと思います。 例えば、こんなものでも、grunt-pluginと言えば言えそう。 var grunt = require('grunt'); grunt.registerTask('sample', 'sample task', function () { console.log('this is sample task!'); }); このgrunt.registerTask

    grunt-pluginの作り方と解剖 - Qiita