実際壊れたのは異音してたHDDで、SSDはなんで認識しなくなったのか良く分からずで、こうして何もしてないのに復帰すると、ほんとなんだったんだって感じだ
多分異音出したHDDを、シャットダウンせずうっかり休止モード中に引っこ抜いて復帰したのが、何故か分からんけどSSDにも影響してしまったのかなって思ってたけど、それ位しか思いつかないし・・・
実際壊れたのは異音してたHDDで、SSDはなんで認識しなくなったのか良く分からずで、こうして何もしてないのに復帰すると、ほんとなんだったんだって感じだ
多分異音出したHDDを、シャットダウンせずうっかり休止モード中に引っこ抜いて復帰したのが、何故か分からんけどSSDにも影響してしまったのかなって思ってたけど、それ位しか思いつかないし・・・
ファイナルデータ体験版でドライブを検出してて全然進まんってやつだけど、スキャンしたセクタ数が減ってる。
ペース的に全部スキャンして振出しに戻った訳じゃないと思うが、どっかのタイミングで戻ってるっぽい。謎。
これはもう終わるはずもないという事でキャンセルして、今度System RescueのBootable USBの方でMBRというかGPTの修復を試みようと思った。
が、キャンセルして直ぐ、念のため他のスキャンとかあるかなと再度実行しようとしたら、ハードディスク2だったものがちゃんとストレージ名が取れてる・・・
そして、explorerで見たら、普通にマウント出来てる・・・
実は昨日寝る前にうっかり休止モードに入れてしまったので寝てる間はスキャンしてなくて、復帰したらエラーにならずにスキャン継続してたからほっといたんだけど、まぁこれはファイナルデータのお陰というより、休止から復帰したタイミングで認識したんかなぁ。
スキャンだけで好転にせよ悪化にせよ変化するとはあんま考えられないし。
まぁ、ほぼ何もしてないのに認識する様になったという事は、また認識できなくなる可能性高いし、今からデータのコピーを試みる。
容量空いてるのがNASしかないから、ddコマンドとかじゃなくexplorerでファイルをコピーするしかないけど。
さて、うまく読み取り出来るだろうか・・・
webサイトに仕込まれるヤバイって話ばかりで、仕込まれたwebサイトにアクセスした端末にどんな影響があるものだったのかの情報が全然ないな。
英語の記事に当たらないとだろうか・・・
そんな暇じゃないんだが
セキュリティ企業のSanSecによると、オーナーが方能に変わったのち、cdn.polyfill.ioを埋め込んだサイトを介して、モバイル端末にマルウェアを感染させる試みが確認されているとのこと。Polyfill.ioを利用中のサイトは10万以上あるとみられます。https://gigazine.net/news/20240626-polyfill-supply-chain-attack/
||polyfill.io
書いておいてたしと思ったが、モバイルか・・・JavaScriptライブラリ「Polyfill.io」にマルウェアが混入され10万以上のサイトに影響 - GIGAZINE https://gigazine.net/news/20240626-polyfill-supply-chain-attack/
下の売却の記事が2024年3月6日だから4ヶ月弱でか
[注意喚起]ブラウザ互換ライブラリ「Polyfill.io」がドメイン名ごと中国企業に売却、CloudflareとFastlyが代替となる配信を開始 - Publickey https://www.publickey1.jp/blog/24/polyfilliocloudflarefastly.html
こねてる間、ChatGPTは何かにつけて[T any, PT TreeNode[T]]
にしようとしてきた。
別の行を修正する回答なのに、無言及でこれに変えてくる位に。
という事はそういう学習をしてるって事だから、その方が良いのかと思って一応この路線も確認してみた。
まぁ、ChatGPTの書いたコードは動かなくて、型アサーション挟む必要あったけど。
interfaceの方のChildren() []*T
が、戻り値ポインター型であると分かりやすいメリットはあるけど、断然良いという感じでは、ないかなぁ。
package main
import "fmt"
type TreeNode[T any] interface {
Id() int
Children() []*T
}
func PrintAllDescendants[T any, PT TreeNode[T]](node PT) {
children := node.Children()
for _, child := range children {
// childは*T型として返ってくるので、型アサーションでPTにする
childNode, ok := interface{}(child).(PT)
if !ok {
panic("Failed to cast child to PT")
}
fmt.Println("Id:", childNode.Id())
PrintAllDescendants(childNode)
}
}
type MyNode struct {
id int
children []*MyNode
}
func (m *MyNode) Id() int {
return m.id
}
func (m *MyNode) Children() []*MyNode {
return m.children
}
func main() {
grandChild1 := &MyNode{id: 3}
grandChild2 := &MyNode{id: 4}
child1 := &MyNode{
id: 1,
children: []*MyNode{grandChild1},
}
child2 := &MyNode{
id: 2,
children: []*MyNode{grandChild2},
}
root := &MyNode{
id: 0,
children: []*MyNode{child1, child2},
}
PrintAllDescendants(root)
}
https://go.dev/play/p/4I8sQ88iS_Rグラフの木構造を、interfaceを介して、特定のnode structに依存せず扱いたくて、ChatGPTにも聞きつつこね回してこうなった。func PrintAllDescendants[T TreeNode[*T]](node *T)
からスタートしたけど、どうにも動かず、こねて下の様になったんだけど、暗黙的にポインター型じゃないと動かないのでせめてPTという名前にしてみた。
ChatGPTの力を借りて動いたけど、正直100の理解をしてないのでどうだろうなという所。
package main
import "fmt"
type TreeNode[PT any] interface {
Id() int
Children() []PT
}
func PrintAllDescendants[PT TreeNode[PT]](node PT) {
children := node.Children()
for _, child := range children {
fmt.Println("Id:", child.Id())
PrintAllDescendants(child)
}
}
type MyNode struct {
id int
children []*MyNode
}
func (m *MyNode) Id() int {
return m.id
}
func (m *MyNode) Children() []*MyNode {
return m.children
}
func main() {
grandChild1 := &MyNode{id: 3}
grandChild2 := &MyNode{id: 4}
child1 := &MyNode{
id: 1,
children: []*MyNode{grandChild1},
}
child2 := &MyNode{
id: 2,
children: []*MyNode{grandChild2},
}
root := &MyNode{
id: 0,
children: []*MyNode{child1, child2},
}
PrintAllDescendants(root)
}
https://go.dev/play/p/yPzu6uY6KxNCursorとClaudeも名前は見かけるから気になってるけど、この記事だと両方使って40ドルかぁ。
自分もChatGPTとGitHub Copilotで30ドルだからそんな変わらんって言われたらそうかもだけど。
GitHub CopilotはともかくGitHub Copilot Chatは役に立ってないから、とりあえずCursorの方を試してみるのが良いかねぇ。10ドル増えちゃうけど。
CursorとClaudeを使った最近の私の開発環境|ニケちゃん https://note.com/nike_cha_n/n/n444e28ec0c73
ってあれ?スクショ取ってノート書いてる数分の間に、なんか一気に進んだ?
全体からすると全然なんだけど、24時間かけて辿り着いた最上の位が数分目を離した間に1から2になるって、どういう事だ。
挙動が謎すぎる
CPUクーラーを交換後改めてファイナルデータでドライブを検出を実行してるけど、24時間経ってもこの進捗。
やっぱこれ現実的な時間では終わらないぞ。
なお、ドライブを検出(形式の検出)をディスク全領域で行うと相当な時間がかかります。ディスクの管理画面などを参照し、あらかじめ目的のパーティションの物理的な位置を把握しておいてください。
[検索するセクタ範囲]画面のスライドバーを動かし、目的のパーティションがあった場所付近を選択してください。
ドライブを検出機能はどのような機能ですか? どういう場合に有効でしょうか? - ファイナルデータシリーズ FAQ https://faq.aosdata.co.jp/fd_series/2008/09/post-15.html
全領域だと時間かかると書いてある通りではあるんだけど、スライドバーを動かすと0か最大値かしかなくて、書いてある様に目的のパーティションがあった場所付近を指定できなかった。
このストレージはパーティション複数作って無いし、冒頭のセクタだけスキャンすれば済むはずだと思うんだけど・・・
ChatGPT4oになっても、謎の融通の利かなさというか、違うそうじゃないって感じの回答になる事、やっぱあるなぁ。
自分「こういう事がしたいからコードを書いて。」
ChatGPT4o「書いたで。」
自分「そのコードは、こういう処理をするという理解であってる?」
ChatGPT4oさん、合ってるとも間違ってるとも判断つかない事を言いつつ、何故か修正コードを書き始める。
修正は求めてないし、修正が必要な理由も、そもそも修正が必要だったのかも分からない・・・