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

  • You Don't Need jQuery - Qiita

    注意とお願い この記事の内容はもはや古いです。ここに書いている方法では動かないものをいくつか見つけました。参考にする際は動作をよく確認してから使ってください。 ひとつお願いがあります。「あれ、動かないぞ」というコードを見つけたら是非コメントか編集リクエストで教えてください。解決方法までなくても結構です。「これはもう動かないよ」という印をつけたいのです。 この記事はYou Don't Need jQueryの日語訳と同じ内容です。 先日ひょんなことからYou Don't Need jQueryの日語訳をさせていただきました。著者のCam Songさんからも快諾をいただけたので1、Qiitaでも公開させていただきます。 なお、家の英語の説明は継続的にメンテされているので、この記事の情報は古くなっている可能性があります。 追記 この記事は当初は「もうjQueryは必要ない」というタイトルで

    You Don't Need jQuery - Qiita
    bouzuya
    bouzuya 2016/04/13
    jQuery と CoffeeScript って似てるなあ
  • SQLインジェクションとやらなのか?うぜぇー - Qiita

    Help us understand the problem. What is going on with this article?

    SQLインジェクションとやらなのか?うぜぇー - Qiita
    bouzuya
    bouzuya 2016/03/30
    Qiita ついにここまできた
  • はじめてのOSSリリース記 〜なぜ無料でソースコードを公開するのか? - Qiita

    はじめに 先日、一年ほど前から運営しているWebサービスのコードをGitHub上で公開(いわゆるOSS化)しました。 ※サービス自体は公式ホスティングサービスという位置付けで運営を継続しています。 小さなライブラリをOSSとして公開することはあっても、運営中のサービスを丸々OSS化するケースは割と珍しいかと思い、今回OSS化するに至った経緯とその狙いについてまとめてみました。 サービスについて 題に入る前に、簡単に対象のサービスについて触れておきます。 Chibineko (https://chibineko.jp) 「世界で最もシンプルなテスト支援ツール」をコンセプトに、マニュアルテストの管理に特化した軽量なテストツールです。 Markdownライクにテストケースを書けるのが特徴で、リリース前テストなど100項目程度の簡単なテストをサクッと書いて、サクッと実行するのに向いています。 ト

    はじめてのOSSリリース記 〜なぜ無料でソースコードを公開するのか? - Qiita
    bouzuya
    bouzuya 2016/03/29
    サービスを一式 OSS 化したという話
  • DDD: ImmutableなEntityの実装方法〜ステートソーシングなEntityとイベントソーシングなEntity〜 - Qiita

    DDD: ImmutableなEntityの実装方法〜ステートソーシングなEntityとイベントソーシングなEntity〜ScalaDDDドメイン駆動設計 ドメイン駆動設計では、Value ObjectはImmutable、EntityはMutableという雰囲気があるように思うが、ScalaでDDDを実践しようとなると、EntityがMutableでは逆に実装が複雑になることが多い。僕がDDDを始めた2013年頃は、ImmutableなEntityの実装に関する情報がほとんどなく実装方法を試行錯誤していた。その中で、個人的にImmutable Entityの実装方法が落ち着いてきたので、僕がどのように実装しているかについて紹介したい。 なお、ここで紹介するScalaコードはGitHubのsuin/scala-playgroundで公開しているので、コンパイル・実行など試してみたい場合はご

    DDD: ImmutableなEntityの実装方法〜ステートソーシングなEntityとイベントソーシングなEntity〜 - Qiita
    bouzuya
    bouzuya 2016/03/24
    Event Sourcing
  • エンジニアのハマり時間とその技術的難易度の相関関係 - Qiita

    めちゃくちゃにハマったからと言って、その問題は技術的難易度が高い訳ではないんじゃね?という話。 ここで言う「ハマる」とはなにかに夢中になって没頭することではない。バグとかエラーがあって、なかなか解決できなくてそのために時間を割かれてハマる、の「ハマる」。 先日、ハマった問題が解決した時の感情は「ついに解決したぞ」という安堵感と「しょーもないハマりポイント作りやがって、あのボケが!」という前任者への怒りが混ざった状態だった。 サイトのSSLの有効期限切れが2週間後にせまっていた。やる事は証明書の更新、新しい証明書をAWSのELBに入れること。ただこれだけ。しかしハマった。どうやってもELBから「あなたのキーは無効です」みたいなエラーメッセージが返ってきた。2年前にSSLを設定したエンジニア退職してしまって、もう居ない。その前任者とほぼ同じことをすればOkなはずなのに、なぜかできなかった。

    エンジニアのハマり時間とその技術的難易度の相関関係 - Qiita
    bouzuya
    bouzuya 2016/03/24
    ぼくの直感には反するなあ。数時間のハマりこそ、くだらない内容のイメージ。くだらないハマりはたいていの場合1日もすれば気づく。
  • プログラミング言語ランキングより:2016年 動向を見守るべき言語は Elixir、Julia、Rust、Swift、TypeScript - Qiita

    プログラミング言語ランキングより:2016年 動向を見守るべき言語は Elixir、JuliaRustSwiftTypeScriptRustTypeScriptElixirJuliaSwift 最新のRedMonkプログラミング言語ランキング1 によると、Swiftの成長ぶりと潜在的なポテンシャルは驚異的とのことだ。GoSwiftは、トップ10にい込む可能性もあると見られている。 また、トップ20圏外にいるが、今後の動向を見守るべき言語として、Elixir、JuliaRustTypeScriptが挙げられている。 ベストランキング 開発者が採用するプログラミング言語を調べるために、RedMonkはStack Overflowのディスカッション数や、GitHubで使用されている言語を分析している。RedMonkのアナリストおよび共同創設者のスティーブン・オグレディは、その結果を

    プログラミング言語ランキングより:2016年 動向を見守るべき言語は Elixir、Julia、Rust、Swift、TypeScript - Qiita
    bouzuya
    bouzuya 2016/03/16
    TypeScript が無名ってどんな判断だ。
  • Babel と TypeScript の ES6 modules の import の解釈の違い - Qiita

    概要 Babel と TypeScript の ES6 modules の import の挙動の違いについて確認する。 Application 内部では Babel ・ TypeScript を同一設定で使うはずなので問題は起きない。しかし、外部の npm package を利用する際には問題が起きる。 各状況ごとにどう書けばいいのかの参考情報をまとめる。 将来的には、このようなまとめが不要になることを期待する。 前提 Babel 6.6.5 es2015 preset TypeScript 1.8.7 allowSyntheticDefaultImports (export = foo を import foo from 'foo'; できる) 各変換結果 1. Babel import ... from '...'; 'use strict'; var _foo = require(

    Babel と TypeScript の ES6 modules の import の解釈の違い - Qiita
    bouzuya
    bouzuya 2016/03/16
    Qiita に書いたやつ。伸びてる。
  • Redux: Actionのコーディング規約 と redux-actions - Qiita

    概要 Redux / Flux の Action にはオブジェクトであれば何を指定しても大丈夫ですが、非公式のコーディング規約(flux-standard-action)があり、Redux の公式ドキュメントでもこのコーディング規約に従うことを奨励しています。 redux-actions を使って、サンプルコードをコーディング規約に従った Action に修正します。 準備 Middleware編 の続き(tag/middleware)を使います。 Action の構造 flux-standard-action の規約では Action は次のような構造のオブジェクトになります。 { type: FOO_TYPE, // must payload: {object}, // optional meta: {object}, // optional error: false, true, u

    Redux: Actionのコーディング規約 と redux-actions - Qiita
    bouzuya
    bouzuya 2016/03/16
    別 Action ではなく error を Action の標準の prop として持つの、どうなんだろう。
  • https://qiita.com/falsandtru/items/353a303cc88401db44dd

    bouzuya
    bouzuya 2016/03/13
  • たった2行のコーディングで、お問い合わせフォームを設置できるサービスを作った - Qiita

    3/7 23:58 記事内容についてQiita運営に確認しているので、一旦記事を取り下げます。 元記事は、編集履歴を見るか、gistを同じタイトルで検索すればでてきます 3/8 20:51 Qiita運営に投稿内容に関して確認をとりましたところ、投稿内容の意図をご理解頂きましたが、SNS上などでのご指摘事項を真摯に汲み取りたいと考え、記事の再公開については配慮したいと思います。 今後は、Qiita上では同じような悩みを抱えた開発者に向けたハウツーなどの投稿をまとめていくので、ご期待ください。

    たった2行のコーディングで、お問い合わせフォームを設置できるサービスを作った - Qiita
    bouzuya
    bouzuya 2016/03/07
    利用規約違反(有料化予定のサービスの宣伝)なので通報しておいた。ページの上部に通報用のリンクがあるからね!
  • 最近よく聞くQuorumは過半数(多数決)よりも一般的でパワフルな概念だった - Qiita

    最近では珍しくもなくなった"Quorum"という言葉。Zookeeper, etcd, Serfといったクラスタ中でデータのレプリケーションを行ってくれるようなツールや、Cassandra, Riakといった分散データベース(NoSQL系)のようなツールにおいても、データの複製に一貫性を持たせる仕組みとしてよく聞かれます。 しかしながら、多くのスライドやWebの記事を読んでも、"Quorum"という語が意味するところは要するに「過半数ノードによる多数決」というような説明が多いように感じていました。 にも関わらず、"Quorum"と呼ばれているのはなぜか?そんな疑問を持っていたので、この機会に調べてみました。 そうしたら、"Quorum"は過半数/多数決という概念を一般化した非常に抽象でパワフルな概念だということがわかりましたのでここにまとめておきたいと思います。 分散システムにおけるデータ

    最近よく聞くQuorumは過半数(多数決)よりも一般的でパワフルな概念だった - Qiita
    bouzuya
    bouzuya 2016/02/22
  • Redux の Reducer で非同期の状態変更を扱えるように拡張した「Rxdux」について - Qiita

    Redux の不満 Fluxの実装であるReduxの不満点のうちの1つとして、Reducerの扱いがある。もちろんReducerの考え方とそれによるStoreの状態管理、およびcombineReducersによる状態の分割統治についてはまあよいのだけれども、Reducerには同期的な状態変化しか扱えない(扱わない)という制約がある。得てして実際のアプリではモックで同期処理で行っていたことでがいつの間にか非同期の処理となったりすることもあり、その場合Reducerで上手くやってたことでもAction Creatorの方に移動しなきゃいけなくなったりする。 Action Creatorsでは現在のState情報を見るのにはgetState()といきなりStateツリー全体にアクセスすることになる。Reducerではうまくできていた分割統治がここでは厳しくなる。なんとかMiddlewareで工夫

    Redux の Reducer で非同期の状態変更を扱えるように拡張した「Rxdux」について - Qiita
    bouzuya
    bouzuya 2016/02/19
    似たようなことやってるけど、これ全体でやると遅い処理でブロックされてえらいことになるような……
  • glibcの脆弱性対策(取り急ぎiptables/firewalldで叩き落とす!)for CVE-2015-7547 - Qiita

    glibcの脆弱性対策(取り急ぎiptables/firewalldで叩き落とす!)for CVE-2015-7547LinuxSecurityiptablesfirewalldglibc はじめに glibcでヤバメな脆弱性キター! 「glibc」ライブラリに脆弱性、Linuxの大部分に深刻な影響 - ITmedia エンタープライズ Google Online Security Blog: CVE-2015-7547: glibc getaddrinfo stack-based buffer overflow CVE-2015-7547: Critical Vulnerability in glibc getaddrinfo - SANS Internet Storm Center Carlos O'Donell - [PATCH] CVE-2015-7547 --- glibc ge

    glibcの脆弱性対策(取り急ぎiptables/firewalldで叩き落とす!)for CVE-2015-7547 - Qiita
    bouzuya
    bouzuya 2016/02/18
  • Object#send 有害論 - Qiita

    ご存知の方には何を今更感があるかとは思いますが、パッとググった限り誰も書かれていなかったので、 Object#sendやそれとよく似たObject#public_sendの使い方は注意して使わなければ結構危ないセキュリティホールを作ってしまうよ、 というお話をしたいと思います。 TL;DR Object#sendはevalやsystemの次ぐらいに危険です。ユーザーの入力など、外部から入力された値をObject#sendやpublic_sendメソッドにそのまま渡すのはやめましょう。 これらのメソッドに渡す文字列は、(特殊なメタプログラミング用のライブラリを作る場合などを除いて)必ずどこかにハードコードした、信頼できるメソッドの名前のみにしてください。 危険なケース 例えばあからさまな例ですが、次のようなRailsのコントローラーのアクションがあったとしましょう。 みなさんはこれに近いよう

    Object#send 有害論 - Qiita
    bouzuya
    bouzuya 2016/02/15
    send にユーザー入力を渡すのはまあないとしても、ぼくの知る限り Ruby は思想として「プログラマを信頼し責任と権限を委ねる」ように思うので、危険だけど便利なものは許容されていそう。
  • ES2017 async/await + Promise で解決できる事、とES2015(ES6) generators (yield) + Promise + npm aa (async-await) で解決できる事 - Qiita

    ES2017 async/await と Promise を使うと非同期処理をすごく簡単に処理できる。 とても便利なのだが、それだけでは、どうも機能が足りない様に見える。 この記事は... TL;DR ES2017 async/await を使っても、まだいろいろと課題は残ってるよ。 ES2015 (ES6) generators と npm aa (async-await) だと、より良い解決策があるよ。って話。 以下の図の様な非同期処理フローを考えてみる。 横軸は時間だ。左から右へ時間が流れていくものと考えて欲しい。 縦線は複数の処理を同期させたい、という意味だ。 ES2017 async/await 版のコード例を見てみよう。 'use strict'; //require('babel-polyfill'); // おまじない //require('regenerator').ru

    ES2017 async/await + Promise で解決できる事、とES2015(ES6) generators (yield) + Promise + npm aa (async-await) で解決できる事 - Qiita
    bouzuya
    bouzuya 2016/02/13
    aa : async-await の aa.Channel みたいのって一般的なのかな。
  • [JavaScript] ループ途中で抜ける処理は for(in break) ではなく some を使おう♪ - Qiita

    var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; for (var i=0,len=arr.length; i<len; ++i) { var value = arr[i]; if (value > 5) { break; } console.log(value); } [runstant] Array.prototype.some 5 より大きかったら true を返す. するとそれ以降のループが止まるので forEach っぽく書けてかつ break っぽいことができます. var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; arr.some(function(value) { if (value > 5) { return true; } console.log(value); });

    [JavaScript] ループ途中で抜ける処理は for(in break) ではなく some を使おう♪ - Qiita
    bouzuya
    bouzuya 2016/02/09
    JavaScript の標準に takeWhile がないせいでこんなことに……
  • DOMContentLoaded周りの処理を詳しく調べてみました - Qiita

    利用者が一定数いるIE6,7,8を除いて、現在利用されているほぼ全てのブラウザで標準仕様として扱えるようになっています。2006年ごろから登場したjQueryの$(document).readyは有名ですが、この存在もDOMContentLoadedが正式に取り入れられるきっかけの1つになっています。 2. jQueryのreadyとの違い HTML5で定義されているDOMContentLoadedとjQueryの$(document).readyは、DOMツリーの構築が完了したことを判定するという点で役割は一緒といえます。ただ、jQueryは古いバージョンのブラウザをサポートするためにDOMContentLoadedを使わないready判定の実装を行っていました。 1. jQuery Core 1.0のready判定(1.0から1.2.1まで) jQyer Core 1.0を見るとIE/

    DOMContentLoaded周りの処理を詳しく調べてみました - Qiita
    bouzuya
    bouzuya 2016/01/25
  • Qiita などの技術系の記事で残念に思うポイント - Qiita

    Qiita などの技術系の記事を読んでて「あ,ココちょっと残念」と思うポイントを書いてみます。自らの反省も込めて。 日語表現・表記 「値を返却する」という表現 関数やメソッドが値を return することを日語で「返却する」と表現した記事がたくさんありますが,ものすごい違和感を覚えます。 「値を返す」と書くべきでしょう。 この件は以前書きましたので理由はそちらを見てください。 「値を返却する」って言うな 「可変する」という言葉 「可変する」というおかしな言葉もよく目にします。 「可変」というのは,読んで字のごとく「変わりうる」とか「変えうる」という意味です。英語でいうと variable(vary しうる)ですね。 「PNG の圧縮方式は可逆だ(逆変換が可能だ)」というときの「可逆」と同様の成り立ちなわけです。 可変長配列と言えば,固定長ではなくて,あとから伸ばしたりできるような配列の

    Qiita などの技術系の記事で残念に思うポイント - Qiita
    bouzuya
    bouzuya 2016/01/12
    タイトルで何を書いてあるのか分からないのが残念なポイント。おかしな日本語の表現などを指摘している記事。
  • 私的な 2015 年技術的な振り返り - Qiita

    Help us understand the problem. What is going on with this article? 自分のことだけではなく会社的な話も一部含む Pocket のログを見てたら今年は結構狭い技術の中で生きていたことがわかった。 Erlang/OTP ほとんどの時間を Erlang を書くことで過ごしていた気がする。 WebRTC を主にやっていたことから様々なプロトコルを実装したし、たくさんのバグを踏んだ。 Erlang が 1 プロセスでできる処理性能が秒間 5 万リクエスト程度とそんなに高くない事から、ほかの言語への移動も色々検討していた。 CTO に Rust を試してもらったり、知り合いのミドル系の人に相談したりしても、結局は Erlang を頑張る方が良いと思う。という回答を多く頂いた年だった。 結果的に Erlang ばかり書いていた気がする。

    私的な 2015 年技術的な振り返り - Qiita
    bouzuya
    bouzuya 2015/12/31
    心配だ…… "rackt/redux はクソ過ぎてリリース後、速攻で mizchi/flumpt に置き換えられてた。"
  • あるエンジニアの緩慢な死、あるいはエンジニア35歳定年説。 - Qiita

    エンジニア35歳定年説」が許されるのは小学生までだよねーとか思っていたら、実際にはそんな感じになってしまったあるエンジニアの半生を振り返ります。ご参考まで。 第一期 サービスリリース前 自分でサービスをガリガリ作っている というかサービスを作ることしかしていない 1日16時間くらい仕事をしても、プログラミングしかしていないので疲れない 仕様の検討をしながら作るので、基全ての時間は開発をしているという認識 フルスタックエンジニアというある種の全能感を満喫する 第二期 サービスリリース後 運用(ユーザーサポートなども含む)が入ってくるのでサービス開発のスピードが落ちる エンジニアを採用(業務委託含む)する 仕様の調整やコードレビューなど、開発以外の仕事が少しずつ増えてくる でもまだまだ自分が圧倒的にメイン開発者 コードレビューやマージ、リリースは自分が全てやる システムの全体からディテール

    あるエンジニアの緩慢な死、あるいはエンジニア35歳定年説。 - Qiita
    bouzuya
    bouzuya 2015/12/25
    ありそう