軟體開發(軟件開發)

網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。

室內設計、裝潢、窗簾報價估算軟體

網智數位主要提供套裝及客製化的軟體系統解決方案,針對室內設計師、木工、裝潢業產業,量身訂做客製化的軟體,達成客製化、智慧化及網路化的商用軟體。

商用軟體-客製化設計

網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。

IOT 物聯網-系統開發

根據客戶實際狀況,結合雲端與載具進行客製化物聯網IOT導入與軟體開發

雲端VPS虛擬主機租用

我們的雲端VPS虛擬主機是採用雲端(虛擬化)技術所開發之全新雲端伺服器服務,可以選擇多種作業系統(Windows、Linux等),客戶可載入自訂的應用環境,執行自己所要提供的網路服務,我們的雲端服務可為您的網站提供最完美的解決方案。

ERP軟體客製化導入

ERP軟體客製化導入,室內設計、營造業、裝潢、木作工程、系統櫃工程、會計系統,全面提升公司管理營運效率。

搜尋引擎最佳化SEO

搜尋引擎最佳化(SEO)不僅能提高網站在搜尋結果的排名,更能帶來大量對我們產品或服務真正有需求的訪客。SEO 最棒的特質之一就是不像廣告一樣亂槍打鳥而導致用戶的反感,反而更能提升點閱率跟成交率喔。

服務宗旨

網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。

我們的成立宗旨就是要以最猛的IT技術讓這個世界更Smart,在我們貫徹我們裡想的同時,我們希望可以把我們所開發的系統帶給台灣的中小企業,除了要推薦好的東西之外,我們也希望做點改變,所以我們的第一目標就是要使用最好用的系統再加上您寶貴的創意,不僅僅可以節省你大量的荷包,還可以有一個像樣的網站。我們可以幫你做的有

企業管理
  • 策略管理
  • 目標管理
  • 行銷管理
  • 財會管理
  • ERP導入
  • 企業流程自訂
資訊管理
  • 網站架設
  • 虛擬化/雲端架設
  • 主機代管
  • 私有雲建制與導入
軟體開發
  • UML設計
  • 版本控管
  • 企業軟體開發
  • APP開發
  • 網頁設計
資訊安全
  • 網頁弱點掃描
  • 主機弱點掃描
  • 木馬檢測
  • 資安鑑識
  • 設計網路架構
  • 資安監控
行銷
  • 關鍵字SEO
  • 社群網路行銷
  • 部落格行銷
  • FaceBook 粉絲團
其他
  • 協助企業申請Google Email
好玩工具開發

講出你的創意吧!沒有甚麼是資訊辦不到的

顯示具有 程序開發 標籤的文章。 顯示所有文章
顯示具有 程序開發 標籤的文章。 顯示所有文章

2016年11月2日 星期三

工業4.0 的好影片介紹

        最近跟同業、客戶、各種研討會,大家除了物聯網、大數據,還會談另外一個名詞,叫做工業 4.0,剛好看到一個天下雜誌非常好的影片介紹,在此轉介分享,台灣的驅動新型力量..






網智數位-軟體開發(軟件開發) 
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年11月1日 星期二

機電行業-軟體解決方案(紅外線、局部放電、點料表)

        今年我公司針對機電行業領域,開發出一個針對紅外線、局部放電檢測的測試報告,轉為一個獨立的專案管理報告,該管理軟體可以協助將客戶歷年來的紅外線、局部放電的報告資料,如拍攝位置、拍攝盤名、檢測人員、天氣狀況、環境溫度、濕度、相關電流(R、S、T、N)、額定電流、檢測照片、可見光圖片等欄位作有效資料管理。

image

         並且針對每個檢測報告的的【判定結果】也會根據溫度、電流等條件進行結果的系統判定,可以大幅減少人工判定作業的誤差與錯誤,如下圖

image

           在每個報告項目我們都可以指定報告是否有異常原因、異常項目(後續我們的管理軟體,都可以針對所有異常原因、異常項目)進行分析統計趨勢報表,作為管理層級人員的追蹤檢討事項、以及執行面的調整。

image

管理軟體部分統計圖表

image

image

image

image

image


以上所有功能皆可匯出 Excel 檔作為報表、提供給客戶,提升機電產業的管理績效,以往我們的客戶在還沒有使用我們的管理軟體時,每次產生一個報告都需要人工在 Excel、Word作業,行政助理到處複製貼上,初步估計人工花費至少超過10天,現在使用我們的軟體,只需要一個按鈕就可以馬上產出給客戶一個完整的報告),而且案子一多根本無法有效作管理,例如想知道目前有設備過熱的地點有哪些、散熱發生的又有哪些;所以使用我們的管理軟體後,可以有效的跟客戶呈現一個即時的報告,作為提升機電產業的競爭性,目前已經有多家新竹大廠導入我們的軟體,如果您有這個需求,可以聯繫我們,我們可以安排時間到現場Demo我們的系統。




網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870 

公司電話:02-55991310
skype: netqna
line:netqna
微信:netqna
黃先生 Allen












2016年10月27日 星期四

ERP 產品成本管理與計算

       目前很多企業多少都有導入ERP系統,但不管是用到什麼樣的ERP,SAP、Oracle、其他等,基本上幾乎都有一個共同的特點,就是目前的應用還局限於企業的各部門組織資料的輸入,然後將這部分的數據加工應用,形成一些簡單的統計分析報表,也就是說,事實上這還算是處於基礎的ERP應用階段,竟然這樣,那麼企業到底應該如何更加充分地發揮ERP的作用呢?這也是我想從這篇文章來講解,我主要從成本控制方面來加以闡述。







      第一,我們先來了解一下企業製造生產商品的成本構成因素,產品的成本主要由材料成本 + 人工成本 + 製造費用等部分組成,而其中製造業最主要的成本是材料成本(比例相對比較大),其次是人力成本,第三是製造費用成本,而要控制好各項成本,就是要了解其中各成本項目分別是多少,在沒有應用ERP的時候,通常成本會計計算成本方式很簡單,就是將本月生產的產品數量作為基數,計算出材料,人工及製造費用,按一定的規則,將所有成本分攤至本月所有產生的產品中,從總體成本來說計算是沒有什麼問題,但由於是平均分攤的方式,相對每種產品而言,所看到的成本就不一定真實了,而且如果發現成本有異常,也比很難去追著問題的來源,但是很難去做改善了。但是,企業在應用了ERP以後,管理的精度和側重點就完全不一樣了,因為ERP系統可以自動歸集材料成本,自動計算人工成本和製造費用的分攤,不再只是一個所謂的【平均值】,每個個產品甚至每一張訂單的成本都可以精確地計算出來,我們知道成本會計的工作重點不再是核算成本,而是對成本產生過程的監控進而追溯,也對可能產生的異常情況進行預測和預防警惕,並在成本計算完成後對成本異常的數據分析原因並解決,這樣一步步地降低成本,在所有第一步就是要利用ERP來計算各種成本,只有有了這些數據才能發現問題和設定改善目標。

        再來通常,計算完成本我們就會發現很多的異常情況,比如有些訂單產品的材料按標準投入,產出卻遠遠高於預計的產量,有些訂單產品有材料投入卻沒有產出,更或者有些訂單超產特別大,而有些訂單卻沒有生產數據,所有這些異常發生的原因在在車間管理不規範造成的,車間存在挪料或不按生產計劃領料,不按生產任務單入庫的情況。如果ERP上線的時候顧問有特別的說明提醒或者成本會計有經驗,在一開始就嚴格要求車間規範作業,這種情況就會比較少發生,但很多企業做不到這一點。發現這些異常後,成本會計自然會去去,在追問問題的過程中,一方面讓相關部門,尤其是製造部門更加熟悉了解規範化作業流程的重要性,同時也讓這些部門人員慢慢樹立起成本意識,養成節省成本的觀念和習慣。

       ERP能精確計算產品成本,成本產生的過程ERP是否就無能為力了呢?非常.ERP計算成本只是減少了人工計算的工作量和增加了計算的精確度,過程控制才是ERP能產生效益的最大通常,材料成本在製造行業的產品成本中佔了絕大部分,而ERP可用於控製材料成本但是非常有效的一個面,在材料領用的時候,ERP可以按產品BOM的標準用量控製材料的領用,不可以隨意超標;而對於因為報廢等原因造成的材料超耗,ERP按設定的特殊流程處理,在這個流程中,所設定的審查和知會人員跟正常另一方面,當車間材料的領用都很規範後,我們就可以非常容易地檢查BOM數據的精度,因為我們完全可以根據領料的數量和產出,及車間剩餘的庫存來檢驗BOM是偏大,偏小或者剛好。這樣一來,成本控制的源頭就更加精確。在此基礎上,再去分析各項材料是否還有壓縮的空間,配套相關的操作規程和工具,方法,進一步節省成本。我們有個客戶就做到了這一點,在該企業的車間領用材料中,有個材料就是我們常用的膠帶,通常很多企業認為它的成本低用也不是特別大,所以在管理上也不重視,但這家企業是這樣做的:在需要使用的工序上,劃出刻度,然後給相關的作業人員培訓,做什麼產品用多少厘米毫米、公分、臺尺)的長度,這樣做以後,一卷膠帶可以做多個產品基本上都可以計算出來,可見其管理的深度。當然,這些改善的結果最後還是會反饋到ERP系統中,讓ERP來控制。




(其他參考文章)
MPS主生產計畫專文介紹(一)
MRPⅡ/ERP 能力需求計畫原理
庫存管理-概念與釐清
庫存管理探討-VMI
真正的庫存量形成探討
庫存管理的中樞控管法則(上)
庫存管理的中樞控管法則(下)
庫存目標6大範疇(程式開發、程式設計、軟體開發、系統開發)
BOM表管理與設定﹣輔料是否需輸入BOM
何謂 進銷存、ERP、WMS?三者差異性【軟體開發、軟件開發、程式設計】
ERP 產品成本管理與計算
庫存量正確性衡量法則
粗能力需求計畫(RCCP) - 專文介紹
如何利用軟體來協助企業銷售統計和分析
開發進銷存、ERP、PDM,物料欄位收集與建立重要性(ERP開發、軟體開發、進銷存)
ERP 各種計劃階段的差異
ERP 系統的淺談與優勢





網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen


Windows 10 的 UDP 與 TCP 網路通訊實作案例二(軟體開發、軟件開發、程式設計、程式開發)

      這篇文章主要是續之前另外一篇文章 UDP 網路通訊處理,這次是繼續講解 TCP 網路通訊處理,與UDP 協定不同的是,TCP協定是更加嚴謹,它是基於確認連接是可靠性的,也就是在發生通訊傳輸前,客戶端(Client)必須確認是連接到伺服器(Server)端,因為 TCP 對數據封包的次序與完整性要求相對嚴格,這樣才能確保數據傳輸過程可以正確無誤地送達目的地,所以 TCP 就常用在 文件的傳送,如Line聊天的檔案傳送、Skype 檔案的傳送等。






     在 Widnows 10 Universal APP 平台下(UWP ),是透過一個 StreamSocket 類別來提供 TCP 網路通訊傳輸協定的 Socket 功能.
在 Client 端(客戶端)大致我們遵守以下幾個步驟:
1.建立一個 StreamSocket 實體物件。
2.呼叫 StreamSocket.ConnectAsync 方法,來與 Server 端作連接要求。
3.使用 OutputStream 屬性所返回的輸出流(Stream),就可以進行發送資料;
    而 InputStream 屬性則是返回輸入流,是用在接受資料。
4.切記當不再使用 Socket 時,呼叫 Dispose 方法來釋放其所佔用的相關資源。

在 Server 端 (伺服器),我們則需要使用一個 StreamSocketListener 物件,綁定繫結 本機的位址跟Port,來監聽 客戶端(Client)的連接請求服務,而當監聽到客戶發出的請求服務時,會引發另外一個事件 ConnectionReceived 事件,從這個事件的Arg參數,我們可以獲取一個與客戶端進行通訊的 StreamSocket 物件。

上面簡單描述原理,以及程式撰寫大致步驟原理,我一樣習慣來個實際寫作案例來引導,我一樣為了簡單化,我把 Server 端界面與 Client 端界面放在一起,這樣這個範例程式可以充當伺客戶器角色也可以當客戶端角色,在實作案例中 客戶端可以選擇一個圖片已經輸入一些文字內容來描述圖片,最後可以發送圖片跟文字內容給伺服器端,當然伺服器端會馬上監聽到有傳輸服務請求,立即結束資料,並顯示在伺服器端的界面。
系統畫面如下圖

(Server 端)
image


(Client 端)
image



下面是相關的界面 XAML Code:

<Pivot>
           <PivotItem Header="伺服器(Server 端模擬)">
               <Grid>
                   <Grid.RowDefinitions>
                       <RowDefinition Height="Auto"/>
                       <RowDefinition />
                   </Grid.RowDefinitions>
                   <StackPanel>
                       <TextBlock Text="Server IP Address:" Height="30" Margin="0,0,-0.333,0"/>
                       <TextBlock x:Name="tbSvIP" FontSize="24" IsTextSelectionEnabled="True" Height="30" Margin="0,0,-0.333,0"/>
                   </StackPanel>
                   <ListBox Name="lbItems" Grid.Row="1" Margin="6,15,6,5">
                       <ListBox.ItemTemplate>
                           <DataTemplate>
                               <Grid>
                                   <Grid.ColumnDefinitions>
                                       <ColumnDefinition Width="Auto"/>
                                       <ColumnDefinition/>
                                   </Grid.ColumnDefinitions>
                                   <Image Width="50" Height="50" Stretch="UniformToFill" Source="{Binding Path=Image}"/>
                                   <TextBlock Grid.Column="1" TextWrapping="Wrap" FontSize="18" Text="{Binding Path=Text}" Margin="15,0,0,0"/>
                               </Grid>
                           </DataTemplate>
                       </ListBox.ItemTemplate>
                   </ListBox>
               </Grid>
           </PivotItem>
           <PivotItem Header="客戶端(Client 端模擬)">
               <StackPanel>
                   <TextBox Name="txtServerIp" Header="伺服器IP:"/>
                   <Image Name="img" Width="150" Height="150" HorizontalAlignment="Left"/>
                   <Button Content="挑選圖片..." Click="OnPickImagFile"/>
                   <TextBox Name="txtContent" Header="圖片描述:" Height="120"/>
                   <Button Content="傳送資料" HorizontalAlignment="Stretch" Click="OnSend"/>
               </StackPanel>
           </PivotItem>
       </Pivot>


現在來看主要核心程式碼 
一開始我宣告 一個 LISTEN_PORT=“1688”,作為 Server 端監聽的端口。
然後也宣告一個 StreamSocketListener 類別的 listener 欄位。
相關程式我也詳細註解了,主要是在 Loaded事件時,建立對應的監聽事件 ConnectionReceived 、以及使用 BindServiceNameAsync 方法指定監聽的Port。
image


接下來重點在 ConnectionReceived 事件,專門用於接受到 Client 端發出的請求數據。

private async void listener_ConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
       {
           string text = string.Empty;
           IRandomAccessStream imgStream = new InMemoryRandomAccessStream();

           // 處理從 Client 端接受到的訊息
           using (StreamSocket socket = args.Socket)
           {
               using (DataReader reader = new DataReader(socket.InputStream))
               {
                   try
                   {
                       // 讀出第一個數字,表示文件的長度
                       await reader.LoadAsync(sizeof(uint));
                       uint len = reader.ReadUInt32();
                       await reader.LoadAsync(len);
                       IBuffer buffer = reader.ReadBuffer(len);
                       // 寫入 Stream
                       await imgStream.WriteAsync(buffer);
                       await reader.LoadAsync(sizeof(uint));
                       // 再次讀入字串長度
                       len = reader.ReadUInt32();
                       // 讀出字串的內容
                       if (len > 0)
                       {
                           await reader.LoadAsync(len);
                           text = reader.ReadString(len);
                       }
                   }
                   catch (Exception ex)
                   {
                       DisplayErrMessage(ex.Message);
                   }
               }
           }

           // 顯示接受到的客戶端訊息內容
           await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
               {
                   BitmapImage bmp = new BitmapImage();
                   bmp.DecodePixelWidth = 50;
                   imgStream.Seek(0);
                   bmp.SetSource(imgStream);
                   imgStream.Dispose();
                   lbItems.Items.Add(new { Image = bmp, Text = text });
               });
       }


再來 Client 端,主要是選好圖片內容、以及輸入文字描述後,執行【傳送資料】按鈕,而對應的程式碼,如下,我也寫上對應的註解
private async void OnSend(object sender, RoutedEventArgs e)
       {
           if (txtServerIp.Text.Length == 0)
           {
               DisplayErrMessage("請輸入伺服器服的IP位置");
               return;
           }
           IBuffer bufferImg = img.Tag as IBuffer;
           if (bufferImg == null)
           {
               DisplayErrMessage("請選擇圖像");
               return;
           }
           Button b = sender as Button;
           b.IsEnabled = false;

           using (StreamSocket socket = new StreamSocket())
           {
               try
               {
                   // 發出連線請求
                   await socket.ConnectAsync(new HostName(txtServerIp.Text), LISTEN_PORT);
                   // 準備傳送資料(圖片跟文字)
                   using (DataWriter writer = new DataWriter(socket.OutputStream))
                   {
                       // 首先寫入圖片
                       uint len = bufferImg.Length;
                       writer.WriteUInt32(len); //長度
                       writer.WriteBuffer(bufferImg);
                       // 寫入文字內容
                       if (txtContent.Text.Length == 0)
                       {
                           writer.WriteUInt32(0);
                       }
                       else
                       {
                           len = writer.MeasureString(txtContent.Text);
                           writer.WriteUInt32(len); //長度
                           writer.WriteString(txtContent.Text);
                       }
                       // 正式提交
                       await writer.StoreAsync();
                   }
                   txtContent.Text = "";
               }
               catch (Exception ex)
               {
                   DisplayMessage(ex.Message);
               }
           }
           b.IsEnabled = true;
       }
 


整個程式執行結果畫面 
(客戶端)

image












(伺服器端) 



網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:
allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen




2016年10月24日 星期一

Windows 10 的 UDP 與 TCP 網路通訊實作案例一(軟體開發、軟件開發、程式設計、程式開發)

        今年公司承包了許多大型專案,都是必須用到網路存取技術,例如 圖控軟體我們就必須透過 TCP 協定跟硬體設備溝通,來讀取上萬台工業風扇裝置的轉速、溫度等訊息;再來還有影像監控軟體也是大量用到TCP/UDP、Web API網路協定存取,因此在開發各種軟體時,很多機會勢必需要用到網路通訊的技術。

        而這篇教學技術文章,我特別是針對微軟的 Windows 10 平台上,也就是所謂的 Windows 10 通用應用開發(Universal APP,UAP),示範關鍵的程式技術,我想分為 2 篇文章分別介紹 UDP 與 TCP 存取技巧,而這篇文章就先針對 UDP協定來介紹,UDP協定是個無連接(不可靠)的協議,它只提供資料的不可靠傳遞,它一旦把應用程式發給網路層的資料傳送出去,就不保留資料備份(所以UDP有時候也被認為是不可靠的資料報協定),UDP在IP資料報的頭部僅僅加入了復用和資料校驗(欄位),但它相對于TCP 協定來說,資源耗用少、而且處理速度夠快,所以常被用在傳輸要求沒有那麼嚴格的條件下,例如:聊天訊息、網路視訊、語音傳遞。

在 WIndows 10 的 UAP/UWP 平台上,微軟透過一個 DatagramSocket 類別來封裝了所有有關 UDP 網路存取的相關功能。

我將示範 伺服器端(Server) 與 用戶端(Client) 的程式技巧

在 Server 端,主要步驟有

1.建立一個 DatagramSocket 實體物件。

2.建立一個對應的 MessageReceived 事件,它將用來接收 Client 發送的訊息。

3.使用 BindEndPointAsync 方法來綁定本機的位址(IP)、端口(Port),如果是需要本機的所有網路位址(有多張網卡、無線網路等)都可以監聽訊息,我們就改用 BindServiceNameAsync 方法,然後只要指定要擊結對應的Port即可。

而在 Client 端,主要是一樣建立一個 DatagramSocket 實體物件,在透過該 DatagramSocket 提供的 GetOutputSteamAsync() 方法,並在該方法傳入 Server端IP位址、Port即可。

在 XAML 界面我為了好示範,我將 Server 界面跟 Client 界面 放在一起,分別為2個頁籖,這是使用 <Pivot> 元素 (我在這邊不花時間解釋 XAML Code 知識,但開發 Windows 10 XAML 是必備的基本語法,一定要會而且很熟,我就特別喜歡 XAML Code)。

XAML 畫面如下圖

<Pivot>
           <PivotItem Header="Server 伺服器端">
               <Grid>
                   <Grid.RowDefinitions>
                       <RowDefinition Height="Auto"/>
                       <RowDefinition />
                   </Grid.RowDefinitions>
                   <StackPanel>
                       <TextBlock Text="Server IP地址:" FontSize="20"/>
                       <TextBlock Name="tbIp" FontSize="36" IsTextSelectionEnabled="True"/>
                   </StackPanel>
                   <ListView Grid.Row="1" Margin="0,15,0,3" Name="lvMsg">
                       <ListView.Header>
                           <TextBlock Foreground="LightGreen" Text="已截取的Client端請求" FontSize="20"/>
                       </ListView.Header>
                       <ListView.ItemTemplate>
                           <DataTemplate>
                               <StackPanel Margin="6,20">
                                   <TextBlock FontSize="20" Foreground="Yellow">
                                       来自
                                       <Run Text="{Binding Path=FromIP}"/>
                                       的消息:
                                   </TextBlock>
                                   <TextBlock TextWrapping="Wrap" FontSize="24" Text="{Binding Path=Message}"/>
                               </StackPanel>
                           </DataTemplate>
                       </ListView.ItemTemplate>
                   </ListView>
               </Grid>
           </PivotItem>
           <PivotItem Header="Client 端">
               <StackPanel>
                   <TextBox Name="txtServer" Header="Server IP:"/>
                   <TextBox Name="txtMessage" Header="發送訊息內容:" TextWrapping="Wrap" Height="200"/>
                   <Button HorizontalAlignment="Center" Content="送出" Padding="20,0" Click="OnSend"/>
               </StackPanel>
           </PivotItem>
       </Pivot>

程式運行畫面如下圖

(Server 頁籖)

2016-10-23_23-25-03

(Cilent 頁籖)

2016-10-23_23-25-39

 

看完主要的界面宣告與結果,就開始來講解幾個主要核心程式碼

步驟 1.首先我宣告了 1 個常數 servicePort ,用於指定伺服器服務的端口Port.
    再宣告 2 個欄位(Fields), 作用於 Server UDP 與 Client UDP。

image

步驟 2.在 MainPage 建構子,宣告了載入實際時 綁定 Server 與 Client 端的 UDP Socket 。
   以及 Unload 時,釋放資源。

還有 我還綁定一個 Server 端要監聽 Client 端發送的訊息請求事件

image

步驟 3. Server 監聽事件 ,核心程式碼邏輯

相關程式碼,都附上註解

image

在上述 步驟 1 ~ 步驟 3 ,就完成 Server 端的主要監聽任務。

而 Client 端接下來的邏輯,就是在 Client 頁籖界面,輸入 Server 的 IP 位址、端口,以及要發送的內容,相關程式碼邏輯如下

OnSend() 是在 Client 頁籖界面,執行【送出】按鈕對應的動作方法

image

以上完成後,讓我們就可以來執行看看

在 Client 端頁籖 輸入訊息內容

image

在 Server 端監聽到的訊息如下

image

 

 

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年10月12日 星期三

Windows APP 截取網頁內容轉存圖片檔(程式設計、程式開發、軟體開發)

今天早上在跟客戶開會時,客戶提到有個需求,就是客戶的員工需要常常瀏覽購物平台網頁商品、資訊,但必須及時截取畫面拍照,所以 Allen 我就開發一個小工具,可以讓使用者瀏覽網頁時,進行截取網頁畫面並轉成圖片檔。

(圖示1)


而這個程式我用目前最新的平台(Windows Universal Platform)開發,因為是用短短 1小時的時間進行程式撰寫,所以功能比較陽春,但可以當做教學跟小工具使用,所以我就拿出來分享。

       一開始在上方的 網址 輸入,你要瀏覽的網頁,例如 http://tw.yahoo.com , 然後在點選瀏覽,就會載入 Yahoo 的網頁,此時你可以按左邊(中間偏下一點)有個按鈕【截取畫面】,執行後就會截取現在瀏覽的網頁“畫面”,

(圖示 2)

02

(圖示 3)

03

如果想要把網頁快照轉成圖片,我也寫了一個小功能的按鈕【將畫面存成圖片】,就可以存成實際的圖片。

05

    這樣就可以把網頁畫面及時拍照存檔,這個是個小範例,但是這個技術在知名的電子商務平台,例如 PCHome、Yahoo、淘寶等,都有類似的機制,就是你在訂購商品那瞬間,程式會把當時的產品訂購頁面存成及時圖片,以防止未來買賣有發生爭議時,可以作為交易的依據。

同時,我也把安裝程式放在 DropBox,因為我開發的平台為 Windows Universal APP,所以安裝方式請打開 powershell 直接把 Add-AppDevPackage.ps1 檔案拖拉到powershell 畫面,再按 Enter 鍵即可。

螢幕快照 2016-10-12 上午3.04.26

ddd

aaaaa

螢幕快照 2016-10-12 上午3.21.26

程式下載點

https://www.dropbox.com/s/673eet6odd4gyyk/NetQna_1.0.5.0_Debug_Test.rar?dl=0

下一篇,我會講解核心程式碼技巧(待續)

 

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年9月22日 星期四

企業營運管理軟體-需求永遠就是缺少那麼一點點程式功能【軟體開發、程式開發、程式設計】

      公司在承包專案、量身定做開發客戶的企業軟體多年,在接案驗收過程中,10件有8件專案,客戶的使用者總是想要再多增加那個功能、這個功能,好像沒有導入系統軟體是都沒有需求,但導入後,期待需求越來越多…當然在我們、以及客戶來說,都是成本的增加(不過總是有些客戶….認為預算無法增加,功能要無止境增加,客官….軟體開發真的是很辛苦的….XD)





      就是因為系統功能是靜態的不變的,該有幾支程式功能就是那幾支程式功能在那裡,可是企業的經營是動態的、不斷地與時俱進,所以企業組織會改變,明天老闆、主管要的報表會不一樣,後天可能要刮風或下雨各種突發原因,企業就是這樣一直動態的向前進。組織改變可以重新設定部門組織檔,流程改變可以調整系統參數,但是老闆要的報表是天天在變,天天寫報表也不是辦法!
 
為了因應這樣的狀況,市場上出現了BI (Business Intelligence,商業智慧)的軟體,還有報表產生器(例如Crystal Report)…等等的軟體、以及各種大數據分析平台,這些都是很好的商用軟體與工具,但是這些軟體很顯然的有下列幾項要求:
1.這些軟體是提供給IT人員設定、維護,再提供給User使用的。
2.需要額外投資一筆軟體建置費用。
3.艱深如BI的軟體,還需要龐大的顧問導入費用。
4.需要具有一定專業技術的人才。

所以對於這樣單次性、個別性、或變化性高的報表,使用者的內在需求往往是,我只是要把畫面上的資料可以轉到EXCEL上,再讓我加工處理就好了。在BI、數據分析軟體建置之前,在IT人員設計開發報表之前,這麼簡單的需求難道我還需要等嗎?
 
      歷經多年的IT打滾經驗後,我遇到客戶的使用者提出這樣的要求,常常有時候,我只能告訴他,這樣吧,我把Table schema給你,再教你寫些簡單的SQL Select的statement;我跟當年創造SQL指令的宗旨一樣的天真,認為這樣就應該已經解決他的問題了。事實上這樣的工作,對於非專業的IT人員來說,是非常非常的困難;對於IT人員來說,又是一件非常非常無趣的工作,因為他從來不知道他做這件事情的意義。

假如,你的ERP可以很彈性的把畫面上的資料轉到EXCEL,是不是就解決掉ERP系統『永遠缺少的那一支程式』的問題,最好可以做到下列幾項要求:
1.可以指定要轉出的資料條件(Records);可以指定要轉出的資料項(Fields)。
2.可以用List的方式轉出,以便統計分析,例如銷售明細月報表。
3.可以用Report的方式轉出,以便套印單據,例如Invoice、Packing List、…。
4.最好可以套用EXCEL範本,把資料轉到已事先做好的樞紐分析表、或Invoice格式之中,


這樣就可以不用每次轉出後都要再加工一次。

PS.Excel 真的也是事後梳理資料的好工具….但絕對是要先有好的流程企業管理軟體,在各種單位部門、流程控管整合所有表單單據、系統累積了營運管理數據,就可以真正達到【數字管理】目標了。

 

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

系統分割 - 無法刪除 使用 diskpart 指令 (軟體開發、軟件開發、程式開發)

 今天 Allen 我在整理公司機房的機器設備,也把多年專案開發的系統要做備份,順道買了一個行動硬碟 4 T的容量,但在 MAC Pro 先進行格式化後,再插入回 Windows 作業系統環境後,使用磁碟管理發現該顆硬碟最前面出現200MB的EFI磁碟分割,而磁碟管理圖形界面無法進行刪除該多餘磁碟分割,雖然才 200 M,但就覺得浪費了空間,所以忽然想到使用 DiskPart 指令,以下就是簡單的指令操作步驟教學… 
diskpart-list-volume

我們要如何刪除多餘的EFI磁碟分割呢?

此時選擇[開始] -> [執行], 執行"cmd"出現終端機視窗

此時輸入 diskpart 指令並按[Enter]鍵

DISKPART> list disk

磁碟###   狀態         大小        可用     Dyn  Gpt
--------      ----------   -------     -------   ---    ---
磁碟 0       連線         1000 GB   0 B
磁碟 1       沒有媒體   0 B         0 B
磁碟 2       沒有媒體   0 B         0 B
磁碟 3       連線         37 GB     37 GB   *


DISKPART> select disk 3

磁碟 3 是所選擇的磁碟。

DISKPART> list partition

磁碟分割 ###   類型                大小         位移
----------------   ----------------  -------       -------

磁碟分割 1        系統                200 MB    20 KB

DISKPART> clean

DiskPart 成功地清理了磁碟。

DISKPART> exit

最後再使用 clean 指令清除磁碟時務必確定選擇的磁碟是否正確。




網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年9月1日 星期四

導入ERP 管理軟體,對企業的影響

    對於 ERP 對企業的深層影響,可以根據企業的外部競爭環境和內部管理兩個方面來探討,因為企業就是要用ERP來解決目前存在的問題。





1. 企業的外部競爭環境
1)數據資訊爆炸:資料訊息爆炸概念在20世紀80年代就常常見諸於國外報刊雜誌,由於當時互聯網技術的發展和應用,對社會和企業的衝擊不像今天感覺這樣強烈。今天互聯網技術的發展和應用,資料訊息爆炸是一個再也不能不警覺和迴避的事實。資料及資訊技術對未來社會的影響、尤其對企業的影響無論怎樣估計都不過分。

2)競爭對手的競爭實力進一步增加:一方面原材料價格變化、產品需求變化快、市場難以預測等不利因素的影響,增大了企業經營的難度。另一方面又要求企業滿足客戶對產品的短交貨期,高質量,低價格和完善的售後服務的需求。
3)技術進步的速度加快:新技術、新產品的不斷湧現,一方面使企業受到空前未有的壓力,另一方面也使每個企業員工受到巨大的挑戰,企業員工必須不斷地學習,否則他們將面臨由於掌握的技能過時而遭淘汰的壓力。
4)高新技術的使用範圍越來越廣:全球高速信息網使所有的信息都極易獲得,而更敏捷的教育體係將越來越多的人能在越來越少的時間內掌握新技術。面對一個機遇,可以參與競爭的企業越來越多,從而大大加劇了國際競爭的激烈性。
5)全球化、網路無國界:所謂全球化,可用三句話來概括,就是全球貿易、全球採購和全球製造。 隨著網際網路與4G覆蓋全面化,實際上為我們創造了非常好的生存空間和發展機會。
6)產品的研發難度越來越大,費用越來越高。
7)可持續發展的要求:環境的破壞,資源的浪費,已為人類的生存帶來了極大的挑戰。企業如何面對製造資源的日益短缺並獲取經濟效益,是企業製定戰略時必須考慮的問題。
8)用戶的要求越來越苛刻。客戶的需求越來越個性化,小批量、短交貨期、高質量、低價格和售後服務好是大趨勢。
在全球競爭激烈的大市場中,企業要想生存和發展,首先必須加強內部管理,然而傳統的管理手段,零散的計算機管理系統顯然不能滿足這一要求。企業所面臨的外部環境和內部環境發生了很大變化,面對這些變化,沒有先進的管理手段和工具幫助企業改善和提高管理,必然出現下列一些問題:
7)市場和客戶需求多變和快速,使企業的經營和計劃系統難以適應。生產與採購部門希望有一個長期穩定的生產計劃,以確保長期的人力和物料供應,確保物料供應的優秀外協廠家,以提高生產效率。然而,在競爭市場中,客戶需求多變是必然的和正常的,為了滿足客戶多變的需求,必然會引起生產計劃的多變、人力多變、物料供應多變、企業的經營和計劃難以適應。

2. 企業的內部管理需要
1)企業領導由於沒有一個能提供快速、準確和全面的信息來源渠道和沒有一個能提供預測、分析和處理信息的專家管理系統,常常導致在決策過程中的猶豫不決、遲緩和失誤,以致於喪失了許多寶貴的機會。
2)企業在生產經營狀態發生了很大變化,產品由單一性向多樣性轉化、小規模向大規模轉化、很多問題需要及時處理的時候,由於各部門、各環節沒有一個對信息全面、快速的傳送和反饋的管理系統,以致於問題不能根本解決、矛盾不能及時處理、生產發生混亂、客戶需求不能滿足等等。
3)生產上所需要的原材料不能準時供應或供應不足。由於採購、庫存與生產配合不夠密切,客戶需求的多變,生產計劃不得不跟著變動,加工時只能用緊急訂貨來應急,採購人員壓力較大,原材料供應不夠及時,導致生產線停工待料。
4)零部件生產不配套、積壓嚴重。由於生產計劃安排困難,生產進度不均衡,生產的零部件不配套,生產線上用的已購零部件可能要轉給其它產品去使用。這樣,將會使產品與產品之間、產品批號之間產生錯綜複雜的關係,甚至原來待用的零部件都會成為呆滯物料,產生零部件的積壓。
5)產品生產週期過長,勞動生產率下降。生產上所需的零部件的不配套,將會引起生產活動紊亂,生產週期長。
6)資金積壓嚴重,周轉期長。為了保證生產的不停產及應付緊急訂貨,往往會以加大庫存的方法來應付,這樣的話,在製品積壓增多,庫存資金佔用嚴重,資金周轉天數增加。
8)質量管理中對待處理品、代用品及不合格品往往涉及的部門較多,因此導致了審批環節較多,審批時間過長,影響了企業的正常生產經營活動。
9)由於市場需求多樣化,導致企業的產品種類繁多,不通用的零部件比比皆是,給庫存管理、採購管理、生產管理、新產品開發管理帶來了極大的麻煩。
10)由於不能及時了解客戶的信用狀況,企業的資金狀況不能有效規劃,及時地控制超信用額度發貨、應收款超時收回。
以上10個問題是企業經常碰到的一些問題,企業在激烈的市場競爭和日趨複雜的內外部環境中,傳統的人工管理或局部的電腦化管理普遍存在著業務數據信息重複、混亂、不准確、不暢通、不能共享,歷史數據不易查找,信息反饋不及時等弊端。從而造成了企業庫存儲備高,物資供應不能保證,流動資金佔用大,交貨期長而不准,設備利用率和工時利用率低下,生產柔性差,生產成本高、週期長,生產效益差,產品更新換代慢,企業整體應變能力差等問題。
企業所面臨的這些需要解決的棘手問題,是普遍存在的。企業是一個有機的整體,企業中的各個部門的工作是彼此聯繫、相互影響的,都是不可忽視的環節,不論哪個環節失誤都會引起一連串的麻煩和問題。如果把企業這些環環相扣,互有影響的工作都按照一定的規律、方法和手段管理好,對企業的所有資源進行科學的調配和計劃,並得到充分地利用,以上所出現的問題就能夠得到有效的控制和解決。
從上述的分析來看,一個最突出的問題是,在企業的生存和發展面臨著空前的機遇和極大的挑戰。要想獲得更大的生存和發展空間,企業就必須用新的思維、新的觀念、新的方式來應對外部競爭和內部管理兩大挑戰,特別是要充分的認識到:企業資源充分地利用就是為企業創造最大的財富。


網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen


2016年8月31日 星期三

聯軸器、馬達產品報價選型、統計圖表管理軟體 【軟體開發、軟件開發、程式設計】

       感謝鈺德聯合實業股份有限公司尋求網智數位-軟體開發團隊,評估該公司的產品下單流程、選型管理軟體委外開發案,該公司在馬達、離心式泵浦產品是台灣的領導廠商,但因為產品在尺寸、電力、Critical Speed計算的多樣性,所以必須一套管理軟體來輔助公司業務、各區域、其他國家合作廠商進行下單、報價的評估比對產品可行性,所以在幾個月前就評估幾家軟體資訊公司,網智數位也是被詢問的廠商之一,而我司團隊也有效的進行初期系統分析、Prototype製作,確認客戶需求,讓客戶了解我們可以協助的程度、專業性,最後該客戶決定委託我們開發選型管理軟體,我們深信好的分析能力、開發能力,跟客戶不斷的溝通,了解什麼樣的功能需求,對客戶才是真正所需要的,因為我們一直堅持,資訊軟體產業就是要開發出一個符合某產業某特定需求,而量身定做的軟體。




 

關於鈺德聯合

本公司創立於民國八十七年,專業代理美國、瑞典、義大利等高品質離心式泵浦,有產品均通過ISO9001品質認證,適用於民生給水、工業製程,依泵浦類型可區分為全不鏽鋼離心泵、全不鏽鋼深井泵、污廢水用沉水泵及各種高壓泵、恆壓機組。公司擁有最佳的維修工廠及設備,經驗豐富的專業維修技術人員,並提供完善的售後服務。

 

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年8月29日 星期一

開發客戶的ERP管理軟體(窗簾、窗材、設計、壁紙商用軟體)

      今年網智數位-開發團隊,突破了承包了不同的行業應用軟體、整合各種領域的技術團隊,包含目前最夯的 VR、AR 軟體開發專案、Android 開發、影片傳輸壓縮、加解密等等,但今天 Allen 想特別再提傳統運用的 ERP管理系統,我們今年也陸續承包了窗簾、窗材、壁紙、室內設計業的 ERP委外開發案。







     開發 ERP的軟體專案時,Allen 我幾乎都是親自下來設計架構、流程、ERD、資料表定義,也會在可以的情況下,再怎麼晚都會跟客戶端開會討論到徹底了解(窗簾老闆真的很認真,真的討論到半夜凌晨,可以在工廠過夜了XD….因為真的期待一個好的管理軟體可以提升公司效率),客戶遇到的問題點、例如產品多樣化組合、庫存管控、上下游廠商訂單/採購單的傳遞、成本計算、不同等級客戶的銷售價格區分、還有業務收賬不透明不及時,造成帳款有差異,有時這樣的損失真的很大、也困擾著客戶,所以在開發ERP商用管理軟體時,著重的反而不是程式技術層面(當然也是重要),但更重要的要有相當多的流程知識、經驗、財務會計知識、製程領用料、BOM表管理、產品組合管理、移入/移出單據、生產期間天數控管、採購天數、進貨數量與天數控管等等,這些都是在經營一家企業、公司、工廠非常重要的資料數據,如果一個可以真的可以整合該產業的流程、產品特性,進行數據的整合管理,達到真正的【數字管理】

     然而在開發商用管理軟體、ERP、MRP、進銷存管理軟體、CRM等,跟客戶的溝通協調,往往大於其他軟體專案,因為真的了解與覺得遇到管理瓶頸的一定是委託方(客戶),但也因為這樣相較於其他軟體開發案在時間控管上,開發人力成本與時間最容易失去控制,因為流程會改、需求開發過程中再次產生新需求、企業文化、管理流程的衝擊等等因素,所以導入ERP專案時,必須真的需要雙方客戶不斷互相學習、溝通、協調、分階段測試上線,不夠往往我們的經驗是上線一定時間後,客戶對我們的感謝,也大過於其他專案,所以開發與導入 ERP,雙方都是要用互相信任、努力堅持、相信專業、深刻體會管理問題的角度去執行。



其他參考資料 
新技術、新科技、ERP的重要性將是更重要
[ ERP/MRP 系統 ] - 專案導入深入剖析
BOM表管理與設定﹣輔料是否需輸入BOM
庫存量正確性衡量法則
真正的庫存量形成探討
庫存管理-概念與釐清
MRPⅡ/ERP 能力需求計畫原理
MPS主生產計畫專文介紹(一)




網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年8月21日 星期日

物聯網 IOT 台灣微軟影片介紹–(軟體開發、程式開發、軟件開發)

       這1~2年來從雲端的夯議題到現在幾乎每天都會談到的物聯網(IOT),除了我常被客戶詢問相關合作機會跟也常被詢問何謂物聯網,今天看到台灣微軟的教學影片,它詳細介紹了相關技術已經微軟的物聯網與Azure雲端平台的運用介紹。
網智數位在物聯網的軟體開發有相關的技術團隊,可以量身訂做為客戶設計各種感應器的數據分析、以及雲端平台的整合應用,我們目前也正在開發了瓦斯安全裝置的物聯網應用、無人櫃檯的旅館結帳系統等。
               

       以下就是微軟的教學影片,有興趣的真的可以花一些時間觀看。(影片來自微軟 Chanel 9)物聯網世代已勢在必行!有了 Microsoft Azure 物聯網服務,您就可以監控資產來提升效率、提高營運效能來推動創新,利用進階資料分析,透過新的商業模式和收入來源讓您的公司轉型~~
https://www.youtube.com/watch?v=yF2S7nLVz9I&feature=youtu.be


網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年8月18日 星期四

Windows Server 2016 七大 Hyper-V 功能 (網智數位﹣軟體開發﹣程式開發)

      雖然目前雲端技術正在不斷流行、成熟化,可是事實上仍有大量工作負載需求是企業內部必須依靠虛擬伺服器作為服務載體。
images
所以下面我整理了其中的各項windows server 2016 hypber-v 全新功能或者經過突破改進的特性功能:
1.分立設備配置(又稱DDA)。
使用者用戶在PC當中中接入部分PCIe設備,並将其直接交付虚拟机使用。这项性能强化机制允许各虛擬主機直接存取 PCI 設備,即绕过虚拟化堆栈。与该功能相关的两大关键性PCI设备类型包括GPU与NVMe SSD控制器。
2.主機資源保護:
常常有时候,虛擬機器之前就是會為了自身顺畅运行而拒绝彼此共享資源服務。而在這個時候有一個新功能的支持下,各虛擬機器將只能夠使用自身被分配到的資源分配額度。如果某套虚拟机被发现擅自占用大量资源,则其资源配额会进行下调以防止其影响其它虛擬機器的效能。

3.
虛擬網絡適配器(Adapter)的記憶體“熱”變更:
這些功能允許大家隨意添加或者移除適配器(僅適用於Gen 2 虛擬機),而无需进行关闭以及重启。另外,大家也可以随意对尚未启用的动态内存进行调整(同时适用于Gen 1與第2代虛擬機)。

4.嵌套虛擬化:
大家在子虛擬機器内运行Hyper-V,從而可以其作為主機伺服器來進行使用。如此一来,大家将能够在一套Hyper-V服務器之上運行的Hyper-V Server,從而進行開發、測試与教育訓練工作——不過目前還很難想象是否其可用於真的生產環境中(Online)。
生產型虛擬機檢查點:与快照功能非常類似,上代版本中的检查点能夠為虛擬機器的當前狀態保存了快照(SnapShot),從而用於開發/測試復原。不過這些“標準”的檢查點并未使用陰影複製服務(又簡稱VSS),因為它并不適合用來作為實際生產環境下的備份(Backup)的用途。新的線上型檢查點完美整合了VSS,因此完全能夠適應線上作業環境的實際需求。 


5.PowerShell Direct: 允許管理者在遠程方式管理運行在視窗10或者在Windows Server 2016之上的虛擬機器。大家可经由VMBus利用PowerShell命令进行操控,而无需亲手对主机或者虚拟机进行网络配置或者远程管理设置。这项新功能相信会受到PowerShell脚本語法愛用者粉絲的支持。

6.虛擬TPM与屏蔽虛擬機
受信平台模組(簡稱TPM)允许大家利用微軟(Microsoft)的 BitLocker 技術,來進行加密動作,其具體方式與使用物理TPM保護實體磁碟槽一樣。屏蔽虛擬機同樣是利用虛擬TPM由BitLocker(或者其它加密工具)實現加密。

所以在這2種情況下虛擬機器能够利用TPM預防惡意有心人士對設備的不當存取訪問。


網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年8月11日 星期四

虛擬主機架設維護

      今天受委託協助處理舊客戶的網頁設計、虛擬主機架設,該客戶是委託我們開發量身定做的設備清單管理軟體,但網頁一直是另外委託其他網頁設計公司處理,無意中在軟體開發會議中,提到內部系統移轉到雲端的解決方案跟價格評估,忽然其他同仁提到公司網頁也要轉移(因為原本委託其他公司的費用一年竟然高達台幣3萬元,只是簡單的網頁),所以開完會後,回到公司了解客戶的網頁程式語言與資料庫,原來客戶委託的網頁設計公司使用了很早的 ASP 語法寫的網頁(不是 ASP.NET)而且還使用了已經快找不到的早期元件(Component),而主機代管公司不是網頁設計的廠商,該主機廠商為了能運作,只好把一直保留一台 Server ,作業系統是老舊的 Windows Server 2003,而安裝的獨立主機,為了滿足老舊的網頁程式語法。
image


     而我為了幫客戶減少不必要的年費用支出,真的只是一個公司外部網頁跟小功能程式,我迅速改寫了裡面語法,重新的架設到一台 Windows Server 2012 主機,資料庫也改寫,這樣只要簡單再轉移到虛擬主機,一年費用減少超過一半再多,客戶只要用三分之一的預算就可以了,有時候真的幫客戶解決不該花的預算,投入真正的核心系統,也是我們網智數位對客戶的態度與用心。

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年8月4日 星期四

2016年6月份最新資料庫流行排名

看統計圖表與去年同期來相比較,明顯的是 Elasticsearch 和 Teradata 的分數增加,而SAP Adaptive Server 與 Solr 的分數略有所下降。

以下圖表是最新的 2016年6月份前20名排行榜:

13133528_5912

 

上面統計數字的排名主要根據 5個因素來進行統計:Google以及Bing搜索引擎的關鍵字搜索數量、Google Trends的搜索數量、Indeed網站中的職位搜索量、LinkedIn中提到關鍵字的個人資料數以及Stackoverflow上相關的問題和關注者數量。

 

 

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

伺服器被攻擊後的處理措施

     安全總是相對的,再安全的服務器也有可能遭受到攻擊。作為一個安全運維人員,要把握的原則是:盡量做好系統安全防護,修復所有已知的危險行為,同時,在系統遭受攻擊後能夠迅速有效地處理攻擊行為,最大限度地降低攻擊對系統產生的影響。




一、處理服務器遭受攻擊的一般思路
系統遭受攻擊並不可怕,可怕的是面對攻擊束手無策,下面就詳細介紹下在服務器遭受攻擊後的一般處理思路。
1.必須馬上切斷網絡
所有的攻擊都來自於網絡,因此,在得知系統正遭受黑客的攻擊後,首先要做的就是斷開服務器的網絡連接,這樣除了能切斷攻擊源之外,也能保護服務器所在網絡的其他主機。
2.開始試著查找攻擊源
可以通過分析系統日誌或登錄日誌文件,查看可疑信息,同時也要查看系統都打開了哪些端口,運行哪些進程,並通過這些進程分析哪些是可疑的程序。這個過程要根據經驗和綜合判斷能力進行追查和分析。下面的章節會詳細介紹這個過程的處理思路。
3.進行分析入侵原因和途徑
既然系統遭到入侵,那麼原因是多方面的,可能是系統漏洞,也可能是程序漏洞,一定要查清楚是哪個原因導致的,並且還要查清楚遭到攻擊的途徑,找到攻擊源,因為只有知道了遭受攻擊的原因和途徑,才能刪除攻擊源同時進行漏洞的修復。
4.一定必須備份用戶數據
在服務器遭受攻擊後,需要立刻備份服務器上的用戶數據,同時也要查看這些數據中是否隱藏著攻擊源。如果攻擊源在用戶數據中,一定要徹底刪除,然後將用戶數據備份到一個安全的地方。
5.重新安裝系統
永遠不要認為自己能徹底清除攻擊源,因為沒有人能比黑客更了解攻擊程序,在服務器遭到攻擊後,最安全也最簡單的方法就是重新安裝系統,因為大部分攻擊程序都會依附在系統文件或者內核中,所以重新安裝系統才能徹底清除攻擊源。
6.修復程序或系統漏洞
在發現系統漏洞或者應用程序漏洞後,首先要做的就是修復系統漏洞或者更改程序bug,因為只有將程序的漏洞修復完畢才能正式在服務器上運行。
7.恢復數據和連接網絡
將備份的數據重新復製到新安裝的服務器上,然後開啟服務,最後將服務器開啟網絡連接,對外提供服務。
二、檢查並鎖定可疑用戶
當發現服務器遭受攻擊後,首先要切斷網絡連接,但是在有些情況下,比如無法馬上切斷網絡連接時,就必須登錄系統查看是否有可疑用戶,如果有可疑用戶登錄了系統,那麼需要馬上將這個用戶鎖定,然後中斷此用戶的遠程連接。
1.登錄系統查看可疑用戶
通過root用戶登錄,然後執行“w”命令即可列出所有登錄過系統的用戶,如下圖所示。

wKioL1ei-aqgJ0VUAAB84CpIZOQ223

通過這個輸出可以檢查是否有可疑或者不熟悉的用戶登錄,同時還可以根據用戶名以及用戶登錄的源地址和它們正在運行的進程來判斷他們是否為非法用戶。
2.鎖定可疑用戶
一旦發現可疑用戶,就要馬上將其鎖定,例如上面執行“w”命令後發現nobody用戶應該是個可疑用戶(因為nobody默認情況下是沒有登錄權限的),於是首先鎖定此用戶,執行如下操作:
[root@server ~]# passwd -l nobody
鎖定之後,有可能此用戶還處於登錄狀態,於是還要將此用戶踢下線,根據上面“w”命令的輸出,即可獲得此用戶登錄進行的pid值,操作如下:
[root@server ~]# ps -ef"grep @pts/3
531 6051 6049 0 19:23 ? 00:00:00 sshd: nobody@pts/3
[root@server ~]# kill -9 6051
這樣就將可疑用戶nobody從線上踢下去了。如果此用戶再次試圖登錄它已經無法登錄了。
3.通過last命令查看用戶登錄事件
last命令記錄著所有用戶登錄系統的日誌,可以用來查找非授權用戶的登錄事件,而last命令的輸出結果來源於/var/log/wtmp文件,稍有經驗的入侵者都會刪掉/var/ log/wtmp以清除自己行踪,但是還是會露出蛛絲馬跡在此文件中的。
三、查看系統日誌
查看系統日誌是查找攻擊源最好的方法,可查的系統日誌有/var/log/messages、/var/log/secure等,這兩個日誌文件可以記錄軟件的運行狀態以及遠程用戶的登錄狀態,還可以查看每個用戶目錄下的.bash_history文件,特別是/root目錄下的.bash_history文件,這個文件中記錄著用戶執行的所有歷史命令。
四、檢查並關閉系統可疑進程
檢查可疑進程的命令很多,例如ps、top等,但是有時候只知道進程的名稱無法得知路徑,此時可以通過如下命令查看:
首先通過pidof命令可以查找正在運行的進程PID,例如要查找sshd進程的PID,執行如下命令:
1 2 [root@server ~]# pidof sshd 13276 12942 4284
然後進入內存目錄,查看對應PID目錄下exe文件的信息:
1 2 [root@server ~]# ls -al /proc/13276/exe lrwxrwxrwx 1 root root 0 Oct 4 22:09 /proc/13276/exe -> /usr/sbin/sshd
這樣就找到了進程對應的完整執行路徑。如果還有查看文件的句柄,可以查看如下目錄:
[root@server ~]# ls -al /proc/13276/fd
通過這種方式基本可以找到任何進程的完整執行信息,此外還有很多類似的命令可以幫助系統運維人員查找可疑進程。例如,可以通過指定端口或者tcp、udp協議找到進程PID,進而找到相關進程:
1 2 3 4 5 6 7 8 9 [root@server ~]# fuser -n tcp 111 111/tcp: 1579 [root@server ~]# fuser -n tcp 25 25/tcp: 2037 [root@server ~]# ps -ef|grep 2037 root 2037 1 0 Sep23 ? 00:00:05 /usr/libexec/postfix/master postfix 2046 2037 0 Sep23 ? 00:00:01 qmgr -l -t fifo -u postfix 9612 2037 0 20: 34 ? 00:00:00 pickup -l -t fifo -u root 14927 12944 0 21:11 pts/1 00:00:00 grep 2037
在有些時候,攻擊者的程序隱藏很深,例如rootkits後門程序,在這種情況下ps、top、netstat等命令也可能已經被替換,如果再通過系統自身的命令去檢查可疑進程就變得毫不可信,此時,就需要藉助於第三方工具來檢查系統可疑程序,例如前面介紹過的chkrootkit、RKHunter等工具,通過這些工具可以很方便的發現系統被替換或篡改的程序。
五、檢查文件系統的完好性
檢查文件屬性是否發生變化是驗證文件系統完好性最簡單、最直接的方法,例如可以檢查被入侵服務器上/bin/ls文件的大小是否與正常系統上此文件的大小相同,以驗證文件是否被替換,但是這種方法比較低級。此時可以藉助於Linux下rpm這個工具來完成驗證,操作如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 [root@server ~]# rpm -Va ....L... c /etc/pam.d/system-auth S.5..... c /etc/security/limits.conf S.5....T c /etc/sysctl.conf S.5....T /etc/sgml/docbook-simple.cat S.5....T c /etc/login.defs S.5..... c /etc/openldap/ldap.conf S.5....T c /etc/sudoers ..5....T c /usr/lib64 /security/classpath.security ....L... c /etc/pam.d/system-auth S.5..... c /etc/security/limits.conf S.5..... c /etc/ldap.conf S.5....T c /etc/ssh/sshd_config
對於輸出中每個標記的含義介紹如下:
S 表示文件長度發生了變化
M 表示文件的訪問權限或文件類型發生了變化
5 表示MD5校驗和發生了變化
D 表示設備節點的屬性發生了變化
L 表示文件的符號鏈接發生了變化
U 表示文件/子目錄/設備節點的owner發生了變化
G 表示文件/子目錄/設備節點的group發生了變化
T 表示文件最後一次的修改時間發生了變化
如果在輸出結果中有“M”標記出現,那麼對應的文件可能已經遭到篡改或替換,此時可以通過卸載這個rpm包重新安裝來清除受攻擊的文件。
不過這個命令有個局限性,那就是只能檢查通過rpm包方式安裝的所有文件,對於通過非rpm包方式安裝的文件就無能為力了。同時,如果rpm工具也遭到替換,就不能通過這個方法了,此時可以從正常的系統上複製一個rpm工具進行檢測。
對文件系統的檢查也可以通過chkrootkit、RKHunter這兩個工具來完成,關於chkrootkit、RKHunter工具的使用,下次將展開介紹。

 

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年7月31日 星期日

VR 虛擬實境 程式開發合作案 【軟體開發(軟件開發)】

        非常感謝 清華同方集團電腦科技大廠在評估多家軟體公司開發經驗與團隊技術下,決定委託網智數位開發團隊進行程式開發 VR虛擬實境、Android APP軟體委外開發案、Windows 桌面應用軟體、智能設備遠端控制 一系列的專案委託案。




 

       我們一直突破開發技術、累積各種產業知識,而且在窗簾、窗材、拉門、布料業的商業管理軟體投入有特別的領域知識、也在圖控軟體(圖控軟件)、機械手臂、Android APP 、iPhone APP、3D列印 開發一直突破再創新,我們也堅持相信好的軟體可以協助企業,不管在管理營運角度、商品創新、決策分析等都絕對是不可缺少的關鍵因素,如果客戶您有任何軟體開發、程式開發委外需求,請聯繫我們讓我們協助您一起討論如何開發一個好的軟體來協助您。
     
網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen