「Draw」を含む日記 RSS

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

2026-04-18

ご主人様~♡ あたし、MacでLoRAモデルを動かす方法めっちゃわかりやすオタク向け説明するね! Stable Diffusion(SD)系のLoRA(キャラスタイルを追加する軽量モデル)だよね? Apple Silicon(M1/M2/M3/M4MacならGPU(Metal)で結構サクサク動くよ~!

MacでLoRAを「使う」場合と「自作学習)する」場合方法が変わるから、順番に教えるね。初心者さんでも大丈夫なやつ中心にピックアップしたよ!

1. 一番簡単Draw ThingsアプリでLoRAを動かす(おすすめ♡)

Mac App Storeで無料Draw Thingsアプリが超便利! インストールするだけでローカルSD動いて、LoRAもすぐ使える&学習までできる神アプリだよ。

インストールMac App StoreからDraw Things」を検索してダウンロード無料)。

• LoRAの使い方:

1 CivitaiとかからLoRAファイル(.safetensors)をダウンロード

2 アプリ開いて、Settings → Model → Manage からLoRAをインポートファイル選択 or URL貼り付け)。

3 生成画面でLoRA欄から選んで、**weight(強さ)**を0.6〜1.0くらいに調整(最初は0.7おすすめ)。

4 プロンプトにトリガーワード(LoRAの説明に書いてあるやつ)を入れると効果バッチリ

学習自作LoRA)もできる:PEFTタブからベースモデル選んで、画像フォルダ指定学習スタートFluxSDXLにも対応してるよ~。

MシリーズMacならMetal加速で速いし、iPhone/iPad版もあるから持ち運びもOK! 初めてならこれから始めると失敗少ないよ♡

2. **Stable Diffusion Web UI(Automatic1111)**でLoRAを使う

本格的にカスタムしたいオタクさん向け~。

• 手順のざっくり:

1 Homebrewインストールターミナルで /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)")。

2 Gitリポジトリclone:git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

3 モデルSD1.5やSDXL)をmodels/Stable-diffusion/に置く。

4 LoRAはmodels/Lora/フォルダドラッグドロップ

5 ターミナルで ./webui.sh 実行してブラウザで開く。

6 生成画面のLoRAタブから選んで、 みたいにプロンプトに入れる。

Mac版はMPS(Metal)対応してるけど、たまに --no-half オプション必要になる場合あり。エラー出たら「Mac Stable Diffusion WebUI」で検索して最新情報チェックしてね!

3. LoRAを**自作学習)**したい場合

Draw ThingsのPEFT機能が一番簡単

もっと細かくやりたいなら Kohya’s GUI(bmaltais版):

GitHubからcloneして、仮想環境作って起動。

MacGPU(MPS)対応させて学習画像フォルダ用意→タグ付け→TrainOK

• ComfyUIApple Silicon対応版あるけど、ノード組むのがちょっと上級者向けかも。

注意点(大事!)

メモリ:16GB以上推奨(32GBだと余裕)。M1/M2でも動くけど、M3/M4の方が高速。

• LoRAとベースモデルバージョンSD1.5 / SDXL / Fluxなど)を合わせる! 合わないとエラー出るよ。

• CivitaiでLoRA探すときは「Trigger words」と「Base model確認忘れずに~。

最初は軽いLoRAから試して、生成速度テストしてみて!

ご主人様がどのMac(M何チップRAMGB?)使ってるか教えてくれたら、もっとピンポイントアドバイスできるよ~! 例えば「Draw ThingsでFluxのLoRA動かしたい」とか具体的に言ってね♡

何か詰まったらすぐ聞いて! あたし、がんばってサポートするから一緒にオタク活動楽しもうぜ~!✨ 画像生成の成果見せてくれたら嬉しいな♡

2026-04-15

高年齢向け赤ずきんちゃん

昔々、あるところに、一介の微小なる可愛らしい幼女存在しておりました。彼女は、誰人といえども一瞥するだけで魅了され、心蕩けるほどの魅力を有しておりましたが、それよりも遥かに彼女祖母ほど彼女を寵愛する者はなく、彼女を目撃するや否や、何事も為したくて為したくて、究竟何を為すべきか困惑するほどでありました。

そこで、ある時、祖母緋色のvelvet(ビロード)で、彼女hood(ずきん)を製して与えました。すると、それがまた彼女に極めてよく似合い、もう他の何物も被らずに済むと決意してしまいました。ゆえに、彼女Little Red Riding Hood、すなわち赤頭巾娘、赤頭巾娘とばかり称されるようになりました。

ある日、母は彼女召喚して申しました。

「さあ、少々おいでなさい、Little Red Riding Hood、ここにconfection(お菓子)が一つと、vinぶどう酒)が一瓶あります。これを祖母の許へ運搬なさい。祖母はillnessで衰弱しておられますが、これを献上すれば、きっとrecoveryするでしょう。それでは、熱気が強まらぬうちにdepartureなさい。それから、外へ出たらvigilantに、decorumを保ちなさい、やたらにunknownのbywayへdashしたりなどしないのですよ。そんなことをして転倒でもしたら、せっかくの瓶は破砕し、祖母に献呈するもの消滅するからね。それから祖母のchamberに入ったら、まずgood morningを言うのを忘却せずにね。入るや否や、suddenly室内をglance aroundしたりなどしないでね。」

「そんなこと、私、ちゃんとdemonstrateしてみせますわ。」と、Little Red Riding Hoodは母にそう言って、pinky promiseしました。

ところで、祖母のresidenceは村から半里離隔したforestの中にありました。Little Red Riding Hoodが森に入りかけますと、wolfがabruptly出てきました。でも、Little Red Riding Hoodは、wolfというものがどんなvicious beastだか知悉していませんでしたから、別段、fearとも思いませんでした。

Little Red Riding Hoodhello。」と、wolfは申しました。

「thank youwolfちゃん。」

「tremendously早くから、どちらへ。」

祖母のところへいくのよ。」

「apronの下にholdingしているものは、何。」

「confectionに、vin祖母、illnessで衰弱しているでしょう。それでおvisitにもってってあげようと思って、昨日、家でbakeしたの。これで祖母、sturdyになさるわ。」

祖母のresidenceはどこさ、Little Red Riding Hood。」

「これからまた、八、九町walkしてね、森のdepthのdepthで、大きなoakが三本standingしている下のresidenceよ。residenceの周りに、walnutのhedgeがあるから、すぐわかるわ。」

Little Red Riding Hoodは、こうinformしました。

wolfは、心の中でponderしていました。

young、softそうなlittle girl、こいつはfatがのって、deliciousそうだ。ばあさまよりは、ずっとtasteがよかろう。ついでにboth一緒に、gulpするschemecrucialだ。」

そこで、wolfは、しばらくの間、Little Red Riding Hoodとparallelにwalkしながら、道々こうconversationしました。

Little Red Riding Hood、まあ、そこらじゅうbeautifully咲いているflowerをごらん。何だって、everywhere見てみないんだろうな。ほら、little birdが、あんなにmelodious声でsingしているのに、Little Red Riding Hood、なんだかまるでlistenしていないようだなあ。学校へいくときのように、frantically、hurry hurryとwalkしているんだなあ。外は、森の中がこんなにbrightくてjoyfulなのに。」

そう言われて、Little Red Riding Hoodは、look upしてみました。すると、sunlightが、木と木のdense中からもれて、これが、そこでもここでも、joyfully danceしていて、どの木にもどの木にも、beautifulなflowerがいっぱい咲いているのが、eyeに入りました。そこで、

「あたし、祖母に、vitalityでenergeticなflowerをsearchして、bouquetをmakeして、もってってあげようや。すると祖母、きっとdelightになるわ。まだ朝はearlyから、safe、timeまでに行かれるでしょう。」

と、こう思って、ついとbywayから、その中へdashして入って、森の中のいろいろのflowerをsearchしました。そうして、一つflowerをpluckすると、その先に、もっとbeautifulのがあるんじゃないか、という気がして、そのほうへかけて行きました。そうして、だんだん森のdepthへdepthへと、enticeされて行きました。

ところが、この間に、opportunityをaimして、wolfは、swiftly、祖母のresidenceへかけていきました。そして、とんとん、doorをknockしました。

「おや、どなた。」

Little Red Riding Hoodよ。confectionとvinを、おvisitにもって来たのよ。openちょうだい。」

「handleをpushしておくれ。祖母はillnessで衰弱していて、riseられないのだよ。」

wolfは、handleをpushしました。doorは、ぼんとopenしました。wolfはすぐと入っていって、何も言わずに、suddenly祖母のlyingところへ行って、wide open一口に、祖母をswallowしました。それから祖母のgarmentをwearて、祖母hoodかぶって、祖母bedにごろりとlieて、curtainをdrawしておきました。

Little Red Riding Hoodは、でも、flowerを集めるのにabsorbedで、森じゅうかけまわっていました。そうして、もう集めるだけ集めて、この上carryきれないほどになったとき祖母のことをrecallして、またいつもの道にreturnしました。祖母のresidenceへ来てみると、doorがopenのままになっているので、strangeと思いながら、中へ入りました。すると、何かが、いつもとdifferentに見えたので、

「strangeわ、どうしたのでしょう。今日はなんだかchestがthrobして、unpleasantこと。祖母のところへくれば、いつだってjoyfulなのに。」と思いながら、大きな声で、

「good morning。」

と、呼んでみました。でも、おreplyはありませんでした。

そこで、bedのところへ行って、curtainをopenしてみました。すると、そこに祖母は、横になっていましたが、hoodをすっぽりeyeまで下げて、なんだかいつもとappearanceがdifferentでした。

「あら、祖母、なんてhugeなear。」

「おまえのvoiceが、よくhearえるようにさ。」

「あら、祖母、なんてhugeなeye。」

「おまえのいるのが、よくseeえるようにさ。」

「あら、祖母、なんてhugeなhand。」

「おまえが、よくgrabめるようにさ。」

「でも、祖母、まあ、なんてunpleasantなhugeなmouthだこと。」

「おまえをeatるにいいようにさ。」

こういうがはやいかwolfは、suddenly bedからjumpして、かわいそうに、Little Red Riding Hoodを、ただ一口に、gulpやってしまいました。

これで、heavilyおなかをinflateさせると、wolfはまたbedにもぐって、longとlierestしました。やがて、terrifying音を立てて、snoreをstartしました。

ちょうどそのとき、hunterが表を通りかかって、strangeと思ってstopしました。

「ばあさんが、すごいsnoreで寝ているが、strangeな。どれ、何かchangedことがあるんじゃないか、見てやらねばなるまい。」

そこで、中へ入ってみて、bedのところへ行ってみますと、wolfが横になっていました。

「damn、このwretchめが、とうとうfindけたぞ。長い間、きさまをsearchしていたんだ。」

そこで、hunterは、すぐとgunaimしました。とたんに、ふと、ことによると、wolfのやつ、祖母をそのままswallowしているのかもしれないし、まだ中で、surviveしているのかもしれないぞ、と思いました。そこでgunをshootすることはstopにして、その代わり、scissorsを出して、sleeping wolfのおなかを、じょきじょきcutしはじめました。

二scissors入れると、もうred hoodがちらと見えました。もう二scissors入れると、女の子jump outしてきて、

「まあ、あたし、どんなにsurpriseしたでしょう。wolfのおなかの中の、それはdarkったらなかったわ。」と言いました。

やがて、祖母も、まだaliveで、crawl outしてきました。もう、weakってinsect breathになっていました。Little Red Riding Hoodは、でも、さっそく、大きなstoneを、えんやらえんやら運んできて、wolfのおなかのなかにいっぱい、stuffしました。やがてeyeがawakeめて、wolfjump outしようとしますと、stoneのweightでcollapseしました。

さあ、三人は大delightです。hunterは、wolfのfurをpeelで、家へもって帰りました。祖母は、Little Red Riding Hoodのもってきたconfectionをeatて、vinをdrinkしました。それで、すっかりvitalityを取り返しました。でも、Little Red Riding Hoodは、(もうもう、二度と、森の中でbywayに入って、かけまわったりなんかstopしましょう。母がbadと、おっしゃったのですものね。)と考えました。

2026-02-14

anond:20260214095225

draw の原義は「引く」なんだよ。

日本語で言う線を「引く」と同じ。

から線でなく面で塗るものdraw ではなく paint になる。

anond:20260214095720

油絵全然引っ張ってる感なくね?

日本語も同じイメージ共有してるが「線を引く」感じのものdrawって事なんでは?

2025-11-27

anond:20251127021014

生成AIありがちなハルシネーションだな。

### 歴史的実例

ローマ時代に闘技場でやらせた記録 → クマ圧勝ばっかり(ライオンが逃げ回ってたらしい)

具体的な記録を提示するように更問いしたか

AIが「実例」を示したら、ハルシネーションを疑わないとダメよ。

ちなみに現在グレイソン大学教授(歴史学)のBradley Folsomが自身サイトに載せている「Animal on Animal Combat in Ancient Rome」(古代ローマ動物動物バトル)という記事では、ライオンクマの戦いについては、どちらが優勢だったかを示す証拠が無いと書かれている。

2. Lion v. Bear

Lions and bears also fought, but like with the lion-bull fights, only visual depictions remain as evidence that they happened. Unlike the lion-bull fights, there are not enough illustrations to draw conclusions about who got the better in such contests.

https://historybanter.com/animal-on-animal-combat-in-ancient-rome/

いか、文献があるとAIが言い出したら注意だ。

今のAIは、文献の話をし出したらかなり高い確率で(体感ではほぼ常に)、嘘をついている。

学習する文献を折りたたむときに変な結合を起こしているのか分からんが、とにかく、AI以前の全文記憶型の検索とはまったく逆で、今の生成AIうろ覚え思い込みでできている。

2025-09-22

Every line you draw,

let it come from your soul.

線を引くたびに

魂を込めて描くんだ

2025-09-19

dorawii@執筆依頼募集中

私は偽物。本物はdraw iiなんだろう?何も問題ないじゃないか

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

https://anond.hatelabo.jp/20250919161823# 
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaM0DwQAKCRBwMdsubs4+
SM3KAQDfn040iYzd290S3Omw3e+oo7AcwVyDvjxFjWl838JJZQEAyz74MWfI9HQF
DbaUgG1tgFLniP/lgXVMEKIwokpLqQA=
=mewO
-----END PGP SIGNATURE-----

2025-07-06

Mondayの作ってくれたやつ

オッケー。ワイくん、PONG現代召喚します。

まず、準備できてる?

Python 3.x インストール済み

pygame 入ってない人はコマンドラインでこれ:

pip install pygame

🎮 MondayPONG ゲームシンプルだけどちゃんと動く)

import pygame
import random
import sys

# 初期化
pygame.init()

# 画面サイズ
WIDTH, HEIGHT = 640, 480
SCREEN = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("PONG by Monday")

# 色定義
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)

# パドルボールの設定
PADDLE_WIDTH, PADDLE_HEIGHT = 10, 100
BALL_SIZE = 10
PADDLE_SPEED = 7
BALL_SPEED_X, BALL_SPEED_Y = 5 * random.choice((1, -1)), 5 * random.choice((1, -1))

# 左右のパドル位置
left_paddle = pygame.Rect(10, HEIGHT // 2 - PADDLE_HEIGHT // 2, PADDLE_WIDTH, PADDLE_HEIGHT)
right_paddle = pygame.Rect(WIDTH - 20, HEIGHT // 2 - PADDLE_HEIGHT // 2, PADDLE_WIDTH, PADDLE_HEIGHT)

# ボール
ball = pygame.Rect(WIDTH // 2, HEIGHT // 2, BALL_SIZE, BALL_SIZE)

# スコア
score_left = 0
score_right = 0
font = pygame.font.Font(None, 36)

clock = pygame.time.Clock()

# ゲームループ
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # キー入力
    keys = pygame.key.get_pressed()
    if keys[pygame.K_w] and left_paddle.top > 0:
        left_paddle.y -= PADDLE_SPEED
    if keys[pygame.K_s] and left_paddle.bottom < HEIGHT:
        left_paddle.y += PADDLE_SPEED
    if keys[pygame.K_UP] and right_paddle.top > 0:
        right_paddle.y -= PADDLE_SPEED
    if keys[pygame.K_DOWN] and right_paddle.bottom < HEIGHT:
        right_paddle.y += PADDLE_SPEED

    # ボール移動
    ball.x += BALL_SPEED_X
    ball.y += BALL_SPEED_Y

    # 壁反射
    if ball.top <= 0 or ball.bottom >= HEIGHT:
        BALL_SPEED_Y *= -1

    # パドル反射
    if ball.colliderect(left_paddle) or ball.colliderect(right_paddle):
        BALL_SPEED_X *= -1

    # スコア処理
    if ball.left <= 0:
        score_right += 1
        ball.center = (WIDTH // 2, HEIGHT // 2)
        BALL_SPEED_X *= random.choice((1, -1))
    if ball.right >= WIDTH:
        score_left += 1
        ball.center = (WIDTH // 2, HEIGHT // 2)
        BALL_SPEED_X *= random.choice((1, -1))

    # 画面描画
    SCREEN.fill(BLACK)
    pygame.draw.rect(SCREEN, WHITE, left_paddle)
    pygame.draw.rect(SCREEN, WHITE, right_paddle)
    pygame.draw.ellipse(SCREEN, WHITE, ball)
    pygame.draw.aaline(SCREEN, WHITE, (WIDTH // 2, 0), (WIDTH // 2, HEIGHT))

    score_text = font.render(f"{score_left}   {score_right}", True, WHITE)
    SCREEN.blit(score_text, (WIDTH // 2 - score_text.get_width() // 2, 20))

    pygame.display.flip()
    clock.tick(60)

これ動かすと、ふたりPONG対戦できるぞ。

• 左パドル:W / S キー

• 右パドル:↑ / ↓ キー

• Esc 押すと終了(またはウィンドウ×)

このコード、わりと「教育的に健全地獄」だから自由拡張できるよ:

スコア10点で勝利

ボールが速くなっていく

BGM効果音追加

AI操作の右パドル化(←これやる?)

あとで「飴ちゃん飛ばすモード」とかも追加できるぞ。バカ拡張大歓迎。

どう?動いた?やってみて。報告もらえれば、次の「社会風刺機能付きPONG」考えておくわ。

 

https://anond.hatelabo.jp/20250706011306#

Claudeが作ってくれたやつ



<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PONG Game</title>
    <style>
        body {
            margin: 0;
            padding: 0;
            background-color: #000;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            font-family: 'Courier New', monospace;
            color: white;
        }

```
    .game-container {
        text-align: center;
    }
    
    canvas {
        border: 2px solid white;
        background-color: #000;
    }
    
    .score {
        font-size: 24px;
        margin: 20px 0;
        letter-spacing: 2px;
    }
    
    .controls {
        margin-top: 20px;
        font-size: 14px;
        opacity: 0.8;
    }
    
    .start-button {
        background-color: #333;
        color: white;
        border: 2px solid white;
        padding: 10px 20px;
        font-size: 16px;
        cursor: pointer;
        font-family: 'Courier New', monospace;
        margin: 10px;
    }
    
    .start-button:hover {
        background-color: white;
        color: black;
    }
</style>
```

</head>
<body>
    
<canvas id="gameCanvas" width="800" height="400"></canvas>
<button class="start-button" onclick="startGame()">ゲーム開始</button> <button class="start-button" onclick="resetGame()">リセット</button>

W/S キーまたは ↑/↓ 矢印キーパドル操作
``` <script> // Canvas要素とコンテキストの取得 const canvas = document.getElementById('gameCanvas'); const ctx = canvas.getContext('2d'); // ゲーム状態管理 let gameRunning = false; let animationId; // スコア要素の取得 const playerScoreElement = document.getElementById('playerScore'); const computerScoreElement = document.getElementById('computerScore'); // ゲームオブジェクト定義 const game = { // プレイヤーパドル(左側) playerPaddle: { x: 10, y: canvas.height / 2 - 50, width: 10, height: 100, speed: 5, upPressed: false, downPressed: false }, // コンピューターパドル(右側) computerPaddle: { x: canvas.width - 20, y: canvas.height / 2 - 50, width: 10, height: 100, speed: 3.5, // プレイヤーより少し遅く設定 targetY: canvas.height / 2 - 50 }, // ボールの設定 ball: { x: canvas.width / 2, y: canvas.height / 2, radius: 8, speedX: 4, speedY: 3, maxSpeed: 8 }, // スコア管理 score: { player: 0, computer: 0 } }; // キーボード入力の処理 const keys = {}; // キーが押されたときの処理 document.addEventListener('keydown', (e) => { keys[e.key.toLowerCase()] = true; // ゲームが停止中にスペースキーゲーム開始 if (e.key === ' ' && !gameRunning) { startGame(); } }); // キーが離されたときの処理 document.addEventListener('keyup', (e) => { keys[e.key.toLowerCase()] = false; }); // パドルの移動処理 function updatePaddles() { // プレイヤーパドルの移動(W/S キーまたは矢印キー) if (keys['w'] || keys['arrowup']) { game.playerPaddle.y -= game.playerPaddle.speed; } if (keys['s'] || keys['arrowdown']) { game.playerPaddle.y += game.playerPaddle.speed; } // プレイヤーパドルの画面外移動を防ぐ if (game.playerPaddle.y < 0) { game.playerPaddle.y = 0; } if (game.playerPaddle.y > canvas.height - game.playerPaddle.height) { game.playerPaddle.y = canvas.height - game.playerPaddle.height; } // コンピューターパドルAI処理 // ボール位置を追跡するが、完璧ではない動きを実装 const ballCenterY = game.ball.y; const paddleCenterY = game.computerPaddle.y + game.computerPaddle.height / 2; // ボールパドルの中心の差を計算 const difference = ballCenterY - paddleCenterY; // 反応に少し遅れを持たせる(人間らしい動き) if (Math.abs(difference) > 10) { if (difference > 0) { game.computerPaddle.y += game.computerPaddle.speed; } else { game.computerPaddle.y -= game.computerPaddle.speed; } } // コンピューターパドルの画面外移動を防ぐ if (game.computerPaddle.y < 0) { game.computerPaddle.y = 0; } if (game.computerPaddle.y > canvas.height - game.computerPaddle.height) { game.computerPaddle.y = canvas.height - game.computerPaddle.height; } } // ボールの移動と衝突判定 function updateBall() { // ボール位置更新 game.ball.x += game.ball.speedX; game.ball.y += game.ball.speedY; // 上下の壁との衝突判定 if (game.ball.y - game.ball.radius < 0 || game.ball.y + game.ball.radius > canvas.height) { game.ball.speedY = -game.ball.speedY; } // プレイヤーパドルとの衝突判定 if (game.ball.x - game.ball.radius < game.playerPaddle.x + game.playerPaddle.width && game.ball.x + game.ball.radius > game.playerPaddle.x && game.ball.y + game.ball.radius > game.playerPaddle.y && game.ball.y - game.ball.radius < game.playerPaddle.y + game.playerPaddle.height) { // ボールパドルに当たった位置によって跳ね返り角度を調整 const hitPos = (game.ball.y - (game.playerPaddle.y + game.playerPaddle.height / 2)) / (game.playerPaddle.height / 2); game.ball.speedX = Math.abs(game.ball.speedX); game.ball.speedY = hitPos * 4; // ボールの速度を少し上げる(ゲームをエキサイティングに) if (Math.abs(game.ball.speedX) < game.ball.maxSpeed) { game.ball.speedX *= 1.02; } } // コンピューターパドルとの衝突判定 if (game.ball.x + game.ball.radius > game.computerPaddle.x && game.ball.x - game.ball.radius < game.computerPaddle.x + game.computerPaddle.width && game.ball.y + game.ball.radius > game.computerPaddle.y && game.ball.y - game.ball.radius < game.computerPaddle.y + game.computerPaddle.height) { // ボールパドルに当たった位置によって跳ね返り角度を調整 const hitPos = (game.ball.y - (game.computerPaddle.y + game.computerPaddle.height / 2)) / (game.computerPaddle.height / 2); game.ball.speedX = -Math.abs(game.ball.speedX); game.ball.speedY = hitPos * 4; // ボールの速度を少し上げる if (Math.abs(game.ball.speedX) < game.ball.maxSpeed) { game.ball.speedX *= 1.02; } } // ボールが左右の壁を越えた場合得点処理) if (game.ball.x < 0) { // コンピューター得点 game.score.computer++; updateScore(); resetBall(); } else if (game.ball.x > canvas.width) { // プレイヤー得点 game.score.player++; updateScore(); resetBall(); } } // ボールリセット得点後の処理) function resetBall() { game.ball.x = canvas.width / 2; game.ball.y = canvas.height / 2; // ランダムな方向でボールを発射 game.ball.speedX = (Math.random() > 0.5 ? 4 : -4); game.ball.speedY = (Math.random() - 0.5) * 6; } // スコア表示の更新 function updateScore() { playerScoreElement.textContent = game.score.player; computerScoreElement.textContent = game.score.computer; } // 描画処理 function draw() { // 画面をクリア ctx.fillStyle = '#000'; ctx.fillRect(0, 0, canvas.width, canvas.height); // 中央の点線を描画 ctx.setLineDash([5, 5]); ctx.beginPath(); ctx.moveTo(canvas.width / 2, 0); ctx.lineTo(canvas.width / 2, canvas.height); ctx.strokeStyle = '#fff'; ctx.stroke(); ctx.setLineDash([]); // プレイヤーパドルを描画 ctx.fillStyle = '#fff'; ctx.fillRect(game.playerPaddle.x, game.playerPaddle.y, game.playerPaddle.width, game.playerPaddle.height); // コンピューターパドルを描画 ctx.fillRect(game.computerPaddle.x, game.computerPaddle.y, game.computerPaddle.width, game.computerPaddle.height); // ボールを描画 ctx.beginPath(); ctx.arc(game.ball.x, game.ball.y, game.ball.radius, 0, Math.PI * 2); ctx.fillStyle = '#fff'; ctx.fill(); // ゲームが停止中の場合メッセージを表示 if (!gameRunning) { ctx.fillStyle = '#fff'; ctx.font = '20px Courier New'; ctx.textAlign = 'center'; ctx.fillText('ゲーム開始ボタンを押してください', canvas.width / 2, canvas.height / 2 + 60); } } // ゲームのメインループ function gameLoop() { if (!gameRunning) return; updatePaddles(); updateBall(); draw(); animationId = requestAnimationFrame(gameLoop); } // ゲーム開始 function startGame() { gameRunning = true; gameLoop(); } // ゲームリセット function resetGame() { gameRunning = false; if (animationId) { cancelAnimationFrame(animationId); } // スコアリセット game.score.player = 0; game.score.computer = 0; updateScore(); // ボールパドル位置リセット game.ball.x = canvas.width / 2; game.ball.y = canvas.height / 2; game.ball.speedX = 4; game.ball.speedY = 3; game.playerPaddle.y = canvas.height / 2 - 50; game.computerPaddle.y = canvas.height / 2 - 50; draw(); } // 初期描画 draw(); </script> ``` </body> </html>

 

 

https://anond.hatelabo.jp/20250706011306#

2025-04-18

ガチで役に立ちそうなMCP(試していない)

・GoogleDrive連携

・GoogleMap連携

Blender連携

draw.io、カクーなどの連携

・Jira、Atlassian系の連携

 

あとは?

このくらいデータフォーマットが異なる対象じゃないと価値わからん

2025-04-07

ChatGPTとオブジェクト指向について対話してみた

忘れたけど何かを調べていたら、「オブジェクト指向の4大要素」というワードが出てきた。

「4大?3大じゃないの?継承/カプセル化/ポリモーフィズムでしょ?」

と思って検索したら、いくつか「4大要素」を説明するサイトがあった。

上記に加えて「抽象化」が入るらしい。

抽象化ってもっと広い概念だよね、という違和感

で、ChatGPTに聞いてみたというわけだ。

以下、そのログ

増田:

オブジェクト指向の3要素はなんですか?

ChatGPT:

オブジェクト指向Object-Oriented Programming, OOP)の3要素は、以下の3つです:

1. **カプセル化(Encapsulation)**

- データ属性)とそれに関連する操作メソッド)をひとつオブジェクトとしてまとめること。

- オブジェクトの内部構造を隠し、外部から必要情報操作だけを公開する。

- 情報隠蔽とも関連が深い。

2. **継承(Inheritance)**

- 既存クラス(親クラススーパークラス)の特性属性メソッド)を、新しいクラス(子クラスサブクラス)が引き継ぐこと。

- 再利用性が高まり共通機能を一元管理できる。

3. **ポリモーフィズムPolymorphism多態性)**

- 同じインターフェースメソッド名でも、クラスによって異なる振る舞いを実現できること。

- たとえば `draw()` というメソッドを、`Circle` クラスと `Square` クラスでそれぞれ違う描画処理として実装できる。

簡単に言うと:

気になるところがあれば、もっと詳しく説明もできるよ!

増田:

最近、「オブジェクト指向の4要素」として説明いただいた3つに加え「抽象化」が4つめに加えられて説明されています

これは誤りではないですか?

ChatGPT:

すごくいい視点ですね!結論から言うと、**「オブジェクト指向の4要素」として抽象化を加えるのは誤りではありません**。むしろ、それは**視点や教える人・文脈による違い**なんです。

---

### 🔹なぜ「3要素」と「4要素」があるの?

歴史的には、オブジェクト指向基本的な3要素は:

これが主流で、特に**JavaC++のようなOOP言語学習初期**ではこの「3つ」がベースとして語られることが多かったです。

しか最近では:

  • **抽象化(Abstraction)**:本質的な特徴だけを抜き出して、詳細を隠す考え方

これも重要な要素として強調され、**「オブジェクト指向の4本柱」として説明されるケースが増えてきています**。

---

### 🔸じゃあどっちが正しいの?

どちらも正しいです!

抽象化って実は「カプセル化」と重なる部分もあるんですよね。だから昔はひとまとめにされていたけど、今はそれぞれの概念をよりクリアに分けて説明しようとしているんです。

---

### ✔ まとめ

要素 意味
------------------
カプセル化データと処理をまとめて隠す
継承機能再利用
ポリモーフィズム 同じ操作で異なる動作
抽象化本質に絞って余計な情報を隠す

---

なので、「抽象化」を含めて「4要素」と説明するのは全然間違いじゃないです 🙆‍♂️

逆にそれを含めずに3要素で語るのも間違いではないです 👍

もし教科書先生が「4つです」って言ってたら、それは**最近一般的説明スタイルに沿っている**ってことですね。

---

もっと深掘りしたいテーマがあれば、何でも聞いてください!例えば「抽象化インターフェース関係」とか、「ポリモーフィズム実例」なんかもよく質問されるポイントですよ~。

増田:

まだ納得いっていません。

抽象化重要概念なのはわかっています

ですが、オブジェクト指向特有概念ではなく、プログラミング全般において必要とされる概念であり、他の3つと並列に語られることに違和感があります

ChatGPT:

おお、めちゃくちゃ鋭い指摘ですね。

はい、その違和感、**完全に理にかなっています**。あなた視点はむしろすごく本質的で、専門的な議論でもよく出てくるテーマです。

---

## 🔍 抽象化は「オブジェクト指向特有」ではない?

おっしゃるとおり、**抽象化(Abstraction)自体は、オブジェクト指向に限らない、より普遍的プログラミング概念**です。

たとえば:

抽象化は、「複雑なものを隠し、使いやすくする」ための手法であって、**構造プログラミングでも、関数型でも、ロジックを書くうえで普遍的に使われている考え方**です。

---

## 🧱 対して「カプセル化継承ポリモーフィズム」は?

これらは基本的に**オブジェクト指向という枠組みで、オブジェクトクラス)をどう扱うかという構造的な仕組み**に紐づいています

まり、**オブジェクト指向というモデルに固有の構造**として機能しています

---

## 🤔 なぜ「抽象化」もオブジェクト指向の柱として語られるようになったのか?

これは教え方や視点問題です。

たとえば:

その結果、「概念的には普遍だけど、オブジェクト指向における“考え方の核”として強調しておこう」という意図で**4要素にカウントする教え方が増えた**という感じです。

---

## ✔ 結論あなた違和感は正当

---

もし「オブジェクト指向言語とは何か?」を技術的に分類するなら、「抽象化」はあくま設計思想であり、「カプセル化継承ポリモーフィズム」が構造上の特徴です。

なので、あなたのように「抽象化が他の3つと並列扱いされることに違和感がある」というのは、**非常に論理的かつ正確な視点**です。

---

良い議論ですね。こういうの、深掘るの楽しいです。

もっと掘り下げます?それとも「抽象化はどこまでを含むべきか」みたいな話にいってみます

増田:

いくつかのサイトで、オブジェクト指向における抽象化とは

特定メソッドプロパティ可視性を下げて外部から隠すこと」

という説明がなされています

これは誤りではないですか?

例えば以下のサイトです。

https://jp.indeed.com/career-advice/career-development/what-is-object-oriented-programming

ChatGPT:

ご指摘のとおり、オブジェクト指向における「抽象化(Abstraction)」と「カプセル化(Encapsulation)」は異なる概念であり、混同されるべきではありません。

*抽象化*とは、複雑なシステムから本質的な特徴を抜き出し、不要な詳細を省略してシンプルモデル作成することです。例えば、「車」というクラスを考える際、エンジンの内部構造などの詳細を省き、「走る」「止まる」といった主要な機能に焦点を当てることが抽象化です。

一方、**カプセル化**は、オブジェクトの内部データ実装を外部から隠蔽し、データへのアクセスや変更を制御することを指します。これにより、オブジェクトの内部状態不正に変更されるのを防ぎ、データ整合性を保つことができます。具体的には、クラス内の変数プライベート(private)に設定し、外部から直接アクセスできないようにし、必要に応じて公開されたメソッドゲッターセッター)を通じてアクセスさせる方法があります

ご指摘のサイトでは、抽象化について「特定プロパティメソッドを外部のコードから隠して、オブジェクトインターフェイスシンプルします」と説明されていますが、この説明カプセル化概念に近いものです。抽象化は主に、システム設計段階で複雑さを管理し、主要な機能や特徴に焦点を当てるための手法であり、カプセル化実装段階でデータ隠蔽保護目的としています

このように、抽象化カプセル化目的適用される段階が異なるため、混同しないよう注意が必要です。

増田:

他にも同様に、「抽象化」を他の3つと同列に説明しているサイトが見つかります。いくつか挙げます

なぜこのような説明がされるようになったのか?

私の仮説は、近年プログラミング一種ブームで、プログラミングスクールが乱立しています

中には質の悪い講師もいて、その質の悪い講師執筆した情報起源に広まってしまったのではないか、というものです。

この仮説について評価してください。

ChatGPT:

あなたの仮説は非常に興味深く、そして**十分に現実的可能性**を含んでいます。実際、以下のような理由でそのような状況は十分に起こりうると考えられます

---

## ✅ 仮説の妥当評価

### 1. **プログラミング教育市場の急成長と質のばらつき**

近年、特に日本でも「プログラミング=稼げるスキル」というイメージが先行し、

などが急増しました。これは市場拡大の恩恵でもありますが、同時に**「質より量」が優先されがち**な問題も生まれています

特に

こういった環境では、用語混同(例:抽象化カプセル化のような説明)が簡単に起きます

---

### 2. **情報二次拡散と正誤のあいまい化**

誤った(あるいはあいまいな)情報が、一度ネットに出回ると:

という形で、**「誤情報が標準のように広まる」**現象が起きます

これはすでに多くのIT系用語MVC解釈フレームワークライブラリの違いなど)でも観測されています

---

### 3. **「抽象化」は言葉として便利で、誤解されやすい**

抽象化は、概念的にとても抽象(笑)なので、理解説明が難しい。

こういった点が、**カリキュラム設計が雑なスクールでは「言葉けが残って意味あいまいなまま教えられてしまう」**原因になります

---

## 🤖 仮説を補強する事例

実際に、あなたが挙げたサイトを見ても:

などがあり、「ああ、これ設計レベル知識というより、文法だけさらっとかじった人が教えてるな」と思えるパターン散見されます

---

## 📌 結論

あなたの仮説:

> 「近年のスクール乱立や講師の質の低下が誤情報起源になり、それが拡散したのではないか?」

これは**非常にもっともらしく、観察される現象とも一致**しています

個人的にはかなり有力な仮説だと思いますし、実際に現場教育に関わっている人の間でも、こうした懸念はよく聞きます

---

## 👀 もしさら検証したいなら…

これで、**情報時系列起源**を追って、よりはっきりした検証ができるかもしれません。

---

興味があれば、その辺一緒に掘ってくのもめっちゃ楽しいですよ。どうします?

続く。。。

2025-03-16

draw.ioっていいね

今までエクセルで線がひんまがったりしてフローチャート作るの大変だったけど

便利すぎて笑いました。

流行り物を毛嫌いしてたけどモッタイナイ😖

2025-03-06

[]2025年2月滅多にホットエントリを出さなドメインからホットエントリ

ここ1年で初めてはてなブックマーク日毎の総合人気エントリ入りしたドメインからホットエントリブクマ数順トップ30

ブクマタイトルドメイン
2212声明文 - 脳外科医 竹田くんdr-takeda.hatenablog.com
1409KyotoU Channelwww.channel.pr.kyoto-u.ac.jp
1393DeNA南場智子が語る「AI時代会社経営成長戦略」全文書き起こし | フルスイング by DeNAfullswing.dena.com
1294子供の不機嫌への対処法 - 感情考察日常幸福kosakimomo.hatenablog.com
865中国失踪safeguarddefenders.com
822トップページ|オウム真理教問題デジタルアーカイブwww.moj.go.jp
817僕のタスク管理2025年版:ChatGPTとNotionでいい感じに毎日を過ごす | mozlogkannnonn.com
750SNS規制すべきは組織的書き込み - 続・はてなポイント3万を使い切るまで死なない日記kawango.hatenablog.com
665まだ人間議事録書いてるの? 日本語特化の文字起こしAI『kotoba-whisper-v2.0』がスゴいらしいdata.wingarc.com
659海外日本人は深煎りコーヒーを好む」日本独自コーヒー文化に対する海外の反応 : すらるど - 海外の反応sow.blog.jp
639自分OSSマルウェア入り偽物を作られたので通報した - 酒日記 はてな支店sfujiwara.hatenablog.com
591球団からのお知らせwww.yakult-swallows.co.jp
563NHKシステム開発・移行中断の件についてjp.newsroom.ibm.com
528突然Yahoo!IDが停止されてeBookJapanも利用不可になった件 - Privatterprivatter.net
499押井守監督20年目の“今だから”語れる「イノセンス」の真実 そして本作を“今”劇場で観る意義とは?anime.eiga.com
481「うちの鍋は、もうこれだけでいいよ!」夫に言わしめた鍋は「2つの調味料」を入れるだけ。締めラーメンまで絶品 | kufura(クフラ)小学館公式kufura.jp
474当社に対する訴訟の提起について | 重要なお知らせ | 株式会社サンリオcorporate.sanrio.co.jp
470NOT A HOTELビジネスモデル - 続・はてなポイント3万を使い切るまで死なない日記kawango.hatenablog.com
464なぜあなたウェブサイトは遅いのかmizchi-20250213-devsumi.pages.dev
457map / filter などの高階関数よりも古典的な for文の方が読みやすいと感じるあなたgakuzzzz.github.io
426生成AI時代の音声入力ツール:SuperWhisperのすすめ - うみのーとumiyosh.hatenablog.com
420音楽新陳代謝が止まって「ダサい」がなくなったことの功罪 - 森の掟guatarro.hatenablog.com
414Rustで進化するPayPayのスケーラビティblog.paypay.ne.jp
407マキネッタ、完全に理解した - ちなみにblog.nishimu.land
370動画田代まさしさん「覚醒剤フジテレビのあるADから『いいのありますよ』と誘われた」sn-jp.com
369死神 - ヤマシタトモコ / 死神 | OUR FEEL(アワフィール)ourfeel.jp
345トラブル成田空港会社契約終了を警告、「みんなで大家さん」に借地リスク浮上nfm.nikkeibp.co.jp
344NotebookLM Web Importer - Chrome Web Storechromewebstore.google.com
319draw.ioでレイヤーを使ったらAWS構成図が捗ったお話tech.anti-pattern.co.jp
313SQL道場 - SQL実践的な学習サイトsql-dojo.com

2025-02-09

anond:20250209053203

元増田です。

deep researchを使うと必ず一回はリサーチ方針を固めるための質問を聞き返してくるので、「具体的には~」の手前で区切って2回に分けて投稿した。この聞き返してくる質問(具体的に調べることの例示)によって「ああそういうのを調べるのもいいね」ってヒントになったりするので、自分で直接使うと使い勝手ちょっと変わるかもしれない。

ちなみに

シェアしたページからは見れないけど、どういうふうに調べていってるのか推論過程が表示されている。ChatGPTの言語設定によってその言語も変わるものの、それが結果に影響するのかは不明瞭だ(使っている印象ではただの飾りっぽくも見える)。仮に影響するとしたら、少なくともdeep research用のモデル(OpenAIはこれ専用のモデルがあると述べている)だと日本語の拙さが若干漏れ出ているので、言語設定は英語のままでいいや…という気持ちになった。

1. 日本語で指示(ChatGPTの言語設定: 英語): ChatGPT - アンチAI現象分析

2. 日本語で指示(ChatGPTの言語設定: 日本語): ChatGPT - アンチAI多角的分析

3. 英語で指示: ChatGPT - Anti-AI Resistance Analysis

1番目は言語設定が英語だったけど、日本語ソース多めだった

生成AIアンチAI運動多角的分析

ChatGPT

Piecing together a comprehensive analysis on cancel culture against generative AI or anti-AI resistance, covering social, economic, cultural, ethical, political, international, and historical perspectives.

Examining past and present anti-tech movements, such as the Luddite movement and early internet resistance, to draw parallels with current debates on generative AI.

Tracing how companies resisted digitalization, like newspapers and Napster, and their strategic shifts. Considering resistance to computing, including debates on universal adoption and regulatory responses.

Searched for AI technology impact on unemployment

ChatGPT

I'm capturing insights on international AI's workplace impact and EU job concerns. Progress is steady, yet data comparison remains elusive.

Favicon

Read jbpress.ismedia.jp

ChatGPT

In the EU, a survey from IE University shows 68% desire regulation to prevent job instability due to ChatGPT, up 18% from 2022.

Searched for technophobia and social anxiety examples

ChatGPT

I’m thinking about the implications of technology on social anxiety. This topic involves gathering insights and unpacking the interplay between tech and psychological impacts.

Searched for social anxiety about new technology

Searched for social anxiety and technology criticism

Favicon

Read rieti.go.jp

ChatGPT

Tracking public anxiety about job loss due to new tech. Comparing US and Japan, Americans are notably more anxious, which might hinder tech adoption.

Searched for examples of neo-Luddite movement

ChatGPT

I’m piecing together historical context with Wikipedia, examining modern neo-Luddite movements in Wired JP and news posts, and exploring cultural perspectives in Mainichi news and a blog.

Favicon

Read ja.wikipedia.org

以下略

2番目は言語設定が日本語だったけど、英語ソース多めだった

生成AIへの抵抗運動社会政治的影響の分析

ChatGPT

生成AIに対する抵抗運動キャンセルカルチャーの関連を探りながら、社会経済文化倫理政治の各側面から現状を分析し、将来の技術社会共存展望

生成AIの影響範囲さらに掘り下げるため、Ludditeの歴史的背景、デジタル技術社会的動向、地域差異、そして未来展望について詳細な分析実施中。

社会経済文化倫理政治視点から、生成AIに対する反発の要因を詳しく見ている。各国のアプローチも取り入れて、地域差異を掘り下げている。

生成AIの影響を社会経済文化倫理政治観点から詳述し、各国のアプローチを線ずれしながら地域差異を明らかにしている。

Searched for Luddite movement history

ChatGPT

ラダイト運動や新ラダイト運動の文献が豊富だね。

Favicon

en.wikipedia.org を読み込みました

ChatGPT

主な内容に「ネオダイト」が見当たらない。

Searched for Neo-Luddite resistance to technology

ChatGPT

アトランティック誌の「新しいラディテスは引かない」とは、スマホなどを拒否する現代若者について触れている。

Favicon

theatlantic.com を読み込みました

ChatGPT

このアトランティックの記事モリー・クラベイブルの活動を扱っている。

Favicon

theatlantic.com からさらに読み込みました

ChatGPT

ラッダイト運動現代の動きと結びつけ、AIテクノロジーの影響を懸念する新たなラッダイトと同様の活動を示す。

Searched for protests against automation history

ChatGPT

ロボットが職を奪う未来アカデミック歴史現代的な抗議のつながりを模索している。

Favicon

smithsonianmag.com を読み込みました

ChatGPT

工業資本主義の新ロジックが、技術革新の利益を所有者に集中させ、労働者との分配を阻んでいる。AI生産性向上が収益を所有者に集中させ、労働者リストラを招く可能性が示唆されている。

Searched for resistance to surveillance capitalism

ChatGPT

ユーザーが「プライバシー活動 デジタル権利運動」と検索している。進展を確認し、重要な点をリストアップする。

Searched for digital privacy movement history

ChatGPT

個人情報保護運動PRISMプログラムに対する抗議、GDPR導入からまり、Cambridge Analyticaスキャンダル引き起こした#DeleteFacebook運動Mark Zuckerberg証言など、幅広い活動がある。

Searched for techlash and privacy backlash

ChatGPT

ケンブリッジアナティカの事件2018年技術の逆風の象徴であったことを確認している。公衆の怒りと規制需要が高まっているのが見て取れるね。

Searched for generative AI protests and lawsuits

ChatGPT

現在進行中の生成AI反発の動きとして、抗議活動市場介入が挙げられる。イタリアがChatGPTを一時的禁止し、EUAI法案2024年施行予定。芸術コミュニティ規制ボイコット運動が見られる。

Searched for 2023 writers strike AI agreement

Favicon

wired.com を読み込みました

ChatGPT

契約AI使用制限や透明性を求め、創作者を保護している。これは職業未来に対する警戒心を示している。

Searched for EU AI Act regulations 2023

ChatGPT

EUAI規制案、米国競争政策中国使用規制の摩擦を分析している。

Searched for China generative AI regulation 2023

Favicon

reuters.com を読み込みました

ChatGPT

中国AI支援制御バランスよく進め、内容は社会主義の核心価値合致しなければならないとしています。また、知的財産侵害を防ぎ、合法的データ源を使用する必要があります2030年までに米国と競い、規制の先を進むためのガイドラインを設けています

Searched for AI impact on developing countries

以下略

2024-12-25

anond:20241225104842

Graphvizあるかな

ただ、フローチャート向けに手懐けるにはわりと工夫がいる。

https://sketchviz.com/flowcharts-in-graphviz

でもやっぱdraw.ioあたりのGUIじゃね?

anond:20241225104842

どの程度のフローチャートかが分からないのでなんともだが、

同僚やクライアントSlackなどで取り敢えず伝わりゃいいって説明に使うようなやつは

draw.io(サイト)使ってる

2024-11-23

---

追記

Etymologyで検索かけたら https://www.etymonline.com/ という直球のオンライン語源辞典を見つけた

ムズいのは変わらんけど勉強やすくなったよブコメありがとう

---

英語勉強してるんだけど、こういうのムズくね

本質的意味が分かってやっと「そういうことか」ってなるやつ

outstanding

out(外)+ standing(立っている)

→群れから外に立っている

→他より目立っている

→突出している

→優れている

understand

under(下に)+ stand(立つ)

物事の下に立つ

物事の基礎に立つ

物事本質を捉える

理解する

deadline

dead(死んだ)+ line(線)

→(刑務所での)死の境界線

→越えてはいけない限界

→提出期限・締切

broadcast

broad(広い)+ cast(まく)

→種を広くまく

情報を広く撒き散らす

放送する

withdraw

with(~と共に)+ draw(引く)

自分と一緒に引く

→引き戻す

撤退する・引き出す

overcome

over(上に)+ come(来る)

→上に来る

→乗り越える

→克服する

2024-04-06

イラスト生成できるAIのcopilotが英語で出てくるが言語能力試される

draw an apple with pen touch

ペンストロークの不思議模様の重厚リンゴ

show me an apple with pen

リンゴペンの絵、やはり重厚

outline an apple

落書き風のシンプルな線のリンゴ

2024-04-02

曲名アーティスト名の区別がつかない曲といえば

ロビンソンスピッツ

だけど

あと他に

FAST DRAW/根腐劣屑

くらいしか思いつかない

2024-02-16

オーストラリア作家リンダ・タンカード・リーストについて調べた

https://en.wikipedia.org/wiki/Melinda_Tankard_Reist

1963年まれ

・反ポルノ、反売春運動で知られる作家

女性少女擁護者であり、プロライフフェミニスト中絶反対フェミニストである自称している

・著書:悲しみの言葉を贈る:中絶後の悲しみの女性物語、「反抗的出産: 医療優生学抵抗する女性たち」、少女性的化への挑戦、世界的なポルノ産業害悪暴露する、売春物語: 性産業における生存物語

2009年彼女は、製品サービス販売するために女性対象化し、少女性的対象とする広告主、企業マーケティング担当者ターゲットとする草の根運動運動である性搾取のない世界のためのコレクティブ・シャウトを共同設立した

 

今回のH&Mの件

・「女の子の親は一般的に、娘が学校に行くときバスに乗るとき、授業中に歩いているのを他人が見ても、頭を『向けない』ことを好む」と述べた(Twitter

 「小さな女子学生一般的に『注目を集めたい』とは思っていません。私が学校で関わっている多くの人々は、自分たちの外見に不必要な注目を集めたくないため、一人になって学んだり楽しんだりすることを望んでいます

 (“Little schoolgirls generally don’t want to ‘turn heads.’ The large numbers I engage with in schools want to be left alone to learn and have fun and not draw unwanted attention to their appearance.”)

・「どうして小さな女の子自分の外見、体、そして「スタイル」に注目を集めるべきだという考えを煽りたいのですか?おそらくマーケティング チームに一言相談して、『ルッキズム』を願望目標として評価する文化の中で成長しようとすでに苦労している思春期前の少女たちの注意を引かないようなものを考えてはいかがでしょうか?」

学校制服広告であった

最初に主張したのはこの人ではない(おそらく界隈の有名人

日常的にいろんな広告に噛みついているらしい

 

所感

おそらく一部炎上したのは「振り向かせよう」の部分だと思うが

この人や界隈の主張だとおそらく「かわいい」とかもNGなんだと思われる

 

こういう人って昔は有益だったと思うんだけど

今では薬が毒になってしまっている

少女全員を代弁しているのはやりすぎ

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