March 30, 2005
Do you really consider the successful importance of periodic buildings?
Today, I found a very interesting article on THSERVERSIDE.COM, and most of the idea is what is important to build such a similar day in the software development project. What is the purpose we have to achieve? Although the background of the article tells a stuff called Buildmonkey, a big space is really a problem that we are easy to ignore. If you do the project manager or responsible for configuring management, I suggest you look at this article, maybe there will be inspiration.
Original text:
http://www.theserverside.com/articles/article.tss?l=buildcessMANagement
Posted @ 2005-03-30 15:16 Big Stomach Reading (18) | Comments (0) | Edit Collection
[Eclipse notes] Eclipse is really a killer of commercial IDE?
Today, I saw an article on ADTMAG.com, and it was said that Eclipse had a very big impact on the IDE market, but it is not the killer of commercial IDE. As I came on the Eclipse Con 2005, I've said that the emergence of Eclipse said that the emergence of Eclipse is to provide a platform that has been widely recognized and accepted, and then everyone will develop truly on this basis. Meet the product of the specific needs of the market, competition with Visual Studio, rather than in the bottom end for some of the functional points of different developers generally need to make each other, repeated construction. Such traditional IDE providers can try to see an angle to see Eclipse: We can develop higher value on a relatively mature benchmark platform. The article also mentioned how some companies such as Borland respond to the existence of Eclipse.
Original text:
http://www.adtmag.com/Article.asp?id=10789
Posted @ 2005-03-30 13:56 Big Stomach Reading (19) | Comments (0) | Edit Collection
March 27, 2005
Global Chinese big signature against Japan has become a permanent member of the Security Council
Http://comment.news.sina.com.cn/comment/gj-61780841-0.html
Posted @ 2005-03-27 12:20 Big Stomach Reading (17) | Comments (0) | Edit Collection
March 26, 2005
[Eclipse notes] How popular is the Eclipse of Java IDE? Look at an investigation of this year's THSERVERSIDE Java seminar.
I accidentally discovered an interesting survey when I was going to travel in Thaserverside.com. As part of the Java Seminar event held this year, the organizing committee will be some questionnaire survey to the representative of the meeting every morning, one is called: What is your preferred java IDE? What is your favorite java IDE? Below is the result of this survey:
What is your preferred java IDE? Eclipse53.3% EMACS2.1% IDEA19.8% Java Studio0.8% jbuilder6.6% JDeveloper3.3% NetBeans2.5% VIM3.3% WSAD7.4% Other 0.8% Vote Count : 242
We can see that a total of 242 people have participated in the survey, and more than half of the number of Eclipse, counting the number of WSAD or even more than 60%, the IDEA has taken nearly one-third, and NetBeans only 2.5%. And even JDeveloper is more than, Java Studio is even more miserable, less than 1%. 515 people participating in this conference are the heavyweight character and industry elites in the Java world. They together with the entire THSERVERSIDE community constitute an important force that promotes Java technology, especially server-side technology. The result of the above can explain what questions will make yourself. Original text:
http://www.theserverside.com/articles/article.tss?l=tssjs2005
Posted @ 2005-03-26 19:39 Big Stomach Reading (78) | Comments (0) | Edit Collection
March 22, 2005
[Eclipse Notes] Just for Fun - Compile and run C # code under Eclipse
Just for fun, let's look at an Eclipse C # plugin, which is developed and maintained by a French company IMPROVE TECHNOLOGIES, currently supporting Eclipse 3.0 and .NET Framework 1.1.
First, we need to install .NET Framework SDK and Eclipse in this unit.
Next we download and install and install and install the plugin through Eclipse and a desktop: Workbench in Eclipse -> Software Updates -> Find and Install ..., select Search for New Features To Install, select Step, click New Remote Site ... Enter a name and the following URL:
Http://www.improve-technologies.com/alpha/updates/site.xml
Tap, then Eclipse will start loading the above XML document and finds related information. It should be noted that this site.xml actually contains other plugins of IMPROVE TECHNOLOGIES, we don't need it. In the next Search Results page, we only use the entry of C Sharp. After selecting FINISH, this time Eclipse will start installing this plugin. After completion, you will prompt whether to restart Eclipse, and select it.
After restarting Eclipse, we make the final configuration. Open Window -> Preferences, we can see new C # Preferences, you can specify C # compilers and locations, such as: C: /Windows/Microsoft.Net/framework/v1.1.4322/csc.exe
Take a lot, let's test.
Create New-> Other in the project, or use shortcut ctrl n, select C # file of the C # Directory Create a new C # file, enter some test code, select save, then the default will automatically compile this file. We can see the information of the compiler in the% csharpconsoleview below. If everything goes well, you will come out in our Project Directory, you can double-click this EXE file, our C # program can run. Supplementary description: We can right click on the CS file, select Properties (Alt Enter) to specify the output file type and other command line parameters. The features implemented by this plug-in are actually quite limited. Basically just use existing Compiler, then simplify some operations, then have some Syntax Highlight's features, even combined with Compiler's simple error prompts. But it is not a fun plugin.
The code I use as the test is as follows:
Using
System;
Namespace
Mainnamespace
{Public class mainentry {public static void main () {// add your code Here console.writeline ("to test c # plugin in eclipse); for (int i = 0; i <10; i ) {console. WriteLine ("#" i "#");} console.readline ();}}}
Just for fun.
Use this plug-in to do some simple verification and ideas, if you really want to choose a free C # IDE to do development, I think I will consider SharpDevelop.
Posted @ 2005-03-22 22:49 Big Stomach Reading (66) | Comments (0) | Edit Collection
March 21, 2005
[Eclipse Notes] Eclipse Project 3.1 Development Plan Progress
At present, the latest formal release (Release) version of Eclipse is 3.0.1, this 3.0 version is already in the 2.1 version has been popular after a long time, whether it is the core function or the interface has a great Update. However, in my opinion, it has a big regret. After all, it is not a product that is happy to implement. When this major version is improved, it is not included in J2SE 5.0. Unlike NetBeans, it seems that J2SE 5.0 has a specific release time. It launches a new version 4.0 in J2SE 5.0, and the pride of unscience claims that he is the first Java IDE that fully supports J2SE 5.0. Fortunately, the Eclipse project has many years of supporters and development resources, in various versions of 3.1, and has gradually improved the support of J2SE 5.0, and has been introduced to the J2SE 5.0 in each subsystem. Support is basically in place.
So what is the upcoming 3.1 official version upgrade is worth our expectation and attention? Of course, the official documentation from Eclipse.org is most authoritative, interested friends can watch directly: http://eclipse.org/eclipse/development/eclipse_project_PLAN_3_1.html
In my blog, I only choose some of these I am interested in introducing you.
First, you need to pay attention to the time points in the following three plans:
I - April 1, 2005 # 发布 3.1 m6
II - May 13, 2005 # 发布 3.1 m7
III - late June 2005 # officially released 3.1 Release
Secondly, the documentation also mentioned which corresponding improvements are made for the three subcompices, platforms, JDT and PDE, respectively, these entries are divided into three categories: [OK] To include in 3.1, [Consider] To include 3.1 In the middle, and [not planning] is included in 3.1, fortunately, there is no third. We browse JDT [OK] The entry to include:
I - Add a complete and comprehensive support for J2SE 5.0
II - Enhanced compiler check
III - Provide enhanced external string editing, such as a separate Properties file editor
IV - open some Java editors to the platform-level text editing, such as hyperlink browsing, spell check, etc.
V - enhanced debugger features, such as the ability to receive from the Stack Trace hyperlink to the code
VI - Import and export Ant build files, such as importing complete items from Ant scripts and exporting a complete script from project
I don't know what attitude towards this new version of Eclipse, the author is full of expectations, huh, huh.
Posted @ 2005-03-21 21:25 Big Stomach Reading (83) | Comments (1) | Edit Collection
March 20, 2005
[Eclipse Notes] Valid Management Graphics System Resources in SWT
Part of this article and inspiration from the Eclipse.org website, this statement. For more information, please refer to:
Http://eclipse.org/Articles/Article-Swt-Design-2/swt-design-2.html
Since SWT is dealing with the operating system, we need to be careful when processing the graphics resources of the system to avoid unnecessary resource leaks. Fortunately, SWT provides a good resource management mechanism, and we need to do it in most cases to ensure two principles:
The first principle - Who is distributed?
Article 2 Principles - Decline of destruction of the child while the parent control is destroyed
Let's take a look at how these two are reflected in the actual situation.
First see the first principle. At first glance, this seems to be nonsense, but it is often not that simple in practice. First, the constructor does not mean the allocation of resources, and actually allocate resources anywhere in a class and at any time of an object lifecycle, as long as your code tells the operating system. You must guarantee that all resources you assigned when you are no longer in use; you must also guarantee that all resources you assigned should not call its Dispose () method, otherwise it is likely to affect the actual The normal operation of the relevant code allocated. The good news is that in order to clearly and simplify the division of labor specified in this first principle, SWT is determined at the beginning of the design. All system resources-based SWT classes complete all the required resource allocations in their constructors, in other There is no action for allocating system resources, so we can watch SWT resource management: if you call a SWT structure constructor, then you call its Dispose () method to release resources; if You didn't call a SWT class constructor, even if you use this class's instance, you should not call its Dispose () method. It is so clear. For example, you will call Dispose () if you no longer need it, if you get a font object and use it, you should not destroy it after you use a Font object through a control GetFont () method. It should be handed over to the specific control.
For the second principle, SWT has a good mechanism to support it, that is, all SWT controls, concrete, COMPOSITE classes, and instances of their subclasses must have a parent control, this parent control references The structure of the sub-control is incorporated. It should be noted that all of these controls have only the default access level, so we cannot call such a default constructor directly in their own SWT program and can only provide reference to a parent control, while in Widget In the band parameter constructor of the class (the parent class of Composit), it will call the following methods:
Void
Checkparent (Widget Parent)
{IF (parent == null) error (swt.error_null_argument); parent.checkwidget ();}
and then:
protected
Void
Checkwidget ()
{Display display = this.display; if (display == null) error (SWT.ERROR_WIDGET_DISPOSED); if (display.thread = Thread.currentThread ()!) Error (SWT.ERROR_THREAD_INVALID_ACCESS); if ((state & DISPOSED)! = 0) Error (swt.error_widget_disposed);}
Such inspections ensure that any controls have a parent control when creating. When we call a Composite's Dispose () method, it calls:
Void
ReleaseChildren ()
{Control [] Children = _GetChildren (); for (int i = 0; i Back to the last Simplestswt: Package sean.test.swt; import org.eclipse.swt.widgets.display; import org.eclipse.swt.widgets.shell; public Class Simplestswt {Public static void main (string [] args) {Display Display = new display (); shell shell = new shell; shell.pack (); shell.Open (); while (! Shell.isdisposed ()) {If (! Display.readddispatch ()) {Display.sleep ();}} DISPLAY.DISPOSE ()}} Among this, Display is a top-level device that inherits from the Device class, while the DEVICE class implements the Drawable interface. The parent class of the shell is Decoration, while Decoration inherits from Canvas, Canvas inherits from Composite, and finally this inheritance chain has been connected to the Widget class. When we create a shell example, we need to tell the constructor what is the parent control, here is Display. So when we finally called Display.Dispose (), although we didn't clearly write shell.dispose (), our shell instance was destroyed. This is the resource management mechanism of the SWT, a slight exception is the MenuItem's setMenu () method and the Control's setMenu () method, which registers its own parent control by explicitly calling SetMenu. Posted @ 2005-03-20 17:11 Big stomach reading (100) | Comments (0) | Edit Collection [Eclipse notes] SWT design ideas Part of this article and inspiration from the Eclipse.org website, this statement. For more information, please refer to: Http://eclipse.org/articles/article-swt-design 1/swt-design-1.html As we all know, SWT and SWING's largest difference is that it directly uses the ready-made local graphical interface provided by the operating system, which has localized Look & FEEL. But how did it do this? Of course it passes through JNI. Let's take an example, assume that we use the Win32 API. We now have a text box text, through the following code, we give it a string and let it choose / Highlight from 3 to 5 ([3,5]) characters. Text.Settext ("Abcdefgh"); Text.setSelection 3 , 6 ); Under Windows, how is this setSelection method implemented? We can take a look at the source code: public Void SetSelection int Start, int END) {... Os.sendMessage (Handle, Os.em_setsel, Start, End); Os.sendMessage (Handle, Os.EM_Scrollcaret, 0, 0);} Friends who have done Windows programming may recognize this SendMessage at once. Isn't it the function to send messages to the form in Win32 API? Oh, yes, let's take a look at the prototype of this SendMessage method: public Static Final int SendMessage int HWnd, int MSG, int WPARAM, int lparam) {IF (isunicode) Return SendMessagew (HWND, MSG, WPARAM, LPARAM); Return SendMessagea (HWND, MSG, WPARAM, LPARAM); public Static Final native int SendMessagew int HWnd, int MSG, int WPARAM, int lparam; public Static Final native int SendMessagea ( int HWnd, int MSG, int WPARAM, int lparam; We saw two versions, a version for Unicode, another version for ASCII, just Win32 API, what we see is Native method, which means that there is also a set of JNI C code to direct and operation The system's function depends: #ifndef no_sendMessagew__iiiijniexport jint jnicall os_native (SendMessagew__iiii) (Jnienv * ENV, JCLASS THAT, JINT ARG0, JINT ARG1, JINT ARG2, JINT ARG3) {Jint rc; OS_NATIVE_ENTER (env, that, SendMessageW__IIII_FUNC); rc = (jint) SendMessageW ((HWND) arg0, arg1, (WPARAM) arg2, (LPARAM) arg3); OS_NATIVE_EXIT (env, that, SendMessageW__IIII_FUNC); return rc; } #ENDIF #ifndef no_sendMessagea__iiiijniexport Jint Jnicall OS_Native (SendMessagea__iiii) (Jnienv * ENV, JCLASS THAT, JINT ARG0, JINT ARG1, JINT ARG2, JINT ARG3) {Jint rc; OS_NATIVE_ENTER (env, that, SendMessageA__IIII_FUNC); rc = (jint) SendMessageA ((HWND) arg0, arg1, (WPARAM) arg2, (LPARAM) arg3); OS_NATIVE_EXIT (env, that, SendMessageA__IIII_FUNC); return rc; } #ENDIF Seeing this, you may have suddenly realized that SWT did nothing wrong with the Win32's API simple pack, we call the way in SWT, the parameters pass the parameters to the Win32 layer. This is the core idea of SWT. SWT has a very important design principle, that is, SWT API one-to-one package OS API, fully faithful to the API implementation of the operating system, if there is bug, that is also the BUG of OS, it will not try to go "Correct" operating system, because it will undermine some of the localized behavior. Faithful to OS also makes the caller do not have to have the heart of the SWT program that will be inconsistent with the local GUI of the OS. If necessary, please refer to MSDN. SWT is actually such a Thin Wrapper, we can easily access the Win32 graphics API, providing our app to the Native Look & Feel. Here is a complete SWT example: package sean.test.swt; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import Org.eclipse.swt.widgets.text; public Class Dummyswt {Public static void main (string [] args) {final display display = new display (); factory shell shell = new shell; shell.setLayout (New FillLayout ()); final text text = new text (shell, SWT.SINGLE); Text.Settext ("AbcDefgh"); Text.setSelection (3, 6); shell.Pack (); shell.Open (); while (! Shell.isdisposed ()) {if (! ". ReadandDispatch ()) {Display.sleep ();}} display.dispose ();}} Posted @ 2005-03-20 15:06 Big Stomach Reading (99) | Comments (0) | Edit Collection [Eclipse Notes] Configure the SWT Development Environment This article assumes that the reader uses the Windows operating system JDK 1.4, other platforms and JDK versions should also be eight or nine. In order to compile and run the SWT program, we have two options: 1-use Eclipse SDK; 2-download separate SWT binary and source files. With Eclipse SDK, we can find SWT binary files in its plugins directory, the usual directory name is: org.eclipse.swt.win32_xxxx, the suffix is the version number, there is OS and WS two sub-directory, content in this directory The JNI library and swt.jar are SWT, respectively. If you don't use Eclipse to develop, or you need SWT source files, you need to download a separate SWT binary and source file package, you can find it below: Http://mirror.pacific.net.au/eclipse/eclipse/downloads/drops/R-3.0.1-200409161125/swt-3.0.1-win32.zip This ZIP file is subsequently included in the JNi library (some dll) and swt.jar, and SWTSRC.zip, this SWTSRC is our SWT source file, including C and Java source code. In order to run the SWT program, we need to compile our SWT code. This time you need to tell the compiler SWT.jar position; after the compilation is successful, we need to specify the classpath containing swt.jar, you need to tell Java.exe in the command line A parameter, that is java.library.path, looks probably this look: Java -CP% SWT_HOME% / swt.jar simplestswt -djava.library.path =% SWT_HOME% If you use the Eclipse SDK 3.1M5A or updated version, you can right click. Java file Select Run As -> SWT Application, no need to write as long parameters in the command. What is interesting is, we can see the current SWT support platform in the SWT download page of Eclipse.org: Windows 98 / ME / 2000 / XP Windows CE (ARM Pocketpc) Windows CE (ARM Pocketpc, J2ME Profile) Linux (x86 / motif) Linux (x86 / gtk 2) Linux (AMD 64 / GTK 2) Solaris 8 (SPARC / MOTIF Qnx (x86 / photon) AIX (PPC / Motif) HP-UX (HP9000 / Motif) Mac OSX (Mac / Carbon) Oh, the platform supported is limited, but it is still quite too much. Posted @ 2005-03-20 01:05 Big Stomach Reading (79) | Comments (0) | Edit Collection March 18, 2005 CMP Media's Software Development Magazine Announces Winners for The 15th Annual Jolt Excellent & Productivity Awards The results of the 15th Jolt Awards have been published, and PDF can be downloaded in the following address: http://www.sdmagazine.com/pressroom/jolt_winners_2005.pdf What is interesting is: Eclipse 3.0 force Intellij IDEA 4.5 Become a language and development environment JOLT winner, may be due to the relationship between Eclipse open source; Hibernate 2.1 force J2SE (TM) 5.0 gets class libraries, frames, and components Jolt Award. These results may be unexpected for some friends, I want to say is that this is just a routine selection result of a relatively authoritative magazine, of course, can reflect the actual level and user of the winner to a certain extent. / Market acceptance, but the products that can be split are quite good. Looking forward to the list of people in the future.