Posts

Showing posts from February, 2008

To promote reusability

Image
To reuse our source code or classes is a hard task specially when we don't think about this in the beginning of analysis or design. Even though we have already done our projects or programs that is not well-designed, we can use some refactoring function inside the IDE tool for us to adjust or arrange our source code, for instance, to extract the interface from classes. But, it is still much better if we know how to promote reusability and do it in the analysis/design phase. In the book, Pro Java Programming 2nd Edition, it provides 2 good principles (Loose Coupling and Strong Cohesion) for reference.

1. Loose Coupling
Coupling means that itrefers to the degree to which classes depend upon one another, and two classes that are highly dependent upon each other are considered tightly (or highly) coupled. In other words, they cannot be used alone and also not be used for other classes. There are some examples from this book and I draw the class diagrams to explain the idea.

a.) This dia…

A glimpse of Flex

Image
This term "Rich Internet Applications (RIAs) is popular in a coupe of years recently. Adobe is one of company that provides a very good software and development kit that is based on Flash to build your Flash-based applications which belongs to RIA. The product, Flex, is the key software to achieve this goal. Currently Adobe is released Flex 3 builder that is a tool using Eclipse IDE and plug-ins to develop Flex web application. Because I download the trail version of Flex 2, the information of display as follows is about Flex 2.
There is a point that I need to clarify. Flash and Flex is not standard Ajax-based. because both of them need to download Flash plug-in and the SWF file is executed on the plug-in player.

(Data Source from Adobe)
A typical Flex application consists of the following elements. Flex frameworThe Adobe® Flex 2 framework contains all the components you need to build rich Internet applications, which include: Containers that you use to layout the applica…

A small problem in programming with Java ME

Image
Recently I feel weird by dealing with threads and alerts in programming with Java ME. One of the problems is that my program will occur NullPointException in the console.

java.lang.NullPointerException
at javax.microedition.lcdui.Alert$1.commandAction(Alert.java:663)
at javax.microedition.lcdui.Alert$timeoutTask.run(Alert.java:1110)
at java.util.TimerThread.mainLoop(+237)
at java.util.TimerThread.run(Timer.java:462)

Based on this Exception message, I checked the source code of Java SE 1.6 version ( Thanks for Sun Microsystems to open the Java source ) of Timer and TimerThread because I cannot see the source in Java ME, so I use JavaSE to guess the structure of JavaME. P.S: The core APIs are still different even the package name are the same. And also, I drew a diagram as follows for myself to figure out the whole situation about my threads, alert, and timertask. This problem I guess is in "Alert" class.

Alert class allows to setup the timing for show…

New Android SDK is released!

Image
If you saw the screen of the previous Android SDK before, you will quickly find out that this new Android SDK released is so different from looking and operating now. I learned some information about the previous SDK that had some bugs found by the community. So I think Android this time provides new SDK version for fixing the bugs, update APIs, and also enhances some basic functions, for instance maps application as following pictures:

The new desktop of Android platform

Maps application's new feature (zoom in)


I find my home in Taiwan...

A simple Google Android application Part II

In Android framework, Activity class just like MIDlet in Java ME, it provides a frame to display the UI or perform a task. To layout the widgets on Activity, we can use xml file to achieve that. This example has 2 Activity classes, MainActivity.java and Queen.java, each has xml file to define the widgets and layout. In Queen.java, it uses recursive method to solve the N x N Queen problem. Due to the algorithm is not relevant to Android platform, so I emit the most source code with the algorithm and only put the method putQtoArray() to show recursive way.as follows:

main.xml


<Button android:id="@+id/MainButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="OK"
android:layout_x="10px" android:layout_y="102px">
</Button>


<Button android:id="@+id/MainButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content&…

A simple Google Android application Part I

Image
What is Google Android? I don't need to babble that... because I think that it will be very clear if you see this : http://code.google.com/android/what-is-android.html

Basically, Android includes Linux kernel as operating system, libraries ( C language), Android runtime ( Dalvik virtual machine for Java byte code), and application framework (APIs for Java) . The applications we wanna develop are based on this application framework and Java 1.5 language specification, and will run on Android runtime.

Until now, Google only has prototype cell phone for running Android platform. Due to this reason, all the applications need to execute on the emulator which emulates the same environment just like you really have the hardware. There is a simple example that can give an idea about developing a Android application.
This example will ask you a number for defining N x N Queen problem.
Then it will calculate the possibility of results showing as a simple checker.

P.S: It runs on the Android emu…

JavaFX Scripting Language

As we know that scripting language for an operating system is called a shell script such as C shell.
In January 2007, IronPython was released. It is a new implementation of the Python programming language running on .NET. This year also in January, Sun was released The JavaFX Script Programming Language.
These two scripting language are amazing for developers to control the applications dynamically during the run-time. For example, you can create a Frame in the command line like : var jframe= new JFrame("This is a Frame"); or use JavaFX code to define it. Then, you can modify the attributes and see the change immediately. I think that it is useful when developers wanna design GUI applications because arranging UI components and layouts are tedious jobs. More details about Java FX Scripting Language as link: https://openjfx.dev.java.net/JavaFX_Programming_Language.html
http://java.sun.com/developer/technicalArticles/scripting/javafx/ria_1/

[Android] DroidDraw

Dealing with the widgets and layouts in the Android project is a tedious work, especially Eclipse plug-in Android right now doesn't have visual tool for developers to construct the interfaces.
All the things need to do with XML. Fortunately, there is a tool that is very useful to it.
It also provides tutorials that developers can quickly understand how to use it.

http://www.droiddraw.org/

[Flickr] Schmap: San Francisco Photo Short-list

Today I got a email from Flickr about my one photo that has been short-listed for inclusion in the fourth edition of our Schmap San Francisco Guide, to be published mid-February 2008.
Schmap: San Francisco Photo Short-list
http://www.schmap.com/shortlist/p=61565007N00/c=SF20012284

That photo was taken from Hyatt Hotel in San Francisco.
I don't know that my old digital camera (Nikon 995) was still able to take good photos.