Blank File

LinuxとかPythonとかVimとか、趣味でいじる感じで

Pythonのパッケージ・仮想環境・プロジェクト管理ツールいろいろ

Pythonのパッケージや仮想環境、プロジェクトを管理するツールを色々紹介します。 自分用の備忘録も兼ねているので私のコメントにはかなり主観が入っています。 色々紹介しますが、基本的には pip と venv (virtialenv) で十分です。 これらで不便を感じてい…

Puppeteer (Chrome の自動操作ライブラリ) を Python に移植してpyppeteerという名前で公開しました

Puppeteer というJavaScriptでchromeを自動操作するライブラリが最近話題になっていました。 私もPythonでSeleniumの代わりに使えるものがほしかったので、puppeteerをPythonに移植し、pyppeteerという名前で公開しました。

Pythonの非同期な関数を同期的に実行できるライブラリ、syncerを作りました

Python 3.5 から使える async/await 記法ですが、テストの際などは非同期な関数を実行するのにひと手間必要で面倒でした。 そこで、非同期な関数を同期的に実行するライブラリ、syncer を作りました。 syncerは @sync というデコレータ用の関数をひとつだけ…

Pythonのテストのパラメータ化にはparameterizedを使うと楽(unittest/pytest/nose/nose2対応)

Pythonでテストをパラメータ化した時の書き方を unittest と pytest を使った場合で紹介し、最後にそれらで使えるparameterizedというライブラリを紹介します。 ちなみに私はpytestよりもunittest派です。

Pythonのライブラリとかをちょっと試したい時にtryってツールが便利

GitHubの Trending を眺めていたりすると時たま気になるpython製のツールやライブラリがあって試したくなったりします。 でもよく知らないし試したらすぐ消すようなものを普段の環境に入れるのも抵抗があって、その都度仮想環境を作ったりしていました。 try…

MarkdownとreStructuredTextを単一ファイルに混ぜ書きできるM2Rの紹介(Sphinx拡張対応)

MarkdownとreStructuredText (rst) を混ぜ書きしてrstを出力できるM2Rというツールを (1年ほど前に作っていたのですが今さら) 紹介します。 rstで出力するのでSphinx拡張としても使えます。 Markdownのテーブルや脚注にも対応しています。

Python3 の async/await/yield from

お題「シンタックス・ハイライト機能で対応してほしい言語」 マイお題への回答ってブログに書けばいいんでしょうか? よくわからない・・・ とりあえず、Python3で追加された yield from 文と 3.5 で追加された async/await が正しくハイライトされないよう…

WDOMのテーマ機能と起動オプションの紹介

先日紹介したWDOMの開発者向け機能の紹介です。 CSSフレームワークを使ったテーマ機能と起動オプションについて紹介します。 基本的な機能は前回の記事をご参照ください。 WDOMに色々更新を行ったので、ぜひ最新のバージョンでお試し下さい。 まだPyPIに登録…

GitLabでドキュメントのビルドとホスティング

完全に思いつきで、GitLabでドキュメントをgit管理してCIでビルドしてGitLab Pagesで表示する、というのをやってみました。 GitLabはGitHubみたいなサービスです。 (というかGitHubクローンで、以前はあまりにも似過ぎてたためになんか色々あったらしい、と…

PythonでブラウザベースのGUIアプリを作るライブラリ、WDOMの紹介

WDOMというPythonでブラウザベースのGUIアプリを作るためのライブラリを作っています。 ちょっとしたGUIツールを作ろうと思った時に満足できるものがなかったので作りました。 miyakogi/wdom: DOM manipulation library for python WDOMのターゲットは、あく…

Vimのパッケージをインストール・アップデートしてヘルプを作るスクリプトを書きました

先日からVim本体のパッケージ機能を使い、プラグインマネージャは使わない生活をしています。 とはいえプラグインのアップデートやヘルプの生成は手作業では面倒なので、そのあたりを処理してくれるPythonのスクリプトを書きました。 始めはdotfileをgit管理…

Vimのパッケージ機能を試してみました

Vim

最近dein.vimがバズったりVim本体にパッケージ機能が追加されたり、Vim界隈は第二次プラグインマネージャ戦争の気配に包まれています [要出典]。 dein.vimはすでにいくつか紹介記事がありますが、本体の方はあまり情報を見かけかなかったので先日試した結果…

Python製の静的サイトジェネレータを色々試してみました

このブログははてなブログで運用していますが、最近ブログを静的サイトジェネレータで作ってGitHub Pagesにおこうかな、と考えています。 ということでいくつか静的サイトジェネレータを調べたのでまとめました。 ついでに比較用に作ったブログをいくつかGit…

Livemark.vimを色々更新しました

Markdown文書をリアルタイムで更新するVimプラグイン、Livemark.vimを更新しました。 +channelなVimじゃなくても+pythonなら動作するので、よければお試し下さい。 安定したものがいい場合はprevimなどをおすすめします。 オプションはGitHubのREADMEに一応…

テストカバレッジ取得CIサービスの比較 (Coveralls.ioとCodecov.io)

※注意:この記事には主観とグチが含まれています。 コードのカバレッジ取得サービスを調べてみました。Coveralls.ioとCodecov.ioの比較です。 ↓こんな感じのバッジがREADMEに表示されるやつです。

Vim の channel と json のパフォーマンス

Vim

先日公開した livemark.vim には想像以上にたくさんの反響をいただきました。 ありがとうございます。 最近では海外の方からもGithubのスターをいただきました。 思いつきで作ったプラグインでしたが、せっかくなので普段使いできるようにいくつか更新しまし…

Vim に channel が実装されたので Markdown をプレビューするプラグインを作りました

Vim

Vimにchannel機能が実装されました。 Big Sky :: Vim にchannel(ソケット通信機能)が付いた。 昨日から株価・為替は乱高下し、大臣の辞任、日銀のマイナス金利導入決定など国内では大きなニュースが続いていますが、Vimmerにとってはこのパッチが最も影響が…

Vim の g で始まるコマンドというかキーマップの一覧

Vim

今回、gをプレフィックスとするキーマップの種類別一覧を昔作ったのを思い出したので紹介します。地味に便利なものも結構あります。アルファベット順の一覧は :help g で見られますので、開いているマッピングを探す時などはそちらをご参照下さい。 2015年2…

Nimrod.vimのomni補完をまともっぽく動くようにしたので人柱募集です

VimでNim*1のコードを書く時はとりあえず nimrod.vim を入れておけばなんとかなる*2のですが、このプラグインのOmni補完(インサートモードで <C-x><C-o> )がちゃんと動いてないっぽかったので修正してました。 ついでに、デフォルトでneocomplete 用の設定も入るよう</c-o></c-x>…

この頃 流行りの 言語たち(他)でベンチマーク (Dart, Go, Julia, Nim, Python, Rust 他)

自分が気になっている、主に最近のプログラミング言語でベンチマークをやってみました。方法は、42番めのフィボナッチ数列の値を計算する時間を測るだけです。フィボナッチで各種言語をベンチマーク - satosystemsの日記 を参考にさせていただきました。 注…

VimでNim言語を書く設定

VimでNimのコードを書くときに、してあると便利な設定を紹介します。 Nimについては、このブログの前の記事を参照して下さい。 Nimの紹介 − Python風静的型付言語 〜コンパイラと型推論を添えて〜 - Blank File 他のエディタの設定はここで紹介されています…

Nimの紹介 − Python風静的型付言語 〜コンパイラと型推論を添えて〜

はじめに Nim (旧称: Nimrod) というVimに似た名称のPython風構文な静的型付言語があります。 先日Twitterで存在を知り、少し触ってみました *1。 書きやすい上に実行速度がとても速く(単純な処理でgo, rustより早くC並)、非常に気に入ったので簡単にイン…

端末Vimでも半透明背景にしたい、そんなあなたに "Seiya.vim" を贈ります

Vim

※ 2015/01/06 色々ひどかったので大幅に書き直しました。 今日はクリスマス・イブですね *1 ! 皆様も色々追い詰められてVimや端末と向き合いながら過ごされていることと胸中お察し申し上げます。 一部では「仕事から開放されなくてツラい」などの怨嗟の声も…

Pythonと型 〜 Docstring、関数アノテーション、型推論 〜

動的型付言語であえて型を宣言する方式(Type Hinting or Optional Typing)、最近流行ってますね。 言語仕様としては Dart や TypeScript が採用していますし、Pythonでは 開発者のGuido氏が次期バージョン (3.5) での型アノテーションの導入を提案 してい…

Ubuntuのvimで :python と :python3 を同時に有効にする(リベンジ)

Ubuntu 14.04 + Vim 7.4.507 でPythonインターフェイスとPython3インターフェイスを同時に使えるようにします。 筆者はUbuntuを使いましたが、Debian系のディストリであれば同じ方法でできると思います。 この記事は素人がよく理解せずに書いています。色々…

vim-watchdogsで快適なシンタックスチェック

訳あってVimでのシンタックスチェックをSyntastic + pyflakes-vimからosyo-manga/vim-watchdogsに置き換えたらかなり快適になったので紹介したいと思います。

今さらRust試してみた(ついでにGo言語と少し比較)

Rustを学びシステムレベル言語を理解すること - ワザノバ | wazanova に触発されてRustを試してみました。 ※ 以下の内容は全て個人の感想です。 Rust (プログラミング言語) - Wikipedia)

Dart公式のHomebrew formulaが出た

タイトルの通りです。 Dart News & Updates: Dart launches support for Homebrew 今までDartをHomebrewで入れる方法は若干混乱している感じがありましたが、公式のformulaが出たのでこれで安心してMacでDartを試せますね。

vim-dartanalyzerの使い方

先日の記事(気づいたらDartの構文チェック用Vimプラグインを作っていた)で紹介したDartの構文チェックプラグイン、vim-dartanalyzerの使い方などを書いておきます。

はてなブログのサイドバーにtwitterのつぶやきを表示する(幅調整ver.)

Twitterを始めたので、ついでにサイドバーにつぶやきを表示するようにしました。 その際、Twitterのつぶやきを「はてなブログ」のサイドバーに設置する方法 - おしい県でWebに携わって働く人のブログを参考にさせていただきました。画像を使って非常にわかり…