Windows 8.1でブラウザが繋がらない

今年の夏頃から、Windows 8.1 のマシンで急にThunderbirdでメールが
受信できたり、できなかったりして、プロバイダに相談しても拉致上がらず、
しかたなくWindows Liveメールにメーラを変えてみても、症状はあまり改善されず、
受信できたり、できなかったりの状態が続いていた。

そうこうするうちに、Chromeが不安定になって、挙句の果ては、どのWebにも
アクセスできない症状が発生。Firefoxに変えても、こちらも不安定で、
何度か使っているうちに、最新のChromeもFirefoxもどのWebにもアクセスできない
状態が発生。唯一Internet Explore(IE)だけがまともに動作していたので
しばらく、IEを使っていた(Webにアクセスできないと仕事にもならないので、仕事が
別の理由で進まないことも相まって、結構、ピリピリしていた)。

一番怪しそうなセキュリティソフトのノートンを一時的に停止しても改善されず、
IPV6をオフにしてみても改善されず、半ば諦めムードだったが、偶然、下記のURLで

Windows 8.1 PCでWebブラウザでインターネット接続できない!

同じような現象が報告されていて、ノートンのInternet Securityを再インストール
されたら、もとに戻ったという記事を発見。自分も早々試したところ、今のところ、
全てが元に戻って、メーラもChromeも快適に動作中。

上記情報を公開して頂いた方に感謝するとともに、復活したPCに嬉しさ半分で、
PCの立ち上げを何度も実施したり、ThunderbirdやChrome、Firefoxを
再インストールしたり、調査に費やして無駄にしてしまった時間に少しばかり
腹立たしさを覚えしまった。

自分のネットに対する知識不足は棚に上げていますが、、、(;^^)。

Rubyによる単体テストとカバレッジ計測

Pythonistaの端くれの自分が、初めてRubyスクリプトと単体テストを実施した時のメモ(Rubyについては、何分初心者のなので、間違あるかもしれないですが、ご容赦)。

Railsの人気テストフレームワーク6選!によると、Rubyistの多くはTest::Unitではなく、RSpecをつかっているらしいでの、両方のサンプルを作成してみた。カバレッジはsimplecovを使用(simplecovの情報はほとんどRailsでの例だったが、純粋なRuby環境でも問題なく動作)

RSpecについては、下記に詳細な説明があり、DSLの応用とのこと。

RSpec の概要と、RSpec on Rails (モデル編)

-fdオプションで実行すると、テスト仕様書的な出力も可能で、結構面白い(ただ、他の言語でのテストを考えるとxUnit系のテストの方が導入しやすいかもしれない)。

【環境と参考にさせて頂いたURL】
●Windows 8.1
●Ruby-2.0.0
●rspec(3.0.4)
 gem install rspecで追加。3.0からは、以下のようにshouldではなくexpectを使う必要があるとのこと。

Ruby - RSpecのshouldはもう古い!新しい記法expectを使おう! - Qiita

●simplecov(0.9.0)
 gem install simplecovを以下を参照して追加

Rails/Ruby - テストカバレッジを調べる simplecov

【テスト対象:family.rb】
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
STDOUT.sync = true

class Human
attr_accessor :name
attr_accessor :age
attr_accessor :id
@@id = 0

def initialize(name = '', age = 0)
@id = @@id
@@id += 1
@name = name
@age = age
end

def full_name
@name.capitalize
end
end

class Family < Human
attr_accessor:family

def initialize(name = '', age = 0)
super(name, age)
@family = 'myfamily'
end

def full_name
@name.capitalize + '.' + @family.capitalize
end
end


【Test::Unitによるテスト例:test_family.rb】
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
require 'simplecov' #カバレッジ計測用
SimpleCov.start #カバレッジ計測用

require "test/unit"
require './family' # テストターゲット

class FamilyTest < Test::Unit::TestCase

def setup
@array = Array.new
end

def teardown
# TODO
end

def test_Human
h = Human.new('human1', 20)
@array.push(h)
h = Human.new('human2', 21)
@array.push(h)

assert_equal(@array.size, 2)

@array.clear
end

def test_Family
h = Family.new('taro', 11)
@array.push(h)
h = Family.new('jiro', 10)
@array.push(h)

assert_equal(@array.size, 2)

@array.each do |f|
name = f.full_name
assert_match(/[a-zA-Z]*.Myfamily/, name)
end

@array.clear
end
end


【Test::Unitによるテスト実施例】
$ ruby test_family.rb -v
Run options: -v

# Running tests:

FamilyTest#test_Family = 0.00 s = .
FamilyTest#test_Human = 0.00 s = .


Finished tests in 0.002002s, 999.0010 tests/s, 2997.0030 assertions/s.

2 tests, 6 assertions, 0 failures, 0 errors, 0 skips

ruby -v: ruby 2.0.0p247 (2013-06-27) [x64-mingw32]
Coverage report generated for Unit Tests to c:/home/work/Ruby/unittest/coverage. 42 / 43 LOC (97.67%) covered.


【RSpecによるテスト例:family_rspec.rb】
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
require 'simplecov' #カバレッジ計測用
SimpleCov.start #カバレッジ計測用

require './family' # テストターゲット

describe "Human" do
context "Humanインスタンスを2つ作成した時" do
before do
@array = Array.new

h = Human.new('human1', 20)
@array.push(h)
h = Human.new('human2', 21)
@array.push(h)
end

it "サイズが2であること" do
expect(@array.size).to eq(2)
end
end
end

describe "Family" do
context "Familyインスタンスを2つ作成した時" do
before do
@array = Array.new

h = Family.new('taro', 11)
@array.push(h)
h = Family.new('jiro', 10)
@array.push(h)
end

it "サイズが2であること" do
expect(@array.size).to eq(2)
end

it "ファミリー名Myfamilyが追加されていること" do
@array.each do |f|
name = f.full_name
expect(name).to match /[a-zA-Z]*.Myfamily/
end
end
end
end


【テスト実施例】
$ rspec -fd family_spec.rb 

Human
Humanインスタンスを2つ作成した時
サイズが2であること

Family
Familyインスタンスを2つ作成した時
サイズが2であること
ファミリー名Myfamilyが追加されていること

Finished in 0.003 seconds (files took 0.15326 seconds to load)
3 examples, 0 failures
Coverage report generated for RSpec to c:/home/work/Ruby/rspec/coverage. 19 / 20 LOC (95.0%) covered.

【simplecovによるカバレッジ計測例】
simplecov.png

Pythonの統合開発環境:spyder(2)

Pythonの開発環境でspyder 2.2.5を少し使ってみた。結構よくできているが、残念ながらローカル変数を表示する機能はサポート予定が当面ないようだ(たぶん、デバッグ機能として、pdbの機能をそのまま使っているのが原因ではなかいと思う。近々の2.3や2.4の拡張項目には入っているみたいなので、そのうちサポートされるかもしれないが、、、)。

Python debugging

に記載されているように、pdbでlocals()や__dict__を表示すれば、内容を表示することは可能だが、折角ソースコードデバッガを使っている意味が半減してしまう、、、。

spyder

以前から使っているPyscripterは、下記のように、ローカル変数も表示可能(ソースにマウスをもっていくとポップアップで表示することも可能)で、しばらくはまだ、Pyscripterを使うとするか?

Pyscripter

Python統合開発環境:spyder

Pythonの統合開発環境(IDE)としては、以前からDelphiで記述されているPyScripter(場合によりEmacs+pdb)を使っていたが、PyScripterがここ最近更新されていないこともあり、最近話題(?)のWindows/Linuxでも動作するspyderというPythonで記述されたIDEを試しにインストールしてみた。

spyderが紹介されている記事はデータ解析用の環境としてMatplotlib、IPython、pandas等と一緒に紹介されることが多いようだが、単独のデバッグ環境としても、十分の機能を有するみたい。もう少し試用後、Pyscripterから乗り換えようかしら?

【動作環境】
●Windows 8.1(64bit)
●Python 2.7.2(32ビット)

【構築した環境】
spyder==2.2.5
pywin32==216
ipython==2.0.0
matplotlib==1.2.0
numpy==1.6.2
pyzmq==13.0.0
tornado==3.2


【やったこと】
spyder2.2.5のインストール
Python(x,y)、WinPython、Anaconda等のPython Scientific Distributionsを使えば、簡単にインストールできるようだが、今の自分には少し縁遠いここと、周世にmatplotlib等は使っていたので、個別にインストールする方法を選択。以下の インストーラをダウンロードして インストールを実施。

spyder-2.2.5.win32.exe

●PyQtのインストール
インストールするとPythonディレクトリ/Scriptsにspyder.batがインストールされるので、このバッチファイルを実行すると以下のエラーが発生するため、PyQtをインストール。

RuntimeError: Please check Spyder installation requirements:
PyQt4 4.4+ (or PySide 1.1.1+) is required.


PyQtはpipでのインストールには未対応とのことなので、PyQt4 Download からPyQt4-4.10.4-gpl-Py2.7-Qt4.8.5-x32.exeをダウンロードして、インストール。無事にsypderが起動。

●IPythonのインストール
spyderはIPythonとも連携しているので、IPythonもインストールしてみる。

pip install ipython


を実行してインストール後、sypder.batでsypder起動時にpyzmqがないために起動エラーが発生するため、pip pyzmqでインストールを試みるも、自分のMinGwのgccでは以下のようなコンパイルエラーが発生するため、

In file included from bundled\zeromq\src\err.hpp:40:0,

from bundled\zeromq\src\address.cpp:21:

bundled\zeromq\src\windows.hpp:168:21: fatal error: Mstcpip.h: No such file or directory

compilation terminated.

error: command 'gcc' failed with exit status 1


以下のURLからインストーラをダウンロードしてインストール。

https://pypi.python.org/pypi/pyzmq/13.0.0
 pyzmq-13.0.0.win32-py3.3.msi (md5)


合わせて、IPythonで注目のnotebookを起動する時に必要なtornadoを

pip install tornado


でインストール。無事にIpythonからnotebookも起動できるようになった。

Windows 8.1でVMWare Player

Windows8からWindows8.1にバージョンアップ後、久しぶりにVMWare Player 6.0.0上のUbuntueを使ってみたところ、なぜか、うまくネットワークに接続できない。Bridge接続、NAT接続のどちらもダメ。いろいろ調べたところ、VMWare Player 6.0.0には、以下のような問題があるみたい。6.0.1にバージョンアップすることで、すんなり元通りにネットワーク通信ができたが、ちょっと悲しい!

【IT支援部】Windows8.1にしたらVMwareがネットワークに繋がらなくなった
 Bridgeに関するProtocolがWindows8.1にしたら、無くなっているそうです。自分でインストールしたら、6.0.0でもBridge接続すれば、ネットワークにつながるようになりましたが、NATはやっぱだめでした。

Windows 8.1 で VMware Player のNATが動作しない?
VMNet8の設定がNATになっていならしいので、vmnetcfg.exeで再設定必要らしいのですが、VMWare Player6.0.0には梱包されていないらしいので、別途インストール必要らしいです。

VMware Player 6で仮想ネットワークエディタを使う方法(vmnetcfg.exe)
NAT and network Configuration in VM Player 6
 VMWare Worstation 10.0.1からvmnetcfg.exeをコピーしてインストールしても、なぜか起動せず。どうも、末尾のバージョンがあっていないせいで、dllがうまく動作しない模様。dllをいろいろコピーしてみましたが、結局、6.0.1にバージョンアップすることで、全て解決。


プロフィール

Author:Zaike Yuki
オブジェクト指向、C++/Java、Python、Eclipse、Android、等に興味を持つソフトウェアエンジニア

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる