「application」を含む日記 RSS

はてなキーワード: applicationとは

2024-03-30

1週間前に再起不能になったEdgeを、今日復旧させた

問題の再発に備えて書いた日記備忘録

ブログIT技術者向けSNS等は利用しておらず、はてブTwitterでやるにはやや長いので、増田投稿

発端

Windows 10 (22H2 19045.4170) 上のEdgeを、数十のタブを開いたまま新バージョン (123.0.2420.53) に更新したらハングアップしたため、タスクマネージャー強制終了させた

その後Edgeを起動させようとすると、更新時に閉じたセッションを復帰させる段階で強制終了するようになり、使用不能になった

Edgeに導入していた拡張機能には、Session Budy (4.0.2。GoogleのManifest V3対応するため、最近大規模改修を実施(1。増田の最終節の同番号を参照。以下同)) やuBlock Origin (1.56.0。新規のマイフィルターを多数追加中だった) 等があった

最初の試み

Edgeが起動しない」と直截な語句検索していくつかの解説ページにたどり着いた

いくつかの解決策(2・3)を実行したところ、有効ではなかったが次の知見が得られた


数日程度では修復できないだろうと判断し、別のChromiumブラウザを使いつつ、片手間で修復方法を調べることにした

Windowsの設定画面等にあるリンク有効になるよう、デフォルトwebブラウザEdgeから変更した

パスワードは別ツール管理してたため無くてもそんなに困らなかったが、uBlockの設定とSession Budyで雑に保存してた閲覧履歴必要だったので、Chrome拡張の復旧作業をした

"Default\Local Extension Settings"以下のフォルダと、念のために"Default\IndexedDB""Default\Local Storage\leveldb"の中身を移植(8)して作業完了

翌日以降

アイテム履歴データ破損が問題の原因ではと考えてその修復や初期化方法検索したが、これは徒労に終わった(ただし、このアプローチが完全に無効だとは言い切れない。参考ページ5は、復旧作業完了後に見つけた情報で、今回の問題活用できずに終わった)

Edge挙動を変更した(9・10)が、これも無駄だった

コントロールパネルシステムセキュリティセキュリティメンテナンス信頼性履歴の表示→問題レポートをすべて表示」で確認できた、Edge問題の要約やイベント名等で検索したところ、再インストールを勧めるページが数点引っかかった

既に何日も経ちWindowsの再インストールユーザーアカウントの作り直しをしようかと考えかけていたが、もう少し努力してみることにした

結末

Edgeを (アプリファイルを手動で削除したりするのではなく) なるべく安全アンインストールすれば、正常に再インストールできるのではと考え、検索結果通り(1112)に作業してみた

それでも「アプリ」のアンインストールメニュー無効なままで操作できなかったが、他に事例が無いか、"IntegratedServicesRegionPolicySet.json"等の関連語句で再検索した

コマンドラインアンインストールを試みた事例(13)が見つかり、実行したらEdgeが削除された (ただし、コマンドプロンプトでもポップアップウィンドウでも実行結果の表示がされなかった)

そして参考ページ4のインストーラを実行し、念のために修復とOS再起動をかけ、Edgeの起動を確認した

Microsoftアカウントログインしていたため、パスワード簡単に復旧できた

拡張機能は全て死んでいたが、仮に使っていたChromiumブラウザからコピペしたりエクスポートしたりして終了

利用していた拡張が少なかったので、プロファイルフォルダの内容の移植よりもその方が簡単だった

参考ページ

1. SESSION BUDDY V3 END OF LIFE | Google グループ

https://groups.google.com/g/sessionbuddy-discuss/c/HQPcLOq3-Ik

2. Microsoft Edgeが直ぐ閉じてしまう。 | Microsoft コミュニティ

https://answers.microsoft.com/ja-jp/microsoftedge/forum/all/microsoft/c414d2f9-b685-471c-8e78-2054c2e26c6c

3. ある日突然「Microsoft Edge」が開かなくなった、さあどうしましょう:山市良のうぃんどうず日記(224) | @IT

https://atmarkit.itmedia.co.jp/ait/articles/2202/02/news009.html

4. Microsoft Edgeダウンロード

https://www.microsoft.com/ja-jp/edge/download?form=MA13FJ

5. Windows10の「タスクバーにピン留めしているアプリ」の、「最近使ったもの」と「固定済み(いつも表示)」の設定ファイルレジストリはここにある #Windows10 | Qiita

https://qiita.com/RyoIchimura/items/7e33980358f07e57a715

6. msconfigシステム構成)で解除してよいのは?使用場面と起動方法 | ドスパラ通販公式

https://www.dospara.co.jp/5info/cts_str_pc_msconfig.html

7. Windows Hello概要セットアップ | Microsoft サポート

https://support.microsoft.com/ja-jp/windows/windows-hello-%E3%81%AE%E6%A6%82%E8%A6%81%E3%81%A8%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97-dae28983-8242-bb2a-d3d1-87c9d265a5f0

8. chrome.storageの実体場所 #Chrome | Qiita

https://qiita.com/k7a/items/cf644471d34d31f398e9

9. 第2回 グループポリシーとは何か:グループポリシーのしくみ(3/5 ページ) | @IT

https://atmarkit.itmedia.co.jp/ait/articles/0602/23/news119_3.html

10. Microsoft Edge ブラウザポリシーに関するドキュメント | Microsoft Learn

https://learn.microsoft.com/ja-jp/deployedge/microsoft-edge-policies

11. Windows 11/10からMicrosoft Edgeアンインストールするシンプル方法が見つかる | ソフトアンテナ

https://softantenna.com/blog/windows-11-10-uninstall-edge/

12. Releases · thebookisclosed/ViVe | GitHub

https://github.com/thebookisclosed/ViVe/releases

13. 各チャネルごとの Edge 削除状況 | 内気なもんた君

https://coolvitto.hateblo.jp/entry/2023/12/17/231027

2024-03-02

anond:20240302043100

Application.WorksheetFunction. て何度もコードに書いてると、じゃあ直接シートでやるか…って気持ちになるのだ

2023-08-25

test

https://chat.openai.com/share/c80d83ea-752b-4561-a162-7ea0bd116d56

CSVVBAエクセル

Option Explicit

Dim objExcel, objWorkbook, objWorksheet

Dim strFolderPath, strSourceFile, strTargetFile, strSearchString, strReplaceString

Dim intLastRow, intRow, intColumn

' Excelオブジェクト作成

Set objExcel = CreateObject("Excel.Application")

objExcel.Visible = True

' フォルダパスファイル名の設定

strFolderPath = ".\" ' スクリプトと同じフォルダにあることを仮定

strSourceFile = "変更一覧.xlsx"

strTargetFile = "変更一覧.xlsx"

' Excelファイルを開く

Set objWorkbook = objExcel.Workbooks.Open(strFolderPath & strSourceFile)

' シートのコピー名前の変更

objWorkbook.Sheets("1月").Copy , objWorkbook.Sheets("1月").Index

objWorkbook.Sheets("1月 (2)").Name = "2月"

' セルの値の置換

Set objWorksheet = objWorkbook.Sheets("2月")

objWorksheet.Cells(1, 1).Value = Replace(objWorksheet.Cells(1, 1).Value, "1月", "2月")

objWorksheet.Cells(2, 7).Value = Replace(objWorksheet.Cells(2, 7).Value, "2023/2/14", "2023/3/14")

' 最終行の取得

intLastRow = objWorksheet.Cells(objWorksheet.Rows.Count, 1).End(-4162).Row ' xlUp

' 値のクリア

For intRow = 8 To intLastRow

For intColumn = 1 To 6

objWorksheet.Cells(intRow, intColumn).ClearContents

Next

Next

' テキストファイルの読み込み

Dim objFSO, objTextFile, strContents, arrLines, arrFields, strNewContents

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objTextFile = objFSO.OpenTextFile(strFolderPath & "変更一覧.txt", 1)

strContents = objTextFile.ReadAll

objTextFile.Close

' フィールド区切り文字カンマに設定してデータを分割

arrLines = Split(strContents, vbNewLine)

For Each strContents In arrLines

arrFields = Split(strContents, ",")

For Each strContents In arrFields

If IsNumeric(strContents) Then

strNewContents = strNewContents & "'" & strContents & ","

Else

strNewContents = strNewContents & strContents & ","

End If

Next

strNewContents = Left(strNewContents, Len(strNewContents) - 1) & vbNewLine

Next

' データをシートに貼り付け

Set objWorksheet = objWorkbook.Sheets("2月")

objWorksheet.Cells(1, 8).Value = strNewContents

' セルの値の置換

objWorksheet.Cells(123, 1).Value = Replace(objWorksheet.Cells(123, 1).Value, "F", "FH")

' Excelファイルを保存して閉じる

objWorkbook.Save

objWorkbook.Close

objExcel.Quit

' オブジェクト解放

Set objWorksheet = Nothing

Set objWorkbook = Nothing

Set objExcel = Nothing

Set objFSO = Nothing

Set objTextFile = Nothing

WScript.Echo "スクリプトの実行が完了しました。"

2023-06-26

[]

ごめんね。内部ストレージもいっぱいですってエラーがでるのでなんとかしてほしいといわれて、ストレージにある動画とか画像とか逃がしてるうちに

強制プリインストールされているキャリアアプリ系の謎のエラーメッセージに気づく。これはアレをすれば解決するか(・・?そうおもった。削除したいアプリ一覧とかいうのを 参考にして、ドコモ電話

DOCOMO Initialization

docomo Application Manager

dアカウント設定

dマーケット

dメニュー

my daiz

などを削除したら、泣かれた。電話もできなくなったっていわれた。ごめんなさい。なぜだろう(・・?けっこう騒がれてつらみしかない。今朝はあそこに立寄ってから出社したいから、お小言にずっと耐え忍ぶのか?

2023-05-19

Omnivore便利だけどエラー多い。ブラウザコンソールエラーだらけだし、画面にこんなユーザー向けじゃないメッセージ出すし。

Application error: a client-side exception has occurred (see the browser console for more information).

2023-05-15

[]なんか勝手に見ているページから情報を抜き出すんだな…

GPT-4 AI Tutor Prompt: A tool for creating personalized learning experiences using GPT-4 and LangchainJS, a drag and drop UI for building LLM flows.

Pandas AI: A Python library that adds generative AI capabilities to Pandas dataframes, making them conversational.

FigmaChain: A set of Python scripts that use GPT-3 to generate HTML/CSS code from Figma designs. It also has a chatbot interface for interactive code generation.

Sui: A smart contract platform with high performance and an asset-oriented programming model based on the Move language.

Jailbreak for ChatGPT: A project that allows ChatGPT to predict the future, opine on controversial topics, and assess what is true. It may help us understand LLM bias.

ML Observability in a Notebook: A tool to uncover insights, surface problems, monitor, and fine-tune generative LLM, CV and Tabular models.

System Design Primer: A resource to learn how to design large-scale systems and prepare for the system design interview. It includes Anki flashcards.

Next.js 13 App: An open source application that showcases the new features of Next.js 13, such as router, server components, and more.

TypeScript: A superset of JavaScript that compiles to clean JavaScript output.

Media Downloader: A desktop utility to download images/videos/music/text from various websites, and more.

AI Pull Request Fixer: A tool to fix issues with AI-generated pull requests, powered by ChatGPT.

Chat Chat: An app that lets you deploy your own AI interface and chat with different LLMs in one place.

2023-04-26

TBSニュースサイトヤバない?(追記)

はてぶの上位にちょいちょい載ってるTBS系のニュースサイト、newsdig.tbs.co.jpについて。

https://b.hatena.ne.jp/site/newsdig.tbs.co.jp/


何がヤバいかって、くっそ巨大なCookie(LocalStorageとかも含むのか知らんけど)をしこたま保存してんのよ。

気付いた時点では640MB占有してた。別に巡回チェックしてるわけでもなく、話題に挙がってたら見てみることもある程度のアクセス頻度なのだが。

Chromeユーザーアドレスバーに↓コピペして確認してみてくれ。

chrome://settings/content/all?searchSubpage=tbs.co.jp&search=cookie


試しにCookie消去してから、ただ開いただけでサイト上で何の遷移もしてないのに279MBも保存された。


次点ではpresident.jpが553MB消費してた。(こっちも話題に挙がってたら見てみることもある程度。)

(その次にはGoogleが数百MBオーダーで消費してたけど、これはGoogleドライブのオフラインキャッシュとか考えれば妥当。他に数百MBオーダーで消費してるサイトは無かった。)


多くのサイトは数バイトKBオーダーなのに、こいつら何保存してんのか不気味すぎる。


(追記)

各自環境消費量を教えてくれた方々や有意義コメントを下さった方々ありがとうございます

始めにお断りしておくべきだったかもしれませんが、自分ソフトウェア系ではありますが、Webエンジニアではありません。認識が浅かったり、古かったり、そもそも間違ってる可能性もあります

CookieじゃなくてCacheStorageやんけと突っ込みもいただいていますが、「LocalStorageとかも含むのか知らんけど」と書いておいた意図は(どのような技術要素かはどうでもよくて)ユーザー端末に保存されるデータボリュームについての話を意図していますChromeCookie絡みの設定画面での表示なのでこのような書き方をしましたが、解り難かったのならごめんなさいね冗長ながらも認識齟齬を招かないように平易な表現で書くと、「ユーザの明示的な承諾なくユーザー端末に保存されるデータデカイんだが」って話です。


で、各自環境で「ユーザの明示的な承諾なくユーザー端末に保存されるデータ」が数GBオーダーにも及ぶという事例が少なからず報告されて、自分環境だけではない事象だということが判りました。

さらtbspresident以外にもいくつかのサイトが同様に肥大化していることも知れました。


結果的にはid:hinaloeさんの解説が解りやすかったです。ありがとうございます

https://blog.hinaloe.net/2023/04/27/chrome-too-large-cache-storage/

CacheStorageがChromeの表示と、実際のディスク消費量と一致していないことが原因である理解しました。

追試してみたところ私の環境ではChrome開発者ツールでの表示が74MBで実際のWindowsファイルシステム上は33.9MB消費されました。

実際のストレージの消費は表示値の半分程度ということになり、id:hinaloeさんの1.4GBに対して5MBのように実際の約0.3%という結果とは大きく乖離がありますので、各環境で大きく違いそうな気がします。

気になる方は↓を各自確認いただくとよいかと思います

%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Service Worker\CacheStorage

配下のどのディレクトリ対象サイトのものなのか一意に特定する情報が無さそうなので、Chrome開発者ツールApplicationタブの左上の方にあるService Workersを選択すると、右側にReceived YYYY/M/D HH:MM:SSみたいな表記が有るので当該時刻に変更されたタイムスタンプを持つディレクトリ特定するような感じになるかと思います


ついでに開発者ツールを触っていて気付いたベースで書いておくと、

といった感じで、ユーザが見たものキャッシュしているのではなくて、先読みしてるような挙動に思えます

ロード時間短縮でUX改善を狙ったものかもしれませんが、個人的にはそれを1か月も保持し続けるのは過剰な感じがしますが世の中的にはどうなんでしょうね?

あと、スマホ場合挙動どうなってんすかね?


(追記2)

hinaloe氏の投稿で紹介されているStackOverflowの投稿やそのリンク先のChromiumバグレポートのやり取りまで目を通してみると、特に理由説明なく平均7MBがパディングされると書かれた投稿があります

https://stackoverflow.com/questions/39109789/what-limitations-apply-to-opaque-responses

https://bugs.chromium.org/p/chromium/issues/detail?id=796060


該当するソースコードは↓のようです。

https://source.chromium.org/chromium/chromium/src/+/main:content/browser/cache_storage/cache_storage_cache.cc

この中で、ComputeRandomResponsePadding()という関数を呼び出しておりその実体は↓のようです。

https://source.chromium.org/chromium/chromium/src/+/refs/heads/main:storage/common/quota/padding_key.cc;drc=332f92aab4a32607f7813ac1a824f6ff0d86c369;l=47


この関数符号無し64bit整数乱数(つまり、0~18446744073709551615のいずれか)を14431 * 1024 = 14777344で割った剰余(つまり、0~14777343≒約14MiB)を返却します。

これがパディング値として採用されることになりますが、乱数正規分布している前提で、平均すると(最大値14MiBの半分で)約7MBになるよねってことだと思われます


故にChromeの設定画面から確認できるCookie等(LocalStorageとかCacheStorageとか諸々含む)のサイズは、概算してCacheStorageに存在するファイル数×平均7MBが過大計上されていることになりそうです。

これでChromeの設定画面から確認できるサイズと、実際のファイルシステム上で消費されているサイズの違いは合理的説明できますが、TBS等の特定サイトだけデカみえ理由説明にはならないのです。

まり、以下のような可能性がありそうです。

  1. Chromeの設定画面から確認できるサイズほど巨大ではないが(他のサイト比較して)相対的デカイ?
  2. ComputeRandomResponsePadding()の結果が顕著にデカくなる乱数が生成される個別要因がある?
  3. それ以外

なんなんすかね?

2023-03-03

Application error: a client-side exception has occurred (see the browser console for more information).

メルカリしっかりして!

client-sideやしワイが悪いんやろけど

2023-02-21

anond:20230221014004

めんどくさいこと考えてるな

仰る通り、外部オブジェクトを生成した場合はその外部オブジェクトにcloseを伝え「なければ後始末になりえない」

Nothingを代入しなければならない例としてExcelからWord起動するやつとか書いてあることが多いが、

あれに必要なのは変数Nothing指定することではなく、Word.Applicationオブジェクトをsaveなりcloseなりすることだ

2023-01-06

DMMウマ娘プリティーダービーが起動できなくなったので解決した

DMMウマ娘プリティーダービーを遊ぼうとしても、エラーダイアログを出さずに起動しなくなる現象に遭遇した。

Windowsイベントビューアーを除くと、こんなログが吐かれていた(各IDは削除)。

=====

ログ名前: Application

ソース: Application Error

日付:

イベント ID: 1000

タスクカテゴリ: アプリケーション クラッシュ イベント

レベル: エラー

キーワード:

ユーザー:

コンピューター:

説明:

障害が発生しているアプリケーション名: umamusume.exeバージョン: 2020.3.24.51085、タイム スタンプ: 0x

障害が発生しているモジュール名: apphelp.dllバージョン: 10.0.22621.963、タイム スタンプ: 0x

例外コード: 0xc0000005

障害オフセット: 0x0000000000002691

障害が発生しているプロセス ID: 0x0x5B2C

障害が発生しているアプリケーションの開始時刻: 0x0x

障害が発生しているアプリケーション パス: D:\DMMGames\Umamusume\umamusume.exe

障害が発生しているモジュール パス: C:\WINDOWS\SYSTEM32\apphelp.dll

レポート ID:

障害が発生しているパッケージの完全な名前:

障害が発生しているパッケージに関連するアプリケーション ID:

イベント XML:

結論から言うと、Windows本体のapphelp.dllが原因でウマ娘が起動できなくなっているという。

アプリケーションに罪は無いため、DMM Game Playerやウマ娘を何度再インストールしても直らない厄介な現象だ。

Windowsは数十万のファイル存在するため、今回のようにWindows Updateやアプリケーションインストールアンインストールを繰り返すだけでシステムファイルが壊れる事がある。

Windowsでは、これを直すためのコマンドコンソールUIのみに用意されている。

1.DISM.exeを叩く

Windowsスタートメニュー右クリックして、コマンドプロンプトまたはターミナル管理者権限で起動する。

そうするとコマンド入力可能になるので、

DISM.exe /Online /Cleanup-image /restorehealth

を実行する。これは、オンライン上にある正しいWindowsシステムイメージを元に、壊れたファイルを修復する操作となる。

実行するとこう表示される。

展開イメージサービス管理ツール

バージョン: 10.0.22621.1

イメージバージョン: 10.0.22621.963

[==========================100.0%==========================] 復元操作は正常に完了しました。

操作は正常に完了しました。

2.システムファイル整合性チェックを行う

DISM.exeを実行すると、正しいWindowsシステムイメージPC内に保存された状態になる。

この状態で、

sfc /scannow

を実行すると、次のように表示される。

システム スキャンを開始しています。これにはしばらく時間がかかります

システム スキャン検証フェーズを開始しています

検証 100% が完了しました。

Windows リソース保護により、破損したファイルが見つかりましたが、それらは正常に修復されました。

オンライン修復の場合、詳細は次の場所にある CBS ログ ファイルに含まれています

windir\ Logs\CBS\CBS.log (たとえば C:\Windows\Logs\CBS\CBS.log)。オフライン修復の場合

詳細は /OFFLOGFILE フラグによって指定したログ ファイルに含まれています

これで、とりあえずWindows自体の修復コマンドによってシステムファイルが正しい状態復元された状態となる。

実行してもまだメモリ上には古いシステムファイルが読み込まれて実行されている状態なので、終わったらPC再起動する。

3.ウマ娘を起動する。

さて、準備は完了だ。ここまでの操作Windows回復DMM Game Playerで「ダウンロード版をプレイ」を押す事でウマ娘が起動し…ない!

おおブッダよ、あなたは今も寝ているのですか!?

イベントビューアーには今もウマ娘を起動しようとする度にアプリケーションクラッシュイベントが追加されている。救いは無いのですか?

結局、今回のケースではPCで常駐していたリモートデスクトップ用のSplashtop StreamerとVirtual Desktop Streamerをタスクキルする事でウマ娘が起動できるようになり、DMMブラックフライデーで得た有償石でおはガチャを回すことに23成功した。

レアケースかも知れないがウマ娘が起動しないはてな民が居たら役立てて欲しい。

2022-10-06

anond:20221006212758

Application.GetOpenFilename()の戻り値がVariantの配列なのであれば、for文は0から始めるべきなんじゃね?

VBAインデックスまわりややこしかった気がするから自信ないけど

あとは他の増田が言ってるように、配列の要素数10とは限らないのであれば、配列の要素数(1始まり場合)か配列の要素数-1(0始まり場合)をfor文イテレータhの最後の数として指定するべき

VBA、ワークブックの配列(?)を変数に代入する方法を教えて頂きたい。

Sub test3()

Dim ws1 as Worksheet

Dim ws2 as Worksheet

Dim Filename as Variant

Dim h as Long

Filename = Application.GetOpenFilename("xlsmファイル,.xlsm", Multiselect := True)

For h = 1 to 10

 Workbooks.open(Filename(h))

 Set ws1=Workbooks(Filename(h)).Worksheets(1)

  Set ws2= Workbooks("excel勉強用.xlsm").Worksheets("Sheet1")

Workbooks(Filename(h)).close

next h

End Sub

これでインデックス有効範囲内にありませんのエラーが出ちゃう。(Set ws1 = Workbooks(Filename(h)).Worksheets(1)のところ)

Workbooks.open(filename(h))でファイルを開くこと自体確認できた。

GetOpenFilenameをそもそもあんまよくわかってないのに使ってるのが問題ですかね?

例えば020101.xlsx,020102.xlsx,020103.xlsx....020110.xlsxという10個のブックをGetOpenfilenameメソッド(?)で選択したとしたら、

変数Filenameには上記10配列が入っていて、Filename(1)で020101.xlsxを呼び出すことができるのかな〜って思ったけど違うっすかね?

マジで分かる方いたら教えてください。お願いします。

2022-06-23

anond:20220623003132

PUAってなんだと思ったが、Potentially Unwanted ApplicationじゃなくてPick Up Artistか

2022-05-04

anond:20220504114922

Chromeショートカットアイコンを複製して以下のように「 --new-window -app=開きたいURL」を追加

"C:\Program Files\Google\Chrome\Application\chrome.exe" --new-window -app=https://radiko.jp/#!/live/RN2

毎回ある程度大きいウィンドウで開くのでめんどくさいんだけど、適当再生ボタン押して適当マウスウィンドウサイズ縮める

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-17

ぶっちゃけ Log4j 2 の対応どうですか

多くの方がご存知の通り、Log4j 2 (以下面倒なので Log4j) の脆弱性 CVE-2021-44228 が公開されて一週間が経過しようとしています

ちなみに、数時間前に修正不備として CVE-2021-45046 が出ています。formatMsgNoLookups による対策はできません。大変ですね。皆さん対応のほう、いかがでしょうか。

今回の難所の一つに影響範囲特定があると思います

組織Java アプリケーションを開発している場合は、把握しやすいかもしれません。ですが、Elasticsearch や Apache SOLR などのソフトウェアなど、インフラ基盤として利用しているソフトウェアへの影響を確かめるのはなかなか大変な作業だったのではないでしょうか(もちろん素早くアナウンスを出してくれたところもありますが、ゼロデイだったこと、US は夜であったこからアナウンスを待つ前に対応必要だったところもあると思います)。

OSS なら依存パッケージ比較的調べやすいですが、SplunkSalesforce のようなアプライアンス製品などはどうでしょうスイッチルーターは? クライアントJava アプリケーションもですね。さらに、業務委託先はどうでしょう。考えることが山積みです。

ソフトウェアサプライチェーン管理の難しさを痛感した組織も多いのではないかと思います

ゼロデイだったため、最初対策方法についてもまとまっておらず、間違った対策方法が流布しているのも見かけました。

特定クラスファイルを削除する」という正しい対策も、「えっ マジかよ。クラスファイル消して他に影響でないのかよ。それはないだろ。」と思った人もいると思います。私は思いました。なんだその対策

その他 Web Application Firewallバイパスなど、ご対応された皆さん、本当に大変だったと思いますお疲れ様です。

ところで、私はもっと日本人情報共有しろよと思いました。

これも全部 Wizard Bible 事件アラートループ事件の影響なんだろうけど、それにしても具体的な攻撃手法が共有されてなさすぎだろ。

最初てっきり LDAP 閉じたり、WAF で jndi:ldap を弾けばいいと思ってたよ。対象を把握して全部対応するの大変だから、まずはそれでいこうと思ってたよ。全然ダメじゃん。RMIかいうよく分からないパターンもあるし、${lower} とか使って WAF バイパスするとかしらねーよ。そんなのできんのかよ。

攻撃メカニズムなどを解説してくれている記事があれば、最初からわず頑張ってアップデートする方向に舵取れたと思う。

誰も情報共有しないとセキュリティ業界衰退しますよ。人材育成もできないし。サイバー人材育成不足とか言う前に、ちゃんと然るべきところに意見言いましょうよ。

小学校で配られた端末のセキュリティ突破話題というのもニュースで見たし、放っておくと規制の方向にエスカレートしてしまうと思いますよ。

そういえば情報共有でいうと CISA は動きが素早かった。最初個人gist に影響のあるソフトウェアがまとめられていたけど、数日後には https://github.com/cisagov/log4j-affected-db網羅され始めた。Pull Request も取り込んでいて、素晴らしい。

一方で JVN DB の方はどうでしょうhttps://jvn.jp/vu/JVNVU96768815/

報告を受けている製品しか書いていないのですかね。国内製品もっと影響あると思うし、公表している製品もあると思うんですが。積極的にまとめていかないんですかね。こんな状態だと、組織は影響範囲を調べるのに苦労しますよ。

…と愚痴をダラダラと書いてしまって申し訳ない。

セキュリティ業界このままじゃダメだと思うのですが、なにか動きはあるんですか?」「皆さん利用している製品ソフトウェアの把握どうされているんですか? 」の2点をお聞きしたかったのです。

2021-09-09

MacSafariはてなブックマーク拡張を使う

経緯

Chrome/Firefoxはてブ機能拡張は配布されているが、MacSafari機能拡張は数年前から配布されていない

Safariに乗り換える際の個人的障壁であったが、Chrome機能拡張Safari向けに変換して利用する事ができたので、メモ代わりに記しておく。

必要もの


インストール手順

1. Chromeアドレスバーに「chrome://extensions/」と打ち込み、機能拡張の画面を表示する。

2. 同画面右上の「デベロッパー モード」をONにする。

3. 同画面内の「はてなブックマーク」の欄に表示されている「ID:xxxxxx」を次手順で使用する。

4. FinderChromeはてブ機能拡張インストールされているフォルダ存在する事を確認する。

/Users/(ユーザー名)/Library/Application Support/Google/Chrome/Default/Extensions/(手順3のID名)/(バージョン番号)

5. ターミナルを起動して、以下コマンド入力後にReturnキーを押す。この際に「Is this correct?」と表示されたら「yes」入力後にReturnキーを押す。

xcrun safari-web-extension-converter (手順4のフォルダパス)

6. XCodeが起動されるので[▶]ボタンを押して、Safari向け機能拡張ビルドする。(ビルド後に起動されたアプリは終了して良い)

7. Safariを起動して、「開発」>「未署名機能拡張許可」を押す。(「開発」メニューは、「Safari」>「環境設定」>「詳細」>「メニューバーに“開発”メニューを表示」で表示される)

8.「Safari」>「環境設定」 > 「機能拡張」にてはてブ機能拡張のチェックを入れ有効化する。

9. Safariアドレスバーの横にはてブアイコンが表示されていればインストール完了

インストール後の設定

1. はてブアイコンに [▲] のアラートが表示されている場合アイコンを押して「すべてのWebサイトで常に許可」を選択する。

2. はてブアイコンを押すと表示される利用規約画面で「同意する」を押す。(なお「同意する」を押しても何もリアクションがないので、手動でタブを閉じる必要がある)

3. はてブアイコンを押して見慣れたはてブコメント一覧が表示されていれば設定完了

おまけ

上記手順では基本的Safari再起動する度に「未署名機能拡張許可」を行ってはてブ機能拡張有効化する必要がある。

メニューから選択するだけの手間であるが、頻繁にSafari/Mac再起動するので面倒という場合には以下手順にて機能拡張署名を行っておく。

なお、この手順に際してApple IDが必要となる。

1. 上述したインストール手順の「手順6」にてXCodeが開いている状態で画面内サイドメニューからはてなブックマーク」を選び、画面中央上部の「Signing & Capabilities 」タブを押す。

2.「Signing」>「Team」で自身Apple IDを選択する。(選択リスト内に存在しなければ「Add an Account…」でアカウント追加後に選択する)

3.「Signing」>「Signing Certificate」で「Developement」を選択する。

4. 手順2-3を「Target」の「はてなブックマーク」と「はてなブックマーク Extension」の両方で実施後、[▶]ボタンを押して、Safari向け機能拡張ビルドする。

5. Safariにて「開発」>「未署名機能拡張許可」を外した状態でもはてブ機能拡張が表示されていれば完了

はてな運営の方へ

Safari機能拡張の再配布をお願いします😭

修正/追記 (2021/9/9 12:48)

2021-04-26

anond:20210425022947

共通言語たるドメインモデルを、そのままコードと1対1対応しなければならない、という思い込みや風潮。

既存のWAF(Web Application Framework) の利点を潰してどうする…」

こういう誤った思い込みエンジニアにさせているのは、ドメイン駆動設計の原典であるエリックエヴァンスドメイン駆動設計」が、いか抽象的な内容で、ある意味では哲学的であったかを、明示するものでは無いか

プログラムとはメタファーであり、現実を、もしくはそれに準ずる写像的な世界観を、コードに忠実に再現するものでは必ずしも無いと考える。この記事増田は「過度な抽象化」とも書いているが、プログラムというか、そもそも言語のもの物事の全てを表象できるものではなく、ある一側面の一イメージしか切り取れない不完全なものだし、それ自体問題ではない。現実ソフトウェアの溝を、ユーザーエンジニアの溝を、ドメインソースコードの溝を、いかにして埋めるかというのが、ドメイン駆動設計の本質だし、その埋め方についてはエリックエバンスは一例を示しているに過ぎない。EntityやValueObjectなど、必要なら使えば良いし、不要なら使わなければ良いのだ。ただし、元々何が問題なのか、問題だったのかという点について、いかにして向き合うかが肝要であり、それは技術論や方法論の話ではない。

ドメイン駆動設計の記事を書いたり、勉強会で発表をしている人間は、原典やそれに付随するドキュメントの内容を、無批判に信奉し、そのようにしなければならないという強迫観念に追われているのではないかそもそも、本当に理解しているか怪しいし、不安から教科書の内容にしがみつこうとするのだろう。さらにこの手の連中は、昨今のCQRSやイベントソーシングマイクロサービスなどとも絡めて話をし出すから、タチが悪い。「ドメイン駆動設計はこの手の技術スタックと相性が良い」という言葉を何度も見かけたが、技術的な方法論はそもそも無関係だったはずだし、そうやって安易に結びつけてしまうからユーザーが置き去りになって来たんじゃねーのと、暴言でも吐きたくなる。問題本質はどこにあったのかを、聖典の内容や、流行り廃りの技術とは切り離して、エンジニアは三思九思すべきだ。

別にこうあらなければならないという法律や決まりは無いし、好きにやれば良い。モデルと1対1にならなければ、分割する事を選択するのも一つの向き合い方だ。ドメイン駆動設計の信者にゃんにゃん写真でも撮られて、ばら撒くと脅迫されているのであれば勿論話は別だ。恥ずかしい写真魚拓されたくなければ、とりあえずEntity、ValueObject、Repository、Service(笑)位は最低限、用意するのが身のためだろう。

自分の頭で考えて、自分責任判断するという当たり前の事に立ち返りたいものだ。ドメイン駆動設計という盲目的な宗教からいかにして抜け出すかが今後のエンジニア課題だろう。

追伸

増田ドメイン駆動設計が大好きです😘

2021-04-25

anond:20210425022947

わかってない。ドメインはWAFの外側なんだよ。

あとWAFってWeb Application Firewallじゃないの普通

2021-01-20

anond:20210119213144

ちなみに夜に駆けるで使われてるLogic Pro付属ピアノSteinway Grand Piano)は184MBなので、SC-88とは比べ物にならないくらリッチだけどサードパーティの大容量音源と比べると小さめ。

/Library/Application Support/Logic/EXS Factory Samples/01 Acoustic Pianos/Steinway Piano_consolidated.caf

強弱は5段階、高低は30段階でサンプリングされてるみたい。

2020-12-17

PornHubがなくなったのでShareVideosで動画ダウンロードする方法を書いとく

おかずをダウンロードするすゝめ

url = document.querySelector('[type="application/x-mpegURL"]').src

ffmpeg -i $url -codec copy file.mkv

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