fc2ブログ

多重人格

↓オモコロでライターやってます↓
 オモコロの記事一覧
↓【人気】3泊4日で180キロマラソンした話です。1日3000アクセス記録した人気記事↓
 「愛知県名古屋市 ~ 岐阜県白川郷バカマラソン」
↓小説の一覧は下記です↓
 ブログ投稿小説
 ノベラボ投稿小説一覧

サイトを移転しました

新しいサイトはこちらになります

Wordpressベースの下記に移転しました。テイストは変わらずなので、みなさん見てね!


サイトを移転しました。移転先はYhei Web Designテキストサイトです。 

Yhei Web Design テキストサイト


更新通知を受け取りたい方はこちら


follow us in feedly



このエントリーをはてなブックマークに追加
スポンサーサイト



名古屋ギターフェスティバル2017のサイトを作成いたしました

Y平です。むちゃくちゃ更新してませんでしたが、生きています。最近は超大手「富士通」様を退職し、小さなWeb制作会社でWebデザイナーとかやってます。守秘義務のため退職の経緯は何も言えませんが、ひとまず僕は二度と大企業に就職することはないでしょう。大企業キライ。まだ大企業で消耗してるの?


まあ好きでもない仕事をしてグダグダ社会人の7年を浪費しましたが、考えてみれば12年前も大学の講義をサボってこのブログを更新してたぐらいなので、Webサイト作りが今の仕事になってるのは必然なんだと思います。


ということでお仕事依頼も下記から募集してます。ちなみに会社のブログは僕が更新してます。3年ぐらい担当者が付いてなかったみたいで、デザインもSEOもコンテンツ内容も死亡気味で今大改修行ってます。大学生ブログ時代から見てるみんなは何も考えずひとまず仕事くれよな!


アールズ株式会社 (Y平が所属する会社)
Yhei Web Design (Y平個人お仕事サイト)

なぜ今更このサイトを更新しているのか

さて1年ぶりの更新ですがなぜいきなりサイトを更新しているのか? 当然のごとくWeb屋らしい打算があります。


というのも、この多重人格というサイト。2006年から更新を行っている経緯もあり、記事が700ぐらいあります。一時期はスマホがない時代に一日3000UUぐらいあったのでそれなりのサイトでした(懐かしのsinobiカウンター調べ)。ただ、コンテンツのほとんどは「うんこ」とか「ちんこ」とかそういう記事ばかりなので価値が皆無なんですが、700記事もあればたまにSEO的に当たっている記事があるらしい。2007年くらいに書いた詐欺脱毛クリームに騙された記事とかで未だに検索流入が結構あります。全く更新してないのに。


700記事書いてたらウンコみたいなサイトでも多少育つ。これがWebの面白いところ。ということで少しドメインパワーのある(あった?)本サイトから、クライアント様のサイトを紹介して被リンクに少しでも貢献しよう、というゲスい試みをしようと思います。このサイトからのリンクは果たしてプラスに働くのか否か(プラスにもマイナスにも働かないに60000点)。


コンサートイベントのサイトを製作しました

生田直基さんというプロのクラシックギター奏者の方が主催する「名古屋ギターフェスティバル」のサイトを作成いたしました。[Y平が作ったサイトを見る]

デザイン全体は下記のような感じ。

guitar-fes-nagoya.jpg 
ガチでしょ? 意外に冗談ではなくWebデザイナーやってます。ちなみに僕が2005年に作った大学のサークルのサイト「人形劇サークルどんぐり公式サイト」を見ると成長っぷりがよくわかります。

人形劇サークルどんぐりサイト 
この圧倒的テキストサイト感。俺は今でもこういうテイストのサイトは好きです。広告表示だらけでもはや訳わからなくなってるのも最高。meta descriptionの記載すらありません。ちなみにこのサイト、未だに稼働しているため、12年経った今でもまだ新人さんを募集してます。加えて言えば、人形劇サークルどんぐりは僕の代で消失しました。世知辛い。

ただね、どんぐりのサイト笑ってるやつ。お前のサイト、大丈夫か? このレベルの企業サイトは検索すれば続々出てきます。「うちのサイト、HTML4じゃね? え? ジオシティ?」みたいな方は随時僕に依頼をすれば良いんじゃないかと思います。それなりの値段でそれっぽくて人が集まるサイト作りますよ。

名古屋にあのGabriel Biancoがくる

兎にも角にもこんなテキストサイトみたいなのを作ってた僕が、ちゃんとフォトショ使ってWordpressを使ってサイトデザインできるようになったのは大変感慨深いです。なので、みなさんマジでサイト見に行ってくださいそしてチケット買ってくださいお願いします。今年は生田さんの謎のプロデュース力のおかげでガブリエルビアンコ(Gabriel Bianco)さんという、6つの国際コンクールで優勝した方も出演予定で、著名な海外勢がたくさん出演します。なんで名古屋でこのレベルの演奏が聴けるの? という感じなのでお誘い合わせの上、ぜひ。僕も行きます。札幌から。

ということで、9/2 宗次ホールでみなさんとお会いできることを楽しみにしています。ギターオフ会しようぜ!(古き良き、学生ブログノリ)



このエントリーをはてなブックマークに追加

Web APIサーバーをpython+falconで構築する

 Web APIが熱いらしい。Web APIとはhttp://hoge/dataみたいなURLにhttpのGETメソッドをやると、レスポンスでjsonデータを返してくれるようなやつ。TwitterのAPIでタイムラインを取得するようなやつはまさにこれを使っている。RESTなAPIというらしい。言葉はどうでもいい。

 んで、pythonで自分でWeb APIのサーバー立てて動作を確認したいなあと思ってやってみたら、驚くほど簡単にできたので実装メモ。Web APIを実現するにあたり、pythonのfalconというpackageを使った。どうぞpip install falconでインストールしてほしい。

 サーバー側のソースは下記。



ポイントとしては、

api.add_route('/vehicle/12345678', ItemsResource())

でデータを格納するURL(リソース)を決める。

その後、

httpd = simple_server.make_server('127.0.0.1', 8000, api)
httpd.serve_forever()

でそのリソースをhttp://127.0.0.1:8000の上で動作させてやる感じ。
こうするとhttp://127.0.0.1:8000/vehicle/12345678 にGETやらPOSTのメソッドを送ってやるといろいろ処理できる。

このサンプルではGETメソッドでサーバー上の変数itemsの値が取得できるようになっている。

def on_get(self, req, resp):
''' Handles GET requests '''
resp.body = json.dumps(self.items)

の部分でGETメソッドがされた時に、レスポンスのBodyにjsonデータを格納してクライアントに返す。

def on_put(self, req, resp):
print 'put'
body = req.stream.read()
data = json.loads(body)
print data
try :
self.items['Components']['GW'] = data['Components']['GW']
self.items['Components']['ECU1'] = data['Components']['ECU1']

の部分でPUTメソッドが来た時に、リクエストのBody(jsonが入る)を読んでそのjsonでitemsを更新してやる。

クライアント側の処理は下記。ポイントは後述する。



GETメソッドの場合は

h.request('GET', '/vehicle/12345678')

のようにやり、これのresponseをjsonで読み込むことでサーバー上のitemsと云う変数の値を取得できる。


PUTメソッドの場合は逆にサーバー上のitemsと云う変数を更新するために、同じ形式のjsonを

h.request('PUT', '/vehicle/12345678', json.dumps(data))

で第3引数にjsonデータを入れてやる。するとサーバーのon_putに通知が行き、

body = req.stream.read()

でサーバー側はjsonデータを読んで値を更新する。簡単だね。


ソースと使い方は下記に格納してあるのでご参考。

https://github.com/yheihei/python/tree/master/webapi



このエントリーをはてなブックマークに追加

7月30日 7年ぶりにあるチームに勝つ

 2−9で勝ち。

6番 ファースト
3打数 0安打 1四球 1盗塁 1打点
 捕飛
 三振
 四球
 捕飛

備考:1エラー

今シーズン成績
8打数 1安打 1打点 2盗塁 1四死球 0犠飛 打率.125 出塁率.222

 いつもリーグ戦で1位か2位にいる強豪チームに劇的勝利。先発、抑えと完璧に抑え、守備もなんと僕のエラー以外一つもなし。そして最近はいってきた人が人生初のヒットを打ち、それが決勝点になるという最高に気持ちのいい試合。しかもその強豪には少なくとも僕が入部した7年前から一度も勝っておらず、それが人数もギリ、主力メンバーもほとんど欠いた状態で勝ったのだから本当に野球は面白い。

 自分個人としてはバッティングはもうまるでダメ。打てる気がしない。2年ぐらいスランプにはまっている。だが今期初打点も記録。捕飛からのキャッチャーが飛び出していたファーストランナーに送球した間にサードランナーが隙を見てホームインするというトリックプレー。え? これ打点入るよね? まあ入らなくてもいいけど。

 守備は人生で2度目のファーストを守る。1エラーしたものの、その後守備機会満載、9つぐらいのアウトにからみかなり安定していた。サードやショートからの悪送球が3つぐらいあったがうまくさばいて取れたので以外にファースト向いてるのかもしれん。後盛大に突き指やらかして右手人差し指がどす黒く腫れている。心配。多分サウナ行けば治る。サウナで全ての悩みが解決するというヨッピーさん理論。よっしゃ、明日は銭湯のサウナで突き指を癒しつつ、休憩室でMacいじいじオモコロの仕事やる。

このエントリーをはてなブックマークに追加

ピアソン相関係数とk-means法を使って嗜好の似ている人を特定するプログラムをpythonでやりたい

 映画サイトとかでレビューってあるじゃない? あれのユーザーごとのレビューの評価データを集めて、自分と似てる人にオススメの映画紹介して欲しくない? それをpythonでやれたら素敵じゃない? という事でpythonでピアソン相関係数を用いて類似度を計算し、自分と似てる人を特定するというプログラムを作ってみた。

 やることの概要としては以下。

・レビューデータをベクトル化
・レビューデータのベクトルをk-means法でグループ分け(クラスタリング)
・誰と誰が似てるかをグループで明示

 例えば、人間とウサギにアンケートし、好きな食べ物を5段階評価でアンケートしてもらった。アンケートデータは以下。



 人間はハンバーグとか麻婆豆腐とかの好き嫌いを入れているのに対して、アイドルウサギのモキュ様などはペレットやチモシーなどの好みを入れている。人間が見れば、これがウサギだ、これが人間だと判断できるが、プログラムは判別できない。それを判断できるとかっこいい。

 まずはこのデータをベクトル化する。ベクトル化する関数は下記。



 testdataをこの関数に入れてやれば、「vectorData.csv」という形で保存される。エクセルで見ると人の名前とその人の食べ物の嗜好がテーブルになっているのがわかる。こんな感じ。小梅ちゃんがActiveEしか食べないのが心配される。



 このファイルから、以下の関数で名前のリスト(colNames)、食べ物のリスト(rowNames)、食べ物の評価値のリスト(data)を作る。



createVector()を実行した後でreadFile()を実行すれば良い。さっきのcsvファイルを元に各データがreturnされる。こんな感じ。


>>> colNames
['\xe3\x82\xa8\xe3\x83\xb3\xe3\x83\x8f\xe3\x83\xb3\xe3\x82\xb5\xe3\x83\xbc', '\xe3\x83\x9a\xe3\x83\xac\xe3\x83\x83\xe3\x83\x88', '\xe3\x83\x81\xe3\x83\xa2\xe3\x82\xb7\xe3\x83\xbc', '\xe3\x83\x93\xe3\x83\xbc\xe3\x83\xab', '\xe7\xb4\x8d\xe8\xb1\x86', 'ActiveE', '\xe9\xba\xbb\xe5\xa9\x86\xe8\xb1\x86\xe8\x85\x90', '\xe3\x83\x8f\xe3\x83\xb3\xe3\x83\x90\xe3\x83\xbc\xe3\x82\xb0']
>>>
>>>
>>> rowNames
['mocu', 'sota', 'yhei', 'chataro', 'koume', 'tanaka', 'karupati']
>>>
>>>
>>>
>>> data
[[2.0, 3.0, 2.0, 0.0, 0.0, 3.0, 0.0, 0.0], [5.0, 5.0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 4.0, 1.0, 0.0, 3.0, 5.0], [5.0, 4.0, 3.0, 0.0, 0.0, 5.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0], [0.0, 0.0, 0.0, 1.0, 5.0, 0.0, 5.0, 2.0], [0.0, 0.0, 0.0, 3.0, 1.0, 0.0, 2.0, 3.0]]



例えばdata[0]にモキュ様の食べ物の評価値のリスト([2.0, 3.0, 2.0, 0.0, 0.0, 3.0, 0.0, 0.0])が入る。このdataというリストが入ったリスト(ややこしい)を

>>> kclust, clusters = pearson.kcluster(data)

上記のようにk-means法でクラスタリングする関数、kcluster()に入れるとデフォルト二つのグループに分けてくれる。k-means法を簡単に示した例は下記。k-means法の理論はここが参考になる。k個の点をランダムな位置にとって、各ベクトルがどこに近いかでグループ化する手法である。

関数は下記。kの引数を変えることで何グループに分けるか指定できる。



kclustにグループ分けされたリストが出てくる。下記の感じ。


>>> kclust
[[0, 1, 3, 4], [2, 5, 6]]


1要素がグループを示しており、数字は誰かを示すid。id0はmocuさまを示す。rowNamesを使って、名前を特定できる。


[[0, 1, 3, 4], [2, 5, 6]]
>>> [rowNames[r] for r in kclust[0]]
['mocu', 'sota', 'chataro', 'koume']
>>> [rowNames[r] for r in kclust[1]]
['yhei', 'tanaka', 'karupati']


上記の通り、モキュ様そうた君、うちの茶太郎小梅ちゃんとウサギのグループを示すkclust[0]。
yhei、tanakaさん、karupati(俺のニコニコ動画のHN)さんが人間グループを示すkclust[1]のように、嗜好アンケートからグループ分けができた。今後、ウサギか人間のどちらかにアンケートを取った時に、どちらのグループに似ているかをみることにより、その人がウサギなのか人間なのか推測することができる。データが多ければ多いほど精度は高くなる。こう言う学習して精度が良くなっていく感じが機械学習の楽しいところ。

今回使ったpythonプログラムは下記の通り。一番下にReadMe的なものを書いてるので流用する場合はご参照をば。



このエントリーをはてなブックマークに追加

教えたURLを学習して覚えた知識で喋るようになるbotを作成する

 最近機械学習が熱い。会社の仕事が谷中の谷なので好き勝手自分の特許書いたり興味のあることなりを調べているのだが、ひょんなことから後輩にもらった集合値プログラミングの本を読んでたら感動した。



 amazonのオススメの商品を推薦するアルゴリズムを基本として、分かりやすく機械学習の手法が説明されている。僕のない頭でも実際にプログラミングしてコンピュータに学習させ、推薦の〇〇を出すことができた。予想以上にのめり込み、多分情報系の学部3年生ぐらいの知識は得ることができた。ということで目下、ホームページを見せるとその内容を学習し、それに基づいた思想で喋るTwitter bot作成中である。ざっくり書くと下記のようなロジック。

1.ホームページのURLを教えるとその中身をタグを排除した状態でHTMLで取得
2.取得したHTMLをyahoo apiで単語に分ける
3.単語とその単語が登場した数を記録してベクトル化
4.あらかじめフォローしておいた不特定多数のユーザーのタイムラインの文を一定の数だけ取得
5.取得した文をyahoo apiで単語に分ける
6.twitterユーザーごとに単語とその単語が登場した数を記録してベクトル化
7. 全てのユーザーのベクトル化が終わったら、それをクラスタ分析でクラスタ化
8. 3と一番近いクラスタの中のランダムなユーザーのつぶやきをコピペして呟く

1〜3を繰り返すことで、より呟く単語が似ているユーザーの呟きを選択するようになるので、例えばエロいURLばかり見せればエロいことを言うユーザーの呟きを採用するし、右翼的なURLばかり見せればそういうつぶやきをするようになると。プチAIである。本当は喋る文も自前で生成できればいいのだけれど、それが簡単にできればもっとAI簡単にできているのできっと難しいのであろう。ということでAIの入門編としてこれを2週間で作る。

このエントリーをはてなブックマークに追加

社内ニートと職務経歴書

 完全に仕事がなく、社内ニートになりつつある。こう、一緒に仕事してた先輩が課長などに会議室に呼ばれていろいろ話しているのを見ると、「え? 先輩には仕事があるのに俺にはない?」みたいな不安感に苛まれやばいです。あいつ、仕事もらったのか。。。! みたいなせめぎ合い。まあ多分そんなことは数日のことでいずれ無茶振りが飛んでくるのでそれまでべんきょべんきょでスタンバります。

 んで、日中は特許書いてた。機械学習系の特許でベクトルでいろいろ分析するやつ。レビューはあっさり通ったがこう言う学術系の特許はきちんと書かないと誰もわからないという理由でリジェクトされる場合が多い。そのためベクトルの基礎から例を交えて説明。ちゃんとわかる資料になったつもりだが、さらに上司に承認を得るにはもう少しハードルがある。おそらくベクトルとか25年ぶりとかそういう人たちにベクトルを説明せねばならないのだ。大変である。

 帰宅後は茶太郎の世話やら家事やら。あと転職用に職務経歴書などを書いていたが、なんか英語版もかけって言われててめんどい。日本語書いた時点で集中力が切れた。明日はこれを英語化する。なんか高校の時の英作文の宿題みたいでちょっと楽しいよね。英語好きなんだわ俺。

このエントリーをはてなブックマークに追加

コーディングテストに備える

 転職にいい案件があったので気になっているって前言ったと思うけど、コーディングテストがあるので不安視していた。コーディングテストって何やんのってエージェントに聞いたところ、C++の基礎的なところと伺っておりますとの回答。それは果たしてポインタが使えればいいのか、クラスが作れればいいのか、はたまたQtでUI出せればいいのか、野良ライブラリをググって使いこなせればいいのか。全然レベル感が違う。果たして地味に一番難しいのはポインタの扱いで、そんじょそこらのライブラリをなんとなく使ってはいるが、ポインタとか正直わからないっていう人結構いると思う。俺もその類だ。文句あるか。

 コーディングテストというのがどのレベルか判然としないため、一番苦手な基礎的なところを復習することに。ひとまずポインタといえばリスト構造でしょう。ということでリスト構造をC++で作り、挿入、参照、削除をする機能を実装する。が削除がうまく行かない。うんうん唸って、家に帰って笑ってこらえて見ながらひたすらコードとにらめっこしてああでもないこうでもない。めちゃめちゃ試行錯誤してひとまずできた。なんか関数の再帰呼び出しとかしてるけど。全然単純じゃないけど。これをコーディングテストで出したら失格かな? 簡単なことを複雑にしか書けない。これが俺のレベル。ひとまずポインタ云々はいろいろ復習できたのでエージェントに面談お願いって回答しよ。リスト構造をスクラッチで書く必要ないもの。ライブラリ使うわ。ようはメモリの確保や解放のタイミングがわかって、ライブラリがググって使いこなせればいいんだよハゲが。

このエントリーをはてなブックマークに追加

計画休養の使い方

 6月は働き過ぎた。常にできないプレッシャーに追われていたし、ずっとコーディングコーディングで疲れた。さぞかし残業時間もえらいことになってると思って確認してみたら14時間とか。14時間。あんなに疲れていたのに14時間。過去に月100時間やったことあるけどなんで平気だったのか。というか100時間も何やってたのか。

 というわけで残業時間は大したことなかったが非常に疲れたような気がしていたので今日は特に何もないけれども有給とった。何もなくても有給取れるのがウチの会社の数少ない良いところ。まあいつも会社をディスってはいるが、客観的に見れば、残業代は出る。ボーナスは出る。有給は好きにとって良い。これでいつも何を文句言っているのだろうか。おそらくいくら待遇良くしてもやってることに誇りを持てないと人は文句を言うのだろう。また文句を言った。バチあたり。

 9時ぐらいまで寝坊かまして予約していた歯医者へ。ずっと右下の歯が染みて痛かったので見てもらったところ詰め物が取れて染みていたということ。速攻で治して終わり。虫歯もなかった。次回は歯石とりするらしい。歯石とりするためだけにもう一回行くのもなんとなくアレです。

 帰りがけにスーパーに寄り晩飯の食材あさりなど。午後は夜まで銭湯でゆっくりしたかったので先に晩飯をつくっとく算段。どんな不器用でも美味しくできるシチューをチョイス。もう料理に謎のスパイスを入れたり、妙なオイルでかくし味をつけたり。無駄に高級な食材を使ったり。そういうの男の人ってすぐやるけどそういう段階ではなくなった。なのでジャガイモ、ニンジン、玉ねぎ、ベーコンとシンプルに買い込みドカンと帰宅。エロゲーのサントラをかけながらシチューを作り時刻は2時。これで晩飯を気にせず存分にゆっくりできる。

 もう一度外。修理したクロスバイクで中央区の警察署へ。免許の住所変更を1年以上してなかったので手続き。あー、住所変更しなきゃなー、やばいなー、ってずっと悩んでたんだけれどやってみたら一瞬で終わった。思い悩んでいたのが馬鹿らしい。いや、平日にいちいち警察署行くなんてねえ。面倒じゃない? ねえ。

 そのまま家にとんぼ返り、と思いきや家を通り過ぎて近所の銭湯へ。サウナ水風呂サウナ水風呂のコンボを繰り返しつつ、サウナのテレビで日ハム戦を見る。大谷キュンかっこいい。メンドーサは見ててハラハラする。好プレーが出るたびにサウナのオヤジたちとともに「アーーー!」とか「よっしゃーー!」みたいな歓声をあげながら楽しく観戦。幸せってこういうことかもなー、と炭酸銭に入りながらジンワリと。思う。

このエントリーをはてなブックマークに追加

詐欺の手法を会社で考える

 仕事。晴れて社内ニートになったので自分のやりたいことがやれた。セキュリティグループと言いつつ、受託作業で全くセキュリティ的なことをやれていなかったのでようやくセキュリティグループらしくなれる。部内向けの勉強会資料などを見つつ基礎的なことを勉強する。ハッシュ、MAC、共通鍵暗号方式や、公開鍵暗号方式、ディジタル署名にハイブリット暗号方式、認証局。もろセキュリティスペシャリストでやったやつじゃん。これ本当に使われてるんだと思うとちょっと感動する。

 いろいろ勉強しつつ合間に知識を定着させるために過去問を解いたり。面白い。ただの勉強。こんなんやってて給料もらうのボロい。まあ今は谷に入ってるだけでこれを使っていろいろ無理難題をふっかけられるのだろう。その時のために万全の理論武装をしておこう。

 んで、順調にセキュリティの勉強こなしてたら早くも資料を読み終わったので暇になった。暇ついでにセキュリティの勉強ということでネットを使った詐欺の手法を考えてみる。以前後輩が、ubuntuを使って他人のメールアドレスでメールを送るというようなことをやっていたのを思い出し、俺も試みてみる。ubuntuでpostfixを使うとやれそうな感じ。とりあえず自分のgmailに架空のアドレスからメールを送ることができた。これを例えば僕のメールアドレスで偽装して、妻に「通帳の暗証番号忘れちゃった。番号教えて」などと偽装メールを送ることができれば立派なソーシャルエンジニアリングの完成である。ただそんなことをやったらIP取られた場合に足がつくので、海外のプロキシサーバーを通したりしてみたいなことを考えてたらめっちゃ楽しかったので、俺、やっぱこの仕事向いてるんだと思います。手法まとめてブログに書きたいと思います。

このエントリーをはてなブックマークに追加