動かざることバグの如し

猫ゆえに。。。

Pyrthon3でエクセルファイルをCSVに変換する

たいてい転がってるサンプルがPython2でキレたので書いた 変換するにはライブラリが必要である。Pythonでエクセルを扱えるメジャーなライブラリは以下 openpyxl pandas xlrd 順に見ていく openpyxl xlsには対応していない。 Openpyxl is a Python library fo…

ActiveRecordのコネクションプーリングを完全に殺す

環境 Rails 5.2 MySQL コネクションプーリングとは 割愛 以下のサイトが詳しい Rails4.2のコネクションプールの実装を理解する - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.) やり方 database.ymlにreaping_frequency: nil を追加するだけ def…

RailsのModelを動的に生成してDBに接続する方法

環境 Rails 5.1 やりたいこと 普通、RailsのModelはapp/model以下に予め記述するが、特殊な例で動的に生成させたい場合 最初はメタプログラミングでいけるやろって思ったけど、 > mymodel = Class.new(ApplicationRecord) => #<Class:0x007f8e422a3668> (call '#<Class:0x007f8e422a3668>.connection' to esta</class:0x007f8e422a3668></class:0x007f8e422a3668>…

mysqlcheckで壊れたDBの修復を試みる

変なタイミングでサーバーがクラッシュすると、MySQLのデータもおかしくなる時がある。 Table 'xxxx' is marked as crashed and should be repaired Incorrect key file for table '/tmp/#sql_******'; try to repair it とかがそれ。そんな時にmysqlcheckコ…

Rubyの高速JSONパーサーojは本当に高速なのか

rubyでJSONをパースするときはJSON.parseが一般的だがojライブラリを使ったほうが速いらしい。 ohler55/oj: Optimized JSON A fast JSON parser and Object marshaller as a Ruby gem. が、このライブラリ自体は結構昔からあるし、Ruby 2.5時代でも本当に有…

vuexメモ

自分にはNuxtJSは早すぎた(てきとう 以下のようなsrc/App.vue <template> <div> <h1>{{ msg }}</h1> </div> </template> <script> export default { data() { return { msg: 'nyaa', }; }, }; </script> これは今まで。これをstoreで管理できるように yarn add vuex でsrc/main.jsはデフォルトだと以下のようになってい…

Chrome拡張機能作ったけど審査通らなかった話

てかお前審査してたんかよ。。。( 経緯 意外に知られていないが、Kindleはアプリで見る以外にKindle Cloud Readerというブラウザ版が存在する。 つまり https://read.amazon.co.jp/ にアクセスするとブラウザ上からKindleの本/漫画が読める。 が、タブで開…

ActionMailerのメール送信ログを出力する

久々のRailsネタ 今回やりたいのはActionMailer経由でのメール送信時に送信先のログを吐きたい。 ActionMailerにはObserverというトリガー?的な機能があるのでそれにhookする感じで まずはログ出力先の設定 config/application.rbに追記 config.mail_logger…

Amazonのアカウント停止メールが来てた話

※ 詐欺メールです Amazonからアカウント停止メールが 普段使ってないメルアドのBOX見てたらAmazonからアカウント停止メールが メールのタイトルは「Amazon Team- 尊敬する名無し太郎 --リスクのため、お客様のアカウントは無効になっています。」 (実際には…

nuxt ganerateで生成するディレクトリを変更する

nuxt.jsで静的ホスティングしたいときはnuxt ganerateコマンドを叩く(実際にはnpm run generate) これでdistディレクトリ内に生成されるが、都合的に他のディレクトリに出力したい場合 やり方 nuxt.config.jsに以下追加 module.exports = { … generate: { …

nuxt.js めも

インストール $ vue init nuxt-community/starter-template <project-name> ディレクトリ構造 ├── assets アセットファイルたち ├── components Vue.js のコンポーネントファイル 基本いじらない? ├── layouts レイアウトファイル ├── middleware レンダリング前のカスタ</project-name>…

iodineでVPN over DNSなVPN環境を構築する

iodineとは iodineとはDNSパケットを利用してVPN通信を実現するVPN over DNSのネットワークシステムを実現するアプリケーション。 普通のVPNでええやんって思うかもしれないけど、IPsecのVPNではファイアウォールの規制が厳しい環境だと使えないかもしれない…

YouTube Data API v3でサクッと動画検索

やりたいこと キーワード叩いたら動画一覧が取得できる。 用意するもの v3からキーが必須 GCPのAPIライブラリ一覧からYoutube Data APIを有効にする プロジェクトなかったら作る 次に https://console.developers.google.com/apis/credentials よりAPIキーを…

ShangriLa Anime APIで遊ぶ

ShangriLa Anime APIというAPIをこの前知った。秋葉原IT戦略研究所というところが無料で出しているらしいが、結構データが豊富で面白い。ここのサークルは以前の技術書典で本買った記憶がある。 が、ドキュメントが幾つか分散していたのでまとめメモ 共通仕…

kotlinのData Classでcustom getter/setterを実装する

結論からいうと色々カスタマイズしたいならData Classを使わずに普通のクラス作れって話 環境 kotlin 1.2 やりたいこと kotlinには普通のクラスとは異なり値を格納するためだけのクラス、Dataクラスがよいうされている。変数を宣言するだけで自動でゲッター…

kotlin-Androidで文字列⇔日付の相互変換

コピペで再利用できるように 環境 Android Studio java SE7 本来、JavaレベルではJava SE8に追加されたtime APIが使えるのだが、Android上で使えるのAPIレベル26以上、つまりOreo以降になる。(誰もいないw ので今回はベーシックなSimpleDateFormatを使う S…

Chromeが00000000とか大容量ファイルでディスクを消費している件

mac

まじChrome先生戦犯でしょ。 発端 Macのディスク容量が結構圧迫してきたので調査していたら、Chromeがめちゃくちゃ容量食ってた $cd ~/Library/Application\ Support/Google/Chrome/ $du -ch|tail 16K ./System Profile/data_reduction_proxy_leveldb 20K ./…

MySQLでバルクアップデートをする

MySQLでもbulk update ・・・的なことをしたかった話。 普通にアップデートするだけだと UPDATE users SET yatin = 'taro' WHERE id = 1; UPDATE users SET yatin = 'hanako' WHERE id = 2; て書くが、1レコードごとに1クエリ走ってしまい、5万行を一括で…

Ubuntuの/bin/shはbashではなくdashとかやつ

めっちゃハマった。。 どういうこと # ll /bin/sh lrwxrwxrwx 1 root root 4 Feb 18 2016 /bin/sh -> dash* は????????? dash is ashとかいうBourne互換シェルのDebian版 だからd+ashでdash 厄介なのがBourne互換シェルを唄っているくせにbash等の…

CentOSでcan't create Thread: Resource temporarily unavailable対策

参考リンク Linux におけるスレッド数の上限 UNIX ulimit Settings — MongoDB Manual 3.6 環境 CentOS6 ある日いきなりSSH接続ができなくなった ログ見ると「ThreadError: can't create Thread: Resource temporarily unavailable」。どうもスレッド数が制限…

メインデスクトップPCのOSをUbuntuに変更した

今までWindows使ってきたけどアップデート面倒だしってことでなんとなく変えた 変更先 Ubuntu MATE 18.04 まだBeta版だが実質候補版?の立ち位置 いまのところバグっぽいバグには遭遇していない すごかったのが特にローカライズされてないバージョン入れたの…

買ったばかりのNexus5XにカスタムROMを焼くまで

中古でNexus5Xが16,000円と結構安く買えたので早速弄ってみた。 用意するもの 起動できるNexus5X adbが叩けるWindowsPC 文鎮化しても泣かない心 流れ ブートローダーアンロック Data領域の暗号化解除 純正のimg焼いて8.1にアップデート TWRPのインストール …

Google Text To Speech APIをcurlで実行してみる

Mac or Linux環境で動く 必要なもの curl jq macならbrew install jq mp3が再生できるやつ macならbrew install mpg123 GoogleのAPIキー GCPの管理画面->認証情報から「認証情報を作成」→「APIキー」を選択 生成されたキーを控えておく コード #!/bin/bash t…

GCPのインスタンスを生成するコマンド

コード PROJECT=myproject NAME=db01 TYPE=g1-small DISK_SIZE=10GB ZONE=asia-east1-a gcloud compute --project $PROJECT \ instances create $NAME \ --zone $ZONE \ --machine-type $TYPE \ --tags http-server,https-server,trains \ --image-family ub…

Rails 5.2の新機能Credentialsでパスワード等を管理する

環境 Rails 5.2 要点 今までのsecrets.yml および rails secrets:xxxx方法は非推奨 今後は rails credentials:edit で秘匿情報の編集ができる 暗号化されたファイルはconfig/credentials.yml.enc 複合キーはconfig/master.key もちろん.gitignoreされている…

Javascriptで生成したHTMLをiframe内で表示させる方法

参考リンク曰く、「かなり限られたユースケース」に遭遇してしまったためメモ コード var iframe = document.getElementById('myframe'); var html = '<h1>こんにちはせかい</h1>'; var blob = new Blob([html], { type: 'text/html' }); iframe.src = URL.createObje…

Ubuntu 16.04を2TB以上のディスクにインストールする際の注意点

環境 Ubuntu 16.04 2TB以上のHDD 結論 バグ?というか2TB以上のHDDにUbuntu 16.04をカスタマイズしたパーティション構成でインストールしようとするとコケる が、後述するコマンドで対策可能 経緯 2TBのディスクにUbuntuをインストールしようとしたが、何…

花粉飛散量の過去データを取得できるサイト一覧

花粉の推移って予測だとか分析にもってこいの話題なのでは!?と思ってググったけどなかなか天気と違っていい感じのがない。 はなこさん 「花粉 データ」でググると最初にでてくる環境省花粉観測システム(はなこさん)。いったい何世代前のWEBシステムなん…

ARCHISS ProgresTouch RETROがREALFORCEジェネリック版ぽくて良い

先週秋葉原散策している途中にツクモでキーボードを買った。「ProgresTouch RETRO」ってやつで個人的には初の赤軸。 ARCHISS ProgresTouch TKL ワイヤーキープラー付 日本語91 二色成形 PS/2&USB CHERRY赤軸 テンキーレスメカニカルキーボード AS-KBPD91/LRB…

ASUS Tinker BoardをAmazon.comで格安で購入できた話

ASUSが出しているTinker Boardというシングルボードコンピュータがある。 この手のものだとRasberry Piが一番有名だが、Tinker BoardはRaspiよりCPUやメモリがめっちゃ高性能 が、そのかわり高い(当然だが Amazon.co.jpで買うと 現在AmazonでTinker Boardを…