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

  • 管理者用初期化URLを踏んでWebサービスのデータをふっとばした話 - Qiita

    自己紹介 職のエンジニアではありませんが、ちょっとICT系に詳しそうなやつって感じで、部署のサーバ管理を任されたりもしています。 背景 私の(当時所属していた)部署では、毎年、数週間かけて前年の各人の業務実績をとりまとめて一つの冊子(PDF)にするという仕事があり、この作業を少しでも自動化するため、Webサービスが内製されました。当初は単純に各ユーザが自分の業務実績一覧をテキストで用意してアップロードするというものでしたが、秘伝のタレのように毎年少しずつ改良されたり、大幅に作り直されて別システムから業務データを取り込んでからブラウザ上で編集できるようになったりしつつ、なんやかんやあって私が引き継ぎます。他にやりたい人もなく、ひとり鯖管です。OSはCentOS6でした。 このシステムでは、毎年新しいデータを編集するため、その作業開始時にデータを初期化する必要があります。この作業も自動化し、

    管理者用初期化URLを踏んでWebサービスのデータをふっとばした話 - Qiita
    shikiarai
    shikiarai 2020/12/08
    “本職のエンジニアではありませんが、ちょっとICT系に詳しそうなやつって感じで、部署のサーバ管理を任されたりもしています。”ここからの見事な復旧。やはり自己紹介は信用できない……
  • 本番環境でsudo yum updateしてサービスが動かなくなった - Qiita

    EC2 (Amazon Linux) Apache php7.1 私がやってしまったこと この事件が起きたのは2020年6月。既に稼働しているWebサービスでとあるデータ取得の処理が止まってしまっているので調査してほしいと頼まれました。また、サービスに影響が出るものだからなるべく早めに対処してほしいと言われました。 マネージャー 「今日の夕方までにはお願いね。もし難しそうだったら午後イチで一旦MTGしよう。14時までに連絡をください。」 わたし 「任せてください!」 ・・・・ とは言ったものの、番サーバーで起きている障害の調査は今までやったことがありませんでした(もちろん番サーバーにログインしたこともない)し、進め方も全く思いつきませんでした。しかも、対応するサービスの開発には携わったことがなく、sshログインの設定から行う次第でした。 まあ、今まで頼まれたタスクを期限内に終えられなか

    本番環境でsudo yum updateしてサービスが動かなくなった - Qiita
    shikiarai
    shikiarai 2020/12/02
    うそやん。アップデートって書いてあるやん。なんでやっておこう!になるん……って思われてると思う。そして今後、筆者自身も同じことをした後輩に対して同じことを思うと思う。
  • もしあなたが急にAndroidアプリを業務で作るはめになった場合の選択肢(2021年初頭版) - Qiita

    記事はAndroid Advent Calendar 2020の2020/12/01分です。 初っ端ということなので、2020年末と2021年頭でのAndroidエンジニアとして初めて業務でやる場合に抑えておいたほうが良い最低限の部分を書いていこうと思います。(ツッコミ待ちです) 対象 2021年3月ぐらいまでに !!業務!! でAndroidアプリを作らされる事になった可愛そうな人が居たとします この人は手続き型言語でオブジェクト指向プログラミングができる知識があり、Androidアプリもなんとなく趣味で作ったこともあるぐらいのレベル感です(なので上長からいきなりお前Android担当なと言われた) 最低限のAndroidアプリの作成の知識はあるものとします(画面の表示にはActivityがいるよとかは書かない) ゲームは対象外です 業務でAndroidアプリを作ることを想定しています

    もしあなたが急にAndroidアプリを業務で作るはめになった場合の選択肢(2021年初頭版) - Qiita
  • 本番環境でやらかしちゃった人のカレンダー | Advent Calendar 2020 - Qiita

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

    本番環境でやらかしちゃった人のカレンダー | Advent Calendar 2020 - Qiita
    shikiarai
    shikiarai 2020/11/26
    今年も来たか……笑いながら吐き気を催せるネタがね
  • 僕「PDFとは何か知りたい」 - Qiita

    追記情報 - (2020/11/7 18:30) @scivola さんのコメントに基づき、 ラスタースキャン、 ベクタースキャン、 ブラウン管 の説明を追加しました。 TL;DR PDFについて次のような内容を(私の好奇心の赴くままに)調べたので共有したいと思います。 「PostScript」とは? 高速ロードの仕組み フォント埋め込み 「PDFってどんなファイルなんだろう」 PDFを使ったこと無い人はいないと思います。 それほど、PDFは身近な存在となる一方で、その仕組みについて触れる機会はほとんどないと言っても過言ではないです。 何百ページにも渡るPDFで開いた時、ページ移動したときに、パッと表示されたりしますよね。 あれってなんでか知っていますか? 私はもちろん知りませんでした。 たまたま仕事PDFをあれこれいじるにあたって、仕様がわかってないこともあり、なかなかうまくいかず

    僕「PDFとは何か知りたい」 - Qiita
    shikiarai
    shikiarai 2020/11/07
    PDFは学ぶ分には良いけど実装してと言われると途端に嫌になる。
  • Pythonのオブジェクト指向プログラミングを完全理解 - Qiita

    1. オブジェクト指向の起源 2003年チューリング賞の受賞者アラン・ケイさんはよくオブジェクト指向プログラミングの父と称されます。ご人も憚ることなく、幾度、公の場で発明権を宣言しています。しかし、ケイさんは「C++」や「Java」などの現代のオブジェクト指向言語を蔑ろにしています。これらの言語は「Simula 67」という言語を受け継いだもので、私が作った「Smalltalk」と関係ないのだとケイさんは考えています。 オブジェクト指向という名称は確かにアラン・ケイさんに由来するものです。しかし、C++Javaで使われている現代のオブジェクト指向は当初のと結構違います。ケイさん自身もこれらの言語を後継者として認めないです。では、ケイさん曰くC++Javaの親であるSimula 67という言語はどんな言語でしょうか。ここで、簡単なサンプルコードを見てみましょう。 Class Recta

    Pythonのオブジェクト指向プログラミングを完全理解 - Qiita
  • テーブル設計を遅らせることでユーザー体験の最大化を狙える!?米国式最新開発手法「ADD」とは。。 - Qiita

    初めまして、記事に訪問いただきありがとうございますm(_ _)m 今までのプロジェクトでありがちな言い訳。。。 今からこの仕様変更をすると「テーブル設計」に影響が出るので工数がとてもかかります 今からこの仕様変更をすると「テーブル設計」に影響が出るので工数がとてもかかります 今からこの仕様変更をすると「テーブル設計」に影響が出るので工数がとてもかかります 今からこの仕様変更をすると「テーブル設計」に影響が出るので工数がとてもかかります 今からこの仕様変更をすると「テーブル設計」に影響が出るので工数がとてもかかります なんでこんなことが起こってしまうのか もう15年も前になるPOA vs DOA論争の結果、データ整合性のためにテーブル設計を一番初めに済ませることが一般的になりました。 【初級】ゼロから学ぶDOA 第1回 ですがこのやり方では実際の画面の動きをお客様が見る前に仕様を決めて、 そ

    テーブル設計を遅らせることでユーザー体験の最大化を狙える!?米国式最新開発手法「ADD」とは。。 - Qiita
    shikiarai
    shikiarai 2020/10/26
    ちゃんとデータ中心設計になってたら工数増はコーディング規約の問題な気がする
  • 「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita

    はじめに 先日ツイッターで見かけた呟き pic.twitter.com/33Yk02hu1U — TOMO (@tomozh) October 14, 2020 そういうこともあるのか的な反応もあるようなので具体例を挙げてみることにする。 例1 所謂FizzBuzz問題。 #include <stdio.h> void fizzbuzz(int n) { int next; int i = 1; do { printf(i % 15 ? i % 5 ? i % 3 ? "%d\n" : "Fizz\n" : "Buzz\n" : "FizzBuzz\n", i); if (i++ >= n) next = 0; } while (next); } int main(void) { printf((char[]){""}); // この位置にprintfが無いとなぜか動かない fizzbuz

    「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
    shikiarai
    shikiarai 2020/10/20
    たまによくわからない呪文が唱えられるC言語
  • エンジニアなら知っておきたい生産性を爆上げするツール8選 - Qiita

    はじめに 今まで自分が使ってきた中で、これは生産性が爆上げする!と思うものを厳選しました 是非最後までご覧ください 1. Biscuit 公式サイト -> Biscuit 複数のアプリをグループ分けしたり、まとめることができるアプリケーション 調べ物が多いエンジニアは、Chromeのタブがカオスになっていることがよくあります 個人的にはあれこれなんでも登録するのではなく、よく使うアプリだけをまとめるのが良いかなと思っています 設定のインポートやエクスポートも簡単なので、別のPCへの移行も楽チン 僕のBiscuitはこんな感じです⬇︎ 2. Notion 公式サイト -> Notion 結論から言うと、私はNotionがないとダメな体になっています 出会いは2020年の2月頃、メモ帳よりも自由度が高くて何か良いものはないだろうかと模索していた頃にジャストフィットしました 単純なメモも取れる、

    エンジニアなら知っておきたい生産性を爆上げするツール8選 - Qiita
    shikiarai
    shikiarai 2020/10/17
    Macじゃないから絶妙に響かなかった。
  • なぜ我々は頑なにforを避けるのか - Qiita

    動機 前回の記事を投稿したことを某SNSで通知したところ、そのSNSでこんなコメントをいただいた。転記する許可を取ったわけでは無いので私なりに要約させていただくと、 なぜそんなトリッキーな書き方をしてまでforを使うのを避けるのか そんな書き方をして可読性を下げるくらいなら素直にforを使う方が良い ということだと理解している。 なるほど、一理ありそうだ。しかし一方で、前回貼ったStackOverflowのQ&Aはなかなかの人気記事(質問に1243ポイント、回答に最大で1559ポイント)なので「多少トリッキーなことをしてでもforを書きたくない!!」という意見をもつプログラマも一定以上いるのだろう。当然私もその1人だ。 ということで、この記事で「なぜそこまで意固地になってまでforを書きたくないのか」を説明することにする。 尚、今回は前回の記事つながりで言語はJavaScriptを使うが、

    なぜ我々は頑なにforを避けるのか - Qiita
    shikiarai
    shikiarai 2020/09/24
    forとwhileは書き方までほぼ固定されてるけどforeachは言語によって微妙に書き方バラバラだから読む分には良いけど書く分にはスプーン一杯だけの心の余裕が必要になる
  • あなたがまだ使っていないかもしれないHTML5の便利機能10選 - Qiita

    こんにちは、たかとーです🧑‍🎤 こちらは、10 useful HTML5 features, you may not be usingの翻訳記事になります。 当記事は、Tapasさんの許可を得て翻訳しています。Tweet 10 useful HTML5 features, you may not be using HTML5は新しいものではありません。最初のリリース(2008年1月)以来いくつかの機能を使用してきました。100DaysOfCodeの取り組みの一環として、HTML5の機能リストをもう一度よく見てみました。何か見つけたかな?私は今のところあまり使っていません。 この記事では、過去にあまり使ったことがなかったが、今では便利になったHTML5の機能を10個挙げています。また、Netlifyホストされている、実際に動作する例を作成しました。参考になることを願っています。 htt

    あなたがまだ使っていないかもしれないHTML5の便利機能10選 - Qiita
    shikiarai
    shikiarai 2020/09/23
    もう12年も使ってるから知ってるっちゃあ知ってる。仕事では使ってないな……
  • フルスタックエンジニアになるためのモダンな8つのプロジェクト - Qiita

    こんにちは、たかとーです。 今日は8 Projects with modern designs to become a Full-stack Master 2020の日語訳記事です! *当記事は、Thuさんの許可を得て翻訳しています。 ブログでも読めます! 8 Projects with modern designs to become a Full-stack Master 自分のスキルを磨くためのプロジェクトを探していますか?新しいアイデアを思いつくのに行き詰っていませんか? 開発者として、私たちはコードを書くのが大好きですが、デザインやアイデアを見つけるのが難しいことがあります。 こんにちは、Thuです。ここ数ヶ月、私はデザインや要件を含む8つの実在するプロジェクトの作成に取り組んできました。 私は、あなたがスーパースターなフルスタックデベロッパーになるために必要な全てのスキルを鍛

    フルスタックエンジニアになるためのモダンな8つのプロジェクト - Qiita
    shikiarai
    shikiarai 2020/09/19
    フルスタックの定義をしてこい
  • 旧石器時代のポインタをご利用の皆様へ ~provenance入門~ - Qiita

    現代のプログラミング言語ではポインタは単なるアドレスではなく,provenanceを伴った参照として扱われています. 世界は既に変わっています. 概要 ポインタは単なるアドレスではありません. ポインタにはprovenanceという,どのオブジェクト由来かの情報が含まれています. Provenanceを使うことで,最適化が効きやすくなったり,堅牢なプログラムを書きやすくなったりします. 追記: 次の英語記事を読むとprovenanceが必要な理由についてもっとよく知ることができます.クリックしよう!!!!(2020-12-15) https://www.ralfj.de/blog/2020/12/14/provenance.html ポインタはアドレスではない 次のCプログラムを見てみましょう. #include <stdio.h> #include <string.h> int main

    旧石器時代のポインタをご利用の皆様へ ~provenance入門~ - Qiita
  • 機械学習で競馬の回収率100%超えを達成した話 - Qiita

    はじめに みなさん競馬はお好きでしょうか? 私は今年から始めた初心者なのですが、様々な情報をかき集めて予想して当てるのは当に楽しいですね! 最初は予想するだけで楽しかったのですが、『負けたくない』という欲が溢れ出てきてしましました。 そこで、なんか勝てる美味しい方法はないかな〜とネットサーフィンしていたところ、機械学習を用いた競馬予想というのが面白そうだったので、勉強がてら挑戦してみることにしました。 目標 競馬の還元率は70~80%程度らしいので、適当に買っていれば回収率もこのへんに収束しそうです。 なのでとりあえず、出走前に得られるデータを使って、回収率100パーセント以上を目指したいと思います! 設定を決める 一概に競馬予測するといっても、単純に順位を予測するのか、はたまたオッズを考えて賭け方を最適化するのかなど色々とあると思います。また、買う馬券もいろいろな種類があります。 今回

    機械学習で競馬の回収率100%超えを達成した話 - Qiita
    shikiarai
    shikiarai 2020/09/04
    お馬さんにはちゃんと実力もあるし競馬場によって得手不得手もあると示されただけで満足ですかね
  • Self-Attentionを全面的に使った新時代の画像認識モデルを解説! - Qiita

    08/31 (2020): 投稿 08/31 (2020): 「畳み込みを一切使わない」という記述に関して、ご指摘を受けましたので追記いたしました。線形変換においては「チャネル間の加重和である1x1畳み込み」を実装では用いています。 08/31 (2020): 論文で提案されているモデルの呼称に関して認識が誤っていたためタイトルおよび文章を一部修正しました。 言葉足らずの部分や勘違いをしている部分があるかと思いますが、ご指摘等をいただけますと大変ありがたいです。よろしくお願いします!(ツイッター:@omiita_atiimo) 近年の自然言語処理のブレイクスルーに大きく貢献したものといえば、やはりTransformerだと思います。そこからさらにBERTが生まれ、自然言語の認識能力などを測るGLUE Benchmarkではもはや人間が13位(2020/08現在)にまで落ちてしまっているほ

    Self-Attentionを全面的に使った新時代の画像認識モデルを解説! - Qiita
    shikiarai
    shikiarai 2020/08/31
    忙しい人向けだけ見てほんとか〜?って懐疑的な目で見て終わった
  • 開発体験を変える! Chrome DevTools Tips 7選 - Qiita

    最近Chrome DevToolsについて調べていて発見した便利機能を紹介します。 誰もが使える最高便利な開発マシンChrome DevToolsを使いこなして開発体験を変えましょう! 1. $0で選択中のDOM要素の取得 特定の要素に何かしたいという時には、要素のIDやclassを確認してConsoleでdocument.querySelector("#xxx")で取得するというのが一般的だと思います。実はそれはカーソル選択と$0で代替できます。 Classや、IDがついていない特定のDOMを取得したい時とかにも使えるので地味に便利です。 手順 カーソルで取得したい要素を選ぶ Consoleタブで$0を入力 最近知ったChrome DevToolsの便利機能① $0 での選択中のDOM要素取得 Elementsタブで選択状態のDOM要素は、Console上で $0 を入力することで取得で

    開発体験を変える! Chrome DevTools Tips 7選 - Qiita
    shikiarai
    shikiarai 2020/08/18
    もうずーっとフロント書いてない
  • ネット麻雀(雀魂)をOpenCVと機械学習で自動化した話 - Qiita

    概要 pythonからOpenCVのテンプレートマッチ及びGUI操作モジュールを使うことで、 webブラウザ上の麻雀牌をBOTに認識・クリック操作させることができ、プレイの自動化ができました。 また、どの麻雀牌をクリックするかのロジック部分には機械学習を用いました。 テンプレートマッチの探索用画像を差し替えれば雀魂に限らず他の麻雀ゲーム全般で利用可能であり、機械学習の部分を変えれば、特定条件下で合理的選択を繰り返し求められるようなゲーム全般で応用が可能です。 ※内容理解の一助とするために記事内随所に雀魂のゲーム内画像を利用していますが、著作権保護等の観点から強いボカシを入れています。 対象読者 (麻雀が好きで)機械学習を触ってみたい人 WindowsGUI操作の自動化に興味があるけどOpenCVって何だろうって人 雀魂は好きだけど試練イベント走るのがマジ試練すぎて心が折れた人 過去に大学

    ネット麻雀(雀魂)をOpenCVと機械学習で自動化した話 - Qiita
    shikiarai
    shikiarai 2020/08/14
    参考にしておく。作らないけど。
  • レガシーエンジニアによるDocker入門 - Qiita

    初めに この記事は技術進化が5年前くらいで止まっている環境で働く私が、モダンな技術に触れる為に学習したことを記録したものです。 暇潰しに読んでいただければ幸いです 記事では、 Windows10 Home + WSL2の環境に、Dockerをインストール Golang + GitがインストールされているコンテナをDockerfileで立ち上げる VSCodeからコンテナに接続してHello World の3つを行います。 Dockerとは? DockerOracleVM等と同様、仮想環境を提供するソフトウェアです。OracleVMのようにOS全体を仮想化せず、OSの一部とアプリケーションの実行環境をまとめたコンテナと呼ばれる仮想環境を提供します。 コンテナはDockerfileというテキストファイルを元に作成され、Dockerfileが同一であれば、どのOSでも同一の環境を作ることがで

    レガシーエンジニアによるDocker入門 - Qiita
    shikiarai
    shikiarai 2020/08/11
    追いついた気になろ……
  • なぜ大学生はプログラミングが上達しないのか - Qiita

    はじめに 最近、情報系の大学でプログラミングの勉強をしたのに、プログラムが書けない人が結構いるというご意見を拝見しました。 実際、私の友人を何人か思い浮かべてみてもほとんどの人が簡単な計算程度のプログラムしか書けないと思います。 しかし、ほとんどの学生がエンジニア志望なのです。 人事の方で、授業でのプログラミング経験などをアピールされて採用したのに蓋を開けてみたら全然プログラムが書けなかった!という方もいらっしゃるのではないでしょうか? なぜ大学生はプログラミングが上達しないのか?私の経験を踏まえて考察していきたいと思います。 ※あくまで私の経験をもとに客観的に分析した結果です。大学の在り方を否定しているわけではありません。 1. 講義時間が少ない 大学の講義は半期に渡り90分 × 15回行われます。 つまり、一つの講義ではトータルで22.5時間しか勉強しないのです。 さらに、基的に授業

    なぜ大学生はプログラミングが上達しないのか - Qiita
    shikiarai
    shikiarai 2020/08/11
    プロのちゃんとしたコードを見た事がない。見るのはいつも「弊社は豊富な実績が〜!」と言ってきたベンダの営業の言葉を鵜呑みにしてアウトソーシングした結果帰ってくるベンダの新人が書いたコードばかり。
  • 本当にあったやらかしDB設計シリーズ一覧 - Qiita

    当にあったやらかしDB設計シリーズをまとめてみました SQLアンチパターンで書かれているほど高尚な問題ではなく、もっと初歩的な、でもありがちな問題を取り上げています 初心者を脱出したと思っている人に是非読んでもらい、正しく設計してもらうことを目的としています もしここに載っていないパターンを経験したことのある方がいたら是非教えてください 当にあったやらかしDB設計①【R無しRDB当にあったやらかしDB設計②【囚人番号テーブル】 当にあったやらかしDB設計③【ロジカルクエリー】 当にあったやらかしDB設計④【テストチューニング】 当にあったやらかしDB設計⑤【第三正規化病】 当にあったやらかしDB設計⑥【見えない削除フラグ】 当にあったやらかしDB設計⑦【ステートフルDB当にあったやらかしDB設計⑧【ファンクションDB当にあったやらかしDB設計⑨【文字列日付】

    本当にあったやらかしDB設計シリーズ一覧 - Qiita
    shikiarai
    shikiarai 2020/08/10
    第一正規形くらいなら外部キー良いんだけど、一体第n正規形なんだ……みたいな正規化をされた上で外部キーバリバリ張ってあるとデータ払い出しの時に泣きそうになる。どっちにしろ開発部隊のエゴを押し付けられるが