キンサクプログラマー

お金儲けと技術のメモ

変わらない事、変わった事、変わる事、since2007

そろそろ20代も終わりを迎えようとしているので、ここ10年間をふと振り返った。
僕が大学入学したのは2006年、その後大学院に入って、就職して5年たち友人の半数ほどが結婚していった。
が、しかし、自分の生活を取り巻くものは大きく変わっていない事に気づく。

10年前にあったもの

10年前と言うとはるか昔にも感じるが、人々の生活は対してかわっていない。
僕がつかっている、サービスや製品は10年前も変わらずに存在していた気がする。
テクノロジーも世の中も進歩してないんじゃね!?

インターネット業界

youtube

2005年からあったし、2007年と現在でそんなに大きな差は感じない。最初の方は広告がなかったから、ユーチューバーみたいな人はまだいなかったきがする。

ニコニコ動画

あった。生放送はなかったが、テニプリの字幕なんかが初期は流行っていた記憶がある。その後、ゲーム実況という一大ジャンルが気づきあげられ、hacchi、しんすけといった人気実況者が続々と現れ、ニコニコを大幅に成長させた。
www.nicovideo.jp

初音ミク

今年で10周年らしい。
ボーカロイドとか最初に考えた人すげぇな。
www.youtube.com

Google

既に君臨していた。
Google自体は1998年設立らしいので当たり前か。Google earthとかももうちょい前からあったようだ。Google earthでみた実家周辺の地図は当時、超感動した。

2ch

今と変わらず。
2ch自体は検索エンジン登場の少し後という認識があるので、2007年にあるのは当たり前か。

価格.com

あった。高校生のころに、おやじが価格.comで調べてきた店にvaioを買いに行ったのを覚えている。
一円でも安くの精神なのか、実家からは遠い秋葉原まで家族で買いに行ったのだが、2年ほどで壊れてしまった。おやじがネットゲームをやりすぎたらしい。

ヤフオク

メルカリがない分今より盛り上がってたかもしれない。
友達にオークションでユニフォームを落としてもらったのは良い思い出だ。

mixi

2006年に友達の招待制でスタートしてからは、SNSとして超人気だった。僕もはじめは熱心にやっていたのだが、友達がどんどんポエマーになっていくのに耐えきれずにやめた。当時はfacebookが日本で認知されていなかったので、一強状態。なぜこの市場をfacebookが覆せたのかは謎だ。

twitter

wikipediaによると設立自体は2006年らしい。2007年に僕が使っていたかは怪しいが、2008年には使っていた。
「個人のつぶやきなんて、人にお知らせしてどうすんだよ」とか思っていたが、使ってみると意外と楽しかった。
しかし、2009年ごろにはフォロワーのツイートがうざくなり、一人、また一人と切って行くうちにやめてしまった。

Skype

一応あったが、僕が使い始めたのは2008年からだった。
すごいよねSkype。無料でテレビ電話までできちゃうんだよ。

ゲーム・ハードウェア

iPhone

ちょうど初代が2007年らしい。当時は「だせぇ!ボタンがないじゃないか。これは流行らない」とかみんな言っていた。
2年後には猫も杓子も状態だったのを覚えている。まさにスマートフォンを定義づけた製品だ。

PlayStation

3の発売がなんと2006年らしい。僕が買ったのは2012年だから、発売して6年も経過しているので、なんとなく損した気分だ。「物売るってレベルじゃねーぞ!!」はニュースを見ていて爆笑してしまった。彼は今も元気にゲームをやっているだろうか。
www.youtube.com

ポケモン

このころはダイヤモンド・パールだった。友達と一緒に久しぶりにポケモンをやったが、裏技を使いまくってダークライシェイミィを手に入れた挙句、バグって積んだ。ポケモンのバグの多さは折り紙つきだ。

ファイナルファンタジー

12の発売が2006年らしい。
ここら辺までは淡々と開発してきたが、13、14、15とインターネットゲームを挟んだことで、開発サイクルが長くなりがちな気もする。というか、13−2とかその他のスピンオフを出し過ぎな印象が強い。

ドラクエ

8が2004年、9が2009年。開発工数かけすぎ〜。スマホゲームみたいに課金しているわけでもないのに、この開発工数は利益率が悪い。

ネットゲーム(Master of epic

超個人的な話だが、僕は当時(と言うか高校生のころから)ネットゲームをやっていた。そのゲームは今もまだサービスが続いているらしい。すげぇ。最古参のプレイヤーは10年以上もあの世界にいるのだろうか。
http://moepic.com/beginners.html
www.youtube.com

このゲームは当時としては超画期的で、本当にいろいろなことができた。1対1の対人、多対多の戦争、木材や鉱石から防具、武器を作成したり、料理したり、商店を開いたり、モンスターを仲間にしたり、RMTしてる奴がいたり、家を買えたり
、今となっては普通かもしれないが、自由度が高かった。

芸能界

AKB

すでにメジャーデビューしていたみたいだ。
秋葉原の劇場から日本で一番CDを売りあげるようになるとか、夢あるね。初の武道館とか泣いちゃうね。ファンじゃないけど。

映画

映画のランキングサイトをみていたら気になることがあった。
nendai-ryuukou.com
洋画のランキングに目を通してみると、今現在やっているようなシリーズものが目につく。(パイレーツオブカリビアントランスフォーマースパイダーマンバイオハザードなど)。シリーズ物といえど変わらなすぎだろ。特にスパイダーマン、お前はダメだ。なんかい1やるんだ。

アニメ

電脳コイル

電脳コイル Blu-ray Disc Box

電脳コイル Blu-ray Disc Box

最近再びARが注目されているようだが、アニメにおける先駆けとしては電脳コイルだろう。
ヘッドマウントディスプレイ自体はかなり前から開発されているが、電脳コイルに登場するような形で広く普及していないのが現実だ。MicrosoftのholoLensはホリエモンや落合陽一氏が使っているのをテレビで見たが、ちょっとでかすぎて流行りそうにない。
www.microsoft.com

らき☆すたコードギアスガンダム00

らきすたも10年前とは・・・。おっさん泣いちゃう。

実家

お前の実家なんか知らんがな、と言われそうだがご愛嬌。

一体型PC

前に実家に帰った時に、PCが変わっていた。
一体型のFMVから一体型のLavieに・・・。別にスペースに困ってるわけじゃないのに一体型にすんなよ・・・。前にディスプレイが壊れて修理に出した時困ったじゃんかよ・・・。

10年前になかったもの

本当に少ない気がするので、まとめちゃう。

LINE

広まったのは、2011年みたいだ。
おそらくその前はメールかSkypeで連絡を取っていたのかもしれないが、LINEがなかった生活を思い出せない。
大きな変化だ。

スマホゲーム

スマホゲームが盛り上がるのは2010年以降だ。
これほどまで盛り上がるとは予想

ユーチューバー

youtubeはあったが、動画投稿を生業としてこれほどまでに稼いでいる人たちはいなかったはずだ。
いまや、子供のなりたい職業にランクインしてしまうほどなので、小さい子供を持つ親の天敵だろう。

これからの10年

これからの10年は激動の10年になるんじゃないかと期待している。

IPS細胞

世に登場したのが2006年。
この10年間で多くの成果を上げ続けている。

  • 難病 
  • 若返り
  • ハゲ
  • ガン

特に若返りはすごい。不老の時代がすぐそこまできている。
gigazine.net
もしかしたら、10年後は老衰で死ぬ人はいなくなるかもしれない。

自動運転

レベルに寄っては既に実現している自動運転。
法整備が騒がれてはいるが、日本みたいな超複雑な道でも運転可能なのか気になる。
完全自動運転が実現したら、世の中は大きく変わる。

  • バス、タクシーの運転手がいらなくなる
  • 宅配のドライバーも削減できる
  • 車で飲み屋にいける(法律による)
  • 渋滞がなくなる(運転が最適化される・ヒューマンエラーの事故が0になる)
  • 職場まで寝れる
電子マネー・仮想通貨

多くの店舗で電子マネーの利用が可能だが、日本ではまだまだ紙幣を持っている人が多い。一方で、中国では電子化が進んでおり、緊急時のための紙幣をわずかに持っているだけらしい。電子マネーの利用が加速していくと、レジ対応が効率化されるが、レジ係の仕事がなくなるよなぁ

最後に

この10年では変化を感じなかったが、次の10年はとんでもなく変わっているかもしれない。
次の10年、20年を見据えて仕事を変えるべきか、個人的には悩みどころだ。

毎日アルゴリズム(第2日目)ユークリッドの互除法

ユークリッドの互除法

他のアルゴリズムをやろうとしたが間に合わず急遽変更。
高校生レベルのユークリッドの互除法で満足しとく。

概要

二つの数字の最大公約数を高速に求めるアルゴリズム
通常であれば素因数分解などで求めるが、こちらの方が早いらしい。

アルゴリズム

  • 二つの数字をa,bとおく
  • a,bの最大公約数をGとする
  • a=An,b=Bnとなる
  • a=bx+qとも表せる
  • 上の式を代入するとAn=Bnx+q
  • 移行してゴニョるとq=n(A-Bx)
  • なんと、aをbで割った時のあまりqも実は最大公約nで割れる

これだけ

ソース

github.com

毎日アルゴリズム(第1日目)エラトステネスの篩

暇なので毎日アルゴリズムを勉強することにした。1日で終了しないことを目標に頑張ろうと思う。
いつか、ホットエントリーにのるその日まで・・・

エラトステネスの篩

エラトステネスの篩とは素数を見つけるアルゴリズムN以下の素数を全部みつけることができる
第1日目にふさわしくとっても簡単。

アルゴリズム

  • 2〜Nまでの配列を準備
  • 2の倍数を消す
  • 3の倍数を消す
  • 4のば・・・ 4は消えているね〜
  • 5の倍数を消す
  • Nの平方根までやって、残ったのが素数

平方根までしか計算しなくて良い点が、計算時間削減の肝。
プッチ神父もびっくり

コード

Pythonを勉強しているので、Pythonで書いてみた。
github.com

PythonのOpenCVで顔検出

顔認識ができない。
anacondaインストー
pythonインストールを行った後に、以下を実行すると・・・

import os
import cv2
import numpy as np
from matplotlib import pyplot as plt
%matplotlib inline

def facedetect(file):
    face_cascade = cv2.CascadeClassifier('cascadeファイルのパス/haarcascade_frontalface_default.xml')
    img = cv2.imread(file)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for (x, y, w, h) in faces:
        cv2.rectangle(img, (x,y), (x+w, y+h), (255,0,0), 2)
    plt.imshow( cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    plt.show()

if __name__ == '__main__':
    lenna = "ri947_a.jpg"
    if os.path.exists(lenna):
        facedetect(lenna)

これが出る・・・・

error: /Users/travis/build/skvark/opencv-python/opencv/modules/objdetect/src/cascadedetect.cpp:1681: error: (-215) !empty() in function detectMultiScale

ぐぐってみると、ちらほら同じ問題を見かけるが、パスがおかしいくらいの指摘しかない。
パスは合っている・・・と思いきや、スペースが頭に入ってた。 アホすぎる。
できた。わーい。
f:id:pikurusux:20170614232021p:plain

ちなみに、
detectMultiScale(gray, 1.3, 5)の第三引数minNeighborsは変えないと、小さい顔画像を検出してくれません。

Cプログラマが直面したPythonの不自然さ

Pythonを書いたり読んだりしていると、慣れない用語や言語機能がバンバン出てくるので、勉強したこととしてまとめておきたい。

ジェネレータ

説明しずらいが、イテレータの一種で呼び出されるごとに生成されるってことらしい。
*ネットに転がっているサンプルソースにnext()を使っているものが多数あるが、これはpython2.*系の名前なので、3系の実行環境だと動かない。
2系と3系で互換とれてないのは致命的だよなぁ・・・

def fruits():
    yield "apple"
    yield "orange"
    yield "melon"

print(list(fruits()))#["apple","orange","melon]
fruits().__next__()#でもコールすることができる

デコレータ

説明が難しい上に理解できているか怪しいが、ラッパーを簡単にかける。

def cake(func):
    func()
    print("cake")

@cake
def melonCake():
    print("melon")
#melonCake = cake(melonCake) @cakeってやるとこの記述と同じ意味になるので、定義だけじゃなくて実行もされる

結果

melon
cake

初めは理解できないけどなれれば・・・  いや、初めから納得できない仕様はクソだな。

@Property

メンバー変数のセッター省略できるってことか?よくわからん!

class A():
    def __init__(self):
        self.x=0
    def getx(self):
        return self.x

a = A()
print(a.getx())
a.x = 5
print(a.getx())
print(a.x)

クロージャ

コールされたネームスペースにある変数を参照可能な関数内関数。らしい。

def  calc(start=0):
	num = start
	def closure():
		nonlocal num	# 外側の変数を参照
		num += 1
		return num

	return closure		# クロージャを返す

def main():
	func = calc(5)
	print(func())
	print(func())
	print(func())
	print(func())
	print(func())

main()

結果

6
7
8
9
10

C言語でいう静的なローカル変数のような感じかな。
ただ、静的なローカル変数使いたいだけなのに、わざわざ関数内に関数を宣言してわちゃわちゃやる意味はよくわからない。

感想

調べれば調べるほどよくわからない機能が出てくる。
これ自然に理解できるもんなのかな、すんなり理解ができない仕様だと思うんだけど。

TL;DRって何業界の標準なのよ

f:id:pikurusux:20170523011452p:plain
Qiitaエントリーでよく見かけるTL;DR。なにこれ。

Too Long; Didn't Readの略らしい

長すぎて読めるかボケ。てことか。
2chで「長い3行」とか書かれるのと同じ感覚で英語圏ネットスラングらしい。

ただし、真面目なプレゼンやら学問的なサイトでもちらほら見受けられる。
この記事で言うと、「いまから話すこと、要はこう言うこと」みたいなニュアンスが正しそうだ。
qiita.com

みんなも明日から使ってみよう。
*役所とか古い体質の会社のプレゼン資料で"TL;DR"とかやると、嫌われること間違いなし!理解ある会社でやること。

まとめライター激震! 無断転載は当たり前だけど訴えられるよ

NAVERまとめに写真を無断転載されたカメラマンの人が、まとめライターから賠償を勝ち取ったらしい。
www.photo-yatra.tokyo

もともと、記事をパクったとしても親告罪だから、怒られるまでパクリ続けるのがまとめサービスのモットー
「まぁ、パクっても訴えられないっしょ。怒られたら消せばいいし」とか余裕ぶっこいてると訴えられて、
賠償金を支払わされることが証明された。これはなかなかでかい。

パクリでしか成り立たないサービス

まとめ記事なんてパクリ内容でしか成り立っていないのが現実だ。
今後、賠償請求の流れが加速していくとNAVERまとめが成り立たなくなるのも時間の問題だ。

とりあえず

何はともあれ、僕は訴えられる前にNAVERまとめのアカウントを削除した。