Canada's SchoolNet was a federal educational technology project in partnership with provinces, school boards, non-profit organizations, and the private sector, funded primarily by Industry Canada and developed by Ingenia Communications Corporation to promote the effective use of information and communications technologies (ICT) in libraries and schools across the country. Many important early Canadian ICT programs fell under the SchoolNet umbrella, including Computers for Schools, LibraryNet, First Nations SchoolNet, and Canada's Digital Collections. By 1997, SchoolNet brought internet access to all 433 First Nations schools under federal jurisdiction. Microsoft founder Bill Gates praised the program in the Edmonton Journal on November 26. 1995, stating that "SchoolNet is the leading program in the world in terms of letting kids get out and use computers."
34-715: Notable early projects included the SchoolNet MOO and the Special Needs Education (SNE) network. The MOO was abandoned by Industry Canada in 1998, but a non-profit corporation was set up to continue the site as MOO Canada Eh! From 1999-2001, SchoolNet funded Project Achieve MOO developed at the Knowledge Media Design Institute at the University of Toronto . Although acknowledged by executives at Industry Canada as "one of
68-433: A client which speaks the telnet protocol, which provides a stay-alive connection with the host, to relay output and send commands. Some however have developed web interfaces, or other such methods; however this commonly limits interaction that the user can have, usually to the point they have no interaction, but instead can browse objects and discover typical information. Developments in cross-MOO networking have also led to
102-539: A persistent object database , which keeps objects from being lost by a reset of the MOO server software or the computer hosting it. New MOOs have to choose a starting database from which to set their MOO up, or they can use a minimal one which contains only the necessary objects to start a MOO. There are a handful of such MOO "core" databases which serve as foundations of code and utilities from which to start your MOO, including LambdaCore (from LambdaMOO), MinimalDB (considered
136-502: A different gender online). The majority of participants (60 percent) in social MOOs had never engaged in gender-switching, while the majority (56.7 percent) in role-playing MOOs had done so. However, most of those engaged in gender-switching did so on average only 10 percent of the time. The study also found that the primary barrier to gender-switching was the belief that it is dishonest and manipulative. Some servers use "MOO" style object-oriented characteristics without being descended from
170-435: A file. Shortcomings : Requires enough RAM to hold the entire system state. State changes made to a system after its last image was saved are lost in the case of a system failure or shutdown. Saving an image for every single change would be too time-consuming for most systems, so images are not used as the single persistence technique for critical systems. Using journals is the second simplest persistence technique. Journaling
204-471: A non-transparent way by requiring specific storage-API calls or in a transparent way with automatic program transformation . This results in code that is slower than native code and more complicated to debug. Any software layer that makes it easier for a program to persist its state is generically called a persistence layer. Most persistence layers will not achieve persistence directly but will use an underlying database management system . System prevalence
238-462: A process known as corifying . They also feature parenting systems, and every object will have a parent, commonly eventually leading to Root Class , otherwise known as #1. #0 is also reserved as a special system object which is responsible for managing the list of global names, incoming network connections, and other information related to the operation of the system. MOO, along with all of its nephews, started out with text based adventure games . With
272-405: A program. The use of the transitive verb "persist" (describing an action performed by a program) is a back-formation. Orthogonal persistence is widely adopted in operating systems for hibernation and in platform virtualization systems such as VMware and VirtualBox for state saving. Research prototype languages such as PS-algol , Napier88 , Fibonacci and pJama, successfully demonstrated
306-429: A programmable object-oriented MUD server was ColdMUD, written by Greg Hudson and later maintained by Brandon Gillespie under the name "Genesis". One unusual MOO with no real relationship to the original MOO is called mooix. mooix is unique among MUDs in that it uses the underlying UNIX operating system to handle all of the multitasking and networking issues. Several unique side effects result from this, one of which
340-505: Is a technique that combines system images and transaction journals, mentioned above, to overcome their limitations. Shortcomings: A prevalent system must have enough RAM to hold the entire system state. DBMSs use a combination of the dirty writes and transaction journaling techniques mentioned above. They provide not only persistence but also other services such as queries, auditing and access control. Persistent operating systems are operating systems that remain persistent even after
374-408: Is achieved in practice by storing the state as data in computer data storage . Programs have to transfer data to and from storage devices and have to provide mappings from the native programming-language data structures to the storage device data structures. Picture editing programs or word processors , for example, achieve state persistence by saving their documents to files . Persistence
SECTION 10
#1732772926162408-516: Is as multi-participant, low-bandwidth virtual realities . They have been used in academic environments for distance education , collaboration (such as Diversity University ), group decision systems, and teaching object-oriented concepts; but others are primarily social in nature, or used for role-playing video games , or simply to take advantage of the programming possibilities. They have also been used in scientific studies of virtual presence . Most commonly, MOOs are connected to by users using
442-477: Is parsed by the server into a call on a MOO procedure, or verb, which actually does the work. Thus, programming in the MOO programming language is a central part of making non-trivial extensions to the database and hence the virtual reality . All MOOs provide a flag called Wizard ; when set on a player, the player gains the ability to view and modify nearly everything in the MOOs database. Such players usually form
476-414: Is said to be " orthogonal " or "transparent" when it is implemented as an intrinsic property of the execution environment of a program. An orthogonal persistence environment does not require any specific actions by programs running in it to retrieve or save their state . Non-orthogonal persistence requires data to be written and read to and from storage using specific instructions in a program, resulting in
510-504: Is that the MOO can be programmed in any language. mooix was written after a failed attempt by Joey Hess to write a MOO entirely in Perl, called perlmoo. Participants (usually referred to as users) connect to a MOO using telnet or some other, more specialized, client program. Upon connection, they are usually presented with a welcome message explaining how to either create a new character or connect to an existing one. Almost every command
544-412: Is the process of storing events in a log before each one is applied to a system. Such logs are called journals. On startup, the journal is read and each event is reapplied to the system, avoiding data loss in the case of system failure or shutdown. The entire "Undo/Redo" history of user commands in a picture editing program, for example, when written to a file, constitutes a journal capable of recovering
578-406: Is the writing to storage of only those portions of system state that have been modified (are dirty) since their last write. Sophisticated document editing applications, for example, will use dirty writes to save only those portions of a document that were actually changed since the last save. Shortcomings: This technique requires state changes to be intercepted within a program. This is achieved in
612-541: The LambdaMOO server included users Tim Allen ("Gemba"), "Gary_Severn", Roger Crew ("Rog"), Judy Anderson ("yduJ"), and Erik Ostrom (known as "Joe Feedback"). Later, Erik Ostrom maintained the server, and the server is now maintained by Ben Jackson and Jay Carlson and has a LambdaMOO SourceForge.net project. Behavior on social MOOs and role-playing MOOs has been shown to differ. For example, an early study looked at whether users engaged in gender-switching (that is, adopting
646-433: The MOO server code. The more popular of the two, the LambdaMOO server, is named such as indication of the close historical and continuing association of the MOO server code with the first public MOO, LambdaMOO. The LambdaMOO version of MOO that gained popularity in the early 1990s, and it remains the most widely used MOO distribution. Pavel Curtis continued to maintain the server for several years. Other early contributors to
680-492: The advent of the internet, MUD was formed as a networked version of one of those games. Eventually it developed into a tree of different types of MUD, with MOO becoming one of them. Stephen White (also known by the handles "Ghondahrl" and "ghond") wrote the first version of the MOO server, which was released on May 2, 1990, and used for the operation of a server called " AlphaMOO ". Pavel Curtis, an employee of Xerox PARC and also known by his handles "Lambda", and "Haakon", took
714-405: The appropriate flags, with the user can change to determine its current state. They can also assign global names to objects which builders and programmers will then use to create new content on the MOO. Persistence (computer science) In computer science , persistence refers to the characteristic of state of a system that outlives (persists more than) the process that created it. This
SECTION 20
#1732772926162748-460: The basic design, language, and code, fixed bugs and added features to release the second version, called "LambdaMOO" on October 30, 1990. According to Jill Serpentelli in her paper Conversational Structure and Personality Correlates of Electronic Communication: MOO was originally developed as a MUD server in the same general style (sharing much of the command syntax and community conventions) as TinyMUD . There are currently two distributions of
782-404: The basis for MOO administration. Designated owners of a MOO are sometimes referred to as Archwizards. These wizards can restrict access to the MOO, as well as make news postings and monitor logs. Wizard permissions are needed for modification and even execution of verbs and properties for which the user does not own, or is not publicly readable/writable. All verbs and properties within objects have
816-437: The concepts along with the advantages to programmers. Using system images is the simplest persistence strategy. Notebook hibernation is an example of orthogonal persistence using a system image because it does not require any actions by the programs running on the machine. An example of non-orthogonal persistence using a system image is a simple text editing program executing specific instructions to save an entire document to
850-433: The creation of SunNET, a hubless network allowing cross-MOO communication and add extra possibilities to cross-MOO development, including networked channels . Another network called GNA-NET, designed by Gustavo Glusman of BioMOO connected seventeen mostly education sites. Most of these MOOs hosted online classes or other early versions of distance education. Every MOO stores the content and state of all its objects within
884-445: The minimum necessary code and utilities to work usefully in a MOO), JHCore (from Jay's House Moo), and enCore (from LinguaMOO). Every object in the MOO is assigned a number, and may be referred to by this number, prefixed with a # , as well as its name when the user is in the object's presence. Administrators, also known as wizards , who can manage the MOO, and assign certain global names to these objects, which are prefixed with $ ,
918-455: The most successful websites in terms of the level of interest" funding for the SNE was discontinued, and the project moved with its developer Keenan Wellar from Ingenia Communications Corporation to charitable organization LiveWorkPlay in 1997, before the site was discontinued when corporate sponsorship failed to materialize. The SchoolNet project was active from 1995 to the early 2000s, and the site
952-425: The original MOO server, in the sense that they use little or none of that server's source code and use internal languages that are more or less incompatible with the MOO programming language. None of them have attained the popularity of LambdaMOO or its relatives. Stephen White went on to write a new and similar system called CoolMUD, although it never obtained the same wide userbase as MOO. Another, later, attempt at
986-430: The other is to refer to any MUD that uses object-oriented techniques to organize its database of objects, particularly if it does so in a similar fashion to the original MOO or its derivatives. Most of this article refers to the original MOO and its direct descendants, but see non-descendant MOOs for a list of MOO-like systems. The original MOO server was authored by Stephen White, based on his experience from creating
1020-490: The programmable TinyMUCK system. There was additional later development and maintenance from LambdaMOO founder, and former Xerox PARC employee, Pavel Curtis . One of the most distinguishing features of a MOO is that its users can perform object-oriented programming within the server, ultimately expanding and changing how it behaves to everyone. Examples of such changes include authoring new rooms and objects, creating new generic objects for others to use, and changing
1054-468: The state of an edited picture at any point in time. Journals are used by journaling file systems , prevalent systems and database management systems where they are also called "transaction logs" or "redo logs". Shortcomings : When journals are used exclusively, the entire (potentially large) history of all system events must be reapplied on every system startup. As a result, journals are often combined with other persistence techniques. This technique
SchoolNet - Misplaced Pages Continue
1088-444: The use of persist as a transitive verb: On completion, the program persists the data . The advantage of orthogonal persistence environments is simpler and less error-prone programs. The term "persistent" was first introduced by Atkinson and Morrison in the sense of orthogonal persistence: they used an adjective rather than a verb to emphasize persistence as a property of the data, as distinct from an imperative action performed by
1122-464: The way the MOO interface operates. The programming language used for extension is the MOO programming language, and many MOOs feature convenient libraries of verbs that can be used by programmers in their coding known as Utilities . MOOs are network accessible, multi-user, programmable, interactive systems well-suited to the construction of text-based adventure games, conferencing systems, and other collaborative software. Their most common use, however,
1156-416: Was taken offline in 2008. This computing article is a stub . You can help Misplaced Pages by expanding it . MOO A MOO (" MUD , object-oriented" ) is a text-based online virtual reality system to which multiple users (players) are connected at the same time. The term MOO is used in two distinct, but related, senses. One is to refer to those programs descended from the original MOO server, and
#161838