AWS、GCP、OCI(Oracle Cloud Infrastructure)の主なサービス比較 カテゴリ AWS GCP OCI
はじめに ちょっと前に20年物のC言語で作られたシステムのテストを色々改善しようとしてみたので、この時に得たちょっとした知見を書いていこうと思います。 ※注意 記事を書くために自分のパソコンで当時を思い出しながら環境を作っているので、実際、実務でやった環境やバージョンとは違います。 また、この記事にはいくつかコードがでてきますが、すべて記事を書くために考えた疑似的な例にすぎません。 単体テスト用のテストコードの作成 20年も動いているシステムだと、もはや誰にも意味はわからんが、既存の挙動を変えてはいけない箇所がいくつもあります。 そういう箇所に手を入れざるを得ないときに、有効な方法として以下のような方法があります。 まず、既存のコードに対するテストコードを記載します。そして全て合格することを確認してから、少しづつ機能を拡張していきます。 これにより、新規機能追加が既存の機能を壊していないこ
はじめに Pythonの環境構築は僕にとって、戦争でした。 如何せんツールが多すぎます。 インターネットで調べるとざっと挙げるだけで 元から入っているpython3 元から入っているpython3 + venv pyenv pyenv + pyenv-virtualenv pyenv + venv anaconda docker + python docker + anaconda ... 以上のような組み合わせが山程出てきます。 よく最近のゲームのキャラメイキングの 「組み合わせは無限大!」を思い出します。 この記事では、それぞれの環境構築の概念をイラスト画像でまとめようと思います。 環境構築のコマンド自体は取り扱わないためご注意下さい。 追記 2019/11/07 本記事はPython初心者による「概念のみ」に関する説明のため、ベストな環境構築や、すべて正確かつ詳細な内容は含んでないで
2020/3/14 追記 昨年、PureSec も加盟している Cloud Security Alliance の Israel Chapter から、The 12 Most Critical Risks for Serverless Applications 2019 が公開されました。 ※本記事の公開時点で既に TOP12 が最新でした・・・ 本記事で記載している既存の TOP 10 の内容に大きな変更はなさそうですが(SAS-9 は Serverless Business Logic Manipulation に改題)、新たに追加された SAS-11、SAS-12 について本文に追記します。 既存の文章にも差分があるようですので、正確な内容は原文をご参照ください。 追記はここまで イスラエルのセキュリティスタートアップ PureSec による The Ten Most Critica
はじめに なんか某所に面接に来た年収1000万円以上希望のインフラエンジニア候補に、Linuxのどのディストロ使ってるか聞いたら「ディストロってなんですか?」と聞き返して来たという話をきいたのでオラびっくらこいてQiitaに記事書き始めちまったぞ。 使ったことはなくてもいいから名前と特徴くらいは知っていて欲しいディストリビューションを列挙する。ディストロの系列ごとに書いたので、列挙順は重要度順ではない。が、2019年現在絶対に知ってないとマズイalpineだけは先頭に置いた。 busybox系 Alpine Linux 公式: https://www.alpinelinux.org/ Wikipedia: https://ja.wikipedia.org/wiki/Alpine_Linux パッケージマネージャー: apk 最小構成だと約5.6MBという圧倒的小ささで、dockerコンテナ
はじめに Linuxカーネル開発を学ぶためにhello worldモジュールからはじめて少しづつ強化する記事を過去にいくつか書きました。これはちゃんとやれば身に付くことは身に付くのですが、非常に地味なので、よほどカーネルに興味を持っている人以外には退屈でしょう。そこで、目的をもって特定の機能をカーネルならではの方法で実現する記事を書けば面白いのでは…となったのでここに初回を書くことにしました。 対象読者はCライクなプログラミング言語での開発経験がある人です。Cのポインタがわかればなおよし。もしできればOSカーネルについての基本的な知識も欲しいです。 背景 UNIXが誕生してから現在に至るまでrm -rf /によって全ファイルをぶっ飛ばす事件が後をたちません。GNUのcoreutilsに入っているrmではルートディレクトリ("/")への操作を特別扱いして容易に悲劇を起こさなくするpreser
背景 自分が普段電車や会社で読んでいるIT系のサイトと学習などで使用しているサイトのまとめ。 ニュース系 ■ CNET Japan ■ @IT ■ ITmedia ■ はてなブックマーク(テクノロジーカテゴリ) ■ Menthas ■ Publickey ニュース(ガジェット系) ■ PC Watch ■ GIZMODO ■ Engadget 技術系ブログ(企業系) ■ Developers.IO ■ はてなブログ開発ブログ ■ サイボウズのエンジニアブログ ■ クックパッド開発者ブログ ■ Google Developers ■ Yahoo! JAPAN Tech Blog ■ Mercari Engineering Blog ■ Webnaut ■ バズ部 ■ SOUM/misc ■ LINE Engineering 技術系ブログ(個人) ■ ネットワークエンジニアのメモ ■ プログラ
一般的には、複数のAWSアカウントを持っている場合 aws configure --profile <profile> で aws cli の設定をすると思うが、これだとあらゆる aws コマンドを打つたびに --profile <profile> オプションでプロファイル名を指定しないといけないのでめんどくさい。 シェル毎に別のプロファイルをデフォルトで指すことができるようにして、tmux のウィンドウ毎にプロファイルを切り替えたい。 関連: gcloud でシェル毎にプロジェクトの切り替え設定 AWS_DEFAULT_PROFILE, AWS_PROFILE AWS_DEFAULT_PROFILE および AWS_PROFILE 環境変数でデフォルトプロファイルを切り替えられるので、この環境変数をシェル毎に設定しなおせば良い。ツールによってどちらの環境変数が参照されるかまちまちなような
この記事の目的 自分は、とある会社様の元でソシャゲの API 開発をさせていただいています。 ソシャゲは、リリース時やイベント時などに集中アクセスされやすく、負荷軽減の知識がない状態で開発を行ってしまうと、運用時に緊急メンテ祭りになりやすいジャンルかなと思っています。 これまで培ってきた MySQL の知識ですが、脳内メモリ量の関係上、暗記できないのでメモしておこうというのが主目的です。 ここ数年ほどソシャゲ開発しかしていないため、偏っている感がある内容ですのでご注意ください。 概要 ストレージエンジンは InnoDB。メインで扱っている MySQL バージョンは 5.6。 記事の内容ですが、これらのキーワードを見て、おおよそ分かる方は読む必要はないかと思います。 インデックス系 クラスタインデックス カバリングインデックス EXPLAIN で注意するべき値 トランザクション系 MVCC
追記: 本記事は g++ について書かれており、clang については補足で述べる程度でしたが、clang側の検証結果が間違っておりました。 別途 clang++ で検証した記事も書きましたので、ご覧いただけますと幸いです。 本記事の目的 昨日、株式会社フィックスターズの「Fixstars Tech Blog /proc/cpuinfo」に以下の記事が掲載されました。 RustがC++に速度で勝った話 - Fixstars Tech Blog /proc/cpuinfo 本記事では、上記記事の 手元環境における追試 C++の敗因/Rustの勝因分析 条件をある程度統一した際のベンチマーク結果 の3点を行います。 ベンチマーク環境 OS Fedora 30 CPU AMD A6-1450 Memory DDR3-1333 4GB x 1 (4GB) GCC 9.2.1 Rustc 1.39.
「あるある」じゃないです はじめに これは、筆者が周りの非エンジニアの方々に 「エンジニアの人って◯◯なんでしょ?」 と言われて、「いやそんなことないですよ笑」と答えた話をまとめました。 この回答が、同じような質問を受けた人が 「ないない。実際はこうなんだよ」 と答える参考になれば幸いです。 (どんな時だよ!) 自分の経験値だけで語っているので、 「俺の場合はあるあるだよ!」 とかあるかもしれません。ご了承ください。 色んな「ないない」 ハッカーって銀行に侵入して口座の金額増やせるんでしょ? ないです。 振込はネットでもできますが、トランザクションの登録だけであり、 実際の金額の操作はネットワークから分離されています。無理です。 インターネットからできるのはキューの登録だけです。 基幹システムでチェックされるので、例え不正な振込データを送信できたとしても 実際に反映される時に弾かれます。残
メンバーの一部がスムーズに情報共有できるチケットを書けず 苦戦しており、相談を受けた時に色々言った内容を 書き起こしたもの。 荒いけど誰かの参考になるかもしれないので共有。 2019/09/07 宣伝追記 技術書典サークル参加します。 チーム運営どう考えて何をやったかまとめた本とセキュリティの 入門書を頒布するので気になった方は是非。 https://techbookfest.org/event/tbf07/circle/5671044488626176 書いた人の環境 業務ツールとしてチャット、Redmine、Wikiを使用。 チャットで会話して相談・整理・調整する。 タスク、課題はチケット化して管理。 ナレッジはWikiに書いて共有。 業務内容はシステム開発と運用保守でソフトウェア開発ではない。 Redmineはタスク・課題管理に使用。 以下、メンバーに伝えたことを清書したもの。 前提
printf に関する以下のツイートが流行っていました。 上のツイートでは割とあっさり説明されていますが、amd64 SysV ABIでこの現象が起こる理由にはもっと深遠なものがあると思うので、可変長引数とからめて説明してみたいと思います。 前提条件として「ABI」「可変長引数」「non-prototyped関数」の知識が必要なのでそこから説明します ABIとは ABI (Application Binary Interface) とは、機械語レベルでのインターフェースのことです。 機械語そのもののルールはISA (Instruction Set Architecture) によって規定されていますが、たとえばC言語の「関数呼び出し」などの概念を機械語でどのように表現するかについては規定していません。そのルールを定めたのがABIです。したがって、ISAとABIはおよそ1対多の関係にあります
2019/8/23に発生したAWS東京リージョンの大規模障害の経過と、現在確認すべき内容、今後の教訓などをまとめてみました。 9/24 16:00更新: 今回の障害の経過を受け、記事を整理いたしました。 8/23 12:36頃より特定AZにおけるネットワークコネクティビティの障害が発生 8/23 20:18頃、EC2は大規模障害から回復との発表あり 8/23 22:19頃、RDSも22:05頃までに同様に回復との発表あり サービス障害発生時間は8/23 12:36〜22:05 (約9時間半) 8/24 14:00以降、本障害の影響でEBSボリュームが回復不能となったアカウントに対し、個別のメールやPersonal Health Dashboardで通知あり 8/25 8:00以降、本障害の影響でEBSボリュームが回復不能となったアカウントに対し、個別に続報あり 注: メールが来ていなくても
def check(n) s = "*"*n f = open("test.cpp","w") f.puts <<EOS #include <cstdio> int main(){ (#{s}printf)("Hello World\\n"); } EOS f.close() return system("clang++ test.cpp") end check(ARGV[0].to_i) $ ruby check.rb 10000 clang: error: unable to execute command: Illegal instruction: 4 clang: error: clang frontend command failed due to signal (use -v to see invocation) Apple LLVM version 10.0.1 (clang
はじめに 先日、エンジニアの能力と今どきの難しさというタイトルの記事(2018年)を読んで、「これはほんとにその通り」と思う一方で、具体例がないためにピンと来ない人や、マウント取りではという意見も多数見られた。というわけで、自分が比較的得意な、プログラミング言語の構文解析といった分野に関して、この記事の言わんとしていることを補足するような記事を書こうと思い至った。 記事中では、エンジニアに必要な知識や経験を、「ベース」「カテゴリ」「実行環境」という形(以下)に分けて論じている。 ①ベース コンピュータサイエンス(CS)などの理論的なもの 低レイヤー ②カテゴリ フロントエンド / バックエンド / クライアントアプリなど ③実行環境 特定のプログラミング言語や開発環境やツール、フレームワークやライブラリなど この中で、特に印象的であり、かつ「よくわかる」と思ったのは以下の記述だ。 ③は比較
…を作りました。 2021 年 1 月 30 日追記 2020 年 7 月頃に Google Maps 側の仕様変更に伴い動かなくなってしまい、自身も iOS ユーザで無くなったことからメンテされていなかったこのショートカットですが、@musubi05 さんが後継となるショートカットを作成し公開してくれました。iOS ショートカットの紹介記事としては未だこの記事も有用かと思いますが、単にショートカットを利用したいだけという場合は、『「Google Maps の検索結果から Yahoo! カーナビで経路案内できる iOS ショートカット」を復活させた』を参照してください。 追記終わり。 動作している様子 見て〜!これ良くない? pic.twitter.com/ORzK8uJtL6 — Otchy (@otchy) 2019年6月4日 ショートカットのインストール用リンク v2: https:
私はウンザリしています。 「○○対応」は曖昧なのでやめてください。「○○を修正した」の方が直接的です。 こんな指摘を新人が入ってくるたびにコードレビューやドキュメントレビューで繰り返しています。どうも、プログラマー(と言うか理系?)には独特の言語文化があり、みんな同じような分かりにくい表現をしてしまうようです。 「レビューを依頼する前にこれを読んどいて!」と言える記事なり本なりがあれば良かったのですが、良いものが見つけられなかった(ご存知なら教えてください)ので、とりあえずレビューでよく指摘する日本語の文章の問題点や変な表現ポイントを列挙しました。 なお「コメントは必要十分な量を書く」「チケット番号やWikiのURLを書く」といった、良く知られた・日本語に限定されない話題は省略しています。 1. 俗称を使わない・造語しない 製品名・機能名などは正式なものを使いましょう。大抵はUIなりマニュ
このツイートを見て、「アプリで再ログインを頻繁要求されるってユーザビリティ良くないな。」と思ったのですが、普段裏側の仕組みは意識していなかったりテックリードの方に任せきりだったりしていたので、これを機に調べてみました。 そもそもスマホアプリ の時代、もはやauthenticationですらないと思うのよね。(何を言ってるかわからねえだろうと思うが。) — Hiromitsu Takagi (@HiromitsuTakagi) 2019年7月8日 この記事は「アプリでログインしっぱなしは、どのように実現されるの?」という疑問と調べた結果を共有するために書いていきます。 間違いや「もっとこんな仕組みが使われてるよ!」等のツッコミがあれば、どしどし貰えると助かります! 疑問1. アクセストークンという仕組みとは? 「なぜアクセストークンという概念が必要なのか?」 モバイルアプリでユーザー認証をし
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く