タグ

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

  • Rubyによるデザインパターンまとめ - Qiita

    はじめに デザインパターンって常識っぽいからちゃんと学んでおかないとと思いつつ、いまいちよく分からないままな人って意外と多いんじゃないかと思い、絶版になってることもありまとめてみることに。2章は基的なRubyの文法の解説なので省略。 変なところあったら教えてくださいね。 対象 デザインパターンを避けてきた人 Ruby以外が不得意で、巷に多く出回っているJavaなどのデザインパターンのが読みたくても読めない、もしくは読むのが面倒な人 Rubyによるデザインパターン買いそびれた人 Rubyによるデザインパターンとは ラス・オルセン 著、ピアソン・エデュケーション(2009) GoFによる23のデザインパターンのうち著者が特に有益だと考える14パターン + Ruby独自の3パターンの解説が書かれている。 実際にデザインパターンが使われている例として、RubyRailsの内部のコードが出てく

    Rubyによるデザインパターンまとめ - Qiita
  • JavaScriptでforEach, filter, map, reduceとか - Qiita

    連想配列(object)だと使えないので、eachはjQueryの$.each(collection, callback)の方が使い勝手がいいかも。 [2, 5, 9].forEach(function(element, index, array) { console.log(index + ":" + element); /** * 0:2 * 1:5 * 2:9 */ });

    JavaScriptでforEach, filter, map, reduceとか - Qiita
  • Chrome58以降でハネられないSHA-2でオレオレ認証局署名のあるオレオレ証明書 - Qiita

    0. 想定環境 サーバ - Ubuntu 14.04 - Apache 2.4.* クライアント - Windows 7 - Chrome - Firefox ※ 想定環境外でも大枠ではほぼ同じと思われるので、それぞれの環境に読み替えて読んでいただければ。 1. 環境設定 1-1. オレオレ認証局用ディレクトリ生成 /etc/ssl(または環境にあわせた対象ディレクトリ)で作業 cd /etc/ssl mkdir myCA cd myCA mkdir newcerts mkdir certs mkdir crl mkdir private chmod 700 private myCA はお好みのディレクトリ名で大丈夫です。 変更した場合、以降の myCA はすべてそのディレクトリ名で読み替えてください。 1-2. オレオレ証明局の運用に必要なファイルの生成 /etc/ssl/myCA(前項

    Chrome58以降でハネられないSHA-2でオレオレ認証局署名のあるオレオレ証明書 - Qiita
  • 「さようなら ImageMagick」の考察 - Qiita

    はじめに サイボウズさんの ImageMagick の利用をやめる記事について少し思う所を書きます。否定というよりアシストのつもりです。(2018年08月26日投稿) さようなら ImageMagick 自分のスタンスを3行でまとめると、 policy.xml で読み書き出来るファイル形式を絞れば、いうほど怖くはない ただ、ImageMagick に限らずサーバサイドで動かすのは手間と覚悟が要る Yahoobleed の件でコード品質が信用ならないと言われたら、ごめんなさい 「ImageMagick を外した理由」 サイボウズさんのブログでは、2017年の ImageMagick 脆弱性報告数が多いので駄目との事です。 脆弱性 ImageMagick には脆弱性が大量に存在します。 2017 年に報告された ImageMagick の脆弱性は 236 件 でした。 大量にある上にリモートコ

    「さようなら ImageMagick」の考察 - Qiita
  • CORSまとめ - Qiita

    今更ですが、CORS (Cross-Origin Resource Sharing)を色々試していたら、思っていた以上に色々パターンがあることに気づいたので、改めてその扱い方についてまとめてみました。 そもそも 現在のWebブラウザでは、あるWebサイトが持つ情報が別の悪意あるWebサイトに悪用されるのを防ぐために、Same-Origin Policy(日語では同一生成元ポリシー)が適用されます。 例えば、あるWebサイト https://guiltysite.com をブラウザで表示している時に、このWebページからXMLHttpRequest(以下、XHR)やFetch APIで別のWebサイト https://innocentsite.net からHTTP(S)でデータを読み込もうとすると、エラーになる、というわけです。 しかし、アクセス元が悪意あるWebサイトならともかく、データ

    CORSまとめ - Qiita
    shaw
    shaw 2018/08/20
  • [archived] axiosを乗りこなす機能についての知見集 - Qiita

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

    [archived] axiosを乗りこなす機能についての知見集 - Qiita
  • PHPのリリース日とサポート期限 - Qiita

    PHP 7.0 は2018年12月3日に公式のセキュリティサポートが終了し、その前の2018年9月13日に 7.0 系最終リリースとなるはずだった 7.0.32 が公開された。しかし、セキュリティサポート終了後の2018年12月6日に 7.0.33 が公開された。 PHP 5.6 の公式のセキュリティサポートは当初2017年8月28日まで 4 だったが、5系最後のリリースであることを理由に 5 2016年始めに2018年末まで延期された。6 2018年12月6日にリリースされた 5.6.39 が最終リリースになるはずだったが、セキュリティサポート終了後の2019年1月10日に昔のよしみ (for old time's sake)で 5.6.40 がリリースされた。 7 PHP 5.5 は2016年7月10日に公式のセキュリティサポートが終了し、その前の2016年6月23日に 5.5 系最終

    PHPのリリース日とサポート期限 - Qiita
    shaw
    shaw 2018/08/14
  • 「世界最悪のログイン処理コード」を解説してみた

    概要 ところでこのツイートを見てほしい。このソースコードをどう思う? 世界最悪のログイン処理コード。 実際のサービスで可動していたものだとか……https://t.co/C2bG93ZCkj pic.twitter.com/EfVNAEslrn — はっしー@海外プログラマ🇳🇿元社畜 (@hassy_nz) 2018年8月10日 すごく……セキュリティーホールです…… 一応は動いていますが、あまりに問題がありすぎるため、Twitterでも話題になっていました。 問題点は片手に入り切らないぐらいある気がしますが、一つづつ解説していきます。 ※元記事のタイトルに記載されていますが、このコードはイントラネット内で動作していたものです。 問題点リスト 1. クライアント上のJavaScriptで書かれている 他の問題点を全部ぶっ飛ばすぐらいの重大な不具合です。 クライアントと言うのはこの場合、

    「世界最悪のログイン処理コード」を解説してみた
    shaw
    shaw 2018/08/14
  • axiosのヘッダーにJSON Web Tokenを埋める - Qiita

    import axios from 'axios' const http = axios.create({ baseURL: `${process.env.API_URL}/api/v1/` }) http.interceptors.request.use((config) => { if (token) { config.headers.Authorization = `Bearer ${token}` return config } return config }, function (error) { return Promise.reject(error) }) http.post('/hogehoge') http.interceptors.request.use で、リクエストを投げる前にインターセプトしてリクエストヘッダにアクセスできるので、それを利用します。 Token を

    axiosのヘッダーにJSON Web Tokenを埋める - Qiita
  • ぼくたちのかんがえたさいきょうのi18n国家

    記事は下記のtweetから始まるスレッドに触発され、@qnighyや@na4zagin3からアイディアを拝借して書いた。 i18n力が最強の国は国内に複数の言語があり、そのうちいくつかは他国でも使われている言語の方言で、1バイト文字での代替表記が困難で、歴史的にISO-2022ベースの文字コードとUnicodeと独自エンコーディングが混在していて、フリガナなどの特殊な組版規則があり、右書き左書き縦書きを併用し、 — Masaki Hara (@qnighy) 2018年8月6日 皆さんのおかげで最強のi18n国家が建設されつつある。一瞬で滅びそう — Masaki Hara (@qnighy) 2018年8月6日 長い前置き ソフトウェアのi18nは難しい。自文化では当たり前と思っていてハードコードしてしまった仮定が崩れて、大幅な再設計を余儀なくされるからだ。気づいて再設計できればまだ良

    ぼくたちのかんがえたさいきょうのi18n国家
    shaw
    shaw 2018/08/07
  • プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話 - Qiita

    プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話ShellScriptBash 普通のプログラミング言語での開発に慣れた人ほどシェルスクリプト、特にBashで戸惑う部分の一つに、i = 0のように空白を開ければエラーになるし、かといってif[$i!=0]のように詰めてもやっぱりエラーになる、という点が挙げられます。書きたい物を思うように書けなくて「なんだよこのクソ言語は!!!」とブチギレる人は少なくないのではないでしょうか。この記事では、そのイライラを解消するポイントをお伝えしようと思います。 以下、特に断り無く「シェルスクリプト」と書いている場合はすべて「Bashのスクリプト」という意味になります。zsh等他のシェルではまた事情が異なりますので、ご注意ください。 (※以前プログラマーの君! 騙されるな! シェルスクリプトはそう書いち

    プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話 - Qiita
  • JavaScriptでクロージャ入門。関数はすべてクロージャ? - Qiita

    JavaScriptでは関数はすべてクロージャです。 ではそもそもクロージャってなんなんでしょうか。 クロージャ?? クロージャの簡単な定義として 「自分を囲むスコープにある変数を参照できる関数」 が挙げられます。 言葉ではパッとしないかもしれませんが、コードを一つづつ追っていくと、 入門としてのクロージャは簡単に理解できます。 スコープ まずJavaScriptは関数ごとにスコープが作られます。 スコープとは変数を参照できる範囲のことです。 その範囲外では変数は参照できません。 function func() { var value = 1; console.log(value); } func(); // 1 console.log(value); // undefined

    JavaScriptでクロージャ入門。関数はすべてクロージャ? - Qiita
  • JavaScriptのクラス?コンストラクタ?? - Qiita

    最初に、JavaScriptにはクラスはありません。 コンストラクタからインスタンスを生成します。 なんだかなぁ・・と言う人は、 とりあえず単語は置いておいてコードから理解してください。 コンストラクタの基 function Dog(name, cry) { this.name = name; this.bark = function() { console.log(cry); }; } var dog = new Dog('きなこ', 'わんわん'); console.log(dog.name); // きなこ dog.bark(); // わんわん もし「new」を忘れたら、関数呼び出しになってしまって一大事です。 これがわからない方はこちらの記事へ。 「JavaScript」の「this」は「4種類」?? newの挙動 もし「new」をつけた場合は何がおこっているのか。 実は暗黙の

    JavaScriptのクラス?コンストラクタ?? - Qiita
  • JavaScript中級者への道【5. コールバック関数】 - Qiita

    JavaScriptのつまづきやすそうなところ 関数はオブジェクトの一種 4種類のthis 関数スコープ 非同期関数 コールバック関数 ← いまここ クロージャ プロトタイプ継承 コールバック関数とは 既に「関数の引数に関数が渡せる」ということを学びました。 これを利用して、「ある特定の処理が終わったら、引数に渡した関数の処理を実行する」といったように 処理のフローを制御することが出来ます。(というより、非同期の場合は制御する必要があります) その際、引数に渡される関数のことを「コールバック関数」といいます。 Wikipediaのコールバック (情報工学)を見る限り、同期/非同期関係無く、引数に関数を取る実装を指しているようです。 ですが、JavaScript界隈で「コールバック関数」といえば、非同期処理に関する記事が多く見受けられます。 まずは制御とか云々の前に、単純なコールバック関数の

    JavaScript中級者への道【5. コールバック関数】 - Qiita
  • position:absoluteした要素に可変の高さを与える - Qiita

    追記 なんか1年くらいかかりはしましたが2万viwe超えました。 他の記事なんか1000にも満たないことが多いので驚きです。 よく検索されているようなのでもしわかりにくいことがあればコメントください。 題 positionは便利だけど、リキッドデザインで使う場合囲んだdivなどにposition:absoluteを当てると画像の伸縮がうまくいかなくなる。 これは高さを指定しないから起こるのだが、 高さ固定したらそもそもdivの中の画像が伸縮しなくなるじゃん!! こんな場面に出会った人は少なくないはず、多分。 どうにかなります .box { position: relative; width: 50%; height: auto; background: #444; } .ratio-1_1:before { content: ""; display: block; padding-top

    position:absoluteした要素に可変の高さを与える - Qiita
    shaw
    shaw 2018/05/09
  • 日本一マクドナルドから遠い場所 - Qiita

    きっかけ 日マクドナルド様のサイトの店舗検索の地図をみてたら、やたらたくさんの店舗が一度に表示できる。 これって全店舗一度に読み込んでるのかな、とChromeのデベロッパーツールで覗いてみると、全店舗分のJSONが見えた。 全店舗2887件。 ちょっと拝借して長年の疑問を晴らしてみようと思った。『はたして、日で一番マクドナルドから遠い場所はどこなのか?』 注) 離島は除きます。離島を含めると南鳥島がぶっちぎりです。 Fusion Tablesでプロットしてみる Fusion Tablesに緯度経度をインポートすることでマップに位置をプロットできるのでやってみた。 Fusion Tablesの導入その他に関しては他に説明を譲ります。 とりあえずデベロッパーツールからJSONを丸ごとコピペして編集の末にCSVファイルをでっちあげた。 Fusion Tablesで扱えるように、先頭行にはカラ

    日本一マクドナルドから遠い場所 - Qiita
    shaw
    shaw 2018/05/01
  • JavaScriptのクロージャはメモリーリークをちゃんと理解して使おう - Qiita

    はじめに 前にブログで書いた記事なのですが、せっかくなのでQiitaにも投稿します。 脱初級者の壁として君臨しているクロージャ。クロージャの使い方はわかったけど、いろんな記事を見るとクロージャは問題点もあるみたい。それに、そもそもクロージャの使い所がいまいちわかんないと思ってクロージャに再度立ち向かおうと思った次第です。同じような悩みを抱えているデザイナーさん、コーダーさん、フロントエンドエンジニアさんの参考になれば嬉しいです。 クロージャとは とりあえずおさらい & 補足をします。 よく見かけるクロージャの見がこちら。 function closure(initVal){ var count = initVal; var innerFunc = function() { return ++count; } return innerFunc; } var myClosure = clos

    JavaScriptのクロージャはメモリーリークをちゃんと理解して使おう - Qiita
  • AWSアカウントを取得したら速攻でやっておくべき初期設定まとめ - Qiita

    AWSアカウントを作成したら最初にやっておきたいことをまとめてみた。 あわせて読みたい 記事の内容を含めた最新の手順は、下記の書籍にまとまっている。 クラウド破産を回避するAWS実践ガイド AWSアカウント(ルートアカウント)の保護 AWSアカウントが乗っ取られると詰むので、真っ先にセキュリティを強化する。 AWSアカウントへ二段階認証を導入 AWSアカウントでのログインは、AWSアカウント作成時のメールアドレス・パスワードだけでできてしまう。心許ないにもほどがあるので、まずは二段階認証を設定しよう。 IAMのページを開く https://console.aws.amazon.com/iam/home 「ルートアカウントのMFAを有効化」を選択して、「MFAの管理」ボタンをクリック 「仮想MFAデバイス」にチェックが入っていることを確認し、「次のステップ」ボタンをクリック 注意書きを読ん

    AWSアカウントを取得したら速攻でやっておくべき初期設定まとめ - Qiita
    shaw
    shaw 2018/02/26
  • GitHub に AWS キーペアを上げると抜かれるってほんと???試してみよー! - Qiita

    🤔 前書き 稀によくある 、AWS を不正利用されちゃう話、 AWSで不正利用され80000ドルの請求が来た話 - Qiita 初心者がAWSでミスって不正利用されて$6,000請求、泣きそうになったお話。 - Qiita AWSが不正利用され300万円の請求が届いてから免除までの一部始終 - Qiita ブコメ等で GitHub にはアクセスキーを検索するBOTが常に動いていて、公開するとすぐに抜かれて不正利用される 的なコメントがつくのを何度か目にしたのですが、 当にそんな BOT が動いているの? どのくらいの時間でキーを抜かれて、不正利用が始まるの? というのが気になったので、検証してみました。 GitHub にそれっぽいパブリックリポジトリを作成、権限が一つもついてない AWS のアクセスキー&シークレットアクセスキーをうっかり公開、外部から利用されるまでの時間を計測します。

    GitHub に AWS キーペアを上げると抜かれるってほんと???試してみよー! - Qiita
  • Rails4ではbackground:url("assets/hoge.png")の書き方は動かない話 - Qiita

    Rails4のproduction環境でのみ、画像が表示されない問題 問題の概要 先日、弊社サービス STORYS.JP をRails3からRails4.0.2にアップデートしました。 Rails4はRails3に比べて、development環境でのページロードにかかる時間が1/10ぐらいになりました。 読み込みに 1500ms ほどかかっていたのが、Rails4にするだけで番並みの 150ms で返ってくるようになり、当に非常に快適に開発ができるようになりました。 しかし、便利なものには弊害も多く、様々な問題がおきます。 その中でも、解決に苦しんだ問題が、 これまでは正常に表示されていた画像が、Rails4のproduction環境でのみ表示されない問題 です。 問題の原因 問題の原因は、 app/assets/images 以下に置いてある画像を直接パスを指定して読み込んでいるこ

    Rails4ではbackground:url("assets/hoge.png")の書き方は動かない話 - Qiita
    shaw
    shaw 2018/02/16