「コンポーネント」を含む日記 RSS

はてなキーワード: コンポーネントとは

2022-04-30

FirefoxTLSハンドシェイクが定期的にタイムアウトする問題が直った気がする

直った気がするけどIssueが見当たらねえ

なんかのコンポーネントを書き直した時に一緒に直ったのか?

2022-04-27

Xbox等をインストールすると大量のDistributedCOMの10016警告がイベントに記録される件

こんなの

アプリケーション固有 のアクセス許可の設定では、CLSID

{2593F8B9-4EAF-457C-B68A-50F6B8EA6B54}

および APPID

{15C20B67-12E7-4BB6-92BB-7AFF07997402}

の COM サーバー アプリケーションに対するローカルアクティブ化のアクセス許可を、アプリケーション コンテナー 利用不可 SID (利用不可) で実行中のアドレス LocalHost (LRPC 使用) の

ユーザー Masuda\YourPC SID (S-*--**-******-******-******-****) に与えることはできません。このセキュリティ アクセス許可は、コンポーネント サービス管理ツールを使って変更できます

結論としては

https://docs.microsoft.com/en-US/troubleshoot/windows-client/application-management/event-10016-logged-when-accessing-dcom

であり

These events can be safely ignored because they don't adversely affect functionality and are by design.

It's the recommend action for these events.

ということでこれはそういうものなので無視してよい、気になるならイベントビューアに記録されないようにフィルタを書け、警告の文面通りにセキュリティ許可をいじるのはどんな副作用が起きるかわからないのでお勧めできないだそうだ

お勧めできないってなんだそりゃ

あいいや

マイクロソフトがそう言ってるんだからイベントビューアの記録から外すのが妥当なのだろう

2022-04-03

SPAコストが高いっていうけどコンテナインフラも同じだよな

コンテナって段階的に使うことはできなくて、運用とかデプロイ周りのコンポーネントを全て書き換えないといけないんだよな。技術力がないと必ず詰む。スケーリング再現性メリットがあるのはわかるが犠牲が多すぎる。俺は昔からコンテナインフラには懐疑的だったよ。

2022-03-27

anond:20220327194309

Web系のプログラマーDockerとかフレームワークのものを指して「技術」という言い方をするのがすげえ気持ち悪い。そういうところからも、本質的に雑というか、増田の言うように技術を作る気が無いんだろうなという気はする。

例えばDocker公式ページでの ”technology” という単語の使われ方を見てみると

https://www.docker.com/resources/what-container/

Docker container technology

Docker’s technology

Technology available from Docker

などといった表現になっている。つまり technology とはDocker構成している技術的な要素やコンポーネントのものを指していて、Dockerというフレームワークを指しているわけではない。同じ technology がDocker以外のフレームワークの中にあってもいいし、技術的な概念としてのcontainerなどはその実施例の一つであるDocker containerより上位にあるものということだよな。

日本Webプログラマーが言う「技術」という単語はそういった意味でのtechnologyを指しておらず、まるで最新のiphone出た!というようなノリでフレームワークだの言語だのといった実施例を指してるように感じて非常に気持ちが悪い。

2022-03-26

Reactの良さがわからない

JSXが嫌いとかそう言うわけじゃない。慣れれば、これはこれで良いかなと感じる部分もある。

只々、双方向バインディングが一々面倒。


何かの入力項目があった場合に、State定義して、入力変更イベントを拾って、Stateに設定し直す処理を毎度書く必要がある。

何十項目とそれがあった場合、面倒だし、それらが単純なものとは言え、無視できないコストになってしまう。


コンポーネントコード中に、あまり本質的でない、State定義入力変更イベントStateに設定し直す処理が、何十スクロールと続くのって読んでいて辛くならない?


State定義Objectでまとめて定義するって言うのも、解決策の一つなんだろうか?

調べてみたらできるっぽいけど、Objectの分割代入を使わなくちゃいけないみたいで、これはこれで面倒。


React Hook Formと言うのもあるみたいだけど、そもそもコアな部分で、それを吸収できる機構が無いのは如何なものかと思ってしまう。

(それをしないのが、React的なシンプル設計思想でもあるのかな?)


Vue.jsでは、双方向バインディングはv-modelだけで出来ちゃうし、Angularの事は詳しく無いけどAngularも同じノリで出来るみたい。

まとめると、自分的な辛さの原因は『双方向バインディング辛い』ってことだけなんだけど、みんな本当にReactに満足してるのかな?


あと、Reduxに関しても、ちょっと言いたい。大抵のプロジェクトで、そこまでRedux使いたくなるか?

SNSのようなリッチインタラクティブが求められる尖ったUIを作るのなら、もしかしたら必要なのかもって思うけど、大抵の場合不要じゃないかって思うんだけど。

2022-03-05

僕「書いたプロセスは50です」 面接官「ごじゅうっ!?

今日面談にて

面接官「Javaのご経験一年ほどあるとのことですが、プロセス数ではどのくらいですか?」

僕「えっと……(プロセスってなんだっけ? コンポーネント単位?)」

僕「50くらいです」

面接官「ごじゅうっ!?

妙に驚いてたなと思って後で調べたら、プロセス=行数のことだった

流石に3000行ぐらいは書いてるよ……一年間で50行って何だよ……

結果まだだけどもうダメ

2022-02-14

anond:20220214110250

うーん、レストラン側がカスというのは間違いないんだけど、食べ残しを再提供というのは多少時間が経っても味は落ちないということだとも思う。

例えばフレンチコンソメってマジで頭がおかしいくらい作る手間がかかるんだけど、その事前の手間の方で味が決まってるから提供したとしても実質的には大して変わらないというのは不自然ではないと思うんだよね。

ソースなんかはそういうレベルで手間がかかるコンポーネント複数組み合わせて作ってたりする。

本当に舌が肥えてる人はそれでも気づくんだろうけど、気づかないからといって情報を食ってるだけとはならないと思う。

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

2021-12-31

anond:20211231112736

VDI 導入、コロナ禍におけるビデオ会議課題改善

そして中長期の PC 環境の構想へ

リクルートにおける VDI の導入、運用コロナ対応、そして今後の ICT 環境を紹介する連載。

今回は、VDI 導入を振り返り、中長期の PC 環境の構想をお伝えする。

石光直樹,リクルート(2021 年 05 月 24 日)

23 →目次に戻る

 “ ネットワーク状況によっては使えないシーンがある点 ” は、VDI なら避けられない問題です。特に外出中は、ス

マートフォンによるテザリングで VDI に接続する際に、エリアや移動状況によっては通信環境が安定せず、通信

切断されたり、通信速度が遅くなったりするなど、VDI がスムーズ動作しないシーンがありました。この課題

対しては、スマートフォンテザリング容量の観点なども含めて検討し、対処してきましたが、完全には解決でき

ませんでした。そこで、VDI では業務遂行がどうしても困難なユーザー限定し、さらに高セキュリティ業務以外

での利用において通常の PCFAT PC)を配布するようにしました。

もう一つの課題ビデオ会議実施時の不具合 ” については、もともと VDI とビデオ会議親和性は良くない点

が前提にありますビデオ会議場合クラウドサービスを使うことが多いと思いますが、通常の PC なら、クラ

ウドサービスPC 上のビデオ会議ソフトウェアが直接つながり、ユーザーは快適にビデオ会議ができます。一方、

VDI の場合クラウドサービスと VDI 上のビデオ会議ソフトウェアがまず接続され、その後 VDI から VDI 専用端

末(シンクライアント端末)に音声と動画転送される形になります。音声も動画もいわば二重でデータ転送

れる仕組みなので、劣化してしまうのは避けられません。具体的には、音声が途切れ途切れになったり、動画

カクカクしてスムーズ動作しなかったりすることになります

また、システム管理観点でもデメリットがあります。通常の PC では、ビデオ会議ソフトウェア機能クラウ

サービスとのネットワーク接続状況をチェックしてくれて、最適に通信する仕組みなのに対し、VDI ではそのよう

機能は使えません。ビデオ会議ソフトウェアにその機能が搭載されていても、VDI から VDI 専用端末に通信

る段階でそれらの機能無効化されてしまうのです。その結果、VDI 上でのビデオ会議は通常よりも多くの通信

量が発生してしまい、外出時などテザリングの容量を圧迫することになっていました。

しかし、最近ではビデオ会議のこうした課題回避策として、クラウドサービス各社が VDI 用のソフトウェア

リリースしてくれるようになってきました。VDI 用のビデオ会議ソフトウェアを VDI にインストールして、一部のソ

フトウェアコンポーネントを VDI 専用端末にもインストールします。そうすることで、VDI と VDI 専用端末が協調

してビデオ会議端末として動作し、クラウドサービスと VDI 専用端末とが直接つながる構成になり、従来に比べる

と音声や動画劣化が大幅に避けられるようになってきています

24 →目次に戻る

中長期の PC 環境を構想する――“ 中長期 ” という新たな観点の導入

 以上をまとめると、いまの VDI 環境では当初想定したメリットは得られたものの、ネットワークビデオ会議

おいてそれぞれの課題がありますネットワーク課題は、一部ユーザーFAT PC を配布することで、ビデオ

議の課題については VDI 用のビデオ会議ソフトウェアインストールすることで解決できます。いまの VDI 環境

評価するマトリクスを作って検討してみると、VDI 用のビデオ会議ソフトウェアがうまく動作すれば、VDI 環境

をそのまま継続するのが妥当なように見えました。とはいえ、そのような “ カイゼン策 ” を施しながら、VDI をい

まの形のまま続けるべきなのでしょうか。そして、そのような思考プロセスに本当に問題はないのでしょうか――。

われわれは検討時に、新たな視点を導入することにしました。それは “ 中長期 ” 視点です。2015 年においては、

3 つの課題という、“ いま、ここ ” における課題に対する解決策として VDI を採用したものの、今後長きにわたっ

会社を支えていくPC 環境を構想するに当たり、それだけでは不十分ではないかと考えました。リクルートは創

から 60 年以上がたちました。今後も長きにわたりカスタマークライアントの皆さんのためにより良いサービ

スを提供し続けることになるでしょう。それには短期的な視点だけではなく、中長期でのあるべき PC 環境を描い

て、それに向かっていまどうすべきかを考えなければならないと思ったのです。

そのためには、まず働き方が将来的にどうなるかを想定しなければなりません。次期 PC 環境検討していたの

コロナ禍前でしたが、ゆくゆくは「完全に場所を選ばない働き方」になるだろうと予想していました。キーワード

で示すならば、「Anytime/Anywhere/Securely/Work Digitally」という表現になるでしょうか。そのような働き方

を実現する PC 環境については、既にいわれて久しいですが、クラウド中心の方向性は変わらないでしょう。加えて、

今後は多種多様デバイスが出現すると想定しました。いまは PC や VDI が中心であり、補助的にスマートフォン

使われているというのがビジネスにおける PC 環境の実情だと考えます。では、今後はどうなるのか――。

スマートフォン中心になるという見方もありますが、学校では情報教育が進みノート型の端末が支給されており、

家庭においてはスマートスピーカーが広まりAR/VR拡張現実仮想現実)もゲームなどを中心に広がってき

ています。また、企業では製造業などで AR/VR が使われる事例も出てきており、IoT デバイスもいろいろなユー

スケースが生まれてきました。

そう考えると、ユーザーが使う端末は、どれかの端末に収束していくのではなく、2in1 あるいはクラムシェル

などの PCスマートフォンタブレットAR/VR デバイススマートスピーカーIoT などいろいろなデバイス

使いこなしていく世界になるのではないかと考えます業務のさまざまな場面で、いろいろなデバイスの中から

適なものを選び、さまざまなクラウドサービスを使いこなし業務をしているイメージです。それらを使うことで、場

所を選ばず、どこにいても対面同様のコラボレーションができるでしょう。さらには、AI人工知能技術などを

活用しながらユーザー業務支援するなどして、高い生産性を生み出すことができる環境になっていくのではな

いか、と予測します。

25 →目次に戻る

中長期視点で考え、いま行動する――「クラウドマルチデバイス環境」へ

われわれは、このような環境を「クラウドマルチデバイス環境」と呼ぶことにしました。中長期的には「クラ

ウドマルチデバイス環境」になるとして、VDI の EOSL 契機に対応しなければならないわれわれの次の PC

境はどのように整えたらいいのでしょうか。

 大事なのは、「中長期視点で考え、いま行動する」ことです。中長期視点だけを考えれば、一気に「クラウド

マルチデバイス環境」にすべきでしょう。ところが、われわれの環境内にはまだレガシーシステムが残っており、一

気にクラウドだけを利用する業務形態に変えるのは困難でした。また、検討した結果、現時点では VDI に勝るよ

うなセキュリティ確保の仕組みは見当たりませんでした。そのため、情報資産の囲い込みができるという点で、高

セキュリティ環境に対しては継続して VDI を活用することにしました。

セキュアな環境以外の用途においては、“ いま ” のことだけを考えれば、ビデオ会議の部分のみを改善して VDI

環境のまま、次期 PC 環境を作る方向もあり得ました。しかし、それでは今後の PC 環境が VDI に固定化されて

しまうことになります。VDI 環境をいままでと同様にオンプレミスで作るには、初期に大きな設備投資必要とな

り、また一度構築してしまうと使い捨てるわけにもいかず、それをしばらく運用し続ける必要があります。今後い

ろいろなクラウドサービスデバイスが出現すると、活用したいと思う方も多いでしょうが、既に VDI を使ってい

場合、VDI の代わりに別のものをすぐに使うということはなかなかできません。そういう意味で、PC 環境が固

定化されてしまうことになるのです。

 中長期の環境に一気に切り替える方針でもなければ、現在のことだけ考える方針でもなく、「中長期視点で考え、

いま行動する」方針検討した結果、次期 PC 環境は「クラウドマルチデバイス環境」を目指すための第一

位置付け、「VDI と FAT PCマルチ環境」を構築することに決定しました。先述した通り、レガシーシステム

存在し VDI 以上に情報の囲い込みができるソリューションがない中で、VDI から離れ、一気に中長期的な将来

像を目指すのは困難です。とはいえ「将来像に向けた環境をいま作るべき」と考え、VDI と FAT業務特性に応

じてユーザーに配布するマルチ環境刷新することにしました。つまり、高セキュリティ業務ユーザー向けにはセ

キュリティを確保した「セキュア VDI」、それ以外の一般ユーザー向けには FAT PC を配布することにしたのです。

将来的にはマルチデバイスといっても、いまだ PC がメインなので、まずは PC を配布し、その上で今後 AR/VR

デバイスといった他のデバイス検討していきたいと考えています

なお、VDI 環境としてはもう一つ、機能更新がない固定的な OS必要とするレガシーアプリ向けの環境も VDI

で用意することにしました。用途限定されていることから、社内では「特定用途 VDI」と呼んでいます

26 →目次に戻る

VDI 用のビデオ会議ソフトウェア導入による 2 つの課題

 以上をまとめますと、働き方は中長期的に「完全に場所を選ばない働き方」へと変わり、それに応じて PC

境は「クラウドマルチデバイス環境」になっていくでしょう。われわれも VDI の EOSL のタイミングで変わって

いかなければならず、将来に向けた第一歩として、次期 PC 環境は「VDI と FAT PCマルチ環境」を実現する

ことにした、ということになります

なお、コロナ禍において、われわれは現在の VDI 環境下でビデオ会議改善を試みました。先述した VDI 用

ビデオ会議ソフトウェアの導入を検討し、一部導入したのです。その結果、ビデオ会議の音声と動画品質

極めて改善されることになったものの、2 つの課題が新たに見つかったのです。

1 つ目は、普通ビデオ会議ソフトウェアと VDI 用のソフトウェアとの間に機能差があった点です。この課題

今後解消されるかもしれませんが、われわれが導入した段階では VDI 用のソフトウェア機能面で劣っていました。

2 つ目は、導入/管理コストです。1 つのビデオ会議システムしか使っていない場合問題いかもしれません

が、複数使っていたり、今後新しいシステムの導入を考えようとしたりすると、ソフトウェアの導入、管理に都度

工数がかかってしまうという難点が明らかになりました。

 以上 2 点については、いま検討されている方のご参考になれば幸いです。次回は、リクルートがいままさに取り

組んでいる「VDI と FAT PCマルチ環境」についてお話します。

2021-12-23

anond:20211223202504

WindowsコンポーネントLinux上でエミュレートしてるんだと思うんだけど、GPUとかのハードウェアに直接アクセスできるようにしてるんだと思う。ほんとにここ数年の進化。最新の技術だよ。

2021-11-07

革新的で軽量なブラウザー(自称)、Floorpブラウザ白旗を揚げた

これまで、

https://anond.hatelabo.jp/20210828113740

https://anond.hatelabo.jp/20210918200735

とこき下ろしながらも様子を見ていたが、当初の売りだったはずのChromium派生ブラウザを諦め、Firefoxベースブラウザとなるようだ。当初の「2022年までしかサポートしない」発言はどこに行ったのやら。

正直な理由は何も書かれていないブログ記事

https://blog.ablaze.one/786/2021-11-11/ より。

Chromium採用しなくなったワケ

結論Google APIChromium機能が原因です。 (中略)Google 側としては、 Chromeシェアを伸ばしたいので、Edge に対してなんらかの形で Chromium から機能制限をかけると私は予想しています

具体的には次が挙げられます

(中略)Google現在独占禁止法裁判にかけられており、負けた場合、(中略)Chromium というウェブ世界になんらかの規制をかけてもおかしくありません。

のように理由が挙げられているが、言い訳自分の都合のいい方向に持って行っていないか?これらはFloorpをリリースする前に検討すべきことであって、リリース時点では多少であっても対策しているべきものである

ちなみに、上記4点についてEdge

ので、Edgeほとんどダメージは受けない。本気でEdgeを開発終了に追い込ませるなら、Chromiumを開発終了させてChromeだけをクローズドソースで開発すれば良いわけだが、オープンソース文化破壊することになるし、Edge側もChromiumに貢献している部分があり簡単には止められないだろう。

もちろん、個人の寄せ集めでは難しいレベルにはなってきているし、当初に思った以上に面倒なことになるからFirefox浮気したのではないか

これだけあっさりとChromium派生からFirefox派生へ乗り換えたのは、上記ブログ記事にある理由よりも、どちらかと言えばKinzaパッチ適用想像よりも遙かにしかたからだろう。コーデック問題がどうにもならなかったからもあるだろう。それと開発者受験という一生を左右する大事イベントを迎えて、Chromium派生メンテナンスする人が誰もいなくなるからではないのか。それらをなぜ正直に書かない。まあ当事者だったら書きたくないわな、そんな都合の悪いこと。

今後

これまでのChromiumベースとは使い勝手と全く異なるFirefoxベースとして作り直している最中で、独自機能を追加していくことになるだろう。独自機能果たしてFirefoxアドオンで十分まかなえる機能にすぎないのか、その範疇を超えるものなのか。革新的で軽量なブラウザー(自称)はFirefoxベースでも宣伝するつもりなのか、Fireminだけ入れておいて「最軽量」とまた言うつもりなのか。

早くも迷走するFloorpブラウザの今後は、ある意味目が離せない。

2021-10-11

或るリサイクルショップで騙されそうになった話

リサイクルショップの店内をうろついていたら、既にディスコン品となった自転車部品が売られていた。

外箱の機種のチェック欄の所には正式な機種(グレード)も記載されていた。

箱入りで未使用品、しか格安だった。

Webサイトでは新品(未使用品)が売られている事も有るが、価格が下げられていることは無い。

最初は購入を躊躇った。

古い機種の部品を寄せ集めて一式揃えるのか、全く新しい機種で一式を揃えるべきか。

一週間悩んだ挙句、古い部品を購入することとし同ショップを再訪した。

レジで念のためラップを外してもらい、箱の中身が未使用かどうかを確認した。

 

家に帰り、暫く手を付けていなかった自転車を、汗だくになりながら分解と掃除した。

さて新しい部品の取り付け、箱から取り出し取り付けようとしてぎょっとした。

箱に書かれている機種と、部品のものに書かれている機種名が違っている。

下位グレードの部品だ。使用する3つの部品全てを調べてみると、全て同じ下位グレードの物だった。

騙された!と思った次の瞬間、もしかしてリサイクルショップも騙されたのか?という思いが沸き上がってきた。

レジで箱を開けた時、部品を細部に渡って確認するべきだった。

箱に書かれた機種名だけを信頼してしまった事を悔いた。

 

取り急ぎリサイクルショップ電話し、箱と中身が違う事を説明し返品可能か聞いてみた。

電話対応してくれた男性謝罪言葉と、申し訳ないが返金処置に来てくれという事を言ってくれた。

ここで疑問なのが誰が悪かったのかということだ。

リサイクルショップに持ち込んだ人をAとする)

  1.Aが、騙すつもりで下位グレードの部品を入れて、事情に詳しくない店員はそのまま受け入れた。

  2.Aは箱と中身が違う事を説明し、店員理解した上で受け入れたが、箱と中身が違う事を表示しなかった。

  3.細部まで確認せずに購入した俺が悪い。

1ではAが悪いが、2では店員が悪いのではないかと思うのだが、犯人捜しをする意味も無いだろう。

結局自転車は分解掃除されたままの状態となっている。分解する前はまだなんとか走れたのだが。

ディスコン品の未使用部品を寄せ集めても、中途半端な出費となるが、

新しいコンポーネント一式買い揃えるにはかなりの出費となる。

さてどうしたものか、また悩むこととなった。

2021-09-25

オブジェクト指向はすでに粒度時代にあっていない」を読んで

記事

@kis (id:nowokay) さんの以下の記事についてです。

https://nowokay.hatenablog.com/entry/2021/09/25/042831

ブコメにもあるようにちょっと内容が雑というかわかりにくいせいで賛否両論になってしまっていて、もしかしたら近いうちにアンサー記事が出るかもしれませんが、自分自身理解を助けるためにも言わんとしていることを推測しつつ、自分認識もまとめておこうと思い書くことにしました。明らかに誤読してそうな箇所があれば、指摘してください。

前提

まずは前提を書いておかないと論点がぼやけると思うのでいちおう。

自分バックグラウンドは以下:

その他の前提:


本文およびブコメを読んで思ったこ

2000年代に入って関数型プログラミングが脚光を浴び始めたのは、コンピュータ資源が潤沢になりパフォーマンスをそれほど気にしなくってよくなったことが大きな理由ではないか、という認識があります

関数型プログラミング言語の内部実装を読んだことがないので推測ですが、データを不変にするということはその都度メモリ領域を新たに割り当てることになり、そのオーバーヘッドプログラムパフォーマンスに影響を与えるので、パフォーマンス要件がをシビア場合、どうしてもメモリ割り当てや計算効率を考えるとミュータブルにせざるをえないと思います。が、ウェブアプリケーションに限っていえば、データベースアクセスネットワークアクセスレイテンシが大きいので、そうした相対的に細かいオーバーヘッド無視しても(大抵の場合は)問題にならなくなった、というのが「時代」の流れなんだという認識です。

いっぽうで別の観点もあって、REST API や FaaS が一般化して、関数単位で処理を分割し、アプリケーション外部に配置することが当たり前になってきた現状があり、マイクロサービスのようにアプリケーション自体モジュールの一単位として考えると、アプリケーション内部のモジュール同士でも関数ベースでやりとりする形になっても不自然ではないと考えられます

記事にもありますが、RPC派生実装?)として生まれJava の CORBA や MicrosoftDCOM みたいな振る舞い付きのオブジェクトコンポーネント)を共有しようという世界観は廃れ、REST API のような単一の振る舞い(エンドポイント)とそれにひもづく JSON のようなデータ構造のみを受け渡すやり方が一般的になったアプリケーション通信の潮流と、計算資源が潤沢になって再度脚光を浴びた関数型プログラミングが、レイヤーの違いを飛び越えてひとつになろうとしているのではないか、と。

まり、元記事に書かれている「時代に合ってない」というのは、「データ構造と振る舞いが一体となったオブジェクト」のような「なにか」は、そうした背景があるために、どこにも存在する必要がなくなってきているのではないか、と解釈しました。

なので、以下のコメントちょっと論点がずれてると思いました。

はあ?「再利用する方法としてはWeb APIが主流」って、その中身をオブジェクト指向設計することは、全く矛盾しません。 部品化の単位は、慣習や柵などで大きく変わりますオブジェクト指向とはほぼ無関係です。

https://b.hatena.ne.jp/entry/4708813645995359202/comment/suikyojin

なんでサービスとして外とやり取りする話とサービスの内部設計の話をごっちゃにしてんだ。なんか理解度が怪しくない

https://b.hatena.ne.jp/entry/4708813645995359202/comment/ssssschang

しかに、アプリケーション単位アプリケーション内部のモジュール単位とでその表現形式を合わせる必要はないんですが、元記事の言わんとしていることはこの一文に端的に表れていると思います

ソフトウェア記述をまとめるという視点では主にステートレス関数を分類できれば充分で、データと振る舞いをまとめたオブジェクトというのは大きすぎる、システムを分割して管理やすくするという視点ではオブジェクトというのはライフサイクルリソース管理視点が足りず小さすぎる、ということで、オブジェクト指向粒度でのソフトウェア管理は出番がなくなっているのではないか、と思います

個人的にわからなかったのは以下の部分です。

オブジェクト指向でなぜつくるのか」という本がありますが、「え、いまどきオブジェクト指向でつくらなくない?」っていつも思います。内容的には、もうほとんどはオブジェクト指向関係ないソフトウェア工学の紹介になっていますね。

当該書籍は読んだので後半はまぁわかるんですが、前半は「え、いまでもオブジェクト指向でつくるのが主流じゃないの?」って思ってしまますオブジェクト指向定義が「データ構造と振る舞いが一体となったオブジェクトの集まりとしてソフトウェア組織化すること」なのであれば)。

おわりに

Joe Armstrong が "Why OO Sucks" を書いたのが2000年とのことなのですが、そろそろこうした議論収束に向かってほしいと個人的には思います(とっくに収束していると感じている方もいらっしゃるでしょうけど)。

https://gist.github.com/posaunehm/4087971

2021-08-28

革新的で軽量なブラウザー(自称)、Floorpブラウザこき下ろす

Floorp ウェブブラウザと名乗るブラウザ最近出てきて、開発が終了したKinzaパッチが公開されたら取り入れると宣言してKinzaの後釜を狙ってるらしい。中の人学生(中学生高校生?)らしく、使っていくうちにチャラさ、痛々しさが目立ってきたのでこき下ろしていきたい。

このブラウザが気になってしょうがない人はTwitterアカウントに行けばダウンロードリンクがあるのでダウンロードして確かめればよい。

※以下の話は、断りのない限り8/28に公開された公開ベータ版(v1.1.3)のことである

使用許諾契約書に突っ込みどころが多すぎる (v1.1.3)

インストーラーを実行するとまず使用許諾契約書が出てくる。

*Floorpブラウザ利用規約

---------------------------------------------------------------------------------------------------------------------------------------------

Floorp デベロッパープレビュー利用規約

1.Floorpをお選びいただきありがとうございます。高速で軽量なブラウジングをお楽しみください。

2.Floorpのソースコードは一部をAblazeのGithubにて公開しています。また、ChromiumライセンスBSDライセンス」に基づき、作成者は本ソフトウェア(Floorp)によって発生した損害は保証できません。

3.Dev Previewエディションの場合TwitterなどのSNSスクリーンショットなどをアップグレードしないでください。

4.感想やご不明な点がございましたら、お聞かせください。これは義務です。Floorpの改善に協力してください。

5.Ablazeの利用規約に沿って本ソフトをご利用ください。

6.以下に表示されている利用したオープンソースソフトウェア感謝しましょう。Floorpはこれがなければ実現しませんでした。

7.開発者はあまりすごいことをしていないことに気づきましょう

8.ソースこちhttps://github.com/Ablaze-MIRAI/Floorp-Browser

---------------------------------------------------------------------------------------------------------------------------------------------

利用したオープンソースソフトウェア

[※以下略]

さて、どこから突っ込もうか。

Floorp デベロッパープレビュー利用規約
いやこれ、公開ベータ版でしょ?
Floorpをお選びいただきありがとうございます。高速で軽量なブラウジングをお楽しみください。
これ、規約内に組み入れる必要あります
スクリーンショットなどをアップグレードしないでください
アップグレードwwwwwどうやったらアップグレードできますかね?めっちゃ草生えたわ。
感想やご不明な点がございましたら、お聞かせください。これは義務です。
あったら教えてなのに義務と言い切る。どっちなんだよ。
Ablazeの利用規約に沿って本ソフトをご利用ください。
それなら「Ablazeの利用規約」とやらをここに載せろよ。超不親切。
開発者はあまりすごいことをしていないことに気づきましょう
これ、規約内に組み入れる必要あります

8/29公開版(v1.2.4)の使用許諾契約書は遊びすぎ

*Floorpブラウザ利用規約

---------------------------------------------------------------------------------------------------------------------------------------------

あああああああああああああああああああああああああああああああ開発つかれた

1.Floorpをお選びいただきありがとうございます。高速で軽量なブラウジングをお楽しみください。

2.Floorpのソースコードは一部をAblazeのGithubにて公開しています。また、ChromiumライセンスBSDライセンス」に基づき、作成者は本ソフトウェア(Floorp)によって発生した損害は保証できません。

3.Dev Previewエディションの場合TwitterなどのSNSスクリーンショットなどをアップグレードしないでください。

4.感想やご不明な点がございましたら、お聞かせください。これは義務です。Floorpの改善に協力してください。

5.Ablazeの利用規約に沿って本ソフトをご利用ください。

6.以下に表示されている利用したオープンソースソフトウェア感謝しましょう。Floorpはこれがなければ実現しませんでした。

7.開発者はあまりすごいことをしていないことに気づきましょう。後眠いんだけどどうしよう?癒してください!彼女ください()

8.Floorpは有志によって無料提供されています寄付は受け付けますのでダイレクトメッセージ https://Twitter.com/Floorp_Browser へお越しください

9.ソースこちhttps://github.com/Ablaze-MIRAI/Floorp-Browser

[※以下略]

利用規約をなんだと思っているんだ。「利用規約は楽しく、ユーモアにありふれさせたい」とか「Floorpの利用規約最後に・彼女になることに同意しますか?って書けば同意させられんじゃん」とかつぶやいてる時点でなめてるしふざけてる。

公開されているソースコードタイトルが痛い

Ablaze-MIRAI/Floorp-Browser: Chromiumで一番軽量なブラウザの大部分のソースコードです。

というタイトルなのに、実際に公開されているのはブラウザコンポーネントに比べてかなり少ない。これのどこが「大部分」なの?

あと何の根拠もなく「Chromiumで一番軽量」って言い切ってるだけで相当痛い。一番軽量かどうかは知らんが、メモリ使用量が少ない=軽量と思い込んでる節がある。ほか、

Chromium本体BSDにのっとって公開なし

という文は誤解を生むから今すぐ止めろ。これだとBSDライセンス違反するぜ!と宣言してるような解釈もできるから利用規約OSS感謝しましょうとか言っておいてこの扱いひどくないか

ブログ記事も痛い

このブラウザ自己紹介記事(https://blog.ablaze.one/573/2021-08-16/)が先週公開されていたが、ここに書かれてる内容も相当痛々しい。

メモリ使用量が少ないのは見せかけ

ブラウザインストールするとメモリカスタマイザーなるものが同時にインストールされる。これが動作することでFloorpブラウザメモリ使用量が劇的に減ってるから軽い、ということらしい。

しかし、ブラウザを起動したまま放置してみてから、実際のWindowsタスクマネージャーの様子をよく見てほしい。メモリ使用量が数MBとありえないぐらいまで減っているのがわかるだろう。Windowsタスクマネージャー上ではメモリ使用量が減っているように見えるが、ブラウザタスクマネージャーで表示されるメモリ使用量はそれほど減っていない。では何が起こっているのか?

メモリカスタマイザーの正体はFireminである名前の通り元々はFirefox用で、仮想メモリにページアウトさせて物理メモリ使用量を減らすものらしい(実際の動作は細かく見てないのでよくは知らない)。Fireminの名称変更、起動時にFloorpを自動的対象にするといった改造を施している。FireminによってWindows10の途中の大型アップデートから搭載されたメモリ圧縮がより積極的にかかるようになり、物理メモリ使用量も減らせるメリットはあるようだ。YouTubeトップページを開いてしばらく待った時、メモリカスタマイザーの使用時と未使用時で約0.1GBの差はあるのは確認できた。ただし、メモリ圧縮の代償はパフォーマンスの低下。特にページアウトによりディスクI/Oが増える。ディスクI/Oが足を引っ張って重くなる場合があるので、必ずしも軽いとは言えない。

結局の所、Chromiumを改造するなどの根本的な解決策を取っているのかは疑問である(もししているならTwitterなりに書いているだろう。技術アピールができるし)。Floorpブラウザの作者はWindowsタスクマネージャーに出てくる見せかけの数値だけを見て「えっ、Floorp軽っ、、、、、」とか言ってるのだから、実に恥ずかしい。いつ気がつくか見物である

メモリ節約(?)のせいでパフォーマンスが落ちる

500ms単位メモリ節約機能動作するせいで、Speedometer 2.0ベンチマーク結果がさえない。未使用時と比べて7%ぐらいスコアが落ちてる。Edgeよりもスコアが良くない。メモリ使用量のことばかり気を取られて、速度のことには関心がないのかもしれない。

インストールされる拡張機能が他のChromium派生ブラウザに影響を与える

Chrome Web Store外から拡張機能(Deepl翻訳と同期機能)をインストールさせるためにレジストリ使用した結果、他のChromium派生ブラウザ(SRWare Ironで確認済)でも拡張機能インストールされたという通知が表示されるようになってしまう。

その他

インストール先がCドライブ直下

Cドライブ直下フォルダー作ってそこに入れるとか、いつの時代ソフトだよ。Program Filesに入れてやれよ。

FloorpLuncher.exe

スペルミスウケるwwwこれじゃ昼飯食う奴じゃんwww

Wikipediaの該当記事が早々に削除されそうになる事態

https://ja.wikipedia.org/wiki/Wikipedia:%E5%89%8A%E9%99%A4%E4%BE%9D%E9%A0%BC/Floorp

https://twitter.com/surapunoyousei/status/1431961462734352385

作者から依頼されて書かれた記事客観的証明なんてどうやってするんだろうね。

本番はこれから

まあKinzaパッチが出てからが本番っぽいし、それまではこれぐらいにしておこうか。

メモ

Uniant Browser → Floorp Browser? UniantとAblazeの関係がよくわからん個人で開発してるのか寄り集まって開発してるのかもよくわからん

2022/2/8 追記

中の人Twitter中学生と書かれていたことがあったので、高校生ではないかもしれない。高校生表記から学生(中学生高校生?)」に変更した。

2021-07-22

過去1時間に12460のシステム警告

イベントビューア曰く1秒間に20くらいの警告イベント

修正されたハードウェア エラーが発生しました。

コンポーネント: PCI Express Root Port

エラー ソース: Advanced Error Reporting (PCI Express)

プライマリ バス:デバイス:機能: 0x0:0x1C:0x4

セカンダリ バス:デバイス:機能: 0x0:0x0:0x0

プライマリ デバイス名:PCI\VEN_8086&DEV_9D14&SUBSYS_07671028&REV_F1

うん、ノートPCマザボの近くで物理的になんかアレな雰囲気パームレスト付近を強く押したり本体ゴンと衝撃強めに置くといろいろ起こる)

これ記録行為無効にできないかなあ

これ起きるとシステム動作10秒くらい止まるんだよね

2021-06-17

CTOだけど、一ヶ月Web就職レビューしてみた。

https://anond.hatelabo.jp/20210617075257

0. 温度感

基本的現在では、バックエンドフロントエンド運用保守全てができないエンジニア価値は無い。

経験者でも、これらができない/わからないのは、相当恥ずかしいことだと思った方がいい。

典型的はてなー意識の高さ。

上がってるような基本(元増田に上がってるやつの倍ぐらい)が全部立ち上げからできて

2〜3個プロジェクト経験したらテックリード素養が既に身についてそう。

まり、ただのエンジニアにはそこまで要求されない。

プロジェクト的にもどっちかが弱いと

Rails/DjangojQuery+Bootstrapみたいな構成

Amplify/FirebaseにVue/Reactみたいな構成全然あるので

フロントバックエンドも一旦はどっちかでいい。

面接はなんとか抜けてもらうとして、

チーム開発での最低限の目標としては、

成果物から指導学習コストレビューコスト技術負債マネジメントコストを引いた分が正になっていれば

ひとまず「チームに居ていい人」と見なされそう。

チーム的に良くても、経営層にそれで許されるかはわからんのでその辺の立ち回りも上手いことやるとして、

一旦は、正の生産性を目指してほしい。

以後、ブコメで誰一人一ヶ月でできるって言ってなくて笑うので、

一ヶ月というのは無視して、三〜六ヶ月程度をイメージしつつ書いていく。

1. 言語: PythonJavascript

これだけで一ヶ月経つ気がするが正気か。

似たような言語なのでどっちからやってもいいし、両方同時にやってもいい。

どっちかしかやらないならJavascriptおすすめ。後ででてくる、Flaskは適当Expressかに置き換える

現場だとほぼTypescriptなので、Javascriptはある程度慣れたらTypescriptに移行したほうがいい。

どちらも、Python2とES2015以前の記法というレガシーネット上に転がってるので参考にしないように注意。

パッケージ管理単体テストタスクランナー

この辺は6のフロントフレームワークと同時にやる。

コードは断片的なサンプルではなく

一貫性があって

・正しい書き方がされた

お手本プロジェクトをなにか(github書籍など)で手に入れて読むべき。

おそらくフレームワークに乗っかっているので並行して進めることになる。

6. フロントエンドフレームワーク: Vue.js

話の流れで先にこっち

現在コーディングのグッドプラクティスデザインパターンフレームワークの形をしている。

なので、ReactとVueをその思想から理解しきれれば、プログラミング言語の潮流の最先端に追いつけるはずだ。

とはいえ最低限としては使い方が分かるところまで。

TypescriptVue.jsも書き方をどこまで取り入れるかが使用者裁量に任されてるし、

開発でVueとReactのどっちを使うかはチーム次第なので、

一旦React+Typescriptガチガチに書かれたコードプロジェクトを拾ってきて、必死で解読するのがいいと思うなー。

2割ぐらいわかった気になればチーム入ってから(React, Vueどちらだったとしても)動けそう。

パッケージとかテストタスクデプロイ辺りもこのタイミングで拾ってきたプロジェクトを使って学ぶ。

2, 4. ツール: gitDocker

バージョン管理コンテナ思想が優れているのは自明なので、これらはツールと見ていい。

そして、後からプロジェクトに入った人がプロジェクト流儀に沿って使う分には難しいことはなさそう。

採用に来た人がgitとかわかってるとチーム開発経験者だなーって思うし、知らないと未経験者なんだなーって思うし、

そういう意味ではチーム開発の経験があるかどうかの試金石にはされてそう。

構築できる、ではなく、触れる程度で良さそう。

gitプロジェクト流儀によると書いたが、git-flowイメージ図を理解して運用できるのがよい。

https://qiita.com/KosukeSone/items/514dd24828b485c69a05

3. OS: Linux

これは「パソコンの使い方わかってますか」ぐらいの温度感

ファイルパーミッションユーザープロセスのような基本概念理解する

一冊読めば済むだろうし、概念系はさらっておいてほしい。

grepやfindやxargsなどのコマンドを組み合わせて簡単な処理を自動化する

こういうのができるんだなーって言うのを知っておいて、調べつつ書ければ十分。

sedとか正規表現も。

あとはシェルスクリプトとかって思ったけど同様のことはPythonでもできそう。

IPアドレスを調べたり、SSHリモートマシンログインする

地味にSSHログインした先の環境だと、vimが主要なテキストエディタになるので

vimを最低限触ることだけ要りそう。もういらないかもって思ってたんだけどなー。

ファイル開いて入力モードに切り替えて書き込んで保存して終了

チュートリアルする。拡張とかはいらない。

細かく書いたが、LPIC-1の範囲がほどよくまとまっているのでそっちを参照するとよい。

5. サーバーフレームワーク: Flask

フレームワークを覚えること自体重要なのではなく、Web開発の基本を習得することが重要

これが意図なら

HTTPルーティングデータベースSQL認証セッション管理などは当然すべて覚える。

この辺の機能を持った小規模Webアプリを作ってHerokuデプロイすれば一旦完成とみなしてよさそう。

コード書き写しただけにならないようには注意しつつだけど、長く見て5人日ぐらい?

慣れると1日あればいけると思う。

フレームワークもなんでもいい。

軽量である必要もなくて、

Djangoとかでも各コンポーネントがどんな働き方してるか程度はわかるだろうしそれで十分。

余力があれば複数個触ってみたり、人から勧められたらそっちでも。

最近サーバーレス&NoSQL流行ってるのでFirebaseとかもやればいいと思う。

7. アルゴリズム

コメントリーが荒れててウケる

実務プログラミングで最低限必要アルゴリズム力は

「書いてるコード計算量オーダーを把握していること」

に尽きる。

計算量を気にしなかったせいで線形検索メソッドとfor文を組み合わせて

O(n^2)やO(n^3)のロジックを書いてしまって

データ量が万〜十万の本番データで遅延するとか

それらに対して分散や非同期処理で解消しようとするとか、

ちょっとでもアルゴリズムを触った人ならアホらしいなって思うような行為

アルゴリズム不要勢は平気でやるぐらい、両者は溝が深い。

計算量を意識するだけなら、AtCoderABCのC〜D問題辺りが解ければ十分。

8. セキュリティ

有名な脆弱性攻撃手法は、ほとんどフレームワーク等で解決手段が用意されている

(XSS対策自動エスケープなど)

のでアドリブをせずに正しい書き方でやれば良い。

開発現場でもセキュリティリスクがある箇所を1から自前で実装することを経験が浅い者にはやらせないので、

ただただ、フレームワークが正しいとしているやり方をなぞるのが良い。

最後

開発の勉強のやり方としては、

・正しいコード見本を手に入れること

公式リファレンスを読むこと

エラーメッセージを読むこと(そしてググること)

この辺りの習慣があればやってけんのかな、

その他、チーム開発って面では

アジャイルサムライプロジェクト管理)とか

TeamGeek(人間性)とかインプットしておくと共通言語が増えて嬉しい。

この方向で進めてけば、その途中で正の生産性≒足引っ張らないぐらいになれるので、

そしたらやってけるんちゃうーって感じ。

2021-04-23

Linuxをパーツの一つに貶めようとするMSの策がエグい

MSが恐れていたLinuxは今はもう無く、サーバ市場MS利益をもたらす家畜になった。

そして今となってはデスクトップOSとしての可能性がMSによって摘み取られようとしている。

WSLでGUIアプリが動くようになることで、GPUメーカーは最新チップドライバLinux提供する意義を少し失う。

ゲーム用のGPUに限ればかなりの意義が失われる。

LinuxOS自体デスクトップOSとしてベアメタルに載せる意味が薄くなっていく。

Linuxwindows浸食しているのではなく、Linuxwindowsの単なるコンポーネントの一つになりつつある。

UEFIの為にプロプライエタリという毒を喰らわざるを得ない状況もWSL向けディストロなら不用だ。

MSに飼われ続ける限り、最新GPUの性能を活かしたプログラムを動かせるし、そのほかのデバイスもどんどん使えるようになるだろう。

windowsコンポーネントの一つになった方がデスクトップOSとしてLinux価値が上がってしまうと言うのはなんとも皮肉な話だな。

2021-04-07

vueコンポーネントが動かないな…

と思ったらコンポーネントelタグの外だった…

そりゃあ動かんわな…

2021-03-23

Tailwind難しすぎワロタ

普通CSSフレームワークコンポーネントを組み立てればまあそれなりな物ができるけど、Tailwindはコンポーネント作るところから自分でやらないといけない。

そんなんできるわけないじゃん。

デザイン強者が「すげー簡単!好みに合ったコンポーネント簡単に作れる!」ってイキってるだけだよあれ。

びっくりだよ。

難しいよ。

2021-03-02

[]2021年2月はてブあとで読むトップ30リスト

はてブホットエントリ(総合)で月内に数多く[あとで読む]タグを集めたエントリ

288あとで/2715users 大学の恩師に教わった、「なにがわからいか、わからない」とき質問のしかた。 | Books&Apps

281あとで/1814users 最初の一歩を踏み出すという汎用的な技術 - 本しゃぶり

250あとで/1465users 線形代数アニメーション幾何学的に簡単理解できる36記事まとめ | HEADBOOST

236あとで/1717users ASCII.jp天才プログラマーオードリーさんがたった200行で効果的なアプリを作れる秘訣

221あとで/1568users 「140秒とは思えない満足感」「なぜこれだけの傑作が埋もれているのか」 崩壊した日本を旅する“最後動画配信者”のショートフィルム話題(1/2 ページ) - ねとらぼ

215あとで/1805users メルカリ検索に「売り切れ品」を置く理由、初期のLINEが友だち追加を「電話番号マッチング」に絞った理由など、アプリマーケティング施策まとめ30|アプリマーケティング研究所

189あとで/1454users 暇を潰せそうなサイトを沢山見つけたので貼りまくる:哲学ニュースnwk

174あとで/1269users メルカリ、「無意識アンコンシャス)バイアス ワークショップ」の社内研修資料無償公開 | 株式会社メルカリ

161あとで/1028users 文系パパエンジニア放送大学等でコンピュータサイエンス数学を学んで理系学士を取りに行く話 - とあるCS学徒のブログ

154あとで/906users Google TypeScript Style Guide

151あとで/1192users ゲームを作ったらハリウッドから映画化オファーが来た話 - Hirayaブログ

141あとで/1330users オーケーとその他スーパーたち - 14店舗フィールドワークと500人のアンケートでわかったシンプル結論太田正伸|note

139あとで/819users 『ゼロからOS自作入門』に込めた思い - uchan note

134あとで/712users 元米マイクロソフト本社パワポ責任者が教える「科学的に正しい資料の作り方」- Schoo PENCIL

133あとで/1430users 游ゴシック話題解説 | anond.hatelabo.jp

132あとで/1127users 36歳で印刷会社社長になった僕が、減り続ける売上をなんとか立て直した話|工藤太一印刷会社二代目/glassy株式会社代表取締役note

128あとで/799users Linuxの基礎用語を完全理解するためにエンジニア作成した「10ミニプロジェクト」とは? - GIGAZINE

127あとで/795users よく見かけるレイアウトUIコンポーネント、それだけを実装するHTMLCSSのシンプルコードのまとめ | コリス

126あとで/1200users 「こんなん履いててプログラミングできるわけない」天才プログラマー登大遊氏が情熱大陸に登場、名言を連発しザワつくTL - Togetter

124あとで/543users 仕組みから理解する Git 入門 ~ ひとり開発でも便利 ~ - Speaker Deck

123あとで/612users Webエンジニア勉強できるGit Repository 10選 - Qiita

118あとで/848users シェルスクリプトを書くときにいつもやるやつを調べた - Please Sleep

117あとで/990users 「SEOに強いHTMLの書き方」についての個人的見解 | TAK | Zenn

117あとで/645users 英語力と技術力向上のための海外Tech系Youtuber10選 +n - Qiita

117あとで/1337users EXPERIENCE JAPAN PICTOGRAMS | 日本デザインセンター

117あとで/882users 管理職のための役職引退マニュアル | DevelopersIO

116あとで/1931users 森氏辞任に考える 日本社会に残る無意味風習: 日本経済新聞

115あとで/1126users いとうまい子アイドルだった私が遺伝子研究者になるなんて」|芸能婦人公論.jp

114あとで/617users 「挑戦させすぎ?」マネジメント勉強会で分かった組織課題とその解決策 - ZOZO Technologies TECH BLOG

114あとで/646users GitHubのawesomeリストが本当にawesomeものばかりだから一度見てほしい - Qiita

生活感のあるエントリが無かった

2021-02-28

Reactむずいいいいいいい

コンポーネントに分割しすぎ

2021-02-20

anond:20210220225656

予算が限られているなら、

急いで買い揃える必要はないと思う。

徐々に買い足していけばいいと思う。

慌てないことが割と大事かな。

 

乗り始めはお尻が痛くなる。

そのことへの対策のため、サドルやパッド入りの下着が欲しくなる。

でも、しばらくするとお尻が慣れてくるから、そういったもの必要がない場合もある。

から、しばらく様子を見ることが必要になる。

慌てないことが大事

 

自転車にハマった場合クロスバイク部品を交換したくなる。

タイヤホイールコンポーネントとか。

でも部品を交換したところで結局クロスバイクだと満足できなくなるからロードが欲しくなる。

だったらクロスバイク予算を使わずロード貯金をするべきだ。

慌てないことが大事

 

そんな感じかな。

まあ他人への最適なアドバイスなんて出来ないから話半分に聞き流してもらえたら。

あと自転車から離れて長いか最近事情はわかってないということと。

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