いてづきブログ

情シスでやってみたことの備忘録

attr_accesorとpublic_send

classのattrに対して下記のようなpublic_sendで値を設定できるらしい。 public_send("#{attribute_name}=", val) ということは、obj.hoge=の`hoge=`はメソッドなのか?と思って呟いていたら、attr_*はhoge フィールドとhoge= メソッドを定義するものだと教え…

mongoDB + Python3環境をDockerで作った

ちょっと大量のデータを扱うことになったのでmongoDBのセットアップをした。 当初はGAS+スプレッドシートでササッとやるつもりだったが、調べていくとデータの件数が数十万件を超えることが発覚したのでGASではさばききれない*1ためDBを立てることにした。 m…

Rails g migrate覚書

既存のmodelにカラムを追加するやり方 rails g migration クラス名 クラス名は通常「行なう処理+テーブル名」になる。例えば、AddAgeToUsers(またはadd_age_to_users)となる。 生成されたマイグレーションファイルのchange内にadd_columnを書けばいい。 …

技術書典5に参加します

技術書典5でGAS本を頒布します。 技術本はおろか、同人誌さえ出したことがないのでわからないことだらけで四苦八苦してます。 当初はGASを網羅的に扱った本にしようかと思ってましたが、なにかテーマを決めたほうがいいなと思ってTwitterとかで話してた結果…

Slackのカスタム絵文字をLINEスタンプ風に表示するbotを作った

Qiitaに投稿しました。 ソースと使い方はこっち。 主な内容はQiitaに書いたので開発時点の苦労話でも。 トークンについて いまひとつSlackのTokenの扱いがよくわからない。 もともと参考にしたやつではherokuにデプロイして各ユーザーのトークンを保存するこ…

GASでSUUMOの検索結果を一覧で表示できるスクリプトを作った

7月に引っ越すにあたって引越し先の選定をしないといけないが、SUUMOで表示される内容を見やすく一覧で見るためにスクリプトを書いた。 ただしSUUMOにはAPIがないため、検索結果のURLを叩いて返ってきたレスポンスを解析するという手法を採っている。 そのた…

javaにvarが実装されたらしい

もうjavaは久しく触ってないですが。 togetter.com var (型推論)が導入されていろいろ物議を醸しているみたい。 C#では10年も前に実装され、散々され尽くしたであろう議論がまた行われてるのを見てるといろいろと考えてしまう。 そこそこよく見かけるjava…

Postmanでファイル送信

嵌ったのでメモ。 POSTでform-dataを選び、keyの右側あたりにカーソルを当てるとTextと出るのでここをFileに変更。 するとファイル選択ボタンが出るのでここでファイルを選択。 keyはfileで良い模様。

Windows10の画面がセピア調になったときの対応

Win + Ctrl + Cを押下すれば直る。 具体的にはWindows10のカラーフィルターのショートカットになっているので、再度ショートカットを入力してフィルターをオフにしてやればいい。 コピーしようとしたときにたまたま押下してしまって、ケーブルの接触とか疑っ…

ナンバープレートの正規表現

日本のナンバープレートの入力を正規表現で検証してみる。 こちらはGoogleフォームの検証機能で使用した。JavaScriptと同じ仕様? Googleフォームで使用する場合は最初と最後の/を省く必要があるみたい。 これ↓ ^[\u30a0-\u30ff\u3040-\u309f\u3005-\u3006\u…

ObjectのArrayから要素を削除する

javascriptのarrayにはremoveはないのでspliceを使用する。 const ary = [1, 2, 3] ; ary.splice(0, 1); console.log(ary); // [2, 3] spliceは配列に対して、第1引数のindexから、第2引数の数だけ要素を排除する。 Array.prototype.splice() - JavaScript |…

Vue.jsで苦戦

いろいろ調べてるけど、各記事によって作法がバラバラだし、そもそも.vueファイルに書くのか.jsに書くのかも定かじゃない記事ばかり。 たかがajaxで取ってきたデータで選択リストを作るところでさえこんなにわかりづらいとは…。 自分が全然わかってないから…

Seleniumを触ってみる

ブラウザのテストや操作を自動化出来るSeleniumを試してみた。 環境はWindows10とPython3。 seleniumのインストール pipでseleniumをインストール pip install selenium ChromeDriverを入手 下記サイトから各OS用のChromeDriverを入手(記事時点では2.33) W…

サービスアカウントを用いたGoogle APIへのアクセス方法

qiita.com Qiitaに投稿しました。 認証とかいろいろ面倒くさくて大変。 Developer Consoleの見た目がいろいろ変わってて、目的の画面にたどり着けなかったりして、疲れたorz GASなら簡単にできるのになー(笑)

Windowsのログインパスワードを忘れた際の対処

必要なもの ・Windows(7,8,10)のインストールディスク、または”システム修復ディスク” これがない場合はPC初期化しかないと思います。 手順 Windowsのインストールを行う。 ※WIndows10でうまくインストーラが立ち上がってこない場合は、Windowsキー→電源→s…

機械学習で遊ぶ~素材準備編~

機械学習を行うためには大量の学習用データが必要ということで、デレステのMVから顔画像を切り出した。 元動画の準備 MacならiPhone・iPadを接続して、QuickTimePlayerの新規ムービー収録でソースにiPhone・iPadを選べば簡単に録画できる。 Windowsでは多分…

機械学習で遊ぶ~マイグレーション編~

セミナーでtensorFlowの解説をしてもらってようやく機械学習の流れみたいなものがわかったので再開。 ひとまずネット上に公開されてる様々なコードを実行して動きを確かめてみようとしてつまづいたのでメモ。 以前はbashで実行するための準備だったが、Windo…

オブジェクトの配列の各要素に同じ処理をする方法

C#

C#で配列やコレクションのすべての要素に処理を行うでググると色々出てくるけど大抵の場合intとかstringみたいな基本型のものだったりする。 こんな感じ。 IEnumerable<int> intAry = new List<int>() { 1, 2, 3, 4, 5 }; // 各要素を2倍にする intAry = intAry.Select</int></int>…

Ext JS Reactorを試す

ReactでExtJSのコンポーネントを扱える。 Sencha Roadshow 2016でやってたやつだと思う。 とりあえずサンプルを動かすところまでやったので備忘録に残しておく。 環境はWindows10 64bit. node.jsをインストール https://nodejs.org/ja/ これをインストールす…

機械学習で遊ぶ~環境準備編~

Windows10で機械学習で遊んで見るための準備編 いろいろあれこれ試したあとに書いてるので抜け漏れがあるかもしれない。 経緯 前々からPythonや機械学習に興味があったが、これらを利用してアニメでの顔認識をやっている記事が幾つかあったので勉強がてら試…

Windows10でupdate後に自動で再起動されるのを無効にする

Windows10になってから、デフォルトだとWindows update後にアクティブ時間外に自動で再起動されるようになってしまいました。 勝手に再起動されると正直かなり迷惑なので無効化します。 ・ローカルグループポリシーエディターを開きます。 Cortanaに聞いてグ…

ExtJSのAjax.requestでファイルを扱う方法

binary: trueのオプションを設定すれば、response.responseBytesに格納されてくるのであとはblobを好きに扱える。 Ext.Ajax.request({ scope: this, url: 'url', binary: true, method: 'GET' }).then(function (response) { var blob = new Blob([response.…

Dropboxの容量が突如足りなくなった場合の対処

Dropboxを使っていたら突如、容量がいっぱいになる旨の通知が。 しかし、フォルダの中身を確認してみるもせいぜい3GB程度しか使用しておらず、全然余裕はあるはず。 調べてみたところ、キャッシュが容量を圧迫していた模様。 www.dropbox.com 通常は3日でキ…

iTextSharpの記事に追記した

qiita.com iTextSharpの記事にページの追加と、文字列の幅の判定方法を追記した。 業務でまたiTextSharpを使うことになったので、更に追加で別の用件や、以前使わなかった部分があったので追記しました。

IMongoQueryでnullかどうかを判別する

値がnullかどうかで判別する場合はBsonNull.Valueを使う var collection = db.GetCollection("collection"); var query = Query.EQ("name", BsonNull.Value); var docs = collection.Find(query);

slackに返信・引用ボタンを追加する

部署内にslackを導入してみたもののなかなか活用されない日々…。 聞いてみるとTwitterみたいに返信ができなくて、話題が流れてしまうと返信とかを書き込みにくいとのことで、 返信ができないか探してみた。 結論から言うと下記のChrome拡張を入れたら解決。 …

splitの区切りに文字列を使う

C#

C#のsplitで分割しようとしたら、char型の1文字しか指定できなかった。 …と思ったらやっぱりやれば出来たという話。 こんな感じ。 var s = "12@@34@@55@@66";var split = s.Split(new string { "@@" }, StringSplitOptions.None);Console.WriteLine(split); …

slackをRSSリーダーのように使う

家庭を支える技術アドベントカレンダーを見ているとslackがかなり流行っているようなので自分でも導入してみました。 ※一緒にチャットしてくれる人がいませんが…(泣) slack.com 記事を読んでいると「○○の更新をslackに流してる」とかいう表現が多かったの…

GASアドベントカレンダーに参加しています

毎年恒例のGoogleAppsScriptのアドベントカレンダーに参加しています。 qiita.com 毎年参加したいなーと思いつつもネタが無かったのですが、いろいろと眺めてた時に見たスライドでハードルを下げられた(と思って)ので参加してみることにしました。 話すハ…

Execution APIで躓いた点のメモ

Google Apps Scriptを外から叩けるExecution APIが公開されました。 Apps Script Execution API を使用して Google Apps Script をより活用する http://googleappsupdates-ja.blogspot.jp/2015/09/apps-script-execution-api-google-apps.html おおまかな使…