牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Django で Modelからアプリ名とモデル名を取りたいメモ

例 appname/models.py >>> HogeModel._meta.app_label 'appname' >>> HogeModel._meta.object_name 'HogeModel' # or >>> HogeModel.__name__ 'HogeModel' 参考 http://stackoverflow.com/questions/3599524/get-class-name-of-django-model http://stackove…

Elixir を Emacs で書くのに補完・構文チェックなど環境を整えるメモ

install 下記はインストール済みの前提 auto-complete flycheck elixir書くのに使うライブラリ elixir-mode alchemist 補完 REPL Phoenix の開発もサポートしてくれるらしい flycheck-elixir ac-alchemist auto-complete-mode で補完できるようにする (compa…

Python で Zip ファイルを解凍するメモ

(python2.7.11) from zipfile import ZipFile import os dir_name = 'fuga' os.mkdir(dir_name) with ZipFile('hoge.zip', 'r') as z: z.extractall(dir_name) extractall() でディレクトリを指定しないとカレントディレクトリにディレクトリを作らずファイ…

Django の templates では無い場所で contrib.humanize の intcomma とか使いたい場合のメモ

templates の中だと <p>{{ 999999|intcomma }}<\p> とかで 999,999 と表示できるけど templates 以外で使いたい >>> from django.contrib.humanize.templatetags.humanize import intcomma >>> intcomma(100000000) u'100,000,000' ふつうにそのままな感じでい</p>…

Overtone のメモ

なんかよくわからんが Overtone すげーと思ったのでリンクメモ http://overtone.github.io/ https://vimeo.com/22798433 http://yoppa.org/blog/6232.html http://qiita.com/nobkz/items/aea2c70a5fb03003f375

Django で Rails の flash みたいなやつメモ

Rails Rails のユーザに簡易メッセージを表示するやつ。Controller で値を入れて View で表示。 ActionDispatch::Flash Django Django の場合は messages framework settings.py MESSAGE_STORAGE = 'django.contrib.messages.storage.cookie.CookieStorage' …

Python でファイル作成する時に指定したディレクトリが無ければ作るメモ

(python2.7.11) ディレクトリが無いとこで open して write するとエラーになるので mkdir する # coding=utf-8 import os def write(filename, text): file_path = os.path.dirname(filename) if not os.path.exists(file_path): os.makedirs(file_path) wi…

Python のメソッドを文字列で呼び出すメモ

(python2.7.11) # coding=utf-8 class Hoge: @property def fuga(self): return 'fugafuga' h = Hoge() print h.fuga print getattr(h, 'fuga') # print getattr(h, 'fu') # AttributeError print getattr(h, 'fu', 'Nothing!') # -> fugafuga # -> fugafuga…

postfix のログ /var/log/mail.log を削除したらログが書き込まれなくなった場合のメモ

ubuntu 14.04 service rsyslog restart

ES6のデフォルト引数の使い方を勘違いしていたメモ

ES6 function hoge(a='hoge', b='fuga') { console.log(a + b); } hoge(); //-> hogefuga hoge('foo', 'bar'); //-> foobar hoge('foo', b='bar'); //-> SyntaxError 実行時に b= とか書くとエラーになる ちなみに Python def hoge(a='hoge', b='fuga'): pri…

Python3.5 の async を使って非同期でwebサイトにアクセスしてステータスコードを取得するメモ

(python3.5.1) Web DB Press Vol.82 の Go特集でやってたやつを python で書いてみる hoge.py import asyncio from urllib import request urls = [ 'http://example.com', 'http://example.net', 'http://example.org', ] async def display_status(url): r…

Python でとある日付から今日まで何日か取得するメモ

(python2.7.11) In [10]: import datetime In [11]: date = datetime.datetime.strptime('2016-01-01', '%Y-%m-%d') In [12]: date.today() Out[12]: datetime.datetime(2016, 3, 8, 16, 7, 57, 767309) In [13]: d = date.today() - date In [14]: d.days O…

Mac の Google chrome で 403 Forbidden nginx on developer.apple.com でアクセスできなくなる件のメモ

(MacOSX 10.10.5) 症状 developer.apple.com にアクセスすると 403 ちなみに久しくサイトにアクセスしてなかった。1年以上前かもしれない... Mac の Google Chrome でアクセスできないが、他のブラウザ(Firefox)でアクセスしたら表示でる。 アクセスできる…

Emacs の Go の環境を整えるメモ

(Emacs24.5) インストール go-mode M-x package-install go-mode gocode + go-autocomplete で補完 https://github.com/nsf/gocode $ go get -u github.com/nsf/gocode M-x package go-autocomplete godif でコードジャンプ https://github.com/buaazp/Godef…

go でツイートを search/tweets api で取ってみるメモ

(go version go1.5.1 darwin/amd64) ライブラリ anaconda A Go client library for the Twitter 1.1 API $ go get github.com/ChimeraCoder/anaconda コード package main import ( "fmt" "github.com/ChimeraCoder/anaconda" "net/url" ) const ( consumerK…

Go のスライスのメモ

package main import ( "fmt" ) func f1(slice []int) []int { slice[0] = 10 return slice } func f2(slice []int) []int { slice = append(slice, 4) slice[0] = 10 return slice } func f3(slice []int) []int { s := make([]int, len(slice)) copy(s, sl…

Python で今日から30日後の日付はいつなのか取るメモ

(python2.7) 忘れるんでメモ 標準ライブラリのみで In [16]: import datetime In [17]: today = datetime.datetime.today() In [18]: today.strftime('%Y-%m-%d') Out[18]: '2016-02-12' In [19]: d = today + datetime.timedelta(days=30) In [21]: d.strft…

Javascript で配列や連想配列を何で回すのがいいのか混乱するので for, for...in, forEach, for...of などいじってみるメモ

(node v4.2.4) その1 'use strict'; let arr = [{id: 1}, {id: 2}, {id: 3}]; for (let x in arr) { console.log(x); } console.log('----'); arr.foo = "hello"; console.log(arr); console.log('----'); for (let x in arr) { console.log(x); } console.…

Emacs で Javascript の賢い補完するメモ

(emacs24.4) 使うパッケージ M-x package-install などで下記をインストール js2-mode auto-complete tern tern-auto-complete npm 下記もインストール $ npm install -g tern 設定 tern サーバーを利用すると .term-port ファイルが作られてしまうので、作…

Javascript の連想配列で key に数値を入れると文字列になるメモ

$ node > var a = {1: 'a', 2: 'b', 3: 'c'} undefined > a { '1': 'a', '2': 'b', '3': 'c' } > Object.keys(a)[0] '1' > typeof Object.keys(a)[0] 'string' ちなみに Python だと数値のまま $ ipython In [1]: a = {1: 'a', 2: 'b', 3: 'c'} In [2]: a Ou…

Javascript で filter の書き方のメモ

ES6 'use strict'; var family = [ {'name':'Namihei', 'age': 54}, {'name':'Masuo', 'age': 28}, {'name':'Katsuo', 'age': 11}, {'name':'Tarao', 'age': 3} ]; var family1 = family.filter(function(person) { return person.age < 30; }); var family2…

Javascript で配列を逆順にするメモ

> var a = [1, 2, 3] undefined > a [1, 2, 3] > a.reverse(); [3, 2, 1] > a [3, 2, 1] > a.slice().reverse(); [1, 2, 3] > a [3, 2, 1] a.reverse() で破壊的 a.slice().reverse() で非破壊的 参考 Reverse array in Javascript without altering the ori…

pip で前のバージョンの最新をインストールしたいメモ

例えば Django の最新バージョンは 1.9.1。だけど 1.8.x 系の最新をインストールしたい場合。 $ pip install 'Django<1.9' Collecting Django<1.9 Using cached Django-1.8.8-py2.py3-none-any.whl Installing collected packages: Django 参考 pipの使い方 …

CSS の nth-child で特定の要素を指定するメモ

例:先頭から2番目以降すべての ul で、先頭から3番目までの li 要素 <html lang="ja"> <head> <meta charset="utf-8"> <title>TITLE</title> <style type="text/css"> ul:nth-child(n+2) li:nth-child(-n+3) { background: green; } </style> </head> <body> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> <ul>…</ul></body></html>

関数呼び出しタイミングのメモ

いちおう想定通りの結果になるか確認してみた javascript (es2015) 'use strict'; function foo(func) { console.log('foo!'); func(); console.log('end foo!'); } foo(() => {console.log('bar!');}); //=> foo! //=> bar! //=> end foo! python 2.7.x #!/…

Emacs と ctags のタグジャンプを ES2015 syntax に対応させるメモ

設定 参考リンクから必要そうなとこを抜き出してコピペ ~/.ctags --exclude=.git --exclude=.hg --exclude=log --exclude=tmp --languages=-javascript --langdef=js --langmap=js:.js --langmap=js:+.jsx --regex-js=/[ \t.]([A-Z][A-Z0-9._$]+)[ \t]*[=:][…

Javascript で sleep する関数メモ

ReactJS のサンプル書いてて ajax の get で遅延で値を取るような擬似的な処理で setTimeout() 使うとうまくいかなかったけど while 使うやつで値取れた。(と思ったけど関係なかったっぽい) function sleep(msec){ let now = new Date().getTime(); while(…

Python で画像URLから画像のサイズを取るメモ

(python2.7) $ pip install pillow #!/usr/bin/env python # coding=utf-8 from PIL import Image from cStringIO import StringIO from urllib import urlopen def get_image_size(url): file = StringIO(urlopen(url).read()) img = Image.open(file) retu…

2015年を振り返る

と思ったけど余裕と時間が無いのでいくつか思ったことなど。 今年 Javascript まわりで思ったことなど Node.jsとio.js が仲直りしてほしい。できれば Node.js に統一してほしい。 -> 統合した。 Node.jsとio.jsの最初の統合リリース「Node.js 4.0」が9月に登…

Python と boto で S3 の情報を取得してみるメモ

# coding=utf-8 import json import re from boto3.session import Session AWS_ACCESS_KEY_ID = 'AWS_ACCESS_KEY_ID...' AWS_SECRET_ACCESS_KEY = 'AWS_SECRET_ACCESS_KEY...' BUCKET_NAME = 'hoge' session = Session( aws_access_key_id=AWS_ACCESS_KEY_I…

python で配列を n 個の配列に分割するメモ

コード # coding=utf-8 def chunked(iterable, n): return [iterable[x:x + n] for x in range(0, len(iterable), n)] if __name__ == '__main__': arr = range(10) print(chunked(arr, 4)) # => [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9]] 参考 python2でリスト…

python で yes/no で実行する/しないの処理のメモ

コード hoge.py # coding=utf-8 def yes_no_input(): while True: choice = raw_input("Please respond with 'yes' or 'no' [y/N]: ").lower() if choice in ['y', 'ye', 'yes']: return True elif choice in ['n', 'no']: return False if __name__ == '__m…

Python でバイグラムのメモ

(python2.7) def ngrams(text, n): text_list = list(text) return [text_list[i:i + n] for i, char in enumerate(text_list)] ngrams_list = ngrams(u"今日はいい天気ですね。", 2) print(("\n").join([u"{}".format(u"".join(chars)).encode('utf8') for …

Django の ORM で昇順・降順ではなく指定したid順でデータ取るメモ

In [11]: foo_ids = [101, 19, 75] In [12]: order_ids = ','.join(["{id}".format(id=id) for id in foo_ids]) In [13]: foos = Foo.objects.filter(id__in=foo_ids).extra(select={'order_ids': "FIELD(id, {})".format(order_ids)}, order_by=['order_ids…

js2-mode で swith/case のインデントを修正するメモ

追記 2016-10-04 (emacs 24.5) 現象 デフォルトだとこうなる switch (a) { case 1: doSomething(); break; case 2: doSomethingElse(); break; } 希望 でも case は下記のように一段下げたい switch (a) { case 1: doSomething(); break; case 2: doSomethin…

Emacs で React の jsx を js2-mode で書けるようになってたメモ

いつのまにか js2-mode に js2-jsx-mode なるものが追加されてた。 なぜかweb-mode で jsx を書くのに抵抗あったのでこっち使ってみることにした。 すでに js2-mode と flycheck (eslint)をインストール&設定してれば、下記設定するだけで React の jsx を…

Emacs の起動が遅いので何とか改善してみるメモ

(MacOSX 10.10, Emacs.app 24.5) Emacs.app は homebrew でインランパッチ当ててインストールしたもの。 どこが遅いか esup で調査 M-x package-list-packages で esup をインストール M-x esup で実行すると Emacs.app が別にもうひとつ立ち上がる。それを…

Javascript で配列の重複を除去する

var array = [1,2,2,3,3,3]; // ES5.1? var unique = function(arr) { return arr.filter(function (x, i, self) { return self.indexOf(x) === i; }); }; console.log(unique(array)); //-> [ 1, 2, 3 ] // ES6 console.log(Array.from(new Set(array))); …

Python で空文字列 "" とブール値の真か偽のメモ

(python2.7) $ ipython In [1]: def check(val): ...: if val: ...: return True ...: else: ...: return False ...: In [2]: check("") Out[2]: False In [3]: check("" and True) Out[3]: False In [4]: check("" and False) Out[4]: False In [6]: check(…

iPhone6s に機種変してトラブったのでメモ

もともと所有していた iPhone5c の調子が悪かったので 6s に機種変更したのに、データ移行でトラブったのでメモ iTunes にバックアップしたものから 6s に復元したら「iCloude設定をアップデート中...」のまま1時間以上処理が終わらなかった 同じような状況…

Javascript で配列かどうか調べるメモ

instanceof を使えばよいの? > var friend = JSON.parse('{ "id": 1, "name": "のび太" }') > var friends = JSON.parse('[ { "id": 2, "name": "ジャイアン" }, { "id": 3, "name": "スネオ" }]') > friend instanceof Array false > friends instanceof A…

MacPorts から homebrew に乗り換えてみたメモ

必要そうなインストールしたやつ一覧メモ brew install $ brew list --versions bash 4.3.42 cmake 3.3.2 curl 7.44.0 emacs 24.5 git 2.5.3 git-flow 0.4.1 go 1.5.1 mysql 5.6.26 peco 0.3.3 python 2.7.10_2 sqlite 3.8.11.1 the_silver_searcher 0.31.0 …

Homebrew で inline-pach をあてた Emacs.app をインストールするメモ

更新: 24.5 -> 25.1 (Emacs25.1) 通常の Emacs.app をインストール方法 $ brew update $ brew install emacs --cocoa $ brew linkapps インラインパッチ当たってないので入れ直す $ brew uninstall emacs emacs 削除して inlain-path あてるように formula …

git merge をやり直すメモ

Git

^ は1個前の意味 $ git reset HEAD^ $git reset --hard HEAD は $ git reset --hard HEAD~ と同じ。 $ git reset --hard HEAD^ も同じ。 でも、シェルのヒストリに残したくないから2回に分ける $ git reset HEAD^ $ git reset --hard HEAD

Git で PR をマージした後に同じブランチでローカルで作業続ける場合のメモ

Git

git flow 使ってるので develop 手順 マージしたブランチに居るか確認 $ git branch * merged-branch-name origin/develop を更新 $ git remote update 最新の origin/develop まで移動 $ git rebase origin/develop んで、またコミットを追加していく

ansible-playbook を再実行時にタイムゾーンの設定が changed にならないようにするメモ

(ansible 1.9.1、対象の host OS は Ubuntu 14.04) 追記 2016-12-02 timezone モジュールあった... timezone - Configure timezone setting — Ansible Documentation 以下は過去のメモということでそのまま残します 目的 タイムゾーン設定のやり方が悪くて再…

Ansible で Vagrant の Ubuntu の設定を弄ろうとしたら SSH Error になったメモ

MacOSX を再起動して vagrant up して ansible-playbook 実行したら SSH Error になった。 再起動前はエラー出ずに実行できてた。 $ ansible-playbook -i hosts provision_vagrant.yml --check fatal: [192.168.33.55] => SSH Error: ssh: connect to host 1…

Emacs の web-mode で jsx 書くとき コメントが『/* coment */』になるので 『// comment』にするメモ

目的 M-; でコメントアウトすると /* foo bar */ になる // foo bar にしたい 改善 設定にこれ入れればよいみたい (add-to-list 'web-mode-comment-formats '("jsx" . "//" )) おまけ ちなみに今現在のぼくの web-mode で jsx ファイルを開く設定 (progn (se…

Google Chrome の Console で外部ライブラリの KeyMirror を試してみるメモ

> var ele = document.createElement("script"); ele.type = "text/javascript"; ele.src = "http://cdn.rawgit.com/STRML/keyMirror/master/index.js"; document.body.appendChild(ele); > var COLORS = keyMirror({blue: null, red: null}); undefined > C…

EditorConfig を使ってみるメモ

更新:2015-12-02 http://editorconfig.org/ インストール homobrew brew install editorconfig npm npm でもインストールできるっぽい https://www.npmjs.com/package/editorconfig $ npm install -g editorconfig Emacs plugin M-x package-list-pakages …