スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

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リンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。