達人プログラマーの新装版がでたので読み直してみた

オーム社 さんから献本して頂きました。ありがとうございます! 新装版 達人プログラマー 職人から名匠への道 原著は1999年10月20日に出版されたそうです。このブログ記事を書いているのが2016年11月なので17年前に書かれたことになります。元の出版社である…

Python と型ヒント (Type Hints) と #pyconjp

先週末は PyCon JP 2015 に参加してきました。 どうでも良いことですが、たまたま会社がシルバースポンサーになっていましたが、参加そのものは個人でした。結果的には会場に会社ブースもあったため、そこでお手伝いもしつつの参加となりました。私以外には…

Python とマクロ、代数的データ型

前回はマクロの概要と Python でマクロを実装するための仕組みについて説明しました。 Python とマクロ、インポートフックと抽象構文木 - forest book 動作原理を理解した上で実際にマクロでどういったことができるのか、MacroPy というライブラリで提供され…

Python とマクロ、インポートフックと抽象構文木

どちらがきっかけだったのか忘れてしまいましたが、wikipedia:メタプログラミング か wikipedia:抽象構文木 について調べているうちに マクロ が出てきました。私の中では、マクロと聞くと、C 言語の、プリプロセッサ (コンパイルの前処理) でコードに置き換…

Python と型ヒント (Type Hints)

先日、Python の静的型チェッカーとして mypy を紹介しました。 mypy で静的型付け Python プログラミング - forest book 私には難しくてまとめきれないため、Guido が参照している漸進的型付け (Gradual Typing) も含め、また別の機会に、、、。 とか言って…

アリエル・ネットワークを退職しました

今月末をもって2年4ヶ月働いたアリエル・ネットワークを退職することにしました。あるとき同僚とお昼ご飯を食べていて、私より後に入社した2人の同僚が私のブログを読んで入社を決意したという話を聞きました。 アリエル・ネットワークに入社しました - fore…

mypy で静的型付け Python プログラミング

Pythonへの型アノテーション導入を目指すGuido van Rossum氏mypy の型アノテーションの構文を Python に取り込もうとメーリングリストで提案したニュースが話題になりました。今夏に話題になったニュースを今冬にフォローするという季節外れ感ですが、ずっと…

Python3 プログラミング勉強会の補足

先日、Python3 プログラミング勉強会 を開催しました。以下に資料の中で引用したサンプルコードを置いておきました。 t2y / misc / source / python3_programming — Bitbucket ちなみにこういったサンプルコードをアップする前に pep8 と flakes と doctest …

Ubuntu 14.04 で vim パッケージをリビルドする

Ubuntu 14.04 で vim をインストールすると python3 インターフェースが無効になっています。python3 インターフェースを有効にするために deb パッケージをリビルドしてみます。vim の拡張機能をチェックするには以下のようにバージョンを表示します。 $ vi…

考える生き方

極東ブログ の著者の著書を読んだ。それまでブログの存在は知っていたし、twitter 経由でリンクから記事を読んだことも何度かあった。著者がアルファブロガーの1人だということも知っていた。著者のブログである記事の内容を覚えている。いま見返すと、2年前…

パーフェクトPython

Python3 に特化した専門書という位置付けですが、(Python3 に関した) 言語仕様やその変更、ライブラリの詳細の違いなどを除けば、Python2 でも活用できる知識が大半です。まだ Python2 しか使っていないという方でも十分に役立つ内容だと思います。ただ、本…

リーダブルコード

うろ覚えですが、学生の頃、プログラミングの勉強をしていて、どこかのサイトに 1000 行以上のコードを書いてみるとその言語のプログラミングの雰囲気が分かるといった内容が書いてあったような気がします。本書は特定の言語に依存した内容ではありませんが…

Subversion で svn:externals (外部参照) を設定する

Subversion は、シンボリックリンクをサポートしています。例えば、あるユーティリティモジュールがあり、それを複数のプログラムから使いたい場合、シンボリックリンクを使うと便利です。 シンボリックリンクの作成 試してみましょう。テスト用のリポジトリ…

アリエル・ネットワークに入社しました

9月からアリエル・ネットワーク (以下アリエル) に入社しました。以前、アルバイトで3ヶ月半ほどお仕事していました。以下はそのときの手記です。 アリエル・ネットワークでアルバイトをしてきました - forest book さて、最近こんなツイートを見ました。最…

Pyramid ベースの軽量 CMS フレームワーク Kotti の紹介

ここ最近 Kotti アドオンの開発を行っていました。Kotti は、Pyramid の上位でアプリ開発を支援するフレームワークです。いまのところ、軽量 CMS として開発が進められています。Kotti を紹介するウェブサイトも構築されています。まだ概要程度の情報量です…

ローカル環境で複数の Sphinx ドキュメントを参照する

最近の Python パッケージは、Sphinx でドキュメントが書かれていることが多いです。Sphinx でドキュメントが書かれているなら、そのパッケージのソースをクローンしてきて、ローカルでドキュメントをビルドするのも簡単です。私の場合、そのときの開発に用…

コマンドラインオプション付きの which コマンドを実装してみた

すべてのコマンドがperlで実装されているLinuxディストリビューション。誰得 / perl linux URL2012-08-18 00:09:09 via Hatena Ruby / Python の勉強用に Perl Power Tools みたいに Ruby / Python Power Tools を作ってみようかと妄想したことがあるが、現…

PyCon Taiwan 2012 イベントレポート Day 2

6月9-10日に開催された PyCon Taiwan 2012 に参加してきました。前回の記事からちょっと間があきましたが、2日目 (10日) のカンファレンスレポートです。私は基調講演について執筆しました。 PyCon Taiwan 2012, Day 2:「PyCon Taiwan 2012」参加レポート|…

fanstatic による Python パッケージを使った静的リソース管理

最近 Kotti で Web アプリを作ってみようと調査しています。但し、今日は Kotti のお話ではなく、たまたま更新差分を見ていたら、fanstatic という静的リソース管理ツールが新規に使われているのを見つけました。ちょっと調べてみると、とても良さそうに見え…

PyCon Taiwan 2012 イベントレポート Day 1

6月9-10日に開催された PyCon Taiwan 2012 に参加してきました。今回は、初日 (9日) のカンファレンスレポートです。私は基調講演について執筆しました。 PyCon Taiwan 2012, Day 1:「PyCon Taiwan 2012」参加レポート|gihyo.jp … 技術評論社

PyCon Taiwan 2012 イベントレポート Day 0

6月9-10日に開催された PyCon Taiwan 2012 に参加してきました。初めて行った台湾ですが、羽田空港から飛行機で3時間半と近く、とても良いところですっかり気に入りました。そんな雰囲気が分かるレポートになっていると思います。記事は3人で執筆しています…

DevOps は開運!?

半月以上前のイベントですが、5月26日に DevOps Days Tokyo 2012 が開催されました。私はお手伝いも兼ねて参加していました。 John Wills 氏のスライド 冒頭のセッションで Enstratus 社の John Wills 氏がスライドに「開運」という文字を表示していました。…

detox で tox テストを並列実行しよう

複数の Python バージョンでテストを実行するツールに tox があります。 tox と pytest で Python 2/3 両対応のテストを実行する - forest book tox ツールそのものがとても便利なのですが、この tox テストを並列実行してくれるツールがリリースされました…

pytest のドキュメントを翻訳しました

Python のテストツールに pytest があります。ここ最近、徐々にテストを書くのに慣れてきて、さらにテスト設計や知見を高めようという思いが強くなってきました。pytest は、wikipedia:設定より規約 を設計原則とするツールです。Python は明示する文化なの…

pytest-pep8 を 0.7 から 0.8 にアップグレードしたらテストが失敗するようになった

タイトルは釣りです。pytest で pep8 のテストを行う pytest-pep8 プラグインがあります。次のようなサンプルコードを用意します。 (test)$ vi sample.py x=3 class A(object): pass def f(x): return x このサンプルコードを pep8 でチェックすると、たくさ…

virtualenvwrapper のドキュメント (和訳) を更新しました

2010-12-31 に virtualenvwrapper のドキュメントを翻訳したときのバージョンは 2.6.1 でした。 virtualenvwrapper のドキュメントを翻訳しました - forest book 現時点の最新バージョンは 3.2 です。その後も着々と機能拡張、バージョンアップが行われてい…

あなたも翻訳家になれる! エダヒロ式 [英語→日本語]力の磨き方

枝廣淳子さんの著書を読んでみたくなって購入しました。プロの翻訳家を目指しているわけではありませんが、エダヒロ式学習法に興味がありました。もちろん「翻訳とは何か」という氏の哲学もとても興味深い内容です。それを読むと、私は恐れ多くてプロの翻訳…

Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方

誰かの書評を読んでウィッシュリストに入れていたのを、ある時にお祝いとして id:rokujyouhitoma から頂きました。読むのが今頃になってしまいましたが、ありがとうございます!しかし、いまとなっては、誰の書評を読んだのか、なぜ私は本書をウィッシュリス…

PyCon US 2012 イベントレポート

https://us.pycon.org/2012/ に参加してきました。 そのときのイベントレポートを 「PyCon US 2012」 イベントレポート:レポート|gihyo.jp … 技術評論社 に書きました。face to face でコミュニケーションを取ることの重要さを実感しました。

tox と pytest で Python 2/3 両対応のテストを実行する

pytest *1 に関連して tox も一緒に覚えておくと良さそうです。 @t2y @methane 少し前からtox + py.test が鉄板な気がしますねえ2012-02-07 20:50:23 via twicca to @t2y tox については id:Ehren の入門記事が分かりやすいです。 Pythonでのテストツールtox…

データ駆動テストを nose と pytest でやってみた

pytest で初めてテストを書いてみました。 今度こそ帰るー、py.test を使って初めてテストを書いた、評判通りすごく良い2012-02-07 19:48:52 via TweetDeck @t2y noseと比べた感想とか聴きたいです。2012-02-07 19:55:04 via web to @t2y @methane @t2y テス…

アリエル・ネットワークでアルバイトをしてきました

3ヶ月半という短い期間でしたが、アリエル・ネットワーク (以下アリエル) でプログラマーとしてアルバイトしてきました。よく見かける、どこそこでインターンシップをしてきました風な記事を書いてみます。普通はそういった記事を学生さんが書いているもので…

イテレーターという抽象概念にもの思い

元ネタ: map_between をやってみる - Study08.net 対シンバシ殲滅用人型機動兵器 http://d.hatena.ne.jp/imagawa_yakata/20120105/1325781387 最近、Java のコードばかり書いています。Java には、Python にはない wikipedia:抽象型 としてのインターフェー…

本当の本当は誰が怖い!?

好評につき続編です。はい、嘘です。先日、 本家Ariel Advent Calendar 2011 *1 の記事を書きましたが、今回は 元祖Ariel Advent Calendar 2011 *2 を書きます。このブログに読者という方々がいるならば、一体何をやってるんだろうか?と首を傾げたくなるで…

pyrtm の Python 3 対応

(第14回)Python mini Hack-a-thon - connpass に参加してきました。Python で Remember The Milk API を扱う pyrtm 0.4 をリリースしました *1 。 やったこと Python 2/3 両対応です。たまたま Python3 対応の Pull リクエスト が来ていました。やろうと思え…

本当はどっちが怖い!? 番長 vs CTO

アリエル・ネットワーク さんでアルバイトをしています。以前、経営者が「エンジニアの楽園を目指す」と喧伝していた会社で働いたことがありますが、社内の、開発者の雰囲気はそれに近いものがあります。会社として Ariel Advent Calendar 2011 : ATND を行…

Python3 の関数アノテーションを使って自動テストする

先日、引数に @Nullable アノテーションが付いた引数をもつ関数をリファクタリングして、関数分割してコミットしたら、ビルドサーバーに仕掛けられた FindBugs™ - Find Bugs in Java Programs に、@Nullable が付いてるのに Null チェックしてないよと怒られ…

Sphinx 社内勉強会

Sphinx について何か話せというお題をもらって紹介してきました。私自身、Sphinx をちょっと使った程度のレベルなのであんまり突っ込んだ内容ではありません。大体こんな感じの全体像で、こんな拡張ツールがあるよといった紹介をしました。プレゼン資料では…

Jython プログラミング

ずっと積ん読になっていました。購入したのはおよそ3年前。最近、私が Java を勉強し始めたという動機もあり、3日で読んでしまいました。3年も読めなかった本をいま読めてしまうというのは、いつか読むかもしれないから気になった書籍は取りあえず買っとけと…

Oracle 11g XE を Ubuntu 11.10 にインストールする

最近リリースされたばかりの Ubuntu 11.10 に Oracle 11g XE をインストールしようとしたら少しはまったので原因と対策を簡単にまとめておきます。Emerge Technology: Oracle 11g XEをUbuntuにインストール の手順通りでほぼできますが、最後の configure ス…

Mac OS X で プロキシサーバーを使う

あれ、 ikazuchi は Proxy に対応してないのかな。便利なのにぃ。2011-09-25 00:27:30 via TweetIrcGatewayという要望を聞いたので調べてみました。まずはデバッグのためにローカルの開発環境にプロキシサーバーを構築します。ちょっとしたテストに squid : …

アジャイルサムライ−達人開発者への道−

オーム社 様に献本いただきました。ありがとうございます。私は、実際にアジャイルな開発プロジェクトに参加したことがなく、一種の憧れのようなものを抱いていました。本書は、私のようなアジャイル開発って何か凄そうだけど、具体的にはよく分からないとい…

EuroPython 2011 イベントレポート 第3回 (最終回)

1週間遅れてしまいましたが、最後の #4 アプリケーションに関する講演,LT,PSFメンバーミーティング,まとめ を書きました。イベントに参加した方、一緒に行ってくれた方、レビューしてくれた方、編集してくれた方、みなさん、お疲れ様でしたー。

プログラミングできなくてもマネジメントはできるか?

SIer で働く友人から聞きました。その友人は、数年、システムエンジニア (以下 SE) としてキャリアを積み、サブリーダーや新人研修の講師を務め、プログラミングも得意で、自身のキャリアプランとしてプロジェクトマネージャー (以下 PM) を目指しています。…

EuroPython 2011 イベントレポート 第2回

先週に引き続き、第2回のレポートが公開されました。私が執筆した #2 CPythonについてのハンズオン,講演 と id:rokujyouhitoma が執筆した #3 PyPyについての講演,ハンズオン,スプリント の2本立てです。Python プログラミングのテクニックや (比較的) 新…

EuroPython 2011 イベントレポート 第1回

気付けば1ヶ月以上、ブログを書いていませんでした。 先日、Europython 2011 — EuroPython 2013: Florence, July 1–7 に参加してきました。そのときのイベントレポートを #1 基調講演とカンファレンスの全体像 に書きました。全部で3回書く予定です。楽しん…

Scientific Linux 6.0 をインストールする

wikipedia:CentOS 同様、wikipedia:Scientific_Linux という wikipedia:Red_Hat_Enterprise_Linux クローンなエンタープライズ Linux があります。CentOS に比べるとマイナーな印象だったのが、CentOS 6.0 の開発が遅れたことから引き合いに出るようになりま…

俺のコードのどこが悪い? -コードレビューを攻略する40のルール-

コードレビューは、アプリケーションの品質を向上させる上でとても重要な取り組みだと認識されるようになっています。そんなコードレビューですが、私も以前、叩かれてへこんだりしたこともありました。そうこうしているうちに慣れて、むしろ指摘してもらえ…

EPEL リポジトリを活用して CentOS 5.x で Python 2.6 をインストールする

CentOS 5.6 も Python は 2.4 なの!— Hajime Nakagami (@hajime_nakagami) 2011, 4月 8Twitter を眺めていると、こういった声をちらほら聞くのでその対策をまとめてみます。 背景 CentOS 5.x で標準インストールされている Python のバージョンは 2.4.3 で…

Python Insider の国際化対応

Python Insider ってなに? Python Insider JA: Python Insider へようこそ! を読んでください。 Python Insider のはじまり http://us.pycon.org/2011/home/ で Python Insider という、Python のコア開発チームによるブログが3月の下旬から開始されました…