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

c-bata web

@c_bata_ のメモ。python多め

Core APIの概要とDjango REST Frameworkでの使い方

Django Advent Calendar 2016 - Qiita 18日目の記事です。 Django REST Frameworkは、DjangoでRESTfulなAPIを提供するときに非常に人気のあるフレームワークです。 既に使ってるよという方も多くいらっしゃるのではないでしょうか。 日経電子版さんも業務で…

Released Kobin v0.1.0: Web Framework for Python3.

少し開発が停滞気味だったのですが、最近多くのアップデートを加えたので、v0.1.0をリリースしました。それに伴い、WSGIミドルウェアやWSGICLIの開発、ドキュメントの整備を行ったので紹介。 github.com Kobin Kobinの説明や使い方は、ドキュメンテーション…

AWS Lambda + API Gateway + Chalice(Python2)でLINE BOT

最近、AWS LambdaとかAPI Gatewayを触っていたのですが、 id:iktakahiro さんに教えてもらった chalice がよさそうなので試してみた。 ただサンプルを動かすだけというのも面白くないので、先日公開されたLINE BOT SDK for Pythonで遊んでみる。 AWS Lambda …

PIPEによるプロセス間通信とselect, poll, epollの話

先日、 tokibito 先生(id:nullpobug)と勉強していたpipe, select, poll, epollあたりについてメモ。 os.fork os.fork : 子プロセス(child process)をつくれる。 import os a = 0 print(a) os.fork() a += 1 print(a) 子は親の複製。親のデータ、ヒープ、スタ…

AWS LambdaとAPI Gatewayを触ってみたのでメモ

PyCon JP スプリントの時に id:iktakahiro さんがLambdaの話をしていたのですが、Lambda + API Gatewayは覚えとくと便利そうなので試してみた。 Lambdaを触ってみる まずAPI Gatewayは考えずに、Lambdaを触ってみる。 調べてみたら、公式のドキュメントにも…

#pyconjp でWeb(WSGI)フレームワークの作り方について話してきました

昨年のPyConJPでは pandas-validator について話していたのですが、今回はトークセッションをしてきました。 Twitter見てると早速スライドを見ながら実装してくださってる方もいらっしゃって嬉しいかぎりです。 日本語のWSGIフレームワークの作り方の資料と…

PyCon APAC 2016 in KoreaでLTしてきた

昨年の台湾の開催につづいて、今年もPyCon APAC 2016 in Koreaに参加してきました。 PyCon APACについて PyCon APACは名前の通りアジア太平洋地域の人たちが集まるPythonのカンファレンスです。 昨年は台湾で開催されて700人ぐらいが集まりましたが、今年は…

Flask 0.11で追加されたコマンドラインインタフェースを追ってみる

本日ついに、Flaskのnew versionがリリースされました。めでたいですね! 前回のリリースが2013/06/14だったので、ほぼ3年ぶりです。 バージョンを1.0に上げるという話がありマイルストーンも立っていましたが、0.11としてリリースされました。 1.0にしなか…

Feedy(Python)でRSSフィードをいい感じに処理する

最近、RSSフィードをfetchしてゴニョゴニョ処理したいと思うことが多かったのですが、特に気にいるライブラリが無かった *1 のでFeedyというライブラリを作ってみました。 個人的には結構気に入っていて、便利に使えているので紹介します。 もともと欲しかっ…

Pythonを使ったデータ分析に関する内容をJupyter Notebookにまとめ始めました

研究をかれこれ2年半ぐらい続けてきたので、研究をする中で必要になった機械学習の手法について調べたりコードを書いたりしてきたのですが、まだまだ触ったことのない機械学習の手法も多く、研究で必要になる手法以外の知識も付けたくなってきたので、勉強し…

DockerでHerokuの環境を再現する

はじめに 2015 tech-yuruyuru アドベントカレンダー - connpass 13日目です。 PythonのWebアプリを開発するとき、Mac上でそのまま開発することが多いんですがHerokuに近い環境で動作確認もしたい。 Heroku-toolbeltの中にDockerfileを生成してくれるコマンド…

Pythonにおけるハッシュ計算

はじめに ADVENTARのPythonアドベントカレンダー 4日目 です。 今作っているもの で後々必要になるかなと思い調べていたハッシュ関数について書きます。 ハッシュ関数について ハッシュ関数は、任意長のデータ x を与えると固定長のビット列 y を返す関数で…

PythonのWebアプリ動かす時にやったこととかメモ

はじめに ISUCONとかコンテスト系のイベントでPythonのWebアプリを出来るだけ早くセットアップしたい時があるので自分なりの手順とかメモ。自分が後で見返す用なのでまとまってないです。データベースに関しては別の記事に分けました。 nwpct1.hatenablog.co…

Flaskの構成とかライブラリメモ

はじめに Flaskでいくつかアプリを作るのでメンバーに共有するために、使うライブラリとその説明とかをメモ。 ソースコードはGithubで公開しています。 github.com Flask-SQLAlchemy モデルの定義 from . import db from werkzeug.security import generate_…

PyCon JP 2015でLTしてきました

はじめに PyCon JP 2015おつかれさまでした。 スタッフとしては半年ぐらい前から少しずつ作業してたので、かなり長く関わったイベントでした。 Lightning Talk youtu.be PyData界隈の人からも予想外に良い反応が帰ってきて、やったかいがありました。 Github…

ビープラウドでのアルバイトを終わりました

このブログには技術ネタ以外書かないつもりだったけど、かなりお世話になったので振り返りとお礼のエントリ。 ちょうど半年間ぐらいビープラウドでアルバイトをしていたのですが、それも昨日で終わりました。 BPのみなさんありがとうございました。 ビープラ…

クラス内のフィールドが定義された順番を保持する(Python・メタクラス)

colanderはメタクラスを作って `id`, `name`, `age` と定義された順番を把握しているとのこと。 [colanderのソースコード](https://github.com/Pylons/colander/blob/master/colander/__init__.py) を見ながら、どのように `id`, `name`, `age` の定義された…

pandasのvalidationライブラリを公開しました

はじめに pandasのDataFrameはかなり便利ですが、その構造を明示的に定義できないので変な値が混ざってることに気づきにくいです。 研究で使ってるプログラムで変な値が混ざってないかチェックしたい所があったのですが、validatorについて調べてみても特に…

Travis CIを使ったDjangoプロジェクトの継続的インテグレーション

はじめに 以前,Djangoのテスト(ユニットテスト)の書き方について勉強したことがありました. Djangoのテストの書き方について勉強したのでまとめる - Programming Log Djangoのテストの書き方について勉強したのでまとめる - Programming Log 今回は↑の記事…

DjangoでWebサービスつくった

Djangoを触りだして1ヶ月ちょっと経ちましたが、忙しいって言いながらあんまり勉強できてなかったので短期間集中してWebサービスの開発をやってみました.とりあえず人に見せられるところまで来たのでHerokuで公開しています. http://itukalist.herokuapp.c…

Djangoのユーザ認証まとめ

Djangoでユーザ認証をしたかったので調べてみると,DjangoではUserモデルがはじめから用意されているらしい.そこでDjangoの提供する機能をそのまま使ってログイン・ログアウトを実装してみた. さらに調べてみるとpython-social-authというライブラリを使え…

Python pandas テストの書き方についてメモ

はじめに pandasやnumpyとかを使ってデータ分析のようなことをしてると、実行結果が数値だったりしてバグに気づきづらい。結果がおかしいことに気づかないまま論文を書いてしまうのは怖いのでユニットテストを書いておく。 普段、Pythonによるデータ分析入門…

Djangoのテストの書き方について勉強したのでまとめる

はじめに この記事はPython Advent Calendar 2014の12日目の記事です. 昨日は「SushiYasukawa」さんによる(Pythonによる簡単なLispインタープリタ実装方法(四則演算編)) - Python, web, Algorithm 技術的なメモでした. 最近Djangoで何か作ったという記…

Pythonでつくる検索エンジン(Webクローラ, Mecab, MongoDB, Flask)

はじめに Webサービスのプログラミングに必要なことのだいたいは、スクレイピングに学んだ - Line 1: Error: Invalid Blog('by Esehara' ) この前↑の記事をみかけました。クローリングやスクレイピングは、色々と応用が効きそうなのでしっかり勉強したい。 P…

pymongo使い方まとめ(Python, MongoDB)

はじめに MongoDBやpymongoについては以前基本的な事を勉強した(Python/FlaskからMongoDBを扱うpymongo勉強内容メモ - Programming Log)ので、Webアプリを開発する場合の事を意識して触ってみる。 DBスキーマ 最近、達成日と達成コメントを残せるTodoリスト…

PyCharmで開発する手順メモ(Git, Virtualenv)

はじめに この前PyCharmのProfessionalを入れたので、PyCharmの使い方を確認しながらプログラム書いてみる。この記事は、今後PyCharmで開発を行うときにスムーズに開発するためのメモなので僕以外には分かりにくいかもです。ちなみにPyCharmの設定や機能につ…

VimからPyCharmに乗り換え(機能の把握と設定)

はじめに 現在、vimrcはまだ500行ほどだけどすでにメンテが負担になってしまっている。試しにPyCharm使ってみたらびっくりするくらい使いやすかったので 今回は、PyCharmの設定と便利機能の把握、ついでにvimrcもコンパクトにする。 参考資料 PyCon JP 2014…

FlaskでhtmlからDELETEやPUTなどのhttpメソッドを扱う方法メモ

はじめに 今勉強用に作ってるWebアプリケーションで、htmlからDELETEメソッドを送りたかったので調べてみると、htmlのformではdeleteやputなどのhttpメソッドが使えないらしい。 対策 ↓のページを見つけた Custom HTTP methods from flask import _request_c…

Pythonのリストを辞書型のvalue値でソートする方法メモ

はじめに 今勉強用に作ってるToDoリストのようなアプリケーションで、下のようなデータを扱っている。 tasks = [ {'TaskId':0, 'TaskTitle':'Fishing'}, {'TaskId':2, 'TaskTitle':'Cycling'}, {'TaskId':1, 'TaskTitle':'Running'} ] このリストを中に入っ…

MarkdownでLaTeX文書作成(ファイル更新検知による自動化)

はじめに 研究室の先輩から、「TeX文書をつくる時はMarkdownで書いてPandocで変換したほうが良い。」と言われたので真似してみる。ちなみに先輩はファイル更新を検知して自動で変換&PDF出力するスクリプトをRakeで作ってるらしい。ビルドツール勉強するのも…

Python/FlaskからMongoDBを扱うpymongo勉強内容メモ

Flaskについて調べていると、けっこうMongoDBを使っている人が多かった気がします。特にpymongoとFlaskとの相性がいいらしい。スキーマレスで柔軟にデータを管理できたり、pythonの辞書型そのまま格納できる点が便利らしい。 MongoDBと会話してみる まずはHo…

Python/FlaskでTwitterのOAuth認証

はじめに TwitterによるOAuth認証を使ったアプリケーションを作りたかったので調べてみた。 とはいっても、とりあえず動くものを作るのが最優先なのでOAuth認証は何らかのモジュールに任せる。色々調べてみるとどうやらpythonでOAuth認証をやるならRauthとい…

Flask-SQLAlchemyメモ

はじめに この前Webアプリを書いた時にFlask-SQLAlchemy使ったので忘れないうちにメモ。 DBの設定・作成 Configuration from flask import Flask from flask.ext.sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI']…

RESTful API勉強内容メモ

最近Flaskの勉強をしていたので、今後スマホアプリと連携したアプリケーションを作るときのためにAPIの設計についても勉強してみました. REST APIの仕様を決める上で、RESTやSOAPといった考え方があるらしい. 特にRESTという考え方は結構重要らしいという話…

Jinja2メモ

最近、FlaskでWebアプリを書いたりしていたので、ちょっとずつ勉強した内容をまとめてみる。 今回はFlaskで採用されているJinja2(テンプレートエンジン)についてのメモ。 条件分岐 {% if flag == 1 %} <p>あいうえお</p> {% elif flag == 2 %} <p>かきくけこ</p> {% else %…

Pythonデバッガ(pdb)とテスト(pytest)についてのメモ

はじめに 今までテストを書くどころかデバッガを使ったことがなかったのですが、id:Kesinさんの↓の記事を読んで、このままではマズイと思ったので勉強しました。 研究のプログラミングにおける悲劇を無くすためのGitとテスト デバッガ Pythonには標準でpdbと…

Javaで書いたプログラムをPython(Jython)から利用する

はじめに Pythonで書くつもりだった研究のプログラムを後々Androidへの移植のため、Javaで書いてほしいと頼まれた。でも分析対象のデータがCSVファイルだったりJavaだとちょっと面倒くさそうなところがあったりするので、Javaで書いたプログラムをJythonを使…

MacにPython,Rのデータ分析環境を構築したのでメモ

はじめに 研究のためにデータ解析を勉強していかないといけないので、Macにデータ解析のための環境を構築。 前回、Homebrew、Python、virtualenvのインストール・設定しているので、その続きから。 (2014/11/13 追記) pyenv-virtualenvを導入しました pyenv…

VirtualenvでPython開発環境を構築する。

はじめに 前回の記事でHomebrewのインストールとvirtualenv,virtualenvwrapperのインストールが終わったので、それらを使ったPython開発用の仮想環境を構築する手順をメモ 早速使ってみる mkvirtualenv [環境名]で作成、rmvirtualenvで削除、workonで作成し…

MacPortsからHomeBrewに乗換え&Python開発環境構築

追記 (homebrewでpythonいれるのと、virtualenvwrapperやめました) ライブラリとか作ってるとtoxで複数のバージョンのPythonを動かしたりする必要があります。 HomebrewはPython2.7とPython3.5だけとかならいいのですが、3.3 ~ 3.5までインストールしたいと…

Pythonでmp3再生

pygameというライブラリでmp3が再生できるらしいので,Raspberry Piにインストールしようとしたのですが,どうやらデフォルトで入っていたみたい。無かった人は↓のコマンド $ sudo apt-get install python-pygame 実際にプログラム書いてみる。 #!/usr/bin/env…

ArduinoとRaspberryPiでスマホから家のエアコンの暖房をつけてみた。

きっかけ 毎年,冬になると家に帰っても寒くて布団に入りたくなってしまう。 そこで学校からの帰りの電車の中や信号待ちの時に,さっとスマホを取り出して家のエアコンを付けることができたら,家に変えるのが楽しくなりそう・・・っていうのがきっかけ 具体的…

Pythonで天気を取得してくる

朝起きた時に,今日の天気をRaspberry Piに読み上げてほしいので,↓のサイトから引っ張ってくる。 http://tenki.jp/forecast/pref-31.html 流れとしてはソケット通信でhtmlを取得してきて,idから文章を引っ張ってきて正規表現でタグ消し を行う。後はこちらの…

PythonからTwitterを利用する

MacとRaspberry Piにtweepyをインストール 参考サイト: twitterAPI用pythonライブラリtweepyを使えるようになるまで。 Macにはpipをインストールしていないので,easy_installでtweepyを導入。導入後はimport出来るか確認 $ sudo easy_install tweepy $ pytho…

Python勉強内容まとめ2(AndroidでPythonを動かす。)

いつものように,勉強した内容まとめ。 今回は,Android上でPythonを動かす方法について調べました。 ちなみにiPhoneやiPadをお持ちの方は「Pythonista」というアプリがありますので,そちらを利用する方が楽です. iOS用Python2.7であるところのPythonistaは…

Python勉強内容まとめ1(開発の準備,勉強方法等)

Pythonについて Pythonとは海外で人気のオブジェクト指向型スクリプト言語です。 メリット シンプルで習得がしやすい Google,yahoo,Dropboxなどでも利用され,シンプルながらパワフルな言語 ライブラリも豊富でWEBアプリ,GUIアプリの作成が可能 JythonというJ…