Ubuntu キーボードレイアウト変更

 rootで/etc/default/keybordを変更します。

 XKBMODELにキーボードのモデルを設定。
 設定値の一覧はこちら
 XKBLAYOUTには”jp”や”us”など、レイアウトファイル名を設定。レイアウトファイルは/usr/share/X11/xkb/symbols下にあります。

 保存後、再起動すると変更が反映されます。

clock_nanosleepを使ったタイマ処理

タイマを使って定期的にサーバにPOSTするプログラムを組んだ際、途中でタイマが止まってしまう不具合が発生しました。
これは定期実行のために使っていたsetitimerの設定がlibcurlのタイムアウト処理で上書きされてしまうのが原因でした。
setitimerはプロセスごとに固有なため、lubcurlを使うならsetitimerは使えません。というわけで、clock_nanosleepを使ってやってみました。

interval秒ごとにfunc関数を呼び出します。
別スレッドやシグナルハンドラで*termがtrueにセットされるとループを抜けます。

VirtualBoxで仮想シリアルポート同士をクロス接続する

 シリアル通信を行うプログラムのテストをするときに、仮想マシン上でなんとかしたい場合があります。
 普通はそんな状況は滅多にないでしょうが、稀に無いとも言えません。しかもそんな稀なケースでは得てして送信側と受信側の2つのポートが必要だったりします。

 そこで、仮想マシンに2つの仮想シリアルポートを作り、それを名前付きパイプでクロス接続することにします。

 VMwareなら片方をサーバ、もう一方をクライアントにしてオシマイです。
 それではつまらないので、VirtualBoxならどうすればいいのか。そんな設定は無いぞ。

 やってみました。

 両方の仮想シリアルポートのポートモードをパイプにして、同じパイプを参照するようにすれば良いかと思ったら、「そのパイプはすでに使っている」とか言って設定できません。VMwareのようにサーバとクライアントを選ぶこともできません。

 こんなときはVBoxManagerのヘルプを見てみます。

$ VBoxManager modifyvm

 とやると仮想マシンの設定変更コマンドヘルプがズラズラ〜と出てきます。この中の–uartmodeが目的のオプションです。

$ VBoxManager modifyvm 仮想マシン名 --uart1 on
$ VBoxManager modifyvm 仮想マシン名 --uart2 on
$ VBoxManager modifyvm 仮想マシン名 --uartmode1 server パイプのファイル名
$ VBoxManager modifyvm 仮想マシン名 --uartmode2 client パイプのファイル名

 と設定してやると、 仮想マシン上でいい塩梅にクロス接続されます。

VMware 仮想ディスクの容量を拡張する

VMware Technorogy NetworkのダウンロードページからVMware Virtual Disk Development Kit(VDDK)をダウンロード&インストールする(要登録)。

$ vmware-vdiskmanager -x 20G hoge.vmdk

という感じ容量を拡張。

GPartedのISOイメージをダウンロードして、仮想マシンをGPartedのISOイメージから起動。

パーティションをリサイズして再起動。
シャットダウンが終わると「ディスクを抜いてEnterを押せ」と言うので、仮想マシンのCD-ROMドライブからGPartedのISOイメージを解除して再起動。

Linuxゲストはスワップパーティションが後ろにつかえてリサイズできないときがある。
そんなときは一旦スワップパーティションを削除してから改めていちばん後ろに作り直してやると、スワップパーティションの前に隙間が空くので、前にあるパーティションがリサイズできるようになる。

ubuntu add-apt-repositoryが無い

python-software-propertiesに入ってた。

CSS tips float の罠?

おはようございます。将来の夢はイタクァに宇宙旅行に連れて行ってもらうことなゆうきんです。

ちょっと FuelPHP のサンプルページを凝って作ってみようとしたら、悩んだことがあったのでメモ。

 

float: left のように要素の回りこみを指定していると、それより下に書いた要素が、回りこみを指定した要素の表示位置と重なってしまうという現象。

これ、地味に困りました。

例えば、 css が

これで、 view が

の場合、私は

css のテスト1

こうなって欲しかったのですが、実際は

css のテスト2

こうなります・・・。

緑の部分が、青と赤の下に行ってしまうんです、

仕様を考えれば当然のことなんですが、これでは困るんですよね。

というわけで、以下の様に直して下さい。

そうすれば、想定した通りの配置になります。

これでOKです。

擬似要素である :after で「何もない」要素を表示しています。

content に指定したものが表示されるんですが、 “” という空の文字列を指定することによって、何もない要素としてます。

display はその要素をどう表示するかの指定で、今回はインラインでは困るのでブロックを指定してます。

clear は回り込みの解除するかどうかの指定です。 both で全ての回りこみを解除しています。

これで、 div の後に回りこみを無視する空の要素を表示することによって、次に表示する要素を、既に表示している要素の下に表示させることができるのです。

しかし、先ほどのビューの場合、赤 div の回り込みが残っているため、直後に表示する要素は、緑と同じ運命を辿ります。

そこで、回り込みのない div で青と赤をくくることにより、解決を図っているのです。

 

今回は、div 全てに :after を指定しましたが、今回の場合は、くくった div にのみ指定するのが正しいのかもしれません。

通常の div を表示する場合でも特に害がない(?)ので、私は div 全ての指定していますけどね。

では、おやすみなさい。

認証 その4 SimpleAuthユーザ管理画面を整理

前の記事でデータ操作を一通りできるようになったので、ここで表示まわりを少し整理しましょう。

一覧のパスワード、ログインハッシュ、Profile fieldsを削除します。また、一覧からのViewもとくに必要ないので削除します。

 

fuel/app/views/admin/user/index.phpから該当部分を削除します。変更後のコードは以下のようになります。

Last loginはタイムスタンプを日付+時刻の形式で表示するようにしました。

 

表示してみましょう。

表示変更後の一覧

 

だいぶすっきりしました。

 

FuelPHP SimpleAuthをいじっていたらブラウザが310リダイレクトループエラーに

何かの拍子に、SimpleAuthがリダイレクトエラーでログインできなくなってしまった。

閲覧履歴を削除してもダメ。

一旦データベースのusersテーブルとmigrationsテーブルを削除して$ oil r migrateしたら直った。

詳しく調べていないので原因は判りません。

CSS tips FuelPHPのTemplateで使えそうなもの

おはようございます。実家の犬に会いたくて禁断症状が出てきたゆうきんです。

チュートリアルでCSSの説明をする気はないと言ったな?…あれは嘘だ。

ちょくちょく自分でも忘れるのでメモがてら、私がTemplateコントローラで使っているCSSを書きます。

 

まず。これが私のTemplateです。

これを使うことを前提に書きます。

 

div を左右に並べる

#menu と #main を左右に並べてみます。

float: left とは「要素を左に回りこませる」という意味です。

これで、左右に並べて表示できます。

しかし、画面を小さくしすぎると、配置が変わってしまうので注意です。

 

div を常に画面中央に表示

これで、ウィンドウのサイズを変えても #content が画面の中心に表示されるようになります。

さらに、widthを指定しているので、ウィンドウサイズを小さくしても #menu と #main の配置が変わることがなくなります。

 

とりあえず、こんなところでしょうか。

本当はもっとごちゃごちゃ書いてあるんですか。装飾なので気にしないで下さい。

この記事はもしかしたら、随時更新していくかも知れないです。

では、おやすみなさい。

Android SDKをアップデートしたらビルドできなくなった

SDKマネージャからSDK Toolsを21.0.1にアップデートしたら、Errors running builder ‘Android Pre Compiler’… と言ってビルドできなくなってしまった!

こちらの情報を参考に、eclipseにhttps://dl-ssl.google.com/android/eclipse-preview/を追加してアップデートを掛けたら解消。

ページのトップへ