walkingmask’s development log

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

MENU

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

Google翻訳のChrome拡張が想像以上に便利だったので感動をシェアしたい

今まで、わからない英単語があると、三本指でタップしてました。 (Macユーザなので、トラックパッドで「3 本指のドラッグ」を有効にして、単語を調べてました) これで満足してはいたのですが、たまに難しい単語だと、日本語訳が出てこないことがあって、ホ…

Python, requests-oauthlib で Twitter の自分のタイムラインの人気ツイートを Retweet

泣き言 post と get を間違えて結構時間つぶした インストール mkdir retweepy && cd $_ pyenv virtualenv 3.5.4 retweepy pyenv local retweepy pip install requests_oauthlib サンプルコード import json from requests_oauthlib import OAuth1Session CO…

Ubuntu+Nginx で certbot ワンライナー

バージョンは以下の通り。 $ certbot --version certbot 0.19.0 以下、ワンライナー。 sudo certbot --nginx certonly -d example.com --email walkingmask@example.com --agree-tos -n --nginx を使うことで、Nginx を止めて standalone をすることも、well…

cron の実行時に外部ファイルから環境変数を export する

問題 以下のようなファイルに定義された変数を環境変数として export して cron を実行したい (Python の os.environ.get() で使いたい)。 ENV1=1 ENV2=2 ENV3=3 cron に環境変数を渡す方法としては、以下のようなものがある。 source env;job bash -l job …

freenom で取得した無料ドメインを ConoHa の VPS に登録する

手順 VPS の起動、freenom でのドメイン取得は済ませてある前提で VPS の IP アドレスをメモ ConoHa コントロールパネル のメニューから "DNS" を選択 "+ドメイン" ボタンを押して "ドメイン名" に freenom で取得したドメインを入力して保存 表示されたテー…

学習済みの A3C モデルを使ってみる

github.com 上記の素晴らしいリポジトリの学習済みモデルを使って、A3C が Breakout をプレイする様子を録画したいと思います。いくつかバージョンが違いますが、とりあえず動いたので良し。まずはインストール。 git clone https://github.com/muupan/async…

macOS の top コマンドを CPU でソートする

デフォルトは PID でソートされているので top -o cpu で起動。~/.zshrc あたりに alias top='top -o cpu' にしておくとナイス。実行中に o -> cpu をタイプでもできる。

Python で動的にモジュール内のクラスを指定する

Python 3.5.2 で getattr を使って、モジュールから文字列でクラスを指定し、インスタンスを生成する。 ファイル構成は以下の通り temp ├── main.py └── agents ├── __init__.py ├── agent1.py └── agent2.py 各ファイルの中身 # main.py import agents def …

OpenAI Universe の Mini World Of Bits (MiniWoB) のデモデータを作る

GitHub リポジトリは こちら。データセット作るぞ! システム環境 macOS 10.13 pyenv-virtualenv 準備 デモを撮るために、以下をしておく必要があります。 MiniWoB の Docker コンテナから 'app' ディレクトリをダウンロードする 'app' に入っている 'gym-de…

macOS から macOS の画面を Ubuntu のディスプレイに表示させる

経緯 ゼミやなんかをやるときに、HDMI で MacBook Pro を大型ディスプレイに接続していると、 なかなか接続できない ケーブル (との接点) を動かすと接続が切れる 相性が悪いのか、そもそも接続できない なんてことが多々起きて、フラストレーションが溜まっ…

ISUCON 夏期講習 2017 に参加して来ました

2017 年 8 月下旬、東京。沖縄と変わらないかそれ以上に暑い新宿で ISUCON 夏期講習 2017 に参加しました。 東京に遊びに行くため何も考えず去年の悔しい気持ちを糧に次の ISUCON では自力で本戦出場 (学生枠) したいという思いを胸にして、思い切って応募し…

OpenAI Universe の World Of Bits 環境の用意

こちらの記事の続きになります。 walkingmask.hatenablog.com 上記記事にも書いてますが、pytest が通ってないので、今後、不具合が出てくる可能性あり。どうにかしたい…。 Mini World Of Bits benchmark Mini World Of Bits benchmark とは、強化学習エージ…

OpenAI Universe を Ubuntu 16.04 にインストールしたい

OpenAI Universe を Ubuntu 16.04 にインストールしているのですが、かなり躓いているので記録。 まとめ 記録をまとめると、 どっちも pytest は通らなかった Ubuntu 16.04 リポジトリの Dockerfile はビルドできなかった (Hash Sum mismatch) 適当な image …

jupyterlab をパスワードなし token なしで使う

前提 そんなインセキュアな方法で使うの?と言いたくなりますが、内部だけで使う分にはサクッとアクセスできた方がいいと思い、やろうとしたところちょっとハマったので記録。 解決はしましたが、全く推奨されない方法なので、行う場合は自己責任でお願いし…

Docker Volume としてマウントしたディレクトリでのファイル作成時の所有権問題

問題 Docker に Volume としてマウントしたホスト上のディレクトリに、コンテナ側からファイルを作成すると所有者やグループが root になってたりします。 user@host ~ % sudo docker run -v ~/Directory:/Directory -it image:latest /bin/bash # ホストの…

メモリの少ないグラフィックボードで MNIST を動かす

先日、GeForce GT 730 を乗せた自作 PC の TensorFlow 周りの環境を整えました。 walkingmask.hatenablog.com しかし、予想通り、環境構築に満足してしまって、肝心の TensorFlow をゴリゴリ書いたりはしてませんでした。 ところが、思いがけずインターンに…

クラウドドライブを使った分散バックアップ

卒論に向けて、クラウドを活用した分散バックアップ用の、Mac 向けスクリプト及びデーモンを作りました。 github.com 使用方法 使うためには、各クラウドドライブアプリをインストール・ログインして、ホームディレクトリ以下 (iCloud Drive は別) にそれぞ…