Safari 啟用將開發人員選單(Web Inspector)的方式
資料來源: http://mactips.info/2010/07/use-safari-5s-web-inspector
function applyIf(object, config) { var property; if (object) { for (property in config) { if (object[property] === undefined) { object[property] = config[property]; } } } return object; } function PageLoad() { window.console = window.console || {}; applyIf(window.console, { log: function(message) { alert(message); } , info: function(message) { alert(message); } , error: function(message) { throw message; } }); console.log("log"); console.info("info"); console.error("error"); }
<html> <header> <script type="text/javascript"> function PageLoad() { var keys = ""; for(var key in console) { keys += key + "<br />"; } var divResult = document.getElementById("divResult");
divResult.innerHTML = keys;console.log("log");console.info("info");console.error("error");} </script> </header> <body onload="PageLoad();"> <div id="divResult"> </div> </body> </html>
#!/bin/bash # [功能] # 利用 smbutil lookup 尋找 server 的 ip # [使用方式] # echo hrispd-t | ./findip.sh function getIp(){ IP=$(smbutil lookup "$1" |grep -i "IP Address" |sed "s/IP.*: //") } while read LINE; do #讀取stdin getIp ${LINE} #取得IP if [ ${#IP} != 0 ]; then printf "%s\t%s" $IP ${LINE} fi done(2) hiWins.update.sh
#!/bin/bash
# [功能]
# 更新 /private/etc/hosts 中所有 server 的 ip,輸出並不會直接回寫 hosts 檔,單純 echo 出來
# [使用方式]
# ./hiWins.update.sh SERVERNAME
#讀取原始的 hosts 檔
exec < "/etc/hosts"
#標記是否有相同的ServerName,若無則一律新增
FOUND="N"
result=
while read LINE; do
#取第一個字
C1=$(echo ${LINE} | cut -c1-1)
if [ $C1 != "#" ]; then
#將空白或tab分隔的字串拆成陣列
declare -a Array=($LINE)
if [ "$1" == "${Array[1]}" ]; then
FOUND="Y"
out=$(echo "$1" | ./findip.sh)
if [ ${#out} != 0 ]; then
printf "%s\n" "$out"
else
printf "%s\n" "${LINE}"
fi
else
printf "%s\n" "${LINE}"
fi
else
printf "%s\n" "${LINE}"
fi
done
if [ $FOUND == "N" ]; then
out=$(echo "$1" | ./findip.sh)
if [ ${#out} != 0 ]; then
printf "%s\n" "$out"
fi
fi
(3) hiWins.add.sh
#!/bin/bash # [功能] # 更新 /private/etc/hosts 中所有 server 的 ip ,並加入指定的 server ip(若已存在則純更新) # [使用方式] # ./hiWins.add.sh SERVERNAME # [注意事項] # 需要 sudo 權限 if [ $# == 0 ]; then echo "Input Server Name please." else out=$(./hiWins.update.sh "$1") printf "%s\n" "$out" > out.hosts cp ./out.hosts /etc/hosts fi
(4) hiWins.import.sh
#!/bin/bash # [功能] # 依 YOUR_SERVERNAME_LIST 檔案中,定的 SERVERNAME 清單, # 逐筆呼叫 hiWins.add.sh 更新(或加入) /private/etc/hosts # [使用方式] # ./hiWins.imports.sh < YOUR_SERVERNAME_LIST # [注意事項] # 需要 sudo 權限 while read LINE; do #讀取stdin if [ ${#LINE} != 0 ]; then ./hiWins.add.sh ${LINE} fi done
using System;第二個類別,服務安裝程式會呼叫到的類別,負責將安裝服務
using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceProcess;using System.Diagnostics;using System.Timers;namespace MyWinService{class MyWinService : ServiceBase{const string SERVICE_NAME = @"MyWinService";System.Timers.Timer TheTimer = new System.Timers.Timer();public MyWinService(){InitializeComponent();}private void InitializeComponent(){this.ServiceName = SERVICE_NAME;this.CanStop = true;this.AutoLog = false;this.EventLog.Log = "Application";this.EventLog.Source = SERVICE_NAME;}protected override void OnStart(string[] args){//Todo: 從 config 取得 IntervalTheTimer.Interval = 30 * 1000;TheTimer.Elapsed += new ElapsedEventHandler(TheTimer_Elapsed);TheTimer.Start();this.EventLog.WriteEntry(SERVICE_NAME + " Service has started.");}protected override void OnStop(){TheTimer.Stop();this.EventLog.WriteEntry(SERVICE_NAME + " Service has stopped.");}protected void TheTimer_Elapsed(object sender, ElapsedEventArgs e){//Todo: your code here}}}
using System;Step 3.主程式
using System.ServiceProcess;using System.ComponentModel;using System.Configuration.Install;namespace MyWinService{[RunInstaller(true)]public class MyWinServiceInstaller : Installer{const string SERVICE_NAME = @"MyWinService";private ServiceProcessInstaller ServiceProcessInstaller1;private ServiceInstaller ServiceInstaller1;public MyWinServiceInstaller(){InitializeComponent();}private void InitializeComponent(){this.ServiceProcessInstaller1 = new ServiceProcessInstaller();this.ServiceProcessInstaller1.Account = ServiceAccount.LocalSystem; //服務啟動預設登入類型(安全性)this.ServiceProcessInstaller1.Username = null;this.ServiceProcessInstaller1.Password = null;this.ServiceInstaller1 = new ServiceInstaller();this.ServiceInstaller1.Description = "這裡寫服務的描述";this.ServiceInstaller1.DisplayName = SERVICE_NAME;this.ServiceInstaller1.ServiceName = SERVICE_NAME;this.ServiceInstaller1.StartType = ServiceStartMode.Automatic; //啟動模式(自動/手動/停用)this.Installers.AddRange(new Installer[] { this.ServiceProcessInstaller1, this.ServiceInstaller1 });this.Committed += new InstallEventHandler(MyWinServiceInstaller_Committed); //當安裝成功後,啟動服務}void MyWinServiceInstaller_Committed(object sender, InstallEventArgs e){// Auto Start the Service Once Installation is Finished.var controller = new ServiceController(SERVICE_NAME);controller.Start();}}}
using System;這樣就大功告成囉!
using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.Diagnostics;using System.ServiceProcess;using System.Runtime.InteropServices;namespace MyWinService{class Program{/// <summary>/// 主程式/// </summary>/// <param name="args"></param>[STAThread()]static void Main(string[] args){//沒有輸入參數的時候,當做起動服務的入口(若啟動服務也需要參數的話,這邊要改寫)if (args.Length == 0) {System.ServiceProcess.ServiceBase.Run(new MyWinService());} else {if (args[0].ToUpper() == "/INSTALL") {//安裝InstallService();} else if (args[0].ToUpper() == "/UNINSTALL") {//解除安裝UnInstallService();} else {Console.Write("輸入的參數不正確!");}}}static string INSTALL_EXE = Path.Combine(RuntimeEnvironment.GetRuntimeDirectory(), @"InstallUtil.exe");static void InstallService(){string currFileName = Process.GetCurrentProcess().MainModule.FileName;Process.Start(INSTALL_EXE, string.Format(@"""{0}""", currFileName));}static void UnInstallService(){string currFileName = Process.GetCurrentProcess().MainModule.FileName;Process.Start(INSTALL_EXE, string.Format(@"/u ""{0}""", currFileName));}}}
------------------------------------
/*
STEP 1
先準備 HIHI_TRAN 的資料
example:
CREATE TABLE HIHI_TRAN (
PER_SERIL_NO dbo.PER_SERIL_NO
,DEP_CODE_ACT VARCHAR(100)
,DEP_NAME_ACT NVARCHAR(100)
,EMP_ID VARCHAR(100)
,CNAME NVARCHAR(100)
,FINAL_HR FLOAT
)
GO
--/***************************** HIHI_TRAN ***********************************************/
delete from HIHI_TRAN
GO
raiserror('Now Insert HIHI_TRAN Datas .... ',1,1)
insert into HIHI_TRAN ([PER_SERIL_NO],[DEP_CODE_ACT],[DEP_NAME_ACT],[EMP_ID],[CNAME],[FINAL_HR]) Values (N'P3637',N'1100',N'公○○部門',N'3637',N'馮○○',25)
insert into HIHI_TRAN ([PER_SERIL_NO],[DEP_CODE_ACT],[DEP_NAME_ACT],[EMP_ID],[CNAME],[FINAL_HR]) Values (N'P4689',N'1100',N'公○○部門',N'4689',N'林○○',0)
*/
------------------------------------
------------------------------------ /* STEP 2 作完下面語法後,再執行 http://mrhihi-paul.blogspot.com/2011/03/gh.html 去更新補休時數 */ ------------------------------------ DECLARE @TEST CHAR(1); SET @TEST = 'N' /* 先把上次轉檔的資料清掉,準備重轉 */ IF @TEST<>'Y' DELETE LOL_OT WHERE APPLY_DATE = '2010/01/01' AND PER_SERIL_NO IN ( SELECT PER_SERIL_NO FROM HIHI_TRAN ) IF @TEST<>'Y' DELETE LOL_LEV WHERE APPLY_DATE ='2010/01/01' AND LEV_TYPE_COD = '00014' AND PER_SERIL_NO IN ( SELECT PER_SERIL_NO FROM HIHI_TRAN ) /* 到12月底所有人加班時數(含轉檔) */ DECLARE @OT TABLE ( PER_SERIL_NO dbo.PER_SERIL_NO ,OT_COMPEN_HR FLOAT ,OT_COMPEN_RHR FLOAT ) INSERT INTO @OT SELECT PER_SERIL_NO , SUM(OT_COMPEN_HR) , SUM(OT_COMPEN_RHR) FROM LOL_OT WHERE SDATE <='2011/01/01 06:00' AND EFORM_STATUS_COD IN ('W','P') GROUP BY PER_SERIL_NO /* 到12月底所有人補休請假時數(含轉檔) */ DECLARE @LEV TABLE ( PER_SERIL_NO dbo.PER_SERIL_NO ,LEV_HR FLOAT ,LEV_BORROW_HR FLOAT ) INSERT INTO @LEV SELECT PER_SERIL_NO , SUM(LEV_HR) , SUM(LEV_BORROW_HR) FROM LOL_LEV WHERE LEV_TYPE_COD = '00014' AND EFORM_STATUS_COD IN ('W','P') AND ASSIGN_DATE <= '2010/12/31' GROUP BY PER_SERIL_NO DECLARE @TMP_OT TABLE( PER_SERIL_NO dbo.PER_SERIL_NO ,DEP_SERIL_NO dbo.DEP_SERIL_NO ,OT_HR FLOAT ) INSERT INTO @TMP_OT SELECT A.PER_SERIL_NO , [DEP_SERIL_NO]=EMP.DEP_SERIL_NO_ACT , [OT_HR]=A.FINAL_HR -(ISNULL(B.OT_COMPEN_HR,0) - ISNULL(C.LEV_HR,0)) FROM HIHI_TRAN A JOIN EMP_EMPLOYEE EMP ON A.PER_SERIL_NO = EMP.PER_SERIL_NO LEFT JOIN @OT B ON A.PER_SERIL_NO = B.PER_SERIL_NO LEFT JOIN @LEV C ON A.PER_SERIL_NO = C.PER_SERIL_NO WHERE 1=1 --AND A.FINAL_HR >= 0 --AND (B.OT_COMPEN_HR - C.LEV_HR)>=0 AND (ISNULL(B.OT_COMPEN_HR,0) - ISNULL(C.LEV_HR,0))<= A.FINAL_HR IF @TEST<>'Y' INSERT INTO LOL_OT (FLOW_ID, FLOW_INST_ID, CMP_SERIL_NO, PER_SERIL_NO, OT_APPLY_NO, SEQ, DEP_SERIL_NO, SHIFT_CODE, OTAPPLY_KND_COD, APPLY_DATE, OT_TYPE_COD, SDATE, EDATE, OT_HR, SAGT_SERIL_NO, REASON, ORG_OT_COMPEN, EXTRA_OT_COMPEN, OT_COMPEN_HR, OT_COMPEN_DATE, OT_COMPEN_RHR, OT_FEE_HR, EFORM_STATUS_COD, IS_APPLY_EXP, CUT_FLG, CHK_FLG, KP_SDATE, KP_EDATE, KP_OT_HR, KP_ORG_OT_COMPEN, KP_OT_FEE_HR, ASSIGN_DATE, MOD_STATUS, CRE_DTE, CRE_USR, MOD_DTE, MOD_USR, MOD_REASON, RECHK_FLG, OT_CREDIT_YM) SELECT '','','GH100601',PER_SERIL_NO,'OT'+RTRIM(PER_SERIL_NO),1,DEP_SERIL_NO,'24','2','2010/01/01','1','2010/01/01','2010/10/31',OT_HR,'','',OT_HR,0.00,OT_HR,'2012/01/01',OT_HR,0.00,'P','N','Y','Y','2010/01/01','2010/10/31',OT_HR,OT_HR,0.00,'2010/01/01','',GETDATE(),'轉檔(20110106)',GETDATE(),'轉檔(20110106)','','N','' FROM @TMP_OT ------------------------------------------- DELETE @OT INSERT INTO @OT SELECT PER_SERIL_NO , SUM(OT_COMPEN_HR) , SUM(OT_COMPEN_RHR) FROM LOL_OT WHERE SDATE <='2011/01/01 06:00' AND EFORM_STATUS_COD IN ('W','P') GROUP BY PER_SERIL_NO DELETE @LEV INSERT INTO @LEV SELECT PER_SERIL_NO , SUM(LEV_HR) , SUM(LEV_BORROW_HR) FROM LOL_LEV WHERE LEV_TYPE_COD = '00014' AND EFORM_STATUS_COD IN ('W','P') AND ASSIGN_DATE <= '2010/12/31' GROUP BY PER_SERIL_NO ------------------------------------------- DECLARE @TMP_LEV TABLE ( PER_SERIL_NO dbo.PER_SERIL_NO ,LEV_HR FLOAT ) INSERT INTO @TMP_LEV SELECT A.PER_SERIL_NO , [LEV_HR]=ISNULL(B.OT_COMPEN_HR,0) - ISNULL(C.LEV_HR,0) - A.FINAL_HR FROM HIHI_TRAN A LEFT JOIN @OT B ON A.PER_SERIL_NO = B.PER_SERIL_NO LEFT JOIN @LEV C ON A.PER_SERIL_NO = C.PER_SERIL_NO WHERE A.FINAL_HR <> (ISNULL(B.OT_COMPEN_HR,0) - ISNULL(C.LEV_HR,0)) IF @TEST<>'Y' INSERT INTO LOL_LEV(CMP_SERIL_NO, LE_APPLY_NO, PER_SERIL_NO, SEQ, FLOW_ID, FLOW_INST_ID, LEVAPPLY_KND_COD, APPLY_DATE, DEP_SERIL_NO, SHIFT_CODE, LEV_TYPE_COD, SDATE, EDATE, LEV_MINUTE, LEV_HR, LEV_DAY, AGT_SERIL_NO, SAGT_SERIL_NO, REASON, EFORM_STATUS_COD, CUT_FLG, OTHER_OPTION1_NAME, OTHER_OPTION2_NAME, OTHER_OPTION3_NAME, IS_APPLY_TRAVEL, OCCUR_DATE, ASSIGN_DATE, MOD_STATUS, CRE_DTE, CRE_USR, MOD_DTE, MOD_USR, MOD_REASON, L_LE_APPLY_NO, LEV_BORROW_HR) SELECT 'GH100601','LE'+RTRIM(A.PER_SERIL_NO),A.PER_SERIL_NO,1,'','0','2','2010/01/01',B.DEP_SERIL_NO_ACT,'24','00014','2010/01/01','2010/10/31 23:59:00',LEV_HR*60,LEV_HR,LEV_HR/8,'','','','P','Y','','','','N',NULL,'2010/01/01','',GETDATE(),'轉檔(20110116)',GETDATE(),'轉檔(20110116)','',NULL,0.00 FROM @TMP_LEV A JOIN EMP_EMPLOYEE B ON A.PER_SERIL_NO = B.PER_SERIL_NO