「application」を含む日記 RSS

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

2025-03-07

anond:20250307112031

MicroSoftASPじゃなくApplication Service ProviderのASP楽天とかYahooとかFutureShopとか。

2025-01-16

[] The Dichotomy of Intellectual Engagement in Digital Media Consumption: A Profound Exegesis

In the labyrinthine realm of digital content dissemination, an enigmatic phenomenon has surfaced, challenging our axioms regarding the nexus between content ubiquity and viewer cognitive acumen. This disquisition endeavors to elucidate the paradoxical inverse correlation between video viewership metrics and the intellectual quotient of the audience, propounding that audiovisual content amassing prodigious view counts tends to captivate viewers with a mean Intelligence Quotient (IQ) of 100, while their more esoteric counterparts allure a demographic boasting an average IQ of 120.

Epistemological Framework and Methodological Paradigms

To fathom this counterintuitive paradigm, one must first grapple with the multifarious nature of human cognition and the intricate interplay between intellectual capacity and media predilections. This hypothesis, positing an inverse relationship between a video's popularity and the mean IQ of its viewership, necessitates a rigorous examination of the underlying psycho-sociological and neurocognitive factors that may engender such a paradoxical outcome.

The application of Cognitive Load Theory to media consumption habits provides a plausible explication for this phenomenon. Videos achieving viral status often employ reductionist narratives and readily assimilable information, minimizing cognitive strain. Conversely, less ubiquitous videos may delve into more abstruse subject matter, demanding heightened cognitive engagement and a more sophisticated intellectual framework for comprehensive assimilation.

Algorithmic Hegemony and Epistemic Bubbles

The pervasive influence of recommendation algorithms in content distribution platforms cannot be discounted in this analysis. These algorithmic arbiters, designed to maximize user engagement, may inadvertently engender epistemic bubbles that reinforce existing cognitive predispositions. Individuals with superior IQs may actively seek out more intellectually challenging or esoteric content, thereby circumventing the algorithmic propensity towards homogenization and cognitive stasis.

Socioeconomic Stratification and Information Asymmetry

It is imperative to consider the socioeconomic dimensions that may influence both IQ development and media consumption patterns. Higher IQ individuals often correlate with elevated socioeconomic status, potentially affording them greater access to diverse epistemological resources and fostering a predilection for more intellectually stimulating content. This demographic may be less susceptible to the allure of mainstream, highly-viewed videos that cater to a broader, less discerning audience.

Implications for Content Creators and Platform Architects

The ramifications of this inverse relationship between viewership and viewer IQ are profound for content creators and platform developers alike. It challenges the prevailing paradigm that equates popularity with quality or intellectual value. Content creators targeting a more intellectually discerning audience may need to recalibrate their expectations regarding view counts and engagement metrics, focusing instead on cultivating a dedicated niche audience that values cognitive stimulation over mass appeal.

Conclusion: Navigating the Intellectual Chasm in Digital Media

In summation, the observed dichotomy between high-viewership videos attracting an audience with an average IQ of 100 and their less popular counterparts appealing to viewers with a mean IQ of 120 underscores the complex relationship between intellectual capacity and media consumption in the digital age. This phenomenon necessitates a reevaluation of how we measure content value and success in the online sphere, prompting a more nuanced approach to content creation, curation, and consumption that acknowledges the diverse cognitive needs of the audience spectrum. The implications of this paradigm shift extend far beyond mere metrics, touching upon fundamental questions of epistemology, cognitive diversity, and the very nature of intellectual engagement in the digital era.

2024-11-25

文章どころか動画理解できない人たちについて教えてください

AIちゃんに聞いて見た

I've noticed a non-negligible number of people who have not only completed compulsory education in regular classes but have also received higher education and graduated from university, yet struggle with reading comprehension (understanding the meaning of text), cannot read long texts, and even have difficulty understanding videos.

When we limit the scope to individuals with broad cognitive challenges, the problem seems rather straightforward: they either "lack the ability to understand" or "take longer than usual to acquire the ability to understand."

Similarly, the case of individuals diagnosed with learning disabilities is relatively simple. While they may not have broad cognitive challenges, they require different approaches and training due to their unique learning styles.

However, it is perplexing that university graduates without broad cognitive challenges or diagnosed learning disabilities struggle to understand not only written text but also simplified video content.

I suspect that the underlying causes might include gaps in the horizontal transfer of experiences and knowledge, a severe lack of adaptability, and an extreme deficit in metacognition. Has there been any research on these issues? Additionally, could you please explain the concept of knowledge transfer?

 

(正規の学級で義務教育を修了し、さら高等教育を受けて大学卒業したにもかかわらず、読解力(文章意味理解する能力)に苦しみ、長文を読むことができず、さらには動画理解にも困難を感じる人が少なくないことに気づきました。

 

認知能力に広範な課題を抱える個人範囲限定すると、問題比較的単純です。「理解する能力がない」か、「理解する能力を獲得するのに通常よりも時間がかかる」かのいずれかです。

 

同様に、学習障害と診断された個人場合比較的単純です。彼らは広範な認知能力課題を抱えていないかもしれませんが、独自学習スタイルのために異なるアプローチトレーニング必要となります

 

しかし、広範な認知能力課題学習障害を持たない大学卒者が、書かれたテキストだけでなく、簡略化されたビデオコンテンツ理解にも苦労していることは不可解です。

 

私は、その根本的な原因として、経験知識の水平的転移の欠如、メタ認知の極端な欠如などが考えられるのではないかと疑っています。これらの問題に関する研究はありますか?また、知識転移概念について説明していただけますか?)

 

 

Chat GPTちゃんの回答

Yes, research and analysis exist around the issues you described, particularly in the domains of education, psychology, and cognitive science. Let’s break down your observations and questions step by step:

 

Key Issues with Reading and Comprehension

 

1. Reading Comprehension Among Educated Individuals

• This phenomenon—educated individuals struggling with comprehensionis indeed perplexing, especially given their presumed exposure to a variety of learning materials. It suggests that education systems sometimes emphasize rote learning and surface-level knowledge acquisition over deeper understanding, critical thinking, and metacognition.

2. Possible Underlying Causes

• Horizontal Transfer Gaps: This refers to the inability to apply knowledge or skills learned in one context to another. For example, someone might excel in a university course focused on memorization but fail to apply that knowledge in practical or less structured contexts.

• Severe Lack of Adaptability: Adaptability involves applying problem-solving and comprehension skills to unfamiliar formats or media. A lack of adaptability can result from a curriculum that prioritizes familiarity and routine over exploratory learning.

• Deficits in Metacognition: Metacognition is the ability to “think about thinking”—to reflect on, monitor, and regulate one’s own learning. If metacognitive skills are underdeveloped, individuals might struggle to evaluate the meaning of texts or videos, even if they have the raw intellectual ability.

 

Research Insights

 

1. Knowledge Transfer

The concept of knowledge transfer involves applying skills, knowledge, or strategies learned in one context to another. It is often classified into:

• Horizontal Transfer: Applying knowledge across similar contexts (e.g., using concepts learned in a biology course to understand a medical text).

• Vertical Transfer: Building upon foundational knowledge to understand more complex ideas (e.g., using basic algebra to solve advanced calculus problems).

Studies suggest that transfer is more likely to occur when:

• Learners deeply understand underlying principles, not just surface details.

Connections between different contexts are explicitly taught and reinforced.

2. Factors Limiting Transfer

• Learning environments often emphasize task-specific skills rather than generalizable strategies.

• Standardized testing may encourage rote memorization over critical thinking.

• Lack of explicit instruction in how to generalize knowledge to new situations.

3. Metacognitive Deficits

Research highlights the importance of metacognition in learning. Students who are unaware of their own comprehension limitations are less likely to engage in corrective strategies (e.g., rereading, seeking clarification). This can lead to stagnation in comprehension skills despite formal education. Effective interventions include:

• Teaching self-monitoring techniques.

• Encouraging reflective practices, like summarizing or questioning during reading.

4. Cognitive Overload in Multimedia

Even videos, if not designed properly, can overwhelm learners. The Cognitive Theory of Multimedia Learning suggests that excessive extraneous information or unclear organization in videos can overload working memory, hindering comprehension.

 

Strategies and Research-Based Solutions

 

1. Improving Knowledge Transfer

Active Learning: Techniques such as problem-based learning or case studies can improve transfer by encouraging the application of knowledge to new situations.

• Teaching for Understanding: Encouraging learners to focus onwhy” and “how” questions fosters deeper comprehension and the ability to generalize learning.

2. Fostering Adaptability

• Encourage learners to engage with unfamiliar formats and topics to build flexibility.

• Develop problem-solving skills in diverse and unpredictable contexts.

3. Developing Metacognitive Skills

• Self-Regulated Learning Training: Programs that teach students to plan, monitor, and evaluate their learning have shown success in improving comprehension.

Feedback Loops: Providing actionable feedback on comprehension tasks encourages learners to reflect on their thinking processes.

 

Conclusion

 

The issues you describe highlight a gap between formal education outcomes and true comprehension or learning ability. Addressing these challenges requires systemic changes, including incorporating metacognition training, emphasizing transferable learning, and fostering adaptability.

 

If you’d like, I can delve deeper into specific research studies or provide examples of programs addressing these issues.

 

 

Claudeちゃんの回答

This is a fascinating and concerning observation that touches on several important areas of cognitive psychology and education. Let me address this systematically.

 

First, regarding knowledge transfer and metacognition: Knowledge transfer refers to the ability to apply knowledge, skills, or strategies learned in one context to new situations. It's closely related to metacognition - our ability to understand and monitor our own thought processes.

 

Research in this area has revealed several key findings:

 

David Perkins and Gavriel Salomon's work in the late 1980s and early 1990s identified two types of transfer:

 

A significant study by Brown, Collins, and Duguid (1989) in "Situated Cognition and the Culture of Learning" highlighted how knowledge often remains "inert" - students can pass tests but fail to apply knowledge in real-world contexts.

 

The phenomenon you're describing aligns with what cognitive scientists call the "transfer problem." Despite years of education, many individuals struggle to apply their learning in new contexts or integrate information across domains.

 

Some relevant research directions:

 

1. Cognitive Load Theory (Sweller et al.)

Shows how working memory limitations affect learning and transfer. Many students may never develop effective strategies for managing cognitive load, leading to poor comprehension of complex materials.

 

2. Reading Comprehension Studies

Work by Pressley and Afflerbach on "verbal protocols" revealed that skilled readers use multiple strategies simultaneously, while poor readers often lack these metacognitive tools.

 

3. Domain Integration Research

Studies by Susan Goldman and others have shown that even advanced students often fail to connect knowledge across domains, treating each subject as an isolated "silo."

 

Your observation about university graduates struggling with comprehension despite no apparent cognitive disabilities might be explained by several factors identified in research:

 

1. Surface-level Learning: Many educational systems reward memorization over deep understanding

2. Limited Strategy Instruction: Students often aren't explicitly taught comprehension strategies

3. Fragmented Knowledge: Information is typically taught in isolation without emphasis on connections

4. Weak Metacognitive Skills: Students may never develop the ability to monitor and regulate their own understanding

 

Some promising approaches to address these issues include:

 

1. Strategy Instruction Models

Teaching explicit strategies for comprehension, integration, and transfer. The Self-Regulated Strategy Development (SRSD) model has shown particular promise.

 

2. Knowledge Integration Frameworks

Approaches like Knowledge Integration Environment (KIE) help students connect ideas across domains.

 

3. Metacognitive Training Programs

Programs focusing on developing metacognitive awareness and self-regulation skills.

 

Since you asked about studies, I should note that while I've referenced several important works, you should verify these citations as I don't have direct access to current databases and could be misremembering details.

 

Would you be interested in exploring any particular aspect of this issue in more detail? For instance, we could delve deeper into specific instructional strategies that have shown promise in developing transfer abilities, or examine the relationship between metacognition and knowledge transfer more closely.

2024-11-07

anond:20241107003405

いや誰がしらんの?

SWEにすうじなんかつかない!タイトルなんかいったらばれる!ってひとが知らんのかな?

そりゃ働いてないんだから知らんわな

一般的にはどこの企業でもSoftware EngineerにSeniorがついたりPrincipalとかStaffがついたり、DeveloperになったりApplicationがついたりArchitectがいたりでどこもおんなじだよ

俺は全部なったことある

英語圏はそれより職掌で完全にちがう

コンサルタントだとかシステムエンジニアだとかインフラエンジニアだとかはまるで違う話

2024-07-07

ベンダーロックって言ってもな

要件満たすため・社内政治的な理由ピンポイントで別のところ使う+併用はあっても、

ネットワーク製品以外はほぼ選択肢無くね?感

 

AIちゃんゼロトラストセキュリティについて答えてくれました

ゼロトラストセキュリティは、「信頼せず、常に検証する」という原則に基づいています。主な特徴として、常時の認証承認、最小権限アクセスアクセス継続的監視があります。以下の技術ソリューションを組み合わせることで、包括的ゼロトラストセキュリティモデルを構築できます

 

 

ID管理アクセス制御

1. Microsoft Entra ID(旧Azure AD):

 

2. Microsoft Entra 条件付きアクセス

 

3. 多要素認証(MFA):

 

 

ネットワークセキュリティ

1. マイクロセグメンテーション:

  

2. ゼロトラストネットワークアクセス(ZTNA):

 

3. ソフトウェア定義ネットワークSDN):

 

 

エンドポイントセキュリティ

1. デバイス管理

 

2. エンドポイント検出と対応EDR):

 

 

データ保護

1. 暗号化

 

2. データ漏洩防止(DLP):

 

 

セキュリティ監視分析

1. セキュリティ情報およびイベント管理SIEM):

 

2. ID保護

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)

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