ページ

2016年9月14日水曜日

【sinatra】invalid byte sequence in Windows-31J対策

状況


sinatraを使ってWebアプリケーションを作成していると、

invalid byte sequence in Windows-31J

というエラーが気まぐれに出ます。
このエラーページにある
Windows-31J
というのは、Shift-JISを改造した文字コードみたいなものです。(検索してみてください。詳しく解説しているサイトがあります)

原因


rubyは違う文字コード(例えば UTF-8 など)で書かれたソースコードをWindows-31Jで読み込もうとするため、エラーが表示されるのです。

対処


対策として、

Encoding.default_external = 'UTF-8'

をrubyファイル(.rb)の先頭(1行目)に入力してください。

※UTF-8の部分は、保存したときの文字コードに合わせてください。
ただ、プログラミングをするのならUTF-8を強くお勧めします。というか、こちらが標準です。
(バッチファイルを書くのならShift_JISでもよいと思いますが...)
参考:RubyのSJISはShift_JISじゃない

入力するのは、ERBファイル(.erb)ではないです。

こうすることで、rubyのインタープリタに文字コードを知らせることができます。

プログラマーにお勧めの質問サイト

何度見直しても間違っているように見えない、ただコピペしただけなのに、どうして正しく動かないんだと思うことはないでしょうか。(私は日常茶飯事です。)

そんなプログラマーの方にお勧めな質問サイトが、teratail(テラテイル)です。

teratail【テラテイル】|思考するエンジニアのためのQAプラットフォーム


ついでに、私は回し者ではありません。
いままでこのような質問サイトは、叩かれるのでは思い、使わないようにしてきました。
しかし、プログラミングでどうしてもわからないことがあり、アカウントを作って質問してみました。
すると、とても親切な方が詳しく教えてくださいました。
このような素晴らしいサービスをぜひ知っていただいて、より発展したサービスになればうれしいと思っています。


良い点
  1. 思考するエンジニアのための」とあるように、くだらない質問・調べればすぐにわかるような質問というものはほとんど目にしません。
    しかし、初心者の方に対しては、とても詳しく丁寧に解説をしていらっしゃる方もいます。
    どんな人も使えるサービスです。
  2. 優れた知識を持つ、その道の専門家のような方から回答を頂けることがある。
    「上には上がいる」ように、質問に対する回答を知っている方はほぼ確実にいるでしょう。(そもそも、プログラミング言語は人間が作り出したものです)
  3. 回答率が高い
    このサービスが売りにしていることです。私がした質問が初心者向きだったからなのかもしれませんが、数時間で回答が来ます。早ければ1時間程度で来ます。やはり回答が来るとそれが多少的外れでも、うれしいものがあります。
使う上での礼儀(詳しくは推奨していない質問を見てください)
  1. きちんと調べたうえで質問をする
    回答をしてくださる方は、質問のために時間を削っています。掲載したソースコードを実行してみて、間違っている点を教えてくださる方もいます。すぐにわかるようなことを、むやみに質問しないようにしましょう。また、「~するためのコードを教えてください」などもやめましょう。
  2. できるだけ情報提供をする
    実行する環境が悪いのかもしれません。自分では大丈夫だと思っていたところに、バグがあるかもしれません。言えないこともあろうかと思います。ですが、できるだけ情報提供をした方が早期解決になり、お互いの負担も減るのではないかと思います。

プログラマーとしての威厳を持って、こうしたサービスを利用しましょう。

また、他にもプログラマー向けの優れた質問サイトはあります。優れたサービスを有効に活用することが優れたプログラマーになるための近道になるのではないでしょうか。



追記:2016-09-14 16:50現在 47581人の方が会員登録をされているようです。
これだけ多くの方が会員登録をされているならば、質問に対する回答は質の良く、迅速な回答になるでしょう。

2016年9月7日水曜日

Microsoft Edgeが動かない時の対処法



あくまで自己責任で実行をお願いします。

状況


「Microsoft Edge(マイクロソフト エッジ)が動かない!」
「開いているタブはきちんと動いているのに、ほかのタブに切り替えられない!」
または、
「タブでスクロールができ、右クリックもできるのに、ブラウザの操作ができない!」
なんてことはないでしょうか。

以下で、この状況の対処法を書きたいと思います。
(というより、私が回復させた方法です)

原因


もしかしたら、パソコンでの処理が多く、固まっているかもしれません。
または、Microsoft Edgeがうまく動いていないのかもしれません。

対処


ブラウザを再起動してみましょう。
困った時、状況にもよりますが、再起動は有効な手段です。

しかし、ブラウザが動かないというのにどうすれば良いのかとお思いになるでしょう。


以下の方法をお試しください。
(Windows10環境で確認(というよりMicrosoft EdgeはWindows10にしかない)
ただ、どのヴァージョンのWindowsでも使える方法です)

  1. タスクバー(標準では一番下にあるアイコンなどが並んだバー)の何も表示されていない部分をを右クリックし、「タスクマネージャー」を起動(クリック)する。
  2. 「プロセス」タブから、「Microsoft Edge」を右クリックする。
    ※このとき、違うプロセス(ソフトウェア)を選ばないよう気をつけてください。紛らわしいプロセスがあることがあります。 心配なら、パソコンを再起動してみることが一番良いでしょう。
  3. 「タスクの終了」をクリックする。

これでMicrosoft Edgeが終了したはずです。
再び起動すると、終了する前の状態に戻っているでしょう。
(Microsoft Edgeは、強制的に終了されると以前開いていたページを表示する機能があるみたいです。)