「環境変数」を含む日記 RSS

はてなキーワード: 環境変数とは

2024-05-01

[] It doesn't work...why?

ソースコードに間違いが見つからないのに想定される出力をしない。あるいはソースコード修正を加えていないのにいきなり想定出力を返すようになった。」

こういう経験がある人はいるはずだ。なぜこれが起こるのか。一つの原因を見つけた。

それは環境変数設定ファイル存在する。デプロイ時には設定ファイル特定の値に修正してから、ということがあるだろう。

開発環境コーディングする人が、デプロイ時の設定ファイルには関与せず、デプロイ担当者がそれを把握している。

開発者セキュリティ上の理由デプロイ時の設定ファイルの内容を見ることができない。

この場合設定ファイルの内容が間違っていても、開発者が原因が正しく特定できないケースがあるのである

対処方法は以下である。まず事前にやっているであろう対処は以下である

事前にやっていない可能性がある対処は以下である

 

追記:

他に遭遇したケースは、環境アップグレードによってphp特定関数廃止したというケースだ。

インフラ要員がアップグレードを行うので開発者は原因がわからなくなる。

2023-05-11

anond:20230511214840

まず、スパムブックマークアカウントを野放しにしてる運営が悪い

作って一ヶ月以内のアカウントが150ブクマした後にスパム活動を始めるみたいな状態なんで検出しないんだろうな

100%ボットなんだから、とりあえずselenium対応してない環境変数が空になってるエージェントからブックマークは全部はじけよって思う

2023-03-24

開発環境の構築に悩むお年頃

概要

なるべく手持ちのPC(以下、ホストPC)の環境レジストリとか環境変数とかで汚したり悩まないよう

仮想化環境で開発+テストを行いたい。

Windows10 ProとWSL2とVSCodeDockerでやる感じかな

 

ホストPCに頼らねばならないところ

UnityとかVisual StudioとかintellijとかAndroid Studioを使う場合はどうしようもないので諦める。

Android開発はVSCodeビルドコマンドラインでとかはできそうだけど。

あとはUSBなどでシリアル接続する必要のあるarduinoとかもちょっと難しいかもしれない

 

WSL2+Docker+Docker Desktop + VSCode + devcontainer

これが基本的なところだけど、WSL2をホストPCに入れるので若干汚れるのとWSL2上のlinuxも同じく汚れるところ

 

Hyper-V (Windows) + WSL2+Docker+Docker Desktop + VSCode + devcontainer

Hyper-VWindows仮想マシンを作ってそのうえでWSL2を動かすのが一番汚れずクリーンに使えそう

ただRyzenWindows10の組み合わせだと、Hyper-V入れ子ができないので仮想マシン上のWSL2は動かないらしい。

Windows11だとできる

 

リモート開発サーバ的なところにDocker+Docker Desktop + VSCode + devcontainer

手元じゃないのでクリーンに使えるが、ビルドなどはリモートスペック依存

ネットワークエラーとかがつらそう

あとクラウドと金がかかる、自前だと別で電気代がかかる

そこをよしとすれば楽そう

 

なんかこうやってるよっての教えてください

教えてください。

2023-03-21

anond:20230321134908

「猿でも分かるプロンプト活用術」というタイトル電子書籍を書いてください

「猿でも分かるプロンプト活用術」というタイトルでの電子書籍について、以下に簡単な目次と章ごとの概要を示します。実際の書籍作成するには、これらの各セクションを詳細に説明し、例や図を追加する必要があります

目次:

1. はじめに

2. コマンドプロンプトとは何か

3. コマンドプロンプトの基本操作

4. ファイル操作コマンド

5. ネットワーク操作コマンド

6. システム管理コマンド

7. コマンドプロンプトの高度な活用

8. まとめ

9. はじめに

・本書の目的対象読者の紹介

コマンドプロンプト重要性と利点の説明

10. コマンドプロンプトとは何か

コマンドプロンプト定義歴史

グラフィカルユーザーインターフェイス(GUI)との違い

コマンドプロンプト提供する機能概要

11. コマンドプロンプトの基本操作

コマンドプロンプトの開き方

基本的コマンドの使い方(例:help、cls、exit

コマンドの構文と引数理解

12. ファイル操作コマンド

ディレクトリ操作(例:cd、mkdir、rmdir)

ファイル操作(例:copy、move、del、ren

ファイル検索(例:find、findstr)

13. ネットワーク操作コマンド

IPアドレス情報の表示(例:ipconfig

ネットワーク接続確認(例:ping、tracert)

ネットワークリソース操作(例:netコマンド

14. システム管理コマンド

システム情報の表示(例:systeminfo)

タスク管理(例:tasklist、taskkill)

環境変数操作(例:setsetx)

コマンドプロンプトの高度な活用

...



「はじめに」の文章をお願いします。

はじめに

コンピュータ世界は日々進化し続けており、我々が日常的に使用するデバイスソフトウェアは常に更新され、より使いやすく、効率的になっていますしかしながら、コンピュータ基本的操作理解には、依然として古くから存在するコマンドプロンプトという強力なツールがあります。このツールは、多くのユーザーにとって未知の存在であり、その力を十分に発揮できていないかもしれません。

本書「猿でも分かるプロンプト活用術」は、コマンドプロンプトをこれまで使ったことがない方や、基本的操作しか知らない方を対象に、この強力なツール効果的に利用する方法をわかりやす解説します。また、既にコマンドプロンプト使用している中級者にも、さらなる活用方法を学んでいただける内容となっています

コマンドプロンプトは、グラフィカルユーザーインターフェイスGUI)に慣れ親しんだ現代ユーザーにとっては、最初は少し難しく感じるかもしれません。しかし、本書を通じて、コマンドプロンプトの基本操作から高度な活用法までを習得し、日々の業務パソコン操作に役立てることができるようになります

各章では、具体的なコマンドの例やスクリーンショットを用いて、わかりやす説明を行います。また、章ごとに練習問題チャレンジを設けていますので、学んだ知識をすぐに実践して確認することができます

この本を通して、コマンドプロンプトの力を最大限に引き出し、あなたコンピュータスキルを向上させることができることを願っています。それでは、さっそく「猿でも分かるプロンプト活用術」の世界に飛び込んでみましょう!

電子書籍プラットフォームがクソ本で溢れそうだ・・・

2022-10-23

anond:20221021161230

自分もそれ言おうかと思ったんだが環境変数で躓いてる人にWSLやVirtual Boxもっとハードル高い気がするんだよな

2022-10-20

ワイアラサープログラミングを学ぼうとするも二週間で挫折

ちなみに全くの未経験

helloworldから一歩も進まない、Python死ね

いやPythonは悪くないんだ。俺みたいなのがやろうとしたのが間違いなのだ

逆恨みだが死んでくれ。

肉体労働者だからパソコン触るのも数年ぶり、そもそもプログラミングというものは、パソコン素養がないとあかんのだな。

仕事必要というわけでは全然なく、別にそっちの道を目指そうという気もない。

チェスが昔から下手な横好きなんだが、変則チェスゲーム作りたいなと思っただけなんだ。

Pythonを選んだのは、定石なんかに機械学習があると良いのかな、くらいに思ったのと、初心者に優しいとググったら出てきたから。

Pythonのやり方ググると、ダウンロードしろというからダウンロードする。

コマンドプロンプトを起動して、

python-V

と打ち込むわけだ。

「’python’は内部コマンドまたは外部コマンド操作可能プログラムまたはバッチファイルとして認識されていません」

???

py -V

だと

Python 3.10.8

って出てくんのが尚更意味わからんランチャーかいもののおかげらしい、だからなんだよ。

ググる環境変数なるものを弄らなければいけないらしい。

予めどこのファイルにあるかコピペしとけって動画はたくさんあるが、し損ねたやつ向けの話が全然出ない。

検索するとたまにそれに触れた知恵袋的な質問が出てくるが、なぜかことごとくスルーされて回答されない。

隠しファイルなるもの存在も初めて知ったが、で?どこ?という核心がわからない。

一旦Pythonアンインストールして振り出しに戻してからやろうとしたが

「復帰すんの?ええよ!」と言いたげなrepairなんたらかんたらって表記は出ても、結局どこでどうしたらええか出てこない。

掲示板とかで見てると「ぶちこめば良い」とかは言っても実際それがどんな手順を踏むのかわからん

もうダメだ。なんもわからん

開始30分から2週間、全く進展がなくて流石に心が折れた。終わり。

2022-09-06

anond:20220906221031

Windowsで設定された環境変数を使ってインストールプログラムを作れって言ってもCドライブ直下フォルダに決め打ちしたカスアプリが横行してた状況で、ドライブレター廃止して全く新しいファイル管理システムを導入しますというのはだいぶ無理があったと思う

2022-07-29

ソースコード公開すると化けの皮が剥がれるからインフルエンサー諸氏はやめた方がいい

イキってるエンジニア自称)がイキりすぎてコード公開すると化けの皮が剥がれるからやめたほうがいい。

炎上にすらならないということは、

・駆け出しエンジニア(笑)の人はコードが読めない・見ない

普通エンジニアはイキりエンジニアそもそも無視

ということなんだろう。

2022年にもなってJSでvar使ってたり、環境変数設定ファイルを.gitignoreに入れないでAWSキー公開してたり、インデントやLintがぐちゃぐちゃだったりもうひどい。

もちろん実装自体もひどい。

2022-01-25

本のまとめ

--

この本は5章まであるが、4章と5章はハンズオンであるため、文字としてまとめるのは1から3章に留める。

1章

コンテナとは】

他のプロセスとは隔離された状態OS上にソフトウェアを実行する技術

コンテナ利用のメリット

環境依存から解放

コンテナにはアプリの稼働に必要となるランタイムライブラリを1つのパッケージとして全て含めることができる。そうすることでアプリ依存関係をすべてコンテナ内で完結できる。

依存関係を含めたパッケージリリース単位となる

環境構築やテストに要する時間の削減

優れた再現性ポータビリティ

全ての依存関係コンテナ内で完結するため、オンプレでもクラウドでも起動する。

ステージング環境テスト済みのコンテナイメージプロダクション環境向けに再利用することで、ライブラリ差異による環境ごとのテスト必要工数を削減できる。

リソース効率のアップ

サーバー仮想化では、仮想マシンレベルリソースを分離し、ゲストOS上でアプリが起動する。つまりアプリだけでなく、ゲストOSを動かすためのコンピューティングリソース必要

一方コンテナは、プロセスレベルで分離されてアプリが稼働する。OSから見ると単に1つのプロセスが稼働している扱いになる。

Dockerとは】

コンテナライフサイクル管理するプラットフォーム

アプリコンテナイメージとしてビルドしたり、イメージの取得や保存、コンテナの起動をシンプルに行える。

アプリソースコード + Dockerfile

↓ buildでイメージ作成

イメージ(アプリケーションと依存関係パッケージングされる。アプリライブラリOS)

shipイメージの保存

レジストリに保存

run コンテナの実行

オンプレクラウドなどで起動

Dockerfileとは】

イメージを構築するためのテキストファイル

このファイルコマンド記述することで、アプリ必要ライブラリインストールしたり、コンテナ上に環境変数を指定したりする。

1章まとめ、感想

コンテナの登場により、本番・開発環境ごとに1からサーバーを立ててコマンド設定ファイルを正確に行い、環境差異によるエラーをつぶしていき...というこれまでの数々の労力を減らすことができるようになった。

2章

AWS提供するコンテナサービス

コントロールプレーン

コンテナ管理する機能

コントロールプレーンは2種類

ECSとEKSがある。

ECS

フルマネージドなコンテナオーケストレータ。

オーケストレーションサービスであり、コンテナの実行環境ではない。

ECSの月間稼働率99.99%であることがSLA として保証

タスク

コンテナ動作するコンポーネント

タスクは1つ以上のコンテナからなる

アプリを起動するためにはコンテナ必要

タスク定義

タスク作成するテンプレート定義JSON記述

デプロイするコンテナイメージタスクコンテナに割り当てるリソースやIAMロール、Cloud Watch Logsの出力先などを指定する。

サービス

指定した数だけタスクを維持するスケジューラーで、オーケストレータのコア機能にあたる要素。サービス作成時は起動するタスクの数や関連づけるロードバランサータスクを実行するネットワーク指定

クラスター

サービスタスクを実行する論理グループ

データプレーン

コンテナが実際に稼働するリソース環境

2種類ありECSとFargateがある。 Fargateに絞って書く

Fargateとは

サーバーレスコンピューティングエンジン

AWSのフルマネージドなデータプレーンとして定義されている

コンテナ向けであるためEC2のように単体では使用できず、ECSかEKSで利用する

Fargate メリット

ホスト管理不要であること

サーバーのスケーリングパッチ適用保護管理にまつわる運用上のオーバーヘッドが発生しない。これにより、アプリ開発に専念できるようになる

Fargate デメリット

価格EC2より高い。

利用者コンテナの稼働するOSには介入できない

コンテナごとにENIがアタッチされるため、コンテナごとにIPが振られるため起動に若干時間がかかる

ECR

フルマネージドなコンテナレジストリ

コンテナイメージを保存、管理できる

コンテナが利用されているサービス

Lambda

・App Runner

Lambda

 利用者コードアップロードするだけでコードを実行できるサービスAWS側で基盤となるコンピューティングリソースを構築してくれるフルマネージドサービス

App Runner

 2021年5月GA(一般公開)となったサービスプロダクションレベルスケール可能webアプリを素早く展開するためのマネージドサービスGithub連携してソースコードをApp Runnerでビルドデプロイができるだけでなく、ECRのビルド済みコンテナイメージも即座にデプロイできる。

 ECSとFargateの場合ネットワークロードバランシング、CI/CDの設定などインフラレイヤに関わる必要があり、ある程度のインフラ知識必要になる。App Runnerはそれらインフラ周りをすべてひっくるめてブラックボックス化し、マネージドにしていることが特徴である

ECS Fargateを利用した場合コスト拡張性、信頼性エンジニアリング観点

コスト

EC2より料金は割高。ただし、年々料金は下がってきている。

拡張性】

デプロイの速度 遅め

理由1 コンテナごとにENIが割り当てられるため。ENIの生成に時間がかかる

理由2. イメージキャッシュができないため。コンテナ起動時にコンテナイメージを取得する必要がある。

タスクに割り当てられるエフェメラストレージは200GB。容量は拡張不可。ただし永続ストレージの容量が必要場合はEFSボリュームを使う手もある。

割り当て可能リソースは4vCPUと30GB。機械学習に用いるノードのような大容量メモリ要求するホストとしては不向き

信頼性

Fargateへのsshログインは不可。Fargate上で起動するコンテナsshdを立ててsshログインする方法もあるが、セキュアなコンテナ環境sshの口を開けるのはリスキーである。他にSSMセッションマネージャーを用いてログインする方法もあるが、データプレーンEC2の時に比べると手間がかかる。

しかし、2021年3月Amazon ECS Execが発表され、コンテナに対して対話型のシェルや1つのコマンドが実行可能となった。

エンジニアリング観点

Fargateの登場からしばらく経過し、有識者経験者は増え、確保しやすい。

システム要件確認

多数のユーザーに使ってもらう

可用性を高めるためにマルチAZ構成を取る

CI/CDパイプライン形成し、アプリリリースに対するアジティを高める

レイヤで適切なセキュリティ対策不正アクセス対策認証データの適切な管理ログ保存、踏み台経由の内部アクセス)を施したい

2章まとめ、感想

AWS提供するコンテナサービスはいくつかあり、なかでもFargateというフルマネージドなデータプレーンがよく使われている。ホスト管理不要インフラ関連の工数を削減できる一方、EC2より料金が高く、起動に若干時間がかかるのが難点である

3章

この章では運用設計ロギング設計セキュリティ設計信頼性設計パフォーマンス設計コスト最適化設計について述べている。

運用設計

Fargate利用時のシステム状態を把握するためのモニタリングやオブザーバビリティに関する設計不具合修正デプロイリスク軽減のためのCI/CD設計必要である

モニタリングとは

システム内で定めた状態確認し続けることであり、その目的システムの可用性を維持するために問題発生に気づくこと

オブザーバビリティとは

システム全体を俯瞰しつつ、内部状態まで深掘できる状態

オブザーバビリティの獲得によって、原因特定対策検討が迅速に行えるようになる

ロギング設計

・cloud watch logs

他のAWSサービスとの連携も容易

サブスクリプションフィルター特定文字列の抽出も容易

・Firelens

AWS以外のサービスAWS外のSaaS連携することも可能

Firehoseを経由してS3やRed shiftOpenSearch Serviceにログ転送できる

Fluentdやfluent bit選択できる

fluent bitを利用する場合AWS公式提供しているコンテナイメージ使用できる

セキュリティ設計

イメージに対するセキュリティ対策

 - ソフトウェアライブラリ脆弱性は日々更新されており、作ってから時間が経ったイメージ脆弱性を含んでいる危険がある。

 - 方法

  脆弱性の有無はECRによる脆弱性スキャンOSSのtrivyによる脆弱性スキャン

継続的かつ自動的コンテナイメージスキャンする必要があるため、CI/CDに組み込む必要がある。しかし頻繁にリリースが行われないアプリ場合CICDパイプラインが実行されず、同時にスキャンもなされないということになるため、定期的に行うスキャン必要になる。

cloud watch Eventsから定期的にLambdaを実行してECRスキャンを行わせる(スキャン自体は1日1回のみ可能

提供元が不明ベースイメージ使用は避ける

・IAMポリシーによるECRのパブリック化の禁止

 - オペレーションミスによる公開を防ぐことができる

信頼性設計

マルチAZ構成

Fargateの場合サービス内部のスケジューラが自動マルチAZ構成を取るため、こちらで何かする必要はない。

障害時切り離しと復旧

ECSはcloud watchと組み合わせることでタスク障害アプリエラーを検知できるうえに、用意されてるメトリクスをcloud watchアラームと結びつけて通知を自動化できる

ALBと結びつけることで、障害が発生したタスク自動で切り離す

リタイアという状態

AWS内部のハードウェア障害や、セキュリティ脆弱性があるプラットフォームだと判断された場合ECSは新しいタスクに置き換えようとするその状態のこと。

Fargateの場合アプリはSIGTERM発行に対して適切に対処できる設定にしておかなくてはならない。そうしておかないとSIGKILLで強制終了されてしまう。データ整合などが生じて危険

システムメンテナンス時におけるサービス停止

ALBのリスナールールを変更し、コンテンツよりもSorryページの優先度を上げることで対処可能

サービスクォータという制限

意図しない課金増加から保護するために設けられた制限

自動でクォータは引き上がらない

cloud watch メトリクスなどで監視する必要がある。

パフォーマンス設計

パフォーマンス設計で求められることは、ビジネスで求められるシステム需要を満たしつつも、技術領域進歩環境の変化に対応可能アーキテクチャを目指すこと

ビジネス上の性能要件を把握することが前提

利用者数やワークロードの特性を見極めつつ、性能目標から必要リソース量を仮決めする

FargateはAutoscalingの利用が可能で、ステップスケーリングポリシーターゲット追跡スケーリングポリシーがある。どちらのポリシー戦略をとるかを事前に決める

既存のワークロードを模倣したベンチマークや負荷テスト実施してパフォーマンス要件を満たすかどうかを確認する

スケールアウト

サーバーの台数を増やすことでシステム全体のコンピューティングリソースを増やそうとする概念。可用性と耐障害性が上がる。既存タスクを停止する必要原則ない。

スケールアウト時の注意

・Fargate上のECSタスク数の上限はデフォルトリージョンあたり1000までであること。

VPCIPアドレスの割当量に気をつける

ECSタスクごとにENIが割り当てられ、タスク数が増えるごとにサブネット内の割当可能IPアドレスが消費されていく

スケールアウトによるIPアドレスの枯渇に注意

Application Autoscaling

Fargateで使用可能

Cloud Watchアラームで定めたメトリクスの閾値に従ってスケールアウトやスケールインを行う

ステップスケーリングポリシー

ステップを設けて制御する

CPU使用率が60~80%ならECSタスク数を10%増加し、80%以上なら30%増加する、という任意ステップに従ってタスク数を増減させる

ターゲット追跡スケーリングポリシーとは

指定したメトリクスのターゲット値を維持するようなにスケールアウトやスケールインを制御する方針

ターゲット追跡スケーリングPermalink | 記事への反応(0) | 21:45

本のまとめ

--

この本は5章まであるが、4章と5章はハンズオンであるため、文字としてまとめるのは1から3章に留める。

1章

コンテナとは】

他のプロセスとは隔離された状態OS上にソフトウェアを実行する技術

コンテナ利用のメリット

環境依存から解放

コンテナにはアプリの稼働に必要となるランタイムライブラリを1つのパッケージとして全て含めることができる。そうすることでアプリ依存関係をすべてコンテナ内で完結できる。

依存関係を含めたパッケージリリース単位となる

環境構築やテストに要する時間の削減

優れた再現性ポータビリティ

全ての依存関係コンテナ内で完結するため、オンプレでもクラウドでも起動する。

ステージング環境テスト済みのコンテナイメージプロダクション環境向けに再利用することで、ライブラリ差異による環境ごとのテスト必要工数を削減できる。

リソース効率のアップ

サーバー仮想化では、仮想マシンレベルリソースを分離し、ゲストOS上でアプリが起動する。つまりアプリだけでなく、ゲストOSを動かすためのコンピューティングリソース必要

一方コンテナは、プロセスレベルで分離されてアプリが稼働する。OSから見ると単に1つのプロセスが稼働している扱いになる。

Dockerとは】

コンテナライフサイクル管理するプラットフォーム

アプリコンテナイメージとしてビルドしたり、イメージの取得や保存、コンテナの起動をシンプルに行える。

アプリソースコード + Dockerfile

↓ buildでイメージ作成

イメージ(アプリケーションと依存関係パッケージングされる。アプリライブラリOS)

shipイメージの保存

レジストリに保存

run コンテナの実行

オンプレクラウドなどで起動

Dockerfileとは】

イメージを構築するためのテキストファイル

このファイルコマンド記述することで、アプリ必要ライブラリインストールしたり、コンテナ上に環境変数を指定したりする。

1章まとめ、感想

コンテナの登場により、本番・開発環境ごとに1からサーバーを立ててコマンド設定ファイルを正確に行い、環境差異によるエラーをつぶしていき...というこれまでの数々の労力を減らすことができるようになった。

2章

AWS提供するコンテナサービス

コントロールプレーン

コンテナ管理する機能

コントロールプレーンは2種類

ECSとEKSがある。

ECS

フルマネージドなコンテナオーケストレータ。

オーケストレーションサービスであり、コンテナの実行環境ではない。

ECSの月間稼働率99.99%であることがSLA として保証

タスク

コンテナ動作するコンポーネント

タスクは1つ以上のコンテナからなる

アプリを起動するためにはコンテナ必要

タスク定義

タスク作成するテンプレート定義JSON記述

デプロイするコンテナイメージタスクコンテナに割り当てるリソースやIAMロール、Cloud Watch Logsの出力先などを指定する。

サービス

指定した数だけタスクを維持するスケジューラーで、オーケストレータのコア機能にあたる要素。サービス作成時は起動するタスクの数や関連づけるロードバランサータスクを実行するネットワーク指定

クラスター

サービスタスクを実行する論理グループ

データプレーン

コンテナが実際に稼働するリソース環境

2種類ありECSとFargateがある。 Fargateに絞って書く

Fargateとは

サーバーレスコンピューティングエンジン

AWSのフルマネージドなデータプレーンとして定義されている

コンテナ向けであるためEC2のように単体では使用できず、ECSかEKSで利用する

Fargate メリット

ホスト管理不要であること

サーバーのスケーリングパッチ適用保護管理にまつわる運用上のオーバーヘッドが発生しない。これにより、アプリ開発に専念できるようになる

Fargate デメリット

価格EC2より高い。

利用者コンテナの稼働するOSには介入できない

コンテナごとにENIがアタッチされるため、コンテナごとにIPが振られるため起動に若干時間がかかる

ECR

フルマネージドなコンテナレジストリ

コンテナイメージを保存、管理できる

コンテナが利用されているサービス

Lambda

・App Runner

Lambda

 利用者コードアップロードするだけでコードを実行できるサービスAWS側で基盤となるコンピューティングリソースを構築してくれるフルマネージドサービス

App Runner

 2021年5月GA(一般公開)となったサービスプロダクションレベルスケール可能webアプリを素早く展開するためのマネージドサービスGithub連携してソースコードをApp Runnerでビルドデプロイができるだけでなく、ECRのビルド済みコンテナイメージも即座にデプロイできる。

 ECSとFargateの場合ネットワークロードバランシング、CI/CDの設定などインフラレイヤに関わる必要があり、ある程度のインフラ知識必要になる。App Runnerはそれらインフラ周りをすべてひっくるめてブラックボックス化し、マネージドにしていることが特徴である

ECS Fargateを利用した場合コスト拡張性、信頼性エンジニアリング観点

コスト

EC2より料金は割高。ただし、年々料金は下がってきている。

拡張性】

デプロイの速度 遅め

理由1 コンテナごとにENIが割り当てられるため。ENIの生成に時間がかかる

理由2. イメージキャッシュができないため。コンテナ起動時にコンテナイメージを取得する必要がある。

タスクに割り当てられるエフェメラストレージは200GB。容量は拡張不可。ただし永続ストレージの容量が必要場合はEFSボリュームを使う手もある。

割り当て可能リソースは4vCPUと30GB。機械学習に用いるノードのような大容量メモリ要求するホストとしては不向き

信頼性

Fargateへのsshログインは不可。Fargate上で起動するコンテナsshdを立ててsshログインする方法もあるが、セキュアなコンテナ環境sshの口を開けるのはリスキーである。他にSSMセッションマネージャーを用いてログインする方法もあるが、データプレーンEC2の時に比べると手間がかかる。

しかし、2021年3月Amazon ECS Execが発表され、コンテナに対して対話型のシェルや1つのコマンドが実行可能となった。

エンジニアリング観点

Fargateの登場からしばらく経過し、有識者経験者は増え、確保しやすい。

システム要件確認

多数のユーザーに使ってもらう

可用性を高めるためにマルチAZ構成を取る

CI/CDパイプライン形成し、アプリリリースに対するアジティを高める

レイヤで適切なセキュリティ対策不正アクセス対策認証データの適切な管理ログ保存、踏み台経由の内部アクセス)を施したい

2章まとめ、感想

AWS提供するコンテナサービスはいくつかあり、なかでもFargateというフルマネージドなデータプレーンがよく使われている。ホスト管理不要インフラ関連の工数を削減できる一方、EC2より料金が高く、起動に若干時間がかかるのが難点である

3章

この章では運用設計ロギング設計セキュリティ設計信頼性設計パフォーマンス設計コスト最適化設計について述べている。

運用設計

Fargate利用時のシステム状態を把握するためのモニタリングやオブザーバビリティに関する設計不具合修正デプロイリスク軽減のためのCI/CD設計必要である

モニタリングとは

システム内で定めた状態確認し続けることであり、その目的システムの可用性を維持するために問題発生に気づくこと

オブザーバビリティとは

システム全体を俯瞰しつつ、内部状態まで深掘できる状態

オブザーバビリティの獲得によって、原因特定対策検討が迅速に行えるようになる

ロギング設計

・cloud watch logs

他のAWSサービスとの連携も容易

サブスクリプションフィルター特定文字列の抽出も容易

・Firelens

AWS以外のサービスAWS外のSaaS連携することも可能

Firehoseを経由してS3やRed shiftOpenSearch Serviceにログ転送できる

Fluentdやfluent bit選択できる

fluent bitを利用する場合AWS公式提供しているコンテナイメージ使用できる

セキュリティ設計

イメージに対するセキュリティ対策

 - ソフトウェアライブラリ脆弱性は日々更新されており、作ってから時間が経ったイメージ脆弱性を含んでいる危険がある。

 - 方法

  脆弱性の有無はECRによる脆弱性スキャンOSSのtrivyによる脆弱性スキャン

継続的かつ自動的コンテナイメージスキャンする必要があるため、CI/CDに組み込む必要がある。しかし頻繁にリリースが行われないアプリ場合CICDパイプラインが実行されず、同時にスキャンもなされないということになるため、定期的に行うスキャン必要になる。

cloud watch Eventsから定期的にLambdaを実行してECRスキャンを行わせる(スキャン自体は1日1回のみ可能

提供元が不明ベースイメージ使用は避ける

・IAMポリシーによるECRのパブリック化の禁止

 - オペレーションミスによる公開を防ぐことができる

信頼性設計

マルチAZ構成

Fargateの場合サービス内部のスケジューラが自動マルチAZ構成を取るため、こちらで何かする必要はない。

障害時切り離しと復旧

ECSはcloud watchと組み合わせることでタスク障害アプリエラーを検知できるうえに、用意されてるメトリクスをcloud watchアラームと結びつけて通知を自動化できる

ALBと結びつけることで、障害が発生したタスク自動で切り離す

リタイアという状態

AWS内部のハードウェア障害や、セキュリティ脆弱性があるプラットフォームだと判断された場合ECSは新しいタスクに置き換えようとするその状態のこと。

Fargateの場合アプリはSIGTERM発行に対して適切に対処できる設定にしておかなくてはならない。そうしておかないとSIGKILLで強制終了されてしまう。データ整合などが生じて危険

システムメンテナンス時におけるサービス停止

ALBのリスナールールを変更し、コンテンツよりもSorryページの優先度を上げることで対処可能

サービスクォータという制限

意図しない課金増加から保護するために設けられた制限

自動でクォータは引き上がらない

cloud watch メトリクスなどで監視する必要がある。

パフォーマンス設計

パフォーマンス設計で求められることは、ビジネスで求められるシステム需要を満たしつつも、技術領域進歩環境の変化に対応可能アーキテクチャを目指すこと

ビジネス上の性能要件を把握することが前提

利用者数やワークロードの特性を見極めつつ、性能目標から必要リソース量を仮決めする

FargateはAutoscalingの利用が可能で、ステップスケーリングポリシーターゲット追跡スケーリングポリシーがある。どちらのポリシー戦略をとるかを事前に決める

既存のワークロードを模倣したベンチマークや負荷テスト実施してパフォーマンス要件を満たすかどうかを確認する

スケールアウト

サーバーの台数を増やすことでシステム全体のコンピューティングリソースを増やそうとする概念。可用性と耐障害性が上がる。既存タスクを停止する必要原則ない。

スケールアウト時の注意

・Fargate上のECSタスク数の上限はデフォルトリージョンあたり1000までであること。

VPCIPアドレスの割当量に気をつける

ECSタスクごとにENIが割り当てられ、タスク数が増えるごとにサブネット内の割当可能IPアドレスが消費されていく

スケールアウトによるIPアドレスの枯渇に注意

Application Autoscaling

Fargateで使用可能

Cloud Watchアラームで定めたメトリクスの閾値に従ってスケールアウトやスケールインを行う

ステップスケーリングポリシー

ステップを設けて制御する

CPU使用率が60~80%ならECSタスク数を10%増加し、80%以上なら30%増加する、という任意ステップに従ってタスク数を増減させる

ターゲット追跡スケーリングポリシーとは

指定したメトリクスのターゲット値を維持するようなにスケールアウトやスケールインを制御する方針

ターゲット追跡スケーリングPermalink | 記事への反応(0) | 21:45

2022-01-18

環境変数の感じを変えてみたんだけど

質問ある?

2021-12-29

京大の77TBデータ誤削除事件

あれって、bash で書いてて、実行中に別のスクリプトで上書きしたのが問題なんだよね。

backup.sh みたいなプログラムを実行してて、

プログラム

# /bin/sh

1:データバックアップ

2:ベリファイ 現在実行中

3:ログ出力

4:古いログ削除

を上書きした結果、

プログラム

# /bin/sh

1:環境変数設定

2:データバックアップ

3:ベリファイ ←ここから実行

4:ログ出力 ←これも実行

5:古いログ削除 環境変数定義のままこれ実行

なっちゃった理解してるんだけど、あってる?

2021-07-13

anond:20210712182223

よかったー

環境変数か何かで状態取れたはずなのでがんばってくり〜

2021-07-07

天皇制キボンヌ

都議選に集まる批判デンベレグリーズマン(海外セレブ)の日本人労働者への差別発言国民感情無視したオリンピック開催、天皇お気持ち発表、鬼滅の刃大ヒット、全ては腐った民主主義が終了して天皇による寡頭政治が始まる布石や。自民の票田になってる国粋主義者達を本気出した天皇が掻っ攫って全部終わらせてくれ。皆がアホやから民主主義機能せえへんって嘆いてるリベラル本音も、優秀な人間だけで寡頭政治やって欲しい、やろ。

  

責任者不在の政治当事者意識のない選挙もやめてまえ。選挙絶望しててなるようになったもんを環境変数として受け入れる大衆とそれが出来ひんぐらい窮地に立たされて割りを食ってる一部の国民がこの国の構成員や。前者は誰が環境変数を設定したかに興味がないし、後者はいざとなったときクーデター起こす相手がハッキリしてたほうがいいやろ。

  

私が悪かったので責任を取ります言うて一番目立つ席に座ってた人がひとつ下に移動して引き続き甘い汁吸って、組織自体根本的には何も変わらんって政治いつまでも続けるより、君主一人 対 国民全員の緊張感ある政治にしようや。

  

2021-05-15

https://12factor.net/ja/config

これ読んでたんだけどさ

かい構造データを設定する必要がある場合って、どうやって環境変数に持つの変数名のサフィックスに連番つけて横持ちとかするの?

かい構造データを設定に持つなってのは理想的ではあるが、実用的に要求が発生することはあるので

そんなことも分からないアーキテクトは死刑にして生ゴミと一緒に捨てるべきでありここでは考慮しないものとする

2021-01-30

45歳多重派遣プログラマ退職エントリ

45歳多重派遣と言っても、噂のGitHubの人ではない。すまんな。。

皆さんはプロジェクトの共有ディレクトリの最下層に”女子大生”という何もないファイルを作ってアクセスログをとっていたのがバレて怒られた事はあるか?私はある。2回。

人は暇なとき、意外とディレクトリをめぐる旅をするものだ。

仕事でとうとうGitHubすら使わずプログラマ人生を終えてしまった。

レガシー技術を使いがちな金融プログラマではそこそこ居るのでは無いだろうか。

年収20代後半からは550万~700万位だった。残業代退職金は無く交通費は出ない。

所属会社営業事務も居ない小さな所帯のフリーの集まりのような所で、会社運営必要金額をある程度毎月納めれば良い会社だった。

仕事がなくなれば自分、もしくは他社員の人脈で仕事をとってくる方式

フリーで居るよりは仕事を取りやすく、単価も上げやすいので一応会社所属にしているだけの所だった。

それでもすごく世話になった。

私はやる気が無いプログラマだった。オフ時間プログラム勉強したことなんて殆どないが30歳、35歳の限界説を越え、45歳まで働けた。

これはそんな元ニート高卒45歳、多重派遣底辺プログラマ退職エントリ

はてなIT技術者諸氏はオフの日にも日々勉強をしているようで。

好きなんですね。この業界が。日本ITは今後も安泰だ。

◯◯出来る人が居ないか?と聞き回る営業を見ていると多重派遣SESとはいえ業務時間内に勉強させろと私は思う。

技術勉強の話になると途端に何プペる?のような、仕事の為の無給勉強時間当たり前のように語られる事がやる気の無い私にはついぞ理解することが出来なかった。

足に鎖でもついてるのかね。私と一緒だね。

45歳で年収300万円多重派遣の彼は問題児なのかもしれないが、私よりはやる気があるプログラマなのではないかと思う。

退職までずっとプログラムを書き、テストをしていた。たまに客に直接要望を聞いて仕様書に落とすこともした。

C/C++Java・各種Shell・VB/VBA・SQLUNIX/LinuxWindowsサーバーでなんとなーく仕事をしていた。

プログラムは他の人が書いたプログラムを流用しまくって書いた。

苦手なのはプログラムより仕様理解だった。

ざっくりな話になるが、私より出来る人はわんさか居て、私より出来ない人・問題児が2割は居た。後者の彼らのおかげで私は仕事があったのだ。あと、東京からあったのだ。

人並以上の理解をしていたのはLinux構造くらい。仕事カーネル層に潜り込み、デバイスドライバの改造をしなくてはならず、月350時間くらい働いているうちに身についたものだ。

当時居た会社年俸制という糞システムだったので1円も残業代は出なかったが。

全く知らない技術が使われている新しい現場に上位プロパー会社営業に売りに出されることはままあった。

現場の人にさも「解ってます!」みたいな面で面接をし、何とか切り抜けることは出来た。このときばかりはいやいやながら上辺だけを勉強した。無給でな。

解っている事でも残業が沢山降ってきそうな場合は「ちょっと私には難しいですね・・・」「「いやー、解らないですね。。」と出来ない振りをする度量もついていた。

仕事は”出来る(都合の良い)いい人”に回ってくるし、仕事をしてもめったに単価を上げてくれないし、切られる時は切られる。

30歳を越えたあたりから必要な時は定時丁度に上がる精神的な技術も身についた。

それと同時にここ10~15年はブラックIT業界でもようやく過残業を減らそうという機運が増えてきたように思う。

ライブイベントにも足を運べるようになり、推し投資が出来るようになった。

おそらくまだ10年はプログラマとしてなんとなく生活出来たのだろうと思う。

あいつ、そこまで出来はしないけれど居ないと困ることもあるんだよなぁ」位のポジションで。

あるいはもう少しやる気を出し、転職をし、上位層で働くことも出来たのかもしれない。

でも急に仕事がつまらなくなったのだ。だから辞めた。

最後になったプロジェクトのこと。

リーダーが毎朝9時に朝会を開き、進捗を聴く

・そしてその日、”1人日”以上の仕事が割り振られる。残業しても終わらない

・翌朝で何故おわっていないのか?を問い詰められる

仕事タスク割り振りが多すぎて終える事は出来ないとお伝えしましたが?と反論

・その状況で、空いている時間にやっておいてくれと新たなタスクが振られる

・空いている時間とは?と聴いてみるが、コンパイルしている1分の時間に少しづつといわれ、そんなの出来るわけ無いですよね?。どこに空いている時間があるか教えて下さい。

と、毎朝そんな問答を繰り返していた。

今までは流していたこの程度のパワハラが嫌になった。

改善をする気もおきなかった。早く次の現場に行きたいなという事ばかり考えていた。

そして気づいた。この仕事にようやく私は飽きたのだと。

子供も数年前に生まれ子供が成人するまでこの仕事をするのも耐えられないと。

そんな時に副業のほうを本業にする決意をした。会社を辞め、起業をした。

今は全く別業種の業界で働いている。この先うまくいくかは良くわからない。

3次請け、4次請けの会社に居たので理不尽パワハラには事欠かなかった。

理不尽の例1)

まだ若手の時、鉄砲玉として使われた事があった。

セキュリティがゆるゆるだった20年以上前の話である

TVCMもよく見る有名システムとある現場

フロッピーを本番端末のあるセンターに密かに持ち込み、定例メンテナンスの振りをしてシステムを黙って更新するという密命が若手の私と、他社の派遣PG新人のK君に与えられた。何度も。

かばんの奥にフロッピーを隠し、かばん持ち込み検査検査員にばれないようにし、潜り込む。メンテナンス用の作業ID使用して黙ってシステム更新するというのを繰り返し行った。

今考えると下手すると裁判沙汰なんじゃないだろうか。しかも見つかったら責任を取らされるという。

ある時、K君が想像以上にアホだった事で事件もおきた。

テンパった彼は入館証ではなく、隠していたフロッピー検査員に見せつけたのだ。

だが、早朝ということもあり、検査員がほぼ寝ていたので問題なく通れてしまった。

今思うとあの時は首の皮一枚で大丈夫だったんだなと。

理不尽の例2)

大手家電メーカー工場仕事をした時、プログラム仕事なのに作業服をまず”自費”で買わされた。作業服いらねえだろう。

工場内にある窓の無いプレハブ小屋が開発現場だった。人権が無ぇ。ファーウェイ工場にはヨーロッパの街並みが再現されているらしいが。

この現場は電機メーカーIT子会社D社からE社に投げられ、部屋に私以外だと窓際管理職のD社社員1人とE社の人間しか居なかった。

何故、E社の人間の中に私1人だけ他社の開発要員が入るのか?

入ってすぐに理解した。担当するシステムが1人だけで長く開発していたシステムで、スパゲティすぎて破綻しかけているのだ。

これを開発し続けられればヨシ、破綻したら私の(会社の)せいということにしたいのだ。

入って1週間で営業にコレはダメだと、早く抜けさせてくれと直訴した。

結局抜けるのに4ヶ月かかったが、その間、本当に酷い日々だった。

さな改修が多く、納期は1週間か2週間毎にやってくる。だが仕様を投げるD社の人が鬱で会社にあまり来ない。他のD社の人に聴いても何も解らないという。

1週間の仕事金曜日納品なのに、木曜日夕方に2日酔でやってきた担当者に仕様を聞き出し、金曜日に意地で納品するも、気に入らないところがあったらしく「前担当者よりスキルが低いですね~」と言い放たれた。精神の苦行だろうか。

私の抜けた後、E社の別な人間担当するも無事破綻しかけているという話は後ほど聞いた。自分スキルでは本当にギリギリだった。危なかった。

パワハラ1)

高校卒業後はニートだった。猫と母としか会話をしない2年を過ごした。

その後、大手新聞社オペレーター派遣会社が共同で作っていた文科省認定ではなく定期の学割も効かない街のパソコンスクールに通った。

教師は二種(基本情報)も持っておらず、業界歴は1年だけで環境変数理解していなかった。

その学校で多重派遣という底辺で生きる技術者の卵に他の20名と一緒になった。

文科省認定専門学校情報処理科では少しマトモに勉強すれば大手SIer商社の子会社の「何ちゃらソリューション」に入れる事も多い。

アホの一つ覚えのように大手の子会社は「何ちゃらソリューション」なので、「何ちゃらソリューション」というIT会社を見たらセンスの良い経営者が名付けた何処か大手の子会社だと思って差し支えない。あとイノベーションとかな。イノベータとかな。

就職氷河期の真っ最中地方中核都市就職をしたのだが、入社直前に東京勤務になった。

会社からは15万円の引っ越し資金けが支給された。氷河期3月転職は出来なかった。

親に敷金礼金4ヶ月分を負担してもらい、親父に秋葉原石丸電気家財一式を買って貰った。

SES企業はまず新人教育の当たりハズレががある。ハズレのほうが多い。

派遣法の隙間をついて、たった1人で新人派遣されてくる事も多い。彼らの大体は苦労を強いられている。

私は運良く同じ会社の人が沢山居る現場に入ったのだが、教育担当想像を絶するパワハラマンだった。とにかくどんなことにもキレる。

ある日個室に呼び出され「お前は田舎に帰って缶詰工場で働け。なるべく頭の働かなくて良い仕事を選んでくれ。業界にいると迷惑だ」と言われてしまった。

親に学校に通わせて貰い、引っ越し代も払ってもらったのに使い物にならないと言われたとき絶望感は大きかった。

地下鉄電車ホームに入ってきた時、ホーム下にふと吸い込まれて行きそうになり、寸前でハッとなり鼻先を電車がかすめていった。

知らないおばちゃんに「しっかりして!」と怒られた。都会の人も優しい。

あと、駅のホームドアは大事だ。全駅につけてくれ。

それ以降、他社でも同じチームの新人には丁寧に接していた。私はまだ恵まれていた方なのかもしれないと思うこともままあった。

パワハラ2)

とある家電の開発ツール担当していた時だった。

その家電TronからLinuxOSが切り替わり、開発・コンパイル用のソフトウェアシミュレーター新規開発となった。

Linuxカーネルプログラミング必要となり、日本語の文献もインターネット上の文献も少なく、オライリー洋書現在日本語版もある)を取り寄せて読まざるを得ない状況だった。

英語は全く出来ない&私が作るとなると当然開発は遅れた。

私はカーネルプログラミングなんて当時はしたことが無かったし、集められた人員Linux上でC言語仕事したことがある。くらいの人員が集められたのだ。

単価が安い人しか使ってはいけないというルール運用されていたらしい。

開発ツールの開発の遅れはプロジェクト全体の遅延に繋がった。

苛立った家電メーカーの”部長”が私を広いフロア大人数の前でこう叱った。

「こいつ全然解ってないじゃないか!!なんでこんなのにやらせているんだ!!」

中国出張で散々おねーちゃんを買った自慢をしていた糞みたいな人間に罵られるのである

月単価55万で350時間働かされ、残業代は1円も出ずである。誰もフォローをしてくれなかった。

徹夜が3日目に突入した午前3時、役職付きが私のPCの後ろで「まだ出来ないのか?」と15分おきにやってくる。

何とか完成はさせた。恐ろしいことに若かった当時は満足感をそれなりに得ていた。

精神的に色々と凹んでいた時に励ましてくれたのは中国人の同じ派遣の人だった。

大卒の育ちの良い中国派遣技術者が沢山居たが、彼らは本当に性格がまっすぐだ。彼らが私の中国感を大分良くしてくれた。

(ずっとメッセンジャーばかりやっている連中もいたが)

彼らのような有益人材が来てくれる時代があと何年あるのだろうか。

余談だが、この糞忙しい間に所属会社がいきなり倒産した。

私は所属未定のまま倒産した次の日も、土日も何故か働いていた。

自分が働かないと他の人が倒れてしまうと当時は考えていたし、ようやく仕事が出来るようになって謎のやりがいを感じていた。

そして、翌週、中間会社から流石に所属未定はマズイのでフリーとして契約しましょうと言われたのだが、単価の話なんて当時若造だった私には解らないのである

結局、300時間以上働く中、残業代無しの45万円固定と言われるまま契約をしたのだが、

当時の私には多い金額に思えていたものの、都内フリー技術者としては当然低すぎる金額であった。

忙しい中、アドバイスを貰う余裕もなく、無知のために中間会社の狸親父に低い金額契約させられたのだった。

みなさんは自分の単価くらいは知っておいたほうが良い。

賢い同じ会社の同僚は失業手当で半年遊んだか、会社契約と同じ単価でフリーとして契約していた。

余談その2、当時なんとなく興味を惹かれて当時流行っていた日本礼賛本を読んでみた。

国産OStron携帯電話世界を席巻!!みたいな事が書いてあったが、その本が出ていた頃、携帯電話OSLinuxSymbianで締められていたのを知っていたので興味深く読んだのを覚えている。

他にも

「1次請けが私の単価を上げてくれても中間会社搾取し、私には全く反映されない話」

野田ドモホルンリンクルバイトのように円高注視し続けた時、円高オフショアブームで単価が2年で2回減った話」

中間会社オフショア開発の失敗の後始末を手伝って欲しいと言われ、現場インフルで倒れた振りをして休んだ話」

「5000円の著作権フリー音源システム使用するのに数百万かかった話」

メモリ枯渇エラーが頻発したのに数百万以上のコストをかけて打ち合わせをする虚無の話」

メモリ初期化エラーが頻発した時に、解決方法としてとんでもない方法提示され、阻止した話」

「15万円のPCが60万円で導入される仕組み」

入社初年度の忘年会の一次会が新宿の有名なゲイショーパブで、他の社員と会話も無く終わった話」

無呼吸症候群で猛烈な睡魔との戦い、現場で怒られるようになり、睡眠薬生活リズムを取り返した話」

同人活動職場にバレて地獄を見た話」

大手会社コンプライアンス啓蒙画像著作権違反を発見した話」

「キレる、人前でイライラする人とは働きたくない話」

「某銀行の開発子会社美人率が高い・銀行員の婚姻率の格差社会の話」

などなど考えていたが長くなったので終わり。

多重派遣先は色々なキャリアの人が多い。元ホスト、元キャバ嬢もいれば元医師中国人、元アニメ会社勤務、元美容師、元寿司職人等の転職組も多い。

以前いたプロジェクトの有名SI企業PMSES上がりの元寿司職人だった。

SES就職の壁が低い。そこを足掛けとして転職し、さらなる転職大手大手子会社転職するのは悪くないキャリアプランの一つなのかもしれない。

SES会社玉石混交なのでまずは良いSES会社に入るのは大事だし、多重派遣改善されてほしいが。

何が書きたかったのか忘れたし飽きた。

業界からやる気の無い45歳が1人減り、業界は少し平和になった。

追記:続編を書きました。

https://anond.hatelabo.jp/20210131035752

2020-10-03

anond:20201002023509

Webエンジニア技術確認って、知識経験が多方面に渡るから難しいと思ってる。

まあWebエンジニアだけじゃないだろうけど。

Webアプリ作れます!と言って完成物だけを見るとたしかにそれなりのができてる。

でもコントローラに全てのロジックが書かれてる。

もちろんテストはない。動けばいい。

N+1SQLインジェクションが埋め込まれてる(後者フレームワーク側でほぼ無いが)。

APIフロントに渡すデータの中に個人情報が含まれている。

Gitは漢のmaster(main)一本だし、rebaseはできない。何かgitでトラブったら全消ししてcloneし直す。

デプロイHerokuコマンドをよく分からず打ち込んでるだけ。ちょっと凝ったことはできない。

データベースも大きなExcel程度と考えていて、一つのテーブルに全部のデータを入れる漢のスキーマ

コマンドも例えばgrepやfindを使えない。XXenvの使い方がわからない。何でもかんでもsudoをつける。

環境変数がどういうものであるか分からない。

エディタコードジャンプができない。

vimが使えないからなんかのはずみでvimの画面になったらパニックになる。

まだまだいろいろあるけど挙げたらきりがない。

これを1時間やそこらの面接判断するのは不可能でしょ。

となるとどこかで線引きをしなければいけないけど、その線引きの一つの手段が対面での会話の内容、受け答えの態度だと思う。

上っ面の知識でも話が上手ければ(そして意識高ければなおさら)、いくらでも「できる人」を見せることができる。

まあ結論としては採用戦略は大切だなということ。

2019-01-30

anond:20190130125611

いや要件書いてるじゃん

平文モードハッシュモード実装しておいて、アクティベートスイッチDB環境変数かに持たせて外部からいつでも切り替え

ハッシュ化だけじゃなくて、運用中に切替えた場合動作確認まで必要でしょ

anond:20190130124142

散々平文保存のデメリット議論した前提だけど。

平文モードハッシュモード実装しておいて、アクティベートスイッチDB環境変数かに持たせて外部からいつでも切り替えられるようにする。

まりハードコーディングしない。

上司発注元にスイッチ切り替えの権限を持たせる。

平文にしろと命じた経緯もドキュメント化しておく。

2018-07-05

増田ガジェットに教えてもらったKODIがスゴイ

anond:20180705111258

直ぐにはじめられてスゴイ

使わなくなったWindowsラップトップにKODIをインストールしてHDMI出力をTVHDMI入力へ挿すだけ

面倒くさい環境変数PATHの設定とかそういうのは一切ない

NASとの連携簡単すぎてスゴイ

ライブラリ登録時にSambaを選ぶだけでKODIが勝手ネットワーク内を探してきてNASが見える

NASライブラリ登録すると保存されてる動画とか音楽とか写真とか速攻で表示できる

動画ISOファイルそのまま再生できてスゴイ

ていうかSambaからBDドライブが見えていてWindowsに挿入されているディスクも見えることにビックリ

お前そこまでできるんか…

YoutubeGoogleアカウント連携できてスゴイ

YoutubeアドオンGoogleアカウント連携するとSubscribeしているチャンネル一覧とか再生リストとかしっかり表示される

もちろん新しいチャンネルをSubscribe登録いね評価お気に入りリスト登録とか出来る

NetflixとかAmazonPrimeVideoを観れるのがスゴイ

外部プレイヤーNetflixやAmazonPrimeVideoを観れてしまう衝撃たるや

AirPlayできてスゴイ

元増田は書いてなかったけどiOS端末からAirPlayできることが判明

動画も音声も写真も飛ばせて便利

iOSのKODIリモコンがスゴイ

公式非公式もあるけどKODIリモコンから直接NASメディア指定できる

実際に使ってみてくれないとわかんないだろうけどKODIのリモコンスクロールするだけじゃなくて色々直接指定できる

そして何よりKODIにインストールされているアドオンすらリモコンから直接指定して制御できるのがヤバイ

ちなみにKODIリモコン非公式の方がカッコ良いの多い気がする

スキンを好みにできるのがスゴイ

見た目をAppleTV風にもAndroidTV風にもできる

スキンがいっぱいあってデフォルトスキンが合わなくてもきっと気に入るスキン見付かる

ていうかたぶん調べたらスキン自作できると思う

TVNetflixやAmazonPrimeVideoを観ると迫力がスゴイ

今までPCiPadで観てたけど改めて映像作品TVで観るべきと認識しましたわ

冷静に考えれば当たり前の話なんだけど今までネット動画からと言ってPCiPadしか使ってこなかったのは馬鹿だった

そしてTVは画質良いんだなと気付いたけどコレもアホな話だった

KODIはスゴイ

KODIというかネット動画を観るだけの環境なんだけどスマートSTBってスゴイ

いやでもやっぱり使わなくなったPC活かしてタダでスマートSTBが手に入るKODIもスゴイ

今晩ずっとKODIで遊べるし良いモノ知ったわ、そういうのに詳しいお前らもやっぱりスゴイ

2018-06-24

中2娘のWindowsデビュー

娘がWindowsデビューしてそこそこの日数が経った

構成HDDHOME以下をバックアップした後にUbuntuを削除、Windowsクリーンインストールさせた

当然UbuntuWindows共存も考えたが、共存状態だと使い慣れたUbuntuへ逃げる可能性があったので、少々可哀想だったがUbuntuは削除した

良い機会だったので隣で図解をまじえて教えながら娘自身インストール作業をさせた

「えっじゃあ他のプライマリパーティションUbuntuも一緒にインストールできるってこと?」

「その認識で間違いないけど今回はWindows練習のためにしない」

Windowsを起動してデスクトップを表示し、娘がまずやったことはWindowsキー(Superキー)を押下だった

「その辺は学校でやってるから判るだろ?」

「判るけど学校パソコンには無いパネルがかなりある

学生は遊ぶだろうしね余計なの消してんだろw」

「あー確かにw」

学校パソコンにはないであろうパネルを「ふーん」とクリックしながら、何かに納得したのか「じゃあそろそろクリスタ」と言われ、最大の目的であるクリスタインストールした

クリスタインストールが終わると、もう良いよと言わんばかりに「わからなくなったら呼ぶね」とアッチ行けされ初日を終えた

日経つと「ターミナルがない」と言われたので「SuperキーからのC,M,DしてEnterで起動するはずだけどcmdはLinuxと使い方が全く違うから調べたほうが良いよ」とアドバイスした

娘が自室に行くと直ぐ戻ってきて「cdできたけどlsできないんだけど?」と言われ「使い方違うと言ったろ?cmdの場合ディレクトリ内容一覧はD,I,R」と言いつつ娘の自室へ向かう

「昨日から少し試してたんだけどWindowsターミナルって全然違うよね?」

「うん違うし、今使ってもらってるのcmdって呼ばれたりコマンドプロンプトって呼ばれてるんだけど、もう一個パワーシェル(PowerShell)というのもある」

「こっちの方がLinuxに近いかもなぁ。lsはできる。だけどtouchはできないぞ。その辺はググれ」

「えっ?touchできないって意味わかんないんだけど」

PowerShell場合はN,E,W,-,I,T,E,Mでできる。cmdは作成できないわけでないけど、ファイル作成のためコマンドというものそもそも存在しない」

Vimも無かった。というかアプリ設定ファイルがどれなのかすら判らない」

「この辺りはLinuxじゃないと諦めて新規ツールを追加するしかない。Windows作法に慣れろ」

「うーん・・・慣れかぁ」

予想通りLinuxWindowsの違いに戸惑っている様だけど、本当に慣れてもらうしかない

娘が「そういえばアプリってどうやってアンインストールするの?」と聞いてきた

スタートメニューアプリアイコン右クリックしてアンインストール。別窓でプログラム機能が起動したらそこからアンインストール

そう教えると再びアッチ行けされてしまった。父ちゃん寂しい・・・

そして昨日いろいろと娘にWindowsの使い勝手を聞いてみた結果が下記の通り

良いところも悪いところもまだまだ色々と言っていたけれど忘れてしまった。女の子は喋り出すとアッチコッチに行って止まらない・・・

また何かしら変化があったら報告しようと思う

-----------

追伸

ディストーション本当にすみませんでしたギャギャギャーン

2017-09-11

https://anond.hatelabo.jp/20170910205249

まじな話をすると、N予備校プログラミング入門コースやるのがオススメ

https://www.nnn.ed.nico

一日8時間勉強時間があるなら、だいたい一ヶ月で終わる内容。

月額1000円だけどしっかり勉強すれば一ヶ月の無料間中に終わると思う。

もともとN高等学校のノンプログラマーの生徒をWebエンジニアとして就職させるために作られたカリキュラム講師曰く去年はこれで二人エンジニア就職を決めたらしい。

内容も相当親切に説明していて、プログラミングで何か作るだけじゃなくて、就職必要な環境構築やセキュリティまでみっちりやる。

http://qiita.com/sifue/items/7e7c7867b64ce9742aee#%E3%82%B3%E3%83%B3%E3%82%BB%E3%83%97%E3%83%88%E3%82%92%E3%82%82%E3%81%A8%E3%81%AB%E6%A7%8B%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%BC%E3%82%B9%E3%81%A8%E5%86%85%E5%AE%B9

講師が書いてる入門コースで習うことがまとめ。テキスト教材もあるけど授業も1項目を2時間で説明している。授業は週2の生放送とそのアーカイブがある。

↓みたいなことが学べる

----

Webプログラミング入門コース

Web ブラウザとは (Chrome, デベロッパーコンソール, alert)

はじめてのHTML (VSCode, HTML, Emmet)

さまざまなHTMLタグ (h, p, a, img, ul, tableタグ)

HTMLで作る自己紹介ページ (HTMLタグ組み合わせ, コンテンツ埋め込み)

はじめてのJavaScript (JS, ES6, エラー)

JavaScriptでの計算 (値, 算術演算子, 変数, 代入)

JavaScript論理を扱う (論理値, 論理積, 論理和, 否定, 比較演算子, if)

JavaScriptループ (ループ, for)

JavaScriptコレクション (コレクション, 配列, 添字, undefined)

JavaScript関数 (関数, 関数宣言, 引数, 戻り値, 関数呼び出し, 再帰)

JavaScriptオブジェクト (オブジェクト, モデリング, プロパティ, 要件定義)

はじめてのCSS (CSS, セレクタ, background-color, border)

CSSを使ったプログラミング (transform, id, class)

Webページの企画とデザイン (企画, 要件定義, モックアップ, 16進数カラーコード)

診断機能の開発 (const, let, JSDoc, インタフェース, 正規表現, テストコード)

診断機能組込み (div, 無名関数, アロー関数, ガード句, truthy, falsy)

ツイート機能の開発 (リバースエンジニアリング, URI, URL, URIエンコード)

Linux開発環境構築コース

LinuxというOS (VirtualBox, Vagrant, Ubuntuインストール, OS, CUIの大切さ)

コンピューター構成要素 (ノイマンコンピューター, プロセス, lshw, man, ps, dfの使い方)

ファイル操作 (pwd, ls, cd, mkdir, rm, cp, mv, find, ホストマシンとの共有ディレクトリ)

標準出力 (標準入力標準出力標準エラー出力パイプgrep)

vi (vimtutor)

シェルプログラミング (シバン, echo, read, 変数, if)

通信ネットワーク (パケット, tcpdump, IPアドレス, TCP, ルーター, ping)

サーバークライアント (tmux, nc, telnet)

HTTP通信 (http, https, DNS, hostsファイル, ポートフォワーディング)

通信をするボットの開発 (cron, ログ収集)

GitHubウェブサイトの公開 (GitHub, リポジトリ, fork, commit, 情報モラル)

イシュー管理とWikiによるドキュメント作成 (Issues, Wiki)

GitとGitHub連携 (git, ssh, clone, pull)

GitHubへのpush (init, add, status, インデックス, commit, push, tag)

Gitのブランチ (branch, checkout, merge, gh-pages)

ソーシャルコーディング (コンフリクト、プルリクエスト)

Webアプリ基礎コース

Node.js (Node.js, nodebrew, Linux, REPL, コマンドライン引数, プルリク課題)

集計処理を行うプログラム (集計, 人口動態CSV, Stream, for-of, 連想配列Map, map関数)

アルゴリズムの改善 (アルゴリズム, フィボナッチ数列, 再帰, time, プロファイル, nodegrind, O記法, メモ化)

ライブラリ (ライブラリ, パッケージマネージャー, npm)

Slackボット開発 (slack, mention, bot)

HubotとSlackアダプタ (hubot, yo)

モジュール化された処理 CRUD, オブジェクトライフサイクル, filter)

ボットインタフェースとの連携 (モジュールのつなぎ込み, trim, join)

同期I/Oと非同期I/O (同期I/O, 非同期I/O, ブロッキング)

例外処理 (try, catch, finally, throw)

HTTPサーバー (Web, TCPとUDP, Webサーバーの仕組み, Node.jsイベントループ, リスナー)

ログ (ログ, ログレベル)

HTTPのメソッド (メソッド, GET, POST, PUT, DELETE, CRUDとの対応)

HTMLフォーム (フォームの仕組み, form, input)

テンプレートエンジン (テンプレートエンジン, jade)

HerokuWebサービスを公開 (Webサービスの公開, heroku, dyno, toolbelt, login, create, logs)

認証利用者を制限する (認証, Basic認証, Authorizationヘッダ, ステータスコード)

Cookie を使った秘密匿名掲示板 (Cookie, Set-Cookie, expire)

UI、URI、モジュール設計 (モジュール設計, フォームメソッド制限, リダイレクト, 302)

フォームによる投稿機能の実装 (モジュール性, textarea, 303)

認証された投稿の一覧表示機能 (パスワードの平文管理の問題, 404, テンプレートのeach-in)

データベースへの保存機能の実装 (データベース, PostgreSQL, 主キー)

トラッキングCookieの実装 (トラッキング Cookie, IDの偽装, Cookie の削除)

削除機能の実装 (データベースを利用した削除処理, 認可, サーバーサイドでの認可)

管理者機能の実装 (Web サービス管理責任, 管理者機能の重要性)

デザインの改善 (Bootstrap, レスポンシブデザイン, セキュリティの問題があるサイトを公開しない)

脆弱性 (脆弱性, 脆弱性で生まれる損失, 個人情報保護法, OS コマンド・インジェクション)

XSS脆弱性対策 (XSS, 適切なエスケープ処理, リグレッション)

パスワード脆弱性対策(ハッシュ関数, メッセージダイジェスト, 不正アクセス禁止法, パスワードジェネレーター, 辞書攻撃)

セッション固定化攻撃脆弱性対策 (セッション, セッション固定化攻撃, ハッシュ値による正当性チェック)

より強固なセッション管理 (推測しづらいセッション識別子, 秘密鍵)

CSRF脆弱性対策 (CSRF, ワンタイムトークン)

安全なHerokuへの公開 (脆弱性に対する考え方, HTTPの廃止)

Webアプリ応用コース

Webフレームワーク (Express.js, フレームワーク導入, 簡単なAPI, セキュリティアップデート, Cookie パーサー, ミドルウェア, 外部認証, ロガー)

ExpressのAPI (app, Properties, Request, Response, Router)

GitHubを使った外部認証 (Passport, OAuth)

スティングフレームワーク (Mocha, レッド, グリーン, リファクタリング)

継続的インテグレーション (CircleCI)

クライアントフレームワーク (Webpack, Chrome 以外のブラウザでもES6)

DOM操作フレームワーク (jQuery, jQueryアニメーション, this)

AJAX (jQuery.ajax, クロスドメイン, 同一生成元ポリシー, x-requested-by, CORS)

WebSocket (WebSocket, WebSocketの状態遷移, Socket.io)

RDBとSQL (DDL, DCL, CREATE, DROP, INSERT, DELETE, UPDATE, WHERE)

データモデリング (リレーショナルモデル, 正規化)

テーブルの結合 (外部結合, 内部結合, 片側外部結合, JOIN ON)

インデックス (インデックス, 複合インデックス, Bツリー)

集計とソート (SUM, COUNT, ORDER BY, GROUP BY)

「予定調整くん」の設計 (要件定義、用語集、データモデル、URL設計モジュール設計、MVC)

認証とRouterモジュールの実装 (Mocha, supertest, passport-stub, モックテスト)

予定とユーザーの保存 (セキュリティ要件, UUID, 複合主キー)

予定とユーザーの一覧の表示 (非同期処理, Promise, then)

出欠とコメントの表示 (入れ子の連想配列, Promise.all, 子どもからデータを消す)

出欠とコメント更新 (Promiseチェイン, リファクタリング)

予定の編集と削除 (要件の衝突, 関数再利用)

デザインの改善 (this, グローバルオブジェクト)

セキュリティ対策と公開 (X-Frame-Options, Heroku環境変数)

2017-02-10

ツールが人を馬鹿にする

まあみろと思う。

「便利なツールによって人は馬鹿になった」とは、上司の口癖のひとつである

だが厳密にいうとこれは間違いだ。

便利なツール人間を均しているのだ。つまり馬鹿になっているのは、あたまのいい連中だけだ。ははは。ざまーみろ。

テラタームの普及により、新人からtelnet概念が掴めなくなった。

ffftpばっか使うからftpすらままならない。

環境変数存在するからjavaバージョンも変更できねえ。

みんなそうなんだ。ははははは。ざあまあみろ。ははははは。

かつて、コマンドとかカレントディレクトリとか、エンジニア界の絶対的概念理解できず躓いて、頭が悪い認識されたやつ

そんなやつが、それを明らかにせず、あたまのいいやつと同等のパフォーマンスを上げられる時代になったんだ。

そうして自分馬鹿であることに自覚がないやつは、ある程度の時期で気づく。浅い。考える力がない。

そして、できないやつとレッテルはっていた、自分バカにしてきた、

作業の遅いやつが、一番だいじな「思考力」をもってるのだと気づく。

便利な道具うんぬんじゃなくて、

それは経過にちょっと影響を与えるだけで、

本質はなにもかわってないんじゃないかなって、

わたしは思います

どう思いますか。上司さん。

ログイン ユーザー登録
ようこそ ゲスト さん