はてなキーワード: DOMとは
業務ツールが使いにくいのでGPTにまかせて表示をいじくり回してみた
コメントのついてる項目に色つけて分かりやすくした。識別記号も付けて検索しやすくした
識別記号のついてない行非表示にしたら見やすいと思ったのでそうした
処理した識別記号をクリックすると処理済み記号がつくようにしたら画面がスッキリした
識別記号以外を非表示にする仕組みを使えば文字列の検索で表示/非表示もできると気づいたのでそうした
ページ遷移したとき状態がごっちゃになってたので、行列とURLからユニークになるようにしてみた
行の識別子に個人情報が使われていた事に気づいたので、不可逆のハッシュを使うようにしてみた
割と使い勝手のいい画面が作れたと思う。DOMとかよくわからんけどなんとかなった
> アプリ内のデータかバックアップしたのを自分でダウンロードしてテキスト化する方法ないかなあ/できたわ。設定→位置→タイムライン→タイムラインのエクスポートでjson化可能。あとは誰かが処理系を作るだけだ!
https://b.hatena.ne.jp/entry/4766225990155446401/comment/punychan
これを使えばXXXX-XX-XX.kml 形式で日付別のタイムラインデータを出力できる(ChatGPT製)。
KMLファイルはGoogle Earth Proなどで開くことが可能で、ビジュアルとして行動履歴を見ることができる。
ただ、以前GoogleMapsタイムラインが吐いていたKMLではPlacemarkという項目に直接建物名などが書かれていたが、現在出力されているjsonではplaceIdというものに変更されていて具体的な名前がわからない。
placeIdを実際の建物名などに変換するにはGoogle Maps API の Place Details APIを使うしかないようだが、膨大なリクエスト(有料)をしなければならず非現実的。
もともと欧州のプライバシー関係の規制のせいでGoogleのサーバ上でのタイムライン履歴が行われなくなったのが今回の問題の起点。
ユーザーの自由を尊重するなら、個人が行動履歴を自己管理する自由ももっと尊重してもらいたいものだな、と思った。
import json
import os
from xml.etree.ElementTree import Element, SubElement, tostring
from xml.dom.minidom import parseString
with open("タイムライン.json", "r", encoding="utf-8") as f:
data = json.load(f)
output_folder = "kml_output"
os.makedirs(output_folder, exist_ok=True)
# `semanticSegments` に移動データが含まれている
if "semanticSegments" in data:
date_segments = {} # 日付ごとにデータをまとめる辞書
for segment in data["semanticSegments"]:
# `startTime` から日付部分(YYYY-MM-DD)を抽出
if "startTime" in segment:
date = segment["startTime"].split("T")[0]
date_segments[date].append(segment)
for date, segments in date_segments.items():
kml = Element("kml", xmlns="http://www.opengis.net/kml/2.2")
document = SubElement(kml, "Document")
for segment in segments:
for point in segment["timelinePath"]:
coords = point["point"].replace("°", "") # 度記号を削除
time = point.get("time", "Unknown Time")
# Placemarkを作成
placemark = SubElement(document, "Placemark")
# タイムスタンプ
timestamp = SubElement(placemark, "TimeStamp")
when = SubElement(timestamp, "when")
# 座標
point_element = SubElement(placemark, "Point")
coordinates = SubElement(point_element, "coordinates")
lat, lon = coords.split(", ")
coordinates.text = f"{lon},{lat},0" # KML形式: lon,lat,alt
kml_str = tostring(kml, encoding="utf-8")
formatted_kml = parseString(kml_str).toprettyxml(indent=" ")
kml_filename = os.path.join(output_folder, f"{date}.kml")
Ruby全盛期のちょっと後くらいからWebエンジニアをしているんだけど、React.jsがいろんな意味で扱いにくすぎる
関わっている人にもフロントエンドエンジニア(=React.jsしかやりたくない)が多いので毒気で吐き出しておきたい
ライフサイクルや裏側の仕組みをなんとなく理解していないと使えず無意味に複雑
useEffect一つとっても~~の場合はuseStateでいけるとかTIPS集みたいのがあるけど、そういうウンチクみたいなのわかってないと使いこなせないのは仕事増えてない?
仮想DOMで高速化とか言っているけどライフサイクル理解しないと速度でないよね?いつものプロジェクトそんなにちゃんと書けてる?jQueryで良くない?
ベストプラクティス知っててちゃんと設計しないと改修する工数がすごいことになる
そもそもプロジェクトにおいて作るものは都度変わっていくので完璧な設計は存在しない。なので、設計をきちんとしないとカオスになるのはReact.jsのほうが間違っている
React.jsと別のフロントエンドライブラリ比較するだけで空気悪くなるので正直フロントエンドエンジニアの人の前で話せない話題がある
なぜかフロントエンドライブラリをReact.jsしか許さない人が多いのはなぜ
言うまでもないけどNext.jsの記法はひどすぎる。Remixは良いけどそれならもうReact.jsじゃなくていい
数少ないメリットだったエコシステムだけど、もうReact.jsしか対応していないことなんてほぼ無い
フロントエンドリッチでアクセス数ものすごいサイトを運用するのにフロントエンドライブラリが必要だった時代にReact.jsを開発する必要があったのはわかるけど、もっと便利なフロントエンドライブラリあるし正直時代遅れなのを理解してくれ
私から告白したし、行為も最初10回くらい、全部私から誘っていた。
付き合い始めてから一年くらいして、定期的に彼氏の家に泊まるようになったが、一緒に寝るごとに私はムラムラして濡れまくり、向こうもゴソゴソ触ってくるのでコッチは準備万端!って感じになっては「疲れてるから挿入はごめん」って断られることが三回に二回くらい。
それでもたまには出来るし、その頃は前戯もすごく丁寧で、今までの相手で一番気持ちよかった。相手に余裕がある時だったら週に2回も3回もしていた。
ただ断られる度に、あるいは、誘いをかけても分からないふりで無視されるたび、心がすり減っていった。
で、そのまままた一年位が過ぎてから、目に見えてオッケーの頻度が落ちた。私は泊まりに行った彼氏の家で、彼氏がお風呂に入ってる隙にこっそりオナニーをしたりして過ごした。
期待しても無駄だ、この人は私ほど意欲がないんだ、って言い聞かせすぎたせいか、三年目の中盤から、しようと誘われて始めても全然濡れなくなった。四年目の今は、キスしても胸をまさぐられてもカラカラで、「昔はあんなにすぐ濡れてたのに…濡れなくなっちゃったね…」としょんぼり言われる。
それが心苦しくて、最近はする時いつも、ちゃんと濡れてるかが心配で、彼氏がゴムを取りに立ってる間に中の濡れ方確認したり、足りてなかったら慌ててクリ触って濡らそうとしたりしている。中折れが怖くて緊張して余計できない悪循環ってこんな感じだと思う。
今となっては、私からは一切誘わず向こうが誘えばするはするけど、なかなか濡れない。
そんな感じなせいか向こうの前戯も手短になってきて、ほんとに入れてほしくてじゃなくて「フェラし続けるの疲れたからもう挿入して終わりにしたい」っていう気持ちで「そろそろ入れて?」って言ってる。
甘えられすぎて、子供みたいに見えちゃってるから。ドキドキする相手じゃない。私は結構なマゾだと思うけど、彼氏にはdom的な役割を期待されているしそう振る舞っている。面倒見のいいお母さん、たまに叱って管理して、でも基本は甘やかす、みたいな。そういうのには全然性的に興奮できない。
あとは、行為とかじゃなくて普通に、ベッドの上でスマホとかしてると、局部を触られたりするから。今日なら5回くらい、下だけで。それが続くと「この人に触られることは日常なんだ」と思って、興奮のスイッチじゃなくなっていくのが分かる。
別に私の性欲が消えたわけじゃない。
むしろ昔から強過ぎる方だから、最近は半ばセフレみたいな女友達とたまにあってレズプレイをしたり、ハプバーに行って男女問わずしたりしている。
彼女ら彼らに恋愛感情は一切ないし、双方合意の上での「オナニーの延長」だと思っている。
もちろんオナニーにも積極的で、いろんなディルドを買って、常に気持ちいいオナニーを探求してるし、オカズもたくさん揃えてる。
そして、そういう「彼氏意外とのエロい行為」では、もうびっくりするほど濡れる。
ネットのエロ広告を見てムラっとして、好きなエロ漫画をちょっと読んだりするだけでビショビショになってる。
なんだかなぁと思う。
濡れないから、当然、彼氏とのセックスは気持ちよくない。昔はあんなに気持ちよかった、という思い出を反芻しながら無理やり気持ちを高めて抱かれている。
私は今のように、本当の性欲は彼氏以外で発散して、彼氏とは彼氏のペースに合わせて、愛情の確認としてやっていければいいかなと思っている。本音を言うなら、あまり積極的にしたいとは思わないけど、なにかの記念日とかにゆっくりするなら嬉しいと思う。
だけどふと、彼氏に触られながら「昔はこのくらいですぐ濡れてたのにね…寂しいなぁ」と言われると、思う。
私が漫画読んでる時にいきなりスジなぞらないでよ、スマホ片手に手慰みで乳首いじらないでよ、自分が興奮した時だけ「フェラしてくれない?」って始めようとするのやめてよ、「何回も求めたけど断られて、期待するのやめちゃった」って告白したこと覚えてるなら、濡れない私が悪いみたいな言い方やめてよ。
今度、伝えてみようかな。でもそれもめんどくさいな、と思う程度には、私はこの問題に冷めてしまっている。
ご清聴ありがとうございました。
これを改善してってお願いした。何書いてあるかわからないけど動いたよ。
https://anond.hatelabo.jp/20240125203115
// ==UserScript== // @name 増田ミュート(白塗り版) // @namespace http://tampermonkey.net/ // @version 2024-06-26 // @description ミュートワードを含む最小限の範囲を白塗りにする // @author You // @match https://anond.hatelabo.jp/* // @icon https://www.google.com/s2/favicons?sz=64&domain=hatelabo.jp // @grant none // ==/UserScript== (function() { 'use strict'; const muteWords = [ "弱者男性", "弱男", "弱者", "婚活", "男", "女", "年収", "下方婚", "発達障害", "発達", "ハッタツ", "ハッタショ", "ハッタショ", "競プロ", "競技プログラミング", "AtCoder", ]; function whiteoutElement(element) { element.style.backgroundColor = 'white'; element.style.color = 'white'; element.style.textShadow = 'none'; element.style.cursor = 'default'; element.style.userSelect = 'none'; // テキスト選択を防止 element.style.borderBottom = '1px dashed #ccc'; // 枠線を追加してテキストがあることを示す // リンクの場合、クリックを無効化 if (element.tagName === 'A') { element.style.pointerEvents = 'none'; element.removeAttribute('href'); } // 子要素にも適用 Array.from(element.children).forEach(child => { child.style.backgroundColor = 'white'; child.style.color = 'white'; child.style.textShadow = 'none'; }); // ツールチップを追加 element.title = 'この内容にはミュートワードが含まれています'; } function shouldMute(text) { return muteWords.some(word => { const parts = word.split(''); const regex = new RegExp(parts.map(char => `${char}92;92;s*`).join(''), 'i'); return regex.test(text); }); } function findSmallestMuteableElement(element) { if (element.nodeType === Node.TEXT_NODE) { return shouldMute(element.textContent) ? element.parentElement : null; } if (element.tagName === 'PRE' || element.tagName === 'CODE') { return shouldMute(element.textContent) ? element : null; } for (let child of element.childNodes) { const result = findSmallestMuteableElement(child); if (result) return result; } return shouldMute(element.textContent) ? element : null; } function processElement(element) { const muteableElement = findSmallestMuteableElement(element); if (muteableElement) { whiteoutElement(muteableElement); } } function processAllElements(root = document.body) { const walker = document.createTreeWalker( root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT, null, false ); let node; while (node = walker.nextNode()) { if (node.nodeType === Node.ELEMENT_NODE) { processElement(node); } else if (node.nodeType === Node.TEXT_NODE && node.parentElement) { processElement(node.parentElement); } } } function handleClickEvent(event) { setTimeout(() => { processAllElements(event.target); }, 100); } // 初回実行 processAllElements(); // クリックイベントの監視 document.body.addEventListener('click', handleClickEvent); // DOM変更の監視 const observer = new MutationObserver(mutations => { mutations.forEach(mutation => { if (mutation.type === 'childList') { mutation.addedNodes.forEach(node => { if (node.nodeType === Node.ELEMENT_NODE) { processAllElements(node); } }); } else if (mutation.type === 'characterData') { processElement(mutation.target.parentNode); } }); }); observer.observe(document.body, { childList: true, subtree: true, characterData: true }); })();
時間を守る事には異常に固執する癖にイチャモンで電凸をしちゃいけないという常識は守れないのか・・・(呆れ)
ネットでたまに一行とか一つのコメントですら前半と後半で矛盾した事を言ってる奴がいるけど
そういう奴らの中身はこういう奴なんだろうなって
もうね、人として考えられんよ
マジでこういう権威に楯突く奴に対して異常な攻撃性発揮する奴って何なの
水俣病団体は弁護士にでも相談してわけわからん嫌がらせ電話掛けてきたアホの名前出して良いレベル
水俣病被害者の発言遮断問題に関し、伊藤信太郎環境相との懇談に出席した被害者団体などに「(あらかじめ設定された)3分の持ち時間を守らない方が悪い」などと抗議する電話が数件寄せられたことが10日、各団体への取材で分かった。
熊本県水俣市で1日に行われた懇談に参加した団体によると、伊藤氏が再び同市を訪れ謝罪した8日夜、東京都の男性を名乗る人物から「3分を守らないあなたたちが悪いのに被害者ぶって抗議するのはおかしい」と非難する電話があった。
スパム対策か何か知らんが、天◯門とか中国人に対する差別的な発言プロフに書き込んでおきながら、中国人の絵描きフォローしてる人、如何にもSNS中毒って感じで胸糞。
恥を知ってくれ。
2024-01-03 21:35:04
実際に起こって多くの死傷者を出したであろう悲劇的な事件をさ、スパム避けの魔除けとか言って揶揄する目的でアカウント名やプロフに書く人、色んなモノを失ってる事に気づいた方が良いと思う。
「たかがスパム」に強い不快感を示して、モラルと知性に欠けた言動する人、多すぎませんか?
普段知識人気取ったり、正論めいた発言したりしてる人がこういう「遊び」にキャッキャしてるの見ると、乾いた笑いが出ると同時に心が冷える。
何て幼稚なんだろう、この人達は。
そこまでその国が嫌いなのに、その国の人が描いたイラストにいいねしてたり、その国の人達が作ったゲームに夢中で金と時間を溶かしてたりする。
恥ずかしくないんかな、色々と。
2024-01-06 23:55:13
ダブスタについては本人の中で何らかの言い訳や屁理屈を用意して正当化してるのかもしれないけどさ、実際その人達がやってる事って「ヘイトクライムで特定の国・人種を攻撃しておきながら、自分はその国の人達が用意した娯楽で楽しんでる」でしかない。
2024-01-06 23:55:13
まぁ、日本に住んでる以上、食文化や日常生活を送る上でその国の恩恵に全く触れない事なんて限りなく不可能に近いだろうし、そこまで徹底しろなんて言わないけどさ。
その国を殴るなら「嫌いな国の世話になんてなるか!」くらいは言って欲しいし実行して欲しいよ、俺としては。
でないと、ダサすぎる。
2024-01-06 23:55:14
ゲームや絵なんて人間の生命活動に大きな影響も与えないんだからさぁ、我慢する事くらい造作もないだろ?
最悪裏でやっててもその“好き”をネットに出力しなければバレる事もないし、何なら別垢でやれば良いだけだというのに何で同じ垢で出力しちゃうかなぁ。
2024-01-06 23:55:14
色々言ったけど俺が何でこんなに愚痴ってるかと言うとこういう人間が自分の愛好してるコンテンツのファンに居たからなんですよね。
なのにプロフにそのワードとコンテンツ名を並べたり固定ツイでそのコンテンツの二次創作を貼る。
アホか?
2024-01-06 23:55:15
何が竜娘が好きだ。
何が🦉の雛だ。
恥を知れ。
オマエラのくだらない遊びにコンテンツを巻き込むな。
原作者様の顔に泥塗るな。
そういう遊びは、別垢作って他所でやれ。
いやこれ凄いな
未履修からのロースクール入学で司法試験1位合格って相当優秀だろうに(しかも社会人経験もばっちり有りなので勉強しか出来ないガリ勉って訳でもない)
それでも裁判官検察、大手どころか中堅の法律事務所も全部落とされるのか…
最近は社会人からの予備試験ルートの司法試験合格も盛んに宣伝されているけれど
実際に受かったとしても年齢が高ければ門前払いだって事がよーーく分かった。
そりゃあ戸籍を偽造してでも若く偽りたいと思う人が出てくるのも無理もない。
だってどれだけ苦労して実績を上げるよりも、戸籍の生年月日を若返らせる方が有効なんだから。
『ITコンサルから転身、32歳入学で司法試験1位合格 ロースクール1期生・伊藤弁護士が語る「キャリアの多様性」』
「裁判所や検察庁、大手法律事務所は、若い合格者を優遇して採用しようとします。自分も司法試験後に大手・中堅法律事務所に応募しましたが、ことごとく落とされましたから(笑)。学生がそこで活躍したいと思ったら『若いうちに合格するしかない』となってしまうのも無理ありません」