Software resources for all

  • The vi editor has withstood the test of time. There are many reasons for its continued popularity - there are separate edit and insert mode, so the chances of inserting text inadvertently is not there, cut copy and paste are terribly efficient, navigation in large files is fast, and generally everything about vi is fast. vi is especially suited for writing large programs.
  • The make program automates generation of executable files from the program's source files. make compiles only those source files which have changed since the last time the corresponding object files were created. This is a slightly advanced level tutorial.
  • The make program automates generation of executable files from the program's source files. make compiles only those source files which have changed since the last time the corresponding object files were created. This is a beginner level tutorial.
  • A Linux system provides many services to the users, like networking, system logging, secure shell access or the print spooler. Some of these services are started during the system initialization procedure at the boot time. Others are started when certain circumstances or events occur. Similarly these services are terminated at system shutdown or before. The start and stop of these services is controlled by the init scripts.
  • This tutorial looks at the GNU Build System. From an end-user's perspective, it first describes how to build the binary executable of a GNU free and open source software package from the available source code and install it on your system. Then, from a programmer's perspective it looks at the GNU Build System for generating the scripts and makefiles which provide the infrastructure that enables the end user to build and install the GNU software executables.
  • The diff command is used for finding differences between two versions of a set of files organized in a directory structure. patch command is used to generate a newer version of files using the older version of files and the diff output of the differences between the two versions.
  • The major software process models are the waterfall model, the evolutionary model and the spiral model. As per the agile concurrent software process model, the activities of waterfall model are not at all done in a sequence in a project; these activities are done concurrently with varying intensities at all times during the software life cycle of a project.
  • Time is the most important requirement for software development projects. Unfortunately, most of the project estimation efforts aim to reduce the time duration of a project. This has a detrimental effect on the project. On the other hand, if the project timeline is a little relaxed, a better project is conceptualized and a design is made that scales well with new requirements.
  • Scrum is an agile software development methodology. Scrum is an incremental software process model, where a project is divided into smaller sub-projects, with each sub-project aiming to add an increment to the working version of final software.Each sub-project is executed in a four to six week duration sprint.
  • Unix was developed in the late sixties and the seventies at Bell Labs. Unix is one of the most important developments in the history of computer software which has influenced the development of operating systems, software development environments and overall computing in general. Since Unix has been such a great success, its development is a valuable case study in software engineering.