タグ

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

  • SELECT文で本番環境を落としたお話 - Qiita

    (この記事は 地平線に行く とのマルチポストです) 番環境でやらかしちゃった人 Advent Calendarで、このパターンのやらかしはなかったのでキーボードを叩くことにしました。 番外編のつもりでお楽しみください。 この記事が、新たな障害発生を防ぐことにつながれば幸いです。 何をやったのか ある日、ちょっとした調査のために番データベースのデータを確認することになりました。 (個人情報が格納されているようなシステムではなかったので、必要であれば番データベースへのアクセスが許されていました) もしメンテナンスがあればそのタイミングでやればよかったのですが、直近では特に予定はないとのことでした。そのため、システムが動いている状態のまま作業をすることにしました。 ごく単純な SELECT を実行するだけのつもりだったので、システムに影響がないと判断したためです。 その際、万が一コピペをミ

    SELECT文で本番環境を落としたお話 - Qiita
  • N予備校プログラミング入門コースで学べること - Qiita

    私 is 誰 今年の7月にドワンゴの教育事業部に異動し、N予備校でプログラミング講師をやることになりました。 現在は週2回ニコ生やN予備校上にてプログラミング入門コースの授業放送をしています。 ドワンゴ自体は7年目となり、ニコニコ動画の開発を4年、エンジニア教育エンジニア採用を2年ほどやってきました。 この記事で書きたいこと 現部署に異動後、教材のインプットを兼ねて『N予備校プログラミング入門コース』を履修したのですが、明らかに難易度が僕の想像した "入門コース" から外れたガチ編成になっていて衝撃を受けたことが記事を書こうと思ったきっかけです。 中身としてはとても良い教材になっているので、僕のような勿体無い誤解が少しでも減れば幸いです。 入門コースはいわゆる入門コースではない 『プログラミング入門コース』のゴールは ドワンゴがエンジニアとして採用したいレベル や IT企業のエンジニア

    N予備校プログラミング入門コースで学べること - Qiita
  • "技術的負債"論の道案内 - アーキテクチャの資本コストと情報の非対称性 - Qiita

    はじめに ソフトウェアと組織経営をめぐる問題で避けては通れないのが、「技術的負債」と言う言葉です。一般には、「早さ」を求めて構築されたシステムの構造的な課題が、徐々に蓄積し、債務であるように徐々に開発速度そのものを遅くして行くと言う現象のことを意味しているように捉えられます。 これは、技術組織を持つ経営者や、ソフトウェアエンジニアではない発注者にとっては理解しにくいものです。またソフトウェアエンジニアであっても「古くなってしまったコード」や「わかりにくコード」全般のことを技術的負債と呼び、それをもって何かを説明したかのように考えてしまうことはままあります。 これらに起因して、双方のコミュニケーションが破綻してしまうこともよく見られる景色です。 技術的負債の経済効果は毎年マイナス12兆円 このような構造的な問題をはらむ技術的負債は、老朽化したレガシーなシステムとして、事業の組織改革を遅らせて

    "技術的負債"論の道案内 - アーキテクチャの資本コストと情報の非対称性 - Qiita
  • cron哀歌~typoを笑うものはtypoに泣く~他 - Qiita

    この記事は「番環境でやらかしちゃった人 Advent Calendar 2019」の12日目です。 https://qiita.com/advent-calendar/2019/yarakashi-production (想像以上に人気のカレンダーに参加してしまい、正直なところ、戦々恐々としております……) はじめに ほとんどの方ははじめまして、 @NACK と申します。 エンジニアになって何十年も経ちますが、未だに、ここに書いた「やらかし」は夢に見ます。 皆さんにご笑覧いただいて、私も一緒に笑えるようになればいいなあ……と思い、今回の企画に参加させていただきました。 というわけで、ぜひ笑いとばしていってください。もしくは、今後のみなさんの業務に、ほんの少しでもお役に立てれば幸いです。 用語説明 typoとは 入力ミスのこと。"typographical error"の略。 http:/

    cron哀歌~typoを笑うものはtypoに泣く~他 - Qiita
    hiromark
    hiromark 2019/12/12
    こわ
  • 本当にあったAWSでやらかした話と対策😭 - Qiita

    概要 みなさんこんにちは🎄 「フォトリ」という家族写真の撮影サービスを運用している会社でCTOをしてるカイトズズキと申します。 この記事では、先日会社のAWSで割と高額の請求が来てしまい😭死にたくなる思いをしたので、そのお話についてしていきます。 AWSは便利だけど、お金使いすぎたりしないか不安になりますよね。 特に僕はそんなにAWSには詳しくない人間なので、なおさらドキドキです。 この記事を通して、僕がやっちまった失敗をみなさんに知ってもらい、 同じような失敗をする人が1人でも減ることを祈ってます🙏 やらかしレベル まず、結果としてどれくらいやらかしたかと言うと、 普段の使用料金以外に、 - Lambda で 10万円 くらい - S3 で 30万円 くらい の請求が来てしまいました、、、 普段は数万円程度で2つのWebサービスを運用しているため、 最初に気づいたときは驚きすぎて理

    本当にあったAWSでやらかした話と対策😭 - Qiita
    hiromark
    hiromark 2019/12/05
  • さよなら本番サーバー - Qiita

    とあるSESの現場では番リリースの時期が近づいてきており、僕を含めた数人のエンジニアは間に合いそうもない残作業の開発を進めたり、番で使うためのデータの整備を番サーバー内で行ったりしていた。ほとんどがその案件のために集められたメンバーだったため特に和気あいあいとするでもなく、エアコンの風の音が響く小さなオフィスの片隅で静かに作業をしていた。 業務上のやりとりもRedmineで行われており、声を発するのもたまにメンバー同士で話をしたり、クライアントから電話がかかってきた時だけ。その日もメールで通知が届いてきており、確認してみるとRedmineで僕が関係しているチケットにコメントが届いているという通知だった。 通知のURLをクリックしてRedmineのチケットを確認してみる。 それによると一旦番サーバー上に存在するデータの中の一部の主要データをCSV形式で送ってほしいという依頼だった。無

    さよなら本番サーバー - Qiita
    hiromark
    hiromark 2019/12/04
    ひっ!!!
  • crontab database ~君がしでかしてくれたもの~ - Qiita

    この記事は番環境でやらかしちゃった人のアドベントカレンダー2日目の記事です。 内容的にそろそろ時効だと思うので供養のために書きました。 追記。そういえば時期をちゃんと書いてなかったけど事件が起きたのは去年2018年、つまり仕込み(ヲイ)は2017年の話です ぶっちゃけネタ記事ですw (たまたま見つけて参加してみただけなのに昨日の記事の伸びっぷりを見て戦々恐々としてる TL;DR DB移行作業において、テスト期間中は常に最新のデータで処理できるように書いておいたプログラムをcrontabで実行していた。最終的に番に合わせて日時を調整していたが、そのことを失念し1年後に再実行されてしまい、番データが1年前に巻き戻る事故発生。 crontab は分、時、日、月、曜日を指定できるが、1年後に帰ってくるから気をつけてね。という話。 惨劇はなぜおこってしまったのか 結論から言えばcrontabの

    crontab database ~君がしでかしてくれたもの~ - Qiita
    hiromark
    hiromark 2019/12/02
    at だねこれは
  • 本番環境でやらかしちゃった人 Advent Calendar 2019 - Qiita

    番環境でやらかしちゃった人のアドベントカレンダーです。 例) DB吹き飛ばした 番サーバをデストロイした ネットワーク設定をミスって番サーバにアクセス出来なくなり、サーバが世界から孤立した などなど... 以下の2点については必須項目なので、記述お願いします。 惨劇はなぜおこってしまったのか 二度と惨劇を起こさないためにどうしたのか もう二度とあの惨劇を繰り返さないために、みなで知見を共有しましょう。

    本番環境でやらかしちゃった人 Advent Calendar 2019 - Qiita
    hiromark
    hiromark 2019/11/18
    あ、これは色々ありそう。勉強しよ。
  • IT担当大臣のHPが見えない件(2019/09/13現在) - Qiita

    IT担当大臣とは 内閣府特命担当大臣のうち、「科学技術政策」と「宇宙政策」を担当する方ですね。 なんで大臣かって、そりゃポストが・・・ 公式HPが見られないようになっているというご連絡を数多く頂いております。ご心配をおかけし大変申し訳ございません。 現在、https://t.co/Qg0k9lwbiCのドメインを管理している会社からロックがかけられた状態になっておりまして、ただいま復旧作業を進めております。復活までもう少々お待ち下さい。 — 竹直一 (@NaokazuTakemoto) September 12, 2019 とりあえず whois 叩いてみよう # whois TakemotoNaoKaZu.com Domain Name: TAKEMOTONAOKAZU.COM Registry Domain ID: 14400306_DOMAIN_COM-VRSN Registrar

    IT担当大臣のHPが見えない件(2019/09/13現在) - Qiita
  • エンジニアないない - Qiita

    「あるある」じゃないです はじめに これは、筆者が周りの非エンジニアの方々に 「エンジニアの人って◯◯なんでしょ?」 と言われて、「いやそんなことないですよ笑」と答えた話をまとめました。 この回答が、同じような質問を受けた人が 「ないない。実際はこうなんだよ」 と答える参考になれば幸いです。 (どんな時だよ!) 自分の経験値だけで語っているので、 「俺の場合はあるあるだよ!」 とかあるかもしれません。ご了承ください。 色んな「ないない」 ハッカーって銀行に侵入して口座の金額増やせるんでしょ? ないです。 振込はネットでもできますが、トランザクションの登録だけであり、 実際の金額の操作はネットワークから分離されています。無理です。 インターネットからできるのはキューの登録だけです。 基幹システムでチェックされるので、例え不正な振込データを送信できたとしても 実際に反映される時に弾かれます。残

    エンジニアないない - Qiita
  • SIerに生息する「おじさんSE」の生態を知る - Qiita

    ここでいうおじさんSEとは、主にSIerに生息する、 ・30歳以上で ・モダンな技術を知らない ・レガシーな技術しか知らない ・主に設計書などのドキュメント類を弄っており、コーディングをしない ・現状から変わる気がない(キャリアアップに対し具体的なアクションがない) 人たちを指す。 決して単に妙齢のエンジニアを一括りにしているわけではない。 「おじさんSE」より良い呼び方があれば、ぜひご提案いただきたい。 第1章 おじさんSEの仕事内容 おじさんSEは、コードを書くことはほぼ無い。 これは現場にもよるので、全く無いというわけではないが、 多くのおじさんSEはコーディングはしない。 ではおじさんSEは何をやっているのかというと、 ・内部設計書、外部設計書、詳細設計書の記述 ・結合試験以降の試験項目票の作成 ・試験結果のレビュー 大抵はこの3つになる。 99.9%はウォーターフォール型である。

    SIerに生息する「おじさんSE」の生態を知る - Qiita
    hiromark
    hiromark 2019/09/11
    どういうやり方がいいのかはだね、作るシステムの特性とか開発体制とかによるので、絶対的善悪はないのよ (好き嫌いや得意苦手はあるだろうけど)
  • LinuxにおけるOOM発生時の挙動 - Qiita

    はじめに これはLinux Advent Calendar 2015 3日目の記事を2016/2/2に編集したものです。 Linuxにおいてシステムの物理メモリが枯渇したOut-Of-Memory(OOM)という状態になった際の挙動について説明しています。OOMに関連が深いsysctlパラメタを紹介するとともに、カーネルの内部論理についても触れました。 記事に記載されているファイル名は、とくに断りが無ければカーネルソースのトップディレクトリからの相対パス名です。調査に使用したカーネルバージョンは4.3です。 書は話を単純化するために、細かい動作論理については説明を省いていることをご承知おきください。また、書の中に誤りを見つけたかた、および、私が追いきれなかったソースについての詳細をご存知のかたは、指摘していただけると助かります。 Out-Of-Memory(OOM)とOOM-kill

    LinuxにおけるOOM発生時の挙動 - Qiita
  • JSON Web Token(JWT)って結局使っていいの? - Qiita

    JSON Web Token(JWT)について調べていたら、JWTは絶対に使ってはいけないとかいろいろ書かれていて、使ってよいか良くわからなかった。 なので以下の点を調べてみました。 - JWTはなぜ使ってはいけない、と言われているのか - JWTの代替案はあるのか なお、私はただのフロントエンジニアセキュリティの専門家ではないので素人の個人的見解です。注意してください。 TL;DR JWTは間違えやすく、脆弱になりがち JWTの代替はPASETOが良さそう JSON Web Tokenとは JSON Web Token(JWT)はセキュアなトークンを発行するための標準仕様です。 個人的に以下の点が特徴的だと思います。 標準仕様 仕様がシンプル 任意のデータをトークンに含められる トークンの偽造、否認は出来ない 暗号化されていないので中身は簡単に見られる 署名アルゴリズムが選択可能 JW

    JSON Web Token(JWT)って結局使っていいの? - Qiita
  • try-using文を用いるJavaScriptの超モダンな“リソース管理” - Qiita

    この記事で紹介しているExplicit Resource Managementでは、もはやtry-using文は無くなりました。この記事の内容は最新の情報ではありませんのでご注意ください。 最新のプロポーザルでは、using const文やusing await const文が使われることになっています。(2021年10月) リソース管理というのはプログラミングにおける頻出課題のひとつです。そもそもリソースとは何かというのは人によって思い浮かべるものが違うかもしれませんが、ここでいうリソースは「使ったらちゃんと後始末(解放)をしないといけないもの」だと思ってください。今時はピンと来ない方もいるかもしれませんが、「ファイルをopenしたらちゃんとcloseする」とかおおよそそういう話です。 このようなリソースは、一度使おうものならその後何が起ころうとも必ず後始末をしないといけません。たとえ使

    try-using文を用いるJavaScriptの超モダンな“リソース管理” - Qiita
    hiromark
    hiromark 2019/08/15
    書きやすそう・・・
  • 【2019年11月版】ブラウザ側でデータを保存するため各ブラウザにおけるローカルストレージの挙動の調査 - Qiita

    概要 このドキュメントではローカルストレージの説明と、各ブラウザでの動作を検証する。 ローカルストレージとは、データをブラウザ側に蓄積する仕組みである。 保存時に、サイトごとにKeyと文字の組み合わせでデータを格納する。 サイトごとの領域は、それぞれ独立しており、別のサイトで記録したデータを操作することはできない。 また、それぞれのサイト毎に保存できる上限は制限されている。その具体的サイズはブラウザ毎にことなる。 詳細な仕様は下記を参照のこと。 https://html.spec.whatwg.org/multipage/webstorage.html#the-localstorage-attribute 実装例 下記にローカルストレージの実装例を紹介する。 localStorage APIの使用例 localStorageの操作を行うAPIの使用例を紹介する。 このAPIは、処理が完了す

    【2019年11月版】ブラウザ側でデータを保存するため各ブラウザにおけるローカルストレージの挙動の調査 - Qiita
  • 画像処理の数式を見て石になった時のための、金の針 - Qiita

    画像処理は難しい。 Instagramのキレイなフィルタ、GoogleのPhoto Sphere、そうしたサービスを見て画像は面白そうだ!と心躍らせて開いた画像処理の。そこに山と羅列される数式を前に石化せざるを得なかった俺たちが、耳にささやかれる「難しいことはOpenCVがやってくれるわ。そうでしょ?」という声に身をゆだねる以外に何ができただろう。 稿は石化せざるを得なかったあの頃を克服し、OpenCVを使いながらも基礎的な理論を理解したいと願う方へ、その道筋(アイテム的には金の針)を示すものになればと思います。 扱う範囲としては、あらゆる処理の基礎となる「画像の特徴点検出」を対象とします(実践 コンピュータビジョンの2章に相当)。なお、記事自体、初心者である私が理解しながら書いているため、上級画像処理冒険者の方は誤りなどあれば指摘していただければ幸いです。 画像の特徴点とは 人間が

    画像処理の数式を見て石になった時のための、金の針 - Qiita
  • Rails のアーキテクチャ設計を考える - Qiita

    はじめに ここ一年くらいずっと Rails の何がダメでどうすれば良くなるのかを考えていました。 Rails を使ってそれなりの規模のアプリケーションを作ったことがある人なら、メンテナンスのしづらさを感じたことがあるのではないでしょうか。 メンテナンスの問題は Rails 以外の開発でも発生することですが、実のところメンテナンスしやすいアプリケーションはどうすれば作れるのでしょうか? この難問に対して私も答えを持っていませんが、考え続けています。 少なくとも、 Rails Way や Rails Tutorial をベースにしたアプリケーション開発は、業務で用いるには簡単すぎるように思います。 「レールに乗る」という言葉がありますが、私は考え方を変えました。 Rails は規模の大きいフレームワークですが、土台に過ぎません。 Rails Way の設計方針は小規模な開発では有効ですが、規模

    Rails のアーキテクチャ設計を考える - Qiita
  • MySQLのSELECT文でcsvを出力する - Qiita

    SELECT * FROM users INTO OUTFILE '/tmp/users.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; 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 themeWhat you can do with signing up

    MySQLのSELECT文でcsvを出力する - Qiita
  • Canvasで描画した画像を送信してサーバに保存する - Qiita

    タイトルどおりのことをやった際の実装時メモ。 Canvasから画像を取得 2通りの方法が見つかった。 Base64への変換 Blobへの変換 Base64への変換 canvas.toDataURL()を呼び出すだけで取得可能であるが、 画像サイズに比例した巨大な文字列となり、変換によって元サイズより33%データ量が増える。 取得したBase64を<image>のsrcに指定すれば画像表示され、 <a>のhrefに指定すればリンククリックでダウンロードできてこれはこれで便利。 Blobへの変換 canvas.toBlob()を呼び出すだけで取得可能。 Blob形式で表現すれば、createObjectURL(blob)によりURL参照が取得できるので、 画像サイズに依存せずメモリ使用量を抑えられるらしい。(未確認) これは便利と思いきやcanvas.toBlob()はFirefoxでのみサポ

    Canvasで描画した画像を送信してサーバに保存する - Qiita
  • Ruby 2.1 と 2.2 における、URI#parseの挙動の違い - Qiita

    症状 Ruby 2.1では、URIに使用できない文字(アンダースコア、アンダーバー)を含んだ文字列( http://abc_def.com/foobar/ ※1)をURI#parseに与えた際にURI::InvalidURIErrorの例外が発生する。 2015/08/15追記: ※1…この文字列はURIとしては RFC違反 です。ホスト名にアンダースコア、アンダーバーを含むことはできません。@key-amb様、ご指摘頂きありがとうございます。 なお、この記事では 「RFC違反の文字列に対して、同じURI#parseを使っているが、Rubyのマイナーバージョンに依って挙動が違う」 という点にのみ焦点を当てて、実際にどのように異なっているのか、Ruby2.2で2.1の挙動が欲しい場合にどうすれば良いのかについて論じます。 [1] pry(main)> require 'uri' => tru

    Ruby 2.1 と 2.2 における、URI#parseの挙動の違い - Qiita