動かざることバグの如し

近づきたいよ 君の理想に

2018-01-01から1年間の記事一覧

DDR4&UEFIのPCでメモリテスト

Memtest86+が死んでる件について メモリテストの定番アプリケーションことMemtest86+ しかし最近は更新が滞っていて、最終更新が2013年(2018年6月29日現在) 当然最新のDDR4やUEFIの規格に対応できているはずもなく、上手く動作しない。そこでMemTest86でや…

Ubuntuのファイアウォール ufwで特定のNICからのアクセス全許可

例えばeno1経由での外からのアクセスは全許可したい場合は ufw allow in on eno1 to any でおk これ1行で終わりだとあまりにも内容がないので他にメモ ufwの無効化 設定ミスる前にとりあえずやっておく ufw disable ufwの初期化 ufw reset

nginxの多段プロキシ構成でIP制限を行いたい

環境 nginxのサーバーが2台あったとして ユーザー - インターネット - [nginx1] - [nginx2] - [rails] みたいな構成になっていたとき、nginx1ではなくnginx2側(バックエンド)で特定のIPのみ許可して、他のIPを弾きたい。 設定 例えば8.8.8.8からのアクセス…

XGBoostのインストール

めも 公式サイトのドキュメントに全部載ってるので、基本はそれの通りにやれば良い brew install gcc5 pip install xgboost >>> import xgboost as xgb ができればインストール成功 qiita.com

pandasでA column-vector y was passed when a 1d array was expected

環境 Python 3.6 pandas '0.23.0' 症状 適当に model = RandomForestRegressor.fit(x_train, y_train) とかしてると DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), f…

MySQLで取得した結果をCSVに出力する

自分用メモ INTO OUTFILEを使う場合 MySQLサーバーがオンプレミスの場合はこっち SELECT * FROM users INTO OUTFILE '/tmp/users.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; スクリプト経由で出力する場合 クラウドのサーバーだと権限的にI…

rubyで可変長引数を受け取るメソッドに配列で引数を渡す

常識すぎるのか、ググってもなかなか出てこなかったのでメモ 可変長引数とは rubyでは仮引数名の頭に「*」をつけると可変長で受け取ることができる。 def myfunc(*args) p args end myfunc(1, "hello", true) # => [1, "hello", true] 問題点 が、ここで配列…

rails db:migrateでALTER TABLEする時は気をつけろという話

結論 reversible do |direction| direction.up { execute "ALTER TABLE battles ADD PRIMARY KEY (id);" } end 環境 Rails 5.2 Ruby 2.4 なぜつけるのか railsのマイグレーションでindexつけたりとか特殊なことをしようとするときはexecute()を使うこともあ…

UbuntuでSVG対応のImageMagickをインストールする

以前にMacのときに以下のようなエラーになった。 thr3a.hatenablog.com この時は問題が発生したのは手元のMacだけで、デプロイ先のUbuntuでは最初からSVG対応のImageMagickだったので問題なかった。 が、どうもUbuntu 18.04でapt経由でインストールするとSVG…

スプラトゥーンの対戦結果をstat.inkに記録するようにした

今までサイトの存在は知ってたけど、自前でDB建てるより楽なのでここにデータ入れるようにした。 登録 ここから新規登録 データ登録 手動でポチポチなんてやってられないので自動化 splatnet2statinkというツールを使うと自動でデータを入れてくれる。 イン…

cuDNNのバージョン確認するコマンド

悲しいかな、nvcc --versionで取得できるバージョンはCUDAのみでこれではcuDNNのバージョンは取得できない 方法1 cudnn.hを見る # cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 以下はcuDNN 6.0の場合(CUDNN_MAJOR=6 CUDNN_MINOR=0なので…

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