walkingmask’s development log

IT系の情報などを適当に書いていきます

MENU

2つの動画の類似度を求める

ググっても意外と出てこなかったので、シンプルな実装をログ。より効率的なアルゴリズム、高パフォーマンスな方法が他にあることは明らかなので、見つけ次第追記していければと思う。 実験用リポジトリは以下。 github.com 画像の類似度 動画はただの画像の…

Docker コンテナをコマンドなしで起動させ続ける

docker run -d -t ubuntu:16.04 デバッグ用に Ubuntu 環境が欲しい時に、サクッとコンテナ立ち上げて、かつ、しばらく立ち上げて置きたい時に。 とっても単純な操作なのに意外と知らなかったのでログ。 日本語で調べると次のような方法が出てくる。 Dockerの…

Twitter API developer account 申請ログ

AINA の Twitter Bot のために、もともと twitter api のアカウントは持っていたのだけれど、しばらくそれが死んでいたので、AINA メンテの機会に developer account に乗り換えたのでログ。 ということで、今回のケースは、 app.twitter の方で API を作っ…

Django - MySQL Connector/Python で INSERT IGNORE できない問題

最新のもの使えば起きなかった問題かもしれないが、起きたものは起きたので、一応メモ。 各種バージョンは以下の通り。 Python: 3.6 Django: 1.11.7 MySQL: 8.0.12 MySQL Connector/Python: 8.0.13 エラーは次のようなものが吐き出される。 File "/usr/local…

ブックマークをPATHのように扱えるChrome拡張を作った

Slash Bookmarks ソースコード 前回の作った平成ドローに比べると地味だけど、これもずっと作りたかったものを形にできたので最高。 開発中のログを加筆修正・まとめつつ載せておく。 デモ アイディア 2018/03/17 にはアイディアがメモされている。割と新し…

Promiseのresolve後の挙動

初歩的な知識だと思うけど、割と詰まったのでログ。 function f1() { return new Promise(resolve => { for (let i = 0; i < 10; i++) { if (i > 3) resolve(i); console.log(i); } }); } async function f2() { const r = await f1(); console.log(r); } f2…

平成コラgif作成ツールを作った

平成コラ作成ツール作りました平成最後の夏にクソコラ量産しましょうhttps://t.co/fgerWA3H2x pic.twitter.com/DTGgiPwySP— 升 (@walkingmask) 2018年10月8日 ツイートした後に気づいたけど夏終わってorz なりゆき "Trump draws" という面白画像のジャンルを…

Firebase Realtime Database と Cloud Functions でジョブを定期実行する小技

オフィシャルな方法ではないけど、表題の機能をこの2つだけで実現する方法をログ。 ただし、分単位での実行やユーザの滞在時間内での話になる。 developers-jp.googleblog.com これ系の記事をググると、こういった正当な方法が出てくるので、特に制約がない…

単一タブ内でページ更新後も情報を引き継ぐ

(初心者の私が)jsを扱う上で割とぶち当たる問題がページ更新やブラウザバック。 頑張って処理している途中に突如降りかかる F5 アタックを想定せずにフロントを書くことはできないと思う。 Webサーバでセッション管理していたり、そもそも処理のほとんどが…

今日のはてブホッテントリを表示するブックマークレット

ググったら腐る程出て来そうだけど、ネタがなさ過ぎてブログを全く更新していないのでカサ増し。 javascript:(function(){let t=new Date();location.href='http://b.hatena.ne.jp/hotentry/all/'+t.getFullYear()+('0'+(t.getMonth()+1)).slice(-2)+('0'+t.…

video.currentTimeの挙動

video = document.getElementById('video') console.log(video.duration) //=> 9.88 console.log(video.currentTime) //=> 0.0 video.currentTime = 1.0 console.log(video.currentTime) //=> 1.0 video.currentTime = 8.0 console.log(video.currentTime) /…

MacOS (High Sierra) の pyenv で pygame を使おうとするとキー入力が効かない問題

巷じゃ結構問題になっているようで、Python のバージョンを変えるとか、brew で Python 入れるとか、pythonw を使うとか、conda install python.app とか色々あるようです。 python - Pygame keyboard input issue - Stack Overflow Python pygameのキー入力…

TensorFlow.js を使って MicroExpNet をブラウザ上で動かしてみた

作ったもの。 github.com はじめに clmtrackr.js という、ブラウザ上で表情認識できてしまう、驚異的な技術があります。 github.com (デモはこちら) Webカメラの映像に対してリアルタイムで表情認識を行えます。 ただ、中身を見ると、流行りのディープラーニ…

TensorFlow.js で RGB2GRAY を実装する

TensorFlow.js の記事自体が少ないので、どんどん生成していきたい気持ちです。 とても基本的な機能ですが、意外と公式ドキュメント見てもささっとは実装できなかったので記録。 // rgb は Tensor const [r, g, b] = tf.split(rgb, [1, 1, 1], 2); const gra…

Saver.save で保存したモデル (checkpoint, data, index, meta) をプロトコルバッファ (pb) に変換する

かなり泥臭い方法ですが、自分なりに解決した記録です。 前提として、モデルの定義部分の Python コードが必要です。 要約すると モデル定義のコードと meta などからグラフ作成 tf.get_default_graph().as_graph_def().node を print してそれっぽいのを探…

GitHub PagesでWebページを公開する

要約 リポジトリの作成 index.htmlを直下に配置 リポジトリの「Settings」→「Options」→「GitHub Pages」→「Source」を「master branch」に変更 こんだけで公開できちゃう!すごい! 経緯など https://t.co/lRozhSloqP超便利じゃん。なんで今まで使ってなか…

自分のためのdocstring書き方メモ

こちらの記事をdocstringの書き方の参考にしているのですが、一覧でバッと見たいので自分のためまとめました。 [Python]可読性を上げるための、docstringの書き方を学ぶ(NumPyスタイル) class Cls: """ This is description of this class. Attributes ---…

Python3でIterableなオブジェクトの先頭にアスタリスクをつけてリストに入れる

具体的には、 [map(str, [1, 2, 3])] # > [<map object at ...>] [*map(str, [1, 2, 3])] # > ['1', '2', '3'] という感じ。関数にリストを渡すとき、リストの先頭にアスタリスクを付けるとunpackされるのは有名らしい(今日知った)。 しかし、この場合はそれに該当しない気が</map>…

PHPのクラスで、メソッド呼び出しに前処理を挟む

Pythonだとデコレータとかで簡単に実装できるが、PHPだとなかなか出てこなかったので。 前処理を挟みたいメソッドをprivateにして__callを使えばいいみたいですね。 stackoverflow.com テラテイルにも同様の回答があるのですが、コードが全く一緒で(むしろコ…

PHPでShift-JISで定義された文字列を列挙する

ググっても意外と出てこなかったので。 2) { $sjis .= $char; } } echo $sjis."\n"; SJISの16進コードを10進に変換してforを回す 10進 -> 16進 -> バイナリ -> UTF-8と変換する strlenで長さ…

【速報】Visual Studio Live Share Public Previewを早速試してみた

本日、Visual Studio Live Share Public Previewが公開されたので、@ryokka_ieくんと一緒に早速試してみました! code.visualstudio.com まずは、VSCodeを開いて「VS Live Share」をインストールします。 左側のメニューバーの一番下のアイコン"Extensions"…

Ubuntu 18.04 LTS、GeForce GT 730でnvidia-driverを入れる

すんなり入って欲しかったけど、ちょっと詰まったので記録。 以下の記事にしたがってnvidia-driverをインストール。 linuxconfig.org ubuntu-driversはapt install ubuntu-drivers-commonで入る。 ここで、nvidia-smiを実行すると、 NVIDIA-SMI has failed b…

GASとLINE Messaging APIで「My『文字起こし君』」を作る!(AIじゃなくてOCRで!)

どうも、GAS芸人のますくです。 今日、彼女とLINEしているとこんなメッセージが飛んで来ました。 URLはこちら。 【天才】LINEに画像を送信すると文字起こしするプログラムを作った人が話題に|オタクニュース んー、面白いアイディアですね! ってことで、例…

Google Apps ScriptでGitHubのProjectsの内容をSlackに流す

またGASネタです。GASの記事ばかり書いてて、GAS芸人になりつつあります。 下記の記事を見て、個人的に研究のTodoをProjectsで管理していて、それをSlackに流している話を書こうと思いました。 soudai.hatenablog.com GASなのでGitHubにコードをあげていない…

macOS High Sierra 10.13.4のアップデートで"The macOS Installation couldn't be completed"と怒られて正常起動できない問題の対処

macOS High Sierra 10.13.4にアップデート後、起動すると"The macOS Installation couldn't be completed"というメッセージが出てそれ以上進まないという状況に陥った。 セーフモードでは起動できるが、その後通常の再起動をしても改善せず。 apple.stackexc…

Google Apps Scriptを使ってGoogle CalendarをLINEに流す

こちらの記事の続きです。 walkingmask.hatenablog.com 結構はてブされていて、コメントで「スケジュールを円滑にする相手がいなくなってしまったため開発を中断...」の部分ばかり言及されていて大変恥ずかしい... しかし、スケジュールを円滑にする相手がい…

YAPC::Okinawaに参加してきました!

沖縄のヒートシンカーこと@codehex君に誘われて、ついにYAPC初参加してきました!! 三年前くらいからYAPCすごいよ行こうよと誘われていたのですが、Perlよくわかんないので毎回ふわりとかわしていました。 しかし、今年は地元沖縄での開催ということで、@ma…

MiniWobで遊ぶ: 強化学習xWeb

こちらの記事の続きです。 walkingmask.hatenablog.com walkingmask.hatenablog.com ソースコード等はwalkingmask/wobで公開しています。 強化学習xWeb 強化学習といえば、Atariを攻略したDQNやAlphaGOが熱いですね。DQNは、ディープラーニングで画像から特…

Google Colaboratoryを使って5分でディープラーニングを体験できる資料を作った

colabがすごすぎて、テンション上がった勢いで作ったいました。 作った資料はこちら。 ほとんどこの記事と同じ内容だけど、データの可視化や自分の書いた文字をpredictさせるとかこだわった。 時間計ったら、本当に5分弱でできそうだったので、どっかのLTと…

Google Colaboratoryでローカルにあるデータセットやモジュールを使う

簡単な例で、実践してみたいと思います。 まずは、ローカルで cat <<EOF >~/Downloads/data.txt 1,cat 2,bird 3,dog EOF cat <<EOF >~/Downloads/module.py def load_data(fn): with open(fn, 'r') as f: return f.readlines() EOF みたいなファイルを作って、Colaborato</eof></eof>…