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

  • AWSから120万円の高額請求が来た話

    筆者は2018年の夏にAWSから高額請求を受けました。 とある開発合宿の夜、LaravelでS3に画像をあげ、CroudFront経由で表示させるための実装を行っていた時の出来事です。 AWSのコンソール画面とにらめっこしていた時に、ふと左サイドバーの履歴の項目に、気になる項目が目に付きました。 ん? 請求? 普段はこんな項目出て来ないため、気になったのでクリックしてみました。その瞬間、恐ろしい現実を目の当たりにしたのです。 請求を押した時に開かれた画面が、以下の通りでした。 【請求画面の画像】 及び10000$!日円にして、約124万円の請求が来ていました。 何かの間違えだと思ったが、少し怖くなったのでひとまず、こういった事例がなぜ起こるのか、自分に当てはまる原因がないかを調べるため、「AWS 高額請求」などでググってみました。 すると、いくつか記事が早速上位にヒットしました。 htt

    AWSから120万円の高額請求が来た話
  • なぜビンゴゲームで同じ数字を書いてはいけないのか

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

    なぜビンゴゲームで同じ数字を書いてはいけないのか
  • [2018] 個人でも使える!おすすめAPI一覧

    コメント欄にも他の方のおすすめAPIを書いてくれているので是非見てください! Google Sheets API 公式:https://developers.google.com/sheets/api/reference/rest/ 数万行のGoogleスプレッドシートの読み取り・書き込み処理などができます 読み取りだけであればAPIkeyの発行だけでできますが、書き込みにはOAuth認証が必要です 参考:PythonとSheets API v4でGoogleスプレッドシートを読み書きする Google YouTube Data API 公式:https://developers.google.com/youtube/v3/docs/ YouTubeを検索して動画・再生リスト・チャンネルなどの一覧などを取得したり、更新したりすることができます 検索条件で地域(regionCode: JP)

    [2018] 個人でも使える!おすすめAPI一覧
  • AWSにsshログインした時にスライムを出現するようにしてみた。 - Qiita

    やること AWSサーバにログインした時にドラクエお馴染みスライムを出現させる。 なぜ試したのか 毎回AWSにsshログインした時に文字しか表示されないのはつまらないと思ったから。 あと、知り合いのサーバを勝手にスライムを出現させて驚かせたかったからという出来心... スライムがもたらす効果 番環境と開発環境の違いを表現できる ドラクエがやりたくなってくる スライムLOVE!!!!!が止まらなくなり思考停止 みんなの心が癒される スライム化計画 スライムの調達 ドラクエのスライムや勇者達のドット絵がGithubで公開されている。 この中から好きなスライムを選んでURLをコピーする。 これでスライムの調達は完了!! AWS設定変更 AWS EC2にec2-userとしてログインする。 設定確認 ログインした時に表示されるお決まり文字は /etc/motd に定義されている。 この設定ファイル

    AWSにsshログインした時にスライムを出現するようにしてみた。 - Qiita
  • なぜ我々はいまだに文字列でコメントを書いているのか - Qiita

    あるいは、画像コメントのすすめ。 TL;DR 画像コメントのほうが意図が伝わりやすい 画像URLからツールチップで画像表示してくれるVSCode拡張機能があるよ その場で画像を作るSVGエディタもあったよ 問題提起 みなさんは、少し複雑なアルゴリズムを書くことになったときどうしていますか。 たいていの場合、いきなりコーティングに取り掛かるのでなく、 雰囲気をつかむためメモやホワイトボードに落書きすると思います。 特に幾何計算では簡単なものでも図を描いた方がいいです。こんな感じ。 図を書いたら後はコードに落とすだけです。 ね、簡単でしょう? // 指定した直線を対称軸としたときの指定した点の鏡映位置を返す function flipVectorByLine(p: Vector, line: Line): Vector { // TODO: よくわかるコメントを書く const ln = ne

    なぜ我々はいまだに文字列でコメントを書いているのか - Qiita
  • 徳丸先生が『安全なWebアプリケーションの作り方』第二版を語る会 - Qiita

    安全な Web アプリケーションの作り方 ブログ枠で入り込みました。 2018年9月10日(月)19:00~20:30 @ EGセキュアソリューションズ株式会社 Connpass から引用: 弊社代表 徳丸の著書であり、ウェブエンジニアのみなさまのバイブルとして親しんでいただいております『安全なWebアプリケーションの作り方』。6月21日に待望の第2版が発売されました。 今回の勉強会では少しカジュアルに、『安全なWebアプリケーションの作り方』第2版執筆にあたっての想いや、初版との違い、お勧めの読み方等を著者徳丸自らがお伝えします。 さらに、第2版で新規に追加された以下の脆弱性のデモもご覧いただきます。 表紙 初版の表紙と第二版の表紙で微妙に向きが変わっている、特に意味はないけど。逆向きの矢印も検討したんだけど、座りが悪った。 初版(amazon) 第二版(amazon) 第二版で改訂しま

    徳丸先生が『安全なWebアプリケーションの作り方』第二版を語る会 - Qiita
  • 実際のところ「ブラウザを立ち上げてページが表示されるまで」には何が起きるのか - Qiita

    9月15日(土) DNSについて追記しました。バックエンド?今はクラウドがきっと上手くやってくれるので深く考える必要は無いんですよ(知らないので書けません😔) 問題のツイート 面接の質問で「ブラウザを立ち上げてページが表示されるまでの仕組みを全て知ってる限り説明してください」ってのをやると結構Web系の知識どれだけあるか分かると思ってる — 🍛🍺 (@tan_go238) September 10, 2018 解釈 今回は「ChromeのURL欄に入力してからページが表示されるまで」をやります。ブラウザの起動云々はWeb系の話じゃないと信じてます。 1. HTTPリクエストが飛ぶ HTTP2のヘッダ圧縮技術に全て書いてありました。 (追記)下のリクエストヘッダはテキストで書かれていますが、実際にはこれをバイナリにしたものが飛んでいるとのことです。segfoさんありがとうございます!

    実際のところ「ブラウザを立ち上げてページが表示されるまで」には何が起きるのか - Qiita
  • 初心者プログラマが犯しがちな過ち25選 - Qiita

    以下はThe Mistakes I Made As a Beginner Programmerの日語訳です。 The Mistakes I Made As a Beginner Programmer 初心者プログラマが犯しがちな間違いと、それらを特定し、避けるための習慣を学ぶ方法。 まず最初に言っておくことがあります。 この記事は、誤りを犯すことを悪いと糾弾するために作成されたものではありません。 むしろ貴方が誤りに自ら気付き、あるいはその兆候を見いだし、それらを避けられるようにするために書かれたものです。 私は過去これらの誤りを犯し、それぞれから学びを得てきました。 今ではこれらを避けるようなコーディングを習慣付けるようにしています。 貴方もそうしましょう。 紹介は順不同です。 1) 設計せずに実装する 高品質なコンテンツは、一般的には容易に作成できるものではありません。 それには慎重

    初心者プログラマが犯しがちな過ち25選 - Qiita
  • 【インフラ初心者超必見】インフラ情報まとめ - Qiita

    はじめに 面白い会社でインフラ兼サーバーエンジニアをしている@enzenです。 インフラ周りっていろいろありすぎて情報がゴチャゴチャしすぎじゃないですか? もともとアプリケーションエンジニアだったので、インフラ周りの全体像を学ぶのにすごく時間がかかりました。 そこで登場人物?をまとめたらきっと役に立つはずと思いこの記事を書くことにしました。 先人たちが記述してくれた記録をまとめる記事になります。先人たちに感謝!感謝! 有名どころをメインにまとめて行きたいと思います。 OS とりあえずOSがないとなにも始まりませんからね。以下はWikiから引用。 オペレーティングシステム(英語: Operating System、OS、オーエス)とは、コンピュータのオペレーション(操作・運用・運転)のために、ソフトウェアの中でも基的、中核的位置づけのシステムソフトウェアである。通常、OSメーカーが組み上げ

    【インフラ初心者超必見】インフラ情報まとめ - Qiita
  • DNS Queries over HTTPSでのTTLとCache-Control - Qiita

    DNS Queries over HTTPSにおいて、HTTPのキャッシュとDNSのキャッシュの話が面白かったのでメモ DoH IETFで「DNS Queries over HTTPS (DoH)」と呼ばれる、HTTP上でDNS通信を行うプロトコルが議論されている。DoHと呼ばれており、実装もすでに広く行われている。 外とのDNS通信を遮断するようなネットワークでもHTTPSとして出ていくため経路上からは判別することができない。特にHTTP2などで通常のWebサーバとのコネクション上でDNSクエリが送られれば見分けはつかない。 また、CDNからの配信も既存のWebの仕組みに乗っかることができるほか、HTTP/2 ServerPushも行えるなど応用の幅は広い。 例 GETとPOSTに対応しているが、GETでwww.example.comの名前解決を行う例を示す。 このように、HTTPリクエ

    DNS Queries over HTTPSでのTTLとCache-Control - Qiita
  • ラズパイを闇のハックに対する防衛術でセキュアな自宅サーバーにする - Qiita

    闇のハックに対する防衛術を稿では伝授します。 稿でできること SSH接続 公開鍵・秘密鍵をつかった接続 ファイアーウォールの設定 Dos攻撃、ブルートフォース攻撃対策 無料DNSを使う 外部ネットワークから宅内にあるラズパイへアクセス など 大まかな手順 ラズパイに新しいユーザーの追加 SSH接続有効化 公開鍵・秘密鍵の生成 SSH設定ファイルの変更 ファイアーウォールの設定 その他セキュリティ設定 ポートフォワーディングの設定 内部ネットワークで設定通りのSSH接続ができるか確認 無料DNSに登録 外部ネットワークから設定通りのSSH接続ができるか確認 ラズパイに新しいユーザーの追加 デフォルトの状態だとpiユーザーが存在し、このままだとpiユーザーを標的としてラズパイサーバーに侵入される可能性があるため、新しく別のユーザーを追加してpiユーザーを削除します。 また、新しく追加したユ

    ラズパイを闇のハックに対する防衛術でセキュアな自宅サーバーにする - Qiita
  • CentOS6とCentOS7の比較表 - Qiita

    ①anacondaの画面フロー変更。 ②GUIでのパッケージ選択を廃止 ③6.5➡7へのupgradeをサポート CentOS6.5➡7にupdateするには下記 CentOS6.5 ➡ Centos7にアップグレード eth0などはそのまま引き継がれる。 サービスは停止するもの(例えばntpなど)があったり、 6.5で動いてたものが正常に動作しなくなる可能性があるので、upgradeは推奨はしません。

    CentOS6とCentOS7の比較表 - Qiita
  • UbuntuのVimでPlantUMLをプレビューする - Qiita

    VimのプラグインにPrevimというMarkDownプレビュー用のプラグインがある。それを改造してMarkDown中に書かれたPlantUMLのコードをプレビューするようにしたものを公開している@kazuphという人がいたので、それを参考にUbuntu上のVimでPlantUMLのプレビューができるようにしてみた。 筆者の環境 Ubuntu 16.04 LTS Vim version 8.0.936 (常に最新) PlantUML Version 1.2017.15 GraphViz version 2.38.0 GraphVizのインストール PlantUMLはGraphVizを利用しているらしいのでインストールする。Ubuntu 16.04のパッケージリポジトリには記事執筆時で最新の(Version 2.38.0)GraphVizが収録されているのでそれを使う。 PlantUMLのイ

    UbuntuのVimでPlantUMLをプレビューする - Qiita
  • もし、異世界転生モノのチートスキルが「Gitコマンド」だったら【その1】 - Qiita

    この記事のゴール 以下についてざっくり理解することができる(かもしれません)。 commitとはなにか checkoutとはなにか 編 僕「好きです。付き合ってください!」 帰り道、僕は勇気をふりしぼって先輩にそう伝えた。 先輩はちょっと驚いた顔をした。 そのまま笑って、何かをつぶやく。 ーー僕は、横から突然やってきた暴走トラックに跳ねられたので、何も聞けなかった。 気がつくと、森の中にいた。 僕「ここは一体…?」 薄暗い森の中。 僕「そうか、僕、あの時…」 死んだのだ。 頭に霞がかかったかのようだ。思考がまとまらない。 しかし、僕はここが異世界なのだと、何故か瞬時に分かった。 周りを見渡すと、少しはなれたところに男が立っている。 フラフラとしたおぼつかない足取り。虚ろな瞳。痩けた頬。 明らかに憔悴しきっている。 男は虚空をしばらく見つめていた。 ……そして振り絞るような声で、こうつぶや

    もし、異世界転生モノのチートスキルが「Gitコマンド」だったら【その1】 - Qiita
  • NeoVimのGUI実装. OniVimの紹介 - Qiita

    OniVimとは Oni is a new kind of editor, focused on maximizing productivity - combining modal editing with features you expect in modern editors. Oni is built with neovim, and inspired by VSCode, Atom, LightTable, and Emacs https://github.com/onivim/oni OniVimVSCodeやAtom等にインスパイアされた, NeoVimベースのクロスプラットフォームGUIエディタです. 内部的にはReact+Electronで作られていて, デフォルトでJSX記法のシンタックスハイライトに対応していたり, ブラウザを内包していたりして, 拡張性がかなり高く

    NeoVimのGUI実装. OniVimの紹介 - Qiita
  • Microsoft アレルギー患者に贈る GitLab のススメ - Qiita

    去る 6月4日、Microsoft による GitHub 買収が発表されました。過剰に反応するニュースではないものの、この機会に GitHub 以外の Git ホスティングサービスに触れてるのもいい経験になるのではないでしょうか。稿は、GitHub からの有力な移行先の一つとして GitLab を提案するものです。 GitLab が単なる GitHub のクローンサービスだったのは過去の話です。GitLab は 2014 年の法人化をきっかけに、ここ数年で積極的な機能追加がなされており、他の競合に引けも取らない Git ホスティングサービスに成長しています。 GitLab の変遷 GitLab のスタート GitLab は 2011 年に、現 GitLab 社 CTO の Dmitriy 氏によって開発が始められました。 後に、現 CEO の Sid 氏が開発に加わり、翌年 2012 年

    Microsoft アレルギー患者に贈る GitLab のススメ - Qiita
  • WebサイトをHerokuで公開してドメイン取得とSSL化までの全手順

    2018/6/4 公開していたサービスはAPIのリクエスト数上限を超えたため、停止いたしました ここでは元々作成したサイトも紹介していましたが、F5攻撃を受けたことでAPIのリクエスト数上限を超えてしまいました。 元々勉強の為に作成した物だったのでこのまま対策方法を学ぶのも時間が掛かりそうでしたのでサービスは終了させました。 今後のために対策方法がわかれば、次のサービスを公開する際に一緒に共有しようと思っています。 ここには公開手順のみ残して置きますのでよければ参考にしてください。 文 自分で作ったwebサービスを公開したことがなかったので、知見を広げる為にもやってみようと思いました。 同じように、知識が浅い人、作ったサービスを公開したいけど何をすればいいかわからないという人の参考になればと思います。 公開手順 GitHubに登録 もしかしたら最初にやるべき事なのかもしれないですけど、ノ

    WebサイトをHerokuで公開してドメイン取得とSSL化までの全手順
  • 特集!知らないと損をする計算量の話 - Qiita

    1. はじめに 今回は実務プログラミングにおいて知らず知らずのうちに遅いコードになっていそうな例をいくつか挙げて、それを計算量の観点から高速化してみたいと思います。 2. 計算量を意識することにどんな意味があるか 身近な例として、Qiita Contribution ランキングの作成を考えてみましょう。ランキングを作成するためには、各ユーザーの Contribution 数を大きい順に並び替える処理、すなわちソートが必要になります。 Qiita ユーザー数は現在およそ $30$ 万人です。標準ライブラリの sort を用いれば、それほどの計算時間はかからないと思います。しかし仮にこれを愚直な sort アルゴリズム (例えば、挿入ソートやバブルソートなど) で実行したら恐ろしいことになります。 愚直なソートは、並び替える要素の個数の 2 乗に比例した時間がかかります。すなわち $n$ を並

    特集!知らないと損をする計算量の話 - Qiita
  • Gitで日本語長文のdiffをとる方法 - Qiita

    (この記事はここからの転載です) 課題 日語の長文をgitで管理していると、ほんのちょっとの変更でもdiffでは行丸ごと変更されたことになり、変更点がよくわからないことがある。 二泊三日で小説を書く過激なイベントNovelJam 2018参加作品である高橋文樹氏の「オートマティック クリミナル」は、GitHubを使って執筆されている。小説では、git diffの欠点がはっきりでる。高橋氏は参加レポートで、こう書いている。 あと、今回得た重要な知見なのですが、Githubではある程度以上テキストが長くなってくると、数文字の調整で全部差分として判定されたりするので、小説には向いてないかなーと思いました。小説は行の移動とかがよく発生するので、GithubじゃなくてGitとの相性かもしれません。 普通にdiffを取る 確かに、普通にdiffをとるとその通り。コマンドラインで「オートマティック ク

    Gitで日本語長文のdiffをとる方法 - Qiita
  • DNSブロッキングを回避する技術とその仕組み - Qiita

    どうも。先日はNTTDNSブロッキングを開始したことが大きなニュースになりました。 そこで、今回はエンジニア向けの、DNSブロックに対応するための技術やツール、その仕組みを解説します。 あくまで海賊版サイトの利用を推奨するものではありません。 今回のDNSブロッキングでは、単純に国内のDNSサーバーから当該ホストのAレコード返答が帰ってこない種類のものでした。しかし、今後は国外DNSへの通信パケットをフィルタリングされたり、そもそも接続不可にされる可能性があります。 そのため、DNSリクエスト内容を暗号化したり、秘匿化する方法が有効になると考えられます。 DNS-over-HTTPS, DNS-over-TLS, DNS-crypt これらは、名前解決を、暗号化されたレイヤーの上で実行したり、DNSの通信自体に暗号化を施したものです。CloudflareやFacebook、有志のDNS

    DNSブロッキングを回避する技術とその仕組み - Qiita