テクノロジーにぴよぴよ囲まれる生活。

自分で学んだこととか、誰かに教わったこととか、誰かに教えたこととか。

Windows環境でNodistとnvmの共存でエラーした対処メモ

【環境】

*Windows10

PowerShell

*Nodist 0.8.8

 

Windows10のPowerShell環境で、Node.jsの管理をNodistでしていたのだけど、
やりたいこと調べて、手順を上からやってったらnvmを突っ込んだ。

 

その結果
nodeを実行すると以下のエラーで動かなくなった。

 

Sorry, there's a problem with nodist. Couldn't resolve version spec %s: %s 7.2.1 Couldn't find any matching version

 

とりあえず最新版が8.1.2だったので、

nodist + v8.1.2

 

で入れる。

でも最初と同じエラー。

で、解決策がこれだった。

 

nodist + v7.2.1
nodist 8.1.2

 

よく分からんけど、一度エラー出てたv7.2.1をインストールしてから最新版に切り替えたら上手く動いた。謎。

GoogleHomeで旦那のTwitterを監視する

我が家にGoogleHomeがやってきました!!

 

 手始めに、音楽を入れて「OK Google, 音楽を流して!」でBGMを流してもらったり、

 

リビングのTVにつないだChromecastと連携させて「OK Google,テレビをつけて」でテレビをつけてもらったり、

 

料理中に「OK Google,7分計って」でパスタの茹で時間7分を計ってもらったり、

 

基本的なことをやらせてました。

チビは声でYouTubeが再生できることを知って一生懸命

「おっけーぐるぐる!!とーますみせて!!」

と話しかけてますが、GoogleHomeが反応してくれなくてしょんぼりしてます(´・ω・`)

"ぐるぐる"じゃなくて"ぐーぐる"だよ。。。(´・ω・`)

 

 

で、これだけだと勿体無いので、何か欲しいものを作ってみようかと。

 

(そういえば最近旦那の帰りが遅い。。。)

デスマーチ中らしいけど、浮気とかしてないだろうか。。。)

 (よし!GoogleHomeにTweetを監視させよう!!)

  

 

ということでGoogle Homeアプリを作ることにしました。

 

 

開発環境

*Windows10
*Node.js
*google-home-notifier
*Twitter

 

google-home-notifier

Windowsでnode.jsのライブラリの「google-home-notifier」を使用しようとしたら

Cannot open include file: 'dns_sd.h'」とか

no module named gyp」とか

色んなエラーが出てダメでした。(gypとか入ってたはずなのだけど。。。)

そこら辺の環境構築はここを参考にしたらすんなりいった!

Google Home MiniをWindows10で喋らせる / kghr IT備忘録

 

Twitter

Twitter連携の部分は、ごく一般的な「Twitter」を使用。

$ npm install twitter

でこっちは問題なく入った。

 

あとは、APIを使うためにここから適当にアプリを登録してcredentialとTokenを取得。

Twitter Application Management

 

・Consumer Key (API Key)
・Consumer Secret (API Secret)
Access Token
Access Token Secret

↑これらを取得できたらソースコードの中に突っ込む!!

 

 

実装

あとは、サンプルとかを参考にしつつ、実装!

 

できた!!

※ユーザーIDとTwitter用の設定は各自の入れてね。 

 

ということで実動!!

 

f:id:piyomani:20180311215511p:image

 

しゃべらない!!!!

 

 

よく考えたら、旦那さんはそんなにつぶやくタイプの人ではかった。

まぁ、呟かないということは、きっと真面目にお仕事してるんでしょう。

 

 

ちなみに、自分Tweetを追うようにしたらこんな感じ

動いてるー!しゃべってるー!

 

一応常時稼働させておこうかな。

こっちが修羅場ってる時に「にゃーん」とかGoogleHomeから言われたら「はよかえってこいや!!」と爆発したくなるかもしれないけど。

 

 

 

参考

node.jsを使ってTwitterで特定のユーザがつぶやいた際にメールでお知らせしてみた - Qiita

【電子おもちゃ】ミニオンズの電子メモ

ふらっと行ったおもちゃ屋さんでこんなものを発見


ミニオンズの電子メモ!!
しかも¥1499!!
箱のサイズ的にiPad miniくらいかな!?


即お買い上げしてきました(*´꒳`*)♡


近くのカフェで早速ルンルン開ける。

ん?

ん???

んん??????



ち、ちいさい…。

思ってたサイズより2回りくらい小さい…。

よく見ると本体サイズが箱に書いてあったけど、全然見てなかった…。

ペンは小さくてペラいけど

しゅぱっと書いて

しゅぱっと消せる

基本的な機能は問題無し。

あと、小さい!って多少ショックを受けましたが、
ポケットティッシュと同じサイズで、ポーチにすっぽり入りました。

持ち運ぶならジャストじゃん!


割と満足しました(*´꒳`*)♡



その後、街をぶらぶらしたらゲーセンの景品で似たようなのが結構ありました。
今電子メモパッドって流行ってるのかな?

急遽プロキシサーバーが必要になった人の為に…

とある試験でプロキシサーバーが必要となったのですが、

フリーのプロキシサーバーだと何見られるか分からないし、

でも早急に環境欲しいし、

Windows環境しか手元にないし、

 

という状況になったのですが、良いツールが落ちてました。

\( Squid )/!!!

 

環境:

Client / ProxyServer役:Windows10 x64

 

手順

1.Server役環境でhttp://squid.acmeconsulting.it/index.htmlからSquidをダウンロード

2.適当に展開(ex)C:\squid)

3.etcフォルダ内の以下のファイルをリネーム

 mime.conf.default ⇒ mime.conf
 squid.conf.default ⇒ squid.conf

4.squid.confの”acl localnet src”にProxyサーバー役のアドレスを入力

 デフォルトで入っているものは#でコメントアウトしちゃう

 (ex)acl localnet src 192.168.10.12/24)

5.管理者権限で以下のコマンドを実行

 C:\squid\sbin\squid -z
 C:\squid\sbin\squid -i
 net start squid

6.ClientOSのプロキシ設定を以下のように変更(squidのポートは3128がでふぉ)

f:id:piyomani:20170828224444p:plain

 7.おしまい!!!

 

とっても簡単!!

ネットワーク苦手な私でも3分で準備完了!!!

助かった!!!!

 

【C/C++】アプリのメモリ不足対策

32bitアプリで大きい画像ファイルを何枚も、newしたメモリに読み込んでたら、bad_allocで落ちました。
newなのでヒープ領域に展開するのだけど、ヒープ領域が足りなくなったのだろう。という結論に。

ヒープの詳しい説明や活用は以下参考。
https://msdn.microsoft.com/ja-jp/library/ms810466.aspx


どんなにメモリを積んだPCでも、通常1つの32bitアプリで利用可能なメモリ容量は2GB。
色んなdllを使ったり、newしていたりしたので、すぐメモリが枯渇していたみたいです。



そんな時の対策として、VisualStudioで作成している32アプリの場合、「LargeAddressAwareオプション」なるものが存在し、64bit環境で動作させた場合に利用可能メモリを4GB程度まで増やすことが可能です。

プロジェクトのプロパティから、リンカー→システム→大きいサイズのアドレス
を「はい(/LARGEADDRESSAWARE)」に
f:id:piyomani:20170827235528p:plain



こうすることで、大きいサイズの画像をもりもり開いても落ちなくなりました!!
(4GBを超える勢いでもりもり開くとまた落ちるのだろうけど。そんなサイズ開く予定があるなら、ストリーミングな感じで開くやり方に変更するべきですよね。)

参考:http://www.webtech.co.jp/blog/optpix_labs/programing/6387/

【C++】COMを使ってExcel操作をするアプリというかクラスというか

突如「C++Excelを操作するアプリを作れ!」ということになったので、

作ってみた。

なんとなくもったいないから残しておく!!

 

 

.

C#とかVBでやろうとすると非常に簡単なのだけど、C++だと、COM周りが色々めんどくさいです。

MSに「MFC または #import を使用せずに C++ から Excel を自動化する方法」という素晴らしい内容があったので、ほぼパクリ。

https://support.microsoft.com/ja-jp/help/216686/how-to-automate-excel-from-c-without-using-mfc-or-import

 

使い方はこんな感じ。

 

 

 

使用者からの要望で、文字列と数値で扱う関数がそれぞれ分かれてるけど、VARIANT型にまとめちゃえば一個で済むし、いちいち使用箇所を選ばないので楽!

 

de:code2017参加してきたよ!

最早随分と遅れたレポートになってしまいましたが……

de:code2017に参加してきました!
会社的な都合でDay2だけでしたが。
本当はハッカソン参加したかった……(´;ω;`)


C++とかCなんか全然なかったよ。
自社が流行りには全く乗ってないんだな、ってことは理解した。知ってた。

ただ、今後MSが見据えるITの展望は多Platform(Xamalin、UWP)だったり、ネットワーク前提のデータ収集、データ分析(IoT、クラウド、AI)ら辺なんだろうな。と感じました。
それはMSに限った話ではないのだけど。
あまりR&Dしないうちのような会社では、恩恵も全力で受けられるわけではないし、流行りに乗れないので、個人でいっぱい触れていきたいな、と思いました。



🌸以下聴いたセッションの感想&まとめ🌸

#TL01 ------------------
VisualStudio 2017とC#7の新機能
 -------------------------

色々地味な機能だけど、使いやすくなってるんだな。と。
C#はそもそもあまり使わないので、恩恵を受ける程ではないのだけど、「そりゃ便利になったな!」って感じ。
特にライブデバッグと多値戻り値は便利なんじゃないかな?
いつも戻り値用構造体作っちゃうけどw
ただ、本当に地味な機能が多いな、って印象。
VS2015からupdateすると互換性の問題とか、客先との環境合わせの問題もあるからメインはまだまだ2015かも。
生ちょまどさんはやっぱり可愛いかった(*´ω`*)


#MR09 ------------------
デスクトップアプリをストアから配布する
 -------------------------
この前知って気になっていたDesktopAConvertor.exeのデモをClipStudioでやってくれました。
結構手軽にできるんだな、という印象。
今後のMSの方針(多Platformでの共通展開と、大本の安全性をMSが管理する。みたいな考え方)がよく感じられたセッションでした。
WACKとい認証キットが出たのも初めて知った。ドライバのロゴ認証でHCK/HLKとよく格闘している身としては、恐怖。



#MR09 ------------------
C#の現状と今後を徹底解説
 -------------------------
一言で言えば「C#って進化してるんだな。。。」
Ver.5から開発チームが2つに分かれてるから色々ごたごたしてるっていう裏話も聞けて楽しかったです。
.NetとかC#とかもっと使いたいなぁと思った。



#SC11 ------------------
セキュリティマニアックス
 -------------------------
一番楽しかった!
標的型メールとか、色々あるけど、実際にひっかかるとどんな手順で侵入されていくのか、っていうのをその場でデモしてくれて非常に分かり易かった。
「Clientがハックされるの前提で、後出しじゃんけんでどれくらい守れるか」という考え方が今後のセキュリティ製品の課題になっていくのかな、と思えました。
アセンブリ見れば色々わかっちゃうんだからすごい。



#AC04 ------------------
ブロックチェーン。BaaS。
 -------------------------
デプロイ王子様のありがたいお話。
ビットコインを買ってない身としては、あまり馴染みのない話だったのだけど、
確か今後伸びていくんだろうな。という話。
使い方も無限大だと思う。




[追記]
色々資料公開されてた!
やっほーい!
blogs.msdn.microsoft.com