發表文章

傳統工業中IT常見的專案軟體使用上與主以軟體導向之公司差別

圖片
         工程生產鏈軟體技術部門筆記心得 最近部門中的資深八年工程師在向我們介紹他們這的VB.Net語言開發的大系統設計過程 還有VB6  、  Java1.x版本 、 ASP2.0等等早期版使用之原因 和我介紹到了有關半導體產業不管是在操作的作業系統 或者程式語言開發的版本有的時候 都不怎麼追求改版或追最新版 有的甚至是程式專案版本控管還是使用早期的SVN Java的演化過程(歷代版本) 為何呢???? 後來資深人員又反問了我兩個問題 第一.  一直不斷追求最新有捨麼用意??? 有必要嗎??? 第二.  你系統是給誰使用??  是開放的社會大眾  還是 封閉的機台人員操作??? 一支程式在這裡並不像在學校撰寫的簡短100~300多行 就算可能在學校寫過  超過1000多行的Code那也是很算少數的人 在半導體產業中所接觸的系統專案程式碼少說至少也有60~80個程式文件檔案 注意 是程式檔案的數量   不是程式碼的行數!!!! 那專案中其中的一個程式檔案少說有3000行程式!! 有的少的 100多行 底下卻又是由數千行底層運作的程式碼包裝而成的 因此在一些檔案中看起來兩三行就搞定的一個功能、一個函數甚至一個物件 底層可能都包了2到3層的程式碼 總之少數加總起來 應該超過2萬多行程式碼的分量 !!!! 由此可知  當你要做程式更新 或是  程式轉換 往往都可能會牽一髮動全身 一小部分的修改更新 很有可能系統就會出錯 當然出錯帶來的後果往往就可能導致公司的營運 甚至整個測試流程的效率或者運作 這還真是艱苦的一項任務!!!! ========================================================== 在IC產業之中,往往比起程式能力還更加重視的是背後的Knowledge 也就是工程師們不能只是埋頭苦幹 寫程式、改程式 對於產業生產線上的環境、機台的構造、網路連線溝通的細節 作業員的行為模式等等.... 才是被看...

VB.NET語法part1_初階_變數宣告_函數使用_字串用法

File --> New Project --> Visual Basic --> Console Application VB變數宣告法 Dim 變數名 As 資料型態 Dim 變數名 As 資料型態 = 變數數值 VB常數(Constant) Const 變數名 As 資料型態 Const 變數名 As 資料型態 = 變數數值 VB之基本一般輸出 有自動換行 Console.WriteLine() 無自動換行 Console.Write() VB之特定格式之輸出 Console.WriteLine("..{0}...{1}....{2}.." , 變數1,變數2,變數3) Module Module1 Sub Main () '一般變數宣告' Dim idNo As String Dim yrRate As Double Dim year As Integer '一般變數宣告後之賦值' Dim idNo2 As String = "1234" Dim year2 As Integer = 28 '常數變數宣告' Const PI As Double = 3.14 Const stuName As String = "Sam" Const eulerNum As Double = 2.718 '輸出' Console.Write( "無換行書出" ) Console.WriteLine( "有換行輸出" ) '特定對應參數之輸出' Dim strName As String = "Mark" Dim age ...

第一天產業替代役心得_在灰色巨塔裡穿著拖鞋搭襪子的特別體驗

圖片
一早搭乘父親順風車(7:20)從老家新豐出發到公司(8:00) 比預計的9:00提前一個鐘頭到公司竹南廠區。對新環境一點也不熟悉的我, 突然感到不安,在巨大灰色巨塔面前下的自己顯得格外微小。 等待著報到時間點到來的我,倚靠在大廳門外涼亭,觀察著員工們的姿態和穿著。 拖鞋搭配襪子的員工比比皆是,心想這算哪們子潮流,頓時又好奇平時工程師們穿著 又是怎麼穿??我這麼穿會不會不得體,又或者太休閒等等 有的穿著polo衫 正是夏季最簡便穿著的代表,脖子上掛著員工證顯得格外專業。 突然看到了一個身穿襯衫的男子,看起來像是高層,默不吭聲走進大廳。 其餘在旁的有國外白人、外籍勞工有的抽著菸、有的低著頭划手機 隨著身旁抽菸又穿著拖鞋的人的煙味四起,我也不由自覺迅速逃至大廳等待。 好不容易結束了上午人資小姊帶給我們的厚重紙單資料填寫任務。 又開始了新的工作第一天認識環境,單位秘書帶領我走至地下室放鞋並說道: 「把鞋脫了吧,在公司要穿拖鞋!!!」 要穿拖鞋!!!! 要穿拖鞋!!!! 要穿拖鞋!!!! 這實在令人訝異阿 以往在學校這麼幹可是會被罵臭頭的!!! 沒錯你並沒聽錯更沒看錯 這裡人來人往通通都流行 穿拖鞋搭襪子 真是時尚的潮流巔峰 助理帶領我走到公司冷氣房中的專屬電腦辦公桌前發給我員工證後 隨後立馬認識了幾個資深前輩朋友 上午公司主管帶我認識IT部門各個單位 公司IT部門又細分很多專門領域的單位 竟多達100多個IT人員 我想我應該永遠也記不來所有人的名字 像是 MES  主要就是負責像是  FT、CP和Assembly等等 CIM 主要負責的就有 EAP(對Handler做人機互動溝通)、EAC(對Tester做程式人機互動溝通)、 FTIS、CPIS、PGM等細項 NS則是DBA、網通、管理Server、硬體維修方面的 MIS 則是人事系統等設計與維護 等等你說剛剛講的一堆英文縮寫完全聽不懂 沒錯我一開始根本聽的一頭霧水 有聽沒有懂 後來像身旁資深正職  及  研替前輩們 借了講義才了解了這些專業縮寫名稱的全寫 研替和正職前輩們人還滿好相處的 第一天觀察中 就交接了一些基本  半導體生產鏈的SOP...

實用生活科技_Google地圖_ATrainTime2手機應用程式_幫自己規劃衡量能花最少金錢與時間並到達公司路徑的計畫_給通勤的畢業工作新鮮人

圖片
這次 要跟大家分享一個很生活實用的一個交通行程規劃的兩個應用 假若你也是個大學剛畢業可能剛踏入職場但還未有自己汽車的 新鮮人並且還在努力存錢 情況1. (可能還在自己存考駕照的錢 、也可能是還在自己存買汽車的錢) 你可能剛開始都還必須搭乘大眾交通、公車、騎機車 (交通工具:機車) 你可能要暫時為了一些未來理想,先充當一個通勤的New Blood 上班族 這個時候你可能會有點懊惱 挖~~  火車有好多站阿!!! 到底要如何規劃找尋出最合適 又可以最不會遲到(較有時間到達彈性的路程規劃) 情況2. 又或者未來你是一個新手爸爸 要規劃帶家人出去旅行 (交通工具:汽車) 情況3. 更可能在更久的未來 喔  住嘉義的某某部門的誰  你下周四 給我去一趟基隆(出差/外派) ==================================================================== Step1. 準備好電腦開好 Google地圖應用 查看地點距離 及  相對位置 規劃路徑 Step2. 手機下載好 ATrainTime2 主要用來看票價及時刻 優點是可離線觀看 連上網的時候又會自動更新資料顯示 ==================================================================== 一開始先定義好你自己的 起始地點 (可能是你家住哪/離你家最近的火車站) 我們就先暫時稱之為   A點(從離家出發較近之車站) 之後先針對 你所要到達之目的地在 Google地圖上搜尋  我們在此暫時稱為   C點 (公司所在地) 好 現在你的目標是 你要找出 從A點先坐火車到離 目的地公司 最 鄰近的火車站是哪一個站 我們稱該車站為   B點 目前B點有三種彈性可能 透過Google地圖 找到了 竹南車站 (6.2公里) 崎頂車站 (6.9公里) 香山車站 (7.3公里) 新竹車站(13.7公里) 由此可以得知 B點  No1.竹南車站 ...

D2K(Oracle Developer 2000)在職培訓筆記_Lesson1_認識D2K_一項古老技術

圖片
Oracle資料庫培訓課程_歷史簡介L1_Oracle 11gR2版本學習_安裝配置_錯誤排除 Oracle資料庫培訓課程_L2_啟動Oracle服務_SQLplus Oracle資料庫培訓課程_L3_Oracle_SQLPlus七大常用指令教學學習 Oracle資料庫培訓課程_L4_Oracle Database(資料庫技術最高水平)基本概念_工作內容 Oracle資料庫培訓課程_L5_SQL簡介&資料表分析 Oracle資料庫培訓課程_L6-1_SQL查詢(簡單查詢) Oracle資料庫培訓課程_L6-2_SQL查詢(限制查詢)_關係運算符_邏輯運算符_範圍運算符_空判斷_IN操作符_LIKE操作符 Oracle資料庫培訓課程_L6-3_資料排序(數值、日期、員工編號)_混和排序 Oracle資料庫培訓課程_L7_SELECT_FROM_WHERE_ORDER_BY考試 在之前培訓課程筆記中有針對一些基礎SQL語法和安裝配置及歷史作了一些簡單描述 緊接著是比較進階部分的學習內容 Oracle D eveloper 2000 又被稱作「 D2K 」 是 Oracle 公司 新推出的一個快速應用開發工具集合 支援企業高級應用開發需求 主要特點在具備高度可延伸的彈性 維護不斷變化的應用需求 基於 資料庫的  Form 、 Reports 和 Graphics等等諸多程式應用 Oracle Developer 組件架構 Oracle Developer 所包含的組件有: Oracle Forms 5.0 Oracle Reports 3.0 Oracle Graphics 3.0 Procedure Builder 2.0 Project Builder Query Builder Schema Builder Transaction Builder 基本上主要是用在像是建立報表、圖表等應用、和一些GUI介面 我們將在下節做環境配置示範

Python_Exception例外異常處理_with語法使用教學介紹

圖片
在寫任何程式過程中難免會出現一些例外 (異常) python 也是如此 為此python提供了 Exception 解決的語法方案 讓我們先來簡單示範一下讀取一個文字檔案中的內容 先準備一個文字檔案 內容中有 取名為read.txt 然後放在桌面 和 C槽 寫一個簡單的 openfile的python程式 再輸入路徑之後 你感覺程式運行都很正常 但是一般用戶可能會忽略 .txt副檔名 就會出現這個異常 FileNotFoundError的異常錯誤 這是一個系統子類之異常 Python常見的異常 (摘錄自:http://www.runoob.com/python/python-exceptions.html) 異常名稱 描述 BaseException 所有異常的基類 SystemExit 解釋器請求退出 KeyboardInterrupt 用戶中斷執行(通常是輸入^C) Exception 常規錯誤的基類 StopIteration 迭代器沒有更多的值 GeneratorExit 生成器(generator)發生異常來通知退出 StandardError 所有的內建標準異常的基類 ArithmeticError 所有數值計算錯誤的基類 FloatingPointError 浮點計算錯誤 OverflowError 數值運算超出最大限制 ZeroDivisionError 除(或取mode)零(所有數據類型) AssertionError 斷言語句失敗 AttributeError 對像沒有這個屬性 EOFError 沒有內建輸入,到達EOF 標記 EnvironmentError 操作系統錯誤的基類 IOError 輸入/輸出操作失敗 OSError 操作系統錯誤 WindowsError 系統調用失敗 ImportError 導入模塊/對象失敗 LookupError 無效數據查詢的基類 IndexError 序列中沒有此索引(index) KeyError 映射中沒有這個鍵 MemoryError 內存溢出錯誤(對於Python 解釋器不是致命的) NameError 未聲明/初始化對象(沒有屬性) UnboundL...

Google Cloud Speech API備案學習使用

圖片
Google Cloud Speech API 第一階段. 需要先下載兩個模組 gcloud python module google-api-python-client module pip install -- upgrade gcloud pip install -- upgrade google - api - python - client 這裡由於我是在新的作業系統環境下去運行 因此 第一條指令在安裝過程 若有失敗主要是因為你有缺少 sudo apt - get install build - essential sudo apt - get install python - dev sudo apt - get install python3 - dev 之後可能還會出現 Could not find .egg-info directory in install record for future>=0.15.2 (from google-gax>=0.12.3,<0.13dev->gcloud) 等橘色錯誤訊息 那需要再下 sudo pip install --upgrade setuptools pip 升級並更新  pip 之後重新再次下指令做安裝最新版  gcloud sudo pip install --upgrade gcloud 即可完成第一階段安裝 第二階段. 至 Cloud Platform Console ,  enable Cloud Speech API 參考 link: https://cloud.google.com/speech/docs/ How to use google speech recognition api in python? [closed] https://stackoverflow.com/questions/38703853/how-to-use-google-speech-recognition-api-in-python What does a “Could not ...

程式碼暫存

 import speech_recognition as sr  # obtain audio from the microphone  r = sr.Recognizer()  with sr.Microphone() as source:      print("Say something!")      audio = r.listen(source) # recognize speech using Google Speech Recognition  try:      # for testing purposes, you're just using the default API key       # to use another API key, use `r.recognize_google(audio, key="GOOGLE_SPEECH_RECOGNITION_API_KEY")`      # instead of `r.recognize_google(audio)`       print("Google Speech Recognition thinks you said " + r.recognize_ google(audio))  except sr.UnknownValueError:       print("Google Speech Recognition could not understand audio")  except sr.RequestError as e:       print("Could not request results from Google Speech Recognition service; {0}".format(e))  

RaspberryPi上出現的萬惡錯誤_"Segmentation fault"

圖片
最近在樹梅派做嵌入式應用的小project的時候 遇到這個很討厭的錯誤資訊 想說試試看有沒有有解決方案 若解決不了就換別的備案 , 反正看了許多英文經驗交流還可學(複習)些單字 沒有壞處!!! 還順便接觸複習 Linux 指令 根據國外工程們的經驗分享和交流中 有人說是   " filesystem corruption " 的問題 可能是沒正確關機 下載到有病毒的檔案 周邊裝置沒安置好 等等諸多問題 第一個參考link 工程師A的問答經驗交流 https://raspberrypi.stackexchange.com/questions/5404/segmentation-fault Segmentation faults should not be happening like that, and it strongly implies to me you have filesystem corruption. It could also be the result of something malicious( 惡毒的;有毒的 ) , but that is probably less likely on the pi since it is prone to( 傾向於.... ) such corruption if, eg, it is subject to inappropriate voltages(電壓 ; 伏特) , or frequently unplugged(未使用(安插好)電子擴音裝置之樂器的) without a proper shutdown. Take the SD card out, salvage whatever you want/can off it using another computer, then umount it there but leave it plugged in and try: 希望應該不是有毒的問題 = =||| 下方後續又有國外高手工程師則認為是檔案空間不足夠 建議菜鳥工程師可以試試看 df 查看 並刪除快取資料 Can you confirm that you have enough spa...

嵌入式系統_樹梅派音控相關電子裝置介紹

圖片
一般在電子裝置中可以產生聲音的裝置 常見的有  蜂鳴器(Buzzer)、喇叭(Speaker) 蜂鳴器(Buzzer) 電路符號是以 半月型 表示 音頻範圍較小,通常用來發出警示音 可細分為 有源(有震盪源,一接電就會發出聲音) 無源(內部無震盪源,需要輸入數位方波訊號才會發聲) 兩種 樹梅派上的GPIO可直接驅動它 喇叭(Speaker) 音頻範圍較大,音質也就好 常被廣泛用在 音響等電器產品 依照頻率響應還可細分為 高音喇叭(Tweeter) 中音喇叭(Mid-Range Speaker) 低音喇叭(Woofer) 重低音喇叭(Subwoofer) 等等。 樹梅派上的GPIO接腳是無法直接驅動喇叭的!!!! 而另外提供HDMI等音源輸出 電路符號是以 正方形連接梯形 表示 除了這些電子裝置和音訊相關之外 還包括有  麥克風、USB音效卡、USB集線器等等裝置喔!!! 因為 Raspberry Pi 本身設計上並未提供 音源輸入之介面 因此USB音效卡是為此須另外準備的。 麥克風 USB音效卡