底辺情報系音ゲーマーの手記

Python2.7.xとかDDRとか

【バルス】tweepyを用いたバルス連投プログラム

放送中に執筆したため動くかは保証できません。

あとで確認します。

tweepyが使えるPython2系を想定しています。

 

# -*- coding:utf-8 -*-

import tweepy

consumer_key = "自分のconsumer_key"
consumer_secret = "自分のconsumer_secret"
access_key = "自分のaccess_key"
access_secret = "自分のaccess_secret"

CK=consumer_key
CS=consumer_secret
AT=access_key
AS=access_secret

auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, AS)
api = tweepy.API(auth)

for i in range(10):
 api.update_status("バルス")

取り急ぎ。

【DDR】DP激アラビをクリアするための攻略法を書いてみる

お久しぶりです。

いや、ほんとにお久しぶりです。

 

唐突なんですが、今回はDance Dance Revolutionきっての左右振り曲"Arrabbiata"のDP激譜面クリアのための記事を書いていきます。

 

(もちろん私なりの攻略法なので、合う合わないはあると思います。)

 

今回の記事で対象としてるのは以下のようなプレイヤーさんです。

  • バー持ち
  • DP足14〜15を(安定ではないが)クリアできる
  • DP激アラビの最初の方は踏める
  • 中盤の発狂で閉店する
  • とりあえずこの譜面をクリアしたい(スコアは気にしない)

 

また、譜面画像はArrabbiata(激) - Dance Dance Revolution DP攻略 Wiki @ ウィキ - アットウィキより借りさせていただきました。

 

 

それでは早速いきます。

最初の方はホームポジション(左足:1P→、右足:2P←)を意識していればそこまで削られることはありません。

 

縦連がちょいちょい出てきますが、後々に体力を残すことを考えて少し軽く踏むようにします。

 

あと、同→単→同→単の配置は全て同時押しで踏んじゃった方が下手に考えなくていいので楽な気がします。

 

 

そして、中盤の発狂…の直前に少しだけ厄介な配置があります。

f:id:eiki1253:20170928143330j:image

上の画像の配置と、それを鏡写しにした配置がそれぞれ1回ずつ出てきます。

 

この配置の場合、右足(赤いノーツに対応)の移動量はそこまで多くありませんが、左足(青いノーツに対応)は2P↑から1P→を経由して2P↓を踏むため、左足を大きく左回りに回すような動きになります。

また、最後の5連打は体を捻りながら取らねばならず、割とよく取りこぼします。

 

なので、捨てノーツを考えます。

f:id:eiki1253:20170928144831j:image

上の画像のように、1P→を捨て、最後の5連打を左始動で踏むことによりゲージを残しつつ楽に踏むことが出来るようになります。

 

次の鏡写しの配置になっている部分も同様にして抜けます。

 

 

ここから中盤発狂です。

とりあえず譜面だけ見ることとします。

f:id:eiki1253:20170928145333j:image

「…なんすかコレ?」

 

と言いたくなる譜面ですがここはガチ踏みで抜けることを考えます。

 

最重要事項として、1P←→と2P↑↓は左足、1P↑↓と2P←→は右足で踏むということ、ミスしてもとりあえずリズム通りに足だけは動かすことを念頭に置いておいてください。

 

まずは前半、薄い赤丸がついているノーツに注目します。

f:id:eiki1253:20170928150635j:image

赤丸のノーツは1P側から2P側(またはその逆)に渡った直後の↑か↓のノーツです。

これらのノーツを見極めることによりホームポジションから次の足を前に出すか後ろに出すかを見定めます。

また、渡り直後を踏み外してもその次のノーツは1P←か2P→なので、修正をきかせることも容易です。

 

 

そして中盤発狂の後半です。ここで厄介なのは次の箇所です。

f:id:eiki1253:20170928230602j:image

赤丸で示したノーツは「移動距離が多い+そこで一気に切返さなければならない」ので、予想以上に難しいです。

 

なので、そこのノーツだけ少し力を入れて逆側に蹴り返すイメージでやるといいと思います。(力みすぎないように注意です)

 

 

ここまでで中盤発狂は終わりですが次も厄介な配置です。個人的にはここがクリアを目指すうえでの最難関です。

 

「タンッ タタタタタンッ」の様なリズムの繰り返しなのですが、同時が絡んでくる+捌きにくい配置なので踏んでるつもりでもポロポロ抜けます。なので、思い切ってバツ印のノーツを捨てます。

 f:id:eiki1253:20170928234032j:image

 また、wikiにも書いてある通りですが、ここの同時押し3回は体が外を向いてないと次がかなり踏みづらくなります。

 

 

次の部分は1個前と大体同じなので解説は省きますが、同時押しは内側を向いて踏まないと次が踏みづらくなります。

f:id:eiki1253:20170928234724j:image

 

長い発狂攻略も次で最後ですが、ここで注意すべきは先ほどと同様に、同時押しは内側を向いて踏むということくらいです。

f:id:eiki1253:20170928234933j:image

 

同時押しで外3回、内5回が終わればあとはほぼウィニングランです。

雰囲気としては曲開始〜中盤発狂寸前レベルの左右振りが流れてくるくらいです。

 

 

そして最後、同時押しが見える様な気がしますが気のせいだと信じましょう。

f:id:eiki1253:20170928235732j:image

 (一応真面目な解説としては同時押しの2P←を捨てて踏むと、ミスはでますが楽に踏める感じです。)

 

 

長くなってしまいましたが、少しでも参考になればと思います。

 

それではみなさん楽しいDDRライフを!

【プログラミング超初心者向け】C言語の入門みたいな話 前編

はじめに

今回の内容は、大学でプログラミングに初めて触れるような"プログラミング超初心者向け"となっています。すでに予備知識のある方は特に得られるものはないと思います。

大学に入学したての頃は、死ぬほどプログラミングが苦手でした。その経験をもとに、初めて触れたときの感覚を思い出しながら書いていきます。

また、記憶を頼りにしながら書いてるので、たまに間違ってる部分があるかもしれません。もし、そういうのを発見されたら、コメントでお教えしていただけると助かります。


C言語でのプログラミングの前に

プログラミングに用いる構文の前に、重要なワードを3つ紹介しておきます。それは、「2進数」と「0オリジン」と「コンパイル」というものです。

2進数

普段、わたしたちの身の回りに存在する数字のほとんどが"10進数"です。
"2進数"はコンピュータ内部で利用されており、情報系の生徒であれば嫌でも耳にする言葉です。

簡単に言ってしまえば、0と1のみを用いて数字を表現する方法が2進法で、それによって表される数字のことを2進数といいます。
詳しくはこちらがわかりやすかったので参考にしてみてください。(リンク先を読むのがめんどくさければすっとばしてもらってもOKです。)
2進数、16進数と10進数 - CyberLibrarian

また、次の図に示す値はよくでてくるので頭の片すみに入れておくことを推奨します。上が10進数(decimal)での表示、下が2進数(binary)での表示となります。
f:id:eiki1253:20170413014339p:plain

0オリジン

2進数は、人によっては聞いたことあるかもしれませんが、こちらのワードを聞いたことがある人は比較的少ないのではないでしょうか。
簡単に言うと、1から数え始めるのではなく、0から数え始めるということです。
イメージを↓の図に示します。
f:id:eiki1253:20170413015157p:plain

プログラムを書く際は、0オリジンが基本なんだなと覚えておいていただければ結構です。

コンパイル

英語で書くとcompile、意味は"編集する"とか"機械語に翻訳する"などがあります。今回はもちろん後者の意味で用います。
プログラミング言語(C言語javaPython...)は、あくまで人が理解しやすいように設計された言語であり、そのままではコンピュータが処理を行うことができません。そこでプログラミング言語をコンピュータが理解できるように翻訳する必要があります。
さすがに人の手で変換するのはキツいので、コンパイラと呼ばれるものを使ってプログラムをコンパイル--つまり機械語に翻訳--してあげます。

また、プログラムの構文に間違いがあればコンパイルエラーとなり、正しく実行ができません。ここで必要になるのが、プログラムの間違いを見つける作業、いわゆるデバッグです。かなり細かいミスなどでもプログラムは動かないですが、自分の書いたプログラムは間違いが見つけづらいので、少し探してバグが見つからなければ、ほかの人に助けを求めてみるのが吉です。


C言語のプログラムを書くにあたって

どんなC言語のプログラムを書くときも、大体必要になる枠組みがあります。それがinclude文とmain関数です。

include文

どの参考書のどんな簡単なプログラムでも、一番初めに次の1文が書かれてることがほとんどです。

#include <stdio.h>

よく、プログラムを書くための「おまじない」と説明されることがあるのですが、その正体はstandard input/output のヘッダファイルです。
standard input/outputなので、標準入力(キーボード使って文字を入力したりすること)や、標準出力(文字をパソコンの画面に表示すること)をするためのファイルを読み込んでるということになります。
これがないと後述のprintf文(画面上に文字を表示する文)が使えなくなってしまうので、画面上に何も表示できなくなります。

他にも文字を扱うのに特化したstring.hや、数学に特化したmath.hなとがありますが、今回は別に必要ないので触れません。興味がある方は調べてみるといいかもしれません。

main関数

C言語でプログラムを動かす際にかならず1つだけ必要になる関数がこのmain関数となります。
また、main関数以外の関数(後述)を使いたくても、main関数を経由しなければいけないので、言ってみれば関数の親玉みたいな存在です。

基本的な枠組みは次のようになります。

int main(){
 /* なんらかの処理 */
 return 0;
}

上のプログラムを読んで初心者の方は「そもそも関数ってなんだよ」とか「intって何だよ」とか「return 0;って何だよ」とか思ったことだと思います。

では、これらの3つについて解説を少し挟みます。(説明の関係上順番が前後しています。)

int型

簡単に言っちゃえば「この数字は整数です!!」っていう宣言です。例えば次のような文があったとします。

int x;

この文では、xは整数だということを示しています。

ここで注意していただきたいのは、われわれは賢いのですが、コンピュータはアホなので、intで宣言された変数(今回はx)は、"絶対に整数しか扱えない"ということです。

例えば次のようにしたとします。

int x;
x=0.9;

この場合、コンパイルはできるのですが、コンピュータ内部では小数点以下が切り捨てられてx=0として扱われてしまいます。(四捨五入なんていうめんどくさい処理は行われないので注意です。)

「じゃあ小数扱うにはどないせぇっちゅうねん」という方、double型やfloat型とかありますが、今回の説明範囲を超えてしまうので割愛です。自分で検索してみてください。わかりやすいサイトがたくさんあります。

関数

関数というと、数学の授業で習ったf(x)=x^2のようなものを想像すると思います。
実は大体あってます。結構似てます。

試しに上記の式をプログラムにしてみます。(main関数以外の関数にあたります)

int f(int x){
 int kotae;
 kotae=x*x;
 return kotae;
}

プログラムの解説をしていきます。
まず1行目から、"int f(int x)"。たぶん「なんでintが2つもあるんや???」ってなると思います。
一番初めのintは、「答え(正式名称:返り値)が整数になるよ!!」ということを示しており、2番目のカッコの中にあるintは、f(x)=x^2でいうところの「代入する数(正式名称:引数)が整数だよ!!」ということを示しています。
また、fは関数の名前、xは引数の名前です。名前は好きなように変えられます。

2行目、"int kotae;"、これは前の章で書いた通り、「kotaeには整数が入るよ!!」ということを示しています。

3行目、kotaeに計算結果を入れます。イメージ図を置いておきます。
f:id:eiki1253:20170414175247p:plain

そして4行目ですが、次の節で解説になります。

return文

さきほどのプログラムでは"return kotae;"となっていました。
returnという単語から、勘のいい方はもう気づいてるかと思います。

2つ出てきたint型のうちの1つ目、「答え(正式名称:返り値)が整数になるよ!!」の返り値が"kotae"となるのです。

実はさっきの関数、以下の通り、もっと短く書くことができます。

int f(int x){
 return x*x;
}

返り値に直接計算をぶち込む形です。どっちかというと、こっちのほうが分かりやすいかもしれない(?)


main関数は"int main()"という部分だけで「mainという名前関数は、返り値がint型(整数)であり、引数は無し」、ということがわかります。


まとめ

長くなってきたので今回の記事で解説してきたものを組み合わせて、2乗を計算させるプログラムを作って、うまく実行できているか確認します。
また、プログラム中に出てくる /* 文章 */ みたいなものは、コメントアウトといいます。
これは、コンパイラに「これで囲われている部分は無視してOK」ということを伝えるものなので、プログラム自体に影響は与えません。

結果の画面に表示するためにprintf関数を用いています。今回の記事では説明していませんが、これがないと結果の確認ができないので、やむを得ず使用しました。ご了承ください。

#include <stdio.h>

int f(int x){ /* main関数以外の関数 */
	int kotae;
	kotae=x*x;
	return kotae;
}

int main(){ /* main関数 */
	int ans;
	ans=f(3); /* f(3)=3*3 の結果、9をansに入れる */
	printf("%d\n",ans); /* 結果を画面に出す */
	return 0;
}

プログラムの実行はオンラインの実行環境(つまり、自分はプログラムを書くだけよい)である"codepad"様で行わせていただきました。
codepad

結果
f:id:eiki1253:20170414183726p:plain
しっかり結果(output)が9になっていることから、処理は成功しているようです。

以上で今回の記事は終了になります。ありがとうございました。



以下、おまけの参考書コーナーです。




おまけ:参考書

私が初心者のときに利用していたのは「かんたんC言語

かんたんC言語 (プログラミングの教科書)

かんたんC言語 (プログラミングの教科書)

友人が利用していたのはで覚えているのは「猫C(通称)」と「苦C(通称)」

苦しんで覚えるC言語

苦しんで覚えるC言語

紹介はしておきましたが、いろいろな参考書があるので、実際に書店に行って自分の学び方に合うものを購入するのがいいと思います。

それでは、また次回。

【Python】tweepyを用いてbot的な何かを作成した話

ハセ学を通したエイプリルフールネタを書こうかと思ってたんですが、いつのまにかエイプリルフールが終了してたので、趣味で書いたPythonbot的なやつの話になります。"若干の"不適切な表現があるので閲覧には少しご注意を...
 



~~ことの発端~~
Twitterで「致すか」ってツイートしてから「致した」ってツイートするまでめっちゃ早いやつおるな。」

「せや!何秒かかってるのか自動で計測できるようにしたろ!」

てな感じでこういう頭悪い感じのbotを作成することに。
f:id:eiki1253:20170412000947p:plain


TwitterAPI(consumer_keyとか)に関してはこちらを
webnaut.jp


プログラムの基本的な部分はこちらを参考にさせていただきました。
net.univ-q.com


それでは早速プログラムの全文なんですが、プログラムが横に広いのに気を付けてください。(あとシングルクオテーションとダブルクオテーションがところどころごっちゃになってますが、気にしないでください。)
プログラムの解説は後ろに書いてあります。

# -*- coding:utf-8 -*-

import tweepy
import datetime

consumer_key = "自分のconsumer_key"
consumer_secret = "自分のconsumer_secret"
access_key = "自分のaccess_key"
access_secret = "自分のaccess_secret"

CK=consumer_key
CS=consumer_secret
AT=access_key
AS=access_secret

itasiname="hoge"
status1="hoge"
d1=datetime.datetime.today()

# Twitterオブジェクトの生成
auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, AS)
api = tweepy.API(auth)

class Listener(tweepy.StreamListener):
	def on_status(self, status):
		status.created_at += datetime.timedelta(hours=9)
		# 致すか
		if  u'致すか' in status.text:
			global d1
			global status1
			global itasiname
			itasiname=str(status.author.screen_name)
			d1 = datetime.datetime.today()
			micro1='%s' % d1.microsecond
			microsecond1 = micro1.rjust(6,'0')
			s1=u'%s時%s分%s秒%s\n' % (d1.hour, d1.minute, d1.second, microsecond1)
			itasuka=u"致しはじめ\n"
			status1=itasuka+s1
			print status1
		# 致した
		if (str(status.author.screen_name)==itasiname) and (u'致した' in status.text):
			tweetid=status.id
			d2 = datetime.datetime.today()
			micro2='%s' % d2.microsecond
			microsecond2 = micro2.rjust(6,'0')
			s2=u'%s時%s分%s秒%s\n' % (d2.hour, d2.minute, d2.second, microsecond2)
			itasita=u"致し終わり\n"
			status2=itasita+s2
			print status2
			itasi_microsecond=d2.microsecond-d1.microsecond
			itasi_second=d2.second-d1.second
			if itasi_microsecond<0:
				itasi_microsecond=itasi_microsecond+1000000
				itasi_second=itasi_second-1
			if itasi_second<0:
				itasi_second=itasi_second+60
			if itasi_second==0:
				tweet=u'.@'+itasiname+u' の射精早すぎィ!!!!!自分、不正認定いいすか?'+ \
				      u'淫夢知ってそうだから淫夢のリストにぶち込んでやるぜー!'+ \
				      u'いきなりツイートしてすみません!許してください!なんでもしますから!'+ \
				      u'(なんでもするとは言ってない)'
				print u'早すぎィ!\n'
			else :
				itasi_microsecond_final = str(itasi_microsecond).rjust(6,'0')
				status3=u'致しスピード %s秒%s\n' % (itasi_second,itasi_microsecond_final)
				print status3
				tweet=u'.@'+itasiname+u" の記録\n"+status1+status2+status3
			api.update_status(status=tweet, in_reply_to_status_id=tweetid)
			itasiname="hoge"
		return True

	def on_error(self, status_code):
		print('Got an error with status code: ' + str(status_code))
		return True

	def on_timeout(self):
		print('Timeout...')
		return True

# Twitterオブジェクトの生成
auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, AS)

listener = Listener()
stream = tweepy.Stream(auth, listener)
stream.userstream()


自分で書き換えた部分は主に16~18行目と、28~71行目の処理なので、そちらについて解説をおこなっていきます。

まずは16~18行目について、次のようになっています。

16:
itasiname="hoge"
status1="hoge"
d1=datetime.datetime.today()

簡単に言えば、プログラムのどこからでもアクセスできるグローバル変数のようなものを作っています。なぜグローバル変数を用いているのかは後述とします。


次に、28~40行目です。

28:
# 致すか
if  u'致すか' in status.text:
	global d1
	global status1
	global itasiname
	itasiname=str(status.author.screen_name)
	d1 = datetime.datetime.today()
	micro1='%s' % d1.microsecond
	microsecond1 = micro1.rjust(6,'0')
	s1=u'%s時%s分%s秒%s\n' % (d1.hour, d1.minute, d1.second, microsecond1)
	itasuka=u"致しはじめ\n"
	status1=itasuka+s1
	print status1

status.text(ツイートの本文)に"致すか"という文字列が含まれていればここの処理に入ります。
変数の前にglobalをつけることにより、d1などの変数がグローバル変数であることを示しています。これがないと、次の処理でこのツイートが行われた時刻などを得ることができません。(前述のグローバル変数が必要な理由となります。)

33行目では変数itasinameにstatus.author.screenname(ツイートした人のスクリーンネーム、@の後ろに続いてる文字列)を格納しています。後にこれを使うことにより、異なったアカウントの致し時間を計測してしまうことを防ぎます。

34行目ではツイートされた時刻をtoday関数を用いて取得しています。もちろん、時間の差をとるために使いますが、そのまま用いると、1秒004000と表示したいところを1秒4000と表示されてしまいます。なので、rjust関数を用いて0パディング(0埋め)を36行目でおこなっています。

あとは文字列の結合をおこなって、コマンドライン上に確認用に出力するだけです。



後半部分(41~71行目)の処理も似たようなものです。

41:
# 致した
if (str(status.author.screen_name)==itasiname) and (u'致した' in status.text):
	tweetid=status.id
	d2 = datetime.datetime.today()
	micro2='%s' % d2.microsecond
	microsecond2 = micro2.rjust(6,'0')
	s2=u'%s時%s分%s秒%s\n' % (d2.hour, d2.minute, d2.second, microsecond2)
	itasita=u"致し終わり\n"
	status2=itasita+s2
	print status2
	itasi_microsecond=d2.microsecond-d1.microsecond
	itasi_second=d2.second-d1.second
	if itasi_microsecond<0:
		itasi_microsecond=itasi_microsecond+1000000
		itasi_second=itasi_second-1
	if itasi_second<0:
		itasi_second=itasi_second+60
	if itasi_second==0:
		tweet=u'.@'+itasiname+u' の射精早すぎィ!!!!!自分、不正認定いいすか?'+ \
		      u'淫夢知ってそうだから淫夢のリストにぶち込んでやるぜー!'+ \
		      u'いきなりツイートしてすみません!許してください!なんでもしますから!'+ \
		      u'(なんでもするとは言ってない)'
		print u'早すぎィ!\n'
	else :
		itasi_microsecond_final = str(itasi_microsecond).rjust(6,'0')
		status3=u'致しスピード %s秒%s\n' % (itasi_second,itasi_microsecond_final)
		print status3
		tweet=u'.@'+itasiname+u" の記録\n"+status1+status2+status3
	api.update_status(status=tweet, in_reply_to_status_id=tweetid)
	itasiname="hoge"
return True

まずは42行目、先ほどと似ていますが少し条件が違います。"致した"の文字列が含まれてる、かつ、先ほどツイートしたアカウントと同じならこの処理に入ります。ここで変数itasinameを用いています。
43~50行目について、リプライ用にtweer.idをとっていますが、それ以外は先ほどの33~40行目の処理とほぼ同じです。

51~57行目では、"致すか"とツイートしてから"致した"とツイートするまでの時間の差分をとっています。繰り下がりに少し注意です。

58~63行目の処理は、複数クライアントや、プログラムなどを用いた不正の防止用の分岐となります。2つのツイートの時間差が1秒未満であればこの処理に入ります。処理とはいってもクソリプ送るだけですが。

そんで最後、64~71行目ですが、文章や計測結果をのせてツイートするだけです。
少し解説を挟むと、68行目までにツイートの本文を作成してます。69行目のstatusには作成した本文を突っ込み、in_reply_to_status_idという「どのツイートに対して返信するか」という変数には変数tweetid("致した"と書かれたツイートのid)を突っ込んでます。
70行目でitasiname="hoge"としたのは、「致すか」→「致した」→「致した」の順でツイートすると、始めの致すかから、最後の致したまでの差分をとってツイートしてしまうからです。

これで2つのツイートの時間差をとって、勝手にリプライしてくれるbotの完成となります。
お疲れさまでした。

最後に実行結果を次の図に示しておきます。
f:id:eiki1253:20170412013458p:plain


以下、Q&Aコーナー

Q,何の役に立つんですか

  • 何の役にも立ちません。


Q,もっと詳しく説明して

  • コメント等でどこの説明してほしいか言ってくだされば。


Q,変数の命名センスなさすぎ

  • うっせぇ!!!!!!!!

【学生向け】インターネットの怖さとネットリテラシー

f:id:eiki1253:20170309194238p:plain

ことの発端は2017年WBC初戦、ヤクルト山田選手が放ったホームランになるか?どうか!?といった球を、観戦にきていた少年が少し手を伸ばして捕ってしまい、結果としては2ベースヒットとなった場面です。

試合が拮抗していたということもあり、Twitterで野球実況をしていた人の反応も多くはは「なんでお前手伸ばして捕ったんや!!!!!!!貴重な追加点になったかもしれんのやぞ!!!!!!」といったものでした。もちろん、かなり際どい球だったので、捕らずとも客席までは届いていなかったというツイートも出ていました。(僕も最初は前者のように考えていました。ごめんなさい。)

 

ここで終わってれば後に述べるような大惨事にはならなかったかもしれないのですが、その少年の友人(?)がこんな感じのツイートをしてしまっていたのです。(当該ツイートは削除済)

f:id:eiki1253:20170309184046p:plain

もうお分かりかと思います。大炎上です。

 

数十分のうちに「顔」「名前」「学校」「住所(?)」などの個人情報が特定されてしまったのです。インターネット怖いです。

 

 

前置きが長くなりましたが、今回の話題は『ネットリテラシー』です。

 

目次↓

 

 インターネットを無難に利用するために

個人を特定される情報を晒さない

ぶっちゃけた話無理です。今の時代Twitterやってれば大体特定されます。

  • 性別→文体・一人称などから推測可能
  • 顔→自撮り写真ツイートや集合写真などで特定
  • 家族構成→ツイートに兄や母等、家族を示すものがあれば特定
  • 所属→フォロー、フォロワーに多い所属を見れば大体特定
  • 名前→リプライとかで使われていれば特定、ハンドルネームにしてるのは危ない
  • 誕生日→おめでとうリプライから特定
  • 住所→小中学校であれば学区から大体特定、それ以上でも部屋の写真から間取りが判明し、それをもとに特定なんてことも

ざっとあげただけでもこれだけあります。見ればわかる通り専門家とかではなくても、少しツイートをさかのぼれば簡単に特定できることがわかりますね。

言えることとしては、「自分は気を付けてても周りとつながりがあれば特定される」ということです。

あとmixiとかに個人情報残しっぱなしの人は、そこからも特定されるんでお気を付けください。

Facebookはもうどうにもなりません。個人情報のオンパレードです。

 

 

炎上させない

前章で「対策不可能やん!!!」と思った方に朗報です。

代替案があります。炎上させなければいいのです。

インターネットに特定されるような情報を流してる人はごまんといます。しかし、そのすべての人が個人情報をバラされているわけではありません。

その中で大勢の人々の反感や怒りをかった人(※例外アリ)が特定されているのです。

具体的にはこんな感じ

  • 他人を煽るような口調をいつも使っている
  • 法に触れる行為(未成年飲酒等)を堂々とTwitterに報告する

上記に当てはまる方々、次はあなたが炎上する番かもしれませんし、炎上したからといってもそれは自己責任です。

もし炎上しかけても、迅速に対応すればどうにかなることもありますが、大抵は手遅れです。(社会的に)死にます。

 

 

自分の情報は常に危機にさらされていると認識する

冒頭で話した少年も、まさかこんなことになるとは思ってもいなかったはずです。

インターネットにアップした、たった1枚の写真からこのような事態になってしまいました。

インターネットを利用する際は写真1枚、文章1文でも気を使うべきだと思います。

まあ、私も人に言えるほどしっかりしてないんですけどね。

 

 

 

そんなこんなで今回はおしまいです。

次回はネットリテラシー番外編・嘘を嘘と見抜くをお送りします。

 

自作PCを組んだ話~前編~

 お久しぶりです。

今回はPCを自作したので、それの手順とか感想とか書いていきたいと思います。(前編なので部品の紹介までです。購入日は2017/02/12です。)

今回初めて組んだので、僕と同じく自作PC初心者でこのブログに迷い込んだ方でも、なるべくわかりやすいように(当社比)書いていきます。

目次↓

0章 PC組むに至った経緯

もともと使ってたノートパソコンでSteamのL4D2(約12GB)とかPortal2(約10GB)とかやってたんですが、容量の関係で上記の2つを同時に入れられなくなった、つまり、片方のゲームをやるためにもう片方のゲームを毎回アンインストールしなければならなくなってしまったのです。また、せっかくインストールしてゲームをやっても、PCのファンがガンガンに回り、しかもたまにゲームが落ちるというようになり、ノートパソコンの限界を感じました。せっかくだし、いいスペックにしたいなーということで購入を決意しました。

 

1章 手元にないパーツの購入

モニタ・マウス・DVDドライブは以前購入していたので、それ以外のパーツを購入しました。具体的には以下の10個です。

 

グラフィックボードはゲーム等をしない人にとっては不要なので任意としました。また、僕が購入したマザーボード無線LAN機能を搭載しておらず、有線で接続するにもルーターから結構離れていたので、別途USB無線LAN子機を用意しました。デスクトップ用のマザーボードだと最新のお高い機種くらいしか無線LAN機能搭載してないっぽいです。

 

 そんなこんなでアキバのTSUKUMO eX.さんに突撃。

 f:id:eiki1253:20170213200043p:plain

(画像は TSUKUMO 店舗情報 から頂戴した画像を少し改変したもの)

 6階にPCの無料お見積りコーナーがあるので、予算と用途(例:10万円前後でマイクラとかプログラミングとかできるようにしたい)を店員さんに伝えて出してもらった案を一旦持ち帰り、自作経験ありの友人に相談をしてみたところ以下のようになりました。

 

OS

・わざわざLinux等にする理由もないのでWindows。今回はDSP版を選んでいますが、おまけにあるDVDドライブを持っていない人はパッケージ版(結構高い)を買うことになるかもしれなせん。詳しくは店員さんに聞いてみてください。

日本マイクロソフト DSP Windows 10 home 64Bit J
 

 

CPU

・ゲームとかするだけだったらXeonとかi3とかでもいいらしいと店員さんが言っていましたが、プログラミング等にも使いたかったのでi5にしました。(あと元々使ってたノートパソコンがi5だったので、あまり変えたくないな~と思いi5にしました。)

 

マザーボード

・友人から提案されたものの上位互換がキャンペーンで安くなっていたのでそちらにしました。説明書が初心者でもわかりやすい。

↓実際に購入したもの。

ASUSTeK Intel H270搭載 マザーボード LGA1151対応 H270-PRO 【ATX】

ASUSTeK Intel H270搭載 マザーボード LGA1151対応 H270-PRO 【ATX】

 

↓友人から提案されたもの

 

グラフィックボード

・こちらもキャンペーン期間で安くなってました。出力はDVI-DとHDMIとDisplayPortの3種類。モニターとHDMIでの接続なので一応注意して購入。ファンが2つついてるし赤いし強そうです(小並感)

MSI GeForce GTX 1050 Ti GAMING X 4G グラフィックスボード VD6190

MSI GeForce GTX 1050 Ti GAMING X 4G グラフィックスボード VD6190

 

 

SSD

・ここらへんはよくわからなかったので店員さんにおまかせ。そろそろHDDを購入してそちらにゲームのデータとか突っ込みたい。

 

メモリ

・8GB*2。実際は4GB*2でもよかったかもしれないですが将来性を見越してこちらに。

 

PCケース

・SDカードの差込口が上面に、USBは上面にも背面にもあります。3.0対応です。割とデカい。机に収まるやろと思ってたんですけど、ななめに置かないと置けないというね。採寸きちんとしてから店頭に向かいましょう!(戒め)

CoolerMaster ミドルタワーATXケース Silencio 452 (型番:SIL-452-KKN1-JP)

CoolerMaster ミドルタワーATXケース Silencio 452 (型番:SIL-452-KKN1-JP)

 

 

電源

・こちらも店員さんセレクション。説明書が一切入ってないので少し注意です。(それとも電源は全部説明書ついてないんですかね…?)

 

キーボード

・これだけヨドバシカメラで買いました。無線より有線のやつのほうが好みで配色も良いこれに決定。ここらへんは好みがかなり分かれると思うので店頭で見てみるのがいいと思います。

LOGICOOL ウォッシャブル キーボード K310

LOGICOOL ウォッシャブル キーボード K310

 

 

USB無線LAN子機

・一通り組み終わってからコイツの必要性に気づきました。調べたところ、マザーボードに無線通信機能が乗ってるやつもあったりするんですが最新機種のみ(つまり高額)で、普通のマザーボードは基本有線っぽいです。家の構造上、親機からPCまでは壁ありで約10メートルあるんですが、マインクラフトのマルチでもヌルヌル動きます。

 

 

次回、いつになるかわかりませんが、後編(組み立て編)をお送りします。

 

 

おまけ

以下はすでに購入済みだったやつです。

 

モニター

・ざらざらした感じのが苦手なのでグレア(光沢)タイプを選択。 ここも好みがかなり分かれるところなので店頭に出向くこと推奨です。

 

マウス

・これの青いバージョンです。有線のほうが好きで、なおかつクリック音が静か(講義中とかにも気兼ねなく使える)ということでこれにしていました。

 

DVDドライブ

・PCゲームのインストールとかに大活躍です。規格がUSB2.0ですがそんなに気になりません。内蔵のDVDドライブにしてもいいかもしれません。

 

以上です。おまけまで読んでくださってありがとうございます。

<(_ _*)>

【テニス】今年の全豪オープンの何がスゴいか語る

f:id:eiki1253:20170128183757j:plain

全豪オープン2017のいろんな試合見てたらテンション上がってきちゃったので、そのままのテンションで記事かいちゃいます。

これまでテニスに興味がなかったって人にためにも、なるべくわかりやすく解説していきたいと思うのでよろしくお願いします。

また、この記事は01/29の17:30までに読んでおくといいかもしれません。

 

 

全豪オープンとは

まずは、1/16~1/29まで開催されている全豪オープンについて。

 この大会はテニスの4大大会とよばれるトップ選手が集う大会のうちの一つであり、他には「全仏オープン」「全米オープン」「ウィンブルドン」の3つがあります。

ウィンブルドンといえば松岡修造さんの「この一球は絶対無二の一球なり!」という言葉が非常に印象的な大会で、資料映像とかで見たことある人も多いのではないでしょうか。)

話がそれましたが、この4大大会では5セットのうち3セットを先取で勝ちとなります。他の大会は基本3セットのうち2セットを先取で価値となるので、4大大会での選手の疲労は計り知れないです。

 

 

 錦織圭選手の活躍

 (本題とは少し離れますが)次に今大会の錦織圭選手の活躍について振り返ります。

世界ランク5位、第5シードとして今大会に出場しましたが、1回戦から苦戦を強いられることになります。相手はロシアのアンドレイ・クズネツォフ選手。もちろん錦織選手の方が格上ですが、第1セットを相手に選手され厳しい立ち上がりとなります。その後錦織選手が巻き返し、ファイナルセットまでもつれ込む激闘の末、錦織選手が勝利しました。

2回戦、3回戦では何度かサービスゲームを落としてしまったものの、結果としてセットは3-0と相手を圧倒し、世界ランク5位としての実力を見せつけました。

4回戦では世界ランク17位のロジャー・フェデラー選手(スイス)と対戦し、 第1セットを先取するものの逆転負けを喫してしまいます。

2回戦3回戦をかなり良い調子で勝ち上がっており、日本人初の4大大会での優勝も見えていたので、日本のテニスファンにとっては 少し残念な結果になってしまったのかなと思います。

(対戦相手のフェデラー選手がこの記事のメイントピックになるのですが、都合上記事の後半に持っていくことにします...)

 

 

番狂わせの連続

 さて、今大会では史上まれに見る番狂わせが起こりました。

 

1つ目の番狂わせは世界ランク2位のノバク・ジョコビッチ選手(セルビア)が、世界ランク116位のデニス・イストミン選手(ウズベキスタン)に2回戦で敗れたことです。

ジョコビッチ選手は前述の4大大会でこれまでに12回の優勝を飾っており、2014年7月から2016年11月まで122週連続の世界ランク1位だったかなりの実力者です。

このジョコビッチ選手が世界ランク100位以下の選手に敗れるのは、去年のオリンピックとこの試合の2回のみだったりします。

 

2つ目の番狂わせは世界ランク1位のアンディ・マレー選手(イギリス)が、世界ランク50位のミーシャ・ズべレフ選手(ドイツ)に敗戦したことです。

マレー選手はテニスのビッグ4と呼ばれる、テニス選手の中でも別格の実力を持っている4人のうちの1人であり、先ほどのジョコビッチ選手も含まれています。

ビッグ4とは呼ばれていたものの、他の3人が強すぎて世界ランク1位にはなれなかったマレー選手がとうとう2016年の11月にジョコビッチ選手を抜かし、初の世界ランク1位として臨む4大大会であり、かなり期待が高まっていたのですが相手のズべレフ選手のネットプレーがかなり光っていました。

 

 

”レジェンド”の復活

今回のメイントピックです。

世界ランク1位と2位がトーナメントから姿を消すなか、決勝に勝ち上がったのが2人のレジェンドです。

 

1人目のレジェンドは世界ランク9位の「ラファエル・ナダル」選手(スペイン)です。

ナダル選手は左利きのベースラインプレーヤーであり、その左手から繰り出される強烈なフォアハンドと、情熱の国スペインらしい熱いプレーが特徴の選手です。

ビッグ4のうちの一人であり、4大大会での優勝回数は14回と歴代2位であり、クレーコート(簡単に言えば土のコート)での勝率が歴代最高、クレーコートで81連勝など、クレーコートでの戦いを得意としており、「赤土の王者」とも呼ばれています。

昨年の10月から治療のために大会は全て欠場しておその影響か世界ランクは9位まで落ちました。今回の全豪オープングランドスラムの復帰戦となりました。

 

もう一人のレジェンドは4回戦で錦織選手を打ち負かしたロジャー・フェデラー選手です。

 フェデラー選手はもちろんビッグ4の1人んであり、世界ランク1位を237週連続でキープ(歴代1位)、4大大会17回優勝(歴代1位)、通算賞金獲得額歴代1位などなど、数々の大記録を打ち立ててきた人物です。

また、そのプレースタイルはテニスの基本に忠実であり、史上最高のテニスプレーヤーとも言われています。

しかし、去年の半ばからケガのため戦線を離れていたので、ナダルと同様に今回の全豪オープングランドスラムの復帰戦となりました。

 

この2人はともに30歳をこえており(フェデラー:35、ナダル:30)、ジョコビッチやマレーの台頭、ワウリンカやチリッチなど若手の躍進により、ここ数年グランドスラムでの優勝がなく、2人のレジェンドの時代は終わったとささやかれていました。

 

 

しかしレジェンドは数々の死闘を乗り越えて帰ってきました。この全豪オープンの決勝に。

この2人でのグランドスラムの決勝は実に6年ぶりであり、1人のテニスファンとして期待が高まります。

 

 

決勝は明日の17:30からですが、生放送はWOWOWのみとなります。

ハイライトはNHKで24:10から放送です。