Studies (Sept. 1999-Jan. 2001)
 
While I was still in Hangzhou, I thought I have learned enough to start my business. I was wrong.
 

In the database area, Microsoft has products like Access - which is a desktop and simple database and Microsoft SQL Server - a database server. Microsoft also has a front end application development environment for database - the FoxPro IDE. Borland, on other hand, sells its PowerBuilder products which is more popular among application developers. With PowerBuilder is the PowerScript programming language.

Oracle is more powerful with its flagship of the same name.

Linux-based MySQL can also be run on Windows platforms, and Lotus Notes from IBM/Lotus is a perfect match for those interested in building an internal information exchange network.

 
Programming: Microsoft has its development package called Visual Studio combining VB, VC, VFP and Visual Java. Borland boosts of its fast developing environment of Delphi, and easy-to-use C++ Builder, JBuilder. JBuilder is the most powerful Java IDE. A Linux version is also available. For Java developers, there are also a lot of other products available.
 
On the web developing side, first you have the Microsoft products line as always: Visual Interdev, Frontpage, and then others: Micromedia's Dreamweaver which later becomes the most popular website developing tools, Adobe's GoLive,Allaire's (merged to Micromedia) Homesite and a dozen of others.
 
Multimedia: for simple picture editing, you may choose from photopaint, paintshop pro, photoshop, and finally fireworks from Micromedia which is now my only imaging editing tool. Of course you may use Flash to design Flash-type animation, but I never succeeded in doing that. In the multimedia market, Micromedia, Adobe and Microsoft are competing fiercely.
 
And 3D and virtual reality: there are hundreds of technology supplies. I started to learn VR already in Beijing in 1999 and could make some simple scenes and Java-driven interactions then, but no serious progress has been made ever since. I postponed my 3D studies to 2001 and so on.
 

Java was my center of studies. To realize a running environment for web-enabled applications, you have to set up the following development environment:

1) a web server or http server which handles http protocol;

2) a Java servlet or JSP server which can interpret the message and send feedback to clients - servlet is JAVA class deployed in the server for processing of specific command from the client and JSP pages are HTML like pages with imbedded JAVA logic. JSP pages will be first transformed into servlet for further processing);

3) a database server to store, index, retrieve and manage data from and to clients ( a client is a application used to reach your web pages such as a browser in the remote end user);

4) a development tool or an IDE to actually write, debug, run and finally deploy your codes.

 
To achieve the above development environment, you have a number of choices.
 

For people interested in Microsoft products, this could be an ideal combination:

1) IIS (Internet Information Server or PWS - Personal Web Server). IIS has bundled support for ASP

2) SQL Server

3) Frontpage or Visual Interdev.

That was my case in the early 2000.

 
Starting from the next half of 2000, I have tasted other combinations.
 
Web servers: various servers were tried, incl. Netscape Server, Lotus Domino, Apache, Java Web Server
 
Special servers: JRun, WebSphere, WebLogic, Tomcat,Resin, Enhydra and a dozen more.
 
Databases: MySql,MSQL, Oracle, Interbase etc.
 
Programming: ASP, Java, PHP,Perl, CFM, ...
 
Development IDE: DreamWeaver, GoLive.
 
My interest was more focused on Java than Microsoft technologies. First I worked on the Visual J++ environment, but later it was announced by SUN that Microsoft's VJ++ was crating a lot of packages not of pure Java. That is codes generated by these packages cannot be run on other platforms. To protect my investment in learning a language which shall be platform-independent, I switched to other IDE. At first it was JRun, the best Java Server environment at that time. However, it was very difficult to configure a running environment using JRun. Later I came across the free software Tomcat developed by the Apache group - the same organization that develops the most favorite, also free Apache web server. Although not a commercial software, Tomcat provided support to all the functionalities of servlet and JSP specifications.
 
I can't recall all I have learnt during that time period. What I remember is that I've spent more than 2000 Yuan to buy the books, and an equal money for buying pirated software. I can't afford to buy official software. And pirated software is damned cheap. In Shanghai a CD was labeled 7 yuan and in Hangzhou 5. There were more than 200 stores selling pirates, at Fuzhou road near the Bund, many more.
 
I also can't afford to go to schools. And they can also not provide all the teachings I need. During that period, I have read more than 60 books of all kinds and made practices according to the samples in the books or CDs. If you want to study them through schools, you probably need more than 5 years and spend tenfold or more.
 
Another source of information is of course the Shanghai Library. Although 15 km away from home, I went there each week, read the IT journals, and newspaper. From these publications you not only know the technology status but also the industry development. You know the development trends, the potential areas of next generation software and applications.
 
Attending exhibitions and fairs was also my task then. I participated in almost every IT related fairs and seminars.
 
So I was very very busy at my study. Sometimes I can't take any food until late in the afternoon when I finished that day's main study assignment. A normal day looked like this: at 8:00 I went up, and 15 minutes later I started to learn and ate something later in the afternoon - some milk and a piece of bread. And the dinner would be a fast snack at a nearby restaurant. Sometimes with my friends, mostly alone.
 
While studding alone, I was also planning my business almost at the same time. First I created a web space in a free host at the Eastnet Company. I used the services from Eastnet because I used their dialup services in Beijing and in Shanghai too. When I first settled down here, the first thing I did, among others, was to open an account with Eastnet to get an Internet access. Eastnet was quite known at that time (nowadays they have disappeared from the IT industry).
 
With the free web space at Eastnet I managed to create my own virtual world and promote it to others. However, access to and browsing on that space was very difficult and slow. I need my own web address. Once again, I chose Eastnet for my own virtual hosting, and through them I registered my own web address called softhousing.com. From its name, you can guess its business - building houses on the Internet. Houses on the Internet are websites.
 
After the website was ready, I have registered it also by the most important web portals - sohu.com, 163.com and sina.com.cn. Soon my website attracted inquiries from customers. Among them was a Korean who was trading for textiles in China: Mr King.
 
Mr King wanted to build a web promotion website. In his website, people can join in a ring and each ring can be the superior upper level of the subsequent participants. The participants will obtaining points according to the hierarchy and upon reaching certain points they can get cash or cheque from the advertisement owners. It was a complicated design. ASP was used as programming, SQL Server as database, IIS as web server. It took me one and a half months to complete this website. There were more than 80 code pages, and 30 static pages.
 
Very often I worked till the midnight to solve a problem in coding or database design. Data manipulation was the main technical challenges to me. Retrieval, updating, addition, deleting of data involved lots of coding. And you have to coordinate the functionalities and interactions between them.
 
After more than a month, the website was completed. It was my biggest job so far, and since then I never have used Microsoft technologies to make web applications. Because I've determined to follow the Java technologies.
 
Java was developed by Sun, a company famous for its server products and operation systems. Java is somehow similar to C++ (in fact all programming languages are similar in one way or another: they have data types, string processing, math, flow control, memory caching, garbish collection etc), the main difference is that Java can be run in any operation systems while others are platform dependent. Codes and binaries written and generated in one OS can be run in another OS without making any changes - provided that OS has an appropriate JVM - Java Virtual Machine, an environment where Java codes can be run and protected in it. Sun and other companies have developed JVMs for major OSs, so that there are no problems to run your Java programs in other operation systems. The platform-independence can protect your investment in programming therefore I see it as vital in the future IT market. Although more software tools are available for programming, databases and other web application tools and systems, I thought with Java things will turn differently.
 
Sun developed Java since 1995 and I knew it only in 1998 when I was still employed by Babcock. Apart from its platform-independence, it has other advantages over C,C++: you don't need to program indicators because there are no indicators at all. And memory allocation and variable recollection are all done by the JVM itself without your prior involvement in your codes. That was an obvious advantage for a person who know little about C,C++.
 
By end of 1999, Java was already a hit among programmers. Several development environment have been developed too, like the JBuilder by Borland and Visual Age for Java by IBM. You can design your interface in a WISIWYG (What You See Is What You Get) environment. Before that you have to code yourself. These WISIWYG also allow you to connect directly to the backend database via a number of database drivers.
 
Other functions were also developed and improved. A JDBC package - similar to ODBC of Microsoft - was also developed. JDBC allows you to connect to the database, retrieve data and make changes to the database tables rows from the client within your Java code.
 
Later, Servlet and JSP technologies were also developed which can process request from client on server side. Servlet seemed similar to ISAPI or NSAPI technologies. The differences are that they are written in Java, and are deployed at the Servlet engine - such as Tomcat, Resin, WebLogic or WebSphere. Of course, you need to know where you shall put your Servlet and make corresponding modifications to the configuration file - the server.xml and web.xml file. JSP on other hand, was similar to ASP of Microsoft - you can tell from the name already. Its full name is Java Server Pages. JSP is some HTML pages embedded with Java codes in a structural way. JSP pages are characterized with document extension of .jsp. The Servlet/JSP engine will automatically transfer the JSP pages first in Servlet and then will be interpreted and run accordingly, during the first run. Later the codes will be run automatically without repetition of transformation to save CPU consumption.
 
Java's drawbacks in multimedia and interface design were also gradually overtaken. Java 2D and Java3D were developed to make your applications more vivid. Especially the Java3D technologies which is a deductant of VRML (Virtual Reality Markup Language) facilitate your design of 3D web pages. Without need of installing a browser plugin, you web pages with Java3D can demonstrate 3-dimensional objects or panorama with the same quality as other tools such as pixaround, cult3d, and hundreds of others. And Java3D is free !
 
Another obvious superiority of Java technologies is its close integration with XML technologies. XML - eXtensible Markup Language - is a standard of text format developed by W3C or World Wide Web Consortium organization. Together with XSL and other subgroups, XML makes text and information exchange much easier than HTML pages, therefore XML is becoming a favorite document format for commercial use. For that purpose, Sun has developed class packages to handle XML pages and data, and this makes Java more competitive.
 
Sun has also developed other technologies such as Remote Method Invocation, Java Bean, Enterprise Java Bean (EJB) and RMI-IIOP to communicate with native (C++) methods. Special Java platforms are developed too - for handheld PC, for mobile phone and for personal development and operations.
 
Through studies of the Java languages and its development systems, I can draw a conclusion that Java can achieve most of the programming needs esp. for web applications. More and more websites are using JSP for client interactions. More and more standalone software are also being developed using Java.
 
So many technologies, so many products - it's not possible to complete my studies, practices and researches during that 16 month stay in Shanghai. We will continue in Hangzhou.