2016/02/23

[轉] 使用Performance Monitor監控CPU、Memory、Network與Disks

(文章出處: [[使用Performance Monitor監控CPU、Memory、Network與Disks]] 阿兩的筆記本 Ryoutsu’s Notebook )

使用Performance Monitor監控CPU、Memory、Network與Disks

Purpose

我希望能夠在裝某個軟體後,知道它對系統效能的影響。我們使用Windows Vista之後所內建的Performance Monitor,去對CPU、Memory、Network與Disks四個項目做監控與評估。接下來將告訴大家如何使用這個工具去達到這個目的。

Create New Data Collector Set

首先, 開啟Performance Monitor工具: start > run > perfmon
在Data Collector Sets中,System Performance已提供大部分能滿足我們需求的內容。包含: (只列出我們需要的部分,實際有更多資訊)

CPU: CPU使用率。
Memory: Memory使用率。
Network: 每秒接收或送出的封包、接受與送出所使用掉的Bytes數。
Disks: 硬碟每秒的讀寫速度。
但我們還需要硬碟的使用量與定義收集資料的時間(預設1分鐘)。

首先來建立一個新的Data Collector Set:

在User Defined點右鍵 > New > Data Collector Set。
輸入自訂名稱,選擇Create from a template。
選擇System Performance為範本。
直接按Finish。(後續的設定不是這麼重要)

Change Properties

為了要設定我們想要的監控時間,我們可以做工作排程或設置停止監控的時間:

對Data Collector Set點右鍵。
選擇Properties。
切到Stop Condition的頁籤。
選擇多久後停止。

如果是為了要知道某些時段的效能,可以切到Schedule頁籤設定時間區段。

Change Performance Counter

在System Performance範本中,僅提供PhysicalDisk Counter。我們需要的剩餘空間(Free Space)是屬於LogicalDisk Counter,所以我們必須新增這個Counter。

選擇新增的Data Collector Counter。
雙擊右邊的Performance Counter會出現Performance Counter Properties對話盒。
點擊Add,並找尋LogicalDisk。
LogicalDisk包含許多項目,我選擇所有加入。
加入LogicalDisk 項目至右方,你也可以選擇你要監控的磁碟分割。
按OK關閉新增Counter與修改Properties對話盒,即新增完成。
在Properties對話盒中,你也可以針對不同Counter,選擇採樣Interval時間。

其實我們只需要Free Space,但想說反正都做一次功,就一起抓一抓。最後等到報表再選擇想要呈現的部分。

Running

對要執行的Data Collector Counter點右鍵並點Start,即開始執行(同時間只允許一個工作)。此時Reports對應目錄中會產生出顯示還在執行的報表:

Reports

在工作執行完成後,點擊Report會有文字報表,大致看這張就可以知道結果了。

但如果要提供更能說服人的圖表,如監控時間的效能變化折線圖,可以對Report右鍵>View>Performance Monitor:

圖表畫面如下:

a: 查看當前活動內容。
b: Performance Monitor的屬性。
c: 改變圖表種類。
d: 新增要顯示的Counter內容。
e: 目前顯示的Counters列表。

屬性對話盒主要可以讓你選擇資料來源與顯示的Counters項目,算是設定大雜燴:

Summary

整體來說,算是很勇猛的工具,光CPU、Memory、Network與Disks就足夠讓我判斷某個軟體吃不吃資源。在這篇文章中,我只講我所需要的部分,其中更詳細的設定,可能要等到我有需要才會深究吧! 最後附上一張我用的Counters:


(其中Network Interface是針對某張網卡顯示,Processor也可以針對某個Core顯示)

2016/02/16

windbg 要怎麼切換從32至64bits 模式: .effmach x86 或 !wow64exts.sw

(原文出處: How do I switch to 32bit mode when I use windbg to debug a dump of a 32bit application running on an x64 machine? )

這篇文章裡面會介紹, 當你使用windbg來除錯一個dump檔
而它又是32bits的應用程式跑在x64機器上的dump檔, 如何從 32bit mode切換到 x64 machine.

假如你是32bit或64bit版本的windbg, 去開啟 32bit Application跑在x64作業系統上的Dump檔, 預設就是指你用64bit的模式去看32bit的application, 如下例, 會出現很多 wow64xxxx的字串

0:001> k Child-SP RetAddr Call Site 00000000`027eebc8 00000000`7529ab46 wow64cpu!WaitForMultipleObjects32+0x3a 00000000`027eec70 00000000`7529a14c wow64!RunCpuSimulation+0xa 00000000`027eeca0 00000000`777305a8 wow64!Wow64LdrpInitialize+0x4b4 00000000`027ef200 00000000`776e68de ntdll!_LdrpInitialize+0x49db8 00000000`027ef2b0 00000000`00000000 ntdll!LdrInitializeThunk+0xe0:001> r rax=000000000af7e3b8 rbx=00000000778ecb94 rcx=00000000004b6a18 rdx=0000000000000018 rsi=00000000004b6a18 rdi=0000000000000000 rip=000000007577374f rsp=00000000027eebc8 rbp=0000000002a9fee0 r8=000000000000002b r9=00000000778c99fd r10=0000000000000000 r11=0000000000000212 r12=000000007efd8000 r13=00000000027efd20 r14=00000000027eec00 r15=0000000075773380 iopl=0 nv up ei pl nz ac pe nc cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000212 wow64cpu!WaitForMultipleObjects32+0x3a: 00000000`7577374f 418bbda0000000 mov edi,dword ptr [r13+0A0h] ds:00000000`027efdc0=00000000

這些wow64xxxx的字串在這些call stack根本無法給我們想要的訊息!
The wow64 stuff in the call stack and the x64 registers do not tell us much.

切換成用32bit的視角來看吧! 透過 .effmach x86 或 !wow64exts.sw 就可以囉!
To get the meaningful 32bit look of the application, you need to switch the processor mode that the debugger uses to 32bit by entering either .effmach x86 or !wow64exts.sw in windbg. The two commands are basically same. You should see output like the following:

0:001> !wow64exts.sw Switched to 32bit mode0:001:x86> k ChildEBP RetAddr 02a9fd4c 7794787d ntdll_77880000!NtWaitForMultipleObjects+0x15 02a9fee0 7730eccb ntdll_77880000!TppWaiterpThread+0x328 02a9feec 778fd24d kernel32!BaseThreadInitThunk+0xe 02a9ff2c 778fd45f ntdll_77880000!__RtlUserThreadStart+0x23 02a9ff44 00000000 ntdll_77880000!_RtlUserThreadStart+0x1b0:001:x86> r eax=00000000 ebx=778ecb94 ecx=00000000 edx=00000000 esi=004b6a18 edi=00000000 eip=778c99fd esp=02a9fd50 ebp=02a9fee0 iopl=0 nv up ei pl nz na po nc cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000202 ntdll_77880000!NtWaitForMultipleObjects+0x15: 778c99fd c21400 ret 14h

果然看起來很不一樣吧!
The call stack looks very different now. Particularly you do not see any wow64 and wow64cpu modules in the stack.

以上的方法也適用於x64 kernel dump 在32bits處理器
Note: The above solution works for the kernel mode dump of an x64 system too when you try to see the thread call stacks of a running 32bit process.

2016/01/21

關於WMI- 用 wbemtest 去撈SMBiosData的資料出來

本文只是一個小範例, 怎麼透過 wbemtest.exe 這個GUI界面, 去撈SMBiosData的資料出來!

首先打開 wbemtest.exe 吧!

第1步: 修改namespace為 root\wmi
第2步: 按 Query 以進入搜尋界面
第3步: 輸入 SELECT SMBiosData FROM MSSMBios_RawSMBiosTables
第4步: 按Apply

按完Apply後, 會跳出以下畫面
第1步: 雙擊這個Qurey result的項目, 會跳出result
第2步: 去找出SMBiosData, 再度雙擊會看見RawData
第3步: Raw Data

關於WMI的 WQL語言簡介和WQL測試工具wbemtest.exe使用方法詳細介紹

這篇文章主要介紹了WQL語言簡介和WQL測試工具wbemtest.exe使用方法詳細介紹,WQL是指Windows管理規範查詢語言,需要的朋友可以參考一下 (原文出處: .net中的WMI编程(二):WMI中的WQL语言和WQL的测试工具)

WQL就是WMI中的查詢語言,WQL的全稱是WMI Query Language

簡稱為WQL,翻譯成中文好像可以成為Windows管理規範查詢語言。熟悉SQL語言的朋友會感覺它和SQL非常相似。

WQL其實非常簡單,它有如下特點:
1、每個WQL語句必須以SELECT開始;
2、SELECT後跟你需要查詢的屬性名(我剛才對應SQL將其稱之為字段名了),也可以像SQL一樣,以 * 表示返回所有屬性值;
3、FROM關鍵字;
4、你要查詢的類的名字;
5、另外,如果你想精確查詢結果還可以加上WHERE條件從句。比如某個類有Enable屬性,你可以在查詢的時候加上WHERE ENABLE=true。

如以下的都是正確的WQL語句:

Select * From Win32_LogicalDisk where drivetype=3 '‘'‘查詢所有硬盤分區SELECT * FROM Win32_share '‘查詢所有共享目錄SELECT * FROM Win32_NetworkAdapterConfiguration WHERE DHCPEnabled=TRUESELECT Description FROM Win32_Account WHERE Name='Administrator'SELECT Freespace,DeviceID FROM Win32_LogicalDisk

在Windows作業系統中都會有一個內建的WQL測試工具,叫wbemtest.exe

用它就能查看有哪些類和類有哪些 屬性,使用方法如下:
首先,運行wbemtest.exe,如下圖:

點“確定”之後會出現一個“Windows管理規範測試器”的窗口,如下圖:

點擊“連接”會出現一個對話框,我們可以選擇連接本地主機或者遠程主機,如下圖:

如果是本機測試並且是用管理員身份登錄,可以不用填寫用戶名和密碼,
如果是鏈接遠程主機則需要填寫遠程主機上的用戶名和密碼(建議使用遠程主機上的管理員身份登錄),點擊“連接”之後就會回到主界面。注意,只有登錄之後才能查看和查詢。

點擊“查詢”按鈕,輸入我們要查詢的WQL語句,
如”Select * From Win32_LogicalDisk”,這是查詢系統邏輯驅動器的WQL語句,如圖:

這是我們多半會得到一個號碼為”0x80041010″ ,
描述為”無效類別”的錯誤,如下圖:

出現這個錯誤是因為剛開始默認的名稱空間為”root/default”,這時我們需要更改名稱空間。
再點擊“連接”按鈕,將默認的”root/default”更改為”root/cimv2″,然後再點”連接”按鈕,如下圖:

登錄成功之後我們就可以查看系統有哪些類,並且還可以執行WQL查詢了。
點擊”枚舉類別”按鈕,然後在彈出的對話框中輸入要查找的類名就可以查詢類的屬性了。
如下圖(注意:我沒有填寫超類別名稱,並且選中”遞歸”單選按鈕,這樣就是遞歸列舉系統中所有的類):

查詢結果如下圖:

這些可都是有用的東西哦,如果你細心,你會這個列表裡發現我以前所用到的WQL語句裡設計到的所有的類,如Win32_LogicalDisk、Win32_share等等。
需要注意的是,有些還有括號,這些是方法。

下面是一些查詢的結果:

我們還可以對其中某一項數據雙擊查看屬性,如下圖:

如果我們不習慣這種方式查看,我們還可以點擊上面這個窗口中的”顯示MOF“按鈕,
下圖是我點擊”顯示MOF“按鈕的結果:

從上面的圖裡就能看出這個類有哪些屬性及對應的屬性值了。

2016/01/14

Windows平台作-S3 S4 測試 - PWRTEST.exe

微軟其實自己當然會開發一些測試指令給大家使用囉!

1. 先下載 Windows Driver Kit http://www.microsoft.com/download/en/details.aspx?id=11800

2. 至 C:\WinDDK\6001.18001\tools\acpi\pwrtest,底下有 x86 for 32 bits
,amd64 for 64 bits
, IA64是Intel Itanium 處理器…是特殊用途的處理器

3. Copy PWRTEST.exe 至待測機,

4. Open the cmd.exe and run as administrator. (注意:不懂請參考以下網址: http://support.microsoft.com/kb/981174/zh-tw)

5. 參考執行語法: pwrtest /sleep /s:3 /c:500 /d:30 /p:30

/s:3 – S3 test
/c:100 – 100 cycle
/d:90 – S0~S3 delay timing
/p:30 – set the timing for resume form S3

2015/12/22

PassMark DiskCheckup 檢測硬碟工具軟體

PassMark DiskCheckup 這是一款由 PassMark 所提供的一套簡單的檢測硬碟工具軟體,它可以幫助使用者達到快速檢測的功能,並且允許用戶監控一個特定的硬碟驅動器的 SMART 屬性。
軟體特色
顯示啟動/停止時數的電源和硬碟的溫度
顯示設備信息
支援 E-mail通知檢測到臨界值
支援內置的磁盤自檢程序

2015/10/17

洛磯山國家公園遊記 - 走US-34公路看群山環繞, 再去Bear Lake環湖感受寧靜

從Fort Collins出發到 Rocky Mountain national park我覺得有兩條路線最值得去走走, 在廣大的洛磯山國家公園, 一是公路US-34登高看群山, 另一則是往山谷間湖泊間走,

首先到洛磯山國家公園的入園處

這地方要收費的, 我們只有一台車是收費20美元
所以大家可以集中坐車也許能省下一些入園費!
我們決定一天內走兩個路線都去體驗一下, 所以下面的遊記我們山路走一半,則返頭去往南路線的湖邊看看!

這個地圖, 表示我們從旅館到洛磯山國家公園的入園處
(當然若直接從埃斯特斯公園 Estes Park一直走US-34也是有另一入園處)

路線1. 往北走US-34公路看群山環繞

PS: 這條路線中有部分道路會於冬季封閉。(我們在Alpine Visitor Center最高點返頭去Bear Lake)

Trail Ridge Road 是指US 34號高速公路東起Estes Park,西至Grand Lake,橫越落磯山國家公園,並且跨越美國大陸落磯山脈分水嶺的一段道路,是美國境内最高的雙向柏油路,最高點達海拔12183呎。許多遊客喜歡在此附近徘迴,環視群峰。苔原上偶而可碰到成群的Mule deer。
沿此路由東往西重要景點有:

  • Deer Ridge Junction:海拔 8,978 feet,是 Trail Ridge Road的東端,也是US.36和US.34的交接點,在此可看到Longs Peak及其週遭之高山。
  • Many Parks Cruve:海拔 9,691呎,每年十月中旬到次年六月此公路即由此點起西至Colorado River Trailhead封閉。在此可看到:
    Twin Sisters (11,413), Mt Lady Washington (13,281),
    Mount Meeker (13,911),Longs Peak (14,255), ….
  • Rainbow Curve:海拔10,875呎,是 Horseshoe Park、 Alluvial Fan 和 the Beaver Ponds的最佳觀景點,此地設有公共廁所。在此點尚可觀看到下列高山:Mount Chapin (12,454),Mount Chiquita (13,069), Ypsilon Mountain (13,514), Mommy Mountain (13,425)….
  • Forest Canyon:海拔 11,758 呎,是 Forest Canyon 和美國大陸落磯山脈分水嶺群山的最佳觀景點。在此可見下列高山Longs Peak,Stones Peak (12,922)
  • Rock Cut:海拔 12,178呎,本是一突出岩石,現已打通使此路得以貫穿通過。
  • Tundra Communities Trailhead :位於Rock Cut 附近,
  • Lava Cliffs:海拔12,135呎,從此處停車處可遠眺 Desolation Peaks (12,949),Ypsilon Mountain (13,514)
  • Gore Range:海拔12,048 呎,是早期西方移民來到此,所建立的一個打獵牧場。在此可遠眺Longs Peak,Stones Peak (12,922)
  • Alpine Visitor Center: 海拔11,796呎 (3,595.公尺),這裡擁有園區唯一紀念品商店與餐廳,遊客幾乎都會到這邊來逛逛 選購紀念品或用餐。
  • Alpine Ridge Trail: 由Alpine Visitor Center停車場的一角往上爬,僅僅 1/4哩的路程,爬升高度也只有300呎,但因為是高海拔,所以走起來也是蠻累人的。但當你爬到最高點時,你可環視四周的高山美景。
  • Medicine Bow Curve :海拔11,640 呎。由此往北可遠眺20哩外的Medicine Bow Mountain Range 和35哩外的懷俄明州。
  • from Milner Pass海拔10,758 呎, 沿著大陸分水嶺hike 5.5 miles one way to Mount Ida (12880′) , 爬升2112′.

路線2. 往南去Bear Lake環湖感受寧靜

集合點可以為: Meet at Bear Lake trailhead

Walking Map among Lakes & Falls, and we may probably shorten the walking plan if we feel tired.

  • Bear Lake 距停車場僅250呎,環湖一周約0.5哩。湖後方乃是Longs Peak
  • 從Bear Lake走到Nymph Lake約10分鐘的上坡路。 0.5 Miles, 爬升高度225’。湖面長滿了睡蓮 (Yellow Pond Lily)。
  • 從Nymph lake再走到Dream Lake約20分鐘的上坡路。 0.6 Miles, 200’。
  • 從Dream Lake再走到Emerald Lake約20分鐘的上坡路。 0.7 Miles, 180′
  • 從Emerald Lake走回Dream Lake再走到 Lake Haiyaha。1.8 Miles。
  • 從Lake Haiyaha走到Mills Lake 。2.8 Miles。
  • 從Mills Lake走到Alberta Falls。2 Miles。

2015/09/24

小時候最想看但沒看完整套的卡通-人體大奇航

因為當時年紀小, 電視遙控器不是自己控制
而且也不記得正確撥出時間, 好在我還知道卡通名稱…好像是人體大啟航?! ….不是啦是人體大奇航~~~~

故事的設定很有趣, 可以吸引小朋友的注意

人體裡面有保護機制與健康運作成分, 這代表的是正義的力量, 保護人類主人的安全!

而邪惡的反方代表, 就是一堆大壞蛋, 想要把人類弄生病

壞蛋們千方百計的想要讓人類生病, 還會開行前會議討論策略

而圖片裡的白血球就是會不斷的吃掉壞東西然後犧牲, 雖然樣子看起來有點蠢, 但是很偉大!

對於當初還是小學生的我覺得收穫很多, 到了日後國中與高中的健康教育課程, 腦海裡有這些卡通畫面幫助我的記憶很多!

總之, 人體就是正反交戰的地方

看完擬人化的卡通就會覺得, 原來有這麼多機制在保護著我們

上面是一些, T細胞會直接對壞細胞滅殺, 與心臟血管等管道前進著, 與巨噬細胞保護…
好看可以找時間再來看看~~

影片於此: 人體大奇航 youtube播放清單

2015/09/21

Android - Wifi 設定為開啟(enable)之過程

1) 透過 WifiEnabler 開始enable wifi過程
android/packages/apps/Settings/src/com/android/settings/wifi/WifiSettings.java

    @Override    public void onActivityCreated(Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        mP2pSupported = getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI_DIRECT);        mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);        ....        // On/off switch is hidden for Setup Wizard        if (!mSetupWizardMode) {            Switch actionBarSwitch = new Switch(activity);            if (activity instanceof PreferenceActivity) {                PreferenceActivity preferenceActivity = (PreferenceActivity) activity;                if (preferenceActivity.onIsHidingHeaders() || !preferenceActivity.onIsMultiPane()) {                    final int padding = activity.getResources().getDimensionPixelSize(                            R.dimen.action_bar_switch_padding);                    actionBarSwitch.setPaddingRelative(0, 0, padding, 0);                    activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,                            ActionBar.DISPLAY_SHOW_CUSTOM);                    activity.getActionBar().setCustomView(actionBarSwitch, new ActionBar.LayoutParams(                            ActionBar.LayoutParams.WRAP_CONTENT,                            ActionBar.LayoutParams.WRAP_CONTENT,                            Gravity.CENTER_VERTICAL | Gravity.END));                }            }            mWifiEnabler = new WifiEnabler(activity, actionBarSwitch);        }        ...

2)
android/packages/apps/Settings/src/com/android/settings/wifi/WifiEnabler.java

2015/09/07

(轉載) Fort Collins 柯林斯堡- 美國幼兒園考察小記

轉載自 http://blog.sina.com.cn/s/blog_750a4a4d0101kn3n.html

宇哥到了美國才開始考察柯林斯堡的幼兒園的一切信息來源於以下五處:
1、來美國之前宇爹查閱的可選幼兒園單子
2、宇爹同事給推薦的附近幾個當地人覺得不錯的幼兒園
3、媽媽網上學習的有關幼兒園的資料
4、帶著宇哥去幼兒園實地考察的感受
5、實地考察過程中在麥當勞碰到的一個媽媽的感受和建議


下面一條條說說:

1、爸爸google了大概11個幼兒園,只簡單說說位置和價格:

  • Harmony School:費用是一個月四天,255刀。位置在harmony大街上。離家大概1.1英里。走路大概20分鐘。
  • TPAAK Preschool:費用是half day 30刀一天,full day 40刀一天。 half day $140/week(每週);full day $199/week(每週)。這個離家最近,走路大概在10分鐘。比宇哥之前的農大幼兒園還近。離家0.7英里不到
  • Primrose School:費用是5天$220/week(每週);3天$165/week(每週);2天$145/week(每週);離家2英里,走路大概40分鐘。
  • Bright Horizo​​ns:費用是2天$524/month(每月);3天$723/month(每月); 離家2.7英里。
  • 後面的幾個幼兒園沒仔細了解,不在這裡列示了。

2、宇爹同事介紹的幾個幼兒園:
· Bright Horizo​​ns (East) – Timberline & Custer – really good/ my daughters went there同事女兒送的幼兒園,也在宇爹查閱的幼兒園名單裡。大貴啊
· Primrose – Timberline – heard good things about it也在名單裡。
· KinderCare – McMurry
· Little People’s Landing – don’t know the exact location這個其實也在名單裡。

3、媽媽網上學習的有關幼兒園的資料
幾個學術帖:
· http://www.xzbu.com/9/view-947273.htm
· http://www.xzbu.com/9/view-946943.htm

大致對美國的幼兒園有個概要的了解,摘出來做個簡單歸納。
美國的幼兒園分為幾個階段:
· 5 歲兒童入讀的幼兒園(Kindergarten)已被納入國民教育體系,成為正規教育的起點。所以public的就是納入國民教育體系的,是free的。每個州對5歲的定義月份不同,科州的定義是十月一日之前出生的。
· 學前教育指5歲前的兒童(包括5歲)在未正式入學之前接受的教育。
· 3 歲以下兒童入託或入讀的場所被稱為嬰幼兒計劃(Infant/Toddler Program);
· 3 歲和 4歲兒童的學習場所為學前班(Preschool/Pre-kindergarten)。

所以宇哥當時上幼兒園的時候屬於Pre-K。就是給4歲-6歲的小孩上的學前班。
但因為每年8月註冊的時候有些小朋友還沒有到5歲,所以多數時候Pre-K的班級裡年齡差度相對比較大。
宇哥幼兒園裡他的個子算是比較高的。而三歲以下娃娃待的幼兒園費用是很貴的。

4、帶著宇哥去幼兒園實地考察的感受
宇哥當時堅持不上幼兒園,估計在家玩野了吧,跟媽媽在一起爽的一塌糊塗。在家玩了一個月後,媽媽發飆了。爸爸趕緊說一周內上幼兒園,必須的!於是,問宇哥,宇哥說12天以後。那好了,考察吧,宇哥又說了,要去遠一點的地方上幼兒園。得,那就等車吧,結果宇爹的駕照申請再次受到阻礙,我們不得不放棄了等車再上幼兒園的決定,打算兩週之內把宇哥幼兒園的事情搞定。
十月,我帶宇哥親子去幼兒園考察。說實話走路去,的確很遠很累。

首先我們去的第一個目標是Primrose School。之前跟pre-k的老師郵件聯繫過,沒想到我們路上經過harmony school。索性就一併了解了。一開始宇哥還不敢進,等真的進去了,就被裡面的玩具所吸引了。自顧自在裡面玩了起來,我正好跟負責人一起聊。等聊完了他還沒玩夠。

· 關於Harmony School:幼兒園作息時間​​在9:30-3:30.只有一個pre-k的班。已經滿員。登記了等位子。但是這裡還開了一個enrichment program的班,同樣招收3-5歲的小朋友,價格是30刀一天。也可以按照送幼兒園的時間來選擇性收費,比如送12週150刀。 9週115刀,8週105刀。早晨7點送到8:30額外收5刀,還可以在不同時間段收費,7:00-8:30收5刀,8:30-11:30收17刀等等。總之加起來價格差不多,而且非常靈活。

我還參觀了這個項目班,班裡只有5個孩子,在自顧自地玩,老師在辦公。裡面有一個亞裔,一個黑人,其他都是白人。也參觀了樓上的pre-k的班,學生也不多,大概10個,倆個老師,老師正在開心滴帶著學生扮演小兔子。幼兒園很精緻小巧,跟五道口的外婆的廚房很類似,親切自然,跟家裡的遊戲室一樣很舒服。問宇哥,你喜歡麼,答:有點喜歡。

· 關於Primrose School
告別了harmony,我們來到了Primrose School.實話說,我對這個幼兒園還是很喜歡的,無論是他們的網站,還是跟老師事先的mail來往,都讓我在選擇幼兒園的砝碼上加足了分數。
關於Primrose School:迎面而來的是他們諾大的playground(遊樂場)嶄新並且時尚的遊樂設備。宇哥因為拿個大斧頭,所以經過的時候遊玩的小朋友很友好地跟他打著招呼。由於到達的時候已經1點鐘,所以沒有機會去教室餐館,僅僅在大廳跟接待聊了聊,他們的作息時間也是到下午3:30結束。為了安定比較不安穩的宇哥,還給了宇哥一個畫冊和蠟筆讓他畫。幼兒園的門口還有校車,也是很新很新的。總之,對這個幼兒園充滿了好感。
告別了幼兒園,我們來到了附近的麥當勞,第一次到這裡的麥當勞,沒想到還真的是不錯,有著巨大的遊樂場,遊樂場的面積甚至超過了就餐的面積的一半。宇哥在裡面玩了很久很happy。

· 關於TPAAK:這個是離家最近的幼兒園,除了沒車就是因為fc經常下雪,所以最後還是捨棄了primrose,宇哥最終答應去的育兒園,連哄帶騙的就帶他去看幼兒園了。去考察的那天是中午十二點的樣子。見到了Shanda,相當溫和舒服的一個老師,負責pre-k和k,宇哥在空大的教室玩了一會兒,Shanda告訴我們可以在本週五帶宇哥試園一天,free,免費一天。幼兒園的過道和裝飾也很舒服,讓我們從每個角落裡都能體會到孩子們的快樂。

5、實地考察過程中在麥當勞碰到的一個媽媽的感受和建議
在麥當勞,宇哥邊玩,我邊學習幼兒園給的資料,碰到了一個媽媽聊了起來,給我推薦公立幼兒園。我們一起在地圖上尋找,才發現地圖上標記的都是公立的。而在宇爹的list(名單)裡,離家最近的tpaak就是公立幼兒園。她大力推薦了這個幼兒園,說這個幼兒園的老師非常kind,溫和耐心。還說harmony的不好,老師很冷漠。還給我舉了她家女兒上幼兒園的經歷,並且答應,如果我沒車,她可以約我一起開車帶我把fc的公立幼兒園都看一遍。我們互相留了電話號碼,我答應給她電話。

· 最終我們選擇了離家最近的TPAAK。
跟在北京差不多,離家近是最幸福的。何況,美國的幼兒園不提供午餐,所以媽媽還需要花功夫給帶午餐。幼兒園每天提供三個snake(零食),大概是早晨9點一次,午睡起來後一次,下午5點鐘一次。零食包括:蘋果汁飲料一小盒,奶酪,蔬菜沙拉,水果,葡萄乾,餅乾等不一。 TPAAK最吸引我的還是他們從早晨七點上班到傍晚6點。就憑這點這價格就算不錯了。最後我們根據自己的經濟情況選擇了一周送兩天,宇哥自己選了周三和周四。

2012最讓人安心的事情終於結束了,撒花~~~~~

2015/07/17

C# 用SortedDictionary Class 取代 C++的std::map

工作上的需要, 我寫程式碼必須做配對 key, and Value
但是希望不要限制 type, 可以自由度高一點

C++的話 會想到std::map這個方式
但是我們今天程式碼是透過C#撰寫

那就要找另外的方式, 上網找看看吧! 找到如下…

What is C# equivalent of  in C++?The equivalent would be class SortedDictionary in the System.Collections.Generic namespace.If you don't care about the order the class Dictionary in the System.Collections.Generic namespace would probably be sufficient.

既然有兩個class可以使用, 就選SortedDictionary吧~
MSDN有完整的說明與介紹, 如何使用SortedDictionary來開發~

初始與放進去:

        // Create a new sorted dictionary of strings, with string        // keys.        SortedDictionary openWith =             new SortedDictionary();        // Add some elements to the dictionary. There are no         // duplicate keys, but some of the values are duplicates.        openWith.Add("txt", "notepad.exe");        openWith.Add("bmp", "paint.exe");        openWith.Add("dib", "paint.exe");        openWith.Add("rtf", "wordpad.exe");

修改, 若不存在這個key則會新增進去:

// If a key does not exist, setting the indexer for that key        // adds a new key/value pair.        openWith["doc"] = "winword.exe";

可以用這段KeyValuePair來檢驗是否正確的key & value被放進去:

        // When you use foreach to enumerate dictionary elements,        // the elements are retrieved as KeyValuePair objects.        Console.WriteLine();        foreach( KeyValuePair kvp in openWith )        {            Console.WriteLine("Key = {0}, Value = {1}",                 kvp.Key, kvp.Value);        }

大概就這樣~

2015/06/26

筆電notebook的防鎖孔

在筆記型電腦的側邊會有一個鎖符號的孔洞,

就是用來防道使用, 可以去買防盜鏈

店家展示筆店的時候會使用~

2015/06/18

2014全球NB出貨市占 全球筆電出貨恢復成長達1.75億台

集邦科技昨日公布最新研究報告,2014年全球筆電出貨恢復成長達1.75億台,其中惠普(HP)以逾20%市占率穩居全球第一,而華碩則首度超越宏碁,高居全球第四;蘋果則因降價策略奏效,橫掃中高階筆電市場,成長幅度以46.4%奪冠。

TrendForce也示警,筆記型電腦分析師陳虹燕表示,2015年筆電整體市場的出貨量預期僅能與去年持平,意味品牌追求的成長將來自於其他品牌的衰退。2015年市佔排名競爭上,將呈現兩大四小的關係,惠普與聯想依然是彼此的最大敵手,而第三名到第六名的佔比都在10~12%間擺盪,是一種隨時可超越或被超越的緊張關係。

TrendForce統計,2014年筆記型電腦市場經過了Windows XP 退役帶來的換機潮以及微軟與品牌廠商合作祭出的低價筆電等刺激方案後,從2013年的谷底爬起,2014年整體筆電出貨量達1.75億,年成長3.6%,其中,前七大品牌的成長更高達14.1%。

惠普從第1季就展現出貨回溫的跡象,之後更是每季正成長,第4季的出貨更是達到2010年以來的歷史新高點,出貨量較2013年成長19.5%,並以20.1%的市佔率居龍頭地位。

聯想(不含併購品牌)年出貨成長14%,市佔17.5%位居第二,因中國內需市場出現停滯,使得總量上未能突破惠普;戴爾受惠於Windows XP退役帶來的商務換機潮,使其年成長12.2%,並且穩居第三名,市佔12.3%,繳出戴爾私有化後的第一張亮麗成績單。

緊追在後的華碩憑藉10.1吋2-in-1 PC T100貢獻了一成多的出貨量,市佔擴張至11%,打敗宏碁成為第四名;宏碁則是倚靠Chromebook的優異表現穩住陣腳,出貨量雖未獲大幅成長,但幫助宏碁擺脫了大幅衰退的窘境,名次小幅下滑至第五名。

2014年最豐收的品牌非蘋果莫屬,積極的價格調降策略,使之橫掃中高階筆電市場,年增率高達46.4%,且市佔率增加至9.3%,一口氣超越東芝成為第六名,且出貨量緊逼宏碁。(工商時報)

2015/06/08

解決在visual studio 搜尋結果無法顯示 (search result empty display...)

Please check if the following registry key is ok. Fixing this solved the issue for me.
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}]@="PSFactoryBuffer"[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}\InProcServer32]@="C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\MSEnv\\TextMgrP.dll""ThreadingModel"="Both"

Ref: http://stackoverflow.com/questions/13386856/find-results-not-displaying-results

2015/04/28

Wireless router中的UPnP是做什麼用的?

UPnP 是一種通訊協定,其主要功能是供家中的設備可以輕易的且自動的連結到網路並完成網路相關設定。
不需要您本人手動去設定就可以使用的意思。

所以你的 router 有支援並打開這項功能後,您家中的視訊設備(大部分都是支援UPnP)接上網路、打開電源。
接著你的 作業系統也支援的話,以winodws 為例,「我的電腦」中就會看到您新增的設備,如無線router、media server等等。

—-
家用router通常預設會開啟firewall(防火牆)及NAT, PC的作業系統也預設開啟firewall, 在此前提下, 若應用程式使用的網路port(連接埠)非極well-known(如http或聊天程式)的, 通常很容易遇到連線不順暢的狀況, 最近聽到的災情就是P2P應用程式(BT及eMule等)下載很慢.

為了因應大部份使用者不具備豐富網路知識的現況, 就誕生了uPnP這種漏洞讓應用程式去鑽(此專指自動建立port forwarding規則的部份), 讓使用者的挫折感可以有某種程度的降低. 仔細想想就會知道uPnP是矛盾的產物, firewall不就是要讓網路環境安全的嗎? 為什麼要開洞讓程式去灒呢?? 且區域網路端的任何PC都能亂鑽(不需權限就能建port forwarding規則, 或是直接刪掉別的PC建的規則).

雖說uPnP這部份的功能是為方便性而存在的, 但實際上市面的SOHO分享器產品的uPnP可能不穩定或效能不佳, PC一多就經不起考驗.

—-

您可以使用Wiki查詢一下UPnP的用途
UPnP可以被應用的用途挺廣泛的
這是一種自動化協定,重點是設備與設備(可能是軟體也可能是硬體)之間的溝通方式

像是MSN與Firewall過去有打網路電話聽不到聲音或是無法傳檔等問題
也可以透過UPnP協定來讓MSN與Firewall經過自動溝通後,做出正確的設定來解決

BT,EMule也可以透過UPnP協定與支援UPnP的分享器進行溝通
簡化使用者(你我他)安裝後的操作與設定程序

另外,在多媒體方面
XBOX 360與NAS設備之間若相互支援UPnP
則XBOX 360級可以透過UPnP找到NAS上的影片與照片
並且進一步的去播放與顯示

但是這樣的東西,有某種程度上的風險
因為使用者可能無法得知Firewall或是分享器究竟被開啟了哪些通訊埠

—-

沒錯,所以為了安全性考量,UPnP還是關閉比較好。

再個別針對軟體來開特定的port,會比較安全。

當然如果沒了資訊基礎的人,UPnP還是打開,避免設定上的麻煩。

請參考:http://www.mobile01.com/topicdetail.php?f=110&t=921577