寄不出去的信

再次感受到底層公務員的恐懼換成服膺文字。 傳達獨立思考,自由美好的文字變成僵固。
 
對我而言,內在價值高於其他。我的價值是盡己之力做好,既忠於我的團隊,也忠於這份工作,這個專案。
 
這幾十年來追求自我卓越,本質是放下利害,單純學習知識與技術。對個人而言比較容易。但面對公司團隊,必須計較生存。學習折衝制約,從與人無涉的智轉成以人為本的仁。

若我們追求成長,將永遠處在一個未準備好的狀況,domain 不熟,技術變更,對方人事的利害關係,或許,重點是轉為自己面對痛苦的心態。換句話說,我們追求的是處理痛苦。有很多技巧要學習,但本質是自我的價值觀。

外在的談判過程我視為技巧學習,何時表現憤怒都是技巧。但我深層在乎的是對人的關懷。遠近親疏有程度,但本質的關懷要小心維護。計較轉憎恨,是漸進地僵固,看到計較的老人總讓我悲哀,鎖在心牢是無法釋放的。

我相信上帝丟骰子,也信服老莊。我不相信現世的價值觀會讓自己心靈自由。人的一生沒有目的,隨機的境遇由心解釋。我想去我換得自由。

Skype 2016 for Business 的 Error — 作業系統目前未設定或執行此應用程式

image

https://chentiangemalc.wordpress.com/2015/07/10/case-of-the-skype-for-business-2015-operating-system-is-not-presently-configured-to-run-this-application/

無題

記不得多少日子過去了,今天得以在家洗碗,洗衣服。緩緩地做家事,一併清洗心中的無奈。

自認是個可以做架構的人,卻在"庸碌的急"中,胡亂地湊數,我心期盼重構卻不可得,一開始的架構是雛形,需要實證、檢討再實證。每個專案都有其特殊,不可能直接套用。但一旦掛上上百個物件,散出去要周邊的人做,就收不回來了。早期不小心修剪,它將蕪蔓龐雜。

無語地看著自己做得又髒又亂,踩著 BI 系統的大忌往前,將有工程師們浪擲光陰在巨量的錯誤中,滿眼蹣跚、破碎、龐雜與脆弱。

從業以來,看到值得珍惜的千里馬被損耗,總難過不已,總想有個環境讓其馳騁。膨脹斗膽接下集英,但卻看著自己珍視的千里馬被人當作駑鈍,雖困頓可砥礪其心志,但青春與熱情有限。唯其技、志並進,才不會隨時間而庸碌喪志。

千里馬常有而伯樂不常有?對難得的人才,沒資源的自己能怎麼做?無人可問,可得幫助。年輕的英才,無盡美好的未來,我多盼看到卓然成家,自信光彩。

客戶甘於趕進度,忽視基本架構,訕笑我對人的願與盼。近 30 年的從業經驗,我已接受這是常態。這就是世態,大事小者不仁,小事大者唯詐。我本無求,但若失己立立人之樂,此生樂趣幾希。

SSIS 專案部署時的版本說明

若要為每一次部屬的版本加上說明:

image

一是為專案加說明

image

另一是直接修改系統資料表 internal.object_versions

image

要注意的是改完之後,一直開啟的 SSMS 若要看到這些文字,需要先退版一次,就看得到

image

串接授權與拒絕

簡單範例:

use tempdb
create table t(c1 int)
create user u without login
create user u2 without login
grant select on t to u with grant option
exec(‘grant select on t to u2 as u’) as user=’u’
exec(‘select * from t’) as user=’u2′
deny select on t to u cascade
/*
Msg 229, Level 14, State 5, Line 18
結構描述 ‘dbo’,資料庫 ‘tempdb’,物件 ‘t’ 沒有 SELECT 權限。
*/
exec(‘select * from t’) as user=’u2′

drop table t
drop user u
drop user u2

透過 SSMS 可以看到授予者

image

不到一個星期,IT 團隊能提供什麼保證

收到我個人任職顧問的公司同仁夜裡發的訊息:"服務使用商將有活動,要我們保證系統品質"。但什麼是品質,又如何保證?

要保證品質,需要及早準備,不同的品質定義,準備的成本不同,這包含購置軟/硬體與人力,且需要訂合約時載明,如何量化目標與罰則,否則只是口語而已。

而我們提供的服務部分委外,委外商擁有 Domain know how,但對技術掌控能力有限,維護系統品質的意願也不高,這個從客戶端的品質規範要合約化地貫徹到委外商,更需要多方折衝。

然而,整體品質上的驗證有一定的困難度,因為這是多個服務商上中下游地整合服務,就當下的情境,有四個主要系統團隊各屬不同公司完成一個及時商業流程,還不包括數個 IDC 機房的 IT 團隊以及非即時的線下服務團隊,涵蓋 7 個以上的大小公司。

我們最常做的壓力測試在當下只能分段進行,但因為分段,很難有高的涵蓋率,且要偕同 IDC 的朋友一起完成,自主性受限。而我們僅能了解在自己這一段的壓力,模擬來源端並隔絕對目的下游服務商的呼叫,未能從最上游的來源需求一次壓到最下游的服務供應者。只有靠日常監控分析。

在整個流程的監控也有問題,我們很難跨越到對方去監控,基本上也不可能。因為一但幫別人監控,那責任就落到自己身上,跨團隊、部門都有障礙,何況跨公司。但監控與應變能力就在供應鏈內受損,尤其服務供應商力有未逮時,重傷整個供應鏈。換句話說,即時線上服務對供應鏈的挑戰更甚以往。

 

 

現今,不到一個星期,除了增加設備,排人力到時全天監控多個效能瓶頸點外,能做的不多。然而,突然的活動之特性我們不清楚,尖離峰時間不明,要 7*24 緊繃待命並非當下團隊的人力規劃。其實,很難談未量化與質化的口頭保證…

透過 PowerShell 讀 MSMQ,以及在資料庫內,跨資料表與欄位找尋是否包含某個字串

朋友的需求:

$q= new-object System.Messaging.MessageQueue ‘機器名稱\private$\erptowf’
$msg=$q.Peek()

$s=new-object System.IO.StreamReader $msg.BodyStream

$s.ReadToEnd()

 

declare cur cursor
for select schema_name(o.schema_id) schName, object_name(c.object_id) tbName,c.name from sys.columns c
join sys.objects o on c.object_id=o.object_id
where TYPE_NAME(user_type_id) in (‘varchar’,’nvarchar’,’char’,’nchar’) and o.type=’u’ and o.is_ms_shipped=0

declare @sch sysname,@tb sysname,@col sysname
create table t(schemaname sysname,tablename sysname,columnname sysname)
open cur
fetch cur into @sch,@tb,@col
declare @sql nvarchar(max), @search nvarchar(100)=’58.’
while @@FETCH_STATUS =0
begin
    set @sql=’if exists(select * from [‘ + @sch + ‘].[‘ + @tb + ‘] where [‘ + @col + ‘] like “%’ + @search + ‘%") insert t values(“‘ +@sch + “‘,"‘ + @tb + “‘,"‘ + @col + “‘)’
    –print @sql
    exec(@sql)
    fetch cur into @sch,@tb,@col
end
close cur
deallocate cur
select * from t
drop table t

SQL Server 2016 的交易記錄傳送可能需要手動安裝 .NET Framework 3.5

交易記錄傳送實際上是透過各SQL Server執行個體上的作業呼叫「sqllogship.exe」應用程式,需要小心的是在安裝SQL Server 2016時並未要求一定需要.NET Framework 3.5,而sqllogship.exe工具程式需要.NET Framework 3.5,導致執行失敗卻未將失敗原因寫入作業記錄。

透過命令提示列呼叫sqllogship.exe才會出現缺少.NET Framework 3.5的錯誤訊息。

今日推出的 SQL Server Data Tools 16.3,對 Tabular Model 的 Explorer 終於讓人可以一目了然

image

定義 AD Domain 是單一字母的,不能在 Windows Server 2012 R2 Server 建 iSCSI target

天啊,我自己在家裡的 AD Domain 叫 i,竟然導致奇怪的 Bug,會有如下的錯誤訊息:

Unable to create iSCSI virtual disk

要修 bug 都還不一定裝得上 hotfix…

https://support.microsoft.com/en-us/kb/2953557

最後是建立一台不加入 Domain 的 Windows Server 2012 R2 當作 iSCSI target…