JRDV.sp

JRDBからJRDVがスピンオフして、しかもいいとこ取りのブログ。

開発

Visual StudioでAzureのSQL Serverが開けない時

自分用のメモです。
このブログの99.9%の方には全く関係無いです。
解決はしてません。でも別の方法でも特に問題無しでした。

Visual Studio上からAzureのSQL Serverに接続する時は、普通だとSQL Serverオブジェクトエクスプローラーからクリックして開いてきますよね。

t1

僕はいくつかAzure上にSQL Serverのインスタンスがありまして、例えば上の例だと「NAR」はデータベース名が表示されているように普通に接続出来ております。
でも「HKJC」の方は赤線の箇所に本来表示されるべきDB名が表れず。

ちゃんと調べた訳では無いのだけれども、多分、原因はコレ。

t2

DBの照合順序がこれだけ「Japanease_CI_AS」に変更されていました。
記憶に無いけど…デフォルトとは違いますね。
標準では「SQL_Latin1_General_CP1_CI_AS」となっているはず。

んー、Visual Studioが2015だからダメなのかな?と、せっかくなので2017を入れてみたものの…結果は変わらず。
以前は普通に繋げていたはずなのに謎です。
回避策としては、通常のDB接続と同じく「サーバーエクスプローラー」を使います。
ここで設定を入力すると。

t3

デキター。
さて、これで後はテンプレートにデータを流し込んでいくだけ。

t4

イラストレーター2018は2017に比べて約2倍ほど遅い

少し前にアップデートがあったillustrator2018。
うっかりアップデートしてしまった方は、ご愁傷様です。
僕も2台のPCの内(1アカウント2台までインストール・使用可能)1つを2018にしました。
もちろん使い方にもよりますが、僕の作業では2つのバージョンの処理速度は約2倍の差が出てしまいました。

t2

t1

1ファイルA3サイズで約3M程。
JavaScriptでJsonファイルを読み込み新聞作成という作業内容。
それを一度PDFのプリンタドライバを通した物が園田競馬場用の新聞となります。
コチラ

1つめのファイル作成完了後から最後のファイルまで、タイムスタンプでの比較ですと2018は7分、2017だと3分となっております。
2018が今後のアップデートで以前の処理速度に戻るのか?もっと遅くなるのかは分かりません。
そもそもAdobeの製品自体が、CPUとメモリの使い方が非常に悪い。
なので多分、改善はされないでしょうね。
ちなみに、2017よりももっと速いのはCS5。
普通にはもう手に入らないのだけれども、競馬新聞を作成するには最適なバージョンです。
2017よりも約8倍ほど速いので、単純に2018との比較だと16倍の差が出ますね。

解決策

続きを読む

競馬新聞作ってる

サンプルです。
この形で出てくる事は無いと思う。

→ 作成過程

JRBの白黒の横版のPDF新聞、これが種類が多くて整理が必要。
一時期の勢いにまかせて乱立させて、以降10年ほど?そのままです。
僕がJRDBに入る前のものですね。
流石に…入っているデータも古いし、新規にJRDBに入ってから使う方も少ないかなと。
古くからJRDBをご利用頂いている方が、ずっと使い続けているのでしょう。

WindowsXPと同じて、何か手を加えるにはあまりにリリースしてからの時間が経ってしまいました。
個人的には、全部1から作り直してしまう方が長期的にはベターな方向。
ですがJRDBはそんなドラスティックな事が出来る会社でも無いです。
未だに最初期のHTML版の馬柱が毎週更新されているように、1回出したら無くせない方針。
故に、1つ新規のコンテンツを出す度に、トータルの作成時間がどんどん掛かるようになっていきます。

位置取りシートや「外厩」シート、データビューワにTarget用のデータパック。
これらはJRDB本体とは切り離して作成しているので、まだ新規の物が出せていますが、JRDB本体で新しい物は、ここ数年以上出せておりませんね。
と言う事で、リソースを確保するためにも古い新聞の種類を減らしたい。
似たような新聞をまとめると、例えばこんな形になるかな。

t1

「新パドック新聞」との比較で、A4にプリントしてみました。
実際に印刷して使うのであれば、現状の物だと小さすぎて厳しいです。
情報が少なくなる分、文字のサイズは今よりも大きくなりますね。
サンプルは14頭立て以下のレースでのものなので、15頭以上のバージョンは形が多少かわります。

でも・・・。
そもそも、予定では僕は作成しましせん。
新聞作成のための周辺ツールの作成までが僕の仕事範囲。
パーツの組み合わせだけで、誰でも(は、言い過ぎかも)新聞を作れるシステムを作成予定です。
コンセプトやデザインは別のスタッフが担当します。
上のサンプルも、こうやったら新聞が作れますよ、という説明のための物。
さて、どんな新聞を作ってくれるのでしょうね。


F12のススメ

もしブラウザでGoogleのChromeを使っているのであれば。
(いや、IEでもFire Foxでも同じなのですけれども)
たまには「F12」を押して見るのも良いかも知らん。

例えばよく見るレーシングポストさん。
各馬の成績画面がコレ。

t1

ここでF12キーを押すと、開発者ツール画面が開きます。
これで中身のHTMLが見られる。
ソースと言われるものですね。

上部にはjavascriptが埋め込まれており、「window.PRELOADED_STATE =」以下にはJSON形式で見えない部分のデータが入っております。
そこだけを抜き出してみると、このような構造。

t2

profile
entries
quotes
seasons

4項目ほど入っております。
・・・ん?
Quotesに関してはメンバー登録しないと見られない項目なはず。
ですが、ソースの中に埋め込まれてしまっております。
騎手・調教師のレース後のコメントがその内容。
現状では丸見えですが大丈夫かな?
もしかすると、このページはまだ開発途中なのかも知れません。

そして以下の部分

t3

この箇所にはReact が使われてます。
春の時点では確か違ったはず。
ちなみに、ReactはWordPressがライブラリの使用を止める方向に動きました。
Facebookの特許条項のリスクを嫌い、WordPressがReactライブラリの利用を止めることを発表

個人や中規模程度の企業であれば、多分あまり気にする必要は無いとは思いますが、嫌な材料である事は確かですね。

久しぶりに競馬新聞の作り方

データの有効性や仮の指数を作っての検証をしながら、地方版の競馬新聞の作業を進めてたりします。
心強い助っ人が入ってくれたおかげですね。
さて、肝心の新聞。
実は作る事自体はカナリ簡単。

t1

大本の構造は↑のメモ程度で充分。
いわゆる「モデル」と呼ばれる部分に相当するもの。でしょうかね。
そして、最終的に印刷される物が紙や、あるいはHTMLのようなWEB版が「ビュー」になります。

僕の今のやり方は、データベースからデータを取得して、チョイチョイ計算などを挟みつつ、最終的に1レース1Jsonファイルに出力します。
それを例えばイラストレーターに読み込ませればPDFが出来るし、ブラウザで表示すれば簡易ビューワとなる。
こんな程度ですわ。

でも、最初に細かいデータやパーツをチマチマと作って、最後にプログラムを実行して全てが1つなって「ドン」っと完成品が出来た時は、ああ…やってて良かったと思える嬉しい瞬間。
何ならそれを味わう為だけに作ってるまである。
ふふふ、今から最後のF5キーを押すのが楽しみだな。

浦和競馬場の出目

というタイトルは、まあ、おまけみたいなもの。
一応、2012年以降からのデータはこんな。

→ Excel Online

1~3着までの、馬番と枠番です。
有り難い事に僕の作業のお手伝いに来てくれている方がおりまして、せっかくなので色々と学んでもらおうかと。
競馬と言えばデータベースです。
特にリレーショナルデータベースとは抜群に相性が良い。
そんなデータベースの基本と言えばクエリ、つまりはSQL文です。

これは個人的な考えなのだけれども、DBを学ぶにあたって最も最悪な方法は・・・1番最初にAccessに触れる事。
実際に僕が経験したので本当にそう思います。
アレはアカン。
同じマイクロソフトの製品であればSQL Serverで始めて下さい。
今ではセットアップは非常に簡単になりましたしね。

必要な本も2冊のみ。




これで競馬程度であれば充分です。

今回やってもらった事は、1つの成績テーブルを3つ繋いでそれぞれ1~3着馬を抽出するクエリの作成。
同じテーブルでも別名をつける事によって違うものとして扱える、というのは初めて知った時には驚いたものです。
・・・等という事をアクセスでやるとSQL文を書く事無くクリックだけで完結出来てしまう。
理屈で理解する前に手順で覚えてしまうのは、よろしく無いぞ。

あとは、データをエクセルに貼って色をつけるだけ。
VBAのコードとしてもこんな。

Sub wakucolor()

Dim i, h As Integer

i = 2
Do While Cells(i, 1) <> 0

For h = 9 To 11

Select Case Cells(i, h)

Case 1
 Range(Cells(i, h), Cells(i, h)).Interior.ColorIndex = 2
 
Case 2
 Range(Cells(i, h), Cells(i, h)).Interior.ColorIndex = 16
 
Case 3
 Range(Cells(i, h), Cells(i, h)).Interior.ColorIndex = 3
 
Case 4
 Range(Cells(i, h), Cells(i, h)).Interior.ColorIndex = 41
 
Case 5
 Range(Cells(i, h), Cells(i, h)).Interior.ColorIndex = 36
 
Case 6
 Range(Cells(i, h), Cells(i, h)).Interior.ColorIndex = 50
 
Case 7
 Range(Cells(i, h), Cells(i, h)).Interior.ColorIndex = 45
 
Case 8
 Range(Cells(i, h), Cells(i, h)).Interior.ColorIndex = 26
 

End Select

Next h

i = i + 1
Loop

End Sub


ループの箇所は僕の手抜きです。
終了条件の箇所は、もっとキッチリ書くべき。
ですが、使い捨てのコードであれば、僕は毎回コレですね。

ラッパー(ドラゴンじゃないやつ)

100%競馬自体には関係の無い話し。
なので読む必要は正直ありません。
だって…wrapperの方だもの。
そして大して目新しい話でも無く、質問が来たのでここに書いておこうかなというレベルです。

どの国の競馬も、大体はHTMLでデータを載せております。
自分でデータを管理したいのであれば、そこから必要な物を取得してくるのが第一歩となりますね。
僕ならこうしています、という簡単な例を。続きを読む

エクセル用の便利マクロ

僕のエクセルのツールバーはこんなです。

t2

今のエクセルになって残念な点は、ツールバーのアイコンにマウスカーソルをあててもキャプションが表示されない事。
何故にそんな仕様にしたのだろう?

さて、エクセルでの作業の殆どは以下のような流れ。

・データベースからデータを取得
・エクセルに貼り付け
・HTMLに変換
・コピーしてブログへ貼り付け

このブログのデータ表示部分は↑の方法で作成しています。
勿論、ショートカットで全てやるのもアリですがキーを押す回数が多くて面倒。

・コピーを開始するセルを選択
・CTR+SHIFT+↓で範囲を選択
・CTR+Cでコピー
・CTR+Vで貼り付け

これを短縮するためのマクロが

Sub 範囲コピー()

    Dim startRow, startColoumn, finalRow As Long
    
    startRow = ActiveCell.row
    startColoumn = ActiveCell.Column
    finalRow = Cells(startRow, startColoumn).End(xlDown).row
    
    Range(Cells(startRow, startColoumn), Cells(finalRow, startColoumn)).Copy
    
End Sub


(変数宣言しないで、Range以下の1行で書けます)

このマクロは、選択されているセルから下方向へデータがあるまでの範囲をクリップボードにコピーしてくれるもの。
ツールバーに登録しておけば、開始セルを選択した後に、ALTキー+数字で実行出来ます。
これはエクセルの仕様なのですが、ALTキー押してツールバーへ数字が表示されるまでの反応が悪いのが難点。
それを除けば、キーを押す回数が減るので便利ではあります。

更に、マウスはコレ。
ワイヤレス ゲーミング マウス G700

マウスのボタンにキーストロークが登録出来るやつなら何でも良いのですけれども。
これは登録出来るのが多めなので愛用しております。
当然コピペもボタンに登録済み。
ちなみに、Caps LcokもALTキーに割り当てておくと尚よし。

これで全てマウスでの作業が行えますね。

ハイブリッド新聞 推定3ハロン分析シートの

A3版。
コンビニ版ですね。
これを近い内にリニューアルする予定です。
サンプル → 4/2阪神

せっかくA3という広い紙面なので、A4版で出しているのものとは違う物にしてみました。

t1

左の「前半・後半」5位以内の表はこれまで通り。
・前後半共に5位以内を太文字
・2位と0.5秒差以上の時には背景色グレー
この2点、ついでに枠番が追加されました。

右にあるのが、このブログのレースの過去分析でも使っている印データ。
「HB・前半・後半」をそれぞれ1~6位まで印化して全頭を掲載。
騎手名の下の棒は、過去3週分の芝・ダート別の複勝率を現しています。
土曜日分は、3週前、2週前、先週を。
日曜日分は、2週前、先週、土曜日分を。
黒が複勝率40%以上、グレーが複勝率25%以上となっております。

HB指数の欄はレースの基準HB指数を超えているものに背景色グレー。
これが何頭いるのか?で大体レースのレベルが分かります。

大阪杯はキタサンブラック1頭しか基準越えがおりませんでしたね。
印を見ると3つ入りはヤマカツエースのみ。
中位人気あたりの3つ入りは相手でよく来るパターンだったりします。
また、2着のステファノスは内目の枠(印データの左1つめの表)+騎手パワーも大きかった。

A3だと半分に折って6Rずつで使えるよう配置しましたので、あまり邪魔にもならないはず。

血統は木構造なので

いわゆる、再帰の例題として扱うに適した材料だったりします。
5代血統からクロスを抽出する作業を頼まれたので、どうやってやろうかなと。
汎用性があって運用的に便利なのは、やはりSQLで書いてしまう方法。
どうせ元々のデータがデータベース上にある訳ですからね。

個人的には今まで、そういった血統データには興味が無かったので、そもそものルールが分からん。
という所からスタート。
ルールさえ分かってしまえば、それをコードに落とす作業はそれほど難しくありません。
だって、そのデータの構造的にSQL文で書ける事は確実なので。
きっとプログラム一般で多分難しいのは、ルールをどう設定するか?なのでしょうね。

パズルを解く感じでなかなか楽しめました。

クロスは血統表上に2つ以上同じ馬が出現している、というのが前提。
それを表現するためには1頭の馬の血統表を2組使います。

手順としては続きを読む
単行本
外厩ブラックボックス馬券術

Target用ファイル
「外厩」データ
(無料分)
「外厩」印データ
Target用厩舎ランクCSVファイル
(JRDB会員専用)
今週の重賞
Target用ファイル
ビューワ 11/18・19
土曜日
日曜日
PV: 位置取りビューワ
DV: DV3
mini: JRDV-mini

過去分
2017年 2016年 2015年
記事検索
中の人
当ブログでの「僕」または、一人称は全て飯村公一@JRDBシステム班です。
JRDVを含めWEBアプリ系の開発担当者。
僕直通のメアドです。
iimura.sp半角アットマークgmail.com
半角アットマークを「@」に変えて入力して下さい。

Twitter:@jrdvsp
FaceBook:飯村 公一

こちらでもコンタクトできます。
Live レース結果
最新コメント
サイトへのリンク
【JRDV.SP】のサイトはリンクフリーです。
リンクしていただける場合は、以下のバナーをご利用ください。
コメント欄にでもご連絡頂ければ、このブログでも紹介させて頂きます。


http://blog.jrdvsp.com/



競馬リンク
必要な物はここで全部揃います


JRDBブログの1st


僕の席のとなりにいる人


新感覚


1回にご馳走になる食事
≒僕の1ヶ月分の食費


競馬情報ポータルサイト。


SMARTKEIBA


ストライド競馬新聞


パドチョク


競馬ビッグデータ


競馬サミット


相互リンク

逆転競馬

大阪梅田競馬BAR
『そのままっ!!』



チョットだけ競馬を。

The Lion Sleeps Tonight

没関係啊(*`ω´)



大きい馬券好きの競馬予想



おいなりさん

「競馬」と「料理」と「愛犬」と

  • ライブドアブログ