Azure Machine Learning チュートリアルを公開しました

先日CLR.H in TokyoでAzure Machine Learningについて登壇してきたわけですが、その時に作ったAzure Machine Learningのチュートリアルを公開します。 https://github.com/garicchi/azureml-tutorial 内容は気象庁の過去データを使って数時間後の気温を回帰分析で予測するという内容です。 インターネットのない環境でせこせこ作ってたのでスクリーンショット付きでわりとわかりやすいかと思います。 まあ機械学習系のチュートリアルは公式ドキュメントなどいろんなところに落ちてるわけですが、たいていデータセットが予め用意されているのでどういうデータがなぜ必要なのかとかがわからないパターンが多く そんな中で気象庁のデータは非常にわかりやすい形で回帰分析を学ぶことができるデータセットだと思っています。 Azure Machine Learningに入門したい方はぜひお試しあれ    

複数のPowerPointのファイルたちをInteropを使って1つのPDFに6スライド表示で出力する

とある用事があって、60個近くある.pptxをすべて1枚あたりに6スライドある表示(配布資料表示)ですべて1つのPDFにするということが必要になったわけですが、61個のpptxをすべて手作業でpdfにするのはプログラマーとしてあるまじき行為(三村親方談)なので自動化を試みました。 結果、OfficeInteropを使って自動化に成功しました。 やりかた まずはMicrosoft Print to PDF仮想プリンタをデフォルトに設定します。 次に適当なC#のプロジェクトを作り、参照マネージャからCOM >[Microsoft Excel 16.0 Object Library]と アセンブリ>拡張>[Microsoft.Office.Interop.Powerpoint]の2つを追加します。 あとは以下のコードを走らせるだけ var pptxDir = @”{ your pptx directory here! }”; var files = Directory.GetFiles(pptxDir,”*.pptx”); foreach (var file in files) { Debug.WriteLine(file); var pdfName = file.Replace(“.pptx”, “.pdf”); var pptApp = new Microsoft.Office.Interop.PowerPoint.Application(); var presentation = pptApp.Presentations.Open(file, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse); presentation.PrintOptions.HandoutOrder = Microsoft.Office.Interop.PowerPoint.PpPrintHandoutOrder.ppPrintHandoutHorizontalFirst;…

都民へと昇格した

本日から3月まで東京都民へと昇格を果たしました。拠点地は東日本橋あたりです。理由は聞かないでください 契約したマンスリーマンションは机が狭い以外はまあなんかいい感じ(広いし)なので最高かよっておもってたらネット回線が来ていないことに入居した後に気づきました。 契約書を見返すと設備に「インターネット」の文字はどこにもなく、テレビよりもエアコンよりも大事なネットのない世界で2カ月生きていきます。 まあそんなことをしたら死んでしまうので明日あたりにWiMAXでも契約しに行こうかな… 3月までは東日本橋あたりをうろうろしてるのでかまってやってください

MicrosoftBotFramework v1とv3の罠

結論 使用していたクラスはv1時代のものでv3では非推奨となっている(使えるけど) v1時代はSkypeのグループ会話に対応していなかった v1時代のクラスでBotを開発していたのでSkypeグループでのMentionに反応できなかった v3のクラスに置き換えましょう 事の発端 12/18に横浜でMicrosoftBotFrameworkのハッカソンを開いたとき、参加者の方からこのような質問をいただきました。 BotFrameworkで作成したBotが、普通の1対1の会話には反応してくれるけどグループ会話に追加したときに反応してくれない   そもそもBotFrameworkはSkypeのグループチャットを有効にしたとき、「@botname こんにちは」などのMentionを飛ばすことで反応ができるはずなのに実際に動きを見せてもらったら見事に反応してませんでした。 その後ソースコードをいただき、その原因を探ってみました。 ソースコードは以下となります。(掲載許可はいただきました) var restify = require(‘restify’); var builder = require(‘botbuilder’); var port = process.env.PORT || 8080; // Create bot and add dialogs var bot = new builder.BotConnectorBot({ appId: process.env.MICROSOFT_APP_ID||”, appSecret: process.env.MICROSOFT_APP_PASSWORD||” }); var dialog = new builder.CommandDialog(); dialog.matches([“help”],function(session){ session.send(“これはゲームしよbot(仮)です。”); session.send(“現在応答する単語には Hi,hi,Hello,hello,こんにちは,シージしよ,シージして? があります。”) }) dialog.matches([“Hi”,”hi”,”hello”,”Hello”,”こんにちは”],function(session){…

時間のかかるpythonスクリプトをssh上でログアウトしても止めずに実行し続ける

Linuxでsshをし、ログアウトしても実行し続けるにはコマンドの前のnohupをつけます nohup {command} > out.log & これでout.logファイルに標準出力が入ります しかしpythonでnohupを実行すると、出力がバッファにとどまってしまうので-uオプションをつける必要があります。 nohup python -u {script file} > out.log &