かなキーでGoogle日本語入力をアクティブにする設定(KeyRemap4MacBook使用)
他の方法があるのかもしれないけど。
かなキーを「Shift + Control +J」に変更
<?xml version="1.0"?> <root> <item> <name> KANA TO Google Input</name> <identifier>option.kana_to_google_input</identifire> <autogen>--KeyToKey-- KeyCode::JIS_KANA, ModifierFlag::SHIFT_L, ModifierFlag::CONTROL_L, KeyCode::J</autogen> </item> </root>
MS Wordの表の挙動がおかしくなったら(改行しても高さが変わらない時)
自分用メモ。Word 2007、Word2010で。
ワードの表を使用中、ときたま、改行しても表の縦幅が追従して大きくならず、文字が隠れてしまうことがある。
それは、「セルの高さ」が「自動」ではなく「自分で指定」になってしまっているから。*1
修正するには、
- 表を選択
- 右クリック→表のプロパティ→行タブ
- 「高さを指定する」のチェックボックスを空にする
これで直ります。
#気づかずにモードを変えてしまってあたふたするという感覚は、Word、Excel使い始めの頃のことを彷彿とさせてくれて懐かしい。気づかずにInsertを触っていて慌ててみたり..
*1:もちろんそうなってしまったのは自分の操作が原因なのだけど、気づかずにこうなってしまうことがたま〜にある
配列内で重複している要素を見つける
自分用メモ。
Rubyで配列から重複したモノ(要素)を抜き出す(Uniqの逆) - それマグで!
上のリンクは一番素直な方法だと思うけど二重ループ。
ソートして隣り合っている要素を比べるという方法を試してみた。
a=[8, 1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 4, 6, 8, 10, 10, 10] a_sorted = a.sort p a_sorted.each_with_index.map{|e,i| e==a_sorted[i-1] ? e : nil }.reject{|e| !e} #=>[2, 4, 6, 8, 8, 10, 10]
いくつ重複しているかもちゃんと分かる。
ソート後の配列の最初と最後を比較しちゃっているけど、まあいいか。
#ありえない凡ミスを2時間ほど晒していたのは秘密.
2012-06-30追記
id:takuya_1stさんからトラックバック返し(?)を頂きました。
あまり大きなデータを念頭に置いていなかったのですが、ソーティングのコストも合わせて考えないといけないですね。
データサイズやデータ配列のパターン(重複が多いのか少ないのかとか)といったことが影響しそう。
よりシンプルな書き方も教えていただいて感謝感謝。
画像直リンクでのリンク切れ or 直リンク禁止 => 自前画像に差し替える
他サーバーからの画像直リンクを禁止するのは、もはや昨今のインターネット情勢に合わなくなっていると思っているのですが、いまだに直リンク禁止のところはあります。自動生成のHTMLで他サイトの画像をはりつけるとき、リンク切れや直リンク禁止に簡単に対応できる方法があったのでメモ。
参考にしたのは
http://allabout.co.jp/gm/gc/24043/
imgにonerror属性を追加するだけ。お手軽。
<img src="画像URL" onerror="this.src='差し替え用の画像'">
ありがたいことに、
画像のイベントハンドラonerrorとonloadはJavaScript1.1から実装されているので JavaScriptが動作する現在のブラウザなら完全に動作すると想定してもよい 安全なテクニックです。
とのこと(上記サイト)
蛇足
今回の記事の内容とは関係無いけれど、imgタグのsrcの中が短縮URLでも画像はきちんと表示される。
ファイルから3行ずつ取ってくる
lines = "" File.open(file_name) do |f| i = 0 while l = f.gets lines += l.strip lines += "\n" if i%3==2 i += 1 end end
もっとRubyっぽい書き方はできないものだろうか..
さくらインターネットのレンタルサーバーでDIY(?)Dropboxなvboxを使ってみた
公開鍵でSSHログインできるように設定
SSHでログインする為の関連情報とリンク
さくらのレンタルサーバにSSHでログインしてみた - NAT’s Programming Champloo
を参考に、
ssh-keygen
で鍵を作る。パスフレーズは設定しない。
ローカルの~/.sshに
が生成される。
id_dsa.pubをauthorized_keysとrenameして、サーバー上の~/.sshにアップロードする。*2
ためしにログインしてみる
$ssh hoge@hoge-host.com
(中略)
Welcome to FreeBSD!
できたので、すぐにlogout.
フォルダを作成
gitからスクリプトを落としてきて解凍。その中にあるconfig.iniを参考にフォルダなどを作成。
- (local)~/bin/vboxというフォルダを作り、その中に落としてきたスクリプト一式をコピー。
- 同期対象として(local)~/VBoxというフォルダを作り、何個かファイルを入れておく。
- 同期先として(server)~/VBoxというフォルダを作っておく。
書き換えるのはconfig.iniだけでOK
フォルダ構成はお好みでどうぞ。
試しに動かしたところ、let: not foundと怒られる
$sh vboxd.sh
で動かした所
./vboxd.sh: 133: let: not found
が出続ける.
どうやら、Ubuntuはbashといいつつdashが動いてるらしい。
http://ubuntuforums.org/showthread.php?p=8953947
を参考に、
$sudo dpkg-reconfigure dash
出てきた画面で「いいえ」を選択
リトライ
できた
何に使うか?
できたはいいけど、使い道があまりない。Dropboxも20%くらいしか使ってないからな..
追記
タイトルに「さくらインターネット」といれたわりには、べつにさくらインターネットならではの内容はなくて、
むしろUbuntuのデフォルトシェルがdashということのほうが発見。
$DEBUGのときはファイルに変更を加えず標準出力するだけになるようにFileクラスをいじる
if $DEBUG class File alias_method :original_initialize, :initialize alias_method :original_close, :close alias_method :original_puts, :puts def initialize(file,mode="r") if mode.downcase=="r" original_initialize(file) else @filename = file STDOUT.puts "--- File.open #{@filename} in mode #{mode} ---" end end def close if @filename STDOUT.puts "--- File.close #{@filename} ---" else original_close end end def puts(str) if @filename STDOUT.puts "--- #{@filename} << #{str}" else original_puts(str) end end end end
- 読み取りモードのとき=>通常通りのFileクラスの挙動
- それ以外のとき=>new,puts,closeを上書きして、実体のファイルには作用しないようにする