Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録

「console」を含む日記RSS

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

次の25件>

2025-12-09

はてなブックマーク増田一覧向けNGフィルタ

はてなブックマーク増田一覧の、さらに「すべて」(1user)をチェックしている希有な人向けのユーザースクリプトを公開します。

https://b.hatena.ne.jp/site/anond.hatelabo.jp/?sort=eid

// ==UserScript==// @nameHatenaBookmarkAnond Filter// @namespacehttps://b.hatena.ne.jp/site/anond.hatelabo.jp/// @descriptionはてなブックマークの『はてな匿名ダイアリー』の記事のうち、指定したキーワードが含まれ投稿非表示します。// @matchhttps://b.hatena.ne.jp/site/anond.hatelabo.jp/*// @grant       none// @version     1.0.2025.12.10.0005// ==/UserScript==(function(){constSCRIPTID = 'HatenaBookmarkAnondFilter';console.time(SCRIPTID);const ONCE = 1,AP = 2, INTERVAL = 3;/*適用タイミング*/const KEYWORDS = [    'dorawii',    'あおやまちゃん', 'ボスマン',    'れめくん', '自己放尿', '性慾', 'boushi_inst', 'hakaikami',/*電気通信大学駿河台大学鉄道研究会れめくん自己放尿(頻出)*/    /*A-G*/'/akibakko6348', '/anapgoeson', '/asapgoeson', '/buscholarx', '/circlecavok', '/disney1007cla', '/dora22sibuya', '/donkotrain', '/fft_dareka', '/gmhtcyznf_abc',    /*H-N*/'/h13_yokohama', '/h2twi', '/hinolovelove', '/inaken17_', '/inte235dy', '/kaoru_ai1991', '/kiha2228', '/kqlex1500', '/kurotamaxxx', '/kt_ruma_1372', '/lightningreen77', '/minamihinawot', '/minori0151', '/mukoroku651', '/nanpyong', '/nimouec', '/norannnde',    /*O-U*/'/oreizmmiporin', '/pasotokon', '/pm95uq', '/reme_kun', '/s03_amurtk2731', '/sacchan03110319', '/seisu_bot', '/senanana_cos', '/shinano_115', '/shineleaf1372', '/soroisoroi', '/sweidan821858', '/tarotaromusic1', '/tx9y2cpwdz27255', '/uec15take', '/uecrail',    /*V-Z_0-9*/'/wakasato_', '/yuuya_1104_uec', '/100mph_no_yuuki', '/2rtkvn34il2783',    /*tadaup.jp*/'/CBUHadpD.jpeg', '/CgJlF4Wr.jpeg', '/CGTtm0Ev.jpeg', '/CIxj8clS.jpeg', '/CqbERPdQ.jpeg', '/CTZsA2wM.jpeg', '/CWY2m7rS.jpeg', '/CZVCEgd1.jpeg',    'テクウヨ',  ].map(w => w.toLowerCase());const sites = {    'prefix': [      ['selector', 'modifier', 'REPEAT', '(css)'],    ],    'https://b.hatena.ne.jp/site/anond.hatelabo.jp/': [      ['li.js-keyboard-selectable-item', li => KEYWORDS.some(w => (li.textContent.toLowerCase().includes(w)) && (li.querySelector('li.entrylist-contents-category > a').textContent = w) && (!li.classList.add('filtered'))),AP, `.filtered{display: none;}`],    ],  };const rules = sites[Object.keys(sites).find(prefix => location.href.startsWith(prefix))];  if(rules === undefined) returnconsole.log(SCRIPTID, 'Not foundany sites.');const modify = function(selector, modifier){constelements = document.querySelectorAll(selector);elements.forEach(modifier);  };  /* ONCE(一括適用) */  rules.forEach(rule => {const [selector, modifier, repeat,css] = rule;console.log(SCRIPTID, 'ONCE:', selector);    modify(selector, modifier);    if(css){const style = document.createElement('style');      style.dataset.script =SCRIPTID;      style.type = 'text/css';      style.textContent =css;      document.head.appendChild(style);    }  });  /*AP(AutoPagerize) */  rules.filter(rule => rule[2] ===AP).forEach(rule => {const [selector, modifier, repeat] = rule;    document.addEventListener('GM_AutoPagerizeNextPageLoaded', e => {console.log(SCRIPTID, 'AP:', selector);      modify(selector, modifier);    });  });  /* INTERVAL */  rules.filter(rule => rule[2] === INTERVAL).forEach(rule => {const [selector, modifier, repeat] = rule;    setInterval(function(){console.log(SCRIPTID, 'INTERVAL:', selector);      modify(selector, modifier);    },1000);  });console.timeEnd(SCRIPTID);})();

検索用:はてなブックマークはてブはてな匿名ダイアリー増田スパムキーワードNGワードフィルターミュー非表示 削除 隠すブロックユーザースクリプトユーザースタイルhatenabookmarkanondspam keywordsngwords filter mutehide hidden display none blockuserscriptJavaScriptjscss style

Permalink |記事への反応(3) | 22:40

このエントリーをはてなブックマークに追加ツイートシェア

2025-11-22

ChatGPT すごい

utf8の文字コード構成されたバイナリファイルがある。このファイルの改行の数を数えよ。改行はCRのみとする。このファイルにはCR が必ず含まれており、CRで分割すればマルチスレッドで処理できる。

質問したら、c++pythonコードが出てきた

size_t count_cr_in_file(conststd::string&path) {

std::ifstreamfs(path,std::ios::binary);

fs.seekg(0,std::ios::end);

size_t size =fs.tellg();

fs.seekg(0);

const size_tthread_count =std::thread::hardware_concurrency();

const size_t chunk_size = size /thread_count;

std::vector<std::future<size_t>> futures;

for (size_t t = 0; t <thread_count; t++) {

size_t start = t * chunk_size;

size_t end = (t ==thread_count - 1 ? size : (t + 1) * chunk_size);

futures.push_back(std::async(std::launch::async, [start, end, &path]() {

std::ifstreamfs(path,std::ios::binary);

fs.seekg(start);

size_t count = 0;

for (size_t i = start; i < end; i++) {

char c;

fs.read(&c, 1);

if (c == '\r') count++;

}

return count;

}));

}

size_ttotal = 0;

for (auto& f : futures)total += f.get();

returntotal;

}

def count_cr(path):

importmmap

withopen(path, "rb")as f:

mm =mmap.mmap(f.fileno(), 0,access=mmap.ACCESS_READ)

returnmm.count(b'\r')

c#で書けと指示したところ、

using System;

using System.IO;

using System.IO.MemoryMappedFiles;

using System.Threading.Tasks;

class CountCR

{

public static long CountCRInFile(stringpath)

{

using varmmf = MemoryMappedFile.CreateFromFile(path, FileMode.Open, null);

using varaccessor =mmf.CreateViewAccessor(0, 0, MemoryMappedFileAccess.Read);

long fileSize =accessor.Capacity;

int processorCount = Environment.ProcessorCount;

long chunkSize = fileSize / processorCount;

longtotal = 0;

object lockObj = newobject();

Parallel.For(0, processorCount, i =>

{

long start = i * chunkSize;

long end = (i == processorCount - 1) ? fileSize : (i + 1) * chunkSize;

long localCount = 0;

byte b;

for (longpos = start;pos < end;pos++)

{

accessor.Read(pos,out b);

if (b == 0x0D) //CR

localCount++;

}

lock (lockObj)

{

total += localCount;

}

});

returntotal;

}

staticvoidMain(string[] args)

{

stringpath = "yourfile.bin";

long count = CountCRInFile(path);

Console.WriteLine($"CR count = {count}");

}

}

というコードが出てきた。

実際はcrlf,lfもあり得るんだが、そこは考慮しなくてもよく、そう考えるとaiはすごいとしか言いようがない。

なお、utf8として成立する単位区切りつつ改行を数える場合、もう一工夫いる。

SJISもできるようにするともっと面倒なことになりそう…)

Permalink |記事への反応(2) | 09:50

このエントリーをはてなブックマークに追加ツイートシェア

2025-10-22

自分ホームページを作ったかどうかでWEBの見え方が180度以上違う話

以下ChatGPT

自分ホームページ(自前ドメイン+自前HTML)を一度でも作って運用すると、SNS中心の“受け手視点から仕様検索配信・所有・継続の“作り手”視点に脳が切り替わる。結果、情報リテラシーは跳ね上がり、ネットニュース流行の見え方が根本から変わる——しか想像以上に。

1. “タイムラインからアーキテクチャ”へ

Before(作る前):WebSNSタイムライン。良し悪しは「バズってるか」「見やすいか

After(作った後):WebプロトコルブラウザHTML/CSS/JSCDN検索エンジン。

ページは**文書(Document)**であり、配置(IA)、意味づけ(セマンティクス)、配信HTTP/HTTPS/HTTP/2/3)、キャッシュ戦略が気になりだす。

→ 同じ記事でも「タイトルの付け方」「hタグ構造」「画像最適化」「OGP」「サイトマップ」がまず目に入るようになる。

2. “アルゴリズム運”から“所有と積み上げ”へ

プラットフォーム依存の脆さを体感規約変更やシャドウバン露出が消える。

サイト資産化:ドメインに紐づくURLリンクされ、検索に積み上がり、10年後も生きる。

POSSE(Publish (on your) Own Site, Syndicate Elsewhere):まず自分サイトに出してから外部へ配信する習慣が身につく。

3. “好き/嫌い”から“なぜ速い・なぜ遅い”へ

CoreWeb Vitals(LCP/FID/CLS)や画像の遅延読み込み、フォント最適化重要性が腹落ちする。

広告・計測タグの重さに過敏になる。読者体験を壊さないためのパフォーマンス予算という概念生まれる。

4. “なんとなくSEOから情報設計×検索意図”へ

キーワード選定は“流入ゲーム”ではなく読者の課題コンテンツ設計帰着

内部リンクパンくず・スキーマ構造データ)・サイトマップ意味が実務として理解できる。

“書けば伸びる”ではなく“検索意図を満たす設計が伸びる”に目が覚める。

5. “見た目”から意味アクセシビリティ)”へ

alt見出し階層コントラスト比、キーボード操作、焦点管理など、見えない品質が最重要になる。

デザインは飾りではなく“読み・理解操作”のためのユーティリティだと分かる。

6. “PV至上”から継続コミュニティ”へ

たまたま当たる1記事より、更新継続アーカイブ性・RSSのほうが効くと実感。

コメント欄メールフォーム・X連携よりも、ニュースレターRSS購読者の質に価値を見出す。

7. “無料神話からコスト責任”へ

ドメインDNS証明書バックアップ法務特商法プライバシーポリシー)に“運用者の責任”が生まれる。

その重みが情報信頼性を引き上げる(=他人サイトの苦労も見えるようになる)。

8. “トレンド追従から自分OSを持つ”へ

サイト思想作品OS

トレンドは“輸入”ではなく選別になる。自分歴史に合うものだけを採用して積層していける。

9. まず一歩:最小スタックで“今夜リリース”する

Node.jsを避けたい人向けに、極小構成OK

A. 最小HTML(雛形)

<html lang="ja">

<head>

<meta charset="utf-8" />

<metaname="viewport" content="width=device-width,initial-scale=1" />

<title>あなた名前 |ホーム</title>

<metaname="description" content="自分ホームページ制作物・日記メモを置いていきます。">

<link rel="alternate" type="application/rss+xml"title="RSS"href="/feed.xml">

<meta property="og:title" content="あなた名前 |ホーム">

<meta property="og:description" content="自分ホームページ制作物・日記メモ。">

<meta property="og:type" content="website">

</head>

<body>

<header>

<h1>あなた名前</h1>

<nav>Home /About /Posts</nav>

</header>

<main>

<article>

<h2>はじめまして</h2>

ここからすべてを自分URLに積み上げます

</article>

</main>

<footer>© 2025あなた名前</footer>

</body>

</html>

B.ホスティング無料~低コスト

GitHubPages(Jekyll標準。Rubyベース、Node不要

CloudflarePages(静的ファイルを置くだけで高速CDN

レンタルサーバー(静的HTML+SFTP/rsyncで十分)

C.ドメインの基本

覚えやすい短さ+ローマ字。将来10年使える名前に。

DNSA/AAAA/CAA/TXT最低限、HTTPS必須Let’s Encrypt無料化)。

D. “最低限の品質チェック”5点

タイトル・description見出し一貫性

画像は適切なサイズalt

モバイルでの可読性(文字サイズ行間

OGPが効いているか(XやLINEURLを貼って確認

RSS/更新履歴の有無(継続を前提に)

10. 一歩先へ:運用で差がつく“3つの習慣”

ログを読む:SearchConsoleと簡易アクセスログで“本文よりメタ情報”を磨く。

アーカイブ主義記事追記更新URLは変えない。Versioningを意識

POSSE徹底:自サイトに公開→SNSには要約+リンク本体は常に自分土俵

Permalink |記事への反応(0) | 19:49

このエントリーをはてなブックマークに追加ツイートシェア

2025-08-21

dorawii@執筆依頼募集中

自動ブクマするローカルサーバーとかの構成を作った。

ブクマには↓のサブアカ使用

https://profile.hatena.ne.jp/dorawii_bukuma/

はてなサイト側で読み込まれているはずのrksトークンを生成する関数を直接叩く方法がどうしても分からず結局request処理を自分で書く方法ではなく自動UI側の保存ボタンクリックするという無難な方向に落ち着いた。

最初から後者方法をとっていればもっと全然早く作れたのにというは所詮言い訳か。

とにかくスクリプトを公開しておく。

start-server.bat

@echo off
cd /d "C:\Users\user\Documents\jsscript"

:: Nodeサーバーを別ウィンドウで起動
start /min "" noderun-batch-server.js

::Pythonサーバーを別ウィンドウで起動(hatenaserver配下
start cmd /k ""python hatenaserver\server.py

以降はjsscript直下に配置

config.json

{
"username": "",
"password": ""
}
server.py

from flask import Flask, request,jsonify
importjson
importos
from hatena_client import HatenaClient
from flask_cors import CORS

app = Flask(__name__)
CORS(app)

config_path =os.path.join(os.path.dirname(__file__), 'config.json')
withopen(config_path, encoding='utf-8')as f:
config =json.load(f)

@app.route('/bookmark', methods=['POST'])
def handle_bookmark():
data = request.json
url = data.get("url")
if noturl:
returnjsonify({"error": "MissingURL"}), 400

client = HatenaClient(config["username"],config["password"])
client.start_browser()

if notclient.login():
client.quit()
returnjsonify({"error": "Login failed"}),403

success =client.add_bookmark(url)
client.quit()

returnjsonify({"status": "ok" if success else "fail"})

if __name__ == "__main__":
app.run(port=12347)

あとはグリモンユーザスクリプトとして書くやつ

// ==UserScript==
// @name自動セルクマ送信
// @namespace tampermonkey.net/
// @version 2025-08-07
// @descriptiontry totakeoverthe world!
// @authorYou
// @matchanond.hatelabo.jp/*
// @grant none
// ==/UserScript==

(function () {
'use strict';

consturl = location.href;
if (!/^https:\/\/anond\.hatelabo\.jp\/\d+$/.test(url)) return;
const editLink = document.querySelector('a.edit');
if (!editLink) {
// 既に編集ページなので処理をスキップ
console.log('編集リンク存在するため、スクリプトを終了します。');
return;
}

fetch('localhost:12347/bookmark', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body:JSON.stringify({url:url })
}).then(r =>console.log("通知成功")).catch(e =>console.error("通知失敗", e));
})();
-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA512https://anond.hatelabo.jp/20250821192753# -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaKb0qwAKCRBwMdsubs4+SHfiAQDcXmTHBaZ5Zzr1KI/OxZ0xl69oevOdy1FXJYwYvsmo5AD/ZPtZiO1JgTDjm+27iymlkdzIXOIGWfC82UTr1mJ7EwU==YoV+-----ENDPGP SIGNATURE-----

Permalink |記事への反応(1) | 19:27

このエントリーをはてなブックマークに追加ツイートシェア

2025-07-15

anond:20250714161258

へぇー、って感じだ。おもしろい。

ただちょっと読んでいて気になる点があったので聞いてみたい。

自分日本所謂ハクスラ」の用法しかよく知らなかった(あとついでにRogueもやったことない)素人なので全然的外れかもしれないが・・・・。

 

気になったのは引用されていた英語版wikiの以下の部分

The term "hack andslash"was originally used to describe a play style in tabletop role-playing games, carryingover from there to MUDs, massively multiplayeronline role-playing games, and role-playing video games. In arcade andconsole styleaction video games, the termhas an entirely different usage, specifically referring toaction games with afocuson real-time combat with hand-to-hand weaponsas opposed to guns or fists. Thetwo types ofhack-and-slash games are largely unrelated, thoughaction role-playing gamesmay combineelements of both.

ここでは「RPGにおけるhack andslash」と「アクションゲームにおけるhack andslash」という2つのhack andslashがあり、

「the termhas an entirely different usage,」 「Thetwo types ofhack-and-slash games are largely unrelated,」とあるように歴史的にも定義的にもそれらは別のものしかし両方を兼ねるものもある)と読める。

 

で、気になったのはこの「RPGにおけるhack andslash」と「アクションゲームにおけるhack andslash」が増田の言う「日本語の「ハクスラ」 」と「英語の「hack andslash」 」に重なっている様に見えた事だ。

で、もしそうだとすると増田の「英語の/日本語の」という2分法は正確ではなく、本来は「アクションの/RPGの」とすべきだった可能性があるようにも思えてくる。(何故なら「RPGの」も英語版用法説明されているので)

更に増田は「 『Dungeons and Dragons』のような当然英語用法で参照すべき作品」と記事への批判根拠としていた『Dungeons and Dragons』は「アクションの/RPGの」では「RPGの」に属すると思われるため、

(もし増田が「アクションの」を本来hack andslashだと考えている場合)「 『Dungeons and Dragons』のような当然RPG用法で参照すべき作品」というように、むしろ逆になってしまうようにも思える。

 

アクションの/RPGの」の2分法が正解だった場合、「RPGの」の方のhack andslashには近接武器を用いて戦うだけでなく、その報酬アイテムゲーム通貨経験値など?)にも着目することは特に自然ではないように見える(が、前述の通り素人なのでよく分からない)

のだけど、一方で「 『Rogue自体が該当しない条項が「ベルリン解釈」に存在するわけない」については「たしかにそうかも」と思ったので、

ベルリン解釈の部分については増田の方が正しい可能性が高いんじゃないか?と思ってる。

という訳でいろいろ細かい事は書いたものの、最終的な結論としては増田側が正しい可能性がありそう、と思ってる。

ただ増田他者に厳密性を求める以上、自身も(例え総論結論が正しくても)細かい点を突っ込まれる事は許容せざるを得ないのでは?と思い(まぁ、というよりは自分の疑問の解決のために)書いてみた。

(ちなみにRogueをやった事が無いので分からないんだけど、敵を倒した際の報酬って無いの?一応ネット攻略情報を軽く調べた結果、アイテムドロップ経験値もなさそう?とは思ったけど・・・だとすると敵と戦う意味はあまり無い(可能なら回避正義?)ゲームなのかな?)

Permalink |記事への反応(1) | 00:17

このエントリーをはてなブックマークに追加ツイートシェア

2025-06-13

我が名はサイボーグdorawii

パーマリンク署名対象にするより堅牢自動化を作れた。

一度投稿したうえで別タブを開いてプログラム的(fetch)に送信してその別タブが閉じられる仕組み。

改めてスクリプト配布しちゃる

最初投稿してエントリページに移動した親タブ側のjsコード
// ==UserScript==      // @namePGP署名検出と別タブ自動編集      // @namespacehttp://tampermonkey.net/      // @version      1.0      // @descriptionPGP署名がない投稿自動編集ページへ誘導      // @matchhttps://anond.hatelabo.jp/*      // @grantGM_setValue      // @grantGM_getValue      // @grantGM.openInTab      // ==/UserScript==      (function () {        'use strict';constbody = document.getElementById('entry-page');        if (!body) return;consttitleText = document.title;        if (!titleText.includes('dorawii')) return;constpgpRegex = /BEGIN.*PGP(?: SIGNEDMESSAGE| SIGNATURE)?/;const preElements = document.querySelectorAll('div.body pre');        let hasPgpSignature =false;        for (const pre of preElements) {          if (pgpRegex.test(pre.textContent)) {            hasPgpSignature =true;            break;          }        }        if (hasPgpSignature) return;const editLink = document.querySelector('a.edit');const childTab =GM.openInTab(editLink.href, {active:false, insert:true,setParent:true });      })();
親タブから開かれる編集ページの子タブのjsコード
 // ==UserScript==      // @name編集ページ処理と自動送信・閉じ      // @namespacehttp://tampermonkey.net/      // @version      1.0      // @description編集ページで署名処理と送信、タブ自動閉じ      // @matchhttps://anond.hatelabo.jp/dorawii_31/edit?id=*      // @grantGM_getValue      // @grantGM_xmlhttpRequest      // @grantGM_setClipboard      // @grantGM_notification      // @connectlocalhost      // ==/UserScript==      (async function () {        'use strict';const shouldRun = awaitGM_getValue('open-tab-for-edit', '0');consttextareaId = 'text-body';consttextarea = document.getElementById(textareaId);        if (!textarea) return;const content =textarea.value;constpgpSignatureRegex = /-----BEGINPGP SIGNEDMESSAGE-----[\s\S]+?-----BEGINPGP SIGNATURE-----[\s\S]+?-----ENDPGP SIGNATURE-----/;        if (pgpSignatureRegex.test(content)) {console.log('[PGPスクリプト]署名が検出されたためそのまま送信します');          return;        }consthttpRequest = (url, data) => {          return newPromise((resolve,reject) => {GM_xmlhttpRequest({              method: 'POST',url:url,              headers: { 'Content-Type': 'application/x-www-form-urlencoded' },              data: `value=${encodeURIComponent(data)}`,onload: function (response) {                resolve(response.responseText);              },onerror: function (error) {reject(error);              }            });          });        };        //textarea の値を取得        // 1.現在のページのURLからURLオブジェクト作成const currentUrl = newURL(window.location.href);        // 2.ベースとなる部分 (例: "https://anond.hatelabo.jp") を取得constorigin = currentUrl.origin;        // 3. 'id'パラメータの値 (例: "20250610184705") を取得constidValue = currentUrl.searchParams.get('id');        // 4.ベース部分とIDを結合して、目的URL文字列を生成        //idValueが取得できた場合のみ実行する        let newUrl = null;        if (idValue) {          newUrl = `${origin}/${idValue}`;        }        // 5. 生成されたURL変数に代入し、コンソールに出力して確認console.log(newUrl);constvalueToSend = newUrl;try {const signatureText = awaithttpRequest('http://localhost:12345/run-batch',valueToSend);console.log('バッチ応答:', signatureText);          if (!signatureText.includes('BEGINPGP SIGNEDMESSAGE')) {            alert('PGP署名クリップボードに見つかりませんでした。');            return;          }const newText = content.replace(/\s*$/, '') + '\n' + signatureText + '\n';textarea.value = newText;console.log('[PGPスクリプト]署名を貼り付けました。送信を再開します。');const form = document.forms.edit;const newForm = form.cloneNode(true);          form.replaceWith(newForm);          newForm.addEventListener('submit', async (e) => {            e.preventDefault(); //HTML標準のsubmitをキャンセルconstbodyText =textarea?.value || '';            //reCAPTCHAトークンの取得constrecaptchaToken = await newPromise((resolve) => {              grecaptcha.enterprise.ready(() => {                grecaptcha.enterprise.execute('hoge', {action: 'EDIT' })                  .then(resolve);              });            });            // POSTするデータの構築const formData = new FormData(newForm);            formData.set('body',bodyText);            formData.set('recaptcha_token',recaptchaToken);            formData.set('edit', '1');try {constresponse = await fetch(newForm.action, {                method: 'POST',body: formData,                credentials: 'same-origin'              });              if (response.ok) {console.log('送信成功');                window.close();              } else {console.error('送信失敗',response.status);              }            }catch (err) {console.error('送信中にエラーが発生', err);            }          });          //プログラム的に送信トリガー          newForm.dispatchEvent(new Event('submit', { bubbles:true }));        }catch (e) {console.error('バッチ呼び出し失敗:', e);        }      })();
node.jsで動かすローカルサーバーコード
consthttp =require('http');const { exec } =require('child_process');const querystring =require('querystring');const server =http.createServer((req, res) => {  if (req.method === 'GET' && req.url === '/ping') {    res.writeHead(200);    res.end('pong');  } else if (req.method === 'POST' && req.url === '/run-batch') {    letbody = '';    req.on('data', chunk => {body += chunk.toString();    });    req.on('end', () => {constparsed = querystring.parse(body);constvalue =parsed.value || 'default';      // 値を引数としてバッチに渡す      exec(`C:\\Users\\hoge\\Desktop\\makesign.bat "${value}"`, { encoding: 'utf8' }, (err, stdout, stderr) => {        if (err) {          res.writeHead(500);          res.end('Error executing batch: ' + stderr);        } else {          res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });          res.end(stdout.trim());        }      });    });  } else {    res.writeHead(404);    res.end('Not found');  }});server.listen(12345, () => {console.log('Batch serverrunningathttp://localhost:12345/');});
@echo offsetlocal enabledelayedexpansion::署名するファイルset "infile=%~1"set outfile=%TEMP%\pgp_output.asc:: 以前の出力があれば削除if exist "%outfile%" del "%outfile%":signloop::AutoHotkeyパスフレーズ入力(gpgがパスワード要求するダイアログが出た場合に備える)start "" /b "C:\Users\hoge\Documents\AutoHotkey\autopass.ahk"::PGPクリア署名作成echo %infile% | gpg --yes --clearsign --output "%outfile%"::署名成功していればループを抜けるif exist "%outfile%" (goto postprocess) else (    timeout /t 1> nulgoto signloop):postprocesspowershell -nologo -command ^  "$header = '>|'; $footer = '|<'; $body =Get-Content '%outfile%' -Raw;Write-Output ($header + \"`r`n\" + $body + $footer)"powershell -nologo -command ^  "$header = '>|'; $footer = '|<'; $body =Get-Content 'signed.asc' -Raw;Set-Clipboard -Value ($header + \"`r`n\" + $body + $footer)"endlocalexit /b
AutoHotkey(以前と同じ)
#Persistent#SingleInstance ignoreSetTitleMatchMode, 2WinWaitActive, pinentrySendInputpasswordSleep 100SendInput {Enter}ExitApp

動けばいいという考えで作っているので余分なコードも含んでいるかもしれない。

-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA512https://anond.hatelabo.jp/20250613185036 -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEv1FQAKCRBwMdsubs4+SHHkAQDUOLgBcdji2T6MJ7h/vlMdFfGlWAzNdXijjE1gIuEPywEAiMNMZqhrMmtlc7UqRuggNJ/UTa5xTIcKp622+7jJQQg==Lgkl-----ENDPGP SIGNATURE-----

Permalink |記事への反応(1) | 18:50

このエントリーをはてなブックマークに追加ツイートシェア

2025-03-18

スターフィールドがPS5に登場するかもという話

スターフィールド」とは、ベセスダ・ソフトワークスが開発したオープンワールドSFアクションロールプレイングゲーム

ちなみにベセスダ・ソフトワークス現在マイクロソフトの傘下にあるため、当然ながらXboxPCしか販売されていない。

 

まずは背景として、

 

…という背景から

 

ということが最近あったため、もはやスターフィールドがPS5にも登場するのは時間問題と噂されている。

確かこのソフトは「XboxConsole Exclusive(ゲーム機に関してはXbox独占)」と宣伝されていたはずたが、もしPS5版が出るとなったらこれも崩れることになる。

Permalink |記事への反応(1) | 21:52

このエントリーをはてなブックマークに追加ツイートシェア

2025-03-13

病院内で提供されるWiFi挙動メモ

身体を壊して先日ちょっと入院していたのだが、病院内ではWiFi提供されていたので、消灯時間外の日常生活アクセスはそれのお世話になっていた。消灯時間は夜9時から朝6時までだ。

事前に「入院生活にそぐわないサイトには接続できません」という告知が為されていたので、覚悟の上で使ったのだが、Webアプリ開発者としての業務必要サイトとかも禁止されていたので、ここにメモしておく。

どうせ数年以内には持病が悪化して再び入院するし。

通信制のしくみの考察

通信禁止されていると思われるサイト接続すると、ブラウザ側ではタイムアウトエラーとして表示される。もちろん、それなりに待たされる。ブラウザの開発ツールの様子を見るに、おそらくTCP handshake に失敗していそう。

正常に接続できるサイトの様子を見た範囲では、HTTPS接続証明書改ざんは行われていないようだったこからHTTPS暗号を解読してどうのこうの、という処理をしていない可能性が非常に高い。つまり通信制限は接続ドメインまたはIPアドレスによる判断実施している可能性が高い。

また、中間的なサイト存在する。通常2秒以内で表示できるようなサイトの表示に10秒(体感)かかるところがある。稀にタイムアウトする。

なのは通信禁止されていそうなサイトでも「待たされた挙句、つながることが非常に稀にある」ということと、curl等ではすんなりと接続できることである

DNS設定と一緒にproxy設定が落ちてきているのであればこの挙動理解できるのだが、手元のOSネットワーク設定にはproxy情報が何も出てこない。ちょっとよくわからない。

もしもDNSに対するAレコード(AAAAも?)問い合わせに対してニセモノを返すという仕組みで通信制限しているのだとしたら、「非常に稀につながる」挙動にはならないはずなので、透過型proxyによって頑張っているのではないか想像するところである

なお、消灯時間中は全てのリクエストタイムアウトになる。消灯時間開始直前にHTTP Request を送出して、応答が来る頃には消灯時間に入っている場合にはどういう挙動をするのか、というテストをやる暇は無かった。スマソ

つながるサイトと、つながらないサイトメモ

業務で使う全部のサイト検証できた訳じゃなくてゴメンね。結局のところ仕事携帯回線でやっちゃったから。

ドメインサイト概要接続の様子
hatelabo.jpはてな実験サービス置き場すんなり
anond.hatelabo.jp増田禁止
??????.hatenablog.jpはてなブログドメインの一つ、そして増田中の人ブログ遅い
console.aws.amazon.comAWS管理コンソール禁止
www.amazon.co.jpショッピングめちゃくちゃ遅いけどつながる
www.amazon.comショッピングめちゃくちゃ遅いけどつながる
ja.wikipedia.org百科事典禁止
www.php.netプログラミング言語PHP禁止
www.typescriptlang.orgプログラミング言語TypeScriptすんなり
stackoverflow.comプログラミング質問サイト(英語)すんなり
qiita.comプログラミング質問サイト(日本語)禁止
packagist.orgPHPパッケージ管理遅い(通常通り?w)
www.npmjs.comJSパッケージ管理すんなり

なお、自分ドメインサブドメイン禁止ドメインを入れたようなもの、例えばanond.hatelabo.jp.example.com のようなドメインに対する接続可否は検証していない(面倒だったw)

どこの会社受託しているのか?

サーバ目線で見えるclientIPwhois等で調べると、某F社さんだった。AWS管理コンソールへの接続禁止するあたり「あっ…!」と思ったり…w

Permalink |記事への反応(1) | 09:08

このエントリーをはてなブックマークに追加ツイートシェア

2025-02-01

console.out("鬼");

console.in("福");

入力:福

出力:鬼

人の家の中には福を鬼に転じるバグでもあるのか?

Permalink |記事への反応(1) | 17:26

このエントリーをはてなブックマークに追加ツイートシェア

2024-09-22

AIインフルエンサーたちはChatGPTが世に出る前は何を投稿していたのか?(2/2)

AIインフルエンサーたちはChatGPTが世に出る前は何を投稿していたのか?(1/1)の続き

吉見拓哉|Takuya Yoshimi

このTwitterアカウントは、主にYouTubeSEO競馬アニメなどの話題について呟いており、自身活動や興味関心について発信しています

YouTubeプレミアムが500円増額。しかし、、、不可逆!!!

shimayuz@AIクリエイター

このアカウントは、日々の米国株暗号通貨市場動向、特にテクノロジー関連株やビットコイン価格変動についてツイートしています

ゼロコロナ政策再び。 $AAPL生産に影響が懸念され大きく下落。更に経済混乱が想定され、株価はSP500全業種で

一方で年末商戦売上堅調な滑り出しで $AMZN

暗号資産レンディングBlockFiが経営破綻暗号通貨も軒並み下落。

チャート上、なんとか踏み止まるか? 」

元木大介ᯅシステム生成AI Babel/Zoltraak & 生成AI塾

このアカウントは、AI特にプロマネAIや量子AIに関する話題や、仕事効率化、プログラミング、そして最新の技術トレンドについて呟いています

"プロマネAI実証実験を開始しました!量子AI×NotionによるプロマネAI実証実験を開始https://prtimes.jp/main/html/rd/p/000000003.000082094.htmlvia @PRTIMES_JP"

sangmin.eth | Dify Ambassador

このアカウントは、主にOpenAIの最新言語モデルtext-davinci-003」の進化と、そのモデルを用いた英語学習ツールサービスについて呟いています特に英語学習におけるAI活用とその重要性を強調しています

"朝起きたら世界がまた変わっていた(笑)。@OpenAI が最新モデルtext-davinci-003」を発表。主な特徴は、①より明確で、説得力のある文章が書ける②より複雑な指示にも対応③より長い形式コンテンツが生成可1月に"InstructGPT"が出た時も感動したけどそれを遥かに上回る進化、です。"

深津 貴之 / THE GUILD

このアカウントは、主にAI特に画像生成AIに関する話題を呟いています特にStable Diffusionのバージョンアップや使い方について多くのツイートをしています

結果

ここにリストアップした人たち以外もみましたが、分類すると3種類のアカウントがいて

1. ChatGPTブーム後にアカウントを始めた人

2. NFTなどの儲かりそうな技術を追いかけていた人

3.日常ツイートをしていたが目覚めてしまった人

共通する特徴としては会社代表の人が多いです。

またIDを変更してログがヒットしない人は含まれていません(IDから特定できるけどそこまでやらなかった)

ツイートを取得するJS

javascript:(function() {

consttext = Array.from(document.querySelectorAll('[data-testid="tweetText"]')).map(s => s.textContent.trim()).join('\n');

consttextarea = document.createElement('textarea');

textarea.value =text;

document.body.appendChild(textarea);

textarea.select();

try {

document.execCommand('copy');

console.log('結果がクリップボードコピーされました!');

}catch (err) {

console.error('クリップボードへのコピーに失敗しました:', err);

}

document.body.removeChild(textarea);

})();

Permalink |記事への反応(1) | 23:00

このエントリーをはてなブックマークに追加ツイートシェア

2024-09-15

RSS 取得メモ

const axios =require('axios'); //HTTPリクエストを行うためのモジュール

constfs =require('fs'); //ファイル操作モジュール

constxml2js =require('xml2js'); //XMLJSONに変換するためのモジュール

const chardet =require('chardet'); //文字エンコーディングを検出するためのモジュール

const iconv =require('iconv-lite'); //文字エンコーディングを変換するためのモジュール

//RSSフィードURL

constrssUrl = 'https://www.mlit.go.jp/important.rdf'; // 例としてRSSフィードURL指定

//RSSフィードを取得してファイルに保存する関数

async function fetchAndSaveRSS() {

try {

//RSSを取得

constresponse = await axios.get(rssUrl, {responseType: 'arraybuffer' });

constrssData =response.data;

//文字エンコーディングを検出

const detectedEncoding = chardet.detect(rssData);

console.log('検出された文字エンコーディング:', detectedEncoding);

//UTF-8に変換

const utf8Data = iconv.decode(rssData, detectedEncoding);

//XMLJSONパース

xml2js.parseString(utf8Data, (err, result) => {

if (err) {

console.error('XML解析エラー:', err);

return;

}

//パース結果をファイル書き込み

constjsonData =JSON.stringify(result, null, 2);

fs.writeFileSync('rss_feed.json',jsonData, 'utf8');

console.log('RSSフィードファイルに保存されました。');

});

}catch (error) {

console.error('エラーが発生しました:',error);

}

}

// 実行

fetchAndSaveRSS();

Permalink |記事への反応(0) | 04:45

このエントリーをはてなブックマークに追加ツイートシェア

2024-04-24

anond:20240424063427

なるほど確かにその通りですね。

ブックマーク先に寄生する形でしか意見を述べられない卑しい存在であるにもかかわらず、増田ことはてな匿名ダイアリーの方々に上から目線一方的批判をして申し訳ございませんでした。

土下座謝罪いたします。

その方法として、古来中国から伝わる三跪九叩頭の礼を致します。

冗長記述を避けるために、VB.NET表記させていただきます

Imports System

Public Class SanGuiKiuKouTou

    Sub Main()

        For iAs Integer = 1 To 3

            Console.WriteLine("跪")

            For jAs Integer = 1 To 3

                Console.WriteLine("{0}叩頭", j)

                Console.WriteLine("起")

            Next

            Console.WriteLine("起立")

        Next

    EndSub

End Class

以上を持ちまして、「三跪九叩頭の礼」とさせて頂きます

御清聴の程有難く存じます

Permalink |記事への反応(2) | 09:57

このエントリーをはてなブックマークに追加ツイートシェア

2024-02-20

今こそconsoleを使いこなそう

console <スクロール開始行>,<スクロール行数>,<ファンクション行の非教示/表示>,<モノクロ/カラー>

 

例)console 0, 25, 0, 1

0行から24行までスクロールし、ファンクションキーを非表示にして、テキストカラー表示にする。

Permalink |記事への反応(0) | 10:39

このエントリーをはてなブックマークに追加ツイートシェア

2024-01-05

anond:20240105165226

これどう対処するのが適切なんだろうね。

自分は nullチェックのときだけ厳密等価を使わないで比較している

console.assert(null == null,true)console.assert(undefined == null,true)console.assert(0 == null,true)VM792:1 Assertion failed:true

typescriptではnullとundefinedを合成した型を用意することが多い

Permalink |記事への反応(0) | 17:01

このエントリーをはてなブックマークに追加ツイートシェア

2023-10-31

数分で始めるJavaScript

Hello, World!

と出力されていれば成功

これでJavaScript を実行する最小限の環境は整った。

好きなようにプログラムを書いてコンソールに出力したり画面に書き出したりしてみて。

「指示の通りにならない!」という時はどこでつまずいてるか書いて。対応策を助言できるかもしれない。

Permalink |記事への反応(2) | 12:15

このエントリーをはてなブックマークに追加ツイートシェア

2023-05-19

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

Applicationerror: aclient-side exceptionhas occurred (see thebrowserconsole formore information).

Permalink |記事への反応(0) | 04:45

このエントリーをはてなブックマークに追加ツイートシェア

2023-03-19

Catanしか勝たん😤

デジタルボードゲームCATANConsole Edition』発表。オンライン/ローカルマルチ対応で、コンソールスマホ連携の手札管理も - AUTOMATON

Permalink |記事への反応(0) | 05:34

このエントリーをはてなブックマークに追加ツイートシェア

2023-03-03

Applicationerror: aclient-side exceptionhas occurred (see thebrowserconsole formore information).

メルカリしっかりして!

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

Permalink |記事への反応(0) | 13:42

このエントリーをはてなブックマークに追加ツイートシェア

2022-12-03

[稀ドメインはてブ]2022年11月滅多にホットエントリを出さなドメインからホットエントリ

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

ブクマタイトルドメイン
2287自己肯定感の話 ①sutekibungei.com
1344伝わる文章 | 基本要素 | SmartHR Design Systemsmarthr.design
10892022年カタールW杯日本ドイツレビュー -pal-9999のサッカーレポートpal-9999.hatenablog.com
1020Elon MuskTwitter で何をしようとしているのか -The Decisive Strikeblog.nagayama.dev
915今日Twitter日本法人を解雇された皆さんへ #OneTeam -The Decisive Strikeblog.nagayama.dev
775LAN配線マンション回線を直した話skmz.one
636現在の森保ジャパン攻撃とその問題点について -pal-9999のサッカーレポートpal-9999.hatenablog.com
620webエンジニアの「業務委託単価表」が公開 -DigitalShift Times(デジタルシフトタイムズ) その変革に勇気希望digital-shift.jp
595なぜ美人美人と褒めてはいけないのか?オヤジさんのためのジェンダー問題シン常識ライフスタイルLEONレオンオフィシャルWebサイトwww.leon.jp
546ヤマト運輸株式会社GitHubgithub.co.jp
509最近フロントエンドフレームワークに対する認識お気持ちの整理 -console.lealog();lealog.hateblo.jp
476東北男性結婚した外国人女性たちの経験。「不可視化」の理由と託された言葉の数々。#移住女性の声を聴くニッポン複雑紀行www.refugee.or.jp
473勉強法】『一生頭がよくなり続ける すごい脳の使い方』加藤俊徳 :マインドマップ読書感想文smoothfoxxx.livedoor.biz
471語り手が異常な小説が読みたい - 千年先の我が庭を見よkiloannum-garden.hatenablog.com
4512022年新版】厳選QOLが爆上がりした買ってよかったアイテム紹介(デスク編・iPad編・整理編・エンタメ編・サービス編)mitsuch.com
444色々試して行き着いた読書方法iwashi.co
443【お詫びと自主回収のお知らせ】社長内緒玉ねぎを入れすぎた玉ねぎファンに贈るシャリシャリ玉ドレ200ml |2022年ニュース | 綿半公式ページwatahan.jp
418MF文庫J編集部よりお詫びとお知らせ |ニュースMF文庫Jオフィシャルウェブサイトmfbunkoj.jp
411Twitterサービス終了するのか?www.bluechronicle.jp
408Twitter での 2年 · eed3si9need3si9n.com
368国立天文台撮影した2022年11月8日皆既月食天王星食|国立天文台(NAOJ)www.nao.ac.jp
367Stable Diffusionを使って「いらすとや画像生成モデル」を作った話 -ぬいぐるみライフmickey24.hatenablog.com
357最近Reactを始めた人向けのReact Hooks入門sbfl.net
355たかやん考:ネットラッパーの揺曳する身体と「病み」の美学、そして「エンパワメント」 -ハイパー春菊サラダボウルnamahoge.hatenadiary.com
352赤色の缶の「サクマ式ドロップス」で知られる佐久間製菓(株)が廃業へ、原材料高騰が影響www.tsr-net.co.jp
342マネーフォワード ME』無料会員さまの連携上限数の変更、およびサービスの将来像について|マネーフォワードホームカンパニー公式notenote.home.moneyforward.com
323重要追記あり世界初のフルダイブVRMMORPG《ソードアート・オンライン》の正式サービスが開始dengekionline.com
322GA4の計測設計には設計ドキュメント重要な件 -ブログ -株式会社JADEblog.ja.dev
315「ザ・ルンペンブルジョワジー」 - tarafuku10 の作業場tarafuku10working.hatenablog.com
306iPhoneで「ガスト検索しようとするも「がす」の『す』でSafariが落ちる!? – kototokakototoka.com

Permalink |記事への反応(1) | 11:10

このエントリーをはてなブックマークに追加ツイートシェア

2022-01-01

anond:20220101145248

正直動けばいいと思うので、現状でも問題ないと思うけれどちょっとだけ気になった点。

$$使ってる時点で、デベロッパーツール前提なのは分かるけど、javascriptで動かしたいのか、デベロッパーツールで動かしたいのか、どっちつかずな書き方になっている。

$$('.hatena-star-inner-count').map(a =&gt; a.click());let data = {};Array.from($$('.entry-comment-contents')).forEach(x =&gt; {const userName = x.querySelector('.entry-comment-username a').href.split('/')[3];const comment = x.querySelector('.entry-comment-text').innerText;conststars = Array.from(x.querySelectorAll('.list-star-container a.hatena-star-star')).map(y =&gt; y.href.split('/')[3]);data[userName] = [comment,stars];});console.info(Object.entries(data).map(x =&gt; { return ['|', `b:id:${x[0]}`, '|', x[1][0], '|', x[1][1].join(','), '|'].join(' '); }).join("&#92;n"));

デペロッパツールだけで動くだけでいいなら、3行目のArray.fromがなくても動く。多分、forEachをmapに書き換えても動く。個人的にはforEachに統一したいけど、そこは好みレベル問題だと思う。

$$('.hatena-star-inner-count').map(a =&gt; a.click());let data = {};$$('.entry-comment-contents').forEach(x =&gt; {const userName = x.querySelector('.entry-comment-username a').href.split('/')[3];const comment = x.querySelector('.entry-comment-text').innerText;conststars = Array.from(x.querySelectorAll('.list-star-container a.hatena-star-star')).map(y =&gt; y.href.split('/')[3]);data[userName] = [comment,stars];});console.info(Object.entries(data).map(x =&gt; { return ['|', `b:id:${x[0]}`, '|', x[1][0], '|', x[1][1].join(','), '|'].join(' '); }).join("&#92;n"));

逆に、javascriptで動かしたいなら1行目と3行目はquerySelectorAllに書き換えれる。

document.querySelectorAll('.hatena-star-inner-count').forEach((a)=&gt;{a.click()});let data = {};document.querySelectorAll('.entry-comment-contents').forEach(x =&gt; {const userName = x.querySelector('.entry-comment-username a').href.split('/')[3];const comment = x.querySelector('.entry-comment-text').innerText;conststars = Array.from(x.querySelectorAll('.list-star-container a.hatena-star-star')).map(y =&gt; y.href.split('/')[3]);data[userName] = [comment,stars];});console.info(Object.entries(data).map(x =&gt; { return ['|', `b:id:${x[0]}`, '|', x[1][0], '|', x[1][1].join(','), '|'].join(' '); }).join("&#92;n"));

これも好みの問題だけど、途中のconst宣言は一回しか使ってないので、宣言せずにそのまんま入れてもいいんじゃないかと思った。

document.querySelectorAll('.hatena-star-inner-count').forEach((a)=&gt;{a.click()});let data = {};document.querySelectorAll('.entry-comment-contents').forEach(x =&gt; {data[x.querySelector('.entry-comment-username a').href.split('/')[3]] = [x.querySelector('.entry-comment-text').innerText, Array.from(x.querySelectorAll('.list-star-container a.hatena-star-star')).map(y =&gt; y.href.split('/')[3])];});console.info(Object.entries(data).map(x =&gt; { return ['|', `b:id:${x[0]}`, '|', x[1][0], '|', x[1][1].join(','), '|'].join(' '); }).join("&amp;#92;n"));|&lt;&lt;

Permalink |記事への反応(0) | 22:33

このエントリーをはてなブックマークに追加ツイートシェア

2020-11-28

anond:20201128203937

ええと…メモが言うには「Console.WriteLine("足した結果は{0}です!", sum); と書いたとき、sumはどうやって文字列になるんだ」だそうです

これはそのオブジェクトのToStringが呼ばれるということがわりと早期にわかって満足した記憶

Permalink |記事への反応(0) | 20:50

このエントリーをはてなブックマークに追加ツイートシェア

anond:20201128202030

1章でConsole.WriteLineが出てきて「最後は改行になります」って書いてあって、「改行ってLFか?CRLFか?」って何時間も調べたりして全然効率悪い

Environment.NewLineというものがあって、よく見たらIDE説明現在の行終端記号書き込みますってあったんだけど

じゃあ文字列中に\nと書いた場合って…PowerShellでは表示したときに…それをファイルリダイレクあああああいいやもう知らんってなった

よくないと思う

道具として使えるようになってから手に持ってるものを見つめ直せばいいんだよ

道具を置いたままあちこちからどれだけ見つめても、使えるようにはならない

Permalink |記事への反応(1) | 20:35

このエントリーをはてなブックマークに追加ツイートシェア

2020-10-15

poetrycache clearの仕様おかし

% poetrycache clear --helpUSAGE  poetrycache clear [--all] &lt;cache&gt;ARGUMENTS  &lt;cache&gt;                Thename of thecache to clear.OPTIONS  --all                  Clearall entries in thecache.GLOBAL OPTIONS  -h (--help)            Display this helpmessage  -q (--quiet)           Do not outputanymessage  -v (--verbose)         Increase the verbosity ofmessages: "-v" fornormal output, "-vv" formore verbose output and "-vvv" for debug  -V (--version)         Display thisapplicationversion  --ansi                 ForceANSI output  --no-ansi              DisableANSI output  -n (--no-interaction)  Do notaskany interactive question

これ見ると

poetrycache clearpypi

で動きそうじゃん?

% poetrycache clearpypi  RuntimeErrorAdd the --all option ifyou want to clearallpypicachesat /usr/local/lib/python3.8/site-packages/poetry/console/commands/cache/clear.py:44 in handle      40│         )      41│       42│         iflen(parts) == 1:      43│             if not self.option("all"):    → 44│                 raise RuntimeError(      45│                     "Add the --all option ifyou want to clearall "      46│                     "{}caches".format(parts[0])      47│                 )      48│

ブブー

動きません

正しくはこう

poetrycache clearpypi --all

オプションって何だよ哲学か?

直感的には--allをついてたら全てのキャッシュを消すべきだと思うが

% poetrycache clear --all Not enough arguments (missing: "cache").

ブブー

動きません

`--allって何だよ哲学か?

意味不明に思ったのは俺だけではないらしくIssueが出ている

https://github.com/python-poetry/poetry/issues/521

opened this issueon 19 Oct 2018 · 18 comments

2年前ですよ2年前!

Issue700個も溜まってます

ちゃんメンテしてるぅ?

pipenvもアレだったけどpoetryもアレだな

もう少しマシな奴が欲しい

Permalink |記事への反応(0) | 02:04

このエントリーをはてなブックマークに追加ツイートシェア

2019-10-02

ウェブマスターオフィスアワー 2019 年10 月 02 日

ウェブマスターオフィスアワー2019 年10 月 02 日メモ(※所々抜け漏れあり)

https://www.youtube.com/watch?v=bBurTQBqhS0

11/25Webmaster ConferenceTokyo:今週か来週の早い段階で情報を公開する予定

コアアップデート順位が下がった場合

金谷さんコメント

コアアップデートスパム対策としてのアップデートではなく、

最新情報への対応や常に変動するランキング対応させるためのもの

「何かまずいところがないだろうか?」という視点サイトに着手するのは不要

サイトコンテンツを見直すきっかけ程度にしてくれれば

客観的にいいのか悪いのかを知るために定期的なユーザーテスト実施とか、

お互いにレビューし合う習慣を付けるとか

品質評価ガイドラインとかE-A-Tとかは個人的には見なくても良いと思うが、

ユーザーの思う良し悪しの定義に迷った際の参考としてくれればと思う

そもそもE-A-Tが存在する領域かどうかの判断必要

順位回復については日々の細かなマイナーアップデートによって回復する可能性もある



Q.RankBrainにおける更新性や更新の有無による効果はあるのか?

A.オフィスアワーでランキング要素の可能性について言及するのは難しい。言えることはコンテンツの内容を改善してくださいということだけ。もし、更新性が影響すると言ってしまうとみんながそっちに走ってしまうので。

Q.被リンクではページランクドメインランクのどちらを重要視していますか?

A.ショートアンサーとしてはどちらでもありません。

仮にドメインランク重要ですと言ったら何が起こるでしょうか?オールドドメインの買い占めが発生してしまうでしょう。

例えばコンテンツの質を見るに、Wikipediaに関連リンクを貼られるとかそのくらいの影響力があるのかなどを見てみると良いでしょう。

ちなみに被リンク流行っているんですか?

筆者注:

【図解】グーグルリンク評価20原則2019年版】(前編#1~#10) |Moz -SEOインバウンドマーケティング実践情報 |Web担当者Forum

https://webtan.impress.co.jp/e/2019/09/30/34042

初心者必見!SEO対策の基本を5分で完全解説2019年最新版

https://emma.tools/magazine/seo-basics/

↑これら記事とか?


Q.評価や手動対策評価点を知る方法はないか

A.Googleアルゴリズム完璧ではないので、アップデートで再評価される可能性はある。

メインのクエリユーザー自身サービスが頭に浮かぶような存在になれるかどうか。

Q.robots.txtブロックしていないURLなのに、カバレッジrobots.txtブロックされていますというエラーが出る

A.色々確認中ではありますが、私が調べた範疇では問題ありません。SearchConsoleフィードバックも送ってください。その際、スクリーンショットだけではなく、テキスト問題点も添えてください。

Q.サイト画像サムネイルとして表示したい。Googleが推奨する方法がありませんか?

A.特にそのやり方については公開はしておりません。Googleが良いと思った画像だけを採用します。

強いて対策を言えば、画像ヘルプを参考に画像情報Googleに伝えるようにしてください。

Q.サイトマップを送信したものカバレッジに反映されない

A.確認しましたが、SearchConsoleに表示されています

タイムラグがあるかもしれませんがDisallowされていませんか?確認してみてください。

Q.HTTPSのSearchConsoleは追加した方が良い?重複コンテンツになりますか??

A.追加した方が良いです。

重複コンテンツによって、起こるのはどちらかのコンテンツ上位表示される可能性があるということ。

共倒れになるということはありません。

そのクエリで頭に浮かぶくらいの存在になっているかどうかです。

Q.セパレートURLにおいてMFI後のcanonicalURLの設定について

A.やはり動的orレスポンシブをおすすめします。

正規化とは同等のページ内容のURL複数あるからこそ行うもの

canonicalよりも、リダイレクトでやってみてはどうでしょうか?

Q.検索パフォーマンスデータ収集開始タイミングはいから??

A.基本的には登録前のデータも取れるはずですが、違うケースもあればフィードバックで教えて下さい。

Q.SearchConsoleプロパティへの表示について、所有者として確認されてから日経ってもプロパティに表示されていません

A.何らかの判断時間がかかったのだと思います。通常は数日ですが、遅れたのは新規サイトであることが要因である可能性があることです。なにか不具合ありましたらSearchConsoleフィードバックをぜひお願いします。

Q.サイト個人情報を削除してほしい

A.かなり困っているご様子ですので取り上げましたが、当フォーラムでは対象外話題ですのでウェブ検索フォーラム送信願います

Q.max-image-previewrobots meta の値を確認するには?

A.まだ反映されていないのでもうちょっと待てば反映されます

Q.SearchConsoleタイムゾーンについてPTからPSTPDTに切り替わりますか?

A.切り替わります!!

Q.ドメインを変えずにサイト名だけを変えると検索順位はどう変わる?

A.サイト名ほど大きな要素を変えてしまうのは影響すると思います

どういうサイト名に変えるのかも重要ユーザーにとってわかりやすくなるとかであれば、長期的には有効になるかもしれません。

Q.max-image-preview でlargeを設定するとDiscoverに表示されやすいと聞きましたがAMP対応しているだけでDiscoverに表示されやすくなりますか?

A.AMPでもmax-image-previewでlargeでもどっちでも対応可能です。

Q.自演対策に関する手動対策リクエスト

A.スパム対策担当者に送って適切な対応を行う予定です。

Q.クロールエラー特定できない件について、1月のオフィスアワーにてホスティング会社相談してみては?との回答で、のち、6月に検証中とのことでしたがあれからいかがでしょうか?

A.あまり気にされなくても良いです。ただ、間違ったエラーが表示されないようにするためにエンジニアも調整中ではあります

こういうエラーに気づかれましたらSearchConsoleフィードバックをぜひお願いします。

次回は10月後半か11月前半の予定です

Permalink |記事への反応(0) | 15:14

このエントリーをはてなブックマークに追加ツイートシェア

2019-09-10

C#classファイルを分ける意味

MainClass.cs

public classMainClass

{

  //Mainメソッド

  public staticvoidMain()

  {

   Person person = new Person();

   person.firstName = "山田";

   person.lastName = "太郎";

   Console.WriteLine(person.GetFullName()); // "山田太郎" と表示される

  }

}

Person.cs

public class Person

{

  // FirstNameプロパティ

  privatestring firstName;

  publicstring FirstName

  {

   get { return firstName; }

   set { firstName =value; }

  }

  // LastNameプロパティ

  privatestring lastName;

  publicstring LastName

  {

   get { return lastName; }

   set { lastName =value; }

  }

  //フルネームを取得するメソッド

  publicstringGetFullName()

  {

   return firstName + " " + lastName;

  }

}

午前中にC#について聞いてた人がいて、ついでに聞きたい。

classファイルを分けたりする事があると思う。

   Person person = new Person();

このclass定義?なんだが、

必ず大文字文字定義するんだろうか。

new Person(); としたら、勝手に「Person.cs」の中の「Person」クラスを探してくれるんだろうか。

C#プログラム動作を1行1行確認したい。

前の増田が言っていた、Listのやつも知りたい。

paizaとかで入門動画見てれば分かるだろうか。

Permalink |記事への反応(1) | 16:17

このエントリーをはてなブックマークに追加ツイートシェア

次の25件>
ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp