旅好きの気ままなお話

旅のこと映画、統計、会計、プログラミングなど、気の向くままに語ります

プログラミング

スクレイピングで文字化けを防ぐ方法

下記が使用するライブラリ(chardet)です。 pypi.org chardetは文字コードを検出するライブラリで検出して取得したデータにdecodeをすると文字化けを解消できます。 sampleは日経のページです。 import urllib3 import chardet url = "http://www.nikkei.com/…

node.jsのバージョン管理をnvmでしてみる

環境はmacで行っています node.jsのインストール brew install node nvmのインストール nvmはrbenvのようなnode.jsのバージョン管理ツールです。 nvmをインストールする curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | b…

railsにvue-test-utilsを入れてみる

前提 webpackは使わない。 node.jsを入れている。 npmを使用出来る ※ webpackを使わない理由は対象をrails5だけに絞っていないからです。 必要なものをinstall npm install --save-dev jest @vue/test-utils vue-jest babel-jest jest-serializer-vue vue-cl…

vue.jsにeslintを設定した話(vscode使っています)

eslintとvue.js用のeslintプラグインをinstallする 今回はグローバルにインストールします。 npm i -g eslint eslint-plugin-vue ※上記はnpmですが、yarnでも大丈夫です。 vscodeに読み込ませるnode_moduleを設定 vscodeの"基本設定=>設定"のUser Settingsの…

vue.jsのデリミタ(delimiter)を変更する方法 sampleとしてjinja2を使用

フロントエンドのフレームワークと既存のテンプレートエンジンのデリミタ(delimiter)って被ってしまった。。。 ちなみにデリミタ(delimiter)とは、"フィールド区切り文字"のことです。 具体的には railsのerbの<% hogehoge %>とか jinja2の{{ hogehoge }}と…

rubyでマークルツリーを書いてみた

ブロックチェーンの勉強をしていてマークルツリーがどんなものかをrubyで書いてみました。 (まだ、勉強したてなので間違えているかもしれません、その際はご教授ください) マークルツリーについてはわかりやすい記事があるので他のを参考にするといいです。 …

kotlinでbit flyerのapiから仮想通貨の価格を取得する(android)

kotlinのデータを取得する 下記のブログを参考にさせていただきました。 ver-1-0.net khttpを入れる androidをほとんど触ったことがないのでライブラリをどういう風に入れるかもわかりませんでした。。。 まずはbuild.gradleにkhttpのライブラリを入れましょ…

binanceから日足を取得するスクリプトを書きました(python)

仮想通貨のコイン間での値動きの相関を調べてみたいと思い、まずはbinanceからデータを取得するpythonスクリプトを書いてみました。 実装には下記のライブラリを使用させてもらいました。(作者の方は他のwrapperも作っていて意欲的な感じがします!) github.c…

icobenchのgem作成してみました。

ICObenchというicoの評価サイトのapiのgem(wrapper)を作成してみました。 icobench.com wrapper github.com ICObenchは多くのicoが掲載されているので、好みにあったicoを探すことができます。 ただ、ICOはscamも多いので精査して購入する必要があります。 …

coinexchangeのgem作りました

最近、仮想通貨にはまっているということでcoinexchangeのapiから簡単にデータを取得できるgem作りました。 github.com ちなみにcoinexchangeは海外の取引所でapiはまだpublicなものしかなさそう。 なのでapiで取引はまだできません。 v2になったら作りなお…

中国でslackは使えるのか?

中国でのslack 最近、中国の雲南省に行ってきました。 会社からのslackでの連絡も見れるかどうかも確認したく、検証してみました。 中国のネット規制 まず、gmail、facebook、lineは使えません。 しかも心の拠り所のskypeまで規制対象になるそうです。 一体…

rspecでappディレクトリ以外のテスト(libとかただのscriptとか)

rspecでappディレクトリ以外をテストしたい時ってありませんか? 自分はあります。例えばバッチ処理とかのただのrubyスクリプト。 普通のテスト まず、普通のrspecのテストって下記のような構造で appとspecの位置関係は1対1のようになっています。 . ├── ap…

pythonでjwt使おうとしたらライブラリで詰まった件について(入れなおせばいいんだ!)

jwtって そんな人は下記記事が参考になります。 今回はエラーの対処法のみです qiita.com ライブラリ似過ぎな件 ①Pyjwt github.com ②jwt github.com はい、こいつらの共存が悪影響を及ぼします。。。 名前空間でも影響しあってるのかな? そこまで調べる気力…

goのフレームワーク ginの"gin-scaffold"を入れようとしたらエラーが出た。("hg": executable file not found in $PATH)

ginの"gin-scaffold"を入れようとしたらなんかエラーがでた。 $ go get github.com/dcu/gin-scaffold package bitbucket.org/pkg/inflect: exec: "hg": executable file not found in $PATH go: missing Mercurial command. See https://golang.org/s/gogetc…

pythonでapiからデータを取得する方法 (urllib3)

はてさて、pythonでapiからデータするときみなさんはどんなライブラリを使いますでしょうか? urllib? urllib2 urllib3? ってライブラリ多いですね。 ちなみに、"urllib"は"https"でデータを取得できない場合もあります。 なので、個人的なオススメは"urllib…

djangoでpandas使うのは簡単だった

pandas使ってデータ分析しているサイトがよくあって、 私も参考にしているのですが大体csv使ってませんか? 少ないデータだったらcsvで良いと思うんですけど、 apiやスクレイピングデータ取るときってdbに突っ込みませんか? djangoのormでデータをdbにつっ…

rails2で'ruby-debug'(デバッグ)を使う時の注意

下記のgemでdebug(デバッグ)する時、だいたいgem入れて gem 'ruby-debug' 自分の止めたいところで debugger をコードの中に入れるみたいな感じで書いていると思います。 そして、サーバーの立ち上げはいつも通りで。。。 bundle exec script/server はい、最…

rails5でapiを作成する方法

apiの改修することはあれども今までapiの作成を初めからしたことなかったので 簡単に作った時のメモをしておきます。 環境 ruby 2.4.2p198 Rails 5.1.4 sqlite3(初期設定のものを使っています) アプリ作成 まず、適当にrails アプリ作りましょう。 rails new…

rails4からrails5でインデックスの貼り方が変わった?

index貼りたいけどrails5になったらadd_indexで貼れなくて戸惑いましたw rails4なら作られたテーブルに関してこんな感じ class AddIndexToTestTables < ActiveRecord::Migration def change add_index :test_tables, :name add_index :test_tables, :name2 …

pythonで配列追加の処理速度の違い

pythonで配列追加の処理速度を比べてみました。 "append"を使う方法 import time def process(): result = [] start_time = time.time() for _ in range(10000000): result.append("test") processing_time = time.time() - start_time return processing_ti…

pythonのリスト内包表記と普通のfor文どちらが早いか

リスト内包表記と普通のfor文どちらが早いかを確かめてみました。 普通のfor文 import time def process(): start_time = time.time() result = [] for i in range(30000000): result += [i] processing_time = time.time() - start_time return processing_…

pythonの標準入力で気をつける

pythonの標準入力 なんか色んな記事を見ていると、 import sys sys.stdin.read() sys.stdin.readline() sys.stdin.readlines() や rau_input() などがありますが rau_input()はpython2なので python3は下記を使いましょう。 input() それにしてもpythonの記…

25日の移動平均線をpythonで求める方法

亀のような遅さでトレードの自動売買システムを作成しています。。。 djangoで作ろうとしているので完成が見えない。。。(フロントなくそうかな。。。bottleにしようか。。。) 今回は25日の移動平均線を求めてみました。 はい、下のコードで終わりです!!(p…

rubyで引数の初期値がある時の順番の個人的に良い方法

引数の初期値がある時の順番で困る時ってありますよね 例えば、第二引数の初期値を設定する時 def file(name="foo.jpg", mode="rb") File.open(name, mode) end こういう時、第一引数を変えずに、第二引数だけ変えて 呼び出すときは以下のようにしないといけ…

rubyの引数を初期値で配列にするってどうなの?

rubyって色々便利なものがあるんですよね、そこで引数について考察です。 例えば、引数を配列にするとか。 ①と②の例は同じことをしていますが①はスッキリしていますが、②は冗長的です。 おそらくruby的に美しいのは①なのでしょう。 ①引数を配列にする argu =…

gitとかはてなブログでプログラムのコードを入れたい時

gitとかはてなブログでプログラムのコードを入れたい時ってありますよね。 その時はバッククオートを3つ使いましょう。 (マークダウン方式の書き方です、はてなブログの場合は設定でマークダウンで書く設定にしましょう。) pythonならバッククオート3つのあ…

vagrant install方法 (とりあえずまとめてみた)

Vagrantの使い方 virtualboxのインストール https://www.virtualbox.org/wiki/Downloads Vagrantのインストール https://www.vagrantup.com 下記コマンドでバージョンが表示されたらインストール成功です。 vagrant -v 下記URLから好きなOSを選びます http:/…

Google Apps Script ローカル環境構築やってみた

ローカル環境を構築する前に node.jsを入れましょう。(下記urlから取得できます) https://nodejs.org/ja/download/ 一応、下記のコマンドでインストール先とバージョンを確認しておきましょう。 インストール先の確認 $ which node バージョンの確認 $ node …

pythonでseleniumでブラウザ自動で動かしてみた(mac)

運営しているサイトを全画面自動でとりあえずたくさん開きたい時ってないですか? (アプリケーションエラーは拾ってくれるようにしてるので、とりあえずページ開いちゃってバグを洗い出すとな感じです。) 今回はとりあえずyahoo finance(米)で試してみます。…

仮想通貨の価格予測システム作り始めます

仮想通貨の価格予測システム作り始めますということで まぁ、fxでも株でも何でも応用はきくシステムにはしますが、 最近は仮想通貨のapiとか簡単に取れるし、まぁ少しだけはやりに乗っかってって感じです。 まぁ、どうせディープラーニングとか言う流行りも…