2014年7月30日水曜日

Raspberry PIでSSHの初期設定時に発生したエラーを回復する方法

Raspberry PIの初期設定中に、「Initial ssh key generation still running. Please wait and try again.」 というメッセージが出てきて困ったことがありました。何が原因で発生したのかよく分からないのですが、 最初の起動時に接触が悪かったのため、一度設定前に電源を落とすなどしたことが可能性として考えられました。 さて、この状態になった場合、次の鍵を作り直すためのコマンドを入力することによってSSHが使えるようになります。

作業時には初期状態(User:pi、Password:Raspberry)のアカウントを利用しました。なのでsudoでコマンドが実行ができます。

# rm /var/log/regen_ssh_keys.log
# sudo rm /etc/ssh/ssh_host*
# sudo ssh-keygen -A

個人的にはログを消すとうまく動作するというのはあまり納得できません。 logではなくlockという拡張子のファイルを削除するのであれば理解できるのですが。

2014年7月19日土曜日

Firefoxで戻るボタンを押した際に二重送信防止を解除する

今回はFirefox(テストで利用したバージョンは30.0)における厄介な挙動をJavaScriptで解決しようというお話。 IE 11や最新のChrome(35系)では特に気にする必要はないものです。

フォームで二重押下を防止するために、1度ボタンを押すとボタンの状態をdisabledにするということがあります。 そこまでは何も問題ないのですが、Firefoxではボタンを押してsubmitをした後に、戻るボタンを押すとdisabledの状態が継続しており、 再度submitができない状態になってしまいます。もう一度戻るボタンを押すとsubmitできるようになるのですが、 その挙動は一般的にユーザが想定していないものであるはず。

そこで、jQuery(利用したバージョンは1.11.0)を利用して、 一度戻るボタンを押すだけでdisabledの状態が解除できるようにしてみました。コードは以下のようになります。

<script type="text/javascript"><!--
$(document).ready(function() {
    $(window).unload(function(){});
    $('#button').attr('disabled', false);
});
--></script>

1行目はDOMを構築した後に実行せよという意味です(おまじないと思って差し支えないでしょう)。 2行目はBackForwardCacheを無効にせよという意味になります。元のページに遷移した際にキャッシュを使うなという意味になります。 つまり、ボタンを押したという状態を使うなということになります。 3行目はボタンにdisabled属性をfalseにせよという意味で、ボタンを利用可能にするという意味になります。 初期状態はfalseでなければならないので、明示的に設定しました。

これにより、ボタンを1度叩いてdisabledになった状態でブラウザの戻るボタンを押しても、disabledの状態にならなくなります。 ただし、フォームにあった情報(入力したテキスト等)はすべて落ちてしまうので、再入力が必要になります。 もっとも、それは仕様としてしまっても良いとは思いますが。

フォロワー

ページビューの合計