Google搜查列

 

2013年7月13日 星期六

Android Eclipse 開發的Android SDK Tools 升級到V22執行錯誤

自從上週執行Android SDK Manager自動更新

順便安裝新版的Android 4.2.2 API17 

更新完後,發現舊寫好的APP程式編譯後不能RUN
在SDK裡完全沒有提示錯誤

找了三天,注意在模擬器裡都是在Activity間切換時才錯誤,後來發現是因為Activity Class Name要大寫開始,原本我的class name檔名是sq.java, 一般標準java的class name要和檔名一樣就可以(J2EE課程是這樣說的),但SDK升級到V22的時候,要強制大寫開始的Class Name,所以先人先找到問題了,只要把小寫檔名改成大寫開始的Sq.java就正常了
如果只是一般類的使用,像我圖裡的zujian.java,他不是Activity Class就沒有問題,可以小寫

2013年7月9日 星期二

使用unetbootin 建立開機USB的LINUX系統

當你想要建立USB開機安裝器的,少不了使用一些工具軟體,把原來使用光碟開機安裝的系統,改由USB安裝,好處當然是方便帶在身上,可以把多個安裝系統帶在身上,方便工程師選用,今天要介紹的是使用UNetbooton這個軟體,這個軟體小工具,主要針對Linux系統來作USB開機的系統,如果想要把開機光碟,改成隨身碟,可試用這個小工具囉,我介紹我的習慣的方便,我這次是使用讀卡機+microSD卡這樣的配法,這樣可以多個系統在身上,同時也有選用時的彈性。

UNetbootin官方網站是如下說明的 :
UNetbootin可以讓你創建可啟動的Live USB隨身碟,變​​為Ubuntu,Fedora和其他Linux發行版免於燒錄它可以執行在Windows,Linux和Mac OS X上您可以在UNetbootin裡直接下載一個所支援公開發行系統或提供自己的Linux ISO檔案

當然事前要準備的是SD卡,以下是我的一組維修工具碟是我的組合。

我以白色的油漆筆寫上,以標示那一張micro SD是什麼系統
包括win7安裝USB,Windows XPE 和Linux BT5r3
當然也要有可支援USB開機的讀卡機一支,同時主機板或筆記型電話也要支持USB開機喔!
我們習慣的下載windows的執行版本的unetbooti,在windows系統中制作開機USB LINUX
以下是選稿目前的支援的Linux 各版本




 選擇你已下載準備好的ISO檔
還有要寫入那一個USB隨身碟
COPY檔案中……
現在可以試試能不能開機了

以上是製作USB LUNIX的安裝或修復系統,像如Fedora那種大怪物,最好用個16G以上的隨身碟喔

但我個人最喜歡是BackTrack5 (BT5),系統安全分析系統(又叫作駭客工具系統),我想大多數人對這個隨身帶的USB系統是比較有興趣的吧,之後再來說說這個BT5系統好了,從BT3,4,5,開始接觸,會分享一些使用工具,這類的中文資訊比較少,大家要對自己的系統進行安全測試就要用這個BT5集合

使用Perl 發GTalk

常常在使用PERL管理我的系統,用得最多就是系統檢測
在管理裡,最希望是可以達到即時通知道Syster Administrator管理人

最即時收到訊息有手機的簡訊(短訊) ,電話的方式
桌上型電腦有MSN,SKYPE,GTalk,Pidgin等
而智慧型手機的通訊有SKYPE,GTalk,LINE,Whatsapp等……

寫這個程式的出發點是我的系統裡有UPS不斷電,但如在假日發生時,也可以透過即時通訊軟體通知管理人
我的UPS是山特(台灣飛瑞)



其管理軟體winpower裡,用得上的是郵件和簡訊
不過沒有即時通知功能
不過被我在安裝目錄下發現了一個UPSEVENT.CSV 的事件文字檔案
在裡面的我只關注4個事件代號和發生事件時間
00 市電斷電
03 市電覆電
04 RS232斷線
05 RS232連線

使用Perl定期檢讀這個檔案(例如每5分鐘),在發生事件時使用XMMP協定通知我的指定帳號
經過多方測試,使用GTALK是大宗表現不錯,也有其優點
1.在GMAIL裡可以記錄GTALK通訊內容(歷史事件)
2.也有PC和手機app 或GMAIL,都會同時通知到(NB,桌機,手機,WEB MAIL的GMAIL)
3.GTalk接口簡單,使用XMPP,但連線需TLS加密

編寫前,如果執行Perl的系統是windows ,請記得安裝XMPP套件模塊,是LINUX的話那要安裝一下XMPP喔

在傳送後,手機會收到GTALK的訊息(無奈傳送中文會產生亂碼,只好再研究一下囉)


另外,如果想要寫GTALK機器人的話,可以參考使用perl gtalk套件
Net::XMPP::Client::GTalk

#!/usr/bin/perl


use strict;
use Net::XMPP;
if(1==1) { #這裡可以方一些檢查的程式
  $temptext="EVENT\n";
  &sendgtalk("$temptext");#呼叫傳送gtalk
}


#副程式 傳送GTalk 訊息給指定帳號
sub sendgtalk{
        my $username = "flybird001";#傳送人帳號
        my $password = "xxxxxxxxxx";#傳送人密碼
        my $resource = "nagios";
        ## End of configuration
        $ARGV[0]="touser";#接收人帳號
        $ARGV[1]=shift;     #訊息內容
        my $len = scalar @ARGV;
       
        if ($len ne 2) { #檢查是否有兩個參數
           die "about [touser] and [message]?\n";
        }
       
        my @field=split(/,/,$ARGV[0]);
       
        #------------------------------------
       
        # Google Talk & Jabber parameters :
       
        my $hostname = 'talk.google.com';
        my $port = 5222;
        my $componentname = 'gmail.com';
        my $connectiontype = 'tcpip';
        my $tls = 1;
       
        #------------------------------------
       
        my $Connection = new Net::XMPP::Client();
       
        # Connect to talk.google.com
        my $status = $Connection->Connect(
               hostname => $hostname, port => $port,
               componentname => $componentname,
               connectiontype => $connectiontype, tls => $tls);
       
        if (!(defined($status))) {
           print "ERROR:  XMPP connection failed.\n";
           print "        ($!)\n";
           exit(0);
        }
       
        # Change hostname
        my $sid = $Connection->{SESSION}->{id};
        $Connection->{STREAM}->{SIDS}->{$sid}->{hostname} = $componentname;
       
        # Authenticate
        my @result = $Connection->AuthSend(
               username => $username, password => $password,
               resource => $resource);
       
        if ($result[0] ne "ok") {
           print "ERROR: Authorization failed: $result[0] - $result[1]\n";
           exit(0);
        }
       
        # Send messages
        foreach ( @field ) {
        $Connection->MessageSend(
                to       => "$_\@$componentname",
                resource => $resource,
                subject  => "Notification",
                type     => "chat",
                body     => $ARGV[1]);
        }

}

Google Analytics