タグ

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

  • 妄想的DHH理解 - Qiita

    Caution この記事はDHHファンの妄想によるシナリオが多分に含まれます。 というかほとんどです。 成り立ちが間違ってることも当然あるように思うので話半分で読んでください。 これは一体 最近のRailsフロントエンドやDHHの活動には一連の流れがあるわけですが、一部トレンドに沿ってない部分がある故にそれが汲めないというところがあるのではと思います。 それらの流れを記憶が定かなうちにつないで記録しておこうという記事です。 前提知識 Railsの生みの親、Rubyist Basecamp(社) DHHがCTOやってる会社 Basecamp(サービス) Basecamp(社)が開発してるプロジェクト管理ツール Trixを開発してたある日 Basecamp(サービス)に組み込まれてるリッチテキストエディタのtrixをcustomElements使って開発してたある日、DHHはあることに気づく。

    妄想的DHH理解 - Qiita
    kamipo
    kamipo 2021/10/07
  • 証明書300万件を強制失効。Let's Encrypt に一体何が起きたのか? - Qiita

    無料 SSL の認証局である Let's Encrypt は、有効な証明書のうち 2.6% に当たる300万件の証明書に対し、2020年3月4日に失効手続きを行うと宣言しました。しかもその事がユーザーに通知されたのは失効手続きの数時間前です。一体、Let's Encrypt に何が起きたのでしょうか? 私が調べた事を共有したいと思います。 この記事は Let's Encrypt の証明書失効に関する一連の出来事についてまとめた物です。今回の失効処理の対象となっているかどうかの確認方法等については、以下の記事をご覧下さい。 Let's Encrypt に重大なバグが発覚。該当サイトは2020/3/4 までに対応が必須 更新しました(2020/3/7) 影響の度合いについての記載が正しくなかったので修正 現在の Let's Encrypt の見解が正しくなかったので修正 何が起きているのか?

    証明書300万件を強制失効。Let's Encrypt に一体何が起きたのか? - Qiita
    kamipo
    kamipo 2020/03/09
  • Chrome 80が密かに呼び寄せる地獄 ~ SameSite属性のデフォルト変更を調べてみた - Qiita

    Chrome 79以下や他ブラウザのデフォルト値。 Chrome 80からこの値を設定する場合、Secure属性も必須となる。 Aサイトに対し、Bサイトからどのようなリクエストがあっても、発行したサイトでCookieヘッダーに含める (Cookieを使用する) 図にすると以下のようになります。 Strict 外部サイトからのアクセスではCookieを送らない。 Lax 外部サイトからのアクセスはGETリクエストのときだけCookieを送る。 None 従来通りの動き。 【追記】なおChrome 80以降でSecure属性を付けずSameSite=Noneを指定した場合、set-cookie自体が無効になります。 セキュリティ上の効果 CSRF対策になります。 CSRF (クロスサイト・リクエスト・フォージェリ) とは、 WEBサイトがユーザー人の意図した動作であることを検証していないため

    Chrome 80が密かに呼び寄せる地獄 ~ SameSite属性のデフォルト変更を調べてみた - Qiita
    kamipo
    kamipo 2020/02/10
  • 非数をJSONに入れようとするとどうなるか - Qiita

    JSON には非数(NaN)は入れられない。入れられるフォーマットになっていないので仕方ない。 無限大も入れられない。入れられるフォーマットになっていないので仕方ない。 仕方ないんだけど、入れようとしたらどうなってしまうのか、各言語の対応を見ていく。 Ruby まずはソースコード: require "json" def test(e) print( e.inspect, ":" ) begin puts([e].to_json) rescue=>e p e end end test( Float::NAN ) test( Float::INFINITY )

    非数をJSONに入れようとするとどうなるか - Qiita
    kamipo
    kamipo 2019/07/18
  • irbの履歴を保存する - Qiita

    irbはちょっと試してみる分には便利なんですが、 いつも何を入力したか忘れてしまうので、 まとめてスクリプトに保存しようとするとちょっと面倒です。 そこで、~/.irbrcに以下のように書くと、 ~/.irb_historyに履歴が残るようになります。 そこから必要なところを抜き出してあげることで、 簡単にスクリプトを作ることができます。 require 'irb/completion' require 'irb/ext/save-history' IRB.conf[:SAVE_HISTORY] = 10000 IRB.conf[:HISTORY_FILE] = File.expand_path('~/.irb_history') Register as a new user and use Qiita more conveniently You get articles that mat

    irbの履歴を保存する - Qiita
    kamipo
    kamipo 2019/05/24
  • 新人プログラマをレビューで殺さない方法 - Qiita

    はじめに この半年くらいで初めて格的にチーム開発を行い、今では日常的にプルリクエストというものを使っています。 チームの方々には、基的なことから応用的な部分まで様々な観点からレビューをしてもらって、大いに勉強になりました。 ただ、時には「新人にとっては厳しいレビュー」をいただき、致命傷で済んだものもありました。 もちろんそれは悪意のあるものではなくて、新人とレビュワーのスキルのギャップによって意図せず生み出されてしまうものです。 そのような不幸なレビューによって苦しむ新人が減ることを願って、新人を殺してしまう恐れのあるレビューをまとめていきたいと思います。 新人教育の場に少しでも役に立てていただけると嬉しいです。 前提条件 今回の対象とする「新人」は、格的な開発経験が1年未満の方を想定しています。 個人で少しプログラミングはしてきたけれど、チーム開発は未経験の新卒や、インターン生、プ

    新人プログラマをレビューで殺さない方法 - Qiita
    kamipo
    kamipo 2019/01/08
  • C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita

    C++ Advent Calendar 2018 この記事はC++ Advent Calendar 2018 15日目の記事です。 14日目: VTKライブラリ 16日目: C++のエラー処理との付き合い方 当初見積もりよりも大幅に長い記事となり、投稿したのは12/22で1週間遅刻です。すみません。 お知らせ cpprefjpにchar8_t型追加について解説を書きました。ぎゅぎゅっとコンパクトに、また査読を受けて中立的な表現で書いていますので、よければどうぞ。 UTF-8エンコーディングされた文字の型としてchar8_tを追加 - cpprefjp C++語リファレンス 追記 全ての開発者が知っておくべきUnicodeについての最低限の知識 - GIGAZINE Unicodeについて簡潔にまとまってるいい記事を見つけました。 Caution この文章には以下の要素が含まれます。苦手

    C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita
    kamipo
    kamipo 2018/12/23
  • JavaScriptの { } を理解する - Qiita

    結果はどうなったでしょうか。 自分が今使っているGoogle Chromeだとこうなりました。 結果は{a: 10}というオブジェクトです。まあ、これは当然ですね。3 + 5と入力すれば実行されて8が返ってくるのですから、{a: 10}というオブジェクトリテラルを書けば{a: 10}というオブジェクトが作られるのは当然です。 ……。 ここで、一部の人は「おいふざけんなよ」と思っているかもしれません。というのも、この例は環境によっては違う結果になるのです。具体的には、Chrome以外2のブラウザのREPL(FirefoxやEdgeなど)が該当します。あと、ts-nodeのREPLも該当するらしいです。これらの環境では、結果は{a: 10}ではなく次のようになります。 オブジェクトを作ったはずなのに結果が10とか意味不明ですね。そもそも、こんな簡単なプログラムで結果が全然違うとか、JavaSc

    JavaScriptの { } を理解する - Qiita
    kamipo
    kamipo 2018/11/12
  • なぜビンゴゲームで同じ数字を書いてはいけないのか

    先日、結婚式の二次会に招待していただきました。新郎・新婦ともに大学時代からの友人です。 歓談中にビンゴゲームが開催されました。私はビンゴゲームに完全に勝利にしたにも関わらず、景品をもらうことができませんでした。 あまりに理不尽な経験だったので、泣き寝入りしてたまるものかと思い、Qiita に初投稿してみようと思います。 ビンゴゲームとは ビンゴはビンゴですよね。「ビンゴ!」って叫ぶやつです。 今回のビンゴゲームは $3 \times 3 = 9$ マスのカードを利用しました。縦・横・ナナメに一直線に 3 マス穴を開ければ「ビンゴ!」になります。 実は、各参加者には白紙のビンゴカードが配られ、各テーブルにはビンゴゲームのルールが書かれた紙が配られていました。下記がその内容です。 真ん中のマスに "free" と書いてください。(i.e. 真ん中のマスはゲーム開始時に穴を開けて良い) それ以外

    なぜビンゴゲームで同じ数字を書いてはいけないのか
    kamipo
    kamipo 2018/10/04
  • ルービー3分クッキング「今日はオブジェクトを汚染していきます」 - Qiita

    「オブジェクトを汚染する」という厨二感あふれるワードに惹かれて、 taintに触れてみました。 畏れ多き、 rubyセキュリティ機構のご報告になります! タイトルの3分は関係ありません。 rubyセキュリティモデル Q:「rubyセキュリティって何?」 A: RubyにはCGI等のプログラミングを安全に行うことを助ける為に、 セキュリティ 機構が備わっています。 Rubyセキュリティモデルは 「オブジェクトの汚染」と「セーフレベル」という仕組みによってなりたっています。 引用:Ruby2.4.0リファレンスマニュアル>セキュリティモデル セーフレベルと禁止される操作 レベル0とレベル1があります。 2,3,4もあったみたいですが廃止されました。 デフォルトではレベル0にされていて、 レベル0では禁止される操作はないですが、 レベル1で以下の操作が禁止されます。 - 汚染された文字列

    ルービー3分クッキング「今日はオブジェクトを汚染していきます」 - Qiita
    kamipo
    kamipo 2018/09/28
    👀
  • 「さようなら ImageMagick」の考察 - Qiita

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

    「さようなら ImageMagick」の考察 - Qiita
    kamipo
    kamipo 2018/08/27
  • EC2 SSM で ssh レスの夢を見るか - Qiita

    mediba advent calendar 2017 15日目担当の沼沢 @numasawa です。 インフラストラクチャー部所属、AWS インフラ全般やってます。 SSM の記事ではありますが、タイトルに深い意味はありません。 皆さん、SSM 使ってますか?というより知っていますか? Amazon EC2 Systems Manager ←こいつですね。 今回はこの SSM についてお話をしたいと思います。 なお、"SSM" は Simple Systems Manager の略なのですが、公式紹介ページでの名称から Simple が無くなっているのはとても深い謎です。 公式ドキュメント内でも表記が揺れているようですので、気にしないでおきましょう。 SSM とは そもそも SSM とはなんぞや。 一番簡単な使い所で言うと、ssh ログインせずとも、Management Console

    EC2 SSM で ssh レスの夢を見るか - Qiita
    kamipo
    kamipo 2018/08/10
  • AWSアカウントを取得したら速攻でやっておくべき初期設定まとめ - Qiita

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

    AWSアカウントを取得したら速攻でやっておくべき初期設定まとめ - Qiita
    kamipo
    kamipo 2018/02/25
  • 一番分かりやすい OAuth の説明 - Qiita

    はじめに 過去三年間、技術者ではない方々に OAuth(オーオース)の説明を繰り返してきました※1,※2。その結果、OAuth をかなり分かりやすく説明することができるようになりました。この記事では、その説明手順をご紹介します。 ※1:Authlete 社の創業者として資金調達のため投資家巡りをしていました(TechCrunch Japan:『APIエコノミー立ち上がりのカギ、OAuth技術のAUTHLETEが500 Startups Japanらから1.4億円を調達』)。Authlete アカウント登録はこちら! ※2:そして2回目の資金調達!→『AUTHLETE 凸版・NTTドコモベンチャーズ・MTIからプレシリーズA資金調達』(2018 年 2 月 15 日発表) 説明手順 (1)ユーザーのデータがあります。 (2)ユーザーのデータを管理するサーバーがあります。これを『リソースサーバ

    一番分かりやすい OAuth の説明 - Qiita
    kamipo
    kamipo 2018/02/21
  • タイムゾーン呪いの書 - Qiita

    コメント欄で「Software Design 誌 (2018/12) に寄稿した内容や修正などをこちらの記事にも適用したい」と言ったあと、やるやる詐欺でずっと放置していましたが、三年近く経ってようやく 2021年 7月に大幅に改訂し、同時に Zenn に引っ越すことにしました。 タイムゾーン呪いの書 (知識編) タイムゾーン呪いの書 (実装編) タイムゾーン呪いの書 (Java 編) なにやら長くなりすぎたので三部構成になっています。 この Qiita 版は、しばらく (最低一年は) 改訂前のまま残しておきます。 タイムゾーンの存在はほぼ全ての人が知っていると思います。ソフトウェア・エンジニアなら多くの方が、自分の得意な言語で、タイムゾーンが関わるなにかしらのコードを書いたことがあるでしょう。ですが、日に住んで日仕事をしていると国内時差もなく1 夏時間もない2 日標準時 (Japa

    タイムゾーン呪いの書 - Qiita
    kamipo
    kamipo 2018/02/13
  • ActiveRecordのモデルが1つだとつらい - Qiita

    Railsあるある 何気ないモデルの変更がアプリケーション全体を傷つけた TL;DR 最近の趣味アプリではコントローラーごとにモデル生やしてトップレベルのモデル使わない設計で書いていて、コールバックやデフォルトスコープ書き散らかしても影響範囲がコントローラー内だけで済むので便利だしFormオブジェクト書いてグルーしまくる必要もなく快適 — Miyagi (@hanachin_) 2018年1月30日 アプリ全体で1モデルだとグローバル変数と一緒、モデル全体に影響でる機能がアプリ全体に影響でてつらい。機能ごとにスキップしたり使い分けはできるけどモデルごと全部分けたほうが楽、コントローラーごとに分けると責務が明確になりやすい。みたいな感じです! 詳しい記事はやる気でたら書く... — Miyagi (@hanachin_) 2018年2月9日 自分自身ネームスペースどう切るかとかは興味なくてd

    ActiveRecordのモデルが1つだとつらい - Qiita
    kamipo
    kamipo 2018/02/12
    STIは気をつければなんとかできるけどpolymorphic associationとの共存が難しそう
  • net.ipv4.tcp_tw_recycle は廃止されました ― その危険性を理解する - Qiita

    Disclaimer 私はネットワークの勉強もちゃんとしたことないし、Linux のソース読むのもはじめてな素人です。 何かおかしなところなどあれば、遠慮なくコメント欄でまさかりをお願いいたします。 ソースコードの引用に関して 文中で Linux のコード/ドキュメントを引用している箇所がありますが、すべてタグ v4.11 のものです。また、日語のコメント・翻訳文は筆者が入れたものです。 TL; DR Linux のカーネルパラメータ net.ipv4.tcp_tw_recycle は、バージョン4.12から廃止されました。 今後はこの設定は行わないようにしましょう(というかできません)。 一方、net.ipv4.tcp_tw_reuse は安全であり、引き続き利用できます。 …というだけの話なのですが、自分用にメモがてら経緯・背景などを記録しておきます。 なんで気がついたか このパラ

    net.ipv4.tcp_tw_recycle は廃止されました ― その危険性を理解する - Qiita
    kamipo
    kamipo 2018/01/04
  • 新QiitaでReactをやめてhyperappを採用した背景 - Qiita

    12/1 に Qiita のトップページをリニューアルしました。これまで React を使っていましたが、それをやめて hyperapp を採用しました。まわりを見てもあまり採用事例が見当たらないので、この記事では一体なんで今をときめく React ではなく hyperapp を選択したのか、どういうところが魅力的なのかについて プレゼンテーション層を実装するためのツールとして 学習コスト の観点から書きたいと思います。なおこの記事に書かれていることは全て個人の感想であり、はっきりいって個人の日記レベルです。 それと hyperapp の開発者が社内にいるという事情もあるので、そこら辺さっぴいて読んでください。 TL;DR プレゼンテーション層を実装するためのツールとして React は機能過多だし、機能不足 hyperapp は過不足ない 学習コスト 仮想 DOM は学ぶ価値のある知識

    新QiitaでReactをやめてhyperappを採用した背景 - Qiita
    kamipo
    kamipo 2017/12/28
  • 2018 年は Hyperapp の年だ - Qiita

    この投稿は Increments Advent Calendar 2017 の14日目の記事だよ。Hyperapp という JavaScript ビューライブラリを自作しているので、その説明と作った理由について話す。 Hyperapp ができるまでのプロセスや、どんな価値観で作ったかなどを書く。新しいフレームワークを作る時の参考になれば嬉しい。 Hyperapp とは? Web アプリのフロントエンドJavaScript ライブラリ。React, Preact, Vue といった代表的なものよりもずっと小さく、1 KB という超軽量サイズ。他のライブラリに依存することなく使えて、さらにスピードもある Elmアーキテクチャーに基づいてて、アプリケーション設計はElmReact、Reduxと似てるけど、ボイラープレートは少ないし、TypeScriptにも対応して、とにかくシンプル。 El

    2018 年は Hyperapp の年だ - Qiita
    kamipo
    kamipo 2017/12/28
  • イマドキのJavaScriptの書き方2018

    PySpa統合思念体です。これからJavaScriptを覚えるなら、「この書き方はもう覚えなくていい」(よりよい代替がある)というものを集めてみました。 ES6以降の難しさは、旧来の書き方にプラスが増えただけではなく、大量の「旧来の書き方は間違いを誘発しやすいから非推奨」というものを作り出した点にあります。5年前、10年前のやウェブがあまり役に立たちません。なお、書き方が複数あるものは、好き嫌いは当然あると思いますが、あえて過激に1つに絞っているところもあります。なお、これはこれから新規に学ぶ人が、過去のドキュメントやコードを見た時に古い情報を選別するためのまとめです。残念ながら、今時の書き方のみで構成された書籍などが存在しないからです。 たぶん明示的に書いていても読み飛ばす人はいると思いますが、すでに書いている人向けではありません。これから書くコードをこのスタイルにしていくのは別にいい

    イマドキのJavaScriptの書き方2018
    kamipo
    kamipo 2017/12/26
    もはや別言語だった