PycharmでUnresolved reference 'print'を解消する

Pycharmでpython3.4を使ってたら、いつのまにかprint関数に「Unresolved reference 'print'」という警告がでるようになった。Fileメニュー の「Invalidate Caches / Restart...」で解決

データベーススペシャリスト試験

受かってました。 ちょっとDB設計が難しい案件があったので、基礎を勉強しなおそうと思ったのが受験した理由です。 参考書はこれ一冊。普段DB触っていて、ある程度過去問題を解いていればいけると思います。情報処理教科書 データベーススペシャリスト 2015…

毎日なんでもいいから365日、その日知ったことや試してみたことを書き続けるという試みではてなダイアリーを書き始めて 結局1000日くらい続けてきたんだけどそろそろやめようと思う。 これからは必要なときに自分用のメモを残すくらいにして、ちょっと時間の…

Python Prompt Toolkitをdjangoで使う

昨日、Python Prompt Toolkitを試してみて、djangoでも使えるといいなと書いたんだけど、django-extensionsのコード見たら実装されてた。 https://github.com/django-extensions/django-extensions/commit/510201103d9c2f5e3ce41d974e588011b8eab4ab こんな…

PythonのREPLでシンタックスハイライトやコード補完を利用可能にするPython Prompt Toolkit

試してみた インストール $ pip install prompt-toolkitREPL起動 $ ptpythonシンタックスハイライト、コード補完がいい感じ。 あとマルチライン入力とかにも対応している。djangoのshellで使えればなお良さそう。オプション--viを渡せばviっぽいキーバインド…

GithubやBitBucketをまとめて検索できるsearchcode

searchcode | source code search engine このリンクのブクマで知った。 if(version,startswith("windows 9") | source code search engine startsWith("Window 9")が世の中にはいっぱいある。

event.preventDefault()がIEの一部のバージョンで効かない

要素をクリックしたら、jsonを返して値をレンダリングする処理を書いてるんだけど、ieの一部のバージョンでjsonがそのまま表示されてしまう不具合が。preventDefaultが使えない場合はreturnValueにfalseをセットする方法で回避できた event.preventDefault ?…

アニメーションするSVG Icon

どこか使ってみたい Animated SVG Icons: Using Snap.svg to animate SVG icons

DjangoのFormsetで少なくとも1つは入力させる入力チェック

FormsetのcleanでraiseしたValidationErrorはnon_form_errorで取得できる

Python2.xでCodeEvalのBig Digits

CodeEval - Coding Challenges for the World's Best Developers

一時的にフォントサイズを変更する

メニューバーには無いけど機能は用意されている。 デフォルトではキーは割り当てられてないのでお好みで。

except節で複数の例外を捕捉する

Exceptionなど、例外の基底クラスをexceptすれば子クラスはすべてキャッチされるが、意図しない例外もすべてキャッチしてしまう。例外クラスをちゃんと指定してキャッチするには、タプルで書けばいい。

MySQLでNULLを空文字に変換 - ifnullとnullif

データ調査でSQLの出力内容をスプレッドシートに貼りつけるとき、NULLが入ると邪魔なので。mysqlでやったことなかったので調べた。ifnullだった。 mysql> select ifnull(null, 'yes'); +---------------------+ | ifnull(null, 'yes') | +------------------…

Djangoのsyncdbでユーザーを作成しない

syncdbするときに、ユーザーがいらないのにいちいちnoを打つのが面倒。 --noinputオプションつければ、ユーザーを作成しない $ python manage.py syncdb --noinput ちなみに、django 1.7ではsyncdbは非推奨になっていて、代わりにmigrateを使うことが推奨さ…

Safariのオートコンプリート

ログインが必要なサイト内で、ログインフォームとは別の画面にtype="password"の入力フォームがある場合、ログイン時のユーザー名とパスワードが勝手に補完されるというケースがあった。結果的に意図しないパスワードの更新が走ってしまうという、よろしくな…

Django Queryset AggregationでDBによって結果が異なるケース

DBがmysqlかsqliteかによって、テストが落ちたり成功したりするケースがあったので原因をメモしておく Max OSX 10.9.4 MySQL 5.5.20 python 2.7.5 django 1.7 MySQL-python 1.2.5 DateTimeFieldを持つモデル from django.db import models class Entry(model…

カラムから特定の文字を取り除く

Replaceで UPDATE person SET phone_number = REPLACE(phone_number, '-', ''); DjangoのQuerysetで同じことができないかどうか調べたけど無理だった。Fがサポートするのは数値演算のみ Query-related classes | Django documentation | Django

GoのNaNとInf

Pythonのnanとinf

Pythonで日本の祝日判定をするスクリプト

Pythonで日本の祝日判定をするスクリプトを見つけたので触ってみた。参考:AddinBox(祝日マクロ-5) 何故かsysとmathのimport文がないので追加した。 使い方はholiday_name関数にdateオブジェクト、もしくは年月日をintで渡すだけ。以下の使い方サンプルはdat…

Pythonでバージョンナンバーを比較する

2.6.4のようなバージョンを表す文字列を比較したい。関連:MySQLでバージョンナンバーをソートする - brainstorm pythonの場合はdistutils.verson.StrictVersionが使える。 ただしStrictVersionは"1"のように数字のみだとバージョンとして扱えず、ValueError…

MySQLでバージョンナンバーをソートする

2.6.4のようなバージョンを表す文字列でソートしたい。普通にorder byすると「2.0.0」よりも「11.0.0」が小さいと判定されてしまう。 mysql> SELECT version FROM app ORDER BY version DESC; + version + 2.0 11.0 1.1.1 1.0.1 1.0.0 1.0 1 + 7 rows in set…

unittest.TestCaseの出力で期待値と実際の値の差分を省略しない

unittest.TestCaseのassertEqualsなどで、期待値と実際の値の差分が大きい場合80*8文字まで表示してあとは省略される # coding=utf-8 from unittest import TestCase class DiffTest(TestCase): def test_diff(self): self.assertEquals(range(0, 1000), ran…

ファイルアップロードでファイル名が重複したときの挙動

最近djangoでファイルアップロードが絡む処理を実装したとき、同一ファイル名に対する挙動が以前と変わっていることに気づいた。 以前はファイル名が重複したときxxxx_1.txt、xxxx_2.txtといった感じで連番が振られていたが、現在はxxxx_8kkVNQf.txtのように…

DjangoからAzureストレージにBLOBを保存したときのメモ

django-storagesにAzure用Storageクラスが用意されているので使ってみる。参考:Azure Storage ― django-storages 1.1.8 documentation DEFAULT_FILE_STORAGE = 'storages.backends.azure_storage.AzureStorage' AZURE_ACCOUNT_NAME = "" AZURE_ACCOUNT_KEY …

AppRegistryNotReady: Models aren't loaded yet.

Pycharmの「Run manage.py Task」から「shell」を起動してmodelsをimportしたら以下のエラーになった AppRegistryNotReady: Models aren't loaded yet.Djangoのバージョンは1.7。 runserverしてアプリを動かす分にはエラーにならないし、Pycharmを通さずTerm…

Javascript UI ライブラリ「Webix」

業務用のアプリなどに使えそうJavaScript UI Library, HTML5 Widgets Framework for App Development - Webix

Formのエラー文字列を辞書で取得する

ファイルアップロードのテストでMEDIA_ROOTを差し替える

MEDIA_ROOTにファイルが置かれるようなテストを実行後、ファイルを削除することを考えていた。 いろいろ方法ありそうだけど、こんな感じでよさそう。

view関数のテストでjsonをPOSTする

def test_xxxx(self): data = {} # postするデータ res = self.client.post('/path/to/api', content_type='application/json', data=json.dumps(data)) view関数側ではrequest.bodyをjson.loadsしてdataを受け取る def xxxx(request): data = json.loads(re…

Djangoで日本語名のファイルアップロード時にエラー

ひさびさにUnicodeEncodeErrorなんてものを見た気がする。 UnicodeEncodeError: 'ascii' codec can't encode characters in position 11-19: ordinal not in range(128) 以前も同じようなことがあって、そのときはgunicornを起動している環境の環境変数でLC_…

pythonでファイルをbase64エンコードする処理と、base64をデコードしてファイルに書き込む処理

Python 3.xでCodeEvalのNumber Pairs

CodeEval - Coding Challenges for the World's Best Developers 関連:Go言語でCodeEvalのNumber Pairs - brainstorm 関連:Python 2.xでCodeEvalのNumber Pairs - brainstorm

PycharmからGistに投稿する

PycharmのGithubプラグインにgithub連携の機能がいくつか用意されていて、gistの投稿もできる。 よく使う場合は適当にキーを割り当てるとよいでしょう。

Pycharmのdb コンソールが便利

ローカルのMySQLにSQL投げるのに、Sequel Proをしばらく使っていたけど、最近はPycharmのDatabase ビューを使うようになった。 エディタのキーバインドをカスタマイズできる。というか普段python書くのと同じキーバインドなのでカスタマイズ済み。 Reformat …

Python 3.xでCodeEvalのSUM TO ZERO

CodeEval - Coding Challenges for the World's Best Developers 関連:Python2でCodeEvalのSUM TO ZERO - brainstorm 関連:Go言語でCodeEvalのSUM TO ZERO - brainstorm

Pycharmの検索窓でBasic Completion

これも一度も使ったことがなかった機能。command + Fでいわゆるバッファの検索ができるけど、その検索窓でBasic Completion(comamnd + /)が使えて、 バッファ内で登場する文字列を補完してくれる

PycharmのQuick Definition in lookup lists

Keymap「Mac OS X 10.5+」でoption + space、command + Yに割り当てられている。 コード補完時、またはClass、File、Symbole Navigationのダイアログ表示中に実行すると、選択中のアイテムの実装を表示する。 コード補完時 Navigation Symbol 実行時

PycharmのSurround withでlive templatesを使う

今までちゃんと使えてなかった機能を見直したい 昨日調べたところ、Surround Withを全く使っていなかったことに気づいた。 Pycharmの便利機能を使い切る - brainstorm 昔エントリ書いたことがあるので、この機能は知ってたはずなんだけど、いつからか使わな…

Pycharmの便利機能を使い切る

PycharmのメニューからHelp -> Productivity Guideで、「どの機能をどのくらい使っているか」を一覧で表示することができる。 確認したところ「Go to declaration」が21766回で一番多かった。 逆に使用頻度が低い機能や、一度も使っていない機能も見つかった…

Python 3.xでCodeEvalのDecode Numbers

CodeEval - Coding Challenges for the World's Best Developers関連:Go言語でCodeEvalのDecode Numbers - brainstorm 関連:Python2でCodeEvalのDecode Numbers - brainstorm

Python 3.xでCodeEvalのTrailing String

CodeEval - Coding Challenges for the World's Best Developers 関連:Python 2.xでCodeEvalのTrailing String - brainstorm 関連:Go言語でCodeEvalのTrailing String - brainstorm

mysqlでクエリ結果をファイル出力する

リモートサーバーなどで、コンソールからmysqlにクエリ投げた結果をコピペして、スプレッドシートに貼り付けたい 標準の出力だと罫線がじゃまなのでちょっと調べてた INTO OUTFILEでファイル出力できた select * from help_keyword limit 10 into outfile '/…

Python 3.xでCodeEvalのOverlapping Rectangles

CodeEval関連:Python2でCodeEvalのOverlapping Rectangles - brainstorm 関連:Go言語でCodeEvalのOverlapping Rectangles - brainstorm

Python 3.xでCodeEvalのFirst Non-Repeated Character

CodeEval Python 3.xでは、map関数がイテレータを返すようになった関連:Go言語でCodeEvalのFirst Non-Repeated Character - brainstorm 関連:Python 2.xでCodeEvalのFirst Non-Repeated Character - brainstorm

Python 3.xでCodeEvalの Number of Ones

CodeEval 関連:Go言語でCodeEvalのNumber of Ones - brainstorm 関連:Python 2.xでCodeEvalのNumber of Ones - brainstorm

Python 3.xでCodeEvalのDecimal To Binary

CodeEval関連:Go言語でCodeEvalのDecimal to Binary - brainstorm 関連:Python 2.xでCodeEvalのDecimal To Binary - brainstorm

Python 3.xでCodeEvalのMinimum Coins

CodeEval関連:Python2でCodeEvalのMinimum Coins - brainstorm 関連:Go言語でCodeEvalのMinimum Coins - brainstorm

PythonとGoでintの最大値を取得

python 2.xsys.maxintで取得。環境によって32bit符号付き整数、または64bit符号付き整数の最大値が取得できる print sys.maxint # 9223372036854775807 print hex(sys.maxint) # 0x7fffffffffffffff print 2**63-1 # 9223372036854775807 python 3.x sys.max…

Emacsでサイドにディレクトリツリーを表示する「dirtree」を使ってみる

zk/emacs-dirtreetree-modeとwindataに依存している。EmacsWiki: tree-mode.el EmacsWiki: windata.el全部el-getでインストールして設定した。 (require 'dirtree)M-x dirtreeすると、ミニバッファで開くディレクトリを聞かれるので、入力するとこんな感じに…