從2010年用Evernote到現在,兩年多的時間,這期間也會比較別家的產品,閱讀心得或是上課重點是與 Google 文件比較,網摘(攫取網頁)有Read it later, Instalpaper,怎麼比我都認為 Evernote 好用又方便而勝出。
只是最近在 Android 手機上面有個問題困擾我:當我在看書或是看展覽的時候要建立一則筆記,需要拍攝很多張相片,用 Evernote 筆記拍照片功能,每拍一張要等約二三十秒,拍10張就浪費好幾分鐘了,昨天看到 Google Keep 新聞後就下載到手機,4秒,拍一張4秒,繼續拍下一張,不虧是 Android 就 Google 自家產品,掌控得如此有效率。
不過目前看到 Google Keep 強的地方就只在這裡,To be, or not to be? This is a question. 再觀察吧!
網站技術心得紀錄
資訊技術使用後的重點心得紀錄
2013年3月23日 星期六
2012年9月26日 星期三
VBScript get user full groups in Windows Server and map drive
This is I setup Logon Script in Microsoft Windows 2000 Server, and need to setup something by different group. Frist time I use GetObject("LDAP://" & objADSystemInfo.UserName) to enumerate, but Primary Group not appear, so I find other way in http://www.vbforums.com that use "open database". Now it work fine to me.
Option Explicit
Dim DrvID, strGroup, strGroups(10), GroupName, OSVer, SystemDir, PosStart, PosEnd, strUserName, strComputerName
Dim objADSystemInfo, objUser, SystemSet, System, fso, objShell, objExecObject
Dim f, Flag, MyDate, MyTime
Dim intPrimaryGroupID, objConnection, objCommand, objRecordSet
'On Error resume next
'Wscript.Echo "Login.vbs Start"
Set objADSystemInfo = CreateObject("ADSystemInfo")
strUserName = TrimCN(objADSystemInfo.UserName)
strComputerName = TrimCN(objADSystemInfo.ComputerName)
MyDate = Date
MyTime = Time
Set fso = CreateObject("Scripting.FileSystemObject")
LogTxt MyDate & " " & MyTime & " " & strUserName & "@ " & strComputerName & ": "
Set objUser = GetObject("LDAP://" & objADSystemInfo.UserName)
intPrimaryGroupID = objUser.Get("primaryGroupID")
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText = "
Set objRecordSet = objCommand.Execute
Do Until objRecordset.EOF
If objRecordset.Fields("primaryGroupToken") = intPrimaryGroupID Then
strGroups(0) = TrimCN(objRecordset.Fields("distinguishedName"))
'WScript.Echo "Primary group:" & objRecordset.Fields("distinguishedName")
End If
objRecordset.MoveNext
Loop
objConnection.Close
DrvID=1
For each strGroup in objUser.Groups '
strGroups(DrvID) = Mid(strGroup.Name, 4)
DrvID = DrvID + 1
Next
DrvID=77 'Map Drive from M Drive
Flag = False
For each strGroup in strGroups 'depends on which group to map drive
If strGroup="" Then Exit For
LogTxt strGroup & ", "
If UCase(GroupName) = "HR" then DrvID = NetMap(DrvID, "\\Nas_SA\HR")
If UCase(GroupName) = "MEPD" then
DrvID = NetMap(DrvID, "\\NAS_SA\MEPD_S")
DrvID = NetMap(DrvID, "\\NAS_SA\MEPD")
Flag = True
End If
If UCase(GroupName) = "DESK" then
DrvID = NetMap(DrvID, "\\Nas_SA\Desk")
DrvID = NetMap(DrvID, "\\NAS_SA\SchoolPlanning")
End If
If UCase(GroupName) = "BB" then DrvID = NetMap(DrvID, "\\NAS_SA\BB")
If UCase(GroupName) = "SB" then DrvID = NetMap(DrvID, "\\NAS_SA\SB")
If UCase(GroupName) = "PRINTDEPT" then DrvID = NetMap(DrvID, "\\NAS_SA\PrintDept")
If UCase(GroupName) = "MARKETING" then DrvID = NetMap(DrvID, "\\NAS_SA\Marketing")
If UCase(GroupName) = "CEDIT" then DrvID = NetMap(DrvID, "\\NAS_SA\CEdit")
If UCase(GroupName) = "Typeset" then DrvID = NetMap(DrvID, "\\NAS_SA\Typeset")
If UCase(GroupName) = "Typeset" then DrvID = NetMap(DrvID, "\\MACFILESERV\8F_art")
If UCase(GroupName) = "Typeset" then DrvID = NetMap(DrvID, "\\MACFILESERV\Mac2Pc")
Next
LogTxt vbCrLf
'Wscript.Echo "2" 'test
Set objShell = WScript.CreateObject("WScript.Shell")
If FindIP10() Then 'brand company
objShell.Run "ROUTE ADD 192.168.1.0 MASK 255.255.255.0 10.0.1.250", 0
objShell.Run "ROUTE ADD 210.59.236.224 MASK 255.255.255.248 10.0.1.250", 0
objShell.Run "ROUTE ADD 60.254.165.16 MASK 255.255.255.252 10.0.1.250", 0
objShell.Run "ROUTE ADD 0.0.0.0 MASK 0.0.0.0 10.0.1.254", 0
Else 'other
objShell.Run "ROUTE ADD 10.0.0.0 MASK 255.0.0.0 192.168.1.253", 0
objShell.Run "ROUTE ADD 210.59.236.224 MASK 255.255.255.248 192.168.1.253", 0
objShell.Run "ROUTE ADD 60.254.165.16 MASK 255.255.255.252 192.168.1.253", 0
objShell.Run "ROUTE ADD 61.63.52.192 MASK 255.255.255.224 192.168.1.253", 0
objShell.Run "ROUTE ADD 0.0.0.0 MASK 0.0.0.0 192.168.1.254", 0
End If
'Wscript.Echo "3"
If DrvID = 77 Then WScript.Quit()
Dim objWMIService, colProcesses, objProcess, objDir
Set objWMIService = GetObject("winmgmts:")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process where name='Client.exe'")
Do While colProcesses.Count
For Each objProcess In colProcesses
objProcess.Terminate (0)
Next
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process where name='Client.exe'")
Loop
'Clean client's program... hunting high and low....
On Error Resume Next
Set objDir = FSO.GetFolder("C:\")
getInfo(objDir)
Set objDir = FSO.GetFolder("D:\")
getInfo(objDir)
Set objDir = FSO.GetFolder("E:\")
getInfo(objDir)
If Flag = True Then objShell.Exec("autorun.exe") 'Some group need run other program
WScript.Quit()
Sub getInfo(pCurrentDir)
Dim aItem
On Error Resume Next
For Each aItem In pCurrentDir.Files
' If Err.Number>0 Then WScript.Echo "pCurrentDir:" & pCurrentDir.Path & vbCrLf & Err.Description
If LCase(aItem.Name) = "client.exe" Then
Err.Clear
aItem.Delete
' If Err.Number>0 Then WScript.Echo aItem.Path & vbCrLf & Err.Description
End If
Next
For Each aItem In pCurrentDir.SubFolders
getInfo(aItem)
Next
End Sub
Function NetMap(DrvID, strDistination ) 'Map Drive
Dim objNetwork, fso, DrvName
On Error resume next
DrvName = Chr(DrvID) + ":"
Set objNetwork = CreateObject("WScript.Network")
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FolderExists(DrvName)) Then
objNetwork.RemoveNetworkDrive DrvName
objNetwork.MapNetworkDrive DrvName, strDistination
Else
objNetwork.MapNetworkDrive DrvName, strDistination
End If
NetMap = DrvID + 1 'If much drive need map
On Error GoTo 0
End Function
Function FindIP10() 'different sub net
Dim objWMIService, IPConfigSet, IPConfig, i
FindIP10=False
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set IPConfigSet = objWMIService.ExecQuery("Select IPAddress from Win32_NetworkAdapterConfiguration ")
For Each IPConfig in IPConfigSet
If Not IsNull(IPConfig.IPAddress) Then
For i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress)
If Left(IPConfig.IPAddress(i),6) = "10.0.1" Then FindIP10=True
Next
End If
Next
End Function
Sub LogTxt(LT)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set f = fso.OpenTextFile("\\Server1\pub$\VBSLog.txt", ForAppending, True)
f.Write LT
f.Close
End Sub
Function TrimCN(strCN)
PosStart = InStr(strCN, "=")+1
PosEnd = InStr(PosStart, strCN, ",")
TrimCN = Mid(strCN, PosStart, PosEnd - PosStart)
End Function
2010年8月18日 星期三
[分享] 讓iBook也有繁體中文字典
[分享] 讓iBook也有繁體中文字典: "MAC內建字典跟iPad的字典檔的格式是相同的, 只要把MAC上的字典檔送上iPad就行了!
1.先去抓字典檔吧!
http://www.versiontracker.com/dyn/moreinfo/macosx/33845
2.解開壓縮後, 應該會有4個檔案(或是4個目錄):我是用[Langdao Englih-Chinese Dictionary.dictionary]這個檔案
3.如果你用Mac, 也可以放在MAC上使用
4.用Cyberduck或是wincp連上iPad吧!
5.進到/Library/Dictionaries的目錄
6.先將New Oxford American Dictionary.dictionary備份起來(我是直接下載備份的
7.上傳Langdao Englih-Chinese Dictionary.dictionary並將目錄名稱改為New Oxford American Dictionary.dictionary
8.將iPad respring或是重啓iPad
9.打完收工!
- 已使用 Google 工具列寄出"
1.先去抓字典檔吧!
http://www.versiontracker.com/dyn/moreinfo/macosx/33845
2.解開壓縮後, 應該會有4個檔案(或是4個目錄):我是用[Langdao Englih-Chinese Dictionary.dictionary]這個檔案
3.如果你用Mac, 也可以放在MAC上使用
4.用Cyberduck或是wincp連上iPad吧!
5.進到/Library/Dictionaries的目錄
6.先將New Oxford American Dictionary.dictionary備份起來(我是直接下載備份的
7.上傳Langdao Englih-Chinese Dictionary.dictionary並將目錄名稱改為New Oxford American Dictionary.dictionary
8.將iPad respring或是重啓iPad
9.打完收工!
- 已使用 Google 工具列寄出"
2008年10月4日 星期六
DreamWeaver 設計網頁連接 MySQL,出現 #2013 - Lost connection to MySQL server at 'reading initial communication packet', system error: 111
使用 Dreamweaver CS3, MySQL 5.0.45 on UBUNTU Server
按照書上說 Dreamweaver 設定好網站然後到資料庫新增 MySQL 連線,打上 Server IP, 帳號密碼,就可以選 MySQL 裡面的資料庫了。
偏偏我就出現了 #2013 - Lost connection to MySQL server at 'reading initial communication packet', system error: 111
經過研究許久原來是設定問題:
nano /etc/mysql/my.cnf
有人說 [mysqld] 下方增加 skip-name-resolve
有人說 max_allowed_packet = 32M
不過我最後是改了 bind-address 把 127.0.0.1 改成聯外界面卡的 IP 就通了。
後記附註 :
安裝 phpmyadmin 要先改 config.sample.inc.php 改其中一行
$cfg['Servers'][$i]['auth_type'] = 'cookie';
改成
$cfg['Servers'][$i]['auth_type'] = 'http';
較為安全
存成 config.inc.php
按照書上說 Dreamweaver 設定好網站然後到資料庫新增 MySQL 連線,打上 Server IP, 帳號密碼,就可以選 MySQL 裡面的資料庫了。
偏偏我就出現了 #2013 - Lost connection to MySQL server at 'reading initial communication packet', system error: 111
經過研究許久原來是設定問題:
nano /etc/mysql/my.cnf
有人說 [mysqld] 下方增加 skip-name-resolve
有人說 max_allowed_packet = 32M
不過我最後是改了 bind-address 把 127.0.0.1 改成聯外界面卡的 IP 就通了。
後記附註 :
安裝 phpmyadmin 要先改 config.sample.inc.php 改其中一行
$cfg['Servers'][$i]['auth_type'] = 'cookie';
改成
$cfg['Servers'][$i]['auth_type'] = 'http';
較為安全
存成 config.inc.php
2008年7月15日 星期二
MAC 電腦要用便宜 3G 上網
MAC 電腦要用 3G 上網 survey了半天的結果:
(目前條件是已經有 3g 門號, 也申請上網功能, 在不綁約的情形)
純3G(or 3.5G) 網卡上網
華為 E220 在 MAC 相容性高, 在拍賣網找到的價格也比較便宜:2990 .
華碩 T500 目前不相容 MAC, 但據說傳輸率較高, 找到 3100 的.
網拍搜尋 'E220 免 -兌' or 't500 免 -兌'
手機上網
SonyEricsson G502 有 HSDPA 7.2Mbps 速率, 網拍看到全新品 5900.
只是在 MAC 上要自己找 driver.
真是難抉擇阿!
(目前條件是已經有 3g 門號, 也申請上網功能, 在不綁約的情形)
純3G(or 3.5G) 網卡上網
華為 E220 在 MAC 相容性高, 在拍賣網找到的價格也比較便宜:2990 .
華碩 T500 目前不相容 MAC, 但據說傳輸率較高, 找到 3100 的.
網拍搜尋 'E220 免 -兌' or 't500 免 -兌'
手機上網
SonyEricsson G502 有 HSDPA 7.2Mbps 速率, 網拍看到全新品 5900.
只是在 MAC 上要自己找 driver.
真是難抉擇阿!
2008年6月5日 星期四
SVN Server 加上使用者認證
在安裝完 SVN Server 後如果沒有設立認證, 任何人只要知道網址, 就可以 check out 所有檔案了, 所以要加上認證功能.
先建立密碼檔:
sudo htpasswd -c /etc/subversion/passwd user-name
-c 代表新建立密碼檔,(-m 可以用 md5 加密, 多一層保障) 建立一個叫做 user-name 的使用者, 並會要求輸入密碼兩次.
想要確認是否建立, 可以輸入 cat /etc/subversion/passwd 查詢
建立後再進入 Apache 設定檔修改
sudo nano /etc/apache2/sites-available/default
將 location 段落修改如下
<Location /svn>
DAV svn
SVNPath /home/svn
AuthType Basic
AuthName DAV
AuthUserFile /etc/subversion/passwd
Require valid-user
</Location>
再重新啟動 Apache 即可
/etc/init.d/apache2 restart
先建立密碼檔:
sudo htpasswd -c /etc/subversion/passwd user-name
-c 代表新建立密碼檔,(-m 可以用 md5 加密, 多一層保障) 建立一個叫做 user-name 的使用者, 並會要求輸入密碼兩次.
想要確認是否建立, 可以輸入 cat /etc/subversion/passwd 查詢
建立後再進入 Apache 設定檔修改
sudo nano /etc/apache2/sites-available/default
將 location 段落修改如下
<Location /svn>
DAV svn
SVNPath /home/svn
AuthType Basic
AuthName DAV
AuthUserFile /etc/subversion/passwd
Require valid-user
</Location>
再重新啟動 Apache 即可
/etc/init.d/apache2 restart
2008年6月2日 星期一
Ubuntu 7.04 Server Apache 2 安裝 ssl
在安裝完 Ubuntu Server 版後, 預設已經裝了 Apache, 但沒有 ssl 功能.
我在安裝完 webmin 後, 多了 ssl 功能, 卻在安裝 ssl 網頁時發生衝突.
後來參考了國外的網頁安裝說明, 重新裝一次, 指令順序如下(預設已經安裝完 webmin 的環境):
sudo a2enmod ssl
加入監聽port
sudo nano /etc/apache2/ports.conf
加一行
Listen 443
加入虛擬伺服器
我在安裝完 webmin 後, 多了 ssl 功能, 卻在安裝 ssl 網頁時發生衝突.
後來參考了國外的網頁安裝說明, 重新裝一次, 指令順序如下(預設已經安裝完 webmin 的環境):
先建立憑證檔案
sudo mkdir /etc/apache2/ssl
sudo openssl req -new -x509 -nodes -out /etc/apache2/ssl/apache.crt -keyout /etc/apache2/ssl/apache.key
啟動 Apache 的 ssl 模組sudo a2enmod ssl
加入監聽port
sudo nano /etc/apache2/ports.conf
加一行
Listen 443
加入虛擬伺服器
sudo nano /etc/apache2/sites-available/default這裡面自己產生的憑證檔案, 大多是自己用, 如果要公機關認可的憑證, 參考原網站有許多的地方提供.
原來的
NameVirtualHost *
改成
NameVirtualHost *:80
最下面新增
NameVirtualHost *:443<virtualhost *:443> # 預設網頁根目錄 /var/www/https/ 可按照需求更改, 相關權限再另外參考 Apache 設定
DocumentRoot /var/www/https/
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</virtualhost>
訂閱:
文章 (Atom)