In Git BASH
gitk -- path/to/file &
Or right click on file
Then click "Git History"
BTW...
Not only file, files in folders also do.
2011/12/29
2011/12/26
net snmp 尋找 mib tree
先看 net snmp
把mib檔設定一下 然後載入mib檔
找名字含有ssl的snmp oid
snmptranslate -TB '.*ssl.*'
從 http://www.net-snmp.org/wiki/index.php/TUT:snmptranslate 看來的...
把mib檔設定一下 然後載入mib檔
找名字含有ssl的snmp oid
snmptranslate -TB '.*ssl.*'
從 http://www.net-snmp.org/wiki/index.php/TUT:snmptranslate 看來的...
2011/12/13
html encode/decode using javascript
- String.prototype.encodeHTML = function() { var d=document.createElement("div");(d.textContent)?(d.textContent=this):d.innerText=this;return d.innerHTML };
- String.prototype.decodeHTML = function() { var d=document.createElement("div");d.innerHTML=this;return d.innerText||d.textContent };
2011/11/23
net snmp
net-snmp download
安裝至預設路徑C:\netsnmp
設定 C:\netsnmp\usr\etc\snmp\snmp.conf
document -> C:\netsnmp\usr\docs\Net-SNMP.chm
#放mib的地方
mibdirs C:/netsnmp/usr/share/snmp/mibs-XXXX
persistentDir C:/netsnmp/usr/snmp/persist
tempFilePattern C:/netsnmp/usr/temp/snmpdXXXXXX
#載入所有的mib
mibs all
#預設版本 snmpv2c
defVersion 2c
#預設Community
defCommunity private
然後就可以用cmd來下指令了...
P.S.
記得要加環境變數 ;C:\netsnmp\usr\bin 在PATH後面...
snmp走走...
snmpwalk 192.168.1.1 system
從頭走到尾...
snmpwalk 192.168.1.1 .1
snmp翻譯成樹狀...
snmptranslate -IR -Tp system
安裝至預設路徑C:\netsnmp
設定 C:\netsnmp\usr\etc\snmp\snmp.conf
document -> C:\netsnmp\usr\docs\Net-SNMP.chm
#放mib的地方
mibdirs C:/netsnmp/usr/share/snmp/mibs-XXXX
persistentDir C:/netsnmp/usr/snmp/persist
tempFilePattern C:/netsnmp/usr/temp/snmpdXXXXXX
#載入所有的mib
mibs all
#預設版本 snmpv2c
defVersion 2c
#預設Community
defCommunity private
然後就可以用cmd來下指令了...
P.S.
記得要加環境變數 ;C:\netsnmp\usr\bin 在PATH後面...
snmp走走...
snmpwalk 192.168.1.1 system
從頭走到尾...
snmpwalk 192.168.1.1 .1
snmp翻譯成樹狀...
snmptranslate -IR -Tp system
2011/08/23
Git get diff file list and diff content from some branch
- BRANCH_NAME='dev'
- SOURCE_DIR='/home/me/src'
- EXPORT_TO='/home/me/out'
- cd $SOURCE_DIR
- git diff --name-only $BRANCH_NAME > $EXPORT_TO/changes.txt
- git diff $BRANCH_NAME > $EXPORT_TO/changes.diff
2011/08/12
Unix like shell - find_keywords
- #!/bin/sh
- if [ "xx$2" != "xx" ] && [ -e $2 ]; then
- echo finding $1 in $2
- if [ "xx$WINDIR" != "xx" ]; then
- grep -lr $1 $2 | sed 's~/~\\~g' | sed 's~^\\\(\w\)\\~\U\1:\\~g'
- else
- grep -lr $1 $2
- fi
- else
- echo first param must be search string
- echo second param must be full path
- fi
2011/08/10
CodeBlocks 中文化
下載mo檔:
codeblocks translation page
www.badongo.com - Click Here to Download codeblocks zh_TW
www.u-file.net - Click Here to Download codeblocks zh_TW
然後建一個目錄 C:\Program Files\CodeBlocks\share\CodeBlocks\locale\zh_TW
其中 C:\Program Files\CodeBlocks 是安裝路徑
然後把mo檔放到裏面去
Settings -> Environment -> View -> Internationalization
勾起來 -> 選 Chinese
然後重開CodeBlocks
搞定...
BTW...中文化以後, syntex highlight好像消失了...
所以還是把勾勾拿掉好了....sigh.....
codeblocks translation page
www.badongo.com - Click Here to Download codeblocks zh_TW
www.u-file.net - Click Here to Download codeblocks zh_TW
然後建一個目錄 C:\Program Files\CodeBlocks\share\CodeBlocks\locale\zh_TW
其中 C:\Program Files\CodeBlocks 是安裝路徑
然後把mo檔放到裏面去
Settings -> Environment -> View -> Internationalization
勾起來 -> 選 Chinese
然後重開CodeBlocks
搞定...
BTW...中文化以後, syntex highlight好像消失了...
所以還是把勾勾拿掉好了....sigh.....
2011/07/15
Compare a Copy of a Project
Usage:
compare-projects /home/me/project/ /home/me/old/project/ | grep -v OK > /home/me/compare_result 2>&1
Source: compare-projects
- #!/usr/bin/sh
- #
- # settings
- #
- md5=~/bin/md5files
- #
- # inputs
- # src: main project
- # dst: another project
- #
- src=$1
- dst=$2
- #
- # limit file size smaller than 1024k (pass to find)
- # md5 all files, and then replace the path to destination
- # finally compare the md5 "use md5sum -c"
- #
- $md5 $src -size -1024k | sed "s!${src}!${dst}!g" | md5sum -c 2>&1
Get All Files Recursively and Get MD5
- #!/usr/bin/sh
- #
- # find all files recursively, and enum them to get md5sum
- # args: pass all to find
- #
- for f in $(find $@ -type f);
- do
- md5sum $f
- done
2011/04/09
使用javascript產生guid
參考來源: http://note19.com/2007/05/27/javascript-guid-generator/
javascript
- function guid() {
- function S4() {
- return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
- }
- return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
- }
html javascript 小時鐘 digit clock
就像這樣:
html javascript
- <span id="__current_datetime__">
- <script type="text/javascript">
- (function () {
- var target = "__current_datetime__";
- var padLeft = function(str) {
- str = "00" + str;
- return str.substring(str.length-2)
- };
- var getCurrentDateTime = function() {
- var d = new Date();
- return d.getFullYear() + "年"
- + padLeft(d.getMonth()+1) + "月"
- + padLeft(d.getDate()) + "日 "
- + padLeft(d.getHours()) + ":"
- + padLeft(d.getMinutes()) + ":"
- + padLeft(d.getSeconds());
- };
- var updateCurrentDateTime = function(id) {
- document.getElementById(id).innerHTML = getCurrentDateTime();
- };
- updateCurrentDateTime(target);
- setInterval(function() {
- updateCurrentDateTime(target);
- }, 99);
- }) ()
VB.net 動態變更使用者 switch user dynamically
文章參考: 如何在 ASP.NET 應用程式中實作模擬
VB.net
- Public Class Personate
- Private Shared LOGON32_LOGON_INTERACTIVE As Integer = 2
- Private Shared LOGON32_PROVIDER_DEFAULT As Integer = 0
- Private Shared ImpersonationContext As WindowsImpersonationContext
- Declare Function LogonUserA Lib "advapi32.dll" (ByVal lpszUsername As String, _
- ByVal lpszDomain As String, _
- ByVal lpszPassword As String, _
- ByVal dwLogonType As Integer, _
- ByVal dwLogonProvider As Integer, _
- ByRef phToken As IntPtr) As Integer
- Declare Auto Function DuplicateToken Lib "advapi32.dll" ( _
- ByVal ExistingTokenHandle As IntPtr, _
- ByVal ImpersonationLevel As Integer, _
- ByRef DuplicateTokenHandle As IntPtr) As Integer
- Declare Auto Function RevertToSelf Lib "advapi32.dll" () As Long
- Declare Auto Function CloseHandle Lib "kernel32.dll" (ByVal handle As IntPtr) As Long
- Public Shared Function ImpersonateValidUser(ByVal userName As String, ByVal domain As String, ByVal password As String) As Boolean
- Dim tempWindowsIdentity As WindowsIdentity
- Dim token As IntPtr = IntPtr.Zero
- Dim tokenDuplicate As IntPtr = IntPtr.Zero
- ImpersonateValidUser = False
- If RevertToSelf() Then
- If LogonUserA(userName, domain, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, token) <> 0 Then
- If DuplicateToken(token, 2, tokenDuplicate) <> 0 Then
- tempWindowsIdentity = New WindowsIdentity(tokenDuplicate)
- ImpersonationContext = tempWindowsIdentity.Impersonate()
- If Not ImpersonationContext Is Nothing Then
- ImpersonateValidUser = True
- End If
- End If
- End If
- End If
- If Not tokenDuplicate.Equals(IntPtr.Zero) Then
- CloseHandle(tokenDuplicate)
- End If
- If Not token.Equals(IntPtr.Zero) Then
- CloseHandle(token)
- End If
- End Function
- Public Shared Sub UndoImpersonation()
- ImpersonationContext.Undo()
- End Sub
- End Class
VB.net Convert to JSON
VB.net
- Public Class JSONConvert
- Public Shared Function DataTable2NameValueCollection(ByVal dt As DataTable) As NameValueCollection
- Dim columnlist As New List(Of String)()
- For Each column As DataColumn In dt.Columns
- columnlist.Add(column.ColumnName)
- Next
- Dim rowlist As New List(Of String)()
- For Each row As DataRow In dt.Rows
- Dim itemlist As New List(Of String)()
- For Each column As DataColumn In dt.Columns
- If column.DataType.Equals(GetType(Int32)) Or column.DataType.Equals(GetType(Double)) Then
- itemlist.Add(row(column.ColumnName))
- Else
- itemlist.Add(String.Format("""{0}""", row(column.ColumnName)))
- End If
- Next
- rowlist.Add(String.Format("[{0}]", String.Join(", ", itemlist.ToArray())))
- Next
- Dim nv As New NameValueCollection()
- nv.Add("columns", Array2JSONArray(columnlist.ToArray()))
- nv.Add("rows", Array2JSONArray(rowlist.ToArray()))
- Return nv
- End Function
- Public Shared Function DataTable2JSONObject(ByVal dt As DataTable) As String
- Dim nv As NameValueCollection = DataTable2NameValueCollection(dt)
- Return NameValueCollection2JSONObjectArray(nv)
- End Function
- Public Shared Function NameValueCollection2JSONObjectArray(ByVal nv As System.Collections.Specialized.NameValueCollection) As String
- Dim list As New List(Of String)()
- For Each name As String In nv.AllKeys
- If Regex.IsMatch(nv(name), "^(.*(\[|\]|{|})+.*|\d+)$") Then
- list.Add(String.Format("""{0}"": {1}", name, nv(name)))
- Else
- list.Add(String.Format("""{0}"": ""{1}""", name, nv(name)))
- End If
- Next
- Return String.Format("{{{0}}}", String.Join(", ", list.ToArray()))
- End Function
- Public Shared Function Array2JSONArray(ByVal arr As Array) As String
- If Regex.IsMatch(String.Join(", ", CType(arr, String())), "^(.*(\[|\]|{|})+.*|\d+)$") Then
- Return ObjectArray2JSONArray(arr)
- Else
- Return StringArray2JSONArray(arr)
- End If
- End Function
- Public Shared Function StringArray2JSONArray(ByVal arr() As String) As String
- If arr.Length = 0 Then
- Return ("[]")
- Else
- Return String.Format("[""{0}""]", String.Join(""", """, arr))
- End If
- End Function
- Public Shared Function ObjectArray2JSONArray(ByVal arr As Array) As String
- Return String.Format("[{0}]", String.Join(", ", CType(arr, String())))
- End Function
- End Class
訂閱:
意見 (Atom)
