座敷牢日誌

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

PPSSPPのインストール先が変わっていた

archlinuxのPPSSPPがアップグレードされたら, 中華フォントに戻ってしまった. フォントファイルの場所が以前は /usr/share/ppsspp だったが, /opt/ppsspp に変わっていた. pacmanによるパッケージが /opt にインストールされるのは珍しい気がする.

特定のパッケージに依存するパッケージを探す方法 (archlinux)

pacman - ArchWiki あるパッケージを必要としているパッケージが何かを調べるには, whoneeds コマンド, または pactree コマンドを使う. whoneeds だとインストール済みパッケージが検索対象になる. インストールされていないパッケージについて調べるなら, …

Android StudioをGNOME3のメニューへ追加する

手動でインストール (zipを自分で展開してインストール) したAndroid Studioを, GNOME3のメニューに表示させるようにする方法. /home/kosuke/opt/android-studio にAndroid Studioのzipを展開している場合の想定です. /home/kosuke/.local/share/application…

シェル変数と環境変数の違い

問題になることがあまりないというか, シェルスクリプトのなかでみるとほとんど使い方が変わらないようにみえることが多いせいか, 考えることあまりないシェル変数と環境変数の違いの話. 自分なりの理解で整理してみた. 本記事で示すのはすべてBashでの例で…

mktempコマンドを活用しよう

mktemp コマンドは一時ファイルあるいはディレクトリを作成するコマンドです. 何か試したいときに, 邪魔にならないディレクトリに適当なディレクトリを作って, カレントディレクトリを変更して……. といった手順や管理を少し簡単にできるかもしれません. 僕の…

LinuxのログインシェルをPowerShellへ変更する

せっかくLinuxでPowerShellが使えるようになったのですから, 活用したいものですね. 手始めにログインシェルをPowerShellに変えてみてはいかがでしょうか. chsh -s /usr/bin/powershell で変更できます. user1@1093d1e33f26:~$ chsh -s /usr/bin/powershell …

bashで * が意図しないワイルドカード展開される場合の対処

C言語のソースコードの1行の文字数を80までにする必要があって, チェックツールなどが用意されているわけではなかったので, bashでチェックしようとしてハマったこと. #!/usr/bin/env bash row=1 while read line; do chars=$(($(echo $line | wc -c) - 1)) …

CakePHP on Docker Compose を公開した

いつぞや書いたDocker ComposeでCakePHPの開発環境をこしらえる記事 について, Docker ComposeのためのファイルをBitbucketで公開しました. https://bitbucket.org/kuchida1981/cakephp-on-dockercompose 使い方をREADMEにまとめています. 可搬性なんかを意…

SSHで接続したBoot2Dockerでrootへ昇格するには

Docker MachineのドライバにVirtualBoxを使うと, Boot2DockerというLinuxディストリビューションがDockerホストになる. docker-machine ssh でBoot2Dockerへログインしてから, rootに昇格するにはどうしたらいいか? sudo -i でOK. kosuke% docker-machine ss…

PowerShellが提供する機能を積極的に使おう (on Linux)

Windows上で動くPowerShellの ls コマンドは, コマンドレット Get-ChildItem のエイリアスだが, Linuxではエイリアスではなく, 外部コマンド扱い. PowerShellが提供する機能にはなっていない. PS /home/sandbox> ls -la total 60 drwx------ 1 1000 staff 40…

PowerShellをLinuxで普段使いする試み

クロスプラットフォーム対応したPowerShellを, Linuxで普段使いしてみたい, という試みである. PowerShellがクロスプラットフォームで使えるようになっているけど, 現実的には世のLinuxディストリビューションがPowerShellを公式サポートするのは, もう少し…

Linuxで動かすDocker Machine (VirtualBox) で共有フォルダを使う

WindowsのDocker Machine でホストとコンテナのデータを共有する場合, docker run コマンドなら -v オプションでホスト側のフォルダとして /c/Users を指定することになっている. $ docker run -it -v /c/Users/sandbox/Projects/myapp:/myapp gcc VirtualBo…

Wayland環境でVirtualBoxのファイル選択ダイアログを出すとクラッシュする

GNOME 3.22 (archlinux) 上で動かしているVirtualBoxで, ファイル選択ダイアログ (イメージの選択や, インポートなど) を開こうとすると, クラッシュするようになった. ターミナルには, つぎのエラー/警告が表示されていた. Qt WARNING: libpng warning: iCC…

Visual Studio Code でLinuxデスクトップにPowerShellデバッグ環境を構築

Windows環境でPowerShellのコードを書くときにはPowerShell ISEを使っているが, インデントしてくれなかったりで, 操作性に少し不満がある. Visual Studio CodeとPowerShell用の拡張を試したみたら, さすがに優れたエディタだけあって操作性は問題なし. とは…

Pacmanでyes/no確認を出さないようにする

archlinuxのパッケージ管理に使われているPacmanでは, パッケージのアップグレードやインストール時に, 続行していいか問うプロンプトが出る. Dockerでarchlinuxイメージのコンテナを使っていて, ちょっと気になったので調べてみた. [root@6beecb35bded /]# …

Dockerでarchlinuxのイメージを使うときの注意

archlinuxのDockerイメージは base/archlinux である (Docker - ArchWiki). docker pull base/archlinux でイメージを取得, docker run -it base/archlinux bash などでコンテナを起動できる. このイメージからコンテナを立ち上げて, パッケージを最新化 (# …

SIerあるある

テストのために /etc/hosts にエントリを追加するように指示したら, 1時間後, そういうファイルがないと言われた. 「場所は c:\windows\system32\drivers\etc ですよね? 見つからないんですが……」と. いや, そんなわけないだろ, とよく話を聞いてみたら, メ…

無線LANはケチらないほうがいい

PC

無線LANはケチらず, ちゃんと自分にあったものを選んだほうがいい. といっても選べるのはルータくらい? 無線LANの子機をわざわざ用意する状況は, 昨今あまり多くないと思うので. 何台も買い継いで使い続けてきた感覚でいうと, 無線LANルータは安かろう悪かろ…

Linux上で動かすDocker Machine

職場のWindows端末でDockerを動かそうとしたが, プロキシ越えの設定が面倒になって, やめた. エラーをトレースしていけば回避できるだろうけど, Docker Toolboxに含まれている Docker Machine のほうが興味深かったので, 自宅のarchlinux環境で試してみた. …

Ubuntu環境でPowerShellを試した

MicrosoftのPowerShellがオープンソース化され, Windows以外のプラットフォームでも利用できるようになったので, 手元のLinux環境で少し動かしてみました. MicrosoftがPowerShellをオープンソース化しLinuxやOS Xにも提供…Bash on Windowsとの差別化は?(Tec…

Dockerの不要なボリュームを削除する

Dockerを, Docker自体の勉強や検証用途で使っているため, 使わなくなったコンテナやイメージをどんどん削除しているが, ときどきDocker関連ファイルの容量を調べると増える一方だったりする. Docker関連ファイルの置き場が /var/lib/docker なら, # du -hs /…

Docker Compose で CakePHP の開発環境を作る

Docker Compose のドキュメントに Django, Rails, Wordpress の開発環境にDocker Compose を利用する例が載っています. PHPのWebアプリケーションフレームワークのCakePHPにどう適用するのか試してみました. 結論からいうと, ちょっと手直しすると, 他のフレ…

PPSSPPの日本語フォントを差し替える

PPSSPPの日本語用に同梱されているフォントは, "Microsoft Yahei" という中華フォント. ArchLinuxのパッケージのPPSSPPを使っている場合は, /usr/share/ppsspp/assets/flash0/font にある jpn0.pgf というファイルがフォントの実態なので, そのファイルを適…

Subversion+Apache(HTTP, BASIC認証) を立ち上げるDockerイメージを作った

kuchida1981/subversion-httpd ゆるーくバージョン管理している, 中小規模の開発チームでよく使われていると思われる, Subversion+HTTPDを立ち上げるためのDockerイメージを作ってみました. 似たようなイメージはいくつもあると思いますが, 勉強ついでに……. …

Docker導入のパターン

最近は, Dockerのことを調べることが多いです. そうすると, 隙あらばどこかに導入して試してみたいという気持ちがでてくるのですが, 現実問題として, それが可能かどうかは調査が検証によるところです. Docker導入が考えられるケースをいろいろ考えてみまし…

LinuxでWindowsの自己解凍形式アーカイブを解凍する

LinuxでWindowsで作られた自己解凍形式のアーカイブ (*.exe) を解凍する方法. ZIPであれば unzip コマンドで, LZHであれば lha コマンドで, CABなら cabextract コマンドで解凍できる.

LinuxデスクトップでLINEを動かす

LinuxデスクトップでLINEを使う方法がいくつかあります. Pidgin (メッセンジャークライアント) のプラグインでLINEを有効化 Google Chrome (Chromium) の拡張機能のLINEをインストール WineでWindows向けクライアントを導入 VirtualBox等のゲストOSとしてのW…

ブラウザを指定サイズへリサイズする

ブラウザを全画面表示するのが嫌いで, かつ決まったサイズで固定しておきたいです. FirefoxでVimperatorをインストールしているなら, :javascript resizeTo(1024, 768) で1024x768にリサイズできます. アドレスバーに javascript:resizeTo(1024, 768); と入…

Jupyter (iPython) notebook で使用するブラウザを変更する方法

Jupyter (iPython) notebook で使用するブラウザを変更する方法です. ふだん使うブラウザはFirefoxなのですが, vimperator を使っているため, キーバインドが操作性の妨げになってしまうことが多いです. そこで Chromium をJupyterで使うブラウザで指定する…

MonoDevelopでデバッグ実行時, "Could not connect to the debugger" エラーが出る時の対処方法

MonoDevelopでコンソールアプリケーションをデバッグ実行すると, "Could not connect to the debuggerA というエラーが返されることがあります. コンソールアプリケーションのプロジェクトのオプションを開き, "Run" -> "General" のなかにある, "Run on ext…

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…