タグ

ブックマーク / qiita.com (1,244)

  • Private Cloudって言うな! 混迷を極める「会社専用クラウド環境」を分類して見た - Qiita

    はじめに Qiita見られてる人はAWSGCPと言ったパブリッククラウドを普段使われる人が大半かと思います。 しかし、業界によっては「クラウド使いたいけどパブリックはなぁ」と(説明)コストやしがらみでなってしまう企業も多いと思います。 そんな中で魅惑のワードが「プライベートクラウド」。 これは簡単に言ってしまえば「クラウド技術を使って企業向けの専用環境を持てる」と言うものです。 クラウド使いたいけど、他者との環境共有はなぁって思ってた所に最適です! が、ここに大きな落とし穴が。 それは単純に各企業が言う「プライベートクラウド」がそれぞれ異なる意味を持ってるからです。「パブリッククラウドでは無い」と言うくらいしか共通の定義が無くNoSQL並みに曖昧な言葉なんです。 例えばIBMが言うPrivate CloudとOracleの言うPrivate Cloudは全く異なり、それぞれメリデメも違い

    Private Cloudって言うな! 混迷を極める「会社専用クラウド環境」を分類して見た - Qiita
  • RubyのHTTPリクエストをできるだけシンプルに実装する - Qiita

    背景 Rubyの標準ライブラリであるnet/httpを用いたHTTPリクエストって、Net::HTTP.newしたりNet::HTTP::Get.newしたりhttp.start {...}したり色々と実装が面倒臭いなとずっと思っていたんですが、実は1行で書けることを知ったので open-uri との比較も含めて少しまとめてみました。 環境 Ruby 2.6.0 目次 一番シンプルな方法 リクエストヘッダを指定する方法 Basic認証を使う方法 Proxyを挟む方法 open-uri を使う方法 一番シンプルな方法 GET require "net/http" uri = URI.parse("https://jsonplaceholder.typicode.com/todos/1") response = Net::HTTP.get_response(uri) response.code

    RubyのHTTPリクエストをできるだけシンプルに実装する - Qiita
  • fzfを活用してTerminalの作業効率を高める

    はじめに 今回は作業効率化をすすめるにあたって有用なfzfの利用例を紹介したいと思います。 似たようなものでpecoというのもありますが、fzfの記事が少ないと思うので、今回はfzfについて書いていきたいと思います! (あとfzfはVimでも使えるようにサポートされているので、Vimmerの方はpecoよりもfzfかなということもあり…。) fzfとは fzf https://github.com/junegunn/fzf fzfとはCLIでインクリメンタルに曖昧な検索が可能になるGO言語製のツールです。 標準出力をパイプでfzfコマンドで渡すだけで、標準出力の内容を対象に検索できます。 上部の入力箇所でインクリメンタル曖昧検索しながら、(CLIとしては慣れ親しんだキーバインドの)Ctrl-n,Ctrl-pで下部のリストから選択することができます。 (もちろんカーソルキーでもOK) 最初は

    fzfを活用してTerminalの作業効率を高める
  • ケリー基準 ~最適ベッティング戦略について考えよう~ - Qiita

    原文 今回はこちらの論文(The Kelly Criterion: Implementation, Simulation and Backtest, Niels Wesselhofft)の読書感想文を書いていきたいと思います。 私自身の知識の整理と皆さんの参考になれば幸いです。 あくまでも読書感想文であるため、あくまで参考までにお願い致します。 また、原文の誤植や計算ミスが多かったのですが、そちらはこちらで出来る限り訂正させていただいております。 また、この記事が与える如何なる結果に対しても責任は持ちませんので、ご容赦くださいませ。 専門家からの意見もお待ちしておりますので、どんどんコメントして下さると幸いです。 概要(この論文の主旨) この論文では、ポートフォリオ理論で広く使用される平均分散アプローチ以外で、ケリー基準によるアプローチを検証します。主にシミュレーション研究および経験に基づ

    ケリー基準 ~最適ベッティング戦略について考えよう~ - Qiita
  • Terraformのstate操作をgitにコミットしたくてtfmigrateというツールを書いた - Qiita

    はじめに Terraform職人のみなさんは無限に「ぼくのかんがえたさいきょうのディレクトリ構成」についてメリデメを議論していますが、未だに銀の弾丸のようなベストプラクティスは見つかっていないようです。なぜでしょう? それは最適解がサービスの規模、組織の構造、メンバーのスキルなどいろいろな変数に依存しているからです。さらに悩ましいことに、これらの要因は固定ではなく変化するので、ある時点での最適解が時間の経過とともに現状にうまくマッチしなくなり、いわゆる技術的負債になったりします。つらい。 個人的な解釈では、組織の成熟度に合わせてモジュールを細かく切っていく方向に徐々に向かっていくというような傾向があるようには思いますが、組織のフェーズによってうつりかわるものなので、唯一の最適解というものはそもそも存在しないのです。そんなこんなで、最近の私の関心事は、理想と現実がずれてきたときに、どうやった

    Terraformのstate操作をgitにコミットしたくてtfmigrateというツールを書いた - Qiita
  • 旧石器時代のポインタをご利用の皆様へ ~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
    a2ikm
    a2ikm 2020/09/07
    “ポインタは単なるアドレスではありません. ポインタにはprovenanceという,どのオブジェクト由来かの情報が含まれています.”
  • ハイパーバイザを作ってみた - Qiita

    仮想マシンがどのように実現されているか気になったので、勉強がてら簡単なハイパーバイザを作ってみました。ソースコードはGitHubで公開しています。 方針 RaspberryPi3で動作するAArch64向けのType-1(ベアメタル)ハイパーバイザを作ることにしました。名前は"raspvisor"とします。 スクラッチから作り始める気力はなかったので、なるべく流用できるものは使っていくことにしました。そこで、RaspberryPiのOS開発教材であるRPi OSをハイパーバイザに改造していくことにしました。RPi OSはコード量が少なく読みやすい上、割り込み処理、プロセススケジューラ、ユーザプロセス、システムコール、仮想メモリといった機能が一通り実装されています。OSを改造することにしたのは、プロセス管理や仮想メモリ、割り込み処理といった部分を、ハイパーバイザの実装に流用できそうだと思った

    ハイパーバイザを作ってみた - Qiita
  • 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
  • 最適化コンパイラへのいざない (1) - Qiita

    記事一覧 はじめに(この記事) マルチパスコンパイラ 定数に関する最適化 プログラムの構造 ..... 対象読者 コンパイラの内部構造について興味がある方 コンパイラに関して精通している方(批評お待ちしております) はじめに ある程度コンパイラについての学習が進み,小さな自作言語などを作れるようになると,こんな疑問が浮かぶのではないでしょうか. 「世の中のコンパイラって,こんなのだったっけ?」 コンパイラの作り方が解説されている日語の記事は,最近なら簡単に見つかります.ですが,それらの大半は所謂ワンパスコンパイラの作り方について解説しており,より高度な,具体的には gcc や clang 等の実用的コンパイラが行っている最適化というものについての記述が乏しいです. (もちろん,ドラゴンブックや虎を読めば最適化について書いてありますが,初心者が簡単に手を出せるものではないように思えます.

    最適化コンパイラへのいざない (1) - Qiita
  • 本家Rustコンパイラのソースを読もうとしてみる(1) - Qiita

    はじめに Rust家コンパイラであるrust-lang/rustのソースコードを読んでみたい。巨大なソースを道しるべなしで読んでいくのはだいぶ厳しいのだが、Guide to Rustc Developmentという便利なガイドがあるので、これをベースに見ていこうと思う。最初は記録などを残さずチマチマ読んでいたが、モチベーション向上と後で思い返せるように記録を取る意味で記事として残しておくことにしてみた。 個人的に必要な情報を中心に見ていくため、現時点で興味の薄い部分は読み飛ばしたりもしているので、そのあたりはご了承下さい。また、ソースもドキュメントも日々更新されているため、最新とは異なる可能性があります。読み始めたのが2020年7月くらいからです。 目次 Rustコンパイラのソースを読もうとしてみる(1) rustcのビルド方法、プロジェクト運用、ソースの概観など。 Rust

    本家Rustコンパイラのソースを読もうとしてみる(1) - Qiita
  • GoのGCを10分で学ぼう  - Qiita

    はじめに GoのGC(Garbage Collection)を調べる中で学んだことをなるべく分かりやすく簡潔にまとめたものです。 GCのアルゴリズムやメモリ割り当てについてまとめています。 記事内で使われている「オブジェクト」という用語はGoにおいては適切でないかもしれませんが、説明のしやすさから使用しています。 概要を把握しやすいように単純化しているため細部は正確でない部分があります。 GC基 用語集 前提となる用語です。 ルート ルートとは、オブジェクトが到達可能か(生存しているか)を判定するための始点です。 プログラミング言語にもよりますが、基的にメモリのスタック領域がルートになります。 フラグメンテーション フラグメンテーションとは、使用可能なメモリが断片化し途切れ途切れになっている状態です。 フラグメンテーションになってしまうと、総量的にはメモリが空いていてもアプリケーション

    GoのGCを10分で学ぼう  - Qiita
  • 3分で理解するG1ガベージコレクション - Qiita

    -XX:G1HeapRegionSize=Nフラグを使い自分でサイズを指定することも可能。0はデフォルト値。 Nは2のべき乗である必要があり、それ以外の値が指定された場合は最も近い2のべき乗値へ切り下げられる。 ほとんどの場合、デフォルト値でもOKだが次のようなケースではチューニングを求められる。 例えばヒープの変動幅が大きい場合(-Xms4G -Xmx16G)、デフォルトではリージョンサイズは1MBとなり、ヒープが拡大さるとリージョン個数が16,000個となる。G1GCはリージョン個数が2,048程度を前提に設計されているためGC効率が悪くなる。このようなケースでは上記オプションの指定によりリージョン個数が2,048個前後になるようサイズ調整する。 G1GCのアルゴリズム G1では主に4つの処理が行われる。 young領域へのGC eden空間がいっぱいになるとyoung領域へのGCが発

    3分で理解するG1ガベージコレクション - Qiita
    a2ikm
    a2ikm 2020/07/30
  • 2億資金調達してから二年、結構量子コンピュータ頑張った結果 - Qiita

    はじめに 2008年に起業してからコツコツやっていましたが、2014年くらいから量子コンピュータの研究開発をがんばりました。資金調達もしてある程度技術に目処がついたのと、若者から起業したいという相談をよくもらうので、まとめておきます。 経営は大事 簡単にいうとベンチャーをやろうとしたら技術よりもキャッシュが大事です。なので、財務や経営感覚がついてから技術をつけないと結構大変と思います。特に1年目は慣れない事務に忙殺されますし、二年目以降はキャッシュが厳しくなります。 あとは、最初は経営に夢見て舞い上がりがちなので、その気持ちがおさまって厳しさが一通り身についたところからが番です。 調達の前に譲渡 2008年から10年くらいはコツコツ会社をやっていた上、そんなに頑張るタイプでもなかったのですが、たまたま2014年からやっていた量子コンピュータのニュースが巷で新聞に載るようになってから、周辺

    2億資金調達してから二年、結構量子コンピュータ頑張った結果 - Qiita
  • 【翻訳】RSpecのリードメンテナだけど何か質問ある? - Qiita

    はじめに 先日、Redditでこんな記事が載っていました。 AMA: The authors of "Effective Testing with RSpec 3", Myron Marston and Ian Dees : ruby この記事は書籍「Effective Testing with RSpec 3」の筆者であるMyron Marston氏とIan Dees氏が、書籍に関する質問に何でも答えます、という企画です。 この2人のうち、Myron Marston氏はRSpecの開発者(リードメンテナ)です。 Q&Aを読んでいると、RSpecの開発者ならではの意見だなと思うところがたくさんあり、なかなか興味深い議論になっていました。 というわけで、この記事では先ほどのQ&Aから「これは日Rubyプログラマにも役立ちそう」と思ったやりとりをピックアップして翻訳してみます。 ピックアッ

    【翻訳】RSpecのリードメンテナだけど何か質問ある? - Qiita
    a2ikm
    a2ikm 2020/07/21
  • x86-64プロセッサのスタックを理解する - Qiita

    はじめに x86-64プロセッサにおけるスタックについて記載します。 使用したプロセッサ / OS / gcc / gdbは以下です。 Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz 64bit Ubuntu14.04 64bit gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2 GNU gdb (Ubuntu 7.7-0ubuntu3) 7.7 スタックとは後入れ先出し(LIFO;Last In First Out)方式のデータ保存領域です。 データをスタックに入れる操作をpushといいます。 データをスタックから取り出す操作をpopといいます。 popで取り出すデータは最近pushしたデータです。これがLIFOといわれる理由です。 具体例を示します。最初スタックに61,27,67のデータがあるとします。 push 20するとスタックの

    x86-64プロセッサのスタックを理解する - Qiita
    a2ikm
    a2ikm 2020/07/10
  • golang.org/x/text 配下のパッケージをいくつか紹介する - Qiita

    はじめに 今回は準標準の golang.org/x/text 配下のパッケージを紹介します。 ここではは主に多言語、多locale対応の際の文字列操作をサポートするパッケージが管理されています。 アジア圏などの文字管理に考慮事項が多いlocaleに関してはそれ向けに特化したパッケージなども提供されています。 今日はその中からいくつかのパッケージを紹介したいと思います。 これは Go6 Advent Calendar 2019 の投稿です(ちょっと遅刻しました) golang.org/x/text/number doc: https://golang.org/x/text/number このパッケージは、言語による数値表現の差分を吸収してくれます。 出力の際は同じく準標準のパッケージである https://golang.org/x/text/message をつかって出力できます。 例えば英

    golang.org/x/text 配下のパッケージをいくつか紹介する - Qiita
    a2ikm
    a2ikm 2020/07/08
  • CircleCI 2.0 で PostgreSQL を使う時のチューニング小ネタメモ - Qiita

    CircleCI 2.0 のドキュメントに書かれている小ネタですが、つい最近まで知らず、試してみたので紹介します。 TL;DR データベースディレクトリに tmpfs を使う Docker イメージもあるよ(circleci/postgres:*-ram) tmpfs を使わない版では書き込み性能のチューニングがされているよ 普通の書き込みでは差が出ないみたいだよ CircleCI 曰く tmpfs をマウントしたディレクトリを PostgreSQL のデータベースディレクトリとして利用する事で、テスト実行時間を短縮出来る可能性があります、とのこと。 Optimizing Postgres Images The circleci/postgres Docker image uses regular persistent storage on disk. Using tmpfs may ma

    CircleCI 2.0 で PostgreSQL を使う時のチューニング小ネタメモ - Qiita
  • 二分探索アルゴリズムを一般化 〜 めぐる式二分探索法のススメ 〜 - Qiita

    0. はじめに 二分探索法は単純ながらも効果が大きく印象に残りやすいもので、アルゴリズム学習のスタート地点に彩られた花という感じです。二分探索というと「ソート済み配列の中から目的のものを高速に探索する」アルゴリズムを思い浮かべる方が多いと思います。巨大なサイズのデータを扱う場面の多い現代ではそれだけでも十分実用的ですが、二分探索法はもっとずっと広い適用範囲を持っています。 記事では、二分探索法のエッセンスを抽象化して、適用範囲の広い「二分探索法の一般形」を紹介します。同時に無数にある二分探索の実装方法の中でも「めぐる式二分探索」がバグりにくいと感じているので、紹介したいと思います。 注意 1: 二分探索の計算時間について 二分探索の計算時間について簡単に触れておきたいと思います。例えば「$n$ 個の要素からなるソート済み配列から目的の値を探索する」というよく知られた設定であれば、 単純な

    二分探索アルゴリズムを一般化 〜 めぐる式二分探索法のススメ 〜 - Qiita
    a2ikm
    a2ikm 2020/07/05
    “a[index] >= key という条件を満たす最小の index を見つけたい” その逆についても言及されている。
  • goroutineがスイッチされるタイミング - Qiita

    goroutineがスイッチされるタイミングについて調べていました。 結論 Go言語で、goroutineは 必ずしも スイッチされるわけではない。 スタックに触れないような、「for(){}」みたいなビジーループをGOMAXPROCSの指定数以上に含ませるとスイッチされなくなる。 goroutineがスイッチされる(主な)条件はこれらと思われる。 - goroutineの関数が最適化でinline化されていない - スタックを操作するような処理を行った - (その他の契機もあるようなので「経緯」で書く) 経緯 処理のないビジーループが有ると、goroutineがスイッチされず処理が止まることに気づきました。 # 処理の中身を全部コメントアウトしてデバッグしていたら気づいた package main func busy() { for { } } func main() { go busy

    goroutineがスイッチされるタイミング - Qiita
  • 超!A&G+をFlashではなくHTML5で見られるようにする - Qiita

    みなさまこんにちは。 みなさまは数多くの声優さんが出演される"超!A&G"を見られているでしょうか? こちらが超!A&Gのトップページになります。 そして、視聴ページはこちらになります。 視聴ページがSSL認証してないじゃん! じゃなくて。この視聴ページ、まだFlashを採用しています。 なのでmacOSのSafariじゃ見られないし、ChromeでもわざわざFlashを有効にして見なければなりません。 そんなFlashも2020年末にAdobeが直々サポートを切ると言っています。 では、どうすればいいでしょうか? そんな中、超!A&Gを配信している文化放送さんがこんなアプリを出しています。 これ、中にただのWebViewが入っているだけです。 とっても分かりやすいですね。 では、せっかくなのでAndroid Studioでapkの中身を覗いてみましょう。 表示されているページを探せばいい

    超!A&G+をFlashではなくHTML5で見られるようにする - Qiita
    a2ikm
    a2ikm 2020/06/26