Eclipse 無法開啟

eclipse

 

剛剛開啟Eclipse 時發現,在開啟晝面上停止很久,無法開啟。

Du2lD

在網路上找了一陣子,發現是上一次非正常關閉令此發生。

在工作​​區workspace 目錄中,有一個.metadata目錄,裡面是工作區及各插件的信息,刪除此目錄,再重啟eclipse,

便可以正常啟動eclipse了,但原來工作區的配​​置和項目信息也都消失,直接顯示的是eclipse歡迎界面。

經google一下後,發現 Read the rest of this entry

Eclipse autocomplete/Intellisense

eclipse

 

用過XCode 寫Objective-C iOS Program, 和Visual Studio 寫C#

就會知道 Intellisense 功能有多強大 ,打首字便可開始提示,以及大小寫校正等。

而Eclipse 預設是沒有開啟此功能,對於不習慣按熱鍵的人來說實在是有點不方便。

想要開啟首字開始自動提示的功能的話,只要在 Windows -> Preferences -> Java -> Editor -> Content Assist

Screen Shot 2013-09-23 at 2.17.09 PM

  1. 勾選 “Enable auto-activation" 的選項
  2. Auto activation delay – 提示出現的延遲時間,建議可以設為 50 (本人習慣)
  3. Auto activation triggers for Java – IDE 遇到何種字元會自動啟動提示,
    預設只有 dot “.",請改為 .abcdefghijklmnopqrstuvwxyz(,
  4. Auto activation triggers for Javadoc 在註解區塊中遇到何種字元會啟動提示,預設是 @ 及 #
  5. 完成後 Apply -> OK

現在可以在 Ecplise 中使用如Xcode 及 Visual Studio 一樣的autocomplete 功能。

要留意的是Eclipse 用這個會比較慢一點。

Eclipse 換Theme,換Color

eclipse

對程式設計師來說很喜歡使用黑底白字的(PS.自己覺得顯得格外專業=P )

在eclipse 內開始時是預設使用白底的,

從前我會在http://eclipsecolorthemes.org/這裡下載回來,

再Import 入Eclipse 轉顏色。

今天介紹大家另一個方法。

只要裝一個叫 Eclipse Color Plugin就可以了
Eclipse > Help > Install New Software > add following URL
http://eclipse-color-theme.github.com/update

Screen Shot 2013-09-23 at 12.37.54 PM

 

安裝完成後在Preferences 內的 Appearance ->Color Theme 改一改即可 =) Amazing

Screen Shot 2013-09-23 at 12.45.07 PM

 

是不是很容易呢 =]

 

九月I.T.界發報會

九月I.T.界發報會 ,你準備好了?

20130819110609143

2/9 – 魅族MX3新機發報會,將會發報最新手機!重點係:黃章稱其「雖然比 MX2 大了一圈但手感很好,Flyme OS 3.0 非常棒,日常單手操作也很方便,省電和發熱都有很好地最佳化」。最後他也直言市場上「沒有比這個更好用的大螢幕手機」。

from : 魅族社區

Samsung-Galaxy-Note-III

4/9 – Samsung 發報NoteIII – 預計5.7″ 超大屏, Exynos 5 Octa-core processor, Mali 450 GPU with 8 cores. It will have 3 GB of RAM.

from : ThedoridArea

xqq20130822-4-1377105222.jpg.pagespeed.ic.MJYw9ffIFv

5/9 – 小米發報會 – 預計第三代小米手機,還有可能是小米電視?小米平板?

from : Engadget

xpegatron-iphone-5c.jpg.pagespeed.ic.VFXVNzxDjb

 

iphone_5c_shell_compared

10/9 :  「傳聞」Apple 發報會 – 相信是今年最多人等待的聚會。九月這個發報會相信只會iphone 5c 5s 和 iOS 7 正式推出,iPad 系列預計十月才會再有發報會。並預計九月尾出貨。

from : gsmarena

nokiawinrttablet_large_verge_medium_landscape

26/9 : 「傳聞」Nokia 發佈平板電腦?

from : theverge

 

分享就是力量

牛钉@面牵一线(北京路)

其實這是一篇廣告文。其實這也是一篇心情日記。

兩年前筆者我與一位友人開了這個Blog,簡介是這樣的:

希望透過此Blog 紀錄與分享我們對科技、網路和生活的一些觀點與感想,更希望可以吸引到大家一起分享和討論。

因為當時香港分享和討論科技和網路的Blog很少,大多數的Blog或新聞都只停在消費及娛欒層面,對技術及發展趨勢的討論真是少之又少。所以希望藉這個Blog可以吸引到大家來相互交流有關科技和網路的一些觀點與感想。

轉眼間過了兩年,因為種種原因很少在這里出文,漸漸由出文變成到社交網站轉貼新聞/文章。但這兩年來香港分享和討論科技和網路的地方還是很少,科技網站因為營收,始終都係要主打新聞走大眾路線;新媒體如主場新聞也很少有關科技的文章,而且有關文章往往質素參差。

雖然如今連Google Reader也已經關門大吉,但我始終認為寫Blog比在微網誌和SNS分享好,因為社交網站的內容轉瞬即逝,過水不留痕般很難找回 (就算現在Facebook 有了 Graph Search還是很難做到)。但Blog還是有可能透過被搜尋、被人轉貼流傳、被按讚或分享而流傳下去。

其實這個Blog所做的一切最重要是分享。我最希望是可以做到拋磚引玉,引起大家一起討論和分享大家的看法。正如Inside 這篇文章所言,寫blog分享其實算是一個學習和裝備自己的過程,分享之前先要吸收新的資訊和知識,然後經過思考分析轉化成自己的觀點去分享,然後透過分享你可以遇到更多願意向你分享的人。樂於分享的收穫實在太多,你可以看看Lawrence Lin的分享

「If you never try, you’ll never know.」

換個角度講,就算文章完全沒人看,也可當成自己在歸納想法、整理資訊。

所以我希望大家不要吝嗇,盡情在這個blog裹、FacebookTwitter微博或者其他途徑表達你的意見和睇法。如果你有興趣加入寫Blog,我們也非常歡迎。

如果你還有其他想法或者想我們寫些甚麼,歡迎電郵或留言給我們。

Volley: Google 自家制 Android Network Library – ImageLoader

上回: Google I/O 2013 (1) – Volley: Google 自家制 Android Network Library

初試試Google 的Volley Library , 發現是比從前簡單了一點兒,由於沒有任何的Document,只有上網找找人家的案例再從錯誤中學習一下。今次講一講ImageLoader ,從前但部份也是用github上某個大大的Library 吧,今次試試使用volley實作。

首先,Volley 已經有很完善的Http Request 的流程,也有一推Caching Helper。

要做一個類ImageLoader Library ,Volley內已經有以下元件:

  • ImageLoader ( com.android.volley.toolbox.ImageLoader)
  • RequestQueue
  • ImageCache

實戰過程中,沒有像Youtube Google 神使用得那麼簡單。Youtube 內有BitmapLruCache,但是原來它的tool內沒有包括在內,需要用家親自處理。ImageLoader 內需要的是一個RequestQueue 處理Request ,及一個ImageCache。

/**

* Constructs a new ImageLoader.

* @param queue The RequestQueue to use for making image requests.

* @param imageCache The cache to use as an L1 cache.

*/

public ImageLoader(RequestQueue queue, ImageCache imageCache) {

mRequestQueue = queue;

mCache = imageCache;

}

本人做了一個類BitmapLruCache的Class

/***

* Helper Class for Volley ImageLoader Bitmap ImageCache, since it need LruCache

* Memory Cache Class

* @author 阿目

*

*/

class VolleyBitmapLruCache extends LruCache<String, Bitmap> implements ImageCache {

public static int getDefaultLruCacheSize() {

final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);

final int cacheSize = maxMemory / 8;

return cacheSize;

}

public VolleyBitmapLruCache(Context context) {

this(context , getDefaultLruCacheSize());

}

public VolleyBitmapLruCache(Context context , int sizeInKiloBytes) {

super(sizeInKiloBytes);

}

@Override

protected int sizeOf(String key, Bitmap value) {

return value.getRowBytes() * value.getHeight() / 1024;

}

@Override

public Bitmap getBitmap(String url) {

return get(url);

}

@Override

public void putBitmap(String url, Bitmap bitmap) {

put(url, bitmap);

}

}

另外為了方便自己使用整個流程,也起了一個Class 為VolleyImageLoaderHelper,如下:

/***

* VolleyImageLoaderHelper  Class for Volley ImageLoader

* Memory Cache Class

* @author 阿目

*

*/

public class VolleyImageLoaderHelper {

// ImageLoader From Volley

private static ImageLoader sImageLoader;

/**

*

* @return Volley ImageLoader

*/

public static ImageLoader get() {

return sImageLoader;

}

public static void initImageLoader(Context context) {

if (sImageLoader != null) {

return;

}

sImageLoader = new ImageLoader(

Volley.newRequestQueue(context), // Volley Request

new VolleyBitmapLruCache(context) // Volley BitmapLruCacheHepler

);

}

}

第一次使用時,在e.g. MainActivity 下啟動VolleyImageLoaderHelper

VolleyImageLoaderHelper.initImageLoader(getApplicationContext());  // init VolleyImageLoaderHelper

VolleyImageLoaderHelper.get().get(url, new ImageListener() {

@Override

public void onErrorResponse(VolleyError error) {

img.setImageResource(R.drawable.ic_launcher);

}

@Override

public void onResponse(final ImageContainer response, boolean isImmediate) {

// response.getBitmap();   // 這個就是最後得來的Bitmap

}

}

這使得成個流程也非常簡單。

以下是 上面的簡單例子:github.com/extralam/VolleyImageHelper

*有沒有發現像流了一點東西呢?其實這個實作不是完全品,這個helper 是沒有做fileCache ,在Volley 內有DiskBasedCache可以幫助你完成這工作。

除此以外,Volley Library 已經有一個NetworkImageView 的widget 幫手處理Image 。

Google I/O 2013 (1) – Volley: Google 自家制 Android Network Library

Google IO 2013

前言

每一年既 Google I/O 都有好多好精彩既 Presentation。今年當然不會例外,除左現場網上直播的環節,其他同時間進行的環節已經上載到 GoogleDevelopers 的 Youtube Channel。有興趣可以到Youtube 或 Google I/O 2013 的主頁觀看,而筆者也會在這裏不定期分享一下本人有興趣的題目,也歡迎大家投稿分享。

Volley: Easy, Fast Networking for Android

講到 Android Network library,Java本身已經有Apache HttpClient、HttpURLConnection。咁點解Android 要做Volley?根據片中所講,因為以上方法有幾個問題:

  1. 網絡請求(Network Request) 是序列進行。(假設沒有用到Async Task)
  2. 當你旋轉屏幕時所有東西要重新從網絡載入一次,所以要自己處理緩存(cache)的問題
  3. 當View重用的時候,AsyncTasks會重疊 (AsyncTask stomp on recycled views)
  4. HttpURLConnection 在 Froyo 或以前的版本有兼容性間題

Google 推出Volley這個框架(framework),只要用很少的程式碼就可以處理到網絡請求,並解決以上的問題!在筆者看來,Volley 的功能就似Android 版的 ASIHTTPRequest (ASIHTTPRequest 是Objective-C 上知名的專門用來處理HTTP requests 的框架)。

Volley 有以下幾個特點:

  • 使用漂亮和簡單的API來執行REST請求
  • 將底層抽象化(abstracting)來統一REST請求機制 (也就是說,你不關心任何更多關於HttpClient的或HttpURLConnection類。在較低版本(GINGERBREAD)Volley使用AndroidHttpClient並沒有更高的使用HttpURLConnection類)
  • 非常快!根據片中所講,他們測試了Volley在Google與幾個不同的應用程序,Volley在當中是明顯的勝出
  • 可擴展!你可以用它為基礎創建自己的自定義類型的請求(以及回應處理/解析)

有興趣可以到以下地方下載:

https://android.googlesource.com/platform/frameworks/volley

Android Fragment 問題

Android 有一種新的開發模式是用Fragment, 但筆者我常常發現當用家按Home 鍵後,長時間後回來App就發會有null point Exception  問題。

這是因為os本身為你解放咗一些memory 問題。

解決方方是當使用者按Home 後,先保存Fragment 到Bundle 那裡去

以下是簡單的例子。

Fragment mContent;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null)
             mContent = getSupportFragmentManager().getFragment(savedInstanceState, “mContent");
if (mContent == null)
              mContent = new Fragment();
}
@Override
public void onSaveInstanceState(Bundle o) {
super.onSaveInstanceState(o);
getSupportFragmentManager().putFragment(o, “mContent", mContent);
}
本文是記得筆者自已的解法方法,希望也幫到你吧。

[實用文] Facebook 私隱設定 (Dec 2012版)

前言

最近Facebook 推出了Graph Search,可能好多人都怕自己的Facebook資料好容易被找到。雖然中文用戶有排都未可以用到(中文搜尋邊有咁易做),不過都係時間整理一下自己的Facebook私隱設定!不知道你對Facebook的私隱設定有幾了解?相信大部分的用家都會認為Facebook的私隱設定又多又亂,加上Facebook不斷改動它,用戶必定對此感到非常混亂。其實去年的十二月Facebook就私隱設定黎左一個大改版,變得更加方便同易用。(注:以下設定字眼以中文(香港)為準)

私隱捷徑

Facebook Privacy

相信大家都會發現在Facebook (桌面版)介面右上角有一個鎖形的小圖案。點擊後會彈出一個快速設定私隱的小窗口,這裏可以進行一些簡單的設定,分別可以設定你分享內容的對象、甚麼人可以透過Facebook聯絡你,以及增加封鎖名單。

“誰可以看到我的東西?”

Facebook Privacy

  • 在這可以更改以後內容(狀態更新、相片及其他內容的位置)您想與其分享的對象。

公開

朋友(+ 被標註的用戶的朋友)

只有自己

  自訂(包括特定群組、朋友名單或您已指定包括或排除的用戶)

工具會記住您上次發佈內容時選擇了與哪些觀眾分享;除非您作出更改,否則當您再次分享時會使用相同分享對象選項。例如,如果你為發佈內容選擇公開,除非當你進行發佈時更改此觀眾,否則你的下一個發佈內容也會屬於公開。此根據會於例如私隱捷徑及私隱設定等不同位置出現。當您於個別位置對分享對象選擇器作出變更,該變更將更新至於其他位置出現的分享對象選擇器。

  • 另外在這可以直接跳到活動記錄和檢視出現在其他人生活時報的樣子

“誰可以與我聯絡?”

Facebook Privacy

  • 在這可以設定收件匣的過濾功能,設定誰可以傳送訊息到你的收件匣。
  • 另外更可以設定誰可以傳送交友邀請給你。

“我該如何防止別人騷擾我?”

Facebook Privacy

  • 在這可以增加封鎖名單。

進階設定

在私隱捷徑按“顯示更多設定”可以進入進階設定。進階設定有幾個部份,先談私隱、生活時報和標籤及封鎖。

Facebook Privacy

  • 在進階設定除了可以更改以後內容的分享對象,更可以把過去的內容設定為僅限朋友

Facebook Privacy

  • 生活時報(Timeline)要另開一欄,是因為私隱設定包括了你分享的內容在別人動態消息出現的設定,而生活時報則是其他人主動到你的頁面所顯示的內容。
  • 另外在這可以設定別人能否標籤(Tag)你,如果你不想完全禁止朋友標籤你,筆者我強烈建議你將“在出現於生活時報前檢視被朋友標註在內的帖子?”及“在標籤出現於 Facebook 前先檢視別人新增到你帖子中的標籤?”設定成啟用

Facebook PrivacyFacebook Privacy

Facebook Privacy

  • 在這可以檢視及修改被你封鎖的用戶及應用程式,值得一提是在這裹加入封鎖名單有一個好處,它有搜尋建議(Search Suggestion)。例如你想將Candy Crash Sega封鎖,你可以鍵入 Candy或Crash它都會找到 Candy Crash Sega!(好!大家就去把Candy Crash Sega封鎖,來練習一下!)

Facebook Privacy

活動記錄

Facebook Privacy

在私隱捷徑按“查閱動態記錄”可以進入活動記錄。在這可以檢視你所有在Facebook 上作的活動,包括你發佈的內容、讚好、留言等等。另外,在這你可以修改你發佈的內容的分享對象以及是否在生活時報發佈。

Facebook Privacy

應用程式

除左以上三個進階設定,還要有應用程式及廣告值得留意。

  • 你使用的應用程式

Facebook Privacy

這是一個令人很痛苦的設定。因為你要在眾多個你已安裝的程式中去移除或逐一編輯它的設定。

建議你把所有沒有在使用的應用程式移除(如果你不記得那個程式是甚麼通常就是可以移除的程式)。然後逐一檢視剩下的應用程式的設定,例如有些程式要求你授權他們可以發表東西到你的Wall,但他們實際並沒有這個需要。

  • 即時個人化

Facebook Privacy

這個功能可以讓某些Facebook合作網站提供更設合你的個人化體驗,但同時也需要使用你的個人資料。

你可以當去到有關合作網站時選擇個別停用此功能去阻止它傳取你的資料。他也可以在這裏取消勾選去完全停用此功能。

  • 別人使用的應用程式

Facebook Privacy

這是Facebook私隱設定中最狡猾的地方,而且好多用家並不知道。無論先前的私隱設定設定得多嚴格,甚至只分享給你最親的朋友。但如果那些朋友的私隱設定比較鬆,你的個人資訊還是可能經由他們流傳出去。

這個設定就是控制哪些資料可以被朋友經由應用程式、遊戲以及網站分享

Facebook廣告

這個是比較新的設定,這裏是設定你是否允許Facebook用你的姓名或相片出現在他們的廣告當中。雖然現在只有“只限我的朋友”及“沒有人”選擇,但如果你不想見到你的相片在別人的廣告上出現,我強烈建議你兩個都設定成“沒有人” !

Facebook Privacy

編輯個人資料

Facebook Privacy

Graph Search 無疑會為Facebook以打開新的使用方式,像求職招聘。雇主會利用Graph Search 搜尋 “People who live in XXX and have worked at YYY."。而招聘人員將能找到你的唯一方法是你在個人資料選擇共享有關的信息。除左居住地、學歷及工作經驗,你還應檢視一下其他資料如宗教信仰、政治觀點等。

同場加映

Facebook 推出了Graph Search 後也有提及到 Graph Search的私隱是如何運作,有興趣可以到Facebook 有關Graph Search的專頁

另外他們也制作了影片教學。

How Privacy Works with Graph Search

How to Report or Remove a Tag on Facebook

後記

Facebook 的私隱設定是一門高深的學問,如果你想再了解多些,可以到Facebook 有關的專頁

Apple 真的擋不住攻擊嗎?

Apple 真的擋不住的攻擊嗎?

自Steve 離開人世後,Apple 被打得慘慘的。

  • 看看去年股價逹$702高位跌到現今的$470左右水平。
  • 往年人事大調動
  • 自家地圖問題
  • iPad Mini 被7寸平價Android 平板狂攻
  • 再來是4″ iPhone 5 擋不住五寸Android 電話

Tim Cook領軍後的新時代是否不能保得住招牌呢?為了頂一頂問題所在,先是把MAC系列砍價$200 增加NB 銷售數字 (這應該是前所未有的,上市只有四個月的機款作出減價。) ,再來是連續第三季發出現金股息。如何應付GOOGLE的Android系統,成了目前最大的挑戰。

ifc_mall_apple_steve_jobs

Read the rest of this entry

關注

有新文章發表時,會立即傳送至你的收信匣。

加入其他 602 位關注者