座敷牢日誌

都落ちした元SEがソフトウェアやネット関連のことを書いています

pacman.log から開発が活発なパッケージを調べてみた

/var/log/pacman.log から, 開発が活発なパッケージ/プロジェクトを調べてみました. 次のawkスクリプトで pacman.log を読み込んで, sort -nr にパイプで渡しただけ. /\[\<ALPM\>\]/ && /\<upgraded\>/ { packages[$5]++; } END { for(package_name in packages) print packag</upgraded\></alpm\>…

正規表現千夜一夜 第2夜 「行頭・行末の値を修正したい」

正規表現において行頭は ^、行末は $ で表すことが多いです。 例えば、コードの行末にコロンを付与したい場合、 s/$/;/。この程度なら、矩形選択 で行末まで選択した状態で、A で挿入モードにして入力することが多いかも。 逆に行末のコロンを取り除くなら、…

正規表現千夜一夜 第1夜 「2桁以上, 数値のみの値, 一の位を置換したい」

例えば次のようなコードがあるとします。 int frames1[] = {0, 21, 302, 4003}; このなかの 2桁以上の数値だけの値の一の位を、すべて 4 に置き換えたい。 しかし、数値以外を含む値 frames1 と1桁の数値 0 はそのままにしたい。 つまり期待結果はこうです。…

Python C APIでイテレータを実装する (後編)

PythonのC/C++ APIによるイテレータを実装する話の続きです。 ここにあるコードの多くは、オフィシャルのドキュメントを参考にしています。 1. C や C++ による Python の拡張 — Python 3.4.2 ドキュメント 2. 新しい型を定義する — Python 3.4.2 ドキュメン…

Python C APIでイテレータを実装する (前編)

PythonのC APIでイテレータを実装してみました。 Pythonであればyield を使ったり、__iter__, __next__ を使って実装するものですね。 語義的にジェネレータと区別できてないところがあるかもしれません。 指定した個数だけ素数を返すという機能を実装する例…

パッケージ gnome-shell-extensions の中身

archlinuxの公式リポジトリには、gnome-shell-extensions というGNOME Shell拡張機能のつめあわせパッケージがある。 どんな拡張機能があるのかリストにしてみた。OpenSUSEにこういうパッケージがあったかは分からなくて、GNOMEのサイトからいろいろインスト…

w3mで画像表示

ubuntu, mint, OpenSUSE, cygwinなど、w3mをいろんな環境で使ってきたけど、archlinuxで画像表示できている状態を初めて見た。 大抵の環境でうまくいかなくて、ターミナルの種類 (xterm) やコンパイル時のオプションで決まってるのかなあ、なんて深く考えた…

GNOME (GNOME3) のスクリーンキャスト機能

GNOME3にスクリーンキャストする機能があるって知ってた? GNOMEはOpenSUSE13.1で1年以上使ってましたが、archwikiを読むまで知りませんでした……。 Gnome にはスクリーンキャストを簡単に作成する機能が内蔵されています。 Control+Shift+Alt+R ショートカッ…

Python APIでC言語による拡張モジュールを試した

Pythonのドキュメントの、このあたりの話題を試してみた。 Python インタプリタの拡張と埋め込み — Python 3.4.2 ドキュメント 渡された値が素数かどうかを返す関数 isprime(n) を2通りのモジュールで実装する。 素数判定のコードはWikipediaの記事にあった…

Arch Linuxユーザーになりました

OpenSUSEからArch Linuxへ乗り換えた。前々から興味があってVirtualBoxへのインストー ル作業や設定を繰り返していたんだけど、やはり実機で使いたいということで。 2台のラップトップそれぞれに環境構築した。メインはGDM + GNOME3で、サブ機というか 家族…

packmanリポジトリのミラーの比較

OpenSUSEのpackmanリポジトリで一番マシそうなサーバを調べてみた。オーストラリアが 速い……とどこかで読んだけど、遅いんだよね……。 ミラーリストを参考にしている。 適当なサイズのパッケージを curl でダウンロードして調べた。 for _url in $urls; do ur…

Qt4のプロジェクトを CMakeLists.txt (Cmake) で作る

Qt4でCMakeを使ったプロジェクト作成を試してみた。 以下の記事を参考にした。 Using CMake to Build Qt Projects | Qt Project CMake Manual | QtDoc 5.3 | Documentation | Qt Project CMakeLists.txt の書き方 簡単にHello worldするところまで。 CMakeLi…

CMakeで設定されているすべての変数を出力する

CMakeのなかで使われている変数はたくさんあって (よく使うのは CMAKE_CXX_FLAGS とかですかね)、 それらをすべて出力する方法はないかと思って調べてみたら、stackoverflowにあった。 CMAKE: Print out all accessible variables in a script - Stack Overf…

CMakeのコンパイラ向けオプションを調べてみた

CMakeでgccやg++向けのオプションを指定するために、set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g") などと書いていた。 考えてみると、CMake側が用意しているビルド構成があるので、コンパイラに対してどういうオプションが指定されているか調べてみた。 MinGW/…

w3mのキーマッピングをw3m風に戻す

OpenSUSEのw3mのキーマッピングがlynx風になっていた。G で ページ最後へスクロールで はなく、GOTO_LINE 行番号の入力を求められたりする。 ソースに含まれている スクリプト ./configure でこんなオプションがあった。 --enable-keymap=w3m|lynx default k…

Djangoの管理サイトでオブジェクトの複数形を正しく表示する

Python 3.2 + Django 1.6での話題。 Djangoのモデル名は単数形でつける (慣習的なものだと思うけど)。管理サイトではモデ ルが複数形で表示されるが、モデル名によっては正しくない結果になることがある。 例えば Category というモデルが Categorys と表示…

VirtualBoxが起動できなくなった (解決)

VirtualBoxが起動できなくなった - 座敷牢日誌 OpenSUSEのVirtualboxがアップデート後から仮想マシン起動時にエラーがでて、起動しなくなったという 記事を書いたが、その後解決した。 2/15に来てたアップデートを適用してから起動できるようになった。 2014…

Sylpheed + gmail (IMAP接続) が遅すぎる

職場のメールが Google Apps でクライアントとしてSylpheedをIMAP接続で使っているが、 あまりにも遅すぎる。特に検索関連がひどい。 メールのフォルダ振り分けと検索サマリを組み合わせて使っている……、つもりだが、検 索サマリ側が開くたびに十数秒は検索…

Python2の map/filter 関数とリスト内包表記のパフォーマンス比較

python 2.x での話。pythonでちょっとした仕事のためにスクリプトを書捨てするとき、 よくリスト内包表記で書く。リストのようなシーケンシャルなデータを処理するために、 age_list = [] for person in people: if person.is_alive: age_list.append(person…

vimのquickrunでVBScriptを動かす

Vim

Vimのプラグインquickrunで VBScriptを動かせるようにしてみた。いうまでもなく、Windowsでのみ有効な設定。 次のコードを vimrc へ追記する。 " for quickrun if !exists("g:quickrun_config") let g:quickrun_config = {} endif let g:quickrun_config["vb…

OpenSUSE 13.1 に OracleのJDKをインストールした

Androidアプリの開発にはOracleのJDKが必要です。OpenJDKで出来ればいいのにね。 たいていのLinuxディストロにデフォルトで入っているのはOpenJDK。 OracleのJDKを導入する手順は、ディストリビューションの種類やバージョンによって、 推奨の方法が微妙に違…

コマンド実行の結果を英語表記にする

環境によって、コマンド実行の結果に日本語が含まれることがあり、パイプして処理した いときなどに都合が悪いことがある。 % diff -crN dir1 dir2 バイナリファイル 1.bmp と2.bmp は異なります 例えば、diff で比較した結果からバイナリの差分がある旨の出…

OpenSUSEで利用できるコーディング用フォント比較 5種

OpenSUSEで利用可能でコーディング向きなフォント5種類を並べてみた。 Inconsolata M+ Ubuntu Mono VL ゴシック Source Code Pro すべて12ptにしている。 Inconsolata M+ Source Code Pro Ubuntu Mono VL ゴシック 個人的には高さや視認性のバランス的にInco…

バイナリデータの差分を取る

diffでバイナリファイルを比較すると、差分があることはわかるが、その内容までは得ら れない。 % diff 00000.bmp 00005.bmp バイナリファイル 00000.bmp と00005.bmp は異なります od か xxd (vimに同梱?) を組み合わせると、バイナリの差分が得られる。 % …

VirtualBoxが起動できなくなった

何が原因かはわからないが、VirtualBoxの仮想マシンが全て起動できなくなっている。 新しく作成した仮想マシンでも同様である。 起動時に次のメッセージが表示される。 仮想マシン "Ubuntu Server 64"のセッションは開けませんでした。 The virtual machine …

OpenSUSEにEclipseをインストールした

OpenSUSE 13.1 (GNOME3) にEclipseをインストールしようと思ったが、YAST->ソフトウェ ア管理から検索しても、それらしいのが見つからない。別のリポジトリにあるのかもしれ ないが、EclipseのサイトでLinux向けに展開してそのまま使えるアーカイブが配布さ…

Windowsの環境変数を整理する

これは、たとえばなしである。 ユーザ/システム環境変数を設定することで起きる悲劇がある WindowsでGitを導入する際に有力な候補と思われる Git for Windows をインストールしたあと、コマンドラ インから使いやすくするために、実行ファイルがあるディレク…

ImageMagickで複雑な画像加工を容易にするスクリプト集

ImageMagickでちょっと複雑そうな画像加工をするための、目的に応じたスクリプト集が 公開されている。これはすげー。 Fred's ImageMagick Scripts ImageMagick: Convert, Edit, Or Compose Bitmap Images ImageMagick - Wikipedia スクリプトは次の分類から…

Vimで行頭に行番号を挿入する方法いくつか

Vim

:set number で行番号を表示するのではなく、本文の行頭に行番号を挿入したいことが ある。 いろいろやりようがある。知ってるのを整理してみた。 外部コマンドでフィルタする (cat, awk) 外部コマンドでフィルタリングするアプローチは、行番号の挿入に限ら…

Python2.7でprint関数は (通常は) 使えません

Python3で print は関数として振る舞うようになってるが、Python2.7 では print 文として実装されている。が、関数としても存在する。 # これらはどっちも有効 print 'hello' print('hello') Python2.7で関数として print を使おうとしたときに、構文エラー…