docker run

docker run とは何か? docker run のイメージ名の指定について docker runでbashに接続する docker runとcreate の違い よく使うオプション 1. インタラクティブモードとバックグラウンドモードの違い 2. ボリュームのマウント 3. 環境変数の設定 4. CPUやメ…

家具製品開発システム【みねぎしれい 経歴書】

概要 サービスの概要 商品開発ダッシュボードを作成しました。 商品に対する基本情報と実績を表示するツールです。 ユーザーはダッシュボードを確認することで、問題のある商品の特定から改善に向けた行動をとることができます。 - これまで商品の基本情報と…

求人文書検索サービス【みねぎしれい 経歴書】

概要 サービスの概要 求人文書の検索サービスです。 各求人のコンバージョンの上昇、求人執筆者の生産性向上のためにOpenSearchを用いた派遣求人文章の検索、推薦システムやOpenAPIを用いた文章生成を行います。 プロジェクト人数は全体で15名。 開発チーム…

クラウドインフラ開発基盤カタログ化【みねぎしれい 経歴書】

クラウドインフラ開発基盤カタログ化 サービスの概要 使用技術 実際に提供するアセットの一例 クラウドインフラ開発基盤カタログ化 サービスの概要 社内システムで使用するクラウドインフラをIaCを用いてアセット化する試みです。 プロジェクトごとに求めら…

エンジニア心理学

zenn.dev

コンテナランタイムを0から作ってみる【Go言語, Docker】

事前準備 1. VagrantによるCentos7のインストール vagrant init centos/7 PS C:\Users\kaoka\myworking\myworking\container_from_scratch> vagrant init centos/7 A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` y…

distrolessイメージを活用してECRスキャンの脆弱性を撲滅する。

distroless イメージを活用して脆弱性を撲滅する distroless とは何か distroless と マルチステージビルド の適応方法 distroless イメージを活用して脆弱性を撲滅する ECRにはイメージスキャンの機能があります。 これは、コンテナイメージに対してセキュ…

Youki の環境構築【Rust製のコンテナランタイム作成プロジェクト】

Vagrantのインストールを行う 私はYoukiの環境構築を行う際、Vagrant / Virtualboxを使用しました。 youkiプロジェクトのソースコードを確認すると、Vagrantfileがトップにあります。このファイルを活用して手軽にyouki環境を立ち上げることが出来ました。 …

Youki とは何か?【Rust製のコンテナランタイム作成プロジェクト】

youki とは何か youkiの由来は日本語の「容器」と「陽気な」です。 youki is pronounced as /joʊki/ or yoh-key. youki is named after the Japanese word 'youki', which means 'a container'. In Japanese language, youki also means 'cheerful', 'merry'…

VagrantのWindowsへのインストール方法【Virtual Box + Vagrant】

vagrantインストール方法 まずは以下のサイトを開く 以下のリンクからインストーラーをダウンロードする。 https://developer.hashicorp.com/vagrant/install windowsのインストーラーがあるので、クリックしてインストーラーをダウンロードする ダウンロー…

コマンドライン自動保管ツール「f*ck」【linux】

コマンドライン自動保管ツール「f*ck」とは? このコマンドラインツールはタイプミスなどを自動的に保管してくれるツールです。 from https://github.com/nvbn/thefuck インストール方法 インストール時の注意点 linux,macosであればどのOSでも利用可能です。…

Linuxガイド

linux概要 linuxとは? インストール方法 基本的な用語集 linux shell Linuxのコマンドラインツールは道具箱 linuxには最高のコマンドラインツールがあります。 これらの知識を持つことは、問題解決のために使える手段が増えるということを意味します。 参考…

Haskellでの四則演算【Haskell, 四則演算, Bool】

単純な四則演算 Haskellでもほかの言語同様、四則演算をサポートしています。ghciと入力して対話型Haskellインタプリタを起動し、以下のコードを入力してみましょう。 ghci> 3+2 -- 5が出力される ghci> 3-2 -- 1が出力される ghci> 3*3 -- 9が出力される gh…

Haskellによるプログラム実行方法3パターン【Haskell, ghc, ghci, runghc, Helloworld!】

Haskellのコンパイラ HaskellのメインのコンパイラはGHCと呼ばれます GHCは(Glasgow Haskell Compiler)の略です。 名前の由来 : Glasgowは大学の名前で、グラスゴー大学で作られたことに由来しています。 言語 : コンパイラ自体もHaskellで書かれているが、…

Haskell ">>="による副作用管理【Haskell モナド モナド則】

モナドのメリット モナドはHaskellのプログラムにおいて、特に入出力回りで活躍する仕組みです。 関数プログラムの本体から副作用を安全に分離することができ、計算戦略をプログラム全体にばら撒くことをせずに、一箇所にまとめることができます。 モナドの…

Haskellのclassによる型制約【Haskell class data】

classキーワード 型クラスの定義 Haskellでは等号、非等号を表すためにEqというクラスを使用しています。 class Eq a where (==), (/=) :: a -> a -> Bool x == y = not (x /= y) x /= y = not (x == y) 上記のEqクラスから以下の情報が読み取れます。 等号…

Haskell dataで型を作成する【Haskell data 型作成】

Haskellのdataについて Haskellのdata コマンドは既存の型を組み合わせて新しい型を作ることが出来ます。 data Animal = Cat Int scream :: Animal -> String scream (Cat number ) = concat (replicate number "ニャー") main = print $ scream(Cat 2) 上記…

Haskellのlet whereの使い方【Haskell let where 変数宣言 局所的変数】H

変数宣言letの具体例 Haskellにおいて変数を宣言する方法は、letを使用する方法があります。 main = do let name = "田中太郎" print(name) ちなみに、一つのletの中で複数の変数を宣言するには{}を使用します。 main = do let {name = "田中太郎"; id = 100…

Haskellにおける条件式【Haskell, if, case, switch】

Haskellにおける条件式 Haskellにおいて、条件文という言葉よりも「条件式」といったほうが適切かもしれません。 条件文という言葉は手続き型言語やオブジェクト指向型言語では使われますが、Haskellにおいては「関数」が第一級オブジェクトとして扱われます…

Haskellでファイルを読み書きする方法【Haskell入門】

ファイル読み込み ReadModeによるファイル読み込み Haskellにおいてのファイル読み込みはopenFile関数を使用します。 子の関数を使用するためには、System.IOを事前にimportしておく必要があります。 以下のサンプルコードでは、input.txtファイルを読み取り…

Haskellにおける標準入力と標準出力

ほとんどのプログラミングでは副作用は必要不可欠です。 Haskellの世界では純粋なコードの副作用から完全に分離されます。 Haskellの関数に副作用がある場合、IOのマークが付与されます。 標準入力と標準出力 Haskellにおける標準入力はgetLine関数を使用し…

Haskellの関数一覧

listを扱うHaskellの関数 lines関数 このlines関数は、Haskellのデフォルトの関数として定義されています。 その役割は文字列を\nで区切られた配列に変換します。 lines関数の型を確認してみると、String型から[String]型に変更する関数であると確認できると…

Haskell入門 【関数型プログラミング】

Haskell 概要 Dockerを使用したHaskellの環境構築手順 Haskell, Docker, docker-compose Haskellは関数型プログラミング ghc ghci runghc Haskell 文法基礎 Haskellでの四則演算 Haskellの変数と型一覧 Haskellのlet whereの使い方 Haskell let where 変数宣…

Haskellは数学【Haskell, 関数型プログラミング】

Haskellの真骨頂は関数型プログラミングにあります。 関数型プログラミングについては以下の記事で解説していると思いますので、 今回はHaskellの関数の文法についてお話します。 Haskellの関数の文法 Haskellの関数の構文は非常にシンプルです。 -- 関数の…

terraform

Haskellの変数と型一覧【Haskell, 関数型プログラミング】

Haskellは関数型プログラミングであるが故、手続き型プログラミングでよくみられる「変数を複数宣言してそれらを管理する」手法は一般的ではありません。 しかし、Haskell言語の中にも型と変数の仕組み自体は存在し、特に型の考え方は重要になります。 この…

関数型プログラミングとは何か?【Haskell, 写像, 関数, 副作用】

Haskell はおそらく、これまでに使用したどの言語ともかなり異なります。 Haskellは関数型プログラミング Haskellは関数型プログラミング言語に分類されますが、 関数型プログラミングは通常のプログラマーが持つ一般的な概念と比較して、ソフトウェアに対す…

Dockerを使用したHaskellの環境構築手順【Haskell, Docker, docker-compose】

Dockerを使用したHaskellの環境構築手順について HaskellはWindowsやMacの上に構築することも可能ですが、Dockerコンテナの上で実行することで完全な再現性が得られます。 加えてHaskell自体にもバージョンが存在するため、それらを容易に切り替えるとなおよ…

Kubernetesでプリエンプト可能なノードを設定する

プリエンプト可能なノード(またはスポットインスタンス)とは何か? スポットインスタンスは、AWSの未使用のコンピューティング容量(スポットキャパシティ)を利用して低価格でインスタンスを起動することができる特殊なインスタンスタイプです。 低価格:…

Kubernetesのラベルの使い方

kubernetesにおいて、Labelとは、Podなどのオブジェクトに付加されるキーとバリューのセットの事です。 (要はpythonでいう辞書型、ほかの言語だと連想配列のこと) このLabelはKubernetes側から参照することはありませんが、ユーザーがPodを識別するコマン…