2015年12月29日 星期二

[Android] Launcher Icon bage Number


今天試著把launcher icon 加了數字提示,找到一篇可以用的,

在我的LG手機上測試正常


程式碼


import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.List;


public class MainActivity extends ActionBarActivity {

    int count=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button sent=(Button)findViewById(R.id.set);
        Button reset=(Button)findViewById(R.id.reset);
        final TextView text=(TextView)findViewById(R.id.textView);

        sent.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                text.setText(String.valueOf(++count));
                setBadge(MainActivity.this,count);
            }
        });

        reset.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                text.setText("0");
                count=0;
                setBadge(MainActivity.this,count);
            }
        });

    }

    public static void setBadge(Context context, int count) {
        String launcherClassName = getLauncherClassName(context);
        if (launcherClassName == null) {
            return;
        }
        Intent intent = new Intent("android.intent.action.BADGE_COUNT_UPDATE");
        intent.putExtra("badge_count", count);
        intent.putExtra("badge_count_package_name", context.getPackageName());
        intent.putExtra("badge_count_class_name", launcherClassName);
        context.sendBroadcast(intent);
    }

    public static String getLauncherClassName(Context context) {

        PackageManager pm = context.getPackageManager();

        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);

        List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0);
        for (ResolveInfo resolveInfo : resolveInfos) {
            String pkgName = resolveInfo.activityInfo.applicationInfo.packageName;
            if (pkgName.equalsIgnoreCase(context.getPackageName())) {
                String className = resolveInfo.activityInfo.name;
                return className;
            }
        }
        return null;
    }
}

Layout

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    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"
    >

    <TextView
        android:text="@string/hello_world"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Set Bage"
        android:id="@+id/set"
        android:layout_below="@+id/textView"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Reset Bage"
        android:id="@+id/reset"
        android:layout_below="@+id/set"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

</RelativeLayout>

執行結果



參考連結中的第二篇有提到一點要注意。

注意launcherClassName 必須被設定成   

android.intent.category.LAUNCHER

參考資料:

http://stackoverflow.com/questions/17565307/how-to-display-count-of-notifications-in-app-launcher-icon

http://my.oschina.net/ososchina/blog/352286

[分享]STOP:0X0000000BE

今天遇到一台電腦只要一插上USB(連接相機),就出現藍底白字0X000000BE,

查詢網上前輩們的分享,的確是有新的裝置,或是安裝了驅動造成的問題。



























另一個東西引起我的注意,Fortishield.sys ,網路上查詢,這是一套免費的防毒FortiClient

的檔案,心中想該不會是防毒要掃描USB出了錯。


重開機後,發現了奇慢無比的電腦,接下來第一個跳出來的就是對岸的衛士360啦,

有沒有搞錯,同時裝2套防毒,移除360後,重開機,接上相機,一切正常。


參考資料:



https://www.360totalsecurity.com/zh-tw/about/

http://www.forticlient.com/

2015年12月26日 星期六

[好軟體] AvaCam

之前在找一個可以拿webcam做縮時攝影的程式時找到的,


目前在win10使用上連拍6天都沒有問題,而且它可以做定時拍照的設定。


支援的OS:

Win 9x/ME/2000/XP/2003/Vista/7


主畫面




















連接好Webcam後,按下右下角的Start即可開始拍照



左半邊這邊是可以選擇三種拍攝模式


1.Manual ,也就是自己按下SnapShut才會拍下來。

2.Motionsave ,也就是有移動的物體時會自己拍照。

3.Autosave ,也就是定時拍照,秒數由2~3600秒。





















要看目前己拍攝的照片,可以點選左邊的Open/View。


















拍出來的照片分成4種類型,左上角可以選擇

1.Snapshots 就是手動按下Snapshot所拍的。

2.AutoSave 則是定時拍攝的照片。

3.Videos 則是影片。

4.MotionSave 則是偵測到移動所拍下來的照片。

下載網址:

http://www.freewarefiles.com/RGS-AvaCam_program_23445.html

「Android」android畫面同步到PC,使用Vysor

Vysor 是一個Chrome的應用程式,只要將Android裝置

開發者模式中的USB  Debug打開,一插上android,會自動安裝一個Vysor App

進到裝置中,之後就就可以開始同步或用滑鼠點擊操作手機/平板。

windows 我沒有成功連接過,但是MAC是可以的,只是有時候會趴袋,不會自己

啟動同步畫面,重開機或重啟ADB試試。


對囉,它也可以分享畫面用browser遠端操作。

唯一的缺點是我覺得它畫面的畫質沒有很優丫,雖然操作起來算順暢了。


詳細內容可以參考這一篇簡介,中文滴。

http://www.techbang.com/posts/25777-simple-steps-vysor-let-you-control-android-devices-on-your-computer-you-can-also-remote-control


參考網址:

http://steachs.com/archives/15646

「分享」18F47J53 PID 與VID

18f47j53 這顆MCU 有二組PID與VID,

boot-loader  mode
"Vid_04d8&Pid_003c"

applaction  mode
 "Vid_C251&Pid_1303"


boot-loader mode是進入一個boot-loader ,就類似一個簡易的

開機程式,讓我們可以更新Firmware。

applaction mode 的PID 也許會不一樣。

[Arduino] MAX 7219 模組

不多說,照片先來一張模組的照片,這個模組

搭配一顆Max7219 IC以及8*8 LED 矩陣,可以大大簡化我們對16支

腳位的控制,只要將編碼好的值寫入即可。














首先先接一下線,版子上面有5支腳


模組             Arduino
VCC    ---> VCC
GND   ---> GND
DIN     ----> Digital 8
CS       ---> Digital 9
CLK     ----> Digital 10



unsigned char i;
unsigned char j; 
 
int Max7219_pinCLK = 10;
int Max7219_pinCS = 9;
int Max7219_pinDIN = 8;


unsigned char disp2[6][8]={
  0x00,0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x00,  // L
  0x00,0x38, 0x10, 0x10, 0x10, 0x10, 0x38, 0x00,  // I
  0x00,0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x00,  // L
  0x00,0x38, 0x10, 0x10, 0x10, 0x10, 0x38, 0x00,  // I
  0x00,0x18, 0x24, 0x24, 0x24, 0x3C, 0x24, 0x00,  // A
  0x00,0x32, 0x2A, 0x26, 0x22, 0x22, 0x22, 0x00,  // N
};

 
void Write_Max7219_byte(unsigned char DATA) 
{   
  unsigned char i;
  digitalWrite(Max7219_pinCS,LOW);  
  for(i=8;i>=1;i--)
  {    
    digitalWrite(Max7219_pinCLK,LOW);
    digitalWrite(Max7219_pinDIN,DATA&0x80);
    DATA = DATA<<1;
    digitalWrite(Max7219_pinCLK,HIGH);
  }                                 
}
 
void Write_Max7219(unsigned char address,unsigned char dat)
{
  digitalWrite(Max7219_pinCS,LOW);
  Write_Max7219_byte(address);          
  Write_Max7219_byte(dat);               
  digitalWrite(Max7219_pinCS,HIGH);
}
 
void Init_MAX7219(void)
{
  Write_Max7219(0x09, 0x00);      
  Write_Max7219(0x0a, 0x03);      
  Write_Max7219(0x0b, 0x07);       
  Write_Max7219(0x0c, 0x01);      
  Write_Max7219(0x0f, 0x00);      
}
 
void setup()
{
 
  pinMode(Max7219_pinCLK,OUTPUT);
  pinMode(Max7219_pinCS,OUTPUT);
  pinMode(Max7219_pinDIN,OUTPUT);
  delay(50);
  Init_MAX7219();
}
 
void loop()
{ 
  for(j=0;j<6;j++)
  {
    for(i=1;i<9;i++)
      Write_Max7219(i,disp2[j][i-1]);
    delay(1000);
  }   
}

這樣子就會連續的顯示

L  ->  I  -> L ->  I  ->  A  -> N


程式碼來源:

http://www.electroschematics.com/10510/arduino-8-8-led-matrix/

[名詞定義] DMX512

DMX512 (Digital Multiplex)


DMX512協議最先是由USITT(美國劇院技術協會)發展成為從控制臺用標準數 位元接頭控制

調光器的方式,用來控制兩個戲劇舞臺燈光及效果。


它的電氣特性(根據EIA/TIA-485標準),也就是俗稱的RS-485 ,但是它的傳輸速度規定

250K bps,不可以切換鮑率(Baud Rate)


DMX 512 每次發送512 byte 的資料,每一個byte能夠表示0~255值。

值的定義由接收到的裝置決定。


 The protocol can handle up to 512 devices in a DMX network and communicates at 250 kbps baud rate. Each bit in the frame is generated every 4us.


DMX512 它是持續發送目前狀態的做法,假設你把Address 1 調成255,那每次

會發送 255,0,0,0,0,0,...............,0   出去,1秒內會送個幾10次目前狀態的資料。


DMX512 是一個單向的協定,只能傳輸資料,無法接收,而且它是採取


每一個裝置上可以設定Start Address ,至於每個裝置佔用了幾個Address,

要看裝置本身的設計,例如我有一個燈具,我設定它的Start Address 為8 ,

它佔用了3個Address,則第8個byte~ 第10個byte送的資料,可以去操作這

台燈具的功能。若我有另一台相同燈具Start Address也設8 , 則可以一起接受

控制,若第3台相同燈具我設Start Address為11,則不會與前2台一起作動。


由控制器接出來的線接到第一台燈具,再由第一台燈具的OUT接到第二台燈具,

以此類推,一直接下去。







圖片連結來源-維基百科


連接線有3種格式

XLR 5 pin

XLR 3 ping

RJ45



2015年12月23日 星期三

[賣摳Soft] 錯誤代碼 0X80070052

今天在公司,要把桌機做縮時攝影的檔案(縮了一週,超多照片),


要複制到USB結果出現


0X80070052: 無法建立目錄或檔案

試了2次都一樣,確認了檔案也是正常的,USB空間也還有2G,怎麼會COPY

不過去呢,後來試著把還沒複制過去的檔案,複制到上一層目錄 "非常正常"

所以推測是檔案數量問題,上網爬文了一下。



FAT32

  • Maximum disk size: 2 terabytes
  • Maximum file size: 4 gigabytes
  • Maximum number of files on disk: 268,435,437
  • Maximum number of files in a single folder: 65,534


下方最後一篇是這樣寫的:

FAT32的單一資料夾,最多只能容納1000個檔案,整個磁碟總共可容納268,435,437個檔案,同時單一檔案大小不可超過4GB。


除非真的非不得己,還是好好的整理一下檔案,分門別類吧。


資料來源:

https://technet.microsoft.com/library/Cc938937

http://www.skybook.tw/2015/05/APP-6141/

http://superuser.com/questions/446282/max-files-per-directory-on-ntfs-vol-vs-fat32

http://ithelp.ithome.com.tw/question/10002297

[名詞定義] 假陰 & 陰陽

假陰

大便味的咖哩

-->雖然味道是大便味,但咖哩就是咖哩。


假陽

咖哩味的大便。

-->雖然味道像咖哩,可是他還是大便。

2015年12月14日 星期一

[智語] 衛生紙

衛生紙之所以偉大,是因為它甘願奉獻出自己,讓我們脫身





原文網址: 沒帶衛生紙衝進廁所 邱子容寫糗事基測作文拿滿分 | ETtoday生活新聞 | ETtoday 新聞雲 http://www.ettoday.net/news/20120621/62434.htm#ixzz3uJ2juD8w 
Follow us: @ETtodaynet on Twitter | ETtoday on Facebook

[Java] Java Read EXIF

Java 讀取數位相片EXIF檔的程式碼
package exif;


import com.drew.imaging.jpeg.JpegMetadataReader;
import com.drew.imaging.jpeg.JpegProcessingException;
import com.drew.metadata.Directory;
import com.drew.metadata.Metadata;
import com.drew.metadata.Tag;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author flowercatswets
 */
public class Exif {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        File jpegFile = new File("/Users/flowercatswets/Desktop/test/P1080033.JPG");  
    
    Metadata metadata = null;  
        try {
            metadata = JpegMetadataReader.readMetadata(jpegFile);
            print(metadata);
        } catch (JpegProcessingException ex) {
            Logger.getLogger(Exif.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Exif.class.getName()).log(Level.SEVERE, null, ex);
        }
        
    }
    
     private static void print(Metadata metadata)
    {
        System.out.println("-------------------------------------");

      
        for (Directory directory : metadata.getDirectories()) {

          
            for (Tag tag : directory.getTags()) {
                System.out.println(tag);
                
               // String tagName= tag.getTagName();
                //String tagDes=tag.getDescription();
                
            }

            //
            // Each Directory may also contain error messages
            //
            if (directory.hasErrors()) {
                for (String error : directory.getErrors()) {
                    System.err.println("ERROR: " + error);
                }
            }
        }
    }
    
}


但是要先去拉一個專案的code下來

https://github.com/drewnoakes/metadata-extractor

Netbean滙不進這一個專案,所以我把裡面的Source資料夾下的程式碼COPY到

專案中,讓import可以正常,接下來找一張相片。

執行一下輸出結果

-------------------------------------
[JPEG] Compression Type - Baseline
[JPEG] Data Precision - 8 bits
[JPEG] Image Height - 3000 pixels
[JPEG] Image Width - 4000 pixels
[JPEG] Number of Components - 3
[JPEG] Component 1 - Y component: Quantization table 0, Sampling factors 1 horiz/1 vert
[JPEG] Component 2 - Cb component: Quantization table 1, Sampling factors 1 horiz/1 vert
[JPEG] Component 3 - Cr component: Quantization table 1, Sampling factors 1 horiz/1 vert
[JFIF] Version - 1.1
[JFIF] Resolution Units - none
[JFIF] X Resolution - 1 dot
[JFIF] Y Resolution - 1 dot
[JFIF] Thumbnail Width Pixels - 0
[JFIF] Thumbnail Height Pixels - 0
[Exif IFD0] Make - Panasonic
[Exif IFD0] Model - DMC-GF2
[Exif IFD0] Orientation - Top, left side (Horizontal / normal)
[Exif IFD0] Software - iPhoto 9.5.1
[Exif IFD0] Date/Time - 2014:07:13 16:31:27
[Exif SubIFD] Exposure Time - 1/400 sec
[Exif SubIFD] F-Number - f/10.0
[Exif SubIFD] Exposure Program - Program normal
[Exif SubIFD] ISO Speed Ratings - 100
[Exif SubIFD] Exif Version - 2.30
[Exif SubIFD] Date/Time Original - 2014:07:13 16:31:27
[Exif SubIFD] Date/Time Digitized - 2014:07:13 16:31:27
[Exif SubIFD] Components Configuration - YCbCr
[Exif SubIFD] Compressed Bits Per Pixel - 2 bits/pixel
[Exif SubIFD] Exposure Bias Value - 0 EV
[Exif SubIFD] Max Aperture Value - f/5.6
[Exif SubIFD] Metering Mode - Multi-segment
[Exif SubIFD] White Balance - Unknown
[Exif SubIFD] Flash - Flash did not fire, auto
[Exif SubIFD] Focal Length - 42 mm
[Exif SubIFD] FlashPix Version - 1.00
[Exif SubIFD] Color Space - sRGB
[Exif SubIFD] Exif Image Width - 4000 pixels
[Exif SubIFD] Exif Image Height - 3000 pixels
[Exif SubIFD] Sensing Method - One-chip color area sensor
[Exif SubIFD] File Source - Digital Still Camera (DSC)
[Exif SubIFD] Scene Type - Directly photographed image
[Exif SubIFD] Custom Rendered - Normal process
[Exif SubIFD] Exposure Mode - Auto exposure
[Exif SubIFD] White Balance Mode - Auto white balance
[Exif SubIFD] Digital Zoom Ratio - Digital zoom not used
[Exif SubIFD] Focal Length 35 - 84 mm
[Exif SubIFD] Scene Capture Type - Standard
[Exif SubIFD] Gain Control - None
[Exif SubIFD] Contrast - None
[Exif SubIFD] Saturation - None
[Exif SubIFD] Sharpness - None
[Xmp] XMP Value Count - 8
[Xmp] Lens - LUMIX G VARIO 14-42/F3.5-5.6  
[Xmp] Serial Number - F931109140259
[ICC Profile] Profile Size - 560
[ICC Profile] CMM Type - ADBE
[ICC Profile] Version - 2.1.0
[ICC Profile] Class - Display Device
[ICC Profile] Color space - RGB
[ICC Profile] Profile Connection Space - XYZ
[ICC Profile] Profile Date/Time - 星期六 八月 12 03:51:59 +08:00 2000
[ICC Profile] Signature - acsp
[ICC Profile] Primary Platform - Apple Computer, Inc.
[ICC Profile] Device manufacturer - none
[ICC Profile] XYZ values - 0.964 1 0.825
[ICC Profile] Tag Count - 10
[ICC Profile] Copyright - Copyright 2000 Adobe Systems Incorporated
[ICC Profile] Profile Description - Adobe RGB (1998)
[ICC Profile] Media White Point - (0.9505, 1, 1.0891)
[ICC Profile] Media Black Point - (0, 0, 0)
[ICC Profile] Red TRC - 0.0085908
[ICC Profile] Green TRC - 0.0085908
[ICC Profile] Blue TRC - 0.0085908
[ICC Profile] Red Colorant - (0.6097, 0.3111, 0.0195)
[ICC Profile] Green Colorant - (0.2053, 0.6257, 0.0609)
[ICC Profile] Blue Colorant - (0.1492, 0.0632, 0.7446)
[Photoshop] Caption Digest - 30 46 141 110 6 218 48 251 230 96 58 140 160 40 46 157
[IPTC] Coded Character Set - UTF-8
[IPTC] Application Record Version - 2
[IPTC] Digital Time Created - 16:31:27
[IPTC] Digital Date Created - 星期日 七月 13 00:00:00 +08:00 2014
[IPTC] Special Instructions - jyVgAHzDQNCOpuAZrUdFnQ
[IPTC] Date Created - 星期日 七月 13 00:00:00 +08:00 2014
[IPTC] Time Created - 16:31:27
[File] File Name - P1060712.JPG
[File] File Size - 9306586 bytes
[File] File Modified Date - 星期二 七月 15 23:28:01 +08:00 2014

參考資料來源:

https://github.com/drewnoakes/metadata-extractor

[名詞定義] TTL

TTL全名是 Through The Lens ,意思為"通過鏡頭"。

在還沒有有 TTL 之前,相機測光主要靠機身外的 Cds (Cadmium-Sulfide 硫化鎘光敏電阻),

容易受環境光影響,未能反映光線經過多層鏡片或加上濾鏡時出現的光量損失,

會造成曝光不足。

而 TTL 的測光元件則設於機身內部,約為鏡頭後接近底片的位置。由於是測量通過鏡頭

後的光線,所以 TTL 的準確度比機身外測光更為優秀。


參考來源: 

http://www.dcfever.com/news/readnews.php?id=3003

[名詞定義] EXIF

EXIF 是Exchangeable Image File的縮寫 , 這是一種專門為數位相機照片設定的格式。

這種格式可以用來記錄數位相片的屬性資訊,例如相機的品牌及型號、相片的拍攝時間、

拍攝時所設置 的光圈大小、快門速度、ISO等等資訊。除此之外它還能夠記錄拍攝資料,

以及照片格式化方式。



資料來源:

http://myblog-maurice.blogspot.tw/2011/11/javaexif.html

2015年12月12日 星期六

[Mac] Thunderbolt Ethernet in win 10

Thunderbolt Ethernet 在win10上熱拔插可能不會被偵測到。

26.Are Thunderbolt devices “hot pluggable” using Windows with Boot Camp?

The iMac (Retina 5K, 27-inch, Late 2014) and the Mac mini (Late 2014) support “hot pluggable” Thunderbolt devices using Windows 8 or 8.1 (both as 64-bit only).

For all other Mac computers, Windows 7, 8, and 8.1 scans and activates Thunderbolt devices connected to Thunderbolt ports only during the Windows startup process. If your device was not plugged in at start up, Windows will not detect it without a restart.


如果發生Thunderbolt Ethernet 找不到的情況,可以先考慮插著,然候重新啟動windows 10,或許可以解決這個問題。


資料來源:

http://forums.macrumors.com/threads/thunderbolt-hotplug-on-windows-10.1819920/

2015年12月5日 星期六

[Android] 用程式碼模擬被按下的效果

首先產生一個MoctionEvent


MotionEvent event = MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
MotionEvent.ACTION_DOWN, mView.getLeft() + 5, mView.getTop() + 5, 0);

接著把它丟給要被"摸"的View

view.dispatchTouchEvent(event);

參考網址

http://blog.csdn.net/aminfo/article/details/7887964

[android] zenpad 開發上遇到的問題

最近拿到公司新買的zen pad 8 ,用eclipse把APP傳上去時,出現了以下錯誤訊息
java.lang.UnsatisfiedLinkError: No implementation found for java.lang.Stringandroid.os.SystemProperties.native_get(java.lang.String, java.lang.String) (tried Java_android_os_SystemProperties_native_1get and Java_android_os_SystemProperties_native_1get__Ljava_lang_String_2Ljava_lang_String_2)

試了幾次都一樣,問了在華碩工作的朋友,這問題他們也遇到過,zenphone 2系列也會,

多試幾次,雖然無法啟動APP,但其實有安裝進去裝置裡,可以用手去點擊icon啟動APP。

2015年11月29日 星期日

[分享]輕軌試乘

路過C1站,看看沒什麼人排隊的FU,就去排隊試乘啦。(亦可事先預約)






















目前只能由C1站"上下"車,試乘過程中C1開到C4站中途不可上下車,


但每一站都會做一個停站動作。


車上刷卡機














月台刷卡機























經過測試,2個是連動的,不會因為你月台刷了和車上又再刷而多扣一次錢。

(目前怎麼刷一卡通都是扣零元滴)

接下來是很優的一點,駕駛和第一節車廂間是透明隔間,然候在發車前,

被人閃光燈狂閃~請愛護駕駛員丫~勿任意拍打餵食(閃光燈)丫。



俺曾聽說輕軌開不快,所以好奇用了GPS紀錄一下整段過程。






















分析一下,也就是最高時速為51.73km,但是開完整趟到我下車約16分鐘,

行駛距離4.05公里(來回),一共停了C2~ C3~C4~C3~C2~C1,平均時速

約16.76公里,每一站停下來時約30秒,在試乘過程中,直到回到C1站前都是

不可以上下車,停下來時門也不會開。其實明顯發現輕軌還是有受到紅綠燈影響。

平均每4分鐘才跑一公里左右。路上每一個紅綠燈口都有義交在指揮交通,確保

不會有人高雄式左轉 ,還算安全。


中途C3~C4站坐起來就不太舒服了,感覺地面品質沒有前面C1~C3那麼好,一直

扣扣扣的。而且車上的隔音沒有很好,搭的過程中感覺有點吵。

[分享]轉貼- 下班前做這14件事 明天工作更開心

轉貼來源 : 




成功人士在下班前,會做這些事:

1. 更新待辦事項列表

成功人士會隨時注意不斷變化的待辦事項,並利用下班前十分鐘,確認一整天的進度、調整待辦事項,免得明天早上工作時遺漏部分細節。

2. 整理桌面

整齊的辦公桌和電腦桌面,可以讓你思路更清晰、更有效率,也能更快找到重要文件。

3. 回顧自己完成的事

除了檢視待辦事項外,回顧完成事項也同樣重要;那可以在忙碌的一天結束後,為你帶來成就感、讓你更快樂。

4. 反思一整天的工作

成功人士不但會思考正在處理的工作,也會分析各種細節,例如何時出錯、為何會出錯等。

5. 處理那些「緊急」溝通事項

下班前,許多事情還是會不斷湧來,有些真的很緊急,有些可以等到明天。這考驗著你的時間管理能力,成功人士也有辦法決定何者需要立刻回應。

6. 保持專注

下班前心思很容易飄往別處;試著別讓自己分心,也不要去處理那些和工作無關的事。

7. 決定明天的主要目標

成功人士會準備好待辦事項,也會訂出並寫下明天的主要目標;把腦中的事物寫下來,就能更專心地面對其他的事。

8. 讓同事知道自己下班後的連絡狀態

成功人士會花一點時間決定,今天下班後同事可不可以、或是能用什麼方式找到自己,並把此事告知每個需要知道的人。

9. 檢視隔天早上的行程

一大早剛進辦公室,就發現自己五分鐘後得去開會,實在不是好的開始。成功人士會檢視行程、預先計畫,並在心中想像一整天的情況;那可以讓你隔天工作時更有信心,壓力也會比較小。

10. 不讓別人空等

成功人士不見得會完成每一件計畫中的事,也不一定會回覆每一封他們答應要回覆的郵件,但他們至少會告知對方,今天沒辦法完成對方的請求。

11. 向某個人表達感激之意

美好的辦公環境,建基於感激和認可之上。下班前向某個人表達感激之意,不但讓你自己更快樂,也可以讓別人更開心。

12. 向同事道別

這可以向你的上司和團隊成員展現你人性的一面,也能讓同事知道你要下班了。

13. 用正面的態度下班

下班之前,用微笑提振一下自己的心情;這樣一來,你在和同事道別之時,就會散發更正面的氣息,在他人心中留下好印象。

14. 他們真的會下班

成功人士知道,在工作和生活間取得平衡非常重要,也會在該下班的時候離開辦公室。(黃維德編譯)

轉貼來源 : 

[智語]一條輪胎給三個價,朋友 死黨 陌生人 你要跟誰買?

某人想買一條輪胎
他得到了三個報價:

熟人 報價是 850,
知己 報價是 830,
陌生人 報價 780

你會買誰的輪胎呢?...

結果,
他選擇了780的陌生人。
卻不知道熟人只掙了20;
知心人一分沒有掙,還倒貼50元的車費;
780的陌生人卻賺了580!!

最後,他輪胎卻是假的!後悔……
不是假貨太多,是你太貪了
不是熟人宰你,熟人是想給你最好的保障!


馬雲曾說過: 
熟人買賣,你賣給他多少錢,
都會覺得你賺他錢,賣給他多便宜也不領情!

你的成本、時間、運輸人家都不看在眼裡,
寧願被別人騙,讓別人賺錢,也不支持認識的人,

因為他心裡總是在想,你到底賺了他多少錢?
而不是你幫他省了多少錢 !

如果你有這種心理,那麼,
這就是窮人的思維!


富人之所以富,是願意照顧熟人生意,

相互關照,福報自然會多,朋友也會支持你,
財運才會越來越旺!
道理簡單,悟透財運自然旺!

這叫捧場!



轉貼來源:

2015年11月22日 星期日

[分享]背包修理

背包破洞,覺得丟掉可惜,

抱著一絲希望,來到萬箱之王。














老闆娘表示,可以修150元,

半小時完修。

修理過程是先把鬚鬚的部分剪齊,

然後上膠固定等乾燥,最後用工業縫紉機

車上2條線,修復完成圖。
















[Android]SQLite select count(*) from table


public int getCount(String mac) {
  int count = 0;

  String sql = String.format("Select count(*) from %s where %s='%s'", TABLE_NAME, KEY_ID, mac);
  Cursor cursor = db.rawQuery(sql, null);

  try {
   cursor.moveToFirst();
   count = cursor.getInt(0);
   cursor.close();
  } catch (Exception e) {

  }

  return count;
 }

不要直接去取count這攔位,會GG。

參考資料:

http://stackoverflow.com/questions/5202269/sqlite-query-in-android-to-count-rows

2015年11月18日 星期三

[Java]透過Java hidAPI來取得usb裝置資訊

his is JNI wrapper around C/C++ HIDAPI library providing simple java API to work with devices such as USB gamepads, joysticks, keyboards, mice on Mac, Linux and Windows.

它是一個將C/C++ HID API library 透過JNI包裝成JAVA可以使用的API,

並且可以在Mac , Linux以及Windows上運作,可以偵測的裝置例如

遊戲搖桿,鍵盤, 滑鼠等等。


首先下載Java HidAPI

https://code.google.com/p/javahidapi/downloads/list

將jar檔加入專案,撰寫以下程式碼


import com.codeminders.hidapi.HIDDeviceInfo;
import com.codeminders.hidapi.HIDManager;
public class JavaApplication37 {

 
    
    public JavaApplication37()
    {
     
    }
    public static void main(String[] args) {

      try {
            com.codeminders.hidapi.ClassPathLibraryLoader.loadNativeHIDLibrary();
            HIDManager hidManager = HIDManager.getInstance();
            HIDDeviceInfo[] infos = hidManager.listDevices();
            for (HIDDeviceInfo info : infos) {
                System.out.println("info: " + info.toString());
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

輸出結果如下

info: HIDDeviceInfo [path=USB_05ac_8242_0x7fab6b40fc50, vendor_id=1452, product_id=33346, serial_number=, release_number=256, manufacturer_string=Apple, Inc., product_string=Apple IR, usage_page=12, usage=1, interface_number=-1]

info: HIDDeviceInfo [path=USB_046d_c52b_0x7fab6b623d40, vendor_id=1133, product_id=50475, serial_number=, release_number=9216, manufacturer_string=Logitech, product_string=USB Receiver, usage_page=1, usage=6, interface_number=-1]

info: HIDDeviceInfo [path=, vendor_id=0, product_id=0, serial_number=, release_number=0, manufacturer_string=, product_string=Apple Mikey HID Driver, usage_page=12, usage=1, interface_number=-1]

info: HIDDeviceInfo [path=USB_046d_c52b_0x7fab6b622cb0, vendor_id=1133, product_id=50475, serial_number=, release_number=9216, manufacturer_string=Logitech, product_string=USB Receiver, usage_page=65280, usage=1, interface_number=-1]

info: HIDDeviceInfo [path=USB_046d_c52b_0x7fab6b623490, vendor_id=1133, product_id=50475, serial_number=, release_number=9216, manufacturer_string=Logitech, product_string=USB Receiver, usage_page=1, usage=2, interface_number=-1]


環境:

OS X 10.10

java version "1.8.0_40-ea"

Netbeans  IDE 8.0.1

「智語」】閱讀他人 code 的雅量

很多作家每天還是大量閱讀別人的作品,欣賞和學習別人的才華。日常所讀的文章,多半比自己所寫的多得多。藝術家、建築師也不是整天埋頭苦幹,常常要去看過別人的作品。
但為什麼我們不是這樣學寫程式?為什麼覺得參加程式競賽得獎才是程式高手?
因為「急就章」。想要再最短時間內獲得一項技能的「認證」,最有效率的方式,就是針對認證所考驗的項目做準備,不考的就不準備。因此,學生會先去搞清楚,程式競賽考什麼?程式設計課期末考什麼?碩士班入學考什麼?程式技能檢定考什麼?某公司面試考什麼?
但急就章訓練出來的,問題很大。就拿進到研究所的學生來說,看不懂別人的程式碼,寫出很爛的程式碼的,不會用程式開發工具的,比比皆是。我們為了要做系統研發,不得不花很多時間訓練學生去看別人寫的程式碼,但不少學生視為畏途,甚至會排拒,以為要寫出屬於自己的程式才是神人。


截錄文章來源:

http://buzzorange.com/techorange/2015/11/12/coding-2/