2018年8月11日土曜日

【ピコゲー】Processing P3D の練習 その1

動く床と回るキューブ、
ProcessingのP3Dレンダーの練習作です。
超力技。
(´Д`)

https://youtu.be/JI1YM9MuXVA


float x,z;
static float dx = 4;
static float dz = 4;
static float DEST = -25000;

void setup() {
  size(400, 400, P3D);
  
  textSize(16);
  
  x = width/2;
  z =   -200;
}

void draw() {
  background(0);

  if (keyPressed) {
    if (keyCode == UP) {
      z -= dz;
    }
    if (keyCode == DOWN) {
      z += dz;
    }
    if (keyCode == LEFT) {
      x -= dx;
    }
    if (keyCode == RIGHT) {
      x += dx;
    }
    
    if (key == 'r') {
      x = width/2;
      z = -200;
    }
  }

  pushMatrix();

  camera(x, height/2, 200, width/2, height/2, z, 0, 1, 0);
  // noSmooth();

  // 空間を表現する地表面の線を引く
  stroke(0, 255, 0);
  line(0, height, 100, 0, height, DEST);
  line(width/4, height, 100, width/4, height, DEST);
  line(width/2, height, 100, width/2, height, DEST);
  line(width/4*3, height, 100, width/4*3, height, DEST);
  line(width, height, 100, width, height, DEST);
  for (int cnt=0; cnt>=DEST; cnt-=100) {
    line(0, height, cnt+(frameCount%100), width, height, cnt+(frameCount%100));
  }
  
  // 白Cube
  stroke(200);
  fill(255);
  translate( width/2, height/2, z);
  lights();
  rotateY(radians(frameCount%360));
  box(150, 150, 150);

  // 白Cubeの影(ちゃんとレンダリングしてるわけではない、なんちゃって影)
  noStroke();
  rectMode(CENTER);
  fill(128,128,128,220);
  translate( 0, height/2-1, 0);
  rotateX(PI/2);
  rect(0, 0, 150, 150);

  // 情報表示
  popMatrix();
  text("FRAME RATE(sec/frame): "+frameRate, 0, 16);
  text("x = "+x, 0, 32);
  text("z = "+z, 0, 48);
  //println(frameRate);
}

2018年2月1日木曜日

【横浜Fマリノス】2018年試合日程(2/1現在)

2018年度の試合日程、CSVファイルを置いておく。
Googleカレンダーにでも取り込んでください。
Subject,Start Date,Start Time,End Date,End Time,All Day Event,Location,Private
J1 第1節 セレッソ大阪 (A),2018/2/25,16:00,2018/2/25,18:00,False,ヤンマー,True
J1 第2節 柏レイソル (A),2018/3/2,19:30,2018/3/2,21:30,False,三協F柏,True
ルヴァンカップ グループステージ第1節 FC東京 (H),2018/3/7,19:30,2018/3/7,21:30,False,ニッパツ,True
J1 第3節 サガン鳥栖 (H),2018/3/10,13:00,2018/3/10,15:00,False,ニッパツ,True
ルヴァンカップ グループステージ第2節 ベガルタ仙台 (H),2018/3/14,19:30,2018/3/14,21:30,False,ニッパツ,True
J1 第4節 浦和レッズ (A),2018/3/18,16:00,2018/3/18,18:00,False,埼玉,True
J1 第5節 清水エスパルス (A),2018/3/31,14:00,2018/3/31,16:00,False,アイスタ,True
ルヴァンカップ グループステージ第3節 アルビレックス新潟 (A),2018/4/4,19:00,2018/4/4,21:00,False,デンカS,True
J1 第6節 川崎フロンターレ (H),2018/4/8,16:00,2018/4/8,18:00,False,日産ス,True
J1 第7節 サンフレッチェ広島 (A),2018/4/11,19:00,2018/4/11,21:00,False,Eスタ,True
J1 第8節 ヴィッセル神戸 (H),2018/4/15,14:00,2018/4/15,16:00,False,日産ス,True
ルヴァンカップ グループステージ第4節 FC東京 (A),2018/4/18,19:00,2018/4/18,21:00,False,味スタ,True
J1 第9節 湘南ベルマーレ (H),2018/4/21,16:00,2018/4/21,18:00,False,日産ス,True
J1 第10節 北海道コンサドーレ札幌 (A),2018/4/25,19:00,2018/4/25,21:00,False,札幌厚別,True
J1 第11節 鹿島アントラーズ (H),2018/4/28,19:00,2018/4/28,21:00,False,日産ス,True
J1 第12節 ジュビロ磐田 (H),2018/5/2,19:00,2018/5/2,21:00,False,日産ス,True
J1 第13節 名古屋グランパス (A),2018/5/5,19:00,2018/5/5,21:00,False,豊田ス,True
ルヴァンカップ グループステージ第5節 ベガルタ仙台 (A),2018/5/9,19:00,2018/5/9,21:00,False,ユアスタ,True
J1 第14節 ガンバ大阪 (H),2018/5/12,19:00,2018/5/12,21:00,False,日産ス,True
ルヴァンカップ グループステージ第6節 アルビレックス新潟 (H),2018/5/16,19:00,2018/5/16,21:00,False,ニッパツ,True
J1 第15節 V・ファーレン長崎 (H),2018/5/19,14:00,2018/5/19,16:00,False,日産ス,True
J1 第16節 ベガルタ仙台 (A),2018/7/18,19:00,2018/7/18,21:00,False,ユアスタ,True
J1 第17節 FC東京 (A),2018/7/22,19:00,2018/7/22,21:00,False,味スタ,True
J1 第18節 清水エスパルス (H),2018/7/28,18:00,2018/7/28,20:00,False,日産ス,True
J1 第19節 サンフレッチェ広島 (H),2018/8/1,19:30,2018/8/1,21:30,False,ニッパツ,True
J1 第20節 川崎フロンターレ (A),2018/8/5,19:00,2018/8/5,21:00,False,等々力,True
J1 第21節 湘南ベルマーレ (A),2018/8/11,19:00,2018/8/11,21:00,False,BMWス,True
J1 第22節 名古屋グランパス (H),2018/8/15,19:30,2018/8/15,21:30,False,日産ス,True
J1 第23節 鹿島アントラーズ (A),2018/8/19,18:30,2018/8/19,20:30,False,カシマ,True
J1 第24節 ヴィッセル神戸 (A),2018/8/26,18:00,2018/8/26,20:00,False,ノエスタ,True
J1 第25節 柏レイソル (H),2018/9/1,00:00,2018/9/1,00:00,True,日産ス,True
J1 第26節 浦和レッズ (H),2018/9/15,00:00,2018/9/15,00:00,True,日産ス,True
J1 第27節 ジュビロ磐田 (A),2018/9/22,00:00,2018/9/22,00:00,True,ヤマハ,True
J1 第28節 ベガルタ仙台 (H),2018/9/29,00:00,2018/9/29,00:00,True,ニッパツ,True
J1 第29節 北海道コンサドーレ札幌 (H),2018/10/5,00:00,2018/10/5,00:00,True,日産ス,True
J1 第30節 ガンバ大阪 (A),2018/10/20,00:00,2018/10/20,00:00,True,吹田S,True
J1 第31節 FC東京 (H),2018/11/3,00:00,2018/11/3,00:00,True,日産ス,True
J1 第32節 V・ファーレン長崎 (A),2018/11/10,00:00,2018/11/10,00:00,True,トラスタ,True
J1 第33節 サガン鳥栖 (A),2018/11/24,00:00,2018/11/24,00:00,True,ベアスタ,True
J1 第34節 セレッソ大阪 (H),2018/12/1,00:00,2018/12/1,00:00,True,日産ス,True
 

2017年6月10日土曜日

【本】多動力 堀江貴文

多動力 堀江貴文

多動力をキーワードにした、ホリエモン氏の啓発本。
特に目新しい発言はないらしいけど、ホリエモンの本初めてのワシには関係ないし。
あと、インタビューを編集者が文におこして本にしたもの。
なのでホリエモンの文才云々は関係ないです。
読んだら直ぐに売り飛ばそうと思ってたので、紙の本を購入。

なんか、紙の本を買うのは贅沢な感じがするね、最近は。

で、中身。
字がでかい。老眼がきつくなった身にはよかったけど。
通勤1.25往復で読み切れるぐらいの分量です。

アルファリーダーたるホリエモンの行動原理が、そのまま万人に当てはまるわけでもなく
このまま鵜呑みにして実践する!とかバカな事は言わなければ読み物としてはとても面白かった。いい気分になったし。


  • ワクワクするやりたいことだけやりなさい
    寝たいだけ寝るべきだ
    おおっ、なんか水木しげる先生と同じこと言ってる (´Д`)
  • 原液を垂れ流すべきだ
    それを薄めて生きていく人が必要なわけで、そういう人たちは?
    ま、言わんとしてるところはよく分かるよね
  • 電話してくるやつは悪だ
    ワシもそう思う (´Д`)
  • 飽きっぽいのは利点だ、多動力の源泉だ
    おおっ、ゼルダを最後までやりきれないぐらい飽きっぽいワシも?
  • 現代の時間の進み方を見誤っちゃいかん
    寿司屋の長い長い修業は、情報化社会の現代ではまるで意味がない
    なんとなく、ワシも最近はそう思う。社会人なりたてのころもそう思ってたなあ…。
    寿司職人じゃねぇんだから、プログラマやるのに下積み期間ってなんなのさ?とかね。(´Д`)
  • とにかく働け
    締めの文句。ワロタ。けど、納得した。
よーし、おじちゃんも多動力を発揮して、やりたいこと速攻でやるよー (´Д`)
直ぐに感化されんだよね、すぐ飽きるだろうけど。

おもろかったので、売り飛ばさずに手元に置いときます。
あと、推薦されてた「サピエンス全史」を買った。まんまとはめられてる感じだね(´Д`)

2017年5月26日金曜日

【Python】PATHを一覧表示する

ipythonを使って、PATHを一覧表示する。
In [34]: hoge = !echo $PATH

In [35]: hoge[0].split(':')
Out[35]: 
['/Users/Ishinaga/anaconda/bin',
 '/usr/local/Cellar/pyenv-virtualenv/20160202/shims',
 '/usr/local/Cellar/pyenv/20160726/libexec',
 '/Users/Ishinaga/.pyenv/shims',
 '/Users/Ishinaga/.pyenv/bin',
 '/usr/local/bin',
 '/Users/Ishinaga/.rbenv/shims',
 '/Applications/apache-ant-1.9.4/bin',
 '/Applications/android-ndk-r9d',
 '/Applications/cocos2d-x-3.4/templates',
 '/Applications/adt-bundle-mac-x86_64-20140321/sdk/tools',
 '/Applications/adt-bundle-mac-x86_64-20140321/sdk/platform-tools',
 '/Applications/adt-bundle-mac-x86_64-20140321/sdk',
 '/Applications/cocos2d-x-3.4/tools/cocos2d-console/bin',
 '/usr/local/bin',
 '/usr/bin',
 '/bin',
 '/usr/sbin',
 '/sbin',
 '/opt/X11/bin',
 '/Users/Ishinaga/ImageMagick-6.7.5/bin',
 '/Applications/adt-bundle-mac-x86_64-20140321/sdk/platform-tools',
 '/Applications/adt-bundle-mac-x86_64-20140321/sdk/tools',
 '/Applications/android-ndk-r9d']

In [36]: 

コロン区切りの文字列をsplitで分割しただけだがね。連結されてると醜いので。
!でコマンドを実行できるけど、これはipython上だけなので注意。
!の結果は IPython.utils. text.SList のオブジェクトで、[0]してやるとtextになる、みたい。

2017年5月14日日曜日

【電算機】2017年度 横浜Fマリノス 試合日程 を自動取得

年明けぐらいから、ちょこちょこやっていた、試合日程の自動取得がやっとできた (´Д`)
もう、いまさら、って時期だけども。
python (with Beautiful Soap 4)でFマリノスのHPをクロール・スクレイピング、
試合日程をCSVファイルに吐き出して、
Googleカレンダーに読み込みます。

CSVの 読み込み時の注意としては、
・カレンダー種類が選べる様になっているので、ちゃんと選べ
・日時が同じだと上書きになる模様  時間が違うと別の予定(追加)になる模様
・日程・時刻が未定のやつは、とりあえず登録したけど、
 確定してから登録し直す必要あり。
 予定を消せないのでちょっとメンドい。
 ので、とりあえず testカレンダーに取り込んでおいた。
 ★CSVだと、既存予定を削除したりできない。
 ical形式だとイケるのかなぁ…。
 時刻未定のとか、後で上書き更新したいじゃん。(´・ε・`)

※ 以下のコード表示は、syntac2html にて作成。便利。いいね。
 インラインCSSにしておけば、BloggerのHTML編集でコピペできるんだぜー

import urllib.request
from bs4 import BeautifulSoup
import csv
import codecs
from datetime import datetime as dt
from datetime import timedelta


html = urllib.request.urlopen('http://www.f-marinos.com/schedule/match/allMatch/2017')
print('fm get status: ',html.status)

soup = BeautifulSoup(html, 'html.parser')

# 日程表(match schedule)を取得(Tagにしておく)
matchSchedule = (soup.findAll('table', class_='matchSchedule'))[0]

# カテゴリ
category = matchSchedule.findAll('td', class_='category')
# マッチナンバー
matchNum = matchSchedule.findAll('td', class_='matchNumber')
# チーム
team = matchSchedule.findAll('td', class_='team')
# 日時(開催日、キックオフ時間)
date = matchSchedule.findAll('td', class_='date')
# 開催地(ステジアム、ホーム/アウェイ)
stadium = matchSchedule.findAll('td', class_='stadium')

# 一覧表示してみる
for (c,m,d,t,s) in zip(category,matchNum,date,team,stadium):
    wd = d.findAll('p')
    ws = d.findAll('p')
    print(c.text.strip(),
            m.text.strip(),
            wd[0].text.strip(),
            wd[1].text.strip(),
            t.text.strip(),
            ws[0].text.strip(),
            ws[1].text.strip())


print('CSV出力するよ')

with codecs.open('./fm_schedule.csv', 'w', encoding='utf-8') as f:
    header = [
        'Subject',
        'Start Date',
        'Start Time',
        'End Date',
        'End Time',
        'All Day Event',
        'Location',
        'Private'
    ]

    writer = csv.DictWriter(f, fieldnames=header)
    writer.writeheader()

    for (c, m, d, t, s) in zip(category, matchNum, date, team, stadium):

        wd = d.find_all('p')
        ws = s.find_all('p')

        # カテゴリー+節+相手チーム+(H/A)
        # ToDo:”明治安田”を削除する
        sj = c.text.strip() + ' ' + m.text.strip() + ' ' + t.text.strip() + ' '
        # "明治安田J1"を"J1"に短くするよ
        sj = sj.replace("明治安田", "")
        # ホーム・アウェイ情報を試合名称のお尻に付与する
        if ws[0].text.strip() in 'HOME':
            sj += '(H)'
        else:
            sj += '(A)'

        # ゲーム開催日時
        w_day = '2017/' + (wd[0].text.strip())[:-3]
        w_time = wd[1].text.strip()

        # 5/10〜5/11みたいな書き方になっている場合は、5/10にしてしまう
        if w_day in '〜': w_day = (w_day.split('('))[0]

        # 開始時刻が未定ならば、All Day Eventとする
        if w_time in '未定':
            ade = 'True'
            w_time = '00:00'    # 仮時刻
        else:
            ade = 'False'

        # 日時をdatetimeオブジェクトに変換、様式がダメならスキップする
        try:
            w_start = dt.strptime(w_day+' '+w_time, '%Y/%m/%d %H:%M')
            if ade == 'False':
                w_end = w_start + timedelta(minutes=120)
                w_start_time = w_start.strftime('%H:%M')
                w_end_time = w_end.strftime('%H:%M')
            else:
                w_start_time = '00:00'
                w_end_time = '00:00'
        except ValueError:
            print('ERROR: '+sj+':'+w_day)
            continue

        # 一行書き込み
        writer.writerow(
        {
            'Subject': sj,
            'Start Date': w_day,
            'Start Time': w_start_time,
            'End Date': w_day,
            'End Time': w_end_time,
            'All Day Event': ade,
            'Location': ws[1].text.strip(),
            'Private': 'True'
        }
        )

2017年5月13日土曜日

【生活】ブログ再開?

ブログを再開しようかな。
数年後で読み返すとおもしろいんだよねー。
あと、いろいろとすぐに忘れちゃうしねー。

2012年10月8日月曜日

【横浜Fマリノス】J1 第28節 サンフレッチェ広島 (H)

0対0、ドロー (2012年10月6日(土) 14:00 日産スタジアム 現地観戦)

マルキ、勇蔵、カンペーちゃんが出場停止。
青ちゃんがセンターバックに、
ボランチにアンドリュー、
2トップは裕二と学。

で、ゲームの方は、
おもいっきり引いて守る広島を崩せず、スコアレスドロー。
ペナルティエリア内でのチャンスを作るも、決めれず。
裕二、PKを貰うが、失敗。
(´・ω・`) 決定力が…。


裕二、
PK失敗はしかたがないことだが、せめて枠に入れて欲しかった…。
んが、責めれないよなぁ…、
裕二、がんばってるのは見ててわかるし…。
ただ、このままではあらぬ方向に暴走しそうな気もする。
育てるのがヘタ(というより無理)なFマリノスだし、
裕二の将来が心配です…。

3連休の初日、かつ一人1,000円チケットの効果か、3万6千の大入り。
キックオフ直前にぞろぞろ入ってくる人多数だったので、
おそらく初観戦な人が相当数いたのではないだろうか?
ファンを増やす絶好のチャンスだった今節、
こんなしょっぱいゲームになってしまって非常に残念です。
こんなゲームじゃ、二度と見に行こうとは思わないでしょう。
本当に残念でなりません。