2015年9月28日 星期一

[智語N] 前輩的智慧

今天跟朋友討論一下工作上遇到的問題,朋友雖然不是科技業,只淡淡的回我


「也許你把他想的比較難了一點,你應該是快要弄好了,

有時候往回看一下,就會找到了」

2015年9月27日 星期日

[Android] 解決view.getWidth()為0問題

有時候在OnCreate()時,取到的View.getWidth()通常會是0 ,

查詢網路上有一個解法。


MyView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
   @Override
   public void onGlobalLayout() {
    // aviod when ui change run this code 
    if (!init) {
     this.width=MyView.getWidth();
     init=true;
    }
   }
  });

不過這個方法有一個小缺點,當VIEW有變化(重繪或是物件有移動)也會引發。

所以可以下一個布林值來判斷是否己取過。

「Android」Button點下後的微縮小效果

在res/anim 裡面新增一個click_anim.xml檔案


<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <alpha
        android:duration="300"
        android:fromAlpha="1.0"
        android:toAlpha="0.5" >
    </alpha>

    <scale
        android:duration="50"
        android:fromXScale="1"
        android:fromYScale="1"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="0.9"
        android:toYScale="0.9" >
    </scale>

</set>

在Button的click事件裡這樣寫


btn.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {
    v.startAnimation(AnimationUtils.loadAnimation(Select_Lamp.this, R.anim.click_anim));
    
   }
  });


2015年9月26日 星期六

2015年9月23日 星期三

「Android」比較一下Runnable呼叫方式

用迴圈執行大量的畫面更新


package com.example.flowercatswets.test;

import android.os.Handler;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;



public class MainActivity extends ActionBarActivity {

    TextView tv;
    Handler mHandler;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tv=(TextView) findViewById(R.id.text);
        mHandler=new Handler();

    }

    @Override
    protected void onResume() {
        demoForLoop(); demoForLoop();
        super.onResume();
    }

    int i;
    private void demoForLoop()
    {
        for(i=0;i<1000000;i++)
        {
            mHandler.post(new Runnable() {
                @Override
                public void run() {
                    tv.setText(String.valueOf(i));
                }
            });
        }
    }
}

結果會變成下面這樣,迴圈叫你起床去尿尿後,就不管你了,然候

變成什麼都沒有顯示出來~直到Android把工作都消化完了。



換成用遞迴的方式呢


public class MainActivity extends ActionBarActivity {

    TextView tv;
    Handler mHandler;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tv=(TextView) findViewById(R.id.text);
        mHandler=new Handler();

    }

    @Override
    protected void onResume() {
        demorecursive();
        super.onResume();
    }

    int i;
    /*private void demoForLoop()
    {
        for(i=0;i<1000000;i++)
        {
            mHandler.post(new Runnable() {
                @Override
                public void run() {
                    tv.setText(String.valueOf(i));
                }
            });
        }
    }*/

    private void demorecursive()
    {
        i=0;
        Runnable mRunable=new Runnable() {
            @Override
            public void run() {

                tv.setText(String.valueOf(i++));
                mHandler.postDelayed(this, 1);

                if (i==1000001)
                {
                    mHandler.removeCallbacks(this);
                }
            }
        };

        mHandler.postDelayed(mRunable, 1);

    }
}

會看到數字狂飆,其實它們的差異在於,一個尿完叫下一個起來尿尿,這樣才不會大家都去搶廁所

2015年9月22日 星期二

「智語」智語N

宗教的目的,乃是要導引世人,步上和諧安祥的康莊大道。

所以各宗教不應該互相誹謗,讓沒信仰者,更加歧視宗教 。


寫扣的目的,乃是要幫助世人,步上簡單正確的流程軌道。

所以各碼農更應該努力上進,讓不寫扣者,慢慢想要寫扣。

「名詞定義」USB-HID

HID 是Human Interface Device的縮寫 ,由其名稱可以了解HID設備

是直接與人交互的設備,例如鍵盤、鼠標與遊戲桿等。 不過HID設備並

不一定要有人機接口,只要符合HID類別規範的設備都是HID設備。


交換的數據存儲在稱為報表(report)的結構內,設備的硬體必須支持HID報表

的格式。 主機在控制與中斷傳輸中傳送與要求報表,來傳送與接收數據。 

報表的格式非常有彈性,可以處理任何類別的數據。設備除了HID接口之外,

它可能同時還包含有其他的USB接口。 例如影像顯示設備可能使用HID接口來

做亮度,對比,與更新率的軟件控制,而使用傳統的影像接口來傳送要顯示的數據。

USB擴音器可以使用實時傳輸來播放語音,同時使用HID接口來控制音量,震盪,與低音等。

HID接口通常比傳統的控制接口來得便宜。



資料來源:

2015年9月21日 星期一

[Android CountDownTimer]

如果懶得自己寫倒數計時器,Android提供了一個很簡單的東西--

CountDownTimer



public class MainActivity extends AppCompatActivity {

    private TextView mTextField;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mTextField=(TextView)findViewById(R.id.text);
        MyCountDown(10000,1000);
    }

    private void MyCountDown(long total , long trick)
    {
        new CountDownTimer(total, trick) {

            public void onTick(long millisUntilFinished) {
                mTextField.setText("seconds remaining: " 
                                     + millisUntilFinished / 1000);
            }

            public void onFinish() {
                mTextField.setText("done!");
            }
        }.start();
    }
}


private void MyCountDown(long total , long trick)

有二個參數,第一個total則是總共要倒數幾秒,例如倒數10秒則填入10000 (ms)。

第二個參數則是每幾秒要"作動",例如我想讓使用者每看到10~9~8~7...1, 就填入1000(ms)

如果想要每3秒顯示一次,就填入3000 。


執行畫面










































執行完畢










































參考來源:

http://developer.android.com/reference/android/os/CountDownTimer.html


2015年9月19日 星期六

「分享」心率不整的症狀

心率不整的症狀: 

心悸、胸悶、胸痛、呼吸短促、頭暈、嚴重時全身無力、

倦怠、心臟衰竭、呼吸困難、低血壓、昏厥、意識改變。


攝取足夠的鎂和鉀:

攝取足夠的鎂與鉀,有助於平衡鈣的作用以減緩心跳及心肌收縮,

有助於改善心博過速發作。


(1)含鎂的食物: 豆類、核果類、麥麩。

  (2)含鉀食物: 香蕉、芭藥、葡萄乾、蘋果、莧菜、海帶、牛肉、鱈魚。


當心博過速發作時,可深吸一口氣並向腹部施壓,有如排便時的用力,

或按摩項動脈竇,以刺激副交感神經,使心跳減慢。

資料來源:

http://gong5887903.pixnet.net/blog/post/27370182-%E8%AA%8D%E8%AD%98%E5%BF%83%E5%BE%8B%E4%B8%8D%E6%95%B4%E7%97%87%E7%8B%80%E3%80%81%E6%B2%BB%E7%99%82%E5%8F%8A%E5%B1%85%E5%AE%B6%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A0%85!

2015年9月18日 星期五

[智語」如果你只關注成功,你就注定失敗

成功」本身就沒有固定的定義。不同人有不同的價值觀,甚至是同一個人,在不同的人生階段,也會有不同的成功定義。所以追求成為一個「成功人士」本身就是一個沒有固定跑道、沒有終點的賽跑。更可怕的是,當你陷入追求成功的輪迴,你就會不自覺的比較你跟其他人的成就,但不管是物質上的享受,社會的地位,或是金錢的收入等等,永遠都會有人比你更好,人外有人,比較永遠不會讓你快樂。


在追求成功的遊戲裡,我們註定是輸家,因為我們心理永遠得不到真正的快樂與踏實。

「把專注放在你要解決的問題上,你永遠有一條可以前進的道路,

你會意識到,其實還有很多事情等著你去完成。」


文章節錄來源

2015年9月13日 星期日

[智語] 三世業報一世了



故事是說北宋年間,包拯為相時,發生在民間的一樁逸事。

有一個村莊住著一個十來歲、腿患殘疾、父母雙亡的孩子,生活十分困苦,甚至靠鄉鄰施捨或乞討活命。這個村子的前面有一條河,往來村民和路人需涉水而過,特別是上了年紀的老人十分不便,每當河床漲水時更是無法通行,但年復一年,誰也沒想改變它。人們能夠看到的就是這個孩子天天撿石頭,堆在河邊。人問其故,孩子說要修一座石橋,為鄉鄰行走方便。眾人不以為然,認為孩子在說瘋話,大多哈哈一笑置之。可是日積月累,年復一年,石頭也堆成了座小山。




鄉鄰開始改變認識,並為這個孩子的精神所感動,也投入到了撿石、採石、修橋的行動中。

鄉鄰請來了工匠,開始建造石橋,而這個殘疾孩子全身心投入其中。橋尚未建成,這孩子卻在一次鑿石頭中崩瞎了雙眼。人們痛惜、怨恨,怪老天不公!這麼可憐的一個孩子,一心為大家,卻招來這樣的報應。可是這個孩子毫無怨言,每天摸索著在修橋的現場上幹活著。在大家齊心合力下橋終於修成了,眾人歡呼喜慶之餘,無不將憐惜、讚嘆的目光聚向那個孤苦伶仃原本就一條腿殘疾,現在又瞎了雙眼的孩子。

孩子雖然甚麼也看不到,但臉上露出了平生以來最歡樂的笑容。

一場不期而至的大雨,似乎要為這座石橋洗去浮塵,壯壯行色。可是一聲震耳欲聾的巨雷過後,眾人發現孩子已被巨雷擊中,倒地身亡了。

眾人驚呆了,隨後壓抑不住的情感噴瀉而出,嘆息孩子命苦,指責蒼天不公…

恰巧民間稱之為青天大老爺的包拯包相爺公幹路過此地,百姓紛紛攔住官轎為孩子鳴不平討公道。




質問相爺:好人為何不得好報?今後好人何以做得?食人間煙火的包相爺被村民情緒所帶動,

當場揮毫疾書,寫下了「寧行惡,勿行善」六個字後拂袖而去。

回到京城,老包將公幹之事連同路上見聞奏明皇上,卻隱去了自己題字一事。

因為儘管心中為那孩子行善事得惡報之事十二分不解,但三思之後還是為題那樣六個字覺得不妥。

沒想到皇上退朝後非要拉他到後宮說些私房話。




原來前些天,皇上新添龍子,十分招人喜愛,可就是孩子整天啼哭,特意讓老包去看看。

老包見那孩子肌膚如雪,嫩白的小手上有一行字。

近前一看,正是自己寫的那六字「寧行惡,勿行善」。臉一下子紅到了脖子根,趕忙伸手向字擦去。

說來奇怪,字瞬間蹤跡全無。皇上見皇子手上的胎記被老包抹去(別人看那行字只是一個胎記),唯恐抹去了福根,不依不饒的斥責包拯。




包拯連忙跪下,口稱罪臣該死,將題字一事的來龍去脈說了一遍。

皇上甚覺蹊蹺,命老包用陰陽枕到地府一探究竟。

老包拯上陰陽枕到地府一遊,真相盡顯。

原來那孩子前世做惡多端,罪業甚大,償還那一世罪惡需三世惡報才能還清。

神原來安排,第一世以殘疾之身孤苦伶仃;

第二世以雙眼瞎了卻殘生;第三世遭雷擊暴屍荒野。那孩子第一世轉生窮困殘疾,但痛改前非,只想為別人做好事。




於是神就讓他一世還兩世的業,讓他崩瞎了雙眼。

可孩子不怨天尤人,只是默默的為別人做好事。

神就把他第三世的業力也拿過來一世還,所以雷擊斃命。閻王爺問包拯,三世惡業一世還,你說是好還是不好?一世還了三世業,因為他專行善事,心裏只是想到別人,毫不考慮自己,

某些方面已達到「不修道已在道中?的境界,積德甚多,故而死後立即轉生為當今太子,享受天子福份。




這個民間流傳的小故事,作為一個修煉人來看,給我們的啟示良多。世間法與佛法是顛倒的。世俗所思所求都是享受、舒適、如何過好日子。為此斤斤計較,損人利己,勾心鬥角,甚至犯下傷天害理的罪惡。而對於修煉人,吃苦、磨難、還業則是大好事。只有捨棄才能得到。世間人看事物只能看到一個點,一條線,引申下去也只能是一個面,看到的全是假相、表相。

也由於他們看待事情只看結果,成敗則完全以世俗的認知做定論;而不同境界的修煉者,則能在定中看到真相。




佛法之所以可貴,是從成功真實的「因」上來談的,但它並非不講求「果」,正因為講果,所以為了正確的果,必須先找到正確的因,然後在正確的「因」上面下工夫,如果這個步驟做對了,好的結果一定出現。

在做的過程中,眼前有時會出現一些相對的好效果,但這個好效果,對我們而言應該是一種鼓勵,不要被它迷失。




然而世間就看不清這一點,所以我們稱這個世間叫「顛倒」。

所謂「菩薩畏因,眾生怕果」。




觀世音菩薩在「心經」裡面教我們要「遠離顛倒夢想」,我想就是這個道理吧!

永遠不要放棄自己,永遠不要放棄別人。在平凡中看到神聖。

祈求人人更加智慧,洞澈一切緣起真相。

祈求人人更加慈悲,包容寬恕別人,並努力去利益眾生。



資料來源:

2015年9月10日 星期四

[Java] 好題目3

有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位元數?

並輸出各種組合?

程式碼如下

int i,j,k;
int count=0;
System.out.print("\n");
for (i=1;i<5;i++)
{
 for(j=1;j<5;j++)
 {
  for (k=1;k<5;k++)
  {
   if (i!=k && i!=j && j!=k)
   {
                           System.out.printf("%d,%d,%d\n",i,j,k);
       count++;
   }
  }
 }
}
System.out.println("total:" + count);

執行結果
2,3,4                                                                                                                                                    
2,4,1                                                                                                                                                    
2,4,3                                                                                                                                                    
3,1,2                                                                                                                                                    
3,1,4                                                                                                                                                    
3,2,1                                                                                                                                                    
3,2,4                                                                                                                                                    
3,4,1                                                                                                                                                    
3,4,2                                                                                                                                                    
4,1,2                                                                                                                                                    
4,1,3                                                                                                                                                    
4,2,1                                                                                                                                                    
4,2,3                                                                                                                                                    
4,3,1                                                                                                                                                    
4,3,2                                                                                                                                                    
total:24   

題目來源:

http://stenlyho.blogspot.tw/2007/04/c100-1-10.html

[Mac] Mac pro看DVD方法

新一代的mac pro己沒有光碟機了,臨時想看一下DVD怎麼辦呢?

 拿了一台舊PC的光碟機,接上了一組USB 轉SATA的線。

 有支援藍光以及Mac OSX 10.6以上(10.10測試OK),不必額外裝驅動。

[Android] Android 鍵盤推擠layout

我有一個layout XML如下
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity">

    <TextView 
        android:text="@string/hello_world" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:id="@+id/text"
        android:textSize="32sp"
        />


    <EditText  
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/text"
        android:layout_marginTop="30dp"
        android:textSize="32sp"
        android:layout_centerInParent="true"
        />

</RelativeLayout>

執行畫面如下










































當我點擊EditText要輸入文字時,鍵盤會把layout推上去









































如果今天你不想要layout被推上去,你可以修改Androidmanifeest ,

在activity的地方加上一行android:windowSoftInputMode="adjustNothing"

but自己就要去做滾輪或其他的方式來讓view可以滑動顯示。



<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="test.com.myapplication" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:windowSoftInputMode="adjustNothing"
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>


執行結果


[Mac] Mysql 啟動錯誤

有時候當你在Mac OSX啟動mysql時,會出現一個錯誤。


ERROR! The server quit without updating PID file (/usr/local/mysql/data/neils-iMac.local.pid).




此時最簡單的一個方式,是開啟以下這一個檔案,裡面會一個pid的數值。


sudo more /usr/local/mysql/data/mysqld.local.pid



90



 然候下指令

 kill 90

 再重新啟動一次mysql即可。

2015年9月5日 星期六

[Mac] 啟動mysql

start

sudo /usr/local/mysql/support-files/mysql.server start

stop

sudo /usr/local/mysql/support-files/mysql.server stop

restart

sudo /usr/local/mysql/support-files/mysql.server restart



資料來源:

http://coolestguidesontheplanet.com/start-stop-mysql-from-the-command-line-terminal-osx-linux/