ハノイから帰ってきました

こんばんは、久しぶりの投稿ですね。

実は、ハノイでの半年間の就労が終わり、昨日の朝に日本へと戻ってまいりました。
今後は日本で作品制作などをしていきたいと思います。

なお当面はハノイに戻ることはないと思いますが、ブログではまだしばらくハノイのネタをブログで投稿していくつもりです(ハノイのネタはまだあるのでw)。

ちなみに、結局ラブライブの映画は最後まで見られませんでした...orz
なので、帰国当日にまきちゃん(の中の人)、もといPile様のライブに行ってきましたが、その話はまた後日。

テーマ : 日記
ジャンル : 日記

ハノイカフェ(春巻きとか)旧市街

そしてそして
ホアンキエム湖と教会近くで見つけたカフェ
以前、写真をアップしていたので使用できました

来たばかりの時は、なぜか春巻きが食べたくて、お店に行ってはSpring rollばかり頼んでいました
野菜がいっぱい取れるし、サラダより食べやすくて好きです♪
20150701100636654.jpg
こちらは、チャーハン好きの相方が頼んだチャーハン。パイナップルの器に入っています…南国!
20150701100626173.jpg
こちらは、チェー飲み物なのか食べ物なのか…
ヨーグルト1個がコップの一番上に乗っかって出てきたので、笑ってしまいました
底にはフルーツと氷がいっぱいで美味しかったです。250円くらいでした。
cafe1.jpg


オレンジ色のカフェの外観はこちら
って…アップしてなかったので後日。


ハノイはいたるところにカフェがあるので、お気に入りのカフェを見つけるのも良いかも

テーマ : ベトナム
ジャンル : 海外情報

ハノイ観光(ホアンキエム湖 昼間)

お久しぶりでございます
Revetroniqueのブログをサボっていた夢担当の方です

気付けばハノイに来て6ヶ月目を迎えております
振り返ると6ヶ月はあっという間に思えますが…未来の残り約1週間は長く思えたりもします(๑・㉨・๑)
ま、ハノイには何もないので飽きたってことなんですが

ハノイ滞在も残り少し、サボっていた分、いっぱい書きたいと思います!
私にはよくわからない相方の技術記事に侵食されてしまう前に(✿´ ꒳ ` )
ということで、久々にハノイについて


ハノイの写真を載せようと意気込んでいたのですが、SONYのエクスペリアちゃんがバグってバグって写真をあげられません
後日、アップしたいと思います。
文章のみですみません。


最近、涼しくて南国という感じがしなかったのですが、まだ夏服半袖で過ごしています
ハノイは6月~11月に来るのが良いらしく、6月が最も暑く、10,11月がベストシーズン、
2月~5月が雨季で太陽が見えず、寒い最悪の気候だそうです。
ハノイに来たばかりの6,7月はタオルで汗を拭っていました
9月頃から少し暑さが和らいだ印象です。
しかし、美容に疎い私でも日焼け止めは欠かせません

前置きはさておき、よく行くのはホアンキエム湖周辺です
…ホアンキエム湖周辺かVincom Centerくらいしかないと言えばそうかもしれませんが
8月まで住んでいたハイバーチュン地区のチュービブン通り(ロッテリアが近いです。)から、徒歩約20分で行けます。
タクシーは使わず、とにかく歩き回っています
タクシーで行っても、片道200円くらい(40000ドン)だと思うのですが、塵も積もればです。
4万ドンあれば、私の好きな美味しいバインミー1つ32000ドンが買えてしまいます


ホアンキエム湖はこんな湖です。湖の真ん中に伝説の亀の塔があります。


36の通りがあるという旧市街と呼ばれる付近


ハノイ大聖堂



ハノイは娯楽が少なく何もないとよく言われます。
Amazonも楽天も何も届きません。
金土日の夜にNight Marketをうろうろ(後ほど書きます)、
いい感じのカフェを見つけてスムージーを頼んで相方と未来を語り合うかくらいしかありません
娯楽は映画とサッカーしかないのかもしれません…(ベトナムの方はサッカーが大大大好き)
飽きたけれど、それなりに楽しめたかなもちろん、お仕事以外で

写真だけはいーっぱいいーっぱい撮っているので(…ほとんど食べ物ですが)ハノイのことを書けたらいいなと
ハロン湾、タンロン遺跡、ベトナム建国記念日のお祭り、カンボジアなどなどネタだけはいっぱいあるのよ

テーマ : ベトナム
ジャンル : 海外情報

EXCEL VBAとGoogleで為替レートを取得してみる(2)

いやー、エンタテインメントしたいとかタイトルで書いてますけど、今回の記事はExcelとか為替とか娯楽とかけ離れてる感がしますね。とか言いつつ前の続き(前回はこちら)を書いていきますがw

【プログラム】
では、いよいよExcel VBAでのプログラミングに入ります。

今回の実装の流れはこんな感じ。
(0. 開発環境の準備)
1. ライブラリの参照
2. 為替レート取得用のプロシージャ
3. 2.で実装したプロシージャの使用


0. 開発環境の準備 (VBA開発を有効にしている場合は不要)
Excelではデフォルトで開発環境が無効になっているため、これを使用できるように設定を変える必要があります。
とはいえ、手順(Excel 2010以降の場合)は簡単で
「ファイル」 >> 「オプション」 >> 「リボンのユーザー設定」を選択し、「開発」タブを有効にするだけです。
EnableVBA.jpg

1. ライブラリの参照
まず、Excel VBAでIEを制御するために、「Microsoft Internet Controls」と「Microsoft HTML Object Library」というライブラリを参照する必要があります。
ReferWebLibrary.jpg

これらのライブラリは、簡単にWebブラウザ(IE)の制御とHTMLの解析をするためのライブラリで、この中の関数をいくつか使用して為替レートの読み取りを行います。

2. 為替レート取得用のプロシージャ
これで、Webブラウザで為替レートの検索と取得を行う準備が完了したので、いよいよコードの実装に入ります。
まずは、開発環境(VBE:Visual Basic Editor)を起動します。
OpenVBE.jpg

続いて、関数(プロシージャ)を書くための標準モジュールを用意しましょう。
標準モジュールの作り方は、開発環境の画面左にある「標準モジュール」を右クリックし、「挿入」>>「標準モジュール」の順に選択します。
CreateNewModule.jpg

では、為替レートを取得する関数を見てみます。
以下のコードを先ほど作った標準モジュールにコピペすればOKです。

'Sleep関数を使用するための宣言
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

'IEを介してリアルタイムな為替レートを取得するファンクションプロシージャ
'ライブラリ"Microsoft Internet Controls" と "Microsoft HTML Object Library"を参照
Function getExchangeRateIE(Optional ByVal src As String = "JPY", Optional ByVal dst As String = "USD") As Double
Dim ie As New InternetExplorer
Dim timeOut As Date
Dim elem As Object 'html elements in webpage
Dim inTxt As String 'inner text

'タイムアウトを20秒に設定
timeOut = Now + TimeSerial(0, 0, 20)
'IEを起動して、Googleの為替コンバーターを開く
ie.Navigate2 ("https://www.google.com/finance/converter?a=1&from=" & src & "&to=" & dst)
'ie.Visible = True 'IEを表示(コメントアウトしています)

'Webページの読み込みが完了するまで待機
While ie.Busy = True Or ie.readyState < READYSTATE_COMPLETE
DoEvents
Sleep 1
'IEがページを読み込めなければ、強制終了
If Now > timeOut Then
ie.Quit 'kill IE process
Exit Function
End If
Wend

'HTML要素を取得する
Set elem = ie.document.getElementsByName("currency_converter_result")(0)

' (変換元の通貨) - (変換先の通貨) 間の為替レートを読み取る:スクレイピング
inTxt = elem.innerText
inTxt = Left(inTxt, Len(inTxt) - 2) 'スペース2文字分を削除

'為替レートを取得する
getExchangeRateIE = CDbl(Split(inTxt, " ")(3)) '配列には {1, (変換元の通貨), (レート), (変換先の通貨)} の順に格納

ie.Quit 'IEの終了
End Function

3. 2.で実装したプロシージャの使用
2. で作った関数はそのまま使うことができないので、新しい関数を作成してその中で使用します。
(いろんな場所で使いやすくするために、Function形式で記述していました)

下のサブプロシージャを、2.で用意した標準モジュール内に書き込みましょう。
こちらも、2. で作った関数の下に書き込めばOK。

Sub GetExRate()
'MsgBox getExchangeRateIE 'Current exchange rate(default JPY -> USD)
MsgBox getExchangeRateIE("USD", "JPY") 'Current exchange rate
End Sub

後は、ためしにVBEで起動してテストします。
VBEの画面上側にある実行ボタン(緑の三角形のやつ)を押してみましょう(マクロの選択画面見たいなものが出てきたら、「GetExRate」という名前を選択します)。
DebugExchangeRate.jpg

上の写真のように、メッセージボックスで為替レートが表示されたら成功です。

【参考】
こちらのサイトを参考にさせていただきました。
Qiita 為替レートのAPI: http://qiita.com/RKC/items/5bdec1fc0e526e30adb5

テーマ : Office オフィス
ジャンル : コンピュータ

EXCEL VBAとGoogleで為替レートを取得してみる(1)

どうもー、Reveです。
最近、記事の方向性に一貫性がないなぁと思いつつ、今日もまた別のネタを書くつもりです(過去記事の続きを書けよ、という気もしますがw)。
今日はVBA為替レートを取得する方法を取り上げます。

為替レートの取得】
もともと仕事の関係で、為替レートを簡単に取得できる手法を探しており、いくつかVBAで取得する方法をまとめた記事もあります。

たとえばYahooファイナンスからレートを読み取ったり、APIで直接取得する方法もあったのですが、
記事の公開日が古いのも多く、Yahooファイナンスの仕様が変更されていたり、APIも有料、あるいは制限があったりとなかなか面倒な感じがしました。

しかし、Google先生が簡単な通貨コンバーター(https://www.google.com/finance/converter?a=1&from=USD&to=JPY)を公開しており、変換元と変換先の通貨を指定すればレートを簡単に取得することができます。APIではないのでHTMLソースを読み取って解析(スクレイピング)する必要がありますが、Excel VBAであれば実装も簡単です。

【実装の方針】
では、Excel VBAでどう実装するかについてですが、まずはVBAでWebをどう使うかに触れてみます。

今回はIE(Internet Explorer)を起動して検索するという方法を使います(ライブラリの参照が必要)。
なお、Excel VBAではIEしか制御できないので、IEが嫌いな人はこの手法を使ってはいけませんw(他のブラウザでもできるかも?)最近、Edgeとか発表したけど対応するのか

次に、この通貨コンバーターの仕様を見ましょう。
GoogleCurrencyConv.jpg

このサイトには「https://www.google.com/finance/converter?a=1&from=X&to=Y」というURLが与えられており、Xに変換元の通貨、Yに変換先の通貨(どちらも略称)を指定(ex. https://www.google.com/finance/converter?a=1&from=USD&to=JPY で1ドル何円かを表示)することで取得したい為替レートを計算してくれます。

続けてサイトの中身(ソース)を見ます。
ブラウザでソースの表示(IEかGoogle ChromeではF12。他のブラウザでは別の可能性もあります)をすると、
HTMLソース、いわばサイトの構造を見ることができます。

ここで、為替レートが表示されている部分について見ると、どうやらid名に「currency_converter_result」とつけられている部分に記録されていることがうかがえます。
GoogleCCHTML.jpg


そのため、この部分に書かれている内容文から為替レートを読み取れば、リアルタイムでレートの取得が実現できます。
IEの場合は、"1 USD = 122.6100 JPY "というように一連の通貨単位やレートが空白で区切られて表記されるので、その中からレートの部分だけを抜き出すことでレートを取得します。
(Chromeなど他のブラウザでは、表示が異なる場合があります)

これでプログラムを実装するための事前準備はできましたが、
プログラムの中身についてはこの後の記事で書きたいと思います(今度は本当に書きます汗)。

【参考】
こちらのサイトを参考にさせていただきました。
Qiita 為替レートのAPI: http://qiita.com/RKC/items/5bdec1fc0e526e30adb5

テーマ : Office オフィス
ジャンル : コンピュータ

11/12のツイートまとめ

Revetronique

Revetroniqueは現実とバーチャルの境界線をなくす。近々きっとね!
11-12 12:38

Arduinoシリアル通信の上限(バッファサイズ)を4倍にする話

こんばんは、Reveです。技術のほうです。
最近、ArduinoでミニマトリックスLEDをいじくってたのですが、シリアル通信で少しはまったことがあったので、今日はそれをネタに書こうかと。

【シリアル通信(RS 232C)とは】
詳しくはこの記事を参照。中身など大して無いがな

簡単に言うと、データを1ビットずつ順番に送る通信方法です。
RS 232Cというのは、昔から使われているシリアル通信規格の一種で、Arduinoのシリアル通信というとこの規格を利用したものを意味します。

PCや他のArduinoと連携(センサーで測定したデータを送るなど)をするにも、一番手軽な手段としてよく利用されるのですが、あること(そのうち記事にする予定)をしようとして通信が上手くいかないときがありました。
普段はあまり陥ることが無いような問題ですが…

【何が問題だったのか】
その問題とは、今回のタイトルにもある通信バッファの上限を超えてしまうことでした。
Arduinoのシリアル通信は、デフォルトで(送受信ともに)64バイトまでしか一度に処理できないため、サイズの大きなデータを送ろうとしても、上限を超えた分は無視されてしまいます。

しかし、そんな問題をすぐに解決できる魔法のような手段があるのです。
そう、Arduinoのシリアル通信のバッファ上限を変えてしまえばいい!

【バッファサイズの上限を上げる】
とはいっても、何も新しい回路は必要ないですし、複雑なプログラムもありません。
必要なデバイスはArduinoのみ。少し手順を踏むだけで、簡単にバッファ上限をアップグレードできるのです。

1. Arduinoのシステムフォルダ(インストールされたフォルダ)内にある hardware >> arduino >> avr >> cores にある「arduino」というフォルダをコピーして、新しいフォルダ「arduino_256_serialbuf」として同じ場所に貼り付けます(大抵、CドライブのProgram Files(x86)にあります)。
SerialBufferUpgrade(Arduino) (1)

2. 1.でコピーしたフォルダ内にある、「HardwareSerial.h」の中でバッファサイズの上限を定義した定数(SERIAL_TX_BUFFER_SIZE, SERIAL_RX_BUFFER_SIZE)の数字を64から256に変更します。
SerialBufferUpgrade(Arduino) (3)

3. hardware >> arduino >> avr にある「boards.txt」にある、pro.build.coreの右側をコピーしたフォルダ「arduino_256_serialbuf」に書き換えます(不安な方は、元ファイルをコピーして別の場所にバックアップとして保存したほうが良いでしょう)。
SerialBufferUpgrade(Arduino) (2)

SerialBufferUpgrade(Arduino) (4)

なお、Arduinoソフトウェアが入ったフォルダ内の各ファイルは直に書き換えができないため、編集したファイルを別の場所に保存しておき、後で元のファイルと置き換える必要があります。
ちなみに、手順1.で「arduino」フォルダをコピーせずにそのまま中を編集した場合、手順3.は不要です。

後は普段通りプログラムを作ってください。
これで256バイトまでのデータをシリアル通信でやり取りできます。
そんなわけで、バッファ4倍のシリアル通信ライフを楽しんでください。ではノシ

【参考】
こちらのページを参考にしました(2015/11/10加筆)。
Arduino電子工作教室 https://www.facebook.com/ArduinoUNO1/posts/877606578958580

続きを読む

テーマ : ハードウェア
ジャンル : コンピュータ

プロフィール

Reveちゃん

Author:Reveちゃん
コンビでやってます。
夢担当と技術担当がいます。

大学院卒業 → ロボットベンチャー(漆黒)就職 → 1年で退職 → ベトナムで仕事中(今ここ) → メディアアーティスト(未来☆)

リンクフリーです。

最新記事
最新コメント
月別アーカイブ
カテゴリ
アクセス数
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR