「join」を含む日記 RSS

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

2022-10-07

anond:20221007113147

SQLは他のプログラミング言語と違って覚えやすくて需要もあるコスパ良い言語なんやで。

ポイント直積や。全ての道は直積に通じとるんや。

select * from a

と書いたら、aテーブルの全カラムを取得するって意味理解できるか?

ちなみにテーブルってのはエクセルの表みたいな行列で表されるデータの集まりや。

英語だと行はロウで列はカラムやで。

上記理解できたら、次の直積SQL理解したらもう準備は万端や。

select * from a, b

コレは直積って呼ばれてて、aとbテーブルの全組み合わせを教えてって事や。

例えばaテーブルカラムαに1,2,3、bテーブルカラムαには2,3,4ってデータが入ってたとすると、1,2 1,3 1,4 2,2 2,3 2,4 3,2 3,3 3,4

って言う二つのテーブルの全組み合わせを作るって事を意味するんやで。

上記理解できたら次も理解できるやろ。

select * from a, b where a.α = b.α

コレは、aテーブルとbテーブルの全組み合わせのうち、αカラムが同じデータを取得してねって事や。

まり2,2って組み合わせだけが抽出されるんや。

ちなみにコレは下記のようにも書ける。

select * from a inner join b on a.α = b.α

とあるカラム同じ組み合わせって書くのは良くやるので、専用の書き方が用意されてるだけで意味は一緒や。

上記理解できたら、後は階層構造で積み重ねていくだけなんやで。

、、、まだ難し?

SQL勉強を始めたワイ「なんとなくわかってきた」

JOIN、UNION「やぁ」

 

ワイ「ギャオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオン」

 

クソ言語

2022-08-01

anond:20220731183342

自動安価をつけて返信するプログラムでもこんなに長く複雑になる(一部抜粋) 

/**************************************

以下のCSV_DIR, FILE_PATHS, SETTINGSを書き換えてね。 <h3>o- *************************************/</h3>

//CSVファイルが置かれてるディレクトリパス投稿前にエラー出たら大体ここの設定ミス。 例:"C:\\Users\\sakuraimasahiro\\Documents\\iMacros\\Macros\\rentou\\";

const CSV_DIR =

'C:\\Users\\USER\\Desktop\\iMacros\\Macros\\rentou\\';

//ファイルパスCSV絶対パスで、拡張子必要。iimは相対パスでよく、拡張子不要

const FILE_PATHS = {

//投稿文が書かれたCSVファイル

textCsv: CSV_DIR + 'textNoAnker.csv',

//レス投稿文が書かれたCSV。通常とレス用で分けないなら同じファイルを使えばいい。

replyTextCsv: CSV_DIR + 'textReply.csv',

};

const SETTINGS = {

//投稿後の基本待ち時間

baseWaitTime: 5,

//baseWaitTime+0~waitTimeRange(ランダム)だけ待つ

waitTimeRange: 5,

//連投しすぎだと忠告された場合に処理を一時停止させる時間(秒)

waitTimeForAvoidingPunishment: 60 * 30,

//メール

mail: 'sage',

//名前設定

nameSettings: {

//名前名無しなら''。

name: '',

//以下、偽装ワッチョイ設定。浪人ワッチョイを非表示にしてるときだけtrueにしてね。

//妙なニックネーム(ワッチョイ、アウアウウーなど)をランダムで決めて付加するかどうか。true=付加する。false=付加しない。

nickname: false,

//妙なニックネームの後に付く8桁の文字列ランダムで決めて付加するかどうか。

korokoro: false,

//IPランダムで決めて付加するかどうか。

ip: false,

//地域ランダムで決めて付加するかどうか。

area: false,

},

postSettings: {

//アンカー無し投稿をするならtrue。しないならfalse。noAnkerPostかreplyPostのどちらかはtrueにすること(両方trueでもOK)。

noAnkerPost: false,

//アンカー付き投稿(返信)をするならtrue。しないならfalse。もしnoAnkerPostとreplyPostの両方がtrue場合投稿は返信が優先され、返信対象が見つからなくなったらアンカー無し投稿をする。

replyPost: true,

//最初に取得するアンカー無し投稿CSVファイルの行番号。もし返信用と同じCSVファイルを使うなら-1と入力

noAnkerPostTextCsvStartRow: 1,

//最初に取得する返信用投稿CSVファイルの行番号。もしアンカー無しと同じCSVファイルを使うなら-1と入力

replyPostTextCsvStartRow: 1,

//テキストCSV/返信用テキストCSVの取得行が最終行に達したら最初の行まで戻るかどうか。true=戻る。false=マクロ終了。

textCsvLoop: true,

//返信する場合、これより小さなレス番には返信しない。返信を投稿すると、この数値は前回の返信先のレス番に更新される。

minAnker: 895,

//返信する場合名前に以下の文字列を含む投稿アンカーをつけて返信する(ワッチョイやIPなど名前フィールドにあるものならなんでも可)。配列複数指定可能指定無しなら空配列([])。filterNamesとfilterNamesNotIncluded共に無指定ならレス番1から順に返信していく(minAnkerが設定されてればそこから順に)。以下のfilter系は全て併用可能

filterNames: [],

//↑とは逆に、名前に以下の文字列を含まない投稿アンカーをつけて返信する。↑と併用も可能

filterNamesNotIncluded: [],

//返信する場合、本文に以下の文字列を含む投稿アンカーをつけて返信する。

filterText: ['自演かな', '自演わらわら', 'スクリプト使うの', '安価ガバ', '>>660', '自演擁護', '最後' ,'あいうえお', 'かきくけこ', 'さしすせそ', 'なにぬねの', 'はひふへほ', 'まみむめも', 'やいゆえよ', 'やゆよ', 'らりるれろ', 'わいうえを', 'わをん', 'わいうえをん'],

},

//自分IPアドレス確認VPNとかでIPを変更してマクロを動かしてるとき、突然VPN作動しなくなってIPが元に戻ったときマクロを止めるためのもの

ipSettings: {

//自分現在IPアドレス確認をする。

checkIp: true,

//以下の文字列自分現在IPアドレスに含まれている場合マクロを一時停止する。基本的自分の本当のIPアドレス入力

avoidTheIp: '133.206.99.224',

},

//浪人設定。最後動作確認したのは5年くらい前で、今も同じように動作するかは、浪人を持ってないか確認できずわからない。

roninSettings: {

//浪人ログインしてるかどうかをチェックするかどうか。trueらするfalseならしない。trueにしていてもし浪人ログインしていないことを確認したらログインしにいく。

checkLogin: false,

//浪人ログインメールアドレス

mailAdress: 'abc@def.com',

//浪人ログインパスワード

password: '1234',

},

//false: run()実行させず(デバッグ用)

run: true,

//true: 投稿処理だけしない デバッグ

skipPost: false,

};

/**************************************

設定箇所終わり。

書き込めない時の早見表 - 5ちゃんねるwiki

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>

/**

* ここから始まる。

*/

function run() {

//設定ミスがないか調べる。

checkSettings();

var _TextCsvCursors = new TextCsvCursors(

new TextCsvCursor(

SETTINGS.postSettings.noAnkerPostTextCsvStartRow > 0

? SETTINGS.postSettings.noAnkerPostTextCsvStartRow - 1

: SETTINGS.postSettings.noAnkerPostTextCsvStartRow,

FILE_PATHS.textCsv,

SETTINGS.postSettings.textCsvLoop,

),

new TextCsvCursor(

SETTINGS.postSettings.replyPostTextCsvStartRow > 0

? SETTINGS.postSettings.replyPostTextCsvStartRow - 1

: SETTINGS.postSettings.replyPostTextCsvStartRow,

FILE_PATHS.replyTextCsv,

SETTINGS.postSettings.textCsvLoop,

),

);

var _LoopStatuses = new LoopStatuses(0, SETTINGS.postSettings.minAnker);

const _MyPosterName = new MyPosterName({

name: SETTINGS.nameSettings.name,

});

//スレURL指定

const _ThreadUrl = openPromptThreadUrl();

//ループ

while (true) {

//IP確認する設定なら、それをする。

SETTINGS.ipSettings.checkIp && checkCurrentIpNotTheIp();

//スレを開く

openUrl(_ThreadUrl.fullUrlHttps());

//浪人ログインする設定なら、浪人ログインしているかどうかを確認し、していなければログインしにいく。

if (SETTINGS.roninSettings.checkLogin) {

if (!checkRoninLogin()) {

loginRonin();

continue;

}

}

//投稿に使うテキスト取得。

const p = (function () {

if (SETTINGS.postSettings.replyPost) {

//返信あり設定の場合。返信対象が無いか調べる。

const targetAnkerNumber = createPostDOMList()

.filterPostnumberHigher(_LoopStatuses.currentMinAnker())

.filterByPostername(SETTINGS.postSettings.filterNames)

.filterByPosternameNotIncluded(

SETTINGS.postSettings.filterNamesNotIncluded,

)

.filterByText(SETTINGS.postSettings.filterText)

.lowestPostNumber();

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) {

//投稿

postThenCheckError(

_ThreadUrl.serverName(),

_MyPosterName.randomize({

nickname: SETTINGS.nameSettings.nickname,

korokoro: SETTINGS.nameSettings.korokoro,

ip: SETTINGS.nameSettings.ip,

area: SETTINGS.nameSettings.area,

}),

SETTINGS.mail,

p.text,

);

//_TextCsvCursorsと_LoopStatusesを更新

_TextCsvCursors = p.updatedTextCsvCursors;

_LoopStatuses = p.updatedLoopStatuses.incrementPostCount();

messageDisplay([

`投稿回数: ${_LoopStatuses.currentPostCount()}`,

`minAnker: ${_LoopStatuses.currentMinAnker()}`,

`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,

`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,

]);

} else {

messageDisplay([

`返信対象が現われるのを待機中...。`,

`投稿回数: ${_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 メール

* @param {MyText} _MyText

* @param {number} retryTimes

* @returns {void}}

*/

function postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes = 0,

) {

const r =

retryTimes === 0

? new ValuesOfPost(serverName, _MyPosterName, postMail, _MyText).post(

postTo5chTread,

postConfirm,

)

: new ValuesOfPost(

serverName,

_MyPosterName,

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();

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes + 1,

);

} else if (error.order === 'WAIT') {

wait(SETTINGS.waitTimeForAvoidingPunishment);

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes,

);

} else if (error.order === 'LOGIN') {

//動作未確認

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes,

);

}

return;

}

/**

* 現在IPアドレスに、SETTINGS.ipSettings.avoidTheIpの値が含まれていないことを確認する。含まれていたらマクロを一時停止。

* @returns

*/

function checkCurrentIpNotTheIp() {

//IP確認ページへ飛ぶ

openUrl('https://www.cman.jp/network/support/go_access.cgi');

const _IpAdress = createIpAdressFromCMan();

if (_IpAdress.includes(SETTINGS.ipSettings.avoidTheIp)) {

pause('現在IP指定した値が含まれていることを確認。');

//ポーズ解除したならもう一度確認しに。

checkCurrentIpNotTheIp();

}

return;

}

/**

* 設定に致命的な問題が無いか検査

* @returns

*/

function checkSettings() {

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を受け取る。

* @returns {ThreadUrl}

*/

function openPromptThreadUrl() {

const url = prompt('スレURL入力');

return new ThreadUrl(url);

}

/**

* 開いてるスレレス全て読み取ってPostListインスタンスを作って返す。

* 重すぎるので使うのやめ。どうやらインスタンスの大量生成が原因な模様。

* createPostDOMListを使う。

* @returns {PostList}

*/

function createPostList() {

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');

var arrPostDOMList = [];

for (let index = 0; index < posts.length; index++) {

//HTMLCollectionからElementを1つずつ抽出して配列に。

arrPostDOMList.push(posts.item(index));

}

return new PostDOMList(arrPostDOMList);

}

/**

* 開いてる投稿結果画面に表示されてるエラーを読み取ってPostErrorMessageインスタンスを作って返す。

* @returns {PostErrorMessage}

*/

function createPostErrorMessage() {

return new PostErrorMessage(

window.document

.g Permalink | 記事への反応(0) | 15:40

2022-07-26

If you could only eat one meal for the rest of your life, what would it be?

Who is your hero?

If you could live anywhere, where would it be?

What is your biggest fear?

What is your favorite family vacation?

What would you change about yourself if you could?

What really makes you angry?

What motivates you to work hard?

What is your biggest complaint about your job?

What is your favorite book to read?

What makes you laugh the most?

What was the last movie you went to? What did you think?

What did you want to be when you were small?

If you could choose to do anything for a day, what would it be?

What would you sing at Karaoke night?

How would your friends describe you?

What are your hobbies?

36. What is the best gift you have been given?

37. What is the worst gift you have received?

40. Where do you see yourself in five years?

42. If you were a super-hero, what powers would you have?

43. What would you do if you won the lottery?

44. What form of public transportation do you prefer? (air, boat, train, bus, car, etc.)

45. What's your favorite zoo animal?

46. If you could go back in time to change one thing, what would it be?

48. How many pillows do you sleep with?

49. What's the longest you've gone without sleep (and why)?

52. How often do you buy clothes?

53. Have you ever had a secret admirer?

54. What's your favorite holiday?

55. What's the most daring thing you've ever done?

56. What was the last thing you recorded on TV?

57. What was the last book you read?

58. What's your favorite type of foreign food?

59. Are you a clean or messy person?

60. Who would you want to play you in a movie of your life?

61. How long does it take you to get ready in the morning?

62. What kitchen appliance do you use every day?

63. What's your favorite fast food chain?

64. What's your favorite family recipe?

65. Do you love or hate rollercoasters?

66. What's your favorite family tradition?

67. What is your favorite childhood memory?

68. What's your favorite movie?

69. How old were you when you learned Santa wasn't real? How did you find out?

70. Is your glass half full or half empty?

71. What's the craziest thing you’ve done in the name of love?

72. What three items would you take with you on a deserted island?

73. What was your favorite subject in school?

74. What's the most unusual thing you've ever eaten?

75. Do you collect anything?

76. Is there anything you wished would come back into fashion?

77. Are you an introvert or an extrovert?

78. Which of the five senses would you say is your strongest?

79. Have you ever had a surprise party? (that was an actual surprise)

80. Are you related or distantly related to anyone famous?

81. What do you do to keep fit?

82. Does your family have a “motto” – spoken or unspoken?

83. If you were ruler of your own country what would be the first law you would introduce?

84. Who was your favorite teacher in school and why?

85. What three things do you think of the most each day?

86. If you had a warning label, what would yours say?

87. What song would you say best sums you up?

88. What celebrity would you like to meet at Starbucks for a cup of coffee?

89. Who was your first crush?

time clocks alarms appointments schedules tan sign up form team volunteers meeting black recruitment recruiting need sign up form 5k marathon running race marathon green shoes sign up form

90. What's the most interesting thing you can see out of your office or kitchen window?

91. On a scale of 1-10 how funny would you say you are?

92. Where do you see yourself in 10 years?

93. What was your first job?

94. If you could join any past or current music group which would you want to join?

95. How many languages do you speak?

96. What is your favorite family holiday tradition?

97. Who is the most intelligent person you know?

98. If you had to describe yourself as an animal, which one would it be?

99. What is one thing you will never do again?

100. Who knows you the best?

2022-01-05

今日用語: Lattice

束(そく): (束論

半順序集合で、任意の2元部分集合が上限supremum (結びjoin)と下限infimum (交わりmeet)をもつもの

束の任意の部分集合が上限(と下限)をもつ場合は完備束complete latticeとなる。完備束には最小元と最大元がある。

実数全体の集合は完備でない束。

格子: (群論

n次元ベクトル空間の基底basisの、任意整数係数線形結合の集合。

ベクトル空間定義すれば、まさに実空間内に整然と並んだ格子点の集合。

ベクトル空間以外の任意の体field(有限体を含む)上のベクトル空間でも定義できる。

2022-01-01

anond:20220101145248

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

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

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

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

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

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

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

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

document.querySelectorAll('.hatena-star-inner-count').forEach((a)=>{a.click()});
let data = {};
document.querySelectorAll('.entry-comment-contents').forEach(x => {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 => y.href.split('/')[3])];});
console.info(Object.entries(data).map(x => { return ['|', `b:id:${x[0]}`, '|', x[1][0], '|', x[1][1].join(','), '|'].join(' '); }).join("\n"));
|<<

2021-11-15

That's just how the world works !

You have to join the stronger side or suffer.

But then, what about loyalty, and uprightness, and obligation ?

Do they really mean nothing?

You think the Heike had those things?

from the line of "Heike Monogatari".

2021-08-20

ENJOY

おならは鳴り続ける

IT'S JOIN

届けたい腸の蠕動

2021-03-19

anond:20210319174437

あと

select i, j

from(select * from X) as a

left join (select * from Y) as b

on ...

って書き方するんだけど

select i, j

from X

left join Y

on ...

って書かない理由不思議なんだよね。

利点あるのかな?

anond:20210319175448

本当だ、誤字ってる。ご指摘ありがとう

性別身長が別テーブルにあるんだよ。例がわかりにくいのは申し訳ない。

あるいは別テーブルのままBIツールインポートしてBIツールjoinすればいいんだけど、なぜかunion allするんだよね。

レコード数莫大になって、cpuも実行時間もすごいことになる。

クエリを書けない先輩のクエリが酷すぎる

画面の横幅いっぱいに文字が並んでる。笑う。

 

 

  • group byしてるのにdistinctする

group byが何かわかってないのかも。笑う。

 

 

  • なんでもかんでもunion allする
ユーザID属性
A性別
A身長160
B性別

みたいに。

それをBIツールにいれて属性名でフィルターかけて分析してる。

ユーザID性別身長
A160
B170

ってデータの形を知らないのかJOINをしらないのかわからない。笑う。

 

 

as a

as b

as bb

とかあっていつも同じ。笑う。

 

 

ひどいかクエリ 書き直す。

50分が5分で終わるようになったり、cpuが90%から30%に減る。修正やりがいしかない。笑う。

 

 

それでもアウトプットのBIツールしか基本見られないし、人当たりがいいし他人から評価がいい。

「信用してるから伝えるけど」と在宅勤務中にサボってることを白状される。

でも、私は先輩に評価される側で下手にチクれば自分犯人になるし、なんかもう笑えなくなってきた。

クエリの書き方も指摘するけど、「習ってないんだよね〜」と流される。私も習ってない。

しまいにはついに、依頼者に「やります!」と言ったのにうまくいかないクエリ作成を投げられる。

残された時間は短いのに、納期はそのまま。最初から投げてくれればいいのに

早く辞めてくれるか、進化しないかな〜〜〜〜〜!

2021-02-24

ネットサービスあいつ今何してる?(90年代蛇足編)

前のつぶやきが予想外に見てもらえたので、続編をやってみる。

まぁ、大概こういうのはコケるんだけど、自己満足のアレで。

何か、コメント90年代も語ってほしいなんて無茶要求があったので、

中途半端インターネット老人らしく早く目が覚めてしまい、今日が平日で数時間後に勤務と分かりつつ無理に書いてみる。

前のつぶやきでは分かりやすさのため自身属性2000年代高校生と称していた。

正しくは2000年代高専生であった。

呪術廻戦で多少有名になった感があるが、バトルはしない理系変態が行くアレなところと思ってもらえば差し支えない。

そういう経歴なので、90年代ネットというのは余り知らない。

Windows95パソコン時代の潮流を眺め、Windows98時代ネットとともにJOINした程度にしか知らない。

親父がオタクだったせいもあり、5インチフロッピーのPC98のゲームかには触れていたものの、ネットへの邂逅は98年前後位だ。

とは言え、3.5インチフロッピーからRPGツクールを遊び、宝箱のフラグ制御による実現については学んでいた自負のある中途半端なガキではあった。

なんで、自宅はテレホタイムでのWindows学校ではFreeBSD、寮ではVineLinexでインターネット接続していた。

そのレベルなので、あまりこの時代インターネッツは知らない。

知らないけど、知らないなりに触れて覚えているそれを記したうえで、諸先輩方にご教示頂ければあと3日で到達できる週末のggりライフ捗るというもの

なんてスケベ心で、知っている限りで書いてみる。

そうやって浅薄知識を挙げることで情報収集できるってツーチャンネルで学んだんだ、僕は詳しいんだ。


芋くさいHP⇒洗練されたHPSNSとかかな:

それこそ、インターネットHPホームページ)というノリだった。

ただ、個人の糞つまらない趣味を載せたページや、形だけの企業サイトなど、

インターネットって何が楽しいの?って感じだった。

目がチカチカする効果や、嫌がらせMidi音源文字無駄な移動、キリバンとかそれしかないのという楽しみ…

と、そこで展開される日記とやらもまぁ面白くはなかった。

同じく、当時の論調を見れば「こんなつまらないものを見るのにお金をかける人なんていないよ。普及しないね!」なんてのもあって

なんかすごいらしいけどつまらないなぁ、なんて思っていた。

それが今やテレビより接するメディアになるなんて思ってはいなかった。



窓の杜Vector窓の杜Vector

今やブラウザでほぼ完結する世界Windowsだけど、昔はツールがなければただのチラシの裏代わりのメモ帳だった。

なんで、いろいろしたいときにはこれらのサイト巡回して「Toolスゲー」って感じで入れて飽きてアンインストールのローテーションだった。

この時期はストレージが数百メガメモリが数十メガゴミみたいな時代なので、Tool入れ放題なんてそんな優しい時代ではなかった。

それこそ十年以上前にこれはからブラウザですべて完結するってgooglechromeを出したとき

「ご冗談をw」って思っていたけど正にそうなっていて、googleノストラダムス力に西野プペルカナ以上に震える限り。

とは言え、かゆいところはtool必要なのでこれらのサイト需要は低くなったけど今も必要だよね。

今は会社ネットワークからは使えないけど。。。


検索という未知の沼⇒ggrks:

当時の検索と言うと、自分認識的には鉄板Yahoo!ロボットが広くあまねくのgooという認識だった。

初めはYahooで当たり障りのないページを探しつつ、goo(同名ドメインエロサイトはまぁ別途)から派生し、

InfoseekAltaVistaなど、よく知らない世界への入り口を紹介してくれるロボット検索エンジンにたどり着いた。

この時は、google?ゴーグル?なんて感じで90年代の後半に出てくるくらいで知りもしなかった。

それこそ、2chトップかどっかにgoogle検索窓があって、それで知った位な感じ。


アングラHP漫画村とかそんな感じ:

検索で色々未知の探求をしていくうちにたどり着いたのは、図書館ネット放課後はつなぎだしたのはいわゆるアングラだった。

街の灯、日本海溝メリーゴーランド等、まぁワードで分かる人は分かるアレですね。

眺めつつ、アレしつつ、うわースゲー、ここは別世界だ!なんて図書館テレホタイムに興奮していた。

ニュースになるのは2000年のだけど、ファミコン決死隊とか労務課の倉庫とかそいう感じのアレで逮捕される人が出てきて現実だと改めて認識した。

そういうのはいつか消えるかと思えば、まだ形を変えて主に中華系で生きている。

法や制度が整備されても、人の欲望の忠実さを表すこれらは人間らしい。



OutlookメールHotmailgmail

コミュ障ボッチだったので、Outlookメールの発する妙なメール着信音にいちいち狂喜乱舞していた。

あの頃なので、スパムなんてなくて知り合いとかのメールで喜んで長文返信してそこで途絶えるなんてのをしていて、学ばないなと改めて思う。

とは言えそういう、一人一つと思っていたメールWebメールとして取得できるHotmailはその存在を知り喜んで取得した。

が、まぁ上述の状況から取得しただけで終わった。

この後、フリーメールは各種ドメインで乱立するんだけど、今はgmail収束した感がある。


FreeBSDFreeBSDLinux系列

これはネットというか、管理者思想の甘さというか。

ディレクトリパスは学籍番号で切られていた。

なんて、過去の先輩の学籍番号を特定してアクセス出来て、そこからレポートをパクッて提出が出来ていた。

ただ、これが後にバレて不可を教員から受けるというドラマがあり、そのぐぬぬを何とか乗り切ったのはまた別の話。

FreeBSD自体は今も生きてはいるけど、Linux系列の方が多いのかな、少なくとも仕事の上では見ない。


なんて思うけど、自分自身90年代ネットへの関わりがうっすいので、

このあたりのあれやこれやを知っている人が教えてくれると嬉しい。

2021-01-04

JOIN句の使い回しなど絶対してはならない

からこれどういう意味だよ。普段ブログラマぶって「ふむふむ」「勉強になります!」「あとで読む」ってブクマ付けてるのに誰も説明できないのかよ。エアプか?

JOIN句の使いまわし禁止

ノンプログラマにわかるようにガンダムに例えてくれ

2020-11-23

anond:20201122013307

元増田が挙げてるidほとんど同じ文字列の繰り返しになっていますが繰り返しを除去したもの本来idと思われるので、修正したリストを置いときます

ちなみにこんな感じのコードで除去しました。

.split(/[\r\n]+/g).map(s => { if(s.slice(0,s.length/2) === s.slice(-s.length/2)) return s.slice(0,s.length/2); else return s; }).join('\r\n')

fai_fx

Aspe

napsucks

ilililil

kamezoo

afi_click

zbata

Bounding

suikasu1

aruim0

yoshe

LaNotte

crybird

xaither

CatNap

blue-hydrangea-drops

riyoukox

dishers

wantedLovers

Ero

mentalost

flyinglonery

vockeneath

Grease

tigercrow

HAN_NICHI

snowte

net_penis

Risk

hedgehogx

Joicecrunch

rshi

midorimikan

ippeichangg

kyasarin123

kanagawakama

ezmi4

am1130pm2330

murilo

kogumaneko335

sinsara

ateishoku

laislanopira

BenjaminWyatt

forret

dareshimu

crema

nilab

kensei_realdeal

hazekun

graynora

graynora

Arturo_Ui

cozyweblife

cozyweblife

chaos_tag

Dai44

motnao

nyanmage00

imosuki

kotae_taeko

wuzuki

cube9bic

yumenoa

matsuzawa24

nyankoman

tea053

watapoco

Nekomajin

sgtnk

nekowolf

RIP-1202

moandsa

b_wa

Iridium

tastasto

theNULLPO

smallpalace

ameshonyan

pukka3

yamadasatow

AODeath

nyama02

yykh

karkwind

taramoimoi

maykkzk

yummy_chan

mocchi_rie

maroon

Aspe

coya58

kanatashiro

stoolpigeonn173

sss7941

tamtam3

Betty999

vkara

vkara

charleyMan

tokyo44tan

kuroi122

ilililil

kabonnu12

Q_saku

kamezoo

arcom

afi_click

hitoyo14142

zbata

Bounding

suikasu1

shunbintarou

aruim0

LaNotte

sekreto

yoshe

crybird

J_J_R

hatekun987654321

xaither

ricanam

CatNap

blue-hydrangea-drops

dishers

wantedLovers

Ero

mentalost

flyinglonery

vockeneath

Grease

tigercrow

HAN_NICHI

snowte

net_penis

joseph150

hedgehogx

hedgehogx

Joicecrunch

seven_cz

yamaisan

proverb

rshi

nekokujira

Dicer

savoy3

itacon

onsenblog

mawhata

politru

ippeichangg

fourddoor

kyasarin123

point2000

ledlizerd

kanagawakama

nenesan0102

misomico

mobile_neko

ezmi4

ezmi4

outinikaerou

am1130pm2330

tana_bata

aquatofana

sociologicls

u_xxxx

murilo

rocoroco3310

misspopo

mventura

fugashi

natuboshi

bigapple11

sinsara

ateishoku

laislanopira

bobby2010

BenjaminWyatt

ciak

pon00

dareshimu

r0seus

yutoma233

inurin

crema

zakochan

lifeisadog

naglfar

suikax

uunfo

kensei_realdeal

takeim

drunkun

graynora

graynora

Arturo_Ui

ukikumokyng

sig

magnus84

mini3mini3

atahara

cozyweblife

cozyweblife

yako_baum

wanimiho

skgctom

Dai44

motnao

imosuki

kotae_taeko

gomasalada

soudana

yumenoa

nekochiyo

tsueppu

tontonNeko2010

kishinenryochan

matsuzawa24

gomaberry

Mofuyuki

tea053

humid

tea053

watapoco

orbis

tarako3016

kaerudayo

saori-yamamura

sgtnk

iruka72

nekowolf

threetea0407

collectedseptember

RIP-1202

moandsa

kappaseijin

Iridium

wisboot

weissorvice

tastasto

smallpalace

herion88

mini_big_foo

ameshonyan

vonakat

yamadasatow

AODeath

nyama02

girlicjam

rabque

karkwind

teiku

fukurow57

vabo-space

taramoimoi

maykkzk

adhd1978bba

yummy_chan

mocchi_rie

a4160

okami-no-sacchan

ardarim

maroon

2020-09-26

anond:20200926181009

threads = []

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads.each { |thr| thr.join }

anond:20200926180659

hreads = []

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads << Thread.new { print "CPRE*" }

threads.each { |thr| thr.join }

2020-08-24

anond:20200824032922

挫折しないならどこから入ろうが構わないと思うんだけど

Railsある程度できるぜって謎の自信つけちゃった人が応用的なことしようとした時に挫折しないだろうか

自分自身いまRailsチュートリアル中なのでRailsで何ができるか正直わかってないけど

DB登録したり読み込みする時にINNER JOINやサブクエリ使うようなちょっとややこしいSQL使ってしないといけないようなものとかできる?)

2020-08-12

The Soka Gakkai is a cult group and a criminal and an anti-American terrorist organization.

I would like to write about what I know and understand about the Soka Gakkai because the D.C. Times published an article titled "China's Manipulation of Japan, NPOs and Soka Gakkai Act as Pipeline = U.S. Think Tank Report".

China's Manipulation Against Japan, NPOs and Soka Gakkai Play Pipes = U.S. Think Tank Report (Epoch Times)
https://www.epochtimes.jp/p/2020/08/60384.html

First of all, as a premise, the Soka Gakkai is a cult.

This is because there is a definition of a religious cult, and the reality of the Soka Gakkai falls under that definition in many ways.

You can read more about the definition of a religious cult and mind control in the book "Combating Cult Mind Control: The #1 Best-selling Guide to Protection, Rescue, and Recovery from Destructive Cults ".

FCombating Cult Mind Control: The #1 Best-selling Guide to Protection, Rescue, and Recovery from Destructive Cults
https://www.amazon.com/Combating-Cult-Mind-Control-Best-selling/dp/0967068827

The Soka Gakkai is also a collection of criminals, sick people and poor people.

In fact, the Soka Gakkai is similar to the mafia gangs in Italy and Mexico, and it has reigned as the largest criminal and anti-society organization in Japan in the name of a religious organization.

Many of its members have been brainwashed and are unable to recognize and judge themselves as normal human beings.

In the 1950s and 1980s, Soka Gakkai members were forcibly recruited to join the Soka Gakkai, and nowadays, it is estimated that about 10% of the Japanese people are members of the Gakkai (Soka Gakkai members).

In particular, the Soka Gakkai has infiltrated civil servants, specifically the police force, the fire department, and the Self-Defense Forces, and it has been revealed that 20 to 30% of the Metropolitan Police Department's employees are members of the Soka Gakkai.

There is always a certain percentage of Soka Gakkai members in elementary, middle, and high school classes, and in corporate workplaces, and therefore it is taboo to criticize the Soka Gakkai in those communities.

This is because the Gakkai members in each community monitor the words and actions of their community members in the same way as the mainland communists who have infiltrated Hong Kong, and if someone speaks out against the Soka Gakkai, they will target that person and initiate a campaign of sabotage.

The sabotage is similar to the CPC's repressive actions against human rights activists in Hong Kong, including obstructing, harassing, and following them around, an act that has been described as mass stalking.

For example, in Japan, if you make a placating statement in a school class or at work that the Soka Gakkai is a cult religious group because it meets the definition of a cult group, members of the Gakkai in the community get madly angry (depending on the degree of mind control they are receiving) or bite off their anger to deny the statement.

Then they label the person who made such a statement as "anti", and they also share information about the antis with other members of the Soka Gakkai, and begin to perceive them as "beings to be punished by Buddha", to be targets of surveillance and group attacks.

In reality, however, the definition of a religious cult was not defined for the Soka Gakkai but for dangerous religious groups such as Aum Shinrikyo and People's Temple, which were intended to prevent ordinary people from being harmed by them.

The Soka Gakkai falls under the definition of a cult because the Soka Gakkai has cult-like tendencies.

When Soka Gakkai members are pointed out to the Soka Gakkai, instead of thinking "Let's fix what's wrong with my religious group," they think of suppressing their critics (anti) and silencing them, which is a pattern of thinking and behavior of a fanatic of a religious cult, and the sarin gas attack (terrorism). I feel that the followers of Aum Shinrikyo at the time when it was founded must have had a similar pattern of thinking and behavior.

Believers in cult groups are unconsciously mind-controlled and brainwashed, so they don't think that they should change their way of thinking and behavior when criticism is pointed out to them. In this respect, their attitude is similar to that of the Chinese Communist Party towards the demands of human rights activists in Hong Kong, i.e., the fanatics of cult groups such as the Soka Gakkai are not normal human beings.

By the way, there is an organization called JCP in Japan, which is also anti-American and illegal in the United States.

It is well known that some anti-American organizations cooperate with each other in order to undermine this country by signing a pact called "Soko Kyodo Agreement" and facilitating agents of anti-Japanese and anti-American groups.

It is obvious that the JCP is an anti-American terrorist organization in nature and that the JCP is a cult-like organization when it signs an agreement with a religious cult.

From another point of view, the Soka Gakkai, to its followers, appears to be a huge organization that carries out fraudulent and criminal activities such as Ponzi schemes and network businesses. It also has elements of a black business, and believers who join the Soka Gakkai are becoming materially and mentally exhausted.

The following blog, run by Mr. Sinifié, exposes the reality of the Soka Gakkai. It contains the testimonies and experiences of many current and former Soka Gakkai members and ex-members who have left the Gakkai.

What is the Soka Gakkai - Seeking Dialogue - To Quietly Leave the Soka Gakkai
https://signifie.wordpress.com/

It is clear that this reality of the Soka Gakkai is far removed from the original role of religion, which is to provide individuals with peace of mind and spiritual support.

As the saying goes, "like begets friend," it is only natural for the Soka Gakkai to try to maintain a good relationship with the CPC.

However, many Chinese who have worked in Japan seem to dislike the Soka Gakkai and return to their countries.

Although the Soka Gakkai employs a different strategy than Aum Shinrikyo and has infiltrated many organizations such as corporations, police, fire departments, the Self-Defense Forces, and local government officials, the Soka Gakkai members who have infiltrated the Kasumigaseki bureaucracy and the Self-Defense Forces are considered dangerous to the U.S. because they are inherently dangerous.

Because they are essentially anti-American and may act as agents to cooperate with the CPC.

Postscript (May 25, 2021)

There are some findings that are common knowledge among intellectuals in the U.S. and Europe but have not been made known to the Japanese people in Japan because the media and bureaucrats have stopped them.

One of them is that the Soka Gakkai headquarters has been sending donations from Gakkai members to Noriega (former general, now imprisoned) in Panama for large-scale tax evasion and money laundering.

Noriega received a large amount of money from Daisaku Ikeda of the Soka Gakkai and invested it in his own drug business, spreading drugs on an international level.

Daisaku Ikeda of the Soka Gakkai has been investing and managing the donations collected from Gakkai members in Noriega's drug business as well as tax evasion and money laundering. At the same time, the Soka Gakkai and Daisaku Ikeda invested the donations they received from Gakkai members in Noriega's drug business as a means of tax evasion and money laundering, and returned the profits to the domestic market to help the Soka Gakkai executives line their pockets and build Soka Gakkai facilities and Soka University.

The fact that Daisaku Ikeda raised Noriega's profile in the Seikyo Shimbun during the same period must be undeniable to those Gakkai members who have subscribed to the Seikyo Shimbun.

In particular, there are many Gakkai members at the level of police organizations, the Metropolitan Police Department and prefectures, who have been causing social problems and covering up crimes committed by Gakkai members in Japan.

Well, if they are in a state of unconscious brainwashing and mind control, they may not believe the contents, and may assume a pattern of behavior such as getting angry, grumpy, or attacking the writer.

In other words, one can expect a lot of denial of facts like the followers of Aum Shinrikyo, which is easy to expect, but this (the issue of Soka Gakkai and drug business, tax evasion, and money laundering) is a fact that was revealed because Noriega was arrested and imprisoned for spreading drugs in the US. This is a fact that is well known as common knowledge in the U.S. and Europe.

The fact that the Soka Gakkai is a criminal organization is very difficult to deny.

2020-07-18

将棋界の現時点での世代表(プロ入り年別)

追記

元増田と同じくレーティング上位20人+A級棋士のみ(現役棋士169人中の上位22人)の集計です。

プロ入りの平均年齢(全現役棋士)は21.4歳です。

三段リーグ出来る前とか編入試験とか含んでるので三段リーグ突破限定すればもう少し低いとは思います

---

anond:20200718090944

ブコメプロ入り年別のほうがわかりやすそうという意見があったのでスプレッドシートでLEFT JOIN + CONCATする練習も兼ねて作った。

ソース将棋棋士一覧 - Wikipedia

プロ入り年棋士プロ入り時の年齢)
1985羽生善治 (15歳2月)
1986
1987佐藤康光 (17歳5月)
1988
1989
1990丸山忠久 (19歳6月), 郷田真隆 (19歳0月)
1991深浦康市 (19歳7月)
1992三浦弘行 (18歳7月)
1993久保利明 (17歳7月)
1994
1995
1996
1997木村一基 (239月)
1998
1999
2000渡辺明 (15歳11月)
2001
2002
2003
2004
2005広瀬章人 (18歳2月)
2006糸谷哲郎 (17歳5月), 佐藤天彦 (18歳8月)
2007豊島将之 (16歳11月)
2008稲葉陽 (19歳7月)
2009永瀬拓矢 (17歳0月)
2010菅井竜也 (17歳11月), 佐々木勇気 (16歳1月)
2011
2012斎藤慎太郎 (18歳11月)
2013千田翔太 (18歳11月)
2014
2015
2016佐々木大地 (2010月), 藤井聡太 (14歳2月), 大橋貴洸 (24歳0月)
2017
2018
2019
2020
ログイン ユーザー登録
ようこそ ゲスト さん