Developing Web Sites with Free Software

Similar documents
Sentences Installation Guide. Sentences Version 4.0

WebDev. Web Design COMBINES A NUMBER OF DISCIPLINES. Web Development Process DESIGN DEVELOPMENT CONTENT MULTIMEDIA

Using the Computer Programming Environment

ACCOUNTING & FINANCIAL

Total Content Integrator 6.0 Support Matrix Updated: August 19, 2016

How To Get Database Schema In Java Using >>>CLICK HERE<<<

This tutorial will teach you how to use Java Servlets to develop your web based applications in simple and easy steps.

How to Install (then Test) the NetBeans Bundle

Introduction to JAVA Programming Language

1. Introduction. Java. Fall 2009 Instructor: Dr. Masoud Yaghini

Webservices In Java Tutorial For Beginners Using Netbeans Pdf

20. Web Hosting 웹프로그래밍 2016 년 1 학기 충남대학교컴퓨터공학과

IBM Rational Application Developer for WebSphere Software, Version 7.0

Princess Nourah bint Abdulrahman University. Computer Sciences Department

MONTHLY TEST MAY 2017 QUESTION BANK FOR AVERAGE STUDENTS. Q.2 What is free software? How is it different from Open Source Software?

Introduction to Autodesk MapGuide EnterpriseChapter1:

Let's Play... Try to name the databases described on the following slides...

Total Content Integrator Support Matrix Updated: January 8, 2016

HTML5 and CSS3 for Web Designers & Developers

Workstation Configuration Guide

Introduction. Introduction to OOP with Java. Lecture 01: Introduction to OOP with Java - AKF Sep AbuKhleiF -

Introduction to Autodesk MapGuide EnterpriseChapter1:

Perceptive DataTransfer

Java Application Development On Linux Ebooks Free

Chapter 11 Program Development and Programming Languages

Introduction to OOP with Java. Instructor: AbuKhleif, Mohammad Noor Sep 2017

MEAP Edition Manning Early Access Program Get Programming with Java Version 1

TABLE OF CONTENTS 1. INTRODUCTION DEFINITIONS Error! Bookmark not defined REASON FOR ISSUE 2 3. RELATED DOCUMENTS 2 4.

Developing Ajax Web Apps with GWT. Session I

Supported Platforms for Alfresco Workdesk 4.x

Marine Bacterioplankton Database (MBD) Global Positioning of Marine Bacterioplankton (GPMB) MBD / GPMB User s Manual

IBM LOT-985. Developing IBM Lotus Notes and Domino(R) 8.5 Applications.

Real Life Web Development. Joseph Paul Cohen

(p t y) lt d. 1995/04149/07. Course List 2018

CPET 581 E-Commerce & Business Technologies. Topics

SOFTWARE UNIT 1 PART B C O M P U T E R T E C H N O L O G Y ( S 1 O B J A N D O B J 3-2)

How To Install Java Manually Linux Terminal Server 2008

Java Training For Six Weeks

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017

Installing DevPartner Java Edition Release 4.1

Game keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen

Java with Eclipse: Setup & Getting Started

McMaster Service-Based ehealth Integration Environment (MACSeie) Installation Guide July 24, 2009

Hypertext Markup Language, or HTML, is a markup

Workstation Configuration

Read & Download (PDF Kindle) A First Book Of C++ (Introduction To Programming)

OPERATING SYSTEMS AND APPLICATIONS

Information Systems Software

Product Data Sheet: Ignition 8 Industrial Application Platform. A Whole New View

Using Smart Tools to Write Good Code

xiii A. Hayden Lindsey IBM Distinguished Engineer and Director, Studio Tools Foreword

Hackveda Appsec Labs Java Programming Course and Internship Program Description:

Web Services Designer puts you in control.use the new Web Services designer to visually create, validate, import, and export Web Services.

Instructor s Notes Web Data Management Web Client/Server Concepts. Web Data Management Web Client/Server Concepts

Java Application Deployment on the Web

25. DECUS Symposium THE Application Development Environment for OpenVMS

Manual Java For Mac Developer Package

Css Pdf Reader Software For Pc Windows Xp

HALTON SKILLS COMPETITION WEBSITE DEVELOPMENT SCOPE SECONDARY LEVEL Coordinator: Ron Boyd,

Spring Web Services Tutorial With Example In

DESIGN AND IMPLEMENTATION OF SAGE DISPLAY CONTROLLER PROJECT

DevPartner Java Edition System Requirements Release

Java Manuals For Windows Xp Latest Version 6.1

A network is a group of two or more computers that are connected to share resources and information.

Faculty Activity. and Reporting Faculty Workload. RMAIR Conference 2002 Jackson Hole, Wyoming

PHP6 AND MYSQL BIBLE BY STEVE SUEHRING, TIM CONVERSE, JOYCE PARK

Chapter 1 Introduction to HTML, XHTML, and CSS

Improved Web Development using HTML-Kit

PHP & MySQL For Dummies, 4th Edition PDF

Tools to Develop New Linux Applications

Lecture #1 4 th Year M.Sc. Dina Rafaa Ahmed

Tutorial Point Servlets Pdf

Workstation Configuration

Database Concepts. Online Appendix I Getting Started with Web Servers, PHP, and the NetBeans IDE. 7th Edition. David M. Kroenke David J.

JSN PageBuilder 3 Configuration Manual Introduction

Tools to Migrate Windows Applications

Dreamweaver MX The Basics

Main Frame Dial Up (1960 s)

About the Authors. Who Should Read This Book. How This Book Is Organized

JavaFX. JavaFX Overview Release E

CIS 086 : Week 1. Web Development with PHP and MySQL

Workstation Configuration

Author - Ashfaque Ahmed

Profile : technical project co-ordinator, architecture/design, and analyst-programmer, including following up upto 3 analyst-programmers.

HYPERION SYSTEM 9 BI+ GETTING STARTED GUIDE APPLICATION BUILDER J2EE RELEASE 9.2

Perceptive DataTransfer

JAVA TM SERVER AND SERVLETS BUILDING PORTABLE WEB APPLICATIONS

Visual Composer s Control Types

LECTURE 3 ADMINISTRATION SECTION -A

Using Data Science to deliver Workforce & Labour Market Insights. Gary Gan Co-Founder, JobKred

Programming the World Wide Web by Robert W. Sebesta

CSCI 201 Lab 1 Environment Setup

RAD Studio XE Datasheet

Magnolia. Content Management Suite. Slide 1

Oracle Utilities Customer Self Service

Web Enablement Kit Implementation Guide

LGTM Enterprise System Requirements. Release , August 2018

JSN PageBuilder 2 User Manual

Mitchell Bosecke, Greg Burlet, David Dietrich, Peter Lorimer, Robin Miller

Lotus Learning Management System R1

Transcription:

Developing Web Sites with Free Software Tom Wheeler Software Engineer, Object Computing Inc. (OCI)

About This Presentation What this presentation is: An explanation of free software, aimed at people who are unfamiliar with it. An overview of tools that might be helpful, that run on systems you're likely to use. What this presentation is not: Extremely technical or full of zealotry.

What Does Free Mean? In the English language, the word free is a homograph; it has two meanings: The first meaning is without cost The second meaning is liberty or freedom Free software can mean either or both of these things.

Software Licensing Under federal law, computer software is considered intellectual property, like books and music. This means that when you buy software, you're really just buying the right to run it. The owner of the software can stipulate the conditions under which you can use it.

End User License Agreements Software licensing terms are typically set forth in the EULA; the most common forms are shrink wrap and click-through licenses. EULAs protect the rights of the vendor, and you generally cannot negotiate its terms. In some cases, they can significantly reduce your rights: Database server licenses commonly prevent you from publishing benchmarks.

Free (Without Cost) This is also called free, as in beer You may only receive a binary version, and may not be allowed to modify it. You might also not be able to redistribute it. Examples include Internet Explorer, itunes and lite editions of commercial programs.

Free (Liberty) Conversely, some software is even more free in that it gives you more rights. This is also called free, as in speech It may grant you the ability to inspect and modify the source code. This can be seen as a sort of insurance policy. It may also allow (or require) you to distribute your changes to others.

Free Software/Open Source So, why would programmers develop and distribute software for free? The author created it to solve her own need, and figured others might benefit from it too. The author may want to gain skill in a language or technique that he couldn't do at work. They might give away the software, but charge for support or documentation.

Linux and Free Software The Linux operating system is a popular example of free software. The core (kernel) of the operating system, as well as most utilities, are available for free in both senses of the word. Consequently, a lot of development of free software has centered around Linux and similar free UNIX-like operating systems.

But I Use Windows/Mac OS X! Much of the free Web development software is created for UNIX and Linux, but: Since the Mac operating system (Mac OS X) is now based on UNIX, most of this software is available for it too (see the Fink homepage). Some of the most popular applications have been ported to run on Microsoft Windows. Every program I will describe tonight runs on Microsoft Windows, Mac OS X and Linux.

And Now on to the Software... I will give a short overview of applications that are useful in Web development. To help you understand each program, I will also list similar commercial programs that might be considered competitors. By competitor I mean that they have the same general purpose, not that they necessarily support all the same features.

Graphics: The Gimp The GNU Image Manipulation Program (GIMP) is a graphics editing package that is similar to Photoshop or Paint Shop Pro. It can handle many image formats, including BMP, GIF, JPG, PNG, Photoshop (PSD), PostScript and TIFF. Comes with more than 50 built-in filters. The Script-Fu extension makes it easy to create customized buttons and logos.

Graphics: The Gimp

Graphics: The Gimp Here is an example of a Script-Fu plugin. I just type some text, choose a font and color scheme, and it will create a logo for me. There are dozens of built-in scripts for logos and buttons.

Graphics: The Gimp This is the logo created by the Script-Fu plugin.

Web Server: Apache Apache is Web server software, which allows your computer to serve Web pages to others. Similar programs include Microsoft's Internet Information Server (IIS) and Netscape Enterprise Server. According to Netcraft, Apache is by far the most popular Web server software, and serves pages for 67% of all Internet domains.

Web Server: Apache It contains modules for additional functions, such as user authentication, rewriting URLs and using CGI scripts. Modules are also available to allow you to create dynamic content with JSP or PHP. While the Apache project was orginally formed to create the Web server, it now also produces many other free programs like Ant, SpamAssassin, Cocoon and AXIS.

Programming Language: Java The Java programming language was released in 1995 by Sun Microsystems. One of the main advantages of Java is that it is cross-platform, meaning that your program will run unmodified on any operating system. The Java Development Kit (JDK) is available at no cost from Sun Microsystems Web site. The Mac OS X version is provided by Apple.

Programming Language: Java Designed for network environments, Java programs generally have fewer security problems than those developed in similar languages like C or C++. You can write server-side Web applications in Java using servlets or JSP, or by using a framework like Struts. Java Web apps are bundled into WAR files, which are very easy to deploy.

Java Web Engine: Tomcat Tomcat is a Java JSP/Servlet container, and allows you to develop and serve Java-based Web applications. Similar software includes IBM WebSphere and Macromedia JRun. Tomcat is a part of the Apache project, and you can either run it standalone or with Apache.

Java Web Engine: Tomcat Tomcat comes with several examples of both servlets and JSP great for learning.

Java Development: Eclipse IBM helped to create an open source project based on its Visual Age for Java, which is similar to Borland JBuilder and IntelliJ IDEA. Both the project and the IDE are called Eclipse. An IDE lets you create, edit, run and debug programs with a single tool.

Java Development: Eclipse Eclipse can be used to create any type of Java project including applets and command-line programs. The free Sysdeo Tomcat Plugin allows you to control Tomcat from Eclipse for easier JSP/servlet development and deployment. There are also plugins available for Eclipse to work with XML and XSL files.

Java Development: Eclipse

Programming Language: Perl The Perl programming language excels at text processing and is the most popular way to create CGI scripts for Web applications. In addition to running as CGI on a Web server, Perl is also useful for pre-processing: You can write a script to handle complex search and replace tasks across thousands of files. You can automate the task of creating thumbnails and adding copyright messages for images.

Programming Language: PHP PHP is a scripting language that is most widely used for Web applications. You can configure the Apache Web server (or IIS) for PHP support. Many complete PHP applications are freely available, such as Web-based mail, message boards, and contact managers. PHP offers better performance than CGI.

Utilities: Cygwin Linux and Mac OS X come with many small UNIX utility programs like sort, uniq, grep and tail. The Cygwin project is an effort to port common UNIX tools to the Windows environment. Cygwin now comes with these and hundreds more programs, such as the vi editor and a C/C++ compiler (gcc).

Web Browser: Firefox/Mozilla In 1998, Netscape released the source code to its Communicator suite. It took several years of development, but the project eventually release Mozilla, an updated version of Communicator. Mozilla was eventually split into several pieces, each concentrating on a specific task, like Web browsing or e-mail.

Web Browser: Firefox/Mozilla Earlier this month, the Mozilla project release version 1.0 of Firefox, a small, fast Web browser. While Internet Explorer leads in market share, Firefox has many features that IE does not, such as tabbed browing and themes. It supports extensions, which can improve user experience (BugMeNot)

Web Browser: Firefox/Mozilla This is Firefox, with four tabs open. The Web developer toolbar is also visible.

Web Browser: Firefox/Mozilla Other extensions are helpful to Web developers, for example: The Web Developer extension adds a toolbar with menus that let you: Resize browser window for a specific resolution Disable javascript Disable CSS Disable images Display alt text in place of images Display HTML comments Validate HTML and CSS

Text Editor: jedit jedit is a powerful text editor written in Java. It could be considered a competitor to Emacs, UltraEdit and BBEdit. It's features include syntax highlighting, code folding, BSH scripting support and macros. Plugins offer more features, such as code formatting, validation and source control.

Text Editor: jedit This is a screenshot of jedit with an HTML document. Notice the syntax highlighting.

Database Server: MySQL MySQL is a small, fast database server. It could be considered a competitor to Microsoft SQL Server, Oracle or Sybase. It doesn't include all the features of commercial database, but it has very good performance. MySQL is a popular choice for Web applications and is available from most ISPs.

Database Server: MySQL Database servers are programs that provide data access to other programs, and generally have no user interface. However, several GUI and Web-based administration tools are available for MySQL, including MySQL Administrator. MySQL Administrator is also free software.

Database Server: MySQL This is an example of creating a new table with MySQL Administrator.

Database Server: PostgreSQL PostgreSQL is a full-featured database server. Like MySQL, there are graphical and Web-based administration tools available. It includes most features found in commercial databases, and some unique features, too. Runs on most UNIX platforms (including Mac OS X), and the newest version now natively supports Microsoft Windows.

Remote GUI Access: VNC VNC (virtual network computing) is a protocol for accessing one system's desktop from another. It could be considered a competitor to Remote Desktop or PCAnywhere. The two systems don't have to be the same: for example, you can access Windows from a Mac or Linux from Windows.

Remote GUI Access: VNC VNC is particularly helpful for remote administration of Microsoft Windows-based systems, since command-line admin tools are not as common as on UNIX. With most versions of VNC, you can even copy and paste text between two VNC windows! Some versions also have a feature to copy files between systems, like FTP.

Remote GUI Access: VNC Accessing my Mac OS X desktop from Linux

HTML Page Layout: NVU NVU, pronounced En-view, is a WYSIWYG Web authoring application. NVU is similar to Microsoft FrontPage or Macromedia Dreamweaver. It features a tabbed interface, like Firefox, so you can quickly switch between pages. NVU also comes with a built-in CSS editor.

HTML Page Layout: NVU This is the edit mode in NVU.

Conclusion Web developers today face greater demands and smaller budgets. Free software can be one way to minimize expense. It's also important to seek alternatives that give us the freedom to work under our terms, not those dictated by a vendor.

Resources The GIMP (Graphics Editing) Apache (Web Server) http://httpd.apache.org/ Java (Programming Language) http://www.gimp.org/ http://java.sun.com/ Tomcat (Java JSP/Servlet Container) http://jakarta.apache.org/tomcat/

Resources Eclipse (Java IDE) Sysdeo Tomcat Plugin for Eclipse http://www.sysdeo.com/eclipse/tomcatplugin.html Perl (Programming Language) http://www.eclipse.org/ http://www.perl.org/ PHP (Programming Language) http://www.php.net/

Resources Cygwin (UNIX Tools for MS Windows) Mozilla (Web Browser Suite) http://www.mozilla.org/ Firefox (Web Browser) http://www.cygwin.com/ http://www.mozilla.org/products/firefox/ BugMeNot (Firefox Plugin) http://www.bugmenot.com/

Resources Web Developer Plugin for Firefox jedit (Text Editor) http://www.jedit.org/ MySQL (Database Server) http://www.chrispederick.com/work/firefox/webdeveloper/ http://www.mysql.com/ PostgreSQL (Database Server) http://www.postgresql.org/

Resources Real VNC Windows and UNIX Tight VNC Windows and UNIX http://www.tightvnc.com/ OSXVNC Mac OS X (Server only) http://www.realvnc.org/ http://www.redstonesoftware.com/vnc.html Chicken of the VNC Mac OS X (Client only) http://sourceforge.net/projects/cotvnc/

Resources NVU (Web Site Editor) FINK (Unix utilities for Mac OS X) http://fink.sourceforge.net/ SourceForge (lots of free software here) http://www.nvu.com/ http://www.sf.net/ Freshmeat.net (lots of free software here) http://www.freshmeat.net/