はてなキーワード: pauseとは
Thnkpadに毒されたのでHomeとEndは独立してて右上にあるよう調教されてしまった。
会社貸与のLet's NOTE 。Fnキーとのコンビネーションなんだ。
NumlockとPauseがちょうどいい位置なので、それぞれHome、EndにPowerToysで切り替えようとするも
Ctrl+NumlockでCtrl+Home、つまりはファイルの先頭とかA1に移動させたいが、できず。
どうもCtrl+NumlockがPauseになるっぽい。結果、Ctrl+End扱い。えー。
なんかこの辺のちょうどいいショートカットキー、ないっすかね。
# 「外付けキーボード買えよ貧乏人」とか斜め上のコメント書いちゃう俺カッコいい、が湧いてくる。きっと。
## って書いておけば湧かなくなる。おおよそ。
このニュースだろ?
Elon Musk, Steve Wozniak and others call for pause on AI development, citing risk to humanity
マスクは世界的な富豪なのにエゴサしている暇や発達障害アピールする暇がある人だからノーコメントだけど、
ウォズニアックとかはそういうのじゃないと思う。以前にTV出てた時とか割と肯定的だぞ。イーロンに対してはそうでもないが
水曜日、Appleの共同創業者はCNBCの「Squawk Box」に即席で出演し、人気が高まっている人工知能チャットボットについて話しました。ウォズニアックは、現実の脳を模倣すると主張する技術に普段から嫌悪感を抱いているにもかかわらず、ChatGPTを「かなり印象的」で「人間にとって有用」だと感じたと述べています。
しかし、賞賛の後には懐疑的な意見もありました。「人間らしさとは何かを知らないがゆえに、恐ろしい間違いを犯すこともある」と語った。
ウォズニアックは、同様の懸念を抱く技術開発として自動運転車を挙げ、人工知能が現在のところ人間のドライバーを代替できないことを指摘しました。
ーーー
On Wednesday, the Apple co-founder made an impromptu appearance on CNBC’s “Squawk Box” to talk about the increasingly popular artificial intelligence chatbot. Wozniak said he finds ChatGPT “pretty impressive” and “useful to humans,” despite his usual aversion to tech that claims to mimic real-life brains.
But skepticism followed the praise. “The trouble is it does good things for us, but it can make horrible mistakes by not knowing what humanness is,” he said.
Wozniak pointed to self-driving cars as a technological development with similar concerns, noting that artificial intelligence can’t currently replace human drivers.
Steve Wozniak’s warning: No matter how ‘useful’ ChatGPT is, it can ‘make horrible mistakes’
https://www.cnbc.com/2023/02/10/steve-wozniak-warns-about-ai-chatgpt-can-make-horrible-mistakes.html
自動で安価をつけて返信するプログラムでもこんなに長く複雑になる(一部抜粋)
/**************************************
以下のCSV_DIR, FILE_PATHS, SETTINGSを書き換えてね。 <h3>o- *************************************/</h3>
//CSVファイルが置かれてるディレクトリのパス。投稿前にエラー出たら大体ここの設定ミス。 例:"C:\\Users\\sakuraimasahiro\\Documents\\iMacros\\Macros\\rentou\\";
'C:\\Users\\USER\\Desktop\\iMacros\\Macros\\rentou\\';
//ファイルのパス。CSVは絶対パスで、拡張子も必要。iimは相対パスでよく、拡張子不要。
const FILE_PATHS = {
textCsv: CSV_DIR + 'textNoAnker.csv',
//レス用投稿文が書かれたCSV。通常とレス用で分けないなら同じファイルを使えばいい。
replyTextCsv: CSV_DIR + 'textReply.csv',
};
baseWaitTime: 5,
//baseWaitTime+0~waitTimeRange(ランダム)だけ待つ
waitTimeRange: 5,
//連投しすぎだと忠告された場合に処理を一時停止させる時間(秒)
waitTimeForAvoidingPunishment: 60 * 30,
//メール
mail: 'sage',
//名前設定
name: '',
//以下、偽装ワッチョイ設定。浪人でワッチョイを非表示にしてるときだけtrueにしてね。
//妙なニックネーム(ワッチョイ、アウアウウーなど)をランダムで決めて付加するかどうか。true=付加する。false=付加しない。
//妙なニックネームの後に付く8桁の文字列をランダムで決めて付加するかどうか。
},
//アンカー無し投稿をするならtrue。しないならfalse。noAnkerPostかreplyPostのどちらかはtrueにすること(両方trueでもOK)。
//アンカー付き投稿(返信)をするならtrue。しないならfalse。もしnoAnkerPostとreplyPostの両方がtrueの場合、投稿は返信が優先され、返信対象が見つからなくなったらアンカー無し投稿をする。
//最初に取得するアンカー無し投稿文CSVファイルの行番号。もし返信用と同じCSVファイルを使うなら-1と入力。
noAnkerPostTextCsvStartRow: 1,
//最初に取得する返信用投稿文CSVファイルの行番号。もしアンカー無しと同じCSVファイルを使うなら-1と入力。
//テキストCSV/返信用テキストCSVの取得行が最終行に達したら最初の行まで戻るかどうか。true=戻る。false=マクロ終了。
//返信する場合、これより小さなレス番には返信しない。返信を投稿すると、この数値は前回の返信先のレス番に更新される。
minAnker: 895,
//返信する場合、名前に以下の文字列を含む投稿にアンカーをつけて返信する(ワッチョイやIPなど名前フィールドにあるものならなんでも可)。配列で複数指定可能。指定無しなら空配列([])。filterNamesとfilterNamesNotIncluded共に無指定ならレス番1から順に返信していく(minAnkerが設定されてればそこから順に)。以下のfilter系は全て併用可能。
//↑とは逆に、名前に以下の文字列を含まない投稿にアンカーをつけて返信する。↑と併用も可能。
//返信する場合、本文に以下の文字列を含む投稿にアンカーをつけて返信する。
filterText: ['自演かな', '自演わらわら', 'スクリプト使うの', '安価ガバ', '>>660', '自演で擁護', '最後' ,'あいうえお', 'かきくけこ', 'さしすせそ', 'なにぬねの', 'はひふへほ', 'まみむめも', 'やいゆえよ', 'やゆよ', 'らりるれろ', 'わいうえを', 'わをん', 'わいうえをん'],
},
//自分のIPアドレスの確認。VPNとかでIPを変更してマクロを動かしてるとき、突然VPNが作動しなくなってIPが元に戻ったときにマクロを止めるためのもの。
//以下の文字列が自分の現在のIPアドレスに含まれている場合、マクロを一時停止する。基本的に自分の本当のIPアドレスを入力。
},
//浪人設定。最後に動作を確認したのは5年くらい前で、今も同じように動作するかは、浪人を持ってないから確認できずわからない。
//浪人にログインしてるかどうかをチェックするかどうか。trueならする。falseならしない。trueにしていてもし浪人にログインしていないことを確認したらログインしにいく。
password: '1234',
},
};
/**************************************
設定箇所終わり。
https://info.5ch.net/index.php/%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%81%E3%81%AA%E3%81%84%E6%99%82%E3%81%AE%E6%97%A9%E8%A6%8B%E8%A1%A8 <h3>o- *************************************/</h3>
/**************************************
・NULL演算子(??)は使えない。論理積(&&)は使える。
・オブジェクトの分割代入はできない。
・importはできない。 <h3>o- *************************************/</h3>
/**************************************
関数 <h3>o- *************************************/</h3>
/**
* ここから始まる。
*/
checkSettings();
var _TextCsvCursors = new TextCsvCursors(
SETTINGS.postSettings.noAnkerPostTextCsvStartRow > 0
? SETTINGS.postSettings.noAnkerPostTextCsvStartRow - 1
: SETTINGS.postSettings.noAnkerPostTextCsvStartRow,
SETTINGS.postSettings.textCsvLoop,
),
SETTINGS.postSettings.replyPostTextCsvStartRow > 0
? SETTINGS.postSettings.replyPostTextCsvStartRow - 1
: SETTINGS.postSettings.replyPostTextCsvStartRow,
SETTINGS.postSettings.textCsvLoop,
),
);
var _LoopStatuses = new LoopStatuses(0, SETTINGS.postSettings.minAnker);
const _MyPosterName = new MyPosterName({
name: SETTINGS.nameSettings.name,
});
const _ThreadUrl = openPromptThreadUrl();
//ループ
while (true) {
SETTINGS.ipSettings.checkIp && checkCurrentIpNotTheIp();
//スレを開く
openUrl(_ThreadUrl.fullUrlHttps());
//浪人にログインする設定なら、浪人にログインしているかどうかを確認し、していなければログインしにいく。
if (SETTINGS.roninSettings.checkLogin) {
}
}
if (SETTINGS.postSettings.replyPost) {
const targetAnkerNumber = createPostDOMList()
.filterPostnumberHigher(_LoopStatuses.currentMinAnker())
.filterByPostername(SETTINGS.postSettings.filterNames)
.filterByPosternameNotIncluded(
SETTINGS.postSettings.filterNamesNotIncluded,
)
.filterByText(SETTINGS.postSettings.filterText)
if (targetAnkerNumber !== null) {
const r = _TextCsvCursors.takeNextRowTextAsReply(targetAnkerNumber);
messageDisplay(`返信対象有り。アンカー先: ${targetAnkerNumber}`);
return {
...r,
updatedLoopStatuses:
_LoopStatuses.updateMinAnker(targetAnkerNumber),
};
}
}
if (SETTINGS.postSettings.noAnkerPost) {
//返信対象無し、或いは返信しない設定の場合。アンカー無し投稿文を作る。
const r = _TextCsvCursors.takeNextRowTextAsNoAnker();
messageDisplay('返信対象無し。アンカー無し投稿。');
return {
...r,
updatedLoopStatuses: _LoopStatuses,
};
}
return null;
})();
if (p) {
//投稿。
nickname: SETTINGS.nameSettings.nickname,
korokoro: SETTINGS.nameSettings.korokoro,
area: SETTINGS.nameSettings.area,
}),
SETTINGS.mail,
p.text,
);
//_TextCsvCursorsと_LoopStatusesを更新。
_TextCsvCursors = p.updatedTextCsvCursors;
_LoopStatuses = p.updatedLoopStatuses.incrementPostCount();
`投稿回数: ${_LoopStatuses.currentPostCount()}`,
`minAnker: ${_LoopStatuses.currentMinAnker()}`,
`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,
`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,
]);
} else {
`返信対象が現われるのを待機中...。`,
`投稿回数: ${_LoopStatuses.currentPostCount()}`,
`minAnker: ${_LoopStatuses.currentMinAnker()}`,
`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,
`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,
]);
}
wait(SETTINGS.baseWaitTime + randomRange(0, SETTINGS.waitTimeRange));
}
}
/**
* 投稿処理と投稿結果を見てリトライしたりマクロ終了したり。
* @param {string} serverName サーバー名
* @param {MyPosterName} _MyPosterName
* @param {string} postMail メール
*/
serverName,
postMail,
_MyText,
retryTimes = 0,
) {
const r =
retryTimes === 0
? new ValuesOfPost(serverName, _MyPosterName, postMail, _MyText).post(
postTo5chTread,
)
serverName,
postMail,
_MyText,
).postSubstring(retryTimes, postTo5chTread, postConfirm);
if (r) {
back();
return;
}
wait(7);
const error = createPostErrorMessage().analyze();
messageDisplay(error.message);
if (error.order === 'KILL') {
kill();
} else if (error.order === 'SKIP') {
return;
} else if (error.order === 'TRUNCATE') {
back();
serverName,
postMail,
_MyText,
retryTimes + 1,
);
} else if (error.order === 'WAIT') {
wait(SETTINGS.waitTimeForAvoidingPunishment);
serverName,
postMail,
_MyText,
retryTimes,
);
} else if (error.order === 'LOGIN') {
serverName,
postMail,
_MyText,
retryTimes,
);
}
return;
}
/**
* 現在のIPアドレスに、SETTINGS.ipSettings.avoidTheIpの値が含まれていないことを確認する。含まれていたらマクロを一時停止。
* @returns
*/
function checkCurrentIpNotTheIp() {
openUrl('https://www.cman.jp/network/support/go_access.cgi');
const _IpAdress = createIpAdressFromCMan();
if (_IpAdress.includes(SETTINGS.ipSettings.avoidTheIp)) {
pause('現在のIPに指定した値が含まれていることを確認。');
}
return;
}
/**
* @returns
*/
if (
SETTINGS.postSettings.noAnkerPost === false &&
SETTINGS.postSettings.replyPost === false
) {
return kill('設定エラー。noAnkerPostとreplyPost両方ともfalseになってる。');
}
if (
SETTINGS.postSettings.noAnkerPostTextCsvStartRow < 0 &&
SETTINGS.postSettings.replyPostTextCsvStartRow < 0
) {
return kill(
'設定エラー。noAnkerPostTextCsvStartRowとreplyPostTextCsvStartRow両方とも-1になってる。',
);
}
if (
SETTINGS.postSettings.noAnkerPostTextCsvStartRow === 0 ||
SETTINGS.postSettings.replyPostTextCsvStartRow === 0
) {
return kill(
'設定エラー。noAnkerPostTextCsvStartRow/replyPostTextCsvStartRowの初期値は-1或いは1以上で。',
);
}
}
/**
* 入力フォームを表示して入力されたスレのURLを受け取る。
*/
function openPromptThreadUrl() {
const url = prompt('スレURLを入力');
}
/**
* 開いてるスレのレス全て読み取ってPostListインスタンスを作って返す。
* 重すぎるので使うのやめ。どうやらインスタンスの大量生成が原因な模様。
*/
const posts = window.document.getElementsByClassName('post');
return new PostList(Array.from(posts).map((e) => new Post(e)));
}
/**
* 開いてるスレのレス全て取得してPostDOMListに格納して返す。
* @returns
*/
function createPostDOMList() {
const posts = window.document.getElementsByClassName('post');
for (let index = 0; index < posts.length; index++) {
//HTMLCollectionからElementを1つずつ抽出して配列に。
arrPostDOMList.push(posts.item(index));
}
return new PostDOMList(arrPostDOMList);
}
/**
* 開いてる投稿結果画面に表示されてるエラーを読み取ってPostErrorMessageインスタンスを作って返す。
*/
function createPostErrorMessage() {
window.document
In mother Russia, you don’t assassinate the President, the President assassinates you.
When Putin is late to school, his teachers apologize for being early.
Putin is the type of guy that reads the whole terms & agreements and clicks “I disagree”
When Putin was born, he named himself and congratulated his parents
When Putin late to school, his teacher apologized for being early.
When Putin's cell phone rings in the theater, they put the movie on pause.
When Putin's little toe hits a corner, the corner cries in pain
Putin didn't lose hair , the hair simply realised that they weren't worthy enough to be over his head.
When Putin showed up late, everyone apologized for being on time.
When Putin wants the lights on, he simply turns the dark off.
When Putin Reads a book, the book gains knowledge.
Fun fact: Putin once saved water from drowning
Putin is that type of guy who tells Gordon Ramsay he doesn't like his food
when he calls the wrong number, the person apologizes for being the wrong person
Putin Skipped 2 days of school, those days are now known as Saturday and Sunday
When Putin washes his hands, the water gets cleaner.
Putin is the type of guy who says \"I don't like it\" to the barber.
【追記12:50】思ったよりブクマが伸びてびっくりした。深夜投稿でもこんなに伸びるんだね。
で、重大なミスがありました。ブクマでめっちゃたたかれた焼酎オーソリティとセブンの件
id:gomibako どうでもいいことだが、酒屋は同じフロアに移転しただけだし、セブンイレブンも1店は閉めたので2店しかない。ホントにリモートワークで出社してないんだな。
マジか!!!
https://www.caretta.jp/shop/index/148
マジやんけ!!!
しかも、メインがワインになってる。セブンも結局あのへんなところのセブンは閉めたのか。それでも今の位置は相当謎だけど。
本当に焼酎オーソリティごめんなさい。てっきり撤退されたかと思ってました。よく残ってくれました。でも、その場所、厳しくない?とは思ったり。
あと、記事タイトルでDと言ってるのは、気づいた人も多いけどパブリックエネミーとチャックDとかけてます。パブリックエネミーではrebel without a pauseが好きです。
このあおるような文体は電通の人間だからではなく、山本一郎とか中川淳一郎あたりを参考にして書きました。僕の普段の文体とは全く違います。
以上。
【追記19:08】
おいまて、元記事よりもブクマが多くなってるじゃねーか。本末転倒じゃないですか、ひどいですよ。
ちなみにリストラの話、途中まで書いたんだけど、会議が入ったので、保存しようとしたら増田は途中保存できないのね、ひどいな。ということで、間違えてアップしてしまったのを消したのがトラバに残ってますが、気にしないでください。
【追記終わり】
https://www.nikkei.com/article/DGXZQOGD184X60Y1A110C2000000
日付変わって昨日、まあまあ話題になったこの件について、中の人がちょっと話すよ
といっても、僕はしょせんは35年のローンを抱えた平のサラリーマンだし、会社内では全然権力も発言力もない人間なので、話半分で聞いてくれ。
まあ、いちおう、汐留に来る前のことも知ってる程度には古参の人間なので。
さて、はてなの諸君にとっての最高にハッピーなこのニュース、トップブコメあたりを見ると、
「いやーん、ついに電通もつぶれるのかー、最高、ラッキー、これで世界に平和が訪れる。オリンピックも中止中止、ついでに菅も退陣しろ。我々は魔王を倒したのだ」
みたいなコメントばっかり並んでますが、まあ、んなわけないよね。
多少ちゃんと記事を読んだ人とか、経営にご理解と知識のある方は、ちゃんと指摘してますが。
指摘の通り、これ別に売却しても、電通が淡路島や種子島や沖ノ鳥島に引っ越すわけでもなく、そのまま賃料を払って入居し続けます。
なんで、そんなことをするかと言ったら、ぶっちゃけ、そのほうがランニングコストが安いから。
その点については、実は汐留に引っ越す前からひそひそ話でいわれていたわけで、引っ越し前は電通は、いくつかのビルに入居していたんです。聖路加タワーとか、築地の丹下健三の作ったビルとか、その向かいや裏側とかに。僕が新入社員研修のころは、築地のビルの13階にある大会議室を階段で駆け上がるのが日課でした。ちなみに当時から銀座電通ビルには、本社機能はありませんでした。関係ないけど、あのビルのエレベーターが普通のになっちゃったのは本当に残念。昔の鉄柵ががっちゃんというやつ超好きだった。で、引っ越しで汐留にその辺が全部丸ごと移転したわけです。おまけにダンディ馬場という役員行きつけの床屋まで一緒に移転させて(苦笑)
で、その当時から、汐留のランニングコストは今の全部のランニングコストよりもはるかに高いらしい。引っ越ししたらしたで死ぬほど金がかかりつづけるらしい。と言われてました。
しかも、電通は引っ越した後も事業規模を拡大し続け、いつの間にか入りきらなくなり、結局、いくつかの部署が周辺ビル(主にアネックスとかだけど)に引っ越しするなんて本末転倒なことになったわけです。社内も実はフロア改革と銘打って、一人一人の作業スペースを地道にコツコツと減らしたりしました。机の島が4人から6人になったりしました。デジタル化して書類は減ってるとはいえ、一人あたりのロッカーとデスクの収納が段ボール1箱分ってのは勘弁してほしい。仕事の資料の本すら置く場所が無いのが現状です。
そんな中、電通はリモートワーク実験を少しづつはじめ、汐留の本社ビルに周辺の関連会社も含めて集約しようという動きがこの数年で始まりました。まあ、当初はオリンピックの時に出社を減らそうという目標だったのですが、幸いなことに全社員にノートPCが配られたわけです。ちなみに全社員デスクトップPCもあります。なぜかしばらくデスクトップとノートを2台使ってるという状況だったんですね。で、リモートワークに対応しやすいようにOffice365のフル活用とかsalesforceの導入とか、VPNの自動アクセスとかが整備されたんです。
そうしたら、突然のコロナ来襲。しかも、電通社員が早々に罹患。急遽(本当に急遽明日からというノリ)でリモートワークが強制スタートしたわけです。まあ、社内も上に下にの大騒ぎですよ。なんせ、TeamsもZoomもロクに使ったことのない社員が大半だったんですから。でも、そこは気合と順応性だけは社会人の中でも抜群に優れてる電通社員なので、あっという間に対応してしまいました。で、当初は出社を最大20%と言っていたわけでして、その時期に数回出社した自分はビビりました。休日出勤より人がいない。かわいそうなのは地下のカレッタ汐留に入ってるテナントたち。なんせ電通社員のランチの胃袋や帰宅前のちょっとした買い物でかろうじて生きながらえてきた店ばかりだったので、あっという間にバタバタつぶれてしまいました。焼酎オーソリティという酒屋がつぶれてセブンイレブンになったのは爆笑でした。おいおい、同じビルに3つセブンイレブンが入ってるぞ、セブン&アイの本社より多いぞ。焼酎オーソリティはいい店だったんだけどね。希少な焼酎がずらっと並んでたし、末期は日本酒にも手を出して獺祭もレアなやつまでおいてくれてたのに。(爆笑したのは当たり前ですが、セブンになったことについてです。)
で、そのあと、世間の歩調に合わせるように少しづつ、緩和したのですが、電通社員、基本的に出社しないで仕事できちゃったんですよね。
先ほど、申し上げたようにツール環境を整備したので、たいていの仕事はリモートでできるようになっていた。データベースも回せるし、メディアプランニングもできる。企画書も全然かける。
当初は営業は出社してなんぼとか言っていたのですが、あれ、冷静に考えたら、優秀な営業って昔からクライアントに張り付いてたじゃん。出社は1日にメールと電話メモのチェックのために1,2時間とかざらだったじゃんと気づいちゃって、営業も見る見るうちに出社しなくなりました。総務や経理も当番制でいいじゃん、PCのサポートは全部メール対応にしようぜってなりまして、結果、緩和しても全然出社しなくなりました。
僕はぶっちゃけ、今年はまだ1回も出社してないし、何なら、去年の3月以降の出社回数を全部合わせても20回くらい。まあ、僕は内勤なんで少ないほうだとは思いますが。
でも、たぶん、今、出社してる回数、全社員で平均すると週に1回くらいにはなるんじゃないかな。
これに味を占めたのが、電通のえらい人たち。あ、これ、チャンスじゃね?周辺の関連会社とか全部こっちに移せるんじゃね?となりました。
その結果、全社的なフリーアドレス化が(おそらく)今年中に実施することになりました。また資料を捨てなければならぬ…
大雑把にいうと汐留本社のキャパシティを、社員の50%にするのが目標らしいです。つまり、全社員が出社しても半分のやつらは、おめーの席なんてねーからwwwってなってしまうわけです。理不尽です。とはいえ、今のデイリーでの平均出社人数が、全社員の20%くらいなので意外といけそうです。
これができれば、汐留周辺に無理くり高い家賃払って借りてる関連会社とかを全部まとめられて、経費を圧縮できるわけで最高ですね。そんでもって、本社ビルもどっかのファンドか何かに売って、テナントの管理とか余ったフロアの活用とかやってもらえば、変なことに頭を悩ます必要のなくなります。いやあ、このニュース、何気に近年では珍しいくらいのポジティブなニュースじゃない?
あくまで、一社員の私見なので、もしかしたら経営判断的には全く違うのかもしれんけど。もしかしたら、思った以上にえらい赤字が待っていて、本気でキャッシュが必要なのかもしれんけど。いや、知らんけど。
あと、昨年末にこれまたはてな的ハッピーニュースの「電通が社員をリストラ??」というのも、全然内情が違うので、それも語りたかったんですが、ちょっと思ったよりも長すぎるのとこんな時間に書いたところで、誰も読まなそうだなと思ったので、この増田のブクマが100超えることがあったら書くし、なかったら書かないでこれで終わりです。たぶんいかないので、これで終わり。
PCのキーって、誰に教わるわけでもないから、使い方がわからないキーがあるよね。
例えばPauseキーとかInsertキーって何に使うのかわからない。自分の意志で押したことは一度もない。
Tabキーは恥ずかしながら数年前に使い方を知った。知ってしまえば超便利で、今ではかなり頻繁に使うけど、使い方を知らない人は多そう。
PageUp、PageDown、Home、Endなんかも5年くらい前に知って衝撃を受けて、今では頻繁に使っている。
こういうのってよくあるよね。普通パソコンの使い方なんて習うより慣れろで身につけるもんね。
気づいていない人いそうだけど、知ってると便利なキーがあったら教えて欲しい。