ブロッコリーを克服するまでプログラミング

プログラミングとか趣味とかを報告します。

「天橋立」とか、「かやぶきの里」とか

GW初日、妻と二人レンタカーにて行ってきました。最高の快晴でした。

京都にきて早数年が経ちますが、「天橋立」というと、なぜか口をそろえて「きれいだけどまぁまぁ」みたいな回答が目立つイメージでした。なので妻には、「あまり期待せずに行こう」と話していました。

 

到着早々、とりあえずレンタサイクル(2時間 400円)しました。2時間で足りるのかな、と思っていましたが、天橋立を往復 + ちょっとおやつ + ちょっと遊ぶ でちょうど2時間ぐらいでした。お昼ごはんを途中でとった場合微妙ですが、通常経路だと全く問題ありません。

 

f:id:atwtama:20180429215830j:plain

 

私は自転車が趣味なのもあるかもしれませんが、快晴の天橋立を自転車で走行することは最高に楽しかったです。

 

f:id:atwtama:20180429220010j:plain

f:id:atwtama:20180429215451j:plain

 

天橋立は、全然、がっかりスポットではありませんでした。ただし、快晴であるとか、レンタサイクルで天橋立を渡るとか、そういう前提はあるのかなと思いました。

(曇っていたり、メンバーのだれかが「自転車乗りたくない」、というと、ちょっとがっかりしそうな気がしました。)

 

 

 

帰りに、「かやぶきの里」というところに行きました。案外、山道というほどの道でもなく、ストレスフリーでたどり着けました。天橋立がすごすぎて見劣りするかな、と思っていましたが、そんなこと、まるでなかったです。

京都美山 かやぶきの里北村

 

f:id:atwtama:20180429220536j:plain

f:id:atwtama:20180429220621j:plain

f:id:atwtama:20180429220715j:plain

 

GW初日に小旅行してしまったから、暇なう。

 

SQLServer : エラーが出ていないのにストアドプロシージャの処理が止まっている?

スレッド内でSQLServerのストアドプロシージャを SQLExecDirect / SQLExecute で実行するサービスプログラムを作成した。だがしかし、なぜかストアドプロシージャの実行がうまくいっていないようであった。

ストアドプロシージャはデータの集計 + INSERTしか行っておらず、SQLServer Management Studio上で当該のストアドプロシージャを実行しても、エラーが一切確認できなかった。

 

ログやイベントビューアーなどから始まり、怪しい行を消したりCURSORをいじったり、SQLSetStmtAttrをいじったり、早3時間・・・。いろいろ行って分かったのは、「CURSORループ内でINSERTを使用すると止まる」ということであった。

 

INSERT特有といえば、Management Studio上でINSERT構文を実行すると以下のメッセージが現れることくらいである。

 

f:id:atwtama:20180418214134p:plain

 

これやろ!!!!!なんとなくやけどこの(1行処理されました)という処理行数メッセージ!!!Management Studio上では自然におるけど、絶対に悪い奴やろ!!!とりあえず、ストアドプロシージャ内に「SET NO COUNT ON」を記述すれば消えます。この1行を追加するだけで、(1行処理されました)と出力されていた状態から、以下のように「コマンドは正常に完了しました。」という文字列に変わりました。

 

f:id:atwtama:20180418214407p:plain

 

まじで、これだけで、正常にサービスからストアドプロシージャが実行されるようになりました。めでたしめでたし。

 

 

 

その後、突然のデジャブから、一年前に作成した同様の処理を行うストアドプロシージャを確認すると、SET NO COUNT ONが記述されていた。つまり、私は当該問題に一度ぶちあたり、解決していたのにもかかわらず、忘れていたのである。

 

なので、備忘録としてここに記す。

応用情報処理技術者を冷やかしで受験しにいった

2018春の応用情報処理技術者を受験しました。

 

2017春にITパスポート、2017秋に基本情報処理という一連の流れに乗ろうと思い、間髪入れずに応用情報処理を受験しました。

 

以下、受験までの流れについてです。

2018年 2月に危険物取扱者を業務多忙の中、詰め込みで取得し、正直なところ完全燃焼してしまいました・・・。3月終盤まで本当にやる気が起きず、妻には「勉強するからこもるわ」と言って、毎日Youtubeを観て寝る始末・・・。

 

litz.hatenablog.com

 

2018年 3月末、さすがにやばいと感じ、勉強を開始しようとするも、突然の土日出張などで勉強の時間が本当に取れなくなり、さらにやる気がなくなってしまった・・・。平日帰って勉強しようと思うが、業務で作成している完全に個人的趣味のシステム開発が楽しくなり、残業を繰り返してしまう。

 

2018年 4月頭、「とりあえず単語さえ知っとけば、10月の基本情報処理の勉強と勘でなんとかなる」と思い、本屋で発見した以下の教科書を買った。中身をみたらイラストだらけで、「中学校の教科書かよ!!」と思うレベルに落とし込んでくれていた。一週間前までの総勉強時間が、「キタミ式イラストIT塾 応用情報処理技術者」を流し読みするだけという、ダメダメ社会人そのものであった。

 

 

2018年 4月試験一週間前、さすがに過去問を買った。「どうせ落ちるなら一番安いのでいいや」という理由で、もはや平成29年度の過去問を購入するという愚行に出た。(28年秋までしか載っていない)さすがに一週間前なので、2回分午前の問題を解答を見ながらこなした。解答を見ながら勉強したため一切採点を行っていないが、午前正答率推定は30%くらいではなかったであろうか。ここまで午後の話がないが、つまりそういうことである。

 

(全文PDF・単語帳アプリ付) 徹底攻略 応用情報技術者教科書 平成29年度(2017年度)

(全文PDF・単語帳アプリ付) 徹底攻略 応用情報技術者教科書 平成29年度(2017年度)

 

 

試験当日、前日に解いた28年度秋問題の午前推定正答率30%から、妻に「記念受験してくるわ」といって出陣する。ここで奇跡が起きる。なんと午前の問題で、前日行った平成28年度秋の問題からいくつか出題?されていたのだ。完全に進研ゼミでやったことある状態で、本文ほとんど読まずに〇をつけてやった。さらに、午前終了時に「あれ・・・60%取れてるんじゃね?」という謎の自信が湧くほど解けていたのだ。

午前問題は2回分しか解いていないのだが、今回はマネジメント系が簡単?な気がした。意味不明な英略文字が出題されると完全にお手上げな私だが、今回は英略文字が少なく文脈で推定できたため、解けた気分になった。

 

昼休憩になると完全に欲が出てくる。「午後とれればワンチャンある」と。そして迎えた午後、ここでまた奇跡が起きる。なんと大問1(回答必須)とアルゴリズム(選択)が、本当に冗談抜きで、簡単なものが出題されていた。合格が見えてきたため、とりあえず業務で使用することのあるSQL問題を解く。あとは意味不明な問題しか残らなかったが、ネットワーク問題などをそれっぽく穴埋めして、試験が終了した。

 

「こいつ何言ってんだ? 応用情報処理技術者は高難易度試験やぞ?」や「無勉とか嘘乙」と思われているかもしれないが、本当に当記事の内容で受験したし、私が天才なのか30年春がサービス回だったのかはわからない。そして今日、午前の添削を行ったが、70%は突破しているようだった。午後についてはネット上の速報で添削を行ったが、厳しく採点して60点ジャストという、合格してるのかしてないのかわからない点数をたたき出した。

 

正直なところ、中小企業のプログラマーでなんでもやらなくてはならないため、C言語SQLも頻繁に使用する。これだけで、午後大問2つが解けることになる。また、ネットワーク関連もなんやかんややらされるため、DNSやルーティングの話も分かる。結局私が午後を無勉で挑戦し、それでもいい戦いができたのは、「中小でなんでもやらされるから、業務をする = 資格勉強をしていた!?」ということだと思っている。

 

冗談抜きで冷やかし受験だったがいい戦いができてよかった。しかし、午後59%で落ちるとかは本当に勘弁してほしい。なぜなら、次回が私にとってサービス回とは限らないからである。

 

VBScript : Response.Formで受け取ると、すでにURLデコードされている?

一般的なのかわからないのですが、URLエンコードされた文字列をVBScript の Response.Formで 受け取ったら、受け取った段階でURLデコードされているという話。

 

類まれなる例なのかもしれませんが、こういった場合がありました。

クライアント側からURLエンコードしたデータをPOSTで送るから、VBScriptで受けてという話です。

で、私はサーバー側担当なので、「あ、URLデコード書かないといけないんだな」と思ったのですが、いざ取得データを確認してみるとすでにURLデコードされている状態でした。

 

ざっくり検索してもわからなかったし、これ以上踏み込む気もなかったので、とりあえず実証して終わりました。(クソプログラマー筆頭)

 

まず、VBScriptで以下のようなPOSTを受け取りResponseするだけの簡易的なプログラムを書きます。

 

test.asp

<%@ LANGUAGE = "VBScript" codepage="65001" %>

<%
Dim test01
Dim test02

test01 = Request.Form("test01")
test02 = Request.Form("test02")

Response.write "<TEST01>"
Response.write test01
Response.write "</TEST01><TEST02>"
Response.write test02
Response.write "</TEST02>"
%>

 

次に、以下のような2つの文章を用意します。

test01

これはテスト文章です。
2行目です。

 

test02

二つ目の文章です。

 

その後、NKFで上記文章をURLエンコードし、POST準備したものが以下のようなものです。

 

POST準備

test01=%E3%81%93%E3%82%8C%E3%81%AF%E3%83%86%E3%82%B9%E3%83%88%E6 %96%87%E7%AB%A0%E3%81%A7%E3%81%99%E3%80%82%0D%0A2%E8%A1%8C%E7%9B%AE %E3%81%A7%E3%81%99%E3%80%82&
test02=%E4%BA%8C%E3%81%A4%E7%9B%AE%E3%81%AE%E6%96%87%E7%AB%A0 %E3%81%A7%E3%81%99%E3%80%82

 

これをVBScriptにPOSTし、Responseを確認すると、以下のようになっています。

 

受信内容

<TEST01>これはテスト文章です。
2行目です。</TEST01><TEST02>二つ目の文章です。</TEST02>

 

以上からわかることは、VBScriptってすげぇな。

全く投資をしたことない私が、つみたてNISAを始める

まず、私には散財癖がある。

なので、「毎月、貯金のために口座から給料が減っていてほしい」という想いがあった。

しかし、弊社は中小のため、自社株制度などはない。

よって、とりあえず、つみたてNISAを始めることにしました!

 

何も考えず、もう本当にとりあえず、近くの三菱東京UFJ銀行(もうすぐ三菱UFJ銀行?)にいきました。

行員の方にお話を聞きましたが、まぁそんなに難しい話ではなかったと思うのですが、すでに覚えていません。

つみたてNISAの年間投資枠が40万円なので、12か月割りした月額¥33,333までしか投資できない、というくらいしか本当に覚えてないです。

 

最初から満額は怖いので、¥10,000(最低額?)に設定しました。

また、いくつかの中から選べるファンドは、つみたて日本株式(日経平均)を選択しました。

おそらく、私みたいな初心者は、とりあえず「日本」を選ぶのかな、と思いました。

 

 

それからひと月、NISAの引き落としが2月末にあったことを、すっかり忘れていました。(この「気づいたら落ちている」形こそ、私の目論見)

結果から言うと、本日2018/3/17 にて、¥10,000投資で¥179マイナスでした!!!!

f:id:atwtama:20180317210553p:plain

 

しかし、こういう形でも興味が持てたことはよい。

また、私の場合この口座のお金は「本来なくなっていたお金」なので、179円マイナスなどどうでもよい!!!!!!!!!!!!

このくらいの気持ちでやったほうが良いと思う。

そして、3月から「つみたて新興国株式」を¥5,000を追加で購入することにしたのであった・・・。

新興国を選んだ根拠は特にない。

 

最終的に月額満額¥33,333までもっていきたい。