星期四, 12月 30, 2010

[Alfresco] Alfresco Store

version://versionStore  contains the archived versions of all documents with cm:versionabel aspect
 (previously version://lightWeightVersionStore) 

archive://SpacesStore is the trash can of workspace://SpacesStore

system://system is very small and contains software information version

Reference:
Alfresco store
Node References and Store Protocols

[Mac] 安裝無蝦米輸入法

Reference:
[教學] Intel Mac上嘸蝦米輸入法解決方案
Mac OSX 嘸蝦米輸入法
超快速,超簡單安裝無蝦米輸入法

星期三, 12月 29, 2010

[Alfresco] TrashcanDialog.java

印出lucene query string的結果,方便追踨。


Print Var.
Repository.getStoreRef():

workspace://SpacesStore

property.getArchiveRootRef():
archive://SpacesStore/20f1f650-07d2-4a93-b464-ac8e9f5ecf59

getArchiveRootRef().getStoreRef()
archive://SpacesStore

private final static String NAME_ATTR = Repository.escapeQName(ContentModel.PROP_NAME);
\{http\://www.alfresco.org/model/content/1.0\}name


private final static String USER_ATTR = Repository.escapeQName(ContentModel.PROP_ARCHIVED_BY);
\{http\://www.alfresco.org/model/system/1.0\}archivedBy


private final static String DATE_ATTR = Repository.escapeQName(ContentModel.PROP_ARCHIVED_DATE);
\{http\://www.alfresco.org/model/system/1.0\}archivedDate


System.out.println(ContentModel.PROP_NAME);
{http://www.alfresco.org/model/content/1.0}name

System.out.println(ContentModel.PROP_ARCHIVED_BY);
{http://www.alfresco.org/model/system/1.0}archivedBy

System.out.println(ContentModel.PROP_ARCHIVED_DATE); 
{http://www.alfresco.org/model/system/1.0}archivedDate

property.getArchiveRootRef():
      archive://SpacesStore/20f1f650-07d2-4a93-b464-ac8e9f5ecf59

Search Filter Rule:

search for ALL items in the archive store:
       PARENT:"archive://SpacesStore/20f1f650-07d2-4a93-b464-ac8e9f5ecf59" AND ASPECT:"{http://www.alfresco.org/model/system/1.0}archived"

search for user 
@\{http\://www.alfresco.org/model/system/1.0\}archivedBy:test1 AND PARENT:"archive://SpacesStore/20f1f650-07d2-4a93-b464-ac8e9f5ecf59" AND ASPECT:"{http://www.alfresco.org/model/system/1.0}archived"

search for user & today
@\{http\://www.alfresco.org/model/system/1.0\}archivedDate:[2010\-12\-30T00\:00\:00 TO 2010\-12\-30T14\:10\:41] AND @\{http\://www.alfresco.org/model/system/1.0\}archivedBy:test1 AND PARENT:"archive://SpacesStore/20f1f650-07d2-4a93-b464-ac8e9f5ecf59" AND ASPECT:"{http://www.alfresco.org/model/system/1.0}archived"

search for user & last 7 today
@\{http\://www.alfresco.org/model/system/1.0\}archivedDate:[2010\-12\-23T14\:12\:13 TO 2010\-12\-30T14\:12\:13] AND @\{http\://www.alfresco.org/model/system/1.0\}archivedBy:test1 AND PARENT:"archive://SpacesStore/20f1f650-07d2-4a93-b464-ac8e9f5ecf59" AND ASPECT:"{http://www.alfresco.org/model/system/1.0}archived"

Reference:
NodeArchiveService
Archive Store Lucene query
Calling Alfresco Web Services from C# 
TrashcanDialog.java  (source code)

[Alfresco] Lucene Language Note

Lucene Language

This is the recommended language as it is supported by the recommended indexer.
The query language is described on the Lucene site http://lucene.apache.org/java/2_4_0/queryparsersyntax.html. The QueryParser has been modified to allow wild cards at the start of wild card query elements otherwise the syntax is the same.
Note that certain characters need to be escaped in the query string. There is support to do this on a static method on the LuceneQueryParser.
The following fields are available

[Windows] Route

路由設定Command
ROUTE [-f] [-p] [-4|-6] command [destination]
                  [MASK netmask]  [gateway] [METRIC metric]  [IF inter

  -f           清除所有閘道項目的路由表。如果這與其中
               一個命令一起使用,將會在執行命令之前
               清除表格。

  -p           與 ADD 命令一起使用時,路由在系統開機期間
               可持續。依預設,系統重新啟動時並不會
               保留路由。對於會影響適當的持續路由的
               所有其他命令則會略過。Windows 95
               中不支援此選項。

  -4           強制使用 IPv4。

  -6           強制使用 IPv6。

  command      下列其中一個:
                 PRINT     列印路由
                 ADD       新增路由
                 DELETE    刪除路由
                 CHANGE    修改現有的路由
  destination  指定主機。
  MASK         指定下一個參數是 'netmask' 值。
  netmask      指定此路由項目的子網路遮罩值。
               如果沒有指定,將預設為 255.255.255.255。
  gateway      指定閘道。
  interface    指定之路由的介面號碼。
  METRIC       指定計量,例如目的地的成本。

目的地使用的所有符號名稱將會在網路資料庫檔案 NETWORKS
中查詢。閘道的符號名稱是在主機名稱資料庫檔案 HOSTS 中查詢。

如果是 PRINT 或 DELETE 命令,目的地或閘道可以是萬用字元
(指定星號 '*' 為萬用字元),或可以省略閘道引數。

如果目的地包含 * 或 ?,便會視為殼層模式,且只會列出相符的
目的地路由。'*' 表示與任何字串相符,
而 '?' 表示與任何一個字元相符。範例: 157.*.1, 157.*, 127.*, *224*。

只有 PRINT 命令才允許模式對應。
診斷注意事項:
    不正確的 MASK 會產生錯誤,例如當 (DEST & MASK) != DEST 時。
    範例> route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1 IF 1
          路由新增失敗: 指定的遮罩參數不正確。
(Destination & Mask) != Destination。

範例:

    > route PRINT
    > route PRINT -4
    > route PRINT -6
    > route PRINT 157*          ....只列印符合 157* 的項目

    > route ADD 157.0.0.0 MASK 255.0.0.0  157.55.80.1 METRIC 3 IF 2
                   目的地^      ^遮罩      ^閘道            計量^    ^
                                                               介面^
      如果沒有指定 IF,將會嘗試為指定的閘道尋找最佳的介面。
    > route ADD 3ffe::/32 3ffe::1

    > route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2

      CHANGE 只用來修改閘道及 (或) 計量。

    > route DELETE 157.0.0.0
    > route DELETE 3ffe::/32


Testing:
route add 10.15.3.97 mask 255.255.255.255 192.168.123.1 (gateway:vpn route ip)

星期五, 12月 24, 2010

[Alfresco] 目錄


Alfresco的檔案放置目錄結構,此版本為3.4.5

../alf_data
        /audit.contentstore
        /backup-lucene-indexes
        /contentstore
        /contentstore.deleted (deleted objects)
        /lucene-indexes

星期四, 12月 16, 2010

[Alfresco WebService]Ticket could not be found when calling callback handler

三種解法Aflreso Webserver login後Ticket有時候會無法正常取得的方法:

1 - start new session for for every separate thread.
2 - store authenticationDetails in the user's session, and use it to call the webservice

登入後使用session keep AuthenticationDetails 物件
AuthenticationUtils.startSession("user", "password");
    request.getSession().setAttribute("authenticationDetails", AuthenticationUtils.getAuthenticationDetails());
每次呼叫WebService時,把session中的AuthenticationDetails在設定回去
AuthenticationUtils.setAuthenticationDetails((AuthenticationDetails) req.getSession().getAttribute("authenticationDetails"));
Node[] nodes = repositoryService.get(new Predicate(null,spacesStore, qt));

3 - Modify AuthenticationUtils to store authenticationDetails in session instead of ThreadLocal, rebuild the SDK.

Reference:
Ticket could not be found when calling callback handler

星期二, 12月 14, 2010

[Wordpress] posts 相關


wp_posts table
--post_status:inherit,draft,publish,trash,auto-draft,pending
--post_type:attachment,nav_menu_item,page,post,revision


























星期二, 12月 07, 2010

[ZK] borderlayout Executions.createComponents

目前jsp頁面使用borderlayout zk tag遇到的問題
直接call jsp file 會出現"org.xml.sax.SAXParseException: The markup in the document preceding the root element must be well-formed."

有人提到的解法



你不能用Executions.createComponents來做,必須用一個include Component 或 iframe component 以setSrc的方式來操作。

星期一, 12月 06, 2010

[Java] Java如何讀取與寫入properties file Reading and Writing a Properties File

Properties properties = new Properties();
try {
properties.load(new FileInputStream("filename.properties"));
} catch (IOException e) {
}

// Write properties file.
try {
properties.store(new FileOutputStream("filename.properties"), null);
} catch (IOException e) {


上面寫法路徑一直讓我讀不到,採用package path是正確可以讀到的

資源的package path:local.my.properties
String repositoryLocation = null;
// create an instance of properties class
Properties props = new Properties();
URL url = Thread.currentThread().getContextClassLoader().getResource("local/my.properties");
try {
props.load(url.openStream());
// props.load(in);
repositoryLocation = props.getProperty(propertyName);
System.out.println("property:" + repositoryLocation);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return repositoryLocation;

後記:2012/03/22
使用以上作法會造成to many file open的議題產生(開檔後未關檔),不應該每要一個屬性就開properties檔案一次。可參考以下解法:
loading properties file from java package
When loading the Properties from a Class in the package com.al.common.email.templates you can use
Properties prop = new Properties();
InputStream in = getClass().getResourceAsStream("foo.properties");
prop.load(in);
in.close()
(Add all the necessary exception handling).
If your class is not in that package, you need to aquire the InputStream slightly differently:
InputStream in = getClass().getResourceAsStream("/com/al/common/email/templates/foo.properties");
Relative paths (those without a leading '/') in getResource()/getResourceAsStream() mean that the resource will be searched relative to the directory which represents the package the class is in.
Using java.lang.String.class.getResource("foo.txt") would search for the (inexistent) file/java/lang/String/foo.txt on the classpath.
Using an absolute path (one that starts with '/') means that the current package is ignored.

Reference:
Java Properties file examples

[Asp.Net] 将截断字符串或二进制数据。 语句已终止。

将截断字符串或二进制数据。语句已终止。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 将截断字符串或二进制数据。
语句已终止。


今天page執行sp產生的以上的錯誤訊息(架在簡體的機器上Orz),原來是sp裡面插入暫存table所宣告的欄位長度過小而引起的錯誤。

星期日, 12月 05, 2010

[Asp.Net] URL Rewrite 懶人包心得

記錄使用rewrite相關問題解法。
最後使用免費的套件來ISAPIRewrite處理
(如有其他需求可參考這篇Tip/Trick: Url Rewriting with ASP.NET )
不過順利解決完rewrite的問題後。
又遇到二個問題需要處理lol~不過解法都在找到的資料裡面,
以下只是記錄一下流程跟心得:)

星期五, 12月 03, 2010

[CSS] 解決div無法滿版的問題

修正DOCTYPE xhtml DIV無法滿版的問題,請加入以下語法。
html, body { margin: 0; padding: 0; height: 100%; border:none; }
之後的div內的heigth:100%就可以正常

Reference:
TIPS-Get 100% Height in XHTML

星期三, 12月 01, 2010

A Coder’s Guide to Writing API Documentation

A Coder’s Guide to Writing API Documentation

Peter Gruenbaum

Ever been in a situation where your manager asks you to write documentation for the APIs that you developed? Let’s face it, if you’re like most developers, you love to code and hate to write. Furthermore, writing takes time away from critical tasks you need to do, such as feature development and bug fixing.
It’s no surprise that API documentation often ends up being frustrating and confusing for the reader—it rarely gets the attention it deserves.
This article is a guide on how to write API documentation. I’ll describe the most important components of API documentation and provide some suggestions about how to make it effective. I’ll also give you some hints for creating good overviews, sample code and reference material, including where you should focus your time and attention to get the best effect.

其他你感興趣的文章

Related Posts with Thumbnails