いてづきブログ

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

RubyKaigi2019に行ってきました

もう1週間も経ってますが、RubyKaigiに行っていました。

railsにslimを導入するためにしたこと

slim-railsの導入 erb2slimを実行しようとしたが… I18nを導入 erb2slimを再実行 まとめ railsのviewをslimで書くためにやったこと。 slim-railsの導入 Gemfileにslimを入れてbundle install。既存のerbを変換するためにhtml2slimも同時に入れる。 gem 'slim-…

rbenvで最新版のrubyがインストール出来ないとき

rbenvで最新版のrubyをインストールしようとした rbenv install 2.6.1 && rbenv global 2.6.1 すると、エラーが出た。 ruby-build: definition not found: 2.6.1 See all available versions with `rbenv install --list'. If the version you need is missi…

スクラムフェス大阪に行ってきた

遅くなりましたがスクラムフェス大阪に行ってきた報告です。

clasp事始め2

前回の続き iteduki.hateblo.jp

Modelのアップデートでカラムを動的に変える

Railsの処理の中で、更新するカラムを動的に変えたい場合の書き方。 公式ドキュメント読んでもよくわからなかった(書いてなかった)のでメモ。 userのhogeもしくはmogeのどっちかをfugaに更新したい場合、下記のように書く。 field = user.condition? ? :ho…

clasp事始め

claspのインストールからpushできるようになるまで ドキュメント&公式リポジトリ github.com インストール 公式ドキュメントに沿ってインストールを試みる sudo npm i @google/clasp -g するといきなりエラーが出てつまづく ... npm ERR! code ENOENT npm E…

ぼっち演算子

ある日時フィールドstartについて、現在時刻より前かどうかを判定する必要があったが、そのフィールドがnilになる場合がある。 とりあえず正直に書いてみた。 def past? if start.present? start < Time.current else false end end これでプルリク出したら…

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.…