サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
夏の料理
librabuch.jp
ロギング目的のみであればアプリケーションサーバーを用意せずNginxで受け取るアーキテクチャはよく見られますが、URL中のクエリパラメーターをパースした上で、JSON形式で出力するところまでやってしまおうというのが今回の試みです。 URLと取得したい値 URL例は下記の通りです。 http://librabuch.jp/test?sessoin_id=1000&page_id=20 以下の2つのクエリパラメーターの値を取得することにします。 session_id page_id ログフォーマットの作成 今回はJSON形式でログをはき出したいので、ログフォーマットを作成します。 nginx.confのhttpディレクティブ直下に、下記の通り記述します。 log_format json '{' '"session_id":"$session_id",' '"page_id":"$page_id
2014年09月13日(土)〜14日(日)にPythonの最大規模イベントPyCon JP 2014 in TOKYOが開催されます。 ご縁あって、カンファレンス前日の2014年09年12日(金)に行われるチュートリアルの講師を務めさせて頂くことになりました。大変貴重な機会を賜りましたこと、スタッフの方々には御礼申し上げます。 チュートリアルは「PyData入門」と題して、Pandas / NumPy / SciPy / scikit-learnなどのデータ操作や数値計算ライブラリを用いたハンズオンなどを行います。初学者向けの内容とする予定ですので、どなたさまも参加頂けます。 詳細は下記オフィシャルページをご覧下さい。 チュートリアル | PyCon JP 2014 in TOKYO ところで、昨年のPyCon APAC 2013ではセッション枠でお話させて頂いておりました。 Python
タイトルの通り、PostgreSQL9.3のインストール手順を記録します。例によってCentOS 6系を想定。Amazon Linuxでも同じ手順で実行できます。2013年10月16日時点で最新の9.3.1で検証済みです。 # 依存関係のあるdevelを入れておきます。 yum -y install readline-devel yum -y install zlib-devel # ユーザーを作成。名前は何でもよいですが、後々 initdbを実行するユーザーになります。 useradd postgres # ディレクトリを作成 mkdir -p /usr/local/pgsql mkdir -p /var/log/pgsql mkdir -p /var/pgsql/data # インストール。インストール先は /usr/local/pgsql を指定します。(変更可) cd /usr/l
アプリケーションのログファイルをfluentdでS3に転送、S3からRedshiftに読み込んで集計、という流れはもはや鉄板パターンです。 これまではTSV形式で蓄積されているケースが多かったと思うのですが、2014年03月25のリリースでCOPY文がJSONフォーマットに(一応)対応したこともあり、とりあえずJSONで が最新のベストプラクティスになります。 おさらい 〜 fluentdを使ってJSON形式でS3にログを蓄積する 必要なもの fluentd本体 fluent-plugin-tail-ex fluent-plugin-s3 fluent-plugin-s3-alternative s3-alternativeを使うのは、 output_include_time false output_include_tag false 上記の設定を有効にして、純粋なJSON形式のフォーマ
paramiko は、つい先日 Python 3.3 系に対応したことが全米で僕の中で話題の Python パッケージです。 Paramiko - GitHub Paramiko - PyPI 3.x系で paramiko が使えないことにより Python のバージョンを 2.7 から上げられなかったプロダクトもあるのではないでしょうか。AnsibleやFabricなど paramiko に依存していたライブラリも3系への対応が進むと期待されます。 2016-04-14 追記:結局 Fabric の 3.x 対応は進みませんでしたね。 paramiko インストール pip インストール可能です。Python 3.4 でもインストールできることを確認しています。 pip install paramiko pycrypto などがあわせて導入されます。 paramiko サンプルコード p
本日は(第41回)Python mini Hack-a-thonの会場からお送りしております。 Python3.4がリリースされましたね! シリーズ化を匂わせると絶対に続かないというジンクス1 にめげずに新機能を追いかけていきます。 主な見所を引用すると PEP 428, a pathlib module providing object-oriented filesystem paths PEP 435, a standardized enum module PEP 445, a new C API for implementing custom memory allocators PEP 450, a new "statistics" module PEP 451, standardizing module metadata for Python's module import sys
続けてansibleネタ。 シェルスクリプトでインストールする話は python3.3をCentOSにインストール を参照してもらうとして、大体同じようなことをansibleでやってみようの巻き。 構成管理であるansibleの構成自体も結構置くが深くて、Best Practices辺りを参考にしつつ頑張る感じですが、今回はその辺りは割愛して、前提となるvariablesの紹介だけしておきます。 vars vars/vars.jsonにインストールしたいPythonのバージョンやディレクトリ構成を書いておき、playbookから参照するようにします。今回のplaybookには関係無いものも含まれますが一例として掲載。 { "base": { "get_url": "https://example.com/archive/" }, "versions": { "Python3": "3.3.
Redshiftとは 技評の連載及びゆめみさんのSlideShareがまとまっていて分かりやすいと思う。 ので割愛(キリっ Amazon Redshift 運用や設計のベストプラクティスやトラブルシューティングの充実はまだまだこれからではないかと思います。 Redshift と psycopg2 + SQLAlchemyの準備 RedshiftへはPostgreSQLのドライバ各種を利用して接続出来るので、今回はpsycopg2と、申し訳程度にSQLAlchemyを利用して接続してみます。 予め以下の通り設定が行われているものとします。 DBホスト hogehoge.us-east-1.redshift.amazonaws.com DBポート 5439 DB名 testdb DBユーザー testuser DBパスワード testpass また、次のようなスキーマのDBが作成され、データが
2014年01月、株式会社ALBERTの執行役員の任を拝命致しました。 ALBERTのエンジニアブログに書こうかどうか迷いましたが、公でもあり私でもある話だと思いましたのでこちらでのご挨拶となりました。ちなみに、このエントリは有り体に言うとリクルーティング目的で書かれております。 前置き 執行役員というと「?」が付く方もいらっしゃると思います。僕もよく分かっていません。 簡単に言うと、取締役ではないが、企業の業務遂行・執行に対する権限及び責任を持つ者、と言ったところでしょうか。 執行役員が普段どんなことをするのか?という点については、執行役員に限らないことですが企業に依るところが大きいと思われます。現場を離れて経営戦略を立てる者、マネージメントに徹する者、プレイングマネージャーとして携わる者。 現在、システム開発・コンサルティング部という部門の部長を務めているわけですが、結構何でもやってい
本エントリは、次のAdvent Calendarのために書かれたものです。 Python Advent Calendar 2013 (12月24日) 取り扱う内容 Pythonのデータ分析用ライブラリであるPandasの紹介と簡単なサンプルコードを取り扱います。 Pandasとは 一時期盛り上がったけどあんまりPandasの情報出てこないからよーしエントリ書いちゃうぞー、と息巻いていたらこのようなフルスタックな書籍が出版されるようです。 [amazonjs asin="4873116554" locale="JP" title="Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理"] どう見てもこの書籍のほうが有益です。本当にありがとうございました。 ...まぁ、発売日より2日早いのでセーフ(なにが?)として、めげずに続けます。 Pandas pandas is
本エントリは、次のAdvent Calendarのために書かれたものです。 AWS Advent Calendar 2013 (12月21日) 取り扱う内容 2013年はAWS界隈盛り上がりましたね!ALBERTでも、パートナー認定を受けたり、導入事例に掲載頂いたりと中々縁深い1年になったのではないかと思っています。 さて、今回は技術的な話とは少し離れて、Amazon Web Serviceの請求関連のお話をします。 参考資料 AWSマイスターシリーズ AWS Billingについて ※ 82スライドある資料です AWS請求管理の問題 AWSの料金体系の素晴らしいところと言えば、時間課金で、柔軟で、それらがコントローラブルな点にあります。気ままに使ってもそれなりに高いコストパフォーマンスを出してもらえますが、きちんと設計をすれば(例えばリザーブドインスタンス)さらに高いコストパフォーマンス
本エントリは、次のAdvent Calendarのために書かれたものです。 ドキュメンテーション Advent Calendar 2013 (12月15日) 取り扱う内容 株式会社ALBERTのシステム開発部では、ドキュメンテーションツールであるSphinxを積極的に活用しています。 Sphinxの導入、利用そのものは簡易に行うことができるのですが、開発部でチームとして運用するためにはいくつかの困難がありました。 そんな幾重にも張り巡らされた困難を乗り越えて、2013年11月頃から本格的に運用が出来ているなぁ、と実感するに至ったので、今回は2013年の総決算としてその変遷を綴ります。 関連資料 Pythonプロダクトを活用した開発チーム運営 in PyCon APAC 2013 - SlideShare SphinxをMarkdownで使い隊 - SlideShare Sphinxとわたし
Redshiftでテーブル定義やエラーログの確認・調査を行いたいときによく使うクエリを3つ紹介します。 テーブル定義の確認 既存のテーブル定義を確認したいときは次のクエリを発行します。 SELECT * FROM pg_table_def WHERE tablename = 'テーブル名' 確認できる情報は以下の通りです。 schemaname(publicとか) tablename(テーブル名) column(カラム名) type(カラムのデータ型・VARCHARなど) encoding(圧縮アルゴリズム。deltaとかtext255とか) distkey(DISTKEY指定フラグ) sortkey(SORTKEY指定フラグ) notnull(NotNULL制約フラグ) 自動選択されたCompression Encodingsを確認したい場合にもこのクエリを利用します。 テーブル一覧の確
Redshift使い始めたは良いけど、運用後に以下の点に気付いてしまうことがあるかも知れません。 SORTKEYやDISTKEYの設計を間違えた。寧ろそんなものがあったことを知らなかった。 INSERTでレコードを挿入していたのでデータが圧縮されていなかった。 人生をもう一度やりなおしたい。 MySQLやPostgreSQLだと数千万~億のレコードが入った状態でテーブルの設計ミスをなかったことにするのは骨が折れます。Indexの張り直しだけでも、億レコードのオーダーではソウルジェムが黒化すること間違いないです。 Redshiftなら、ほむらちゃんに時間遡行をお願いするまでもなくリカバリーできます。 そう、Redshiftならね。 手順 テーブルのデータをS3に逃がしてあげます。 UNLOAD ('SELECT * FROM table_name') TO 's3://tmp-hoge/'
Redisとは 所謂ひとつのKVS。いつもニコニコNoSQL。 Redisを使い始めたのは、メインテーマであったM○ngoDBさんが盛大にdisられ、代わりにRedisが推薦されるという異様な某NoSQL勉強会(←もう言っちゃってるが)に参加したことがきっかけでした。馴れ初めはさておき。 Redis Redisのよいところは、単純明快なコマンド、揮発性/永続性の選択肢、気の利くデータ型、そして高速なREAD/WRITE。Webアプリのシンプルなクエリキャッシュであればmemcachedで充分な場面が殆どですが、Redisはそのデータ型によって、一段上のデータストア用途として利用できます。 セット型で集合演算。AさんとBさんの購買ログを比較してAさんしか買ってないものを探す、とか。 文字列型でKey-Value Storeとして。 ソート済みセット型で「直近N件の閲覧履歴(ただし重複はなし)
WEB+DB PRESS Vol.72でも取り上げられ、ぼちぼちムーブメントが巻き起こって半年と経たぬうちにNGX48などというアイドルグループが結成されたりするのではないかと思う今日のこの頃。 冗談はさておきnginxの話をします。 nginx nginxにはお仕事でもプライベートでも大変お世話になっておりまして、まぁ一度使うと二度とApacheには戻りたくないと思わせる魅力があります。そんなnginxの良いところや活用事例などは別の機会にエントリを書くとして、今回はインストール手順編です。CentOS 5系,6系を想定。 インストール手順 まずは下ごしらえ。 # pcre, pcre-devel を入れておく。 yum -y install pcre pcre-devel # nginx の実行ユーザーを作成 useradd -s /sbin/nologin nginx # nginx
Pillowとは Pillow は、Python の画像処理ライブラリで、Python Imaging Library (PIL)の fork プロジェクトです。 PIL は開発が停滞し Python 2.7 までの対応にとどまっていますが、Pillow は Python 3.3 に対応しています。 2016-04-14 追記:Python 3.5.1 に対応しています。 Pillow 環境 pip インストール可能です。 $ pip install pillow Windows の場合、error: Unable to find vcvarsall.bat というエラーが出て、これは Visual C++ のなにがしを導入すると解消するらしいのですが、僕の環境で2008やら2012やらを入れても解消できなかったので諦めて Mac でやりました。 2013-05-07 追記:Windows
まえがき 続くかどうか分からない連載第一回。ポストLAMPとしてのLNMPの提唱と、各環境の構築について。第一回はMariaDBのお話です。CentOSへのインストール手順書としても参照できる内容になると思います。 さて、LAMP、すなわちLinux, Apache, MySQL, PHP( or Perl or Python) については今更解説するまでもない訳ですが、近年はこの牙城が崩されつつあるように思います。とは言えWebコンテンツのインフラ構築を考える際、LAMPが第一の選択肢に入る、ということがまだまだ多勢ではないかと想像されます。 僕の場合、仕事での商用サービスと私事で使っているWebサーバーの両方で2年ほど前からApacheを捨ててNginxを運用してきました。また、エントリ「さくらのVPS SSDプランに nginx + MariaDB でWordpressをインストール
Python3.3のインストール手順。例によってCentOS5系,6系を想定。CentOSのデフォルトのPythonは古いので、/usr/local/pythonに新しいものを入れましょう。注意点は、yumなんかがデフォのPythonと依存関係にあるので、そちらはそっとしてあげておいてください、ということくらいですかね。Leave me alone! Python3.3インストール手順 cd /usr/local/src # Python3.3をダウンロード wget http://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz # インストール tar zxvf Python-3.3.0.tgz cd Python-3.3.0 ./configure \ --prefix=/usr/local/python \ --enable-shar
もっと挑発的なタイトルにして冒頭で「このタイトルは釣りです」とか書こうとか思ったけど、各方面からの報復が怖いので止めた(←どこから)。 本日、お仕事で初めてCSSフレームワークを使う機会があってその仕様的なものを初めて見たのだけれども、かなりショックというか思うところがあったのでエントリにすることにした。 CSSフレームワークとは おそらくTwitter Bootstrapが最も有名かつ実際に利用されている、と思われる。 マルチカラムレイアウトとか、角丸でお洒落なメールフォームとか、アコーディオンなメニューとかのデザインがあらかじめ良く設計されよく作り込まれていて、HTMLの制作者はclass属性にちょちょいと記載するだけでお手軽に「今風」なセンスでWebデザインを組み立てられるというもの。フレームワークという呼び名には疑義もあるようだけれど、海外でもそう呼ばれているので今回はCSSフレー
Xbox360でオンライン対戦なんかを楽しむために必要なゴールドメンバーシップ(有償)ですが、Xbox360本体から登録はできるのに解約できない、というかむしろ電話でないと解約できない、などとすこぶる評判が悪い様子。 で、一応Webから自動更新を停止することが出来たのでメモしておきます。困っている人はやってみて下さい。 まず、Xbox公式サイトにアクセスし、ログイン後、ページ上部のメニューから「マイ Xbox」> 「アカウント情報」に進みます。 すると「アカウント情報」の画面の左側に自分のアイコンやらユーザー名やらがあって、「自動更新」の「オン」の部分がクリックできるようになってます。なってました。で、こっからが確かに酷いんですが、全然予想外の、「オンラインだとこんなに楽しいことができるよ!」っていうゲームの広告ページが出てきて、それはそれは、あら押すボタン間違ったのかしらん、と思うような
このページを最初にブックマークしてみませんか?
『ホームページ - Librabuch』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く