スポンサーサイト

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

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にバージョンアップすることで、全て解決。


FC2 Management

Evernoteで7つの習慣式TODO管理

TODO管理ツールとここ最近はWunderlistを使っていたが、昨年末からEvernoteへ徐々に乗換え中。折角なので、「7つの習慣」の


7つの習慣―成功には原則があった!7つの習慣―成功には原則があった!
(1996/12)
スティーブン・R. コヴィー

商品詳細を見る


第三の習慣:「重要事項を優先する」で紹介されているTODO管理もどきを実現することとする。

A=最重要事項(今日必ずすること)
B=重要事項(今日できればすること)
C=選択可能(今日できなくても構わない)


と分類して、1,2,3の数値と共に、優先度で優先順位をつけるそうだ。

最近のEvernoteでは、タグとは別にノートに 「TODO挿入」もできるようで、「リマインダー」 と合わせて使いうことで、結構本格的なTODO管理もできそうな予感。今までいろんなTODO管理ツールを使ってきたが、結局はツールではなく、それをどう自分が使いこなしていくかの方が重要なのだが、今年こそは長続きするかしら、、、???

【EvernoteでTODO管理例】
evernote.png

JSONによるPythonオブジェクトのシリアライズ

以前の JSON Schema でシリアライズ/デシリアライズするサンプルを作成。シリアライズは__dict__を使って簡単にできたが、デシリアライズの方は、なぜかエラーが発生してしまい、結局タプルから属性を切り出す方法になってしまった。いろんなJSONに簡単に対応できるように汎用的に作りたかったのに残念。

●参考にさせて頂いた資料、URL
Storing and Loading Data with JSON
Deserialize a json string to an object in python


#!/usr/bin/env python
# -*- coding: utf-8 -*-

#import simplejson
import json # Ptyhon2.6から標準
import codecs # 日本語ファイルアクセス用
import jsonschema

def validate(data, schema):
try:
jsonschema.validate(data, schema)
# print data
print(json.dumps(data, sort_keys=False, indent=2, ensure_ascii=False) )
except Exception, m: # 何故かValueErrorがキャッチできない!
print m.message

schema ={
"description" : "JSON Schema例", # 詳細な説明
"type" : "array",
"items" :{
"title" : "配列の項目定義", # 簡単な説明
"type" : "object",
"properties" : {
"country" : {
"title" : "国名",
"type" : "string",
"enum" : [u"日本", u"米国"], # 選択
"required": True, # 必須属性
},
"zipCode" : {
"title" : "郵便番号: 3桁-4桁",
"type" : "string",
"pattern" : "^[0-9]{3}-[0-9]{4}$", # 正規表現
"required" : True,
},
"prefecture" : {
"title": "都道府県",
"type" : "string", "minLength": 1, "maxLength": 3, # 文字列長の制限
},
"city" : {
"title" : "市",
"type" : "string"
},
"region" : {
"title" : "オプション:番地",
"type" : "integer", "minimum" : 1, "maximum" : 1000, # 上限、下限
},
"phone" : {
"type" : "string",
"format" : "phone" # フォーマット:電話番号
},
"email" : {
"type" : "string",
"format" : "email" # フォーマット:メールアドレス
},
},
},
"minItems" : 2, # 配列の最小値
"maxItems" : 5, # 配列の最大値
"uniqueItems": True, # 配列要素はユニークであること
}

class Address(object):
def __init__(self, country, zipCode, prefecture, city, region, phone, email):
self.country = country
self.zipCode = zipCode
self.prefecture = prefecture
self.city = city
self.region = region
self.phone = phone
self.email = email

def send(self):
print "Sending an email to %s !", self.email

@classmethod
def json_to_obj(cls, dct):
return Address(dct['country'], dct['zipCode'], dct['prefecture'], dct['city'], dct['region'], dct['phone'], dct['email'])

def __repr__(self):
return "" % (
self.country, self.zipCode, self.prefecture, self.city ,self.region, self.phone, self.email
)

def json_default(o):
if isinstance(o, set):
return list(o)
return o.__dict__

def test6():
global schema

data = [
{ "country" : u"日本", "zipCode" : "123-0000", "prefecture": u"神奈川", "city" : u"横浜", "region" : 999, "phone" : "+302108029409", "email": "taro@instore.jp" },
{ "country" : u"米国", "zipCode" : "123-0001", "prefecture": "AZ", "city" : "Tuson", "region" : 1, "phone" : "+302108029409", "email": "nvah@instore.gr" },
# { "country" : u"日本", "zipCode" : "123-0002"},
]
validate(data, schema)

data = [
Address(u"日本", "123-0000", u"神奈川", u"横浜", 999, "+302108029409", "taro@instore.jp"),
Address(u"米国", "123-0001", "AZ", "Tuson", 1, "+302108029409", "nvah@instore.gr"),
# Address(u"日本", "123-0002")
]
print(json.dumps(data, default=json_default, sort_keys=False, indent=2, ensure_ascii=False))

fp = open("address.json", "w")
fp.write(json.dumps(data, default=json_default, sort_keys=False, indent=2, ensure_ascii=False))
fp.close()

fp = open("address.json")
read_data = json.load(fp, object_hook = Address.json_to_obj)
fp.close()
a0 = read_data[0]
a1 = read_data[1]

print(json.dumps(a0, default=json_default, sort_keys=False, indent=2, ensure_ascii=False))
a0.send()
print(json.dumps(a1, default=json_default, sort_keys=False, indent=2, ensure_ascii=False))
a1.send()

def main():
test6()

if __name__=='__main__':
main()

海賊とよばれた男

今年の本屋大賞の百田尚樹氏:「海賊と呼ばれた男」を読む。

こんなにも激しく熱く生きるてきた先人のお蔭で今日の自分達があると思うと、曖昧で無為の人生を送っている今の自分が非常に情けなく思われる。

学生時代の恩師の教えをその後の人生で何度も苦難に合いながら、一度も曲げることなく貫き通した国岡(出光佐三氏)。60歳で終戦を迎え、2日後に「愚痴をやめよ。世界無比の三千年の歴史を見直せ。そして今から建設にかかれ」と誰一人全く先が見えないあの瞬間に、ただただ信念だけで、1000名の社員に号令をかけれる精神力。

戦前、戦後と軍、政府、石油業界、メジャーの四面楚歌の状況でも、決して信念を曲げることなく、民間人として、誰よりも国家や国民のことを考えて行動し続けたその生き様は、読後も強烈な余韻が残っている。

四無主義という、(1)クビを切らない、(2)定年を設けない、(3)出勤簿を作らない、(4)労働組合をつくらない、という一見時代錯誤的で非合理主義的な方針も、この生き様を見せられると、ただただ驚愕するしかない。

日田重太郎氏を初めとする日米の多くの人にも支えられた生き様であったが、それを引き出せる出光氏の執念にも似た信念。日々を過ごすことだけの小事に精一杯で、生きる目的も曖昧な自分には、痛烈なメッセージを叩きつけられた思いがする。

人生の後半ですら、あんなにも激動の人生を送ることができた出光氏のことを思えば、まだまだ自分にも小人としての相応しい生き方があるのではないだろうかと思わせてくれた(たぶん)。

百田氏の文体は実はあまり好きな方ではないが(ゴメンなさい)、淡々と平易な文章で史実に基づいた出光氏の生き様をつづっていることで、却って、出光氏の凄さが伝わってくるのかもしれない。なんだかんだ言っても、「永遠のゼロ」に続いて上下巻を一気に読んだってことは、やっぱり百田氏も人を感動させるすごいお方なのだと思う。


海賊とよばれた男 上海賊とよばれた男 上
(2012/07/12)
百田 尚樹

商品詳細を見る

Emacの設定(7):Markdown+Pandoc + Sphinx

# Markdownインストールメモ

---

今年の [PyconJP 2013のTakahiro IkeuchiさんのYoutube] を拝見して、ReSTではなく Markdown+Pandoc で技術ドキュメントを作成する可能性を知った。早々にWindowsの Emacs 上に環境構築した時のメモ(記述に不正確なところがあります。ごめんなさい)。

実は、この文書の元文書はMarkdownで書いたのですが、一度に色んなフォーマットで書くと頭混乱しますね、、、。

## 環境

* OS: Windows 8
* Emacs: 24.2
* Markdown: 1.0.1
* Ruby: 2.0.0p247
* karmdown:
* pandoc:1.12
* Python: 2.7.2
* Sphinx v1.1.3

## 実施したこと、参考にさせて頂いたURL

* [SphinxをMarkdownで使い隊]
* [文章作成やメモ書きにも便利、Markdown記法]
* [Markdown文法の全訳]
* [多様なフォーマットに対応ドキュメント変換ツールPandocを知ろう]
- Pandocのインストール方法や使用方法についての概説あり
* [Markdownを使う環境を整えてみた]
* [Emacsのmarkdown-modeを使ってみる]
* markdown.elダウンロードしてインストール

git clone git://jblevins.org/git/markdown-mode.git


* Rubyインストール後をgemでkarmdownをインストール
gem install kramdown


* Markdown/Karmdown+Pandoc用.emacsの設定例
以下をサンプルに作成させていただきました。

* [CONVERTING MARKDOWN IN EMACS VIA PANDOC]


## Emacsの設定例

;;--------------------------------------------------------
;; Markdown-mode
;; pandoc input.md -s -o output.html
;; pandoc -s -f markdown -t html input.md
;; C-c C-c c: open browser
;;--------------------------------------------------------
(add-to-list 'load-path "~/.emacs.d/vendor/markdown-mode")

(autoload 'markdown-mode "markdown-mode.el" "Major mode for editing Markdown files" t)
(setq auto-mode-alist (cons '("\\.md" . markdown-mode) auto-mode-alist))
(defun markdown-custom ()
"markdown-mode-hook"
(auto-fill-mode -1)
(setq markdown-command "/c/Ruby/Ruby200-x64/bin/kramdown"))
(add-hook 'markdown-mode-hook '(lambda() (markdown-custom)))

(defun convert-markdown-to (newtype)
"Converts the current buffer, assumed to be in Markdown format,
into a new format. The new format must be one acceptable to
`Pandoc'."
(interactive "sOutput[html|rst|docx|...]: ")
(let ((current-document (buffer-file-name))
(temp-filename (concat "./output." newtype)))
(with-temp-file temp-filename
(call-process-shell-command (concat "pandoc -s -f markdown -t " newtype)
nil t nil current-document))
(browse-url temp-filename)))

(eval-after-load "markdown-mode"
'(define-key markdown-mode-map (kbd "C-c C-c c") 'convert-markdown-to))


## Emacsの使用方法

* C-c C-c v: karmdownで生成した文書(HTML)をブラウザで表示
* C-c C-c m: karmdownで生成した文書(HTML)をEmacsで表示
* C-c C-c c: Pandocで生成した文書(HTML)の表示(rst、word文書も作成することはできるが)
- Pandocで変換されたファイルは./output.html, output.rst, output.docxとして保存される
- htmlの場合は、utf-8で文書を作成してshift-jisで保存するとうまくいくみたい

## ReStによるSphinx文書の自動生成
 PandocでReST文書を作成して、SphinxでHTML文書を自動生成すると、必ずしもPandocが正しく変換しない箇所がある模様。たとえばソースコードの行表示については、以下の修正が必要。

* Pandocで自動生成されたrstファイル
.. code:: commonlisp
:number-lines:

* Sphinx用に修正したrstファイル
.. sourcecode:: common-lisp
:linenos:


【上記のMarkdownからPandocによって生成されたHTML例】


markdown.png
プロフィール

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

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

この人とブロともになる

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