USBに保存できない

USBの容量が空いているのに、書き込みができなくなった。

どうやらUNIXの仕様の問題らしい。

 

UNIX系のOSでは、USBに書きこむ場合、inodeと実データを記録するらしい。

inodeには以下の情報がある

  • ファイルの所有者
  • ファイルのアクセス権
  • サイズ
  • 作成日時
  • 実データの場所

このinodeには記録上限があり、実データだけ消していると、空き容量があるのに書き込めない状態になる。

 

USB中のinodeは以下のコマンドで確認できる。

df -i

 

もし、inodeのせいで書き込めなくなったら、消すとよい。私の場合は、USBの中に隠しファイルがあり、そこがinodeだった。普通にrmで消して問題ないようだ。

 

割と毎日使っているけど初めて知った(汗)

まだまだ勉強不足ということか。

bashでファイル名に半角スペースが含まれたものを処理する

jpg画像を一気にconvertした時につまずいた。

#!/bin/bash

for file in *.jpg

do

    convert $file ${file%.jpg}.png

done

 

エラー文

convert: unable to open image `test': No such file or directory @ error/blob.c/OpenBlob/2617.
convert: no decode delegate for this image format `test' @ error/constitute.c/ReadImage/544.
convert: unable to open image `.jpg': No such file or directory @ error/blob.c/OpenBlob/2617.
convert: no decode delegate for this image format `.jpg' @ error/constitute.c/ReadImage/544.
convert: no images defined `test.png' @ error/convert.c/ConvertImageCommand/3021.

 

どうやら区切り文字を変えてやれば動作するらしい。

行の区切りとする文字を\nだけにする。

()の中に書いているのは、IFSを一時的に使用するため。

#!/bin/bash

(

IFS="$'\n'"

for file in *.jpg

do

    convert $file ${file%.jpg}.png

done

)

fedora 18 ショートカット設定

久しぶりに更新。

最近はFedoraを使っている。

忘れそうなのでショートカットの設定を覚書として書いておく。

システム設定から以下の状態までいく。(英語表記)
[System Settings] -> [Keyboard] -> [Shortcuts]

 

  • 半角英数と日本語の切り替え

[Shortcuts]欄の[Typing]をみると、[Switch to next source]がある。

ここを設定すると、入力切り替えができるようになる。

[Disabled]をクリックするとショートカットが設定できるので、[Ctrl + Space]と設定しておこう。

 

  • プログラムの起動

新しいショートカットを作ることもできる。

[Shortcuts]欄の[Custom Shortcuts]にある[+]を押してみると、ショートカットでプログラムが実行できるようになる。

とりあえずターミナルは必須だと思うので例として書く。

ちなみにコマンドはgnome-terminalなのでお間違いのないよう。

ショートカットは[Ctrl + X]とでもしておこう(押しやすいので)。

 

 

だいぶ放置していたが、またちまちま更新していこうと思う。

覚書程度に書いていくので、同じ所で悩んでいる方の助けになれば幸いである。

 

 

ubuntu12.04のログイン画面の設定

今更ながら設定しました。

それぞれログイン時。

  1. ゲストアカウントの無効化
  2. ユーザ名とパスワードを入力する

 

1.ゲストアカウントの無効化

/etc/lightdm/lightdm.conf

に以下の設定を追記する。

allow-guest=false

その後、

sudo restart lightdm

 

 

2.ユーザ名とパスワードを入力

同じく

/etc/lightdm/lightdm.conf

greeter-show-manual-login=true

を追記する。

その後

sudo restart lightdm


2の方法ではできなかったので原因究明中・・・

ubuntu12.04LTSでlintを使う

lintとは

c言語のソースチェッカー

コンパイラが検出できない、ソースコードの間違いを検出できる

 

lintをubuntuにインストールする

sudo apt-get install splint

ubuntuではlintはsplintというパッケージになってるようだ。

 

その他オプションはmanコマンドで。

 

リンク

公式ページ

http://www.splint.org/

日本語訳

http://en.sourceforge.jp/projects/splint-jp/wiki/FrontPage

OpenGLをUbuntuにインストールする

OpenGLをUbuntu12.04にインストールした時のメモ。

 

OpenGLライブラリ

sudo apt-get install freeglut3-dev libglew1.5-dev

 

#動かない場合以下もインストールすると動くらしい

sudo apt-get install libxmu-dev libxi-dev

 

/* テストプログラム */

#include <GL/glut.h>
int main(int argc,char *argv[])
{
   /*初期化*/
   glutInit(&argc,argv);
   /*ウィンドウ作成*/
   glutCreateWindow(argv[0]);
   /*メインループ*/
   glutMainLoop();
   return 0;
}

#コンパイル

gcc test.c -lglut

macでRuby1.9をインストール

macでRubyをアップデートしたときの覚え書き

 

MacPortsを使用。

今回使用したmacがメンテナンスされていなかったのでportを使うとエラーが出たが、以下のコマンドを打つと正常に作動するようになった。

 

sudo port -d selfupdate

sudo port upgrade installed

sudo port -d sync

 

Rubyのアップデート

sudo port intall -f ruby19 +mactk

 

ここで /opt/local/bin/ruby1.9 がインストールされる

+mactk がないと、tkパッケージが使えない。

確認

/opt/local/bin/ruby1.9 -v

 

このままでも使用できるが、rubyコマンドで使用したいのでシンボリックリンクを作成する。

シンボリックリンク作成

sudo mv /usr/bin/ruby /usr/bin/ruby1.8.7

sudo ln -s /opt/local/bin/ruby19 /usr/bin/ruby

 

確認

/usr/bin/ruby -v

 

参考URI

http://www.happytrap.jp/blogs/2012/11/17/10092/

http://nick.hateblo.jp/entry/20110111/1294763355