タグ

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

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

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

    管理者用初期化URLを踏んでWebサービスのデータをふっとばした話 - Qiita
    yyamano
    yyamano 2020/12/08
  • NetBSDを手探りで移植したときの話 - Qiita

    この記事は自作OS Advent Calendar 2020 7日目の記事となります。 はじめに 現在のオープンソースOSは、たとえばLinux開発ボードであればボードベンダーから移植済みのLinux環境が提供されたり、たとえばNetBSDであればクロスコンパイル環境が整備済みでドキュメントも用意されていて、最低限の移植作業で移植が完了したりします。 ぼくがNetBSDを移植した当時(1993年)はそうではありませんでした。ドキュメントもなくいろいろ手探りで、それも一人でやらざるを得ませんでした。苦労話のことは置いておいて、技術的にどういう物が用意され何を調べてどういう手順で移植していったかを記録に残せればと思います。(って前置きした割に苦労話が多いような気がします、すみません) かなり昔の話なので、けっこう忘れてることも多く、微妙に記憶が間違っていたりすることも、順番が前後していることも

    NetBSDを手探りで移植したときの話 - Qiita
    yyamano
    yyamano 2020/12/08
  • 新しい Spring Authorization Server について - Qiita

    はじめに Spring Security プロジェクトは、認可サーバーの実装を今後サポートしない旨、2019 年 11 月 14 日付の『Spring Security OAuth 2.0 Roadmap Update』でアナウンスしました。しかしその後、一部の有志が Spring の認可サーバー実装プロジェクト『Spring Authorization Server』を開始しました。この記事は、そのプロジェクトに対する警鐘となります。 OAuth 2.0 Multiple Response Type Encoding Practices 2012 年 10 月の RFC 6749(The OAuth 2.0 Authorization Framework)のリリースから 1 年 4 ヶ月後の 2014 年 2 月、OAuth 2.0 Multiple Response Type Enco

    新しい Spring Authorization Server について - Qiita
    yyamano
    yyamano 2020/12/04
    “何年も前に明らかになっている問題点を繰り返していること、ソースコードの読みにくさ、認可画面の HTML を OAuth2AuthorizationEndpointFilter.java にハードコーディングするセンス、そもそも認可エンドポイントでの処理を『フ
  • bundle install時に--path vendor/bundleを付ける必要性は本当にあるのか、もう一度よく考えてみよう - Qiita

    bundle install時に--path vendor/bundleを付ける必要性は当にあるのか、もう一度よく考えてみようRubyRailsBundler TL; DR(最初に結論) bundle installをする場合は--path vendor/bundleを付けてプロジェクトごとにgemを管理しろ、という意見をよく見かける。 しかし、pathを指定しないと問題が起きる可能性があるのは、かなり特殊な条件下に限られる(100人いたら100人全員が遭遇するような問題ではない)。 よって、--path vendor/bundleのオプションは、付けたい人が付ければよいだけで、開発者全員に強制するようなルールではない、と筆者は考える。 はじめに bundle installコマンドを実行するとき、Ruby界に大きく分けて2つの流派があります。それは「--path vendor/bund

    bundle install時に--path vendor/bundleを付ける必要性は本当にあるのか、もう一度よく考えてみよう - Qiita
    yyamano
    yyamano 2020/12/02
  • PyAutoGuiで繰り返し作業をPythonにやらせよう - Qiita

    はじめに PythonGUI自動化モジュールPyAutoGuiがいろいろ使えそうな気がしてみたので試してみた (2018/11/26 opencv_pythonモジュールが使える場合に限り、閾値(confidence)が使える話を追加) (2019/06/05 Python 3.7 での動作確認を実施、同じ手順で動作することを確認) (2019/08/09 try ~ except ImageNotFoundException を使えるようにする) (2020/11/04 Python 3.9 ではPyAutoGUIは動作しないことを確認、3.8で一旦様子見しましょう) (2021/01/04 Python 3.9 での動作を確認しました、注意点といてWindows上での実行では文字コードの指定を厳格に指定する必要があるようです。) PyAutoGui https://pyautogui

    PyAutoGuiで繰り返し作業をPythonにやらせよう - Qiita
    yyamano
    yyamano 2020/11/27
  • ゼロトラスト的なことを始める時に注意すべきだと思ったこと - Qiita

    自社内でゼロトラスト的な取り組みを行っていますが、設計や選定の時に注意すべきと感じたことを書きたいと思います。実際やってみてどうだったかも簡単に書きたいと思います。実は2020年10月28日の Akamai Gaming Leadership Summit でウェビナー登壇させて頂いた時の資料です。せっかくスライドを作ったので少し補足も加えつつ公開してみました。スライドは下記にもアップロードしてあります。 スライド版 https://www.slideshare.net/ssuser8200d3/ss-239010449 補足 どこかしらで信頼するのと、などを読むと何故かゴチャゴチャしているため。 補足 上記はあくまで危ないと思う一例です。他にもPolicyで評価されない攻撃リクエストがEnterprise Resourceに届いてしまう実装パターンはあるかもしれません。実際に出会ったこ

    ゼロトラスト的なことを始める時に注意すべきだと思ったこと - Qiita
    yyamano
    yyamano 2020/11/02
  • 【AWS/GCP/VPC】2020年07月17日時点でVPC設計する時に気をつけること - Qiita

    現時点でVPC設計する時に注意したいことをいろんな資料を見ながら書いていこうと思います。 重要項目 単一もしくは複数? サブネットはAZ毎、ルーティング、管理特性で分離する パブリックサブネットは最低限にとどめる VPCのレンジはMediumくらいでどうでしょう?(自信ない。。。。) デフォルトネットワークを使用しない 明確な命名規則を使用する 注意事項 一度作成したVPCとサブネットはリサイズする事はできない 1つのサブネットが複数のAZをまたがることはできない 単一もしくは複数? アカウントとVPC、それぞれが単一なのか、それとも複数なのかを確認します 複数のVPCを使用する場合は、VPC ピアリング接続なども検討に入り、使うサービスが若干変わってきたりするためです。 上記で書いているアカウントの概念は、GCPだとプロジェクトになりますかかね。 いまさら、AWSのネットワーク設計 VP

    【AWS/GCP/VPC】2020年07月17日時点でVPC設計する時に気をつけること - Qiita
    yyamano
    yyamano 2020/10/08
  • Identity Assurance - eKYC 時代の OpenID Connect - Qiita

    はじめに 2018 年 11 月 30 日に『犯罪による収益の移転防止に関する法律』(犯罪収益移転防止法/犯収法)を改正する命令が公表されました。この改正で「オンラインで完結する自然人の人特定事項の確認方法の追加」が行われ、eKYC(electronic Know Your Customer)の根拠法となりました。 そして、当改正から約一年後の 2019 年 11 月 11 日、世界標準仕様策定団体である OpenID Foundation から『OpenID Connect for Identity Assurance 1.0』という技術仕様の第一版が公開されました。また、これを受けて同団体内に新たに『eKYC and Identity Assurance ワーキンググループ』が設置されました。それから約半年後の 2020 年 5 月 19 日には、同仕様の第二版が公開されました。 犯

    Identity Assurance - eKYC 時代の OpenID Connect - Qiita
    yyamano
    yyamano 2020/09/28
  • 旧石器時代のポインタをご利用の皆様へ ~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
    yyamano
    yyamano 2020/09/07
  • Promiseをthrowするのはなぜ天才的デザインなのか - Qiita

    ReactのConcurrent Modeが最初に発表されたのはもう1年近くも前のことです(記事執筆時点1)。Concurrent Modeはたいへん奥深い機能で正式版がたいへん待ち遠しいですが、Concurrent Modeの代名詞として多くのReactユーザーに知られているのはPromiseをthrowするというAPIデザインです。Concurrent Modeでは、コンポーネントがレンダリング時にPromiseをthrowすることで、レンダリングをサスペンドした(Promiseが解決されるまでレンダリングできない)ことを表します。 Concurrent Modeに関しては筆者の既存記事Concurrent Mode時代のReact設計論 (1) Concurrent Modeにおける非同期処理などをご参照いただきたいのですが、ここではPromiseをthrowするということ自体に焦点

    Promiseをthrowするのはなぜ天才的デザインなのか - Qiita
    yyamano
    yyamano 2020/09/02
  • 日頃お世話になっているElectronのアプリ開発に入門してみる - Qiita

    はじめに ここ1~2年ほど,自分はElectron製のアプリにかなりお世話になっています.こちらでも紹介したのですが,特にVisual Studio Codeと出会えなかったら今ほど楽しくコードが書けていないかもしれません.これほどお世話になっている技術なので,自分でもElectronでアプリを作ることに挑戦してみようと思います. 実際に作ったアプリ このような感じのテキストエディタを作りました.このゴールに向けて順にまとめていきます. Electronとは? はじめにElectronについて簡単に説明しておきます. ElectronとはWindows / macOS / Linuxとマルチプラットフォームで動かすことができるデスクトップアプリを開発することができるフレームワークです.HTML + CSS + JavaScriptといったWeb開発の技術を使って開発できるのが特徴です.Gi

    日頃お世話になっているElectronのアプリ開発に入門してみる - Qiita
    yyamano
    yyamano 2020/09/01
  • GraalVMでRubyはシングルバイナリの夢を見るのか? - Qiita

    $ jrubyc HelloWorld.rb $ native-image -cp jruby.jar:. HelloWorld Build on Server(pid: 12, port: 26681) classlist: 6,942.97 ms error: Main entry point class 'HelloWorld' not found. どうやらクラスパスの通し方がダメっぽいです。と言う訳で別の方法を試します。 jar-bootstrap.rbを試してみる またまた最初に書きますがこの方法では現在は動きません。なので読み飛ばしても問題ないです。 native-imageは一般的にはfat-jarと呼ばれる単体で起動するJARファイルに変換して実施するのが普通です。 なので、今回もその方法を試してみます。JRubyでの実行可能JARの作り方で一般的なjar-bootstr

    GraalVMでRubyはシングルバイナリの夢を見るのか? - Qiita
    yyamano
    yyamano 2020/09/01
  • Jbuilder (Dune) でもっと楽に OCaml プロジェクトを作る - Qiita

    これは ML Advent Calendar 2017 の 18日目の記事です (ずいぶん遅れました). 前回の記事 では Oasis について紹介しましたが,Jbuilder (Dune という名前に変わります) のほうがもっと楽だったので反省しつつ紹介します. 名前にセンスがないとか S式やだとか思ってしまいますが実際これは圧倒的に良いツールです. 今後は基的には Jbuilder を使っていけばよい気がします(名前が変わるみたいですが…). 基的には公式のマニュアルを見れば使えるのですが,public_name や <package>.opam についてはやや記述が散逸している感じなので適宜補足します.また,名前空間の衝突を避けるために Jbuilder が行う -pack ライクな動作についても少し書きます. よい点 自動的な依存解析,簡潔な設定ファイル.OASIS と違って、

    Jbuilder (Dune) でもっと楽に OCaml プロジェクトを作る - Qiita
    yyamano
    yyamano 2020/08/29
  • Encrypted SNIの効果と韓国でのブロッキングの回避方法について - Qiita

    はじめに 以前の記事DNS over HTTPSの必要性についてで触れたEncrypted SNIについて、その有効性と現在韓国で行われているSNIフィールドを利用したブロッキングを回避する方法についての説明です。 Encrypted SNIとは Encrypted SNIは、現在広く使われているTLS1.2以下のハンドシェイク時、接続したいドメインが「平文」で流れ、盗聴による接続先の推測やブロッキングが行われてしまうという問題を解決するための手法です。Encrypted SNIの手法については当初の案と現在Cloudflare社がサービスを運用している案で大きく異なるため、簡単に説明します。 トンネリング方式 TLS接続時に、まず中継サーバへTLS接続し、そのTLSコネクションの中で目的のドメインまでTLS接続を行う方式です。"TLS in TLS"と呼ばれています。 TLS 1.3 E

    Encrypted SNIの効果と韓国でのブロッキングの回避方法について - Qiita
    yyamano
    yyamano 2020/08/12
  • OAuth アクセストークンの実装に関する考察 - Qiita

    はじめに この記事では、OAuth 2.0 のアクセストークンの実装に関する考察を行います。記事の執筆者人による動画解説も『OAuth & OIDC 勉強会 【アクセストークン編】』で公開しておりますので、併せてご参照ください。 English version of this article is here → "OAuth Access Token Implementation". 1. アクセストークン実装方法の分類 OAuth のアクセストークン※1の実装方法は認可サーバーの実装依存です。 実装依存ではありますが、RFC 6749 の『1.4. Access Token』にある次の記述が示唆するように、 The token may denote an identifier used to retrieve the authorization information or may

    OAuth アクセストークンの実装に関する考察 - Qiita
    yyamano
    yyamano 2020/08/05
  • EndpointWithProxyのAPIプロキシーをカスタマイズしよう! - Qiita

    はじめに 標準のEndpoint With ProxyのAPIプロキシに、ビルドが必要なカスタムをする機会があり、そこで発生したエラーについて回避方法を説明したいと思います。 セキュアプロパティの追加は直接Jarファイルを編集することで対応できますので、必要な場合にご利用ください。 躓きポイント 標準のEndpoint With ProxyをStudioで編集しデプロイした際に、Runtime Managerで起動すると、MuleのエクステンションのHTTPとProxyの依存関係によりエラーが発生します。解消する方法は暫定的な方法ですがpom.xmlファイルを編集し、依存関係を明示的に解決する必要があります。 Runtime Managerで起動時に発生するエラー Worker(3.22.249.140): Your application has failed with exceptio

    EndpointWithProxyのAPIプロキシーをカスタマイズしよう! - Qiita
    yyamano
    yyamano 2020/08/05
  • MuleSoftの標準ポリシーを利用してBasic認証を要求するバックエンドシステムに接続しよう! - Qiita

    はじめに Basic認証を要求するバックエンドシステムに標準ポリシーを利用して接続する方法を説明します。 標準のポリシーを利用するメリットは、メンテナンス性や保守性の観点で設定のみで対応ことが言えます。 Muleでは様々なポリシーが用意されており、Basic認証はHeader Injectionポリシーを利用することで簡単に設定することができます。 実装ポイントを抑えるためにも共有しておきます。 システム構成図 今回のシステム構成図は以下の通りです。 ヘッダーインジェクションポリシーについて ヘッダーインジェクションポリシーは、メッセージの要求/応答にヘッダーを追加できます。ヘッダー削除ポリシーは、リストされたすべてのヘッダーを削除できます。 ”Header Injection and Removal”公式ヘルプを引用 https://docs.mulesoft.com/api-manag

    MuleSoftの標準ポリシーを利用してBasic認証を要求するバックエンドシステムに接続しよう! - Qiita
    yyamano
    yyamano 2020/08/05
  • Testcontainers で Spring Boot + MyBatis のテスト実行中だけ MySQL のコンテナを起動 - Qiita

    Testcontainers で Spring Boot + MyBatis のテスト実行中だけ MySQL のコンテナを起動JavaJUnitDockerSpringBoottestcontainers はじめに Testcontainers を使用すると、JUnit のテスト中だけ MySQL のコンテナを起動することができます。 SimpleMySQLTest.java というサンプルコードを見ると結構簡単に使えそうですが、Spring Boot + MyBatis で試してみたら結構苦労したので、どうすれば動くかまとめておきます。 まずは普通に Spring Boot + MyBatis を動かす Testcontainers でテストを試す前に、動くコードを書いておきます。 MyBatis のコードを作成 UserRepositoryImpl.java、UserMapper.ja

    Testcontainers で Spring Boot + MyBatis のテスト実行中だけ MySQL のコンテナを起動 - Qiita
    yyamano
    yyamano 2020/08/05
  • AWS Lambda関数を非同期で呼ぶ場合の動きを改めて確める - Qiita

    はじめに 2019年11月から12月5日までに発表されたAWS Lambdaに関する新機能の中で、以下の二つを取りあげて構成方法とテストした結果についてまとめたいと思います。 1. AWS Lambda Supports Destinations for Asynchronous Invocations (非同期呼び出し時の結果出力先を指定できるようになった件) 2. AWS Lambda Now Supports Maximum Event Age and Maximum Retry Attempts for Asynchronous Invocations (非同期呼び出し時でLambda関数内でエラーが発生した場合の最大再試行回数やイベント維持期間を指定できるようになった件) なお、 Maximum Event Ageは後日追記するか別途作成します(時間切れ)。 サマリ 非同期呼び出

    AWS Lambda関数を非同期で呼ぶ場合の動きを改めて確める - Qiita
    yyamano
    yyamano 2020/08/01
  • そのLambdaの実行…同期?非同期? - Qiita

    はじめに AWSでサーバレスアーキテクチャ構築しようとなったときに欠かせないのが AWSLambda ですよね。 基的に他のサービスからのイベントでinvokeすることが多いと思いますが、その際 同期呼び出し でinvokeされるのか、 非同期呼び出し でinvokeされるのかを気にしたことはありますか? 今回は今更ではありますが、Lambdaがinvokeされるイベントが同期なのか、非同期なのかをまとめていこうと思います。 そもそも 同期 / 非同期 で、どんな違いがあるのでしょうか? 同期呼び出し 同期呼び出しの場合は直接Lambdaを 1回 実行します。 Lambdaが実行され、処理が完了してからレスポンスが返ってきます。 非同期呼び出し 非同期呼び出しの場合はLambdaを直接実行するわけではなく、キューイングされた後実行されます。 Lambdaの呼び出しに失敗した場合は自動的に

    そのLambdaの実行…同期?非同期? - Qiita
    yyamano
    yyamano 2020/08/01