読者です 読者をやめる 読者になる 読者になる

ウニ’s blog

勉強した結果を書いていきます

Python

【Python3】requestsにthreadを使用すると非常に効果的

crawler,rest api等でrequestsにてgetを大量に投げる場合、ボトルネックになるのはI/Oバウンド。 入門Python3には以下の事が書いてる。 スレッドはI/Oバウンド問題の解決のために使う。 CPUバウンド問題では、プロセス、ネットワーキング、イベントを使う。 …

PythonでECサイトを作る(3)

コア処理修正。したけど、精度が落ちたので殆ど破棄。こういうこともある。 あとは相変わらず処理速度がくっそ遅い。なんとかしないと・・・。 対応策としては、プロセス分割すればいいのでは?とさっき思いついたので、明日ためそうと思う。 あとはサーバー…

PythonでECサイト作る(2)

主処理部分の改修してた、進捗悪い~。 やることリストも暴発仕掛けてるので、見直したい。 特に書けること無いので、ねよう。

loggerを使う(3)--完了

logging.confの[loggers]の名称にアンダーバーを使ってたら上手くいかなかったようだ。 名称を変えたらうまく行った。 あとは、log levelがError以上だったらslackに送るようにした。 slack連携はハマらず素直に動くのでいつも感動する。 なんでもかんでもSl…

loggerを使う(2)

公式のHowToをまぁまぁ読んだ。全てのprint文の置き換えと、config化した。 システムのconfigと、bs4用configとlogger用configがあり、projectのRoot Directoryがごちゃごちゃしてきたので整理した。 …今度はDirectoryが多い…。 参考 公式 Logging HOWTO — P…

loggerを使う(1)

print文仕込みマンだったけど、コードの規模が大きくなってきた。 loggerを使っていこう。 と思って調べたら、怒れる人が居て怖い。 怒れる記事 qiita.com 知識0でこの記事をよんでも何に怒りを感じているか全然わからなかった。 ? 参考 簡単な概念。 st-pr…

BeautifulSoup4で全ての文字を書き換える

タグを辿って、tag.stringの書き換えを繰り返すと、NavigableStringは書き換え不可能!と怒られた。ごめん。 公式documentをよく読んだら、replace_with()つかえとのこと。 teratailに質問もいいけど、公式ドキュメントも読もう。うん。 参考 BeautifulSoup…

PythonでECサイト作る(1)

DjangoでECサイト作ってる方がいらっしゃるので、こっちもお試しで作ってみよう。さしあたり考えることは多いけど、まずは取引=決済のために必要なものが何かなどを洗い出した。 2017/1/1以降に個人事業主申請・青色申告届けを出すとして、まずはpaypalのア…

スクリプト実行ファイルのTestCase

pythonのスクリプト実行部分をTestしたい。 例えば、sys.argvの切り分け処理部分をテストしたいときに使う。 コード スクリプト実行ファイル # hello.py import sys args = sys.argv if len(args) > 1: print("Hello world.","args 1 : " + args[1]) テスト…

新Google翻訳のAPIを試す(7)--公開

新Google翻訳使ったePub翻訳ツール、えいやで完成。 図は翻訳したePubの結果。(ProGit本) 一見良さそうな感じ。でも読み込むと、ところどころオカシイ。処理時間もあまりよくない。 文字列をhtmlタグレベルでGoogleAPIに投げてるので、1冊翻訳完了までかな…

新Google翻訳のAPIを試す(6)

うわー!お試しで技術書1冊丸ごと翻訳中に認証トークンの期限切れた! トークンの期限切れ早すぎないか?GCPの認証方法がそもそも良くわかってないんだよなあ。 プログラム実行中に再認証するにはどうすれば良いのか…。進捗的には上の問題なければgithub公…

新Google翻訳のAPIを試す(5)

ePub->文字列処理->ePub完成。作ったモジュールを整理した。技術書のxhtmlの構成を見てるけど、ソースコード使ったりしていて、翻訳したくない部分が確実にある。 やっぱりhtmlタグ毎に処理を変える必要があるよなあ。 完璧にはどうせ無理なので、あまり深入…

新Google翻訳のAPIを試す(4)

html(xhtml)を読み込ませて、翻訳させる、結果を出力する、まで完成。htmlの構文解析して、文字列部分を辿る処理の実装具合が非常に良くない。 あらゆるePubに対応できるか?というと、無理だ。 やはりChrome経由のgoogle webページ翻訳が新Google翻訳対応す…

新Google翻訳のAPIを試す(3)

BeautifulSoup4でePub構成ファイルの編集やってるけど、なかなか思い通りに行かずふてくされたりした。ようやくなんとなく操作がわかってきた。xhtml→soupオブジェクト→xhtmlの変換ができた。 新Google翻訳にぶち込むために、なるべくプレーンなデータ形状に…

lxmlモジュールのインストール(windows)

pyCharmのモジュール追加でlxmlが失敗した。 追加失敗するモジュールたまにあるんだよなー。調べてたらうまくいったのでメモする。 手順 lxmlをwhl形式で配布している所に行く Pythonのインストールバージョンに合わせたファイルをDLする。 windows10(64bit…

新Google翻訳のAPIを試す(2)

PyPIにepubモジュールあったので、簡単に内容を翻訳して、再ePub化できるかなーと思ったら、できん。 書き込み時に何かエラー zipfile.BadZipFile: File name in directory 'OEBPS\\xhtml\\0016.xhtml' and header b'OEBPS/xhtml/0016.xhtml' differ. どうに…

新Google翻訳のAPIを試す(1)

Python mini Hack-a-Thon参加しました。 成果物は以下です。qiita.comまーた、P社製のノートパソコンの無線おかしくなって完全に午前中無駄にしてました。死にたい!エンジニア殺すにゃ刃物はいらぬ、ネット三日も断てばよい mouseコンピューターはやくきて…

Django+whitenoiseにて静的コンテンツのブラウザキャッシュを有効にする

Google PageSpeed Insightsで怒られたので、コンテンツのブラウザキャッシュをDjango+whitenoise製のサイトで有効にする。 何も考えないと、デフォルトでは、静的コンテンツは以下のヘッダーを返す。 Cache-Control:max-age=60 ブラウザキャッシュ時間60秒 …

Python3で簡単なwebサービスを作る(24)

slackでpapertrail のintegrations追加しようとしたら有料と言われたけど、今日もう一度やったら無料だった。 ?謎だ。papertraiでherokuのinternal server errorなどをalert項目にした。 お試しで存在しないurl入力したらちゃんとslackに通知されたので嬉し…

Python3で簡単なwebサービスを作る(23)

運用phaseというか、メイン以外のところをポチポチ進める。 残ってるtodoリストも軽いやつから。 google analytics導入 ログ監視と異常時の通知 google analytics 無料。Djangoだと、base.htmlのheaderにanalytics用のスクリプトを組み込むだけで行ける。www…

Python3で簡単なwebサービスを作る(22)--ローンチ

ローンチしました。 おまえのなろう小説会話多くねぇ?-なろう小説会話率判定web- Qiitaにも記事書きました qiita.com延々とローンチ出来ない病になりそうだったので、Advent Calenderにかこつけて、えいやでローンチしました。 todoリストはまだ山ですが、…

Python3で簡単なwebサービスを作る(21)

Herokuデプロイした。微妙にハマったけど、module不足なだけだった。 クラウド環境になれてないので、ハマると1weekレベルではまるのもありえるので恐れしか無い。あとは誰も見なそうなページをシコシコ作る。 付随する調査で色々知識がたまるのですばらしい…

Python3で簡単なwebサービスを作る(20)

最大のタスクだった、TOP画像をどうしようかという日だった。 エンジニアの他にデザイナは絶対必要だ…。ものすごい時間かかった。 これは、エンジニアとデザイナのマッチングサービスが必要。(もうあるかも)散々悩んだ末・・・・・・結局いらすとやじゃね…

Python3で簡単なwebサービスを作る(19)

サイトの細かいコンテンツをゴリゴリ書いたり、Djangoのtemplateを部品化したり。 うれしかったのは、tamplateのurlリゾルバがエラーで動かなかった奴がついに動いたこと。 pdbでトレースしまくってようやく使い方がわかった。しんどかった。あとはもう細か…

Python3で簡単なwebサービスを作る(18)

細かい気になる点が無限に出てきてるよ。終わらねえ! デザイン部分作り込んだのと、そいつを開発サーバー環境に取り込んだ。結合は自分のスキルでは解決不可能なハマりが出るかもしれないので、かなりドキドキした。 結局いろいろ修正はしたが、なんとか開…

Python3で簡単なwebサービスを作る(17)

サーバーサイドの細かいtodo潰しと、POSTmethodのajax化。 メインページ以外のページもほそぼそと作り始めた。top100の会話率表など。 CSSの鬼門は超えたので、ようやくいろいろと他に手を出せるようになったのがありがたい。ajaxはサーバーサイドでわけわか…

【Django】Djangoでの異常検出結果をslackに通知する

連携用のモジュールはいくつかあるが、django-channelsモジュールで非常に簡単に実現できたのでメモる。 下の画像はtestCaseで異常系を動かし、Slackに異常通知が行っているかを試した結果。ちゃんと通知来てる!うれしい。 ここ1週間ぐらいCSSが思い通りに…

Python3で簡単なwebサービスを作る(16)

進捗が悪すぎる。苦しいなあ。フォントのレスポンシブ対応でものすごくハマってしまった。 やっと崩れ難いレスポンシブデザインのやりかたがわかってきた。ような、まだ全然わからないような。ハン先生のコメント部分を考えるのは楽しいな。 今のところ良い…

Python3で簡単なwebサービスを作る(15)

CSS怖いCSSつらい。キャラクタ+吹き出し表現がどうしても難しい。 難問だ・・・。条件を整理してteratailで聞いてみようかな。

Python3で簡単なwebサービスを作る(14)

CSSは沼!エンジニアが気楽に突っ込んで良い世界じゃなかった・・・! カッコイイテンプレートを改造するだけでいいやと思って、コードを見たら全然知らないNode.jsだとかless?だとが始まってて、にわか知識では全くカスタムできる気がしない。しょうがない…

Effective Python本をやる(5)--終了

とりあえず、読み終わったけど理解しきれてるとは思えない。 折を見て何度も見直そう。難しかったジェネレーターとコルーチンのところは時間を掛けて読んだけど まだyieldの使い方があんまわかってないなー。 とりあえずメモリバカ食いしそうな処理のときに…

【Python3】Djangoの開発用サーバーをスマフォから動作確認する

settings.pyのDebug=Trueの場合は、localhost以外のアクセスを弾くらしい。Settings | Django documentation | Django When DEBUG is True and ALLOWED_HOSTS is empty, the host is validated against ['localhost', '127.0.0.1', '[::1]']. 手順 スマフォ…

Python3で簡単なwebサービスを作る(13)

テスト完了。 model,view,urls,formに対してテスト作成した。一部除いてPassした。んで沼感あるCSSはコピペですまそうとしたけど、 生半可なコピペ(下図の壊滅的なBootStrap感)を延々と手直ししてグダグタ時間食うより 基礎講座やって、内容抑えたほうが結…

Python3で簡単なwebサービスを作る(12)

モデルのテストケース完了。Viewのテストケース今日中に作る。 とりあずpassだらけじゃねーか! 頑張ろう。終わらなかった! urlopenのmockがうまく動かなくてものすごくハマってしまった。明日頑張ろう。 その他 まだ無線Lan死んだのでレッツノート破棄する…

Python3で簡単なwebサービスを作る(11)

進捗ほぼなし。teratailの回答眺めたぐらい。 レッツノートの無線ドライバの異常直してほぼ1日潰れた。いやー、消えて欲しいわ。 次ハード異常出たら諦めてmac買おう。でも、新型mac評判あんまりだし、コスパ悪く感じるので全くうきうきした気分にならない…

【Python3】djangoでのpdb

pyCharm community版だとDjangoのデバッグがうまく出来ないので やり方を調べました。 pdbを使う デバッグしたいところにコードを仕込む def foo_func(): my_value = 10 import pdb pdb.set_trace() 該当箇所に処理が来たら、shellが起動するので、デバッグ…

Python3で簡単なwebサービスを作る(10)

う、とうとう(10)になってしまった。今日は通信量計測方法調べてて相当時間食った。 トランザクションについてteratailで回答いただいた。まだ噛み砕けてないので、適用方法を検討して返答しよう。teratail.com テストコードだるけど、今日はせめて1個書こ…

Python3で簡単なwebサービスを作る(9)

ひたすらリファクタリング。異常系は結構終わった。 あとは息抜きにwebサービスのfavicon.icoを作った。会話の「」となろう小説の n と ncodeのnを掛けた感じ。 今更だがnを大文字にしとけばよかったな・・・。 背景が白の場合だと緑の四角が浮いてる感じ見…

Python3で簡単なwebサービスを作る(8)

異常系ばっか書いてる。仕様が不明瞭なところを明確化した。 あとは監視用のメタテーブルとトランザクション。 テスト・・・・は頑張って書きたいけど、億劫だ。androidのABC 2016はすごい刺激になった。 はやいところ切りをつけて、TensorFlowを試してみた…

プログラミングコンテスト攻略のためのアルゴリズムとデータ構造本をやる(1)

休み日。銭湯行った。あとはPython3組み込みデータ構造についてちょっとだけ整理した。 データ構造について基本的な知識しかないので、 プログラミングコンテスト攻略のためのアルゴリズムとデータ構造本を読むことにした。プログラミングコンテスト攻略のた…

Python3で簡単なwebサービスを作る(7)

テスト全然書いてないけど、正常系はとりあえず動いた。 エラーハンドリング頑張って月曜でデプロイ&公開してとりあえず終えたい。あとは友人と勉強会に出席して、その後の飲み会で作ってるもの見せあったりした。 友人の構想5年アプリには完敗したw ああ…

Effective Python本をやる(4)

6章終わり。競技プログラミング時に組み込みデータ構造を割り付けることが多いので、特性をまとめたい。 明日やろう。5章も予習。コルーチン全然わかんねえ。即興で使える気もしない以前に理解できてない。 とにかく、ライフゲーム写経しよう。やること詰ま…

Effective Python本をやる(3)

7章読んだ。パッケージ公開する時に見直そう。 Djangoでモジュールエラー出まくったので早速動的importとかを試したが、 原因がぜんぜん違うので役に立つタイミングじゃなかった。いよいよwindows + pyCharm嫌になってきた。ウブンツ祭り行くしか・・・。Eff…

Python3で簡単なwebサービスを作る(6)

フレームワークきらいです。 なんか1個進める毎に謎エラー出る最悪な1日だった。 結局vertualenv環境が別なプロジェクトのヤツになってたというオチ。 そりゃモジュール無いってエラー出るわな。ハァ・・・ 新しい技術導入時はこういうことになる、って気持…

Python3で簡単なwebサービスを作る(5)

うううう。Postのリダイレクトがうまく行かず終わった1日。 なんか基本的なこと見落としてるんだろうな・・・・。Django公式のチュートリアルは一応最後までやった。 pythonGirlsJpと似た内容だったけど、Django初学者なんで何度でも基本やりますよ。ええ。 …

Effective Python本をやる(2)

全然難しい! 読み進められないのでなるべく平易なところから読んでます。8章終わり。7章途中。Effective Python ―Pythonプログラムを改良する59項目作者: Brett Slatkin,石本敦夫,黒川利明出版社/メーカー: オライリージャパン発売日: 2016/01/23メディア: …

Python3で簡単なwebサービスを作る(4)

Django+Herokuがおまじないばっかりだったので、一度PythonGirlsJPを整理した。 差し当たり必要なサイトの構成を考えるのにcontributeがどんなものがあるか知る必要がある。 Django公式のチュートリアルを進めながら、構成を考えていこう。2章まで進めた。 …

GitHubにツールを公開する(3)--終了

Qiitaに記事を投稿した。qiita.com 感想 主コード部分より、GitHub用に体裁整えたり、記事書く方が労力かかった・・・。 サクサクッと良記事上げてる人は尊敬するよ、ホント。 しばらくはツール上げたくない!もうしばらくは。

Effective Python本をやる(1)

2章まで終わった。 なんとなくページ数が少ないので気楽だ。その分ちょっと割り高感もあるけど・・。Effective Python ―Pythonプログラムを改良する59項目作者: Brett Slatkin,石本敦夫,黒川利明出版社/メーカー: オライリージャパン発売日: 2016/01/23メデ…

Python3で簡単なwebサービスを作る(3)

ひたすらDjangogirls日本版を写経。写経苦痛すぎる。謎エラーに対応できない。 こういうフレームワーク初心者が途中で折れないような勇気づけがほしいわ。 一応最後まで行った。謎エラーでるところのコード修正版はpullrequest出しておいた。 せめてやった感…