我比較喜歡看技術方面的文章,每次都是看RSS的時候將鏈接拖到MyIE,然后統一來看,有時候機房要關門了也沒看完,我就從任務管理器里將MyIE的進程關掉,這樣下次打開MyIE時選擇打開上次關閉的網頁就可以繼續看了。
在我的快速啟動欄上有三個記事本的快捷方式,一個連到文檔中的Problem.txt,用于記錄一些要完成的任務、程序中需要新增的功能。都是什么時候想到就什么時候記上去,比較方便。第二個連到Task.txt,用于記錄要看的一些技術或要試用的軟件,都是在看技術文章時記下來的。
使用FreeTextEditor預覽Blog
使用http://xmlbuddy.com/ XmlBuddy Plugin
看Eclipse的VS.net皮膚http://www.sf.net/projects/eclipse-skins
看developworks上的Opensource中“SWT&JFace系列”
RCP(eclipse.org/rcp) RIA看收藏
開發一個遠程桌面輔助程序。
將ImageAnalyser改為standalone
Wink(Screencast)在安裝程序
用我的本本發的第一篇Blog哦,爽就一個字,呵呵
The Eclipse 3.1 has a new feature. Now the Java project settings like Compiler and Code Style can be shared with the entire team using the version control tool.
To do this right click the project in Package Explorer or Navigator view and got to either Java Code Style or Java Compiler options. Check the Enable project specific settings.
This will create a .settings folder in the project root. Eclipse will add and maintain the project specific configuration in this folder. Commit this folder to the version control. Thats it. Now the project settings are shared with the team. When the other team members synchronize with the repository they will get the project settings too. Any team member can update and check in the settings. Cool!
都在這幾個文件夾里:
org.eclipse.debug.ui/icons
org.eclipse.pde.ui/icons
org.eclipse.jdt.ui/icons
org.eclipse.vcm.ui/icons
org.eclipse.team.ui/icons
org.eclipse.ant.ui/icons
org.eclipse.help.ui/icons
org.eclipse.ui/icons
org.eclipse.ui.views/icons
org.eclipse.ui.console/icons
一個比較全的Icon網頁:
http://www.codehaus.org/~bwalding/eclipse-icons/以后找Eclipse的圖片就方便了,: )
The wizard in this code is a standard wizard that displays pages, then generates code in the doFinish method. What is most interesting about this class is that in performFinish, it demonstrates how to interact with Eclipse's process monitor for tasks that take a long time.

/**//**
* This method is called when 'Finish' button is pressed
* in the wizard. We will create an operation and run it
* using wizard as execution context.
*/

public boolean performFinish()
{
final String containerName = page.getContainerName();
final String fileName = page.getFileName();
IRunnableWithProgress op = new IRunnableWithProgress()

{
public void run(IProgressMonitor monitor)
throws InvocationTargetException

{

try
{
doFinish(containerName, fileName, monitor);

} catch (CoreException e)
{
throw new InvocationTargetException(e);

} finally
{
monitor.done();
}
}
};

try
{
getContainer().run(true, false, op);

} catch (InterruptedException e)
{
return false;

} catch (InvocationTargetException e)
{
Throwable realException = e.getTargetException();
MessageDialog.openError(
getShell(),
"Error", realException.getMessage());
return false;
}
return true;
}


/**//*
*/

/**//**
* The worker method. It will find the container, create
* the file if missing or just replace its contents, and
* open the editor on the newly created file.
*/

private void doFinish(
String containerName,
String fileName,
IProgressMonitor monitor)
throws CoreException

{
// create a sample file
monitor.beginTask("Creating " + fileName, 2);
IWorkspaceRoot root =
ResourcesPlugin.getWorkspace().getRoot();
IResource resource = root.findMember(
new Path(containerName));
if (!resource.exists() ||
!(resource instanceof IContainer))

{
throwCoreException("Container \"" +
containerName + "\" does not exist.");
}
IContainer container = (IContainer) resource;
final IFile file =
container.getFile(new Path(fileName));

try
{
InputStream stream = openContentStream();

if (file.exists())
{
file.setContents(stream, true, true, monitor);

} else
{
file.create(stream, true, monitor);
}
stream.close();

} catch (IOException e)
{
}
monitor.worked(1);
monitor.setTaskName("Opening file for editing
");

getShell().getDisplay().asyncExec(new Runnable()
{

public void run()
{
IWorkbenchPage page =
PlatformUI.getWorkbench().
getActiveWorkbenchWindow().getActivePage();

try
{
IDE.openEditor(page, file, true);

} catch (PartInitException e)
{
}
}
});
monitor.worked(1);
}

This code is a simple SWT wizard page. The most interesting characteristic of this class is in the handleBrowse method. This method uses Eclipse's ContainerSelectionDialog for displaying the folders in the workspace.

/**
* Uses the standard container selection dialog to
* choose the new value for the container field.
*/

private void handleBrowse()
{
ContainerSelectionDialog dialog =
new ContainerSelectionDialog(
getShell(),
ResourcesPlugin.getWorkspace().getRoot(),
false,
"Select new file container");

if (dialog.open() == ContainerSelectionDialog.OK)
{
Object[] result = dialog.getResult();

if (result.length == 1)
{
containerText.setText(
((Path)result[0]).toOSString());
}
}
}

Posted by: Michael Yuan on June 27, 2005 @ 07:55 PM
The JBoss TrailBlazer is a collection of interactive demos, runnable sample applications, technical articles, and other materials to help developers learn a new technology. These are part of JBoss's latest effort to make enterprise Java more easily accessible to everyone.
There are currently two EJB 3.0 related TrailBlazer applications. They are hosted on the latest JBoss AS 4.0.3 RC1, which comes with full EJB 3.0 support out-of-the-box, and is available for generic public over the Internet.
- The JBoss EJB 3.0 TrailBlazer focuses on the EJB 3.0 POJO programming model. It has 20 technical articles, more than a dozen live sample applications (with online source code), and several flash demonstrations. It covers almost all aspects of EJB 3.0 programming. Notable "trails" include:
- The JBoss IDE TrailBlazer has a series of flash demonstrations to show you how to develop, deploy, and debug a JBoss EJB 3.0 application from scratch using the IDE.
在Eclipse的插件體系中,所有的類庫文件都是以插件的形式存在的。如果你的Plugin項目要用到第三方API庫或者另一個工程的API,你可以將他們包裝成一個插件,這就是庫插件的含義。
在我們小組的設計中,Plugin和控制邏輯是分成兩個工程單獨開發的,Plugin主要實現界面功能,通過調用控制邏輯實現數據存儲、Blog發布、打印等功能,所以接觸到了制作庫插件這個過程,現在寫下來,希望有點幫助。
如何制作庫插件:
將庫工程轉換為Plugin工程,在MANIFEST.MF的overview里定義ID,在Runtime里加入你要公開的包(Exported Packages)。OK
如何使用庫插件,主要分為三步:
1、在Dependencies Tab的Required Plug-ins中加入你的庫插件(保證輸出項目時導出相應的庫插件)
2、然后Compute build path(使項目能夠順利通過編譯)
3、在運行對話框的Plugin Tab里單擊Add required plugins,這樣項目才能正常運行
有一點忘了就會挺郁悶的!
RCP Eclipse Plugin
詳細的制作Help過程我就不說了,在這里可以找到。
要注意三個問題:
1、添加的插件要齊全,使用Help要增加以下幾個插件:
org.apache.ant
org.apache.lucene
org.eclipse.help.appserver
org.eclipse.help.base
org.eclipse.help.ui
org.eclipse.help.webapp
org.eclipse.tomcat
2、在Build里添加html文件的信息,使html文件能正確導出,如:
bin.includes = plugin.xml,\
*.jar,\
plugin.properties,\
book.xml,\
html/,\
icons/
3、在html文件中不能有中文的鏈接(顯示為亂碼,服務器會提示找不到該文件),所以html和圖片的名稱盡量用英文,內容用中文倒沒有問題。
In some small companies, we may encounter such problems: Having some excellent ideas or innovation, but have no time to implement due to the afraid of disorder existing plans. It's a bad impact for innovation.
Some guys have developed a method: Hackathon. With this method, feedburner group add 7 useful functions to their feed reader software in 1 day.
Now let's have a look at the Hackathon method: (too simple)
在每周一段規定的時間內(Feedburner小組用了一天),小組成員各自開發與項目內容無關的功能,自己認為好的想法都可以實現(最好是那種在幾個小時內就可以完成的功能),然后把做好的功能完好地集成到項目中。
some english, some chinese, enjoy it. : )
links about Hackathon:
http://blog.jot.com/archives/2005/05/09/jotspot-inagural-hackathon
A good website for us eclipsors. Enjoy it!
http://eclipse.techforge.com/index.php
想知道在JavaOne 2005上,哪些書最暢銷嗎? 這是J1上的圖書銷售商給出的Top 10:
其中有2本JBoss的書,3本Spring的書和1本Hibernate的。你是否需要補充一下你的書架了?
Thank you for your recent evaluation of ReportMill.
A few questions:
Did you have a chance to install and test the product?
Are there any product features in ReportMill that you would like or found missing?
Are you using an existing reporting tool?
Do you plan on embedding reporting in an existing or new application?
Does it make sense to schedule a demo to give you a quick overview of the features?
Regards,
Brian Noll
ReportMill Operations
brian@reportmill.com
1-(609)-678-0058
“Reporting for Java Developers”
Our tutorial is here :
http://reportmill.com/support/docs/tutorial.pdf
Our design documentation is here:
http://reportmill.com/support/docs/user_guide.pdf
Our developer documentation is here:
http://reportmill.com/rm8/support/DevDocs.html
Our video based training is here:
http://reportmill.com/support/videos/animation
Our Yahoo community is here:
http://groups.yahoo.com/group/reportmill/join
被Baggio搶了個先,555
真忙啊,又要搞課程設計,又要準備后天的Computer Architect考試。兩邊都不能放松,還希望兩邊都做得好。確是一件難事,有時看到同學還有時間玩游戲,而自己編程編的頭都大了,感覺是應該放松一下,自己其實沒必要那么忙的。時時想起遠方一位好友的話:大學除了學知識,還要學會怎么玩。可能正常的應該是這樣的,而我可能走了比較順暢的路,現在都沒法改回來了。
越來越“理解”《小薇》里的一句臺詞:聰明是他最大的缺點,帥是他天生的缺陷。呵呵
1. Learn to say, “I don’t know.” If used when
appropriate, it will be often.
2. It is easier to get into something than it is to get out
of it.
3. If you are not criticized, you may not be doing much.
4. Look for what is missing. Many know how to
improve what’s there, but few can see what isn’t
there.
5. Viewgraph rule: When something appears on a viewgraph
(an overhead transparency), assume the world
knows about it, and deal with it accordingly.
6. Work for a boss with whom you are comfortable
telling it like it is. Remember that you can’t pick
your relatives, but you can pick your boss.
7. Constantly review developments to make sure that
the actual benefits are what they are supposed to
be. Avoid Newton’s Law.
8. However menial and trivial your early assignments
may appear, give them your best efforts.
9. Persistence or tenacity is the disposition to persevere
in spite of difficulties, discouragement, or indifference.
Don’t be known as a good starter but a
poor finisher.
10. In completing a project, don’t wait for others; go
after them, and make sure it gets done.
11. Confirm your instructions and the commitments of
others in writing. Don’t assume it will get done!
12. Don’t be timid; speak up. Express yourself, and
promote your ideas.
13. Practice shows that those who speak the most
knowingly and confidently often end up with the
assignment to get it done.
14. Strive for brevity and clarity in oral and written
reports.
15. Be extremely careful of the accuracy of your
statements.
16. Don’t overlook the fact that you are working for a
boss.
• Keep him or her informed. Avoid surprises!
• Whatever the boss wants takes top priority.
17. Promises, schedules, and estimates are important
instruments in a well-ordered business.
• You must make promises. Don’t lean on the
often-used phrase, “I can’t estimate it because it
depends upon many uncertain factors.”
18. Never direct a complaint to the top. A serious
offense is to “cc” a person’s boss.
19. When dealing with outsiders, remember that you
represent the company. Be careful of your
commitments.
20. Cultivate the habit of “boiling matters down” to the
simplest terms. An elevator speech is the best way.
21. Don’t get excited in engineering emergencies. Keep
your feet on the ground.
22. Cultivate the habit of making quick, clean-cut
decisions.
23. When making decisions, the pros are much easier to
deal with than the cons.Your boss wants to see
the cons also.
24. Don’t ever lose your sense of humor.
25. Have fun at what you do. It will reflect in your work.
No one likes a grump except another grump.
It's a bug fix version.
The last release candidate version.
After weeks, Eclipse3.1 Release will be able to download.
我們在寫Plugin程序時,涉及的類一般都比較多(可能來自各個插件),有時候只知道類的名字,但不知道類所在的包名,查文檔又有點浪費時間。
但假如我們能夠記住該類的一個方法或字段的話,我們就可以在類名后輸入".方法名"或".字段",然后按Ctrl+1,或右鍵選擇Quick Fix,Eclipse就會提供一個import列表,從中選擇正確的包名就可以了。
RCP學習筆記(RCP Tutorial)
在一個RCP中,我們將org.eclipse.core.runtime.applications擴展(extension)定義為工程中主程序的id,將org.eclipse.ui.perspectives擴展定義為工程中Perspective的id。
RCP的最小Plugin集合為org.eclipse.core.runtime、org.eclipse.ui,所以我們肯定要將他們加到Dependencies Tab
Plugin.xml用到的變量(如:%pluginName)在build.properties里定義,可以通過它實現國際化
plugin.xml的大體結構:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.1"?>
<plugin
id="org.eclipse.ui.tutorials.rcp.part1"
name
version
provider-name
<runtime>
<library name="yourproject.jar">
<export name="*">
</library>
</runtime>
<requires>
<import plugin="org.eclipse.core.runtime"/>
<import plugin="org.eclipse.ui"/>
</requires>
<extension
id="RCPApplication"
point="org.eclipse.core.runtime.applications">
<application>
<run
class="your application path">
</run>
</application>
</extension>
<extension
point="org.eclipse.ui.perspectives">
<perspective
name="Display Name"
class=
id="eclipse.ui.tutorials.rcp.part1.RCPPerspective">
</perspective>
</extension>
</plugin>
由于歷史原因,eclipse優先考慮plugin的id而不是最頂層元素(如extension)的,所以盡管plugin.xml聲明extension的id為RCPApplication,但這個extension的id還是org.eclipse.ui.tutorials.rcp.part1.RcpApplication。而perspective的id寫在了perspective這個子元素里(不是頂層id),所以他的id要寫成org.eclipse.ui.tutorials.rcp.part1.RCPPerspective,而不能像RCPApplication extension的id那樣縮寫。
Main program:
主程序入口由org.eclipse.core.runtime.applications extension指定,告訴Eclipse runtime生成一個它的實例。Main program要實現IPlatformRunnable接口,程序執行代碼放在run()里。
一個Perspective(視角:由視圖、編輯器、導航器組成)
至少要定義一個Perspective,實現IPerspectiveFactory,并將它賦值給org.eclipse.ui.perspectives extension。這個接口最主要的方法是createInitialLayout(),他負責管理程序start時views和editor的放置方式等。
Workbench Advisor管理Workbench上的toolbar、perspectives等的添加和刪除(主要方法:getInitialWindowPerspectiveId()返回默認Perspective的id)
文章最后提到怎么部署一個獨立的RCP程序,步驟比較煩,3.1M7以上版本可以參考PainFree RCP
Problem Description:新建了一個RCP Mail的Template Example,運行正常,但是當我將在另一個RCP工程里建好的View放進來時,工程運行就拋出Invalid Menu Extension (Path is invalid): org.eclipse.ui.edit.text.gotoLastEditPosition,而且菜單和工具欄里多出了一些Eclipse自己的東西(如Search,Go to Last Edit Location)。搗動半天未果,后來偶然發現另外一個一模一樣的運行配置運行OK,只是使用了另一個Workspace,比較一下發現,出錯工程的Workspace多了三四個Plugin的配置(org.eclipse.core.resources,org.eclipse.core.runtime,org.eclipse.debug.core,org.eclipse.debug.ui),而成功的工程workspace只有org.eclipse.ui.workbench的Plugin配置,其他都一樣,即使我復制過來也不好使。現在只能用以前的那個成功的配置了,好使,但不知道為什么會出現上述情況,
難道是成功的工程已經將一些Extension注冊了,所以后面的工程都用不了。
可能的原因:今天看Eclipse的RCP Tutorial時注意到Eclipse RCP所需的Plugin最小集是org.eclipse.core.runtime和org.eclipse.ui,又記起昨天使用了PDE的調試功能,所以org.eclipse.debug.core,org.eclipse.debug.ui可能是調試時生成的,或者是以前別的項目用過出錯工程的workspace目錄,生成了一些別的Plugin目錄,而多出的Plugin在Plugin.xml文件里注冊的menu在我的程序里沒有被添加(或者沒有定義對應的MenuPath),于是就拋出了:Invalid Menu Extension (Path is invalid)
不過還有一個問題:怎么workspace的.Plugin文件夾里只有org.eclipse.ui.workbench而沒有org.eclipse.core.runtime,有誰知道這是為什么嗎?