Table of Contents

Software > Software Links
1.0 General
2.0 Programming editors and languages
3.0 Databases
4.0 Cygwin - a Linux-like development environment
5.0 Version control
6.0 Miscellaneus

Software > Software Links


1.0 General

1.1 About software licenses

All following programs are for Windows platform. Most of them are ports from Unix platform. Unless otherwise stated, all the programs work on Windows.

Most of the programs are Open Source, meaning that there is no charge or license fee. Typically the programs are distributed under GPL or other similar license like: LGPL or Perl Artistic License. Read more about licences at:

1.2 Handling archive files

In order to unpack various types of archive files in Windows, there is free program Ultimate Zip. The program understands huge number of different archive formats, like those of Unix .tar, .tar.gz, .bz2, .zip, .rar etc.


2.0 Programming editors and languages

2.1 Emacs

2.1.1 Download, Manual and Links

Emacs is full fledged programming environment which is available for various operating systems. You could call it a mini operating system, because you can completely configure it using Emacs Lisp (elisp). Emacs can edit hundreds of programming languages, compile, run, debug those. In addition it can be used to read Mail, News, write C++, Java, Perl, PHP, Python, HTML, CSS, SGML, XML code and much more. It is possible to extend the Editor with several plug-in packages that called Emacs lisp files (*.el files).

2.1.2 Installing Emacs to home PC environment

Note: Refer to NT Emacs FAQ for more information

The first step is to create Emacs startup file $HOME/.emacs (dot-emacs). The file behaves like a central configuration for all other loaded libraries. Refer to Windows article "How To Manage Environment Variables in Windows" for instructions how to add HOME variabale.

[Picture 1.  pic/emacs-env-config.jpg]
Picture 1. Emacs environment and dot-emacs startup file

2.2 Visual studio code

A generic programming langauge editor (IDE). See Homepage.

2.3 Perl

Perl is included in Cygwin. Emacs supports editing and running Perl. There are two Perl support modules included in Emacs, perl-mode.el and cperl-mode.el. The cperl verson is includes extensive color support.

2.4 Apache and PHP

Apache and PHP are included in Cygwin. An external Emacs support library php-mode is available.

2.5 Java

Sun Java is freely available. Emacs supports editing and compiling Java files.

2.6 C, C++. Python, Ruby etc.

These languages are included in Cygwin. Emacs supports C, C++ and Pyhon out of the box. See also python-mode and rudy-mode.


3.0 Databases

3.1 MySQL

3.1.1 How get and install MySQL

MySQL runs in all Windows platforms. MySQL is a small and efficient database that has become extremely popular in internet development. You can almost count on the fact that most WWW-sites (commercial or not) are running under MySQL. Interfaces from Apache, perl, Python and Java are supported. However, be sure to realize that MySQL lacks some key features that are needed in commercial and misison critical applications

Install file is available at <http://www.mysql.com/>.

After installation, examine directories /bin and /Docs, where the programs and manuals are.

[Picture 2.  pic/mysql-unpacked.jpg]
Picture 2. MySQL directories unpacked. See Manual in directory Docs/

3.1.2 Starting the Server

To start MySQL server and client, follow instructions below. Here is picture of the ready working database setup:

[Picture 3.  pic/mysql-server-win2000-all.jpg]
Picture 3. MySQL client-server setup in action

To start using the MySQL, you must start two programs: first start up the database server and then connect to the database with client. The programs can be found under the MySQL installation directory /bin To start the database server, run mysqld (notice "d" at the end). Leave this DOS SHELL BOX open, don't touch the window any more.

      dos> C:
      dos> cd "C:\Program Files\mysql\bin"
      dos> mysqld-nt --standalone --ansi --basedir="C:\Program Files\mysql"
                   |
                   The "d", daemon version
                   See manual "Preparing the Windows MySQL Environment"    

If you see this message, check that the basedir directory you gave is correct:

      Fatal error: Can't find message file 'C:\Program files\english\errmsg.sys'    

If you have troubles starting the server, see these options as well:

      --console
      --defaults-file=<location>
      --skip-thread-priority
      --skip-external-locking
      --skip-innodb
      --skip-grant-tables
      --skip-name-resolve
      --pid-file=%TEMP%\mysql.pid    

To see all how server interprets commands, see command manual or ask about it using --help option. The second command stores the output using ">" to the root of the HOME (U:) directory.

      dos> mysqld-nt --verbose --help | more
      dos> mysqld-nt --verbose --help > u:\mysqld-nt.txt    

If you need option --skip-innodb, it is possible to try with these options instead. The %TEMP% is the Windows default temporary directory location where user has oa write permission.

      dos> echo %TEMP%    

Options

      --innodb_log_group_home_dir=%TEMP%
      --innodb_log_arch_dir=%TEMP%
      --innodb_data_home_dir=%TEMP%    

3.1.3 Sending control commands to server

Open a new DOS shell window from where you can send administrative commands to the server. It is important to shut down the server gracefully:

      dos> C:
      dos> cd "C:\Program Files\mysql\bin"
      dos> mysqladmin -u root processlist
      dos> mysqladmin -u root shutdown    

3.1.4 Starting the Client

Open a new dos shell. The client is the program that connects to the database. Check that the server is running and accepting connections:

      dos> C:
      dos> cd "C:\Program Files\mysql\bin"
      dos> mysqladmin -u root status    

NOT OK message, database didn't start. Recheck your server command line options and try starting server again.

      connect to server at 'localhost' failed
      error: 'Can't connect to mysql server on 'localhost' (10061)'
      Check that mysqld is running on localhost and that the port is 3306.
      You can check this by doing 'telnet localhost 3306'    

OK message, database is up and ready to receive connections:

      Uptime: 12  Threads: 1  Questions: 1  Slow queries: 0
      Opens: 5  Flush tables: 1
      Open tables: 2 Queries per second avg: 0.083
      Memory in use: 8267K  Max memory used: 8267K    

Next, to connect to the database run the client mysql (without the "d" character). After the connection is established, you should see database prompt mysql> in the window. You are now connected to the database and the prompt accepts SQL commands. Remember, that this is not the DOS-command line any more, but you're inside another program.

[Picture 4.  pic/mysql-dos-basics.jpg]
Picture 4. Using MySQL client and its features

      dos> mysql -u root test
                    |       |
                    |       Log into database "test"
                    Log as user "root"

      mysql> select version();
      mysql> select now();
      mysql> exit                 # this will end the client
      dos>                        # You're back to DOS again    

3.1.5 Sending command files to MySQL from DOS prompt

[Picture 5.  pic/mysql-notepad-sql.jpg]
Picture 5. Using notepad to write SQL command files

The command files in MySQL are run similarly to other database command files: you feed the file to the database engine. Create a new file with notepad or any of your favorite editors:

      -- This is C:\temp\test.sql command file
      -- Date: YYYY-MM-DD
      -- Author: john.doe@example.com

      SHOW tables;

      DESCRIBE emp;

      SELECT   *
      FROM     emp
      ;

      EXIT
      -- End of SQL command file    

Save the above file somewhere, e.g C:\temp\test.sql and send it to the database like this:

      dos> C:
      dos> cd "C:\Program Files\mysql\bin"
      dos> mysql --batch -u root test < C:\temp\test.sql
                                      ==================
                                      Send file to MySQL database "test"    

To gather the response to some file, you modify the command syntax a little further by adding the file redirection:

      dos> mysql -u root test < C:\temp\test.sql > output.txt
                                                 ============
      dos> type output.txt
      dos> notepad output.txt    

4.0 Cygwin - a Linux-like development environment

[Picture 6.  pic/cygwin-win32.jpg]
Picture 6. Cygwin runs on top of Windows libraries. Programs running in Cygwin think they are running in Unix/Linux and Cygwin libraries map the calls to Windows API calls.

4.1 Downloading and installing Cygwin

The homepage is <http://cygwin.com/> (cf. Wikipeadia). Cygwin consists of a library that implements the Unix/Linux POSIX system call API in terms of Windows system calls. This effectively gives Linux like environment and commands under Windows operating syste. All standard Linux commands are bundled with Cygwin.

At right, you will seeFrom the page you will see "Install from the net" link. If you have slow connection, DO NOT click it but steps:

Save the install program setup.exe" to your hard disk (use e.g. c:\temp) and follow the instructions.

[Picture 7.  pic/cygwin-com.jpg]
Picture 7. Download setup.exe to harddisk

4.1 Selecting packages for install

At top left, select [FULL] view. type name of the package to install in the seach field. Skip any packages that have -debuginfo or -devel in their names.

Repeat this a many times as needed. When ready, select button [NEXT] to start installing all selected packges. By default, the software will be installed in directory C:\cygwin64.

[Picture 8.  pic/cygwin-install-sqlite3.jpg]
Picture 8. Selecting a package for install

5.0 Version control

5.1 Subversion version control system (SVN)

Note: Subversion is a centralized client-server software. The client program is included in Cygwin. Svn is supported in Emacs 23.x

Subversion is version control system that is a replacement for decades old CVS in the open source community. It corrects numerous problems that CVS had (CVS did not track renames of files, version directories or handle symlink files). SVN's storage is opaque, meaning that the administrator sees only a "database" and not individual files like in CVS that could be moved deleted or renamed at file system level.

5.2 Git distributed version control system (Git)

Note: Git is decentralized standalone version control system. Git is included in Cygwin. Git is supported in Emacs 23.x

Git is written in C, Shell and Perl. The versioned data is kept under directory .git. The project development can be done in branches and the version information is "pushed" or "pulled" to (remote) sites and other locations.


6.0 Miscellaneus

6.1 Putty terminal client for SSH

Putty is a free software terminal emulator (communication program) with many features including encrypted SSH version 1 and version 2 authentication. Windows version is availale at <http://freshmeat.net/projects/putty/>. Consult also also How to enable Putty color support for Emacs

[Picture 9.  pic/putty-win--window-translation-charset.png]
Picture 9. Configuring terminal to use UTF-8 character set

[Picture 10.  pic/putty-win--change-settings-window-colors.jpg]
Picture 10. Enabling 256 colors in Windows version of Putty.