text:
Commentarii de Bello Gallico

Commentarii de Bello Gallico (Commentaries on the Gallic War), also Bellum Gallicum (Gallic War), is Julius Caesar's firsthand account of the Gallic Wars, written as a third-person narrative. In it Caesar describes the battles and intrigues that took place in the nine years he spent fighting the Celtic and Germanic peoples in Gaul that opposed Roman conquest.

The "Gaul" that Caesar refers to is ambiguous, as the term had various connotations in Roman writing and discourse during Caesar's time. Generally, Gaul included all of the regions primarily inhabited by Celts, aside from the province of Gallia Narbonensis (modern-day Provence and Languedoc-Roussillon), which had already been conquered in Caesar's time; therefore encompassing the rest of modern France, Belgium, Western Germany, and parts of Switzerland. As the Roman Republic made inroads deeper into Celtic territory and conquered more land, the definition of "Gaul" shifted. Concurrently, "Gaul" was also used in common parlance as a synonym for "uncouth" or "unsophisticated" as Romans saw Celtic peoples as uncivilized compared with themselves.

The work has been a mainstay in Latin instruction because of its simple, direct prose. It begins with the frequently quoted phrase "Gallia est omnis divisa in partes tres", meaning "Gaul is a whole divided into three parts". The full work is split into eight sections, Book 1 to Book 8, varying in size from approximately 5,000 to 15,000 words. Book 8 was written by Aulus Hirtius, after Caesar's death.

Although most contemporaries and subsequent historians considered the account truthful, 20th-century historians have questioned the outlandish claims made in the work. Of particular note are Caesar's claims that the Romans fought Gallic forces of up to 430,000 (a size believed to be impossible for an army at that time), and that the Romans suffered no deaths against this incredibly large force. Historian David Henige regards the entire account as clever propaganda meant to boost Caesar's image, and suggests that it is of minimal historical accuracy.

Title
The Latin title, Commentaries on the Gallic War, is often retained in English translations of the book, and the title is also translated to About the Gallic War, Of the Gallic War, On the Gallic War, The Conquest of Gaul, and The Gallic War.

Motivations
The victories in Gaul won by Caesar had increased the alarm and hostility of his enemies at Rome, and his aristocratic enemies, the Optimates, were spreading rumors about his intentions once he returned from Gaul. The optimates intended to prosecute Caesar for abuse of his authority upon his return, when he would lay down his imperium. Such prosecution would not only see Caesar stripped of his wealth and citizenship, but also negate all of the laws he enacted during his term as Consul and his dispositions as pro-consul of Gaul. To defend himself against these threats, Caesar knew he needed the support of the plebeians, particularly the Tribunes of the Plebs, on whom he chiefly relied for help in carrying out his agenda. The Commentaries were an effort by Caesar to directly communicate with the plebeians – thereby circumventing the usual channels of communication that passed through the Senate – to propagandize his activities as efforts to increase the glory and influence of Rome. By winning the support of the people, Caesar sought to make himself unassailable from the boni.

Synopsis
The Commentarii cover the Gallic Wars over a period of 8 years, beginning with conflict over the migration of the Helvetii in 58 BC, which drew in neighboring tribes and the Germanic Suebi. By 57 BC, Caesar had resolved to conquer all of Gaul, and led campaigns in the east, where the Nervii nearly defeated him. In 56 BC, Caesar defeated the Veneti in a naval battle and took most of northwest Gaul. In 55 BC, Caesar sought to boost his public image, and undertook expeditions across the Rhine river and the English Channel that were the first of their kind. Upon his return from Britain, Caesar was hailed as a hero, though he had achieved little beyond landing because his army had been too small and he was unable to land his cavalry. The next year, he went back with a larger army, including cavalry, and was more successful, setting up a friendly king and bringing his rival to terms. However, tribes rose up on the continent, and the Romans suffered a humiliating defeat. 53 BC saw a draconian campaign against the Gauls in an attempt to pacify them. This failed, and the Gauls staged a mass revolt under the leadership of Vercingetorix in 52 BC. Gallic forces won a notable victory at the Battle of Gergovia, but the Romans' indomitable siege works at the Battle of Alesia utterly defeated the Gallic coalition.

In 51 BC and 50 BC, there was little resistance, and Caesar's troops were mostly mopping up. Gaul was conquered, although it would not become a Roman province until 27 BC, and resistance would continue until as late as 70 AD. There is no clear end-date for the war, but the imminent Roman Civil War led to the withdrawal of Caesar's troops in 50 BC. Caesar's wild successes in the war had made him extremely wealthy and provided a legendary reputation. The Gallic Wars were a key factor in Caesar's ability to win the Civil War and declare himself dictator, in what would eventually lead to the end of the Roman Republic and the establishment of the Roman Empire.

Leaders of the Gallic tribes
In the Commentarii de Bello Gallico, Caesar mentions several leaders of the Gallic tribes. Among these, Diviciacus and Vercingetorix are notable for their contributions to the Gauls during war.

Diviciacus
Book 1 and Book 6 detail the importance of Diviciacus, a leader of the Haedui (Aedui), which lies mainly in the friendly relationship between Caesar and Diviciacus, said to be "the one person in whom Caesar had absolute confidence" (1.41). His brother, Dumnorix had committed several acts against the Romans because he wanted to become king (1.18); thus Caesar was able to make his alliance with Diviciacus even stronger by sparing Dumnorix from punishment while also forcing Diviciacus to control his own brother. Diviciacus had, in tears, begged Caesar to spare the life of his brother, and Caesar saw an opportunity to not only fix his major problem with Dumnorix, but also to strengthen the relationship between Rome and one of its small allies. Another major action taken by Diviciacus was his imploring of Caesar to take action against the Germans and their leader, Ariovistus. His fear of Ariovistus and the general outcry from the Gallic people led Caesar to launch a campaign against the Germans, even though they had been considered friends of the Republic.

Vercingetorix
Vercingetorix, leader of the Arverni, united the Gallic tribes against Caesar during the winter of 53–52 BC. This appears in Book VII, chapters 1–13. Vercingetorix's father, Celtillus, was killed after attempting to seize power amongst the Arverni; for that reason, Vercingetorix was a social outcast and had much to gain from a rebellion. When it was clear that Caesar had defeated the Gallic rebellion, Vercingetorix offered to sacrifice himself, and put himself at the mercy of Caesar, in order to ensure that his kinsmen were spared. After the defeat, Vercingetorix was brought to Rome and imprisoned for six years before being brought out to adorn Caesar's triumph over Gaul and then publicly executed. Today, Vercingetorix is seen in the same light as others who opposed Roman conquest; he is now considered a national hero in France and a model patriot.

The Germanic peoples
In De Bello Gallico 6.21–28, Julius Caesar provides his audience with a picture of Germanic lifestyle and culture. He depicts the Germans as primitive hunter gatherers with diets mostly consisting of meat and dairy products who only celebrate earthly gods such as the sun, fire, and the moon (6.21–22). German women reportedly wear small cloaks of deer hides and bathe in the river naked with their fellow men, yet their culture celebrates men who abstain from sex for as long as possible (6.21). Caesar concludes in chapters 25–28 by describing the Germans living in the almost-mythological Hercynian forest full of oxen with horns in the middle of their foreheads, elks without joints or ligatures, and uri who kill every man they come across.

However, the distinguishing characteristic of the Germans for Caesar, as described in chapters 23 and 24, is their warring nature, which they believe is a sign of true valour (6.23). The Germans have no neighbors, because they have driven everyone out from their surrounding territory (6.23). Their greatest political power resides in the wartime magistrates, who have power over life and death (6.23). While Caesar certainly respects the warring instincts of the Germans, he wants his readers to see that their cultures are simply too barbaric, especially when contrasted with the high-class Gallic Druids described at the beginning of chapter six. For example, Caesar writes that robberies committed outside of the state are legalized in hopes of teaching young people discipline and caution, an idea nearly offensive to the judicial practices of the Romans (6.23). Caesar's generalizations, alongside the writings of Tacitus, form the barbaric identity of the Germans for the ancient world.

The Druids
Caesar's account of the Druids and the "superstitions" of the Gallic nations are documented in Book 6, chapters 13, 14 and 16–18 of De Bello Gallico. In chapter 13, he mentions the importance of Druids in the culture and social structure of Gaul at the time of his conquest. Chapter 14 addresses the education of the Druids and the high social standing that comes with their position. He first comments on the role of sacrificial practices in their daily lives in chapter 16. Caesar highlights the sacrificial practices of the Druids containing innocent people and the large sacrificial ceremony where hundreds of people were burnt alive at one time to protect the whole from famine, plague, and war (6.16). Chapter 17 and 18 focuses on the divinities the Gauls believed in and Dis, the god which they claim they were descended from. This account of the Druids highlights Caesar's interest in the order and importance of the Druids in Gaul.

Caesar spent a great amount of time in Gaul and his book is one of the best preserved accounts of the Druids from an author who was in Gaul. However, although Caesar provides what is seemingly a first-hand account, much of his knowledge of the Druids comes not from personal experience, but rather from the hearsay of others, and is regarded as anachronistic. Caesar based some of his account on that of Posidonius, who wrote a clear and well-known account of the Druids in Gaul. Caesar provides his account of the Druids as a means of sharing his knowledge and educating the Roman people on the foreign conquests.

There is no doubt that the Druids offered sacrifices to their god. However, scholars are still uncertain about what kind of offerings they made. Caesar and other Roman authors assert that the Druids would offer human sacrifices on numerous occasions for relief from disease and famine or for a successful war campaign. Caesar provides a detailed account of the manner in which the supposed human sacrifices occurred in chapter 16, claiming that "they have images of immense size, the limbs of which are framed with twisted twigs and filled with living persons. These being set on fire, those within are encompassed by the flames" (6.16).

Caesar, however, also observes and mentions a civil Druid culture. In chapter 13, he claims that they selected a single leader who ruled until his death, and a successor would be chosen by a vote or through violence. Also in chapter 13, he mentions that the Druids studied "the stars and their movements, the size of the cosmos and the earth, the nature of the world, and the powers of immortal deities," signifying to the Roman people that the Druids were also versed in astrology, cosmology, and theology. Although Caesar is one of the few primary sources on the Druids, many believe that he had used his influence to portray the Druids to the Roman people as both barbaric, as they performed human sacrifices, and civilized in order to depict the Druids as a society worth assimilating to Rome (6.16).

Vorenus and Pullo
Lucius Vorenus and Titus Pullo were two centurions in the garrison of Quintus Tullius Cicero, brother of Marcus Tullius Cicero, and are mentioned in Book 5.44 of De Bello Gallico. They were bitter rivals who both sought to achieve the greatest honors "and every year used to contend for promotion with the utmost animosity" (5.44). Their garrison had come under siege during a rebellion by the tribes of the Belgae led by Ambiorix. They showed their prowess during this siege by jumping from the wall and directly into the enemy despite being completely outnumbered. During the fighting, they both find themselves in difficult positions and are forced to save each other, first Vorenus saving Pullo and then Pullo saving Vorenus. Through great bravery they are both able to make it back alive slaying many enemies in the process. They return to the camp showered in praise and honors by their fellow soldiers. Though they started out in competition, they both showed themselves to be worthy of the highest praise and equal to each other in bravery (5.44).

Caesar uses this anecdote to illustrate the courage and bravery of his soldiers. Since his forces had already been humiliated and defeated in previous engagements, he needed to report a success story to Rome that would lift the spirits of the people. Furthermore, the tale of unity on the battlefield between two personal rivals is in direct opposition to the disunity of Sabinus and Cotta, which resulted in the destruction of an entire legion. He relates this particular account to illustrate that, despite the losses against Ambiorix and his army, Rome is still able to trust in the valor of its soldiers. Thus, Caesar turns a military blunder into a positive propaganda story.

Hostage exchanges
In the first two books of De Bello Gallico, there are seven examples of hostage exchanges. First, the Helveti exchange hostages with the Sequani as a promise that the Sequani will let the Helveti pass and that the Helveti will not cause mischief (1.9 and 1.19). The Helveti also give Caesar hostages to ensure that the Helveti keep their promises (1.14). Then the Aedui gave hostages to the Sequani, during the Sequani's rise to power (1.31). In Book 2, the Belgae were exchanging hostages to create an alliance against Rome (2.1) and the Remi offered Caesar hostages in their surrender (2.3, 2.5). Later in the book Caesar receives 600 hostages from the Aedui (2.15) and other hostages from most of Gaul (2.35). This practice of exchanging hostages continues to be used throughout Caesar's campaigns in diplomacy and foreign policy.

Today the term hostage has a different connotation than it did for the Ancient Romans, which is shown in the examples above. Where the Romans did take prisoners of war, hostages could also be given or exchanged in times of peace. The taking of hostages as collateral during political arrangements was a common practice in ancient Rome. The idea of the practice was that important people from each side were given to ensure that both sides kept their word; a type of contract. Two examples of this: Caesar demanding the children of chieftains (2.5) and accepting the two sons of King Galba (2.13). However, as seen by Caesar, sometimes it was only a one-way exchange, with Caesar taking hostages but not giving any.

There is evidence though, particularly in Caesar's De Bello Gallico, indicating that the practice was not always effective. Cities often moved to rebel against Rome, even though hostages were in Roman custody. Occasionally, hostages would be entrusted to a neutral or mediating party during a rebellion, such as the time one hundred hostages surrendered by the Senones were placed in the custody of the Aedui who helped negotiate between the dissidents and Caesar. Some sources say there is not much evidence that hostages were even harmed, at least severely, in retribution of the broken agreements. It is commonly noted that Caesar never mentions penalties being dealt to hostages. Taking hostages did benefit Rome in one particular way: since hostages were commonly the sons of political figures and would typically be under Roman watch for a year or more, Romans had ample time to introduce those hostages to the Roman customs in hopes that when they were freed, they would go on to become influential political leaders themselves and favor Rome in subsequent foreign relations.

Educational use
This book is often lauded for its polished, clear Latin; in particular, German historian Hans Herzfeld describes the work as "a paradigm of proper reporting and stylistic clarity". It is traditionally the first authentic text assigned to students of Latin, as Xenophon's Anabasis is for students of Ancient Greek; they are both autobiographical tales of military adventure told in the third person. It contains many details and employs many stylistic devices to promote Caesar's political interests.

The books are valuable for the many geographical and historical claims that can be retrieved from the work. Notable chapters describe Gaulish custom (6.13), their religion (6.17), and a comparison between Gauls and Germanic peoples (6.24).

In modern media

 * Since Caesar is one of the characters in the Astérix and Obélix albums, René Goscinny included gags for French schoolchildren who had the Commentarii as a textbook, even though Latin was then disappearing from French schools. One example is having Caesar talk about himself in the third person as in the book. Most English editions of Asterix begin with the prelude: "The year is 50 BC. Gaul is entirely occupied by the Romans. Well not entirely! One small village of indomitable Gauls still holds out against the invaders." In the 36th book of the Asterix series, Asterix and the Missing Scroll, a fictitious and supposedly censored chapter from Caesar's Commentaries on the Gallic War forms the basis for the story.
 * In Book 5, Chapter 44 the Commentarii de Bello Gallico notably mentions Lucius Vorenus and Titus Pullo, two Roman centurions of the 11th Legion. The 2005 television series Rome gives a fictionalized account of Caesar's rise and fall, featuring Kevin McKidd as the character of Lucius Vorenus and Ray Stevenson as the character of Titus Pullo of the 13th Legion.
 * During World War I the French composer Vincent d'Indy wrote his Third Symphony, which bears the title De Bello Gallico. D'Indy was adapting Caesar's title to the situation of the current struggle in France against the German army, in which he had a son and nephew fighting, and which the music illustrates to some extent.

Manuscripts and publication history
Since the work of Karl Nipperdey in 1847, the existing manuscripts have been divided into two classes. The first (α) encompasses manuscripts containing only De Bello Gallico and characterized by colophons with allusions to late antique correctores. The oldest manuscript in this class is MS. Amsterdam 73, written at Fleury Abbey in the later ninth century. The second (β) encompasses manuscripts containing all of the related works—not only De Bello Gallico, but De Bello Civili, De Bello Alexandrino, De Bello Africo, and De Bello Hispaniensi, always in that order. The oldest manuscript in this class is MS Paris lat. 3864, written at Corbie in the last quarter of the ninth century. For De Bello Gallico, the readings of α are considered better than β.

The editio princeps was published by Giovanni Andrea Bussi at Rome in 1469.

The original publication time of the Bello Gallico is uncertain. It had been definitely published by 46 BC, when Cicero reviewed it and gave it great praise. It is unclear whether the books were released individually, or all at once. Nipperdey's 1847 account believed that they had been mostly all composed at once in 50 BC. Frank Adcock suggested in 1956 that they had been written in stages, but then published simultaneously. T. P. Wiseman believed they were written and published yearly, as Caesar would have gained enormous utility from keeping the public informed about his exploits. The debate as to the time and nature of publication continues, with critical examination of the evolution of the writing style the chief tool for dating the work. Even if the works were published after the wars, it was clear that Caesar was waging a propaganda campaign during the war, including writing copious letters to his political allies back in Rome. Because of the questionable nature of the war, and threats by his enemies to have him essentially tried for war crimes, winning the public relations battle was critical for Caesar.

Accuracy
Caesar's account was largely taken as truthful and accurate until the 20th century. Nipperdey's manuscript in 1847 was considered "monumental", and was the first critical examination of the text, which considered Caesar to be infallible. Nipperdey even chose to modify his translation of the text where it contradicted itself, giving Caesar the benefit of any doubts. Even in 1908, Camille Jullian wrote a comprehensive history of Gaul and took Caesar's account as unerring. But after World War II historians began to question if Caesar's claims stood up.

Historian David Henige takes particular issue with the supposed population and warrior counts. Caesar claims that he was able to estimate the population of the Helvetii because in their camp there was a census, written in Greek on tablets, which would have indicated 263,000 Helvetii and 105,000 allies, of whom exactly one quarter (92,000) were combatants. But Henige points out that such a census would have been difficult to achieve by the Gauls, that it would make no sense to be written in Greek by non-Greek tribes, and that carrying such a large quantity of stone or wood tablets on their migration would have been a monumental feat. Henige finds it oddly convenient that exactly one quarter were combatants, suggesting that the numbers were more likely ginned up by Caesar than outright counted by census. Even contemporary authors estimated that the population of the Helvetii and their allies were lower, Livy surmised that there were 157,000 overall. But Henige still believes this number inaccurate.

During the campaign against the Usipetes and the Tenceri, Caesar makes the incredible claim that the Romans faced an army of 430,000 Gauls, that the Roman victory was overwhelming, that the Romans lost not a single soldier, and that upon their loss the Gauls committed mass suicide. Henige finds this entire story impossible, as did Ferdinand Lot, writing in 1947. Lot was one of the first modern authors who directly questioned the validity of Caesar's numbers, finding a fighting force of 430,000 to have been unbelievable for the time.

Not all contemporaries of Caesar believed the account to have been accurate. Gaius Asinius Pollio, who served under Caesar, noted that the account had been put together without much care or regard for the truth. Still, Pollio attributed this to mistakes by Caesar's lieutenants, or even that Caesar intended to rewrite the text more accurately. Up until the 20th century authors tended to follow Pollio's thinking, attributing mistakes not to Caesar but to the process, such as errors in translation and transcription throughout time. Ernest Desjardins, writing in 1876, suggested (in what Henige considers to be very charitable on Desjardins part) that the error in numbers in the Usipetes campaign was the result of a mis-transcription of "CCCCXXX" instead of "XXXXIII", which would mean that the real size of the Gaulic force was actually just 43,000. But even Henige suggests that it is possible the numbers have not always been accurately written down, and that the earliest surviving manuscripts are only from the ninth to twelfth centuries.

Part of the dispute over the historiography of the Commentarii revolves around modern authors trying to use it to estimate the pre-Roman population of Gaul. In the 18th century, authors extrapolated from the text populations of 40–200 million. Authors in the 19th century guessed in the 15–20 million range based on the text. 20th century authors guessed as low as 4 million, with Henige giving a modern range of 4–48 million between authors.

Ultimately, Henige sees the Commentarii as a very clever piece of propaganda written by Caesar, built to make Caesar appear far grander than he was. Henige notes that Caesar's matter of fact tone and easy to read writing made it all the easier to accept his outlandish claims. Caesar sought to portray his fight as a justified defense against the barbarity of the Gauls (which was important, as Caesar had actually been the aggressor contrary to his claims). By making it appear that he had won against overwhelming odds and suffered minimal casualties, he further increased the belief that he and the Romans were godly and destined to win against the godless barbarians of Gaul. Overall, Henige concludes that "Julius Caesar must be considered one of history's earliest – and most durably successful – 'spin doctors'".

Authorship
Classicist Ruth Breindal believes it likely that Caesar did not directly write the work, but instead dictated most of it to a scribe at one time and the scribe wrote as Caesar spoke, or that the scribe took notes and wrote the account afterwards. Still, she does believe that Caesar had an overwhelming hand in creating the work, but believes much of the grammar and clarity of the work to be the result of the scribe or scribes involved. Breindal also considers the main point of the work to be as a propaganda piece to protect Caesar's reputation in the vicious politics of Rome. Book eight was written after Caesar's death in 44 BC by consul Aulus Hirtius; Hirtius must have written the book before his own death in the civil war in 43 BC.

The author portrays Caesar's thoughts frequently, with an emphasis on making Caesar seem efficient, decisive, and straightforward, and that his view on how war should be waged is the same. The work paints the conflict as inevitable and necessary.

As literature
From the 1970s, critics began to regard the work less as history than literature, in the tradition of poets following the model of Homer.

title: Commentarii de Bello Gallico


text:
Package manager

A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner.

A package manager deals with packages, distributions of software and data in archive files. Packages contain metadata, such as the software's name, description of its purpose, version number, vendor, checksum (preferably a cryptographic hash function), and a list of dependencies necessary for the software to run properly. Upon installation, metadata is stored in a local package database. Package managers typically maintain a database of software dependencies and version information to prevent software mismatches and missing prerequisites. They work closely with software repositories, binary repository managers, and app stores.

Package managers are designed to eliminate the need for manual installs and updates. This can be particularly useful for large enterprises whose operating systems typically consist of hundreds or even tens of thousands of distinct software packages.

History
An early package manager was SMIT (and its backend installp) from IBM AIX. SMIT was introduced with AIX 3.0 in 1989.

Early package managers, from around 1994, had no automatic dependency resolution but could already drastically simplify the process of adding and removing software from a running system.

By around 1995, beginning with CPAN, package managers began doing the work of downloading packages from a repository, automatically resolving its dependencies and installing them as needed, making it much easier to install, uninstall and update software from a system.

Functions

A software package is an archive file containing a computer program as well as necessary metadata for its deployment. The computer program can be in source code that has to be compiled and built first. Package metadata include package description, package version, and dependencies (other packages that need to be installed beforehand).

Package managers are charged with the task of finding, installing, maintaining or uninstalling software packages upon the user's command. Typical functions of a package management system include:
 * Working with file archivers to extract package archives
 * Ensuring the integrity and authenticity of the package by verifying their checksums and digital certificates, respectively
 * Looking up, downloading, installing, or updating existing software from a software repository or app store
 * Grouping packages by function to reduce user confusion
 * Managing dependencies to ensure a package is installed with all packages it requires, thus avoiding "dependency hell"

Challenges with shared libraries
Computer systems that rely on dynamic library linking, instead of static library linking, share executable libraries of machine instructions across packages and applications. In these systems, conflicting relationships between different packages requiring different versions of libraries results in a challenge colloquially known as "dependency hell". On Microsoft Windows systems, this is also called "DLL hell" when working with dynamically linked libraries.

Modern package managers have mostly solved these problems, by allowing parallel installation of multiple versions of a library (e.g. OPENSTEP's Framework system), a dependency of any kind (e.g. slots in Gentoo Portage), and even of packages compiled with different compiler versions (e.g. dynamic libraries built by the Glasgow Haskell Compiler, where a stable ABI does not exist), in order to enable other packages to specify which version they were linked or even installed against.

Front-ends for locally compiled packages
System administrators may install and maintain software using tools other than package management software. For example, a local administrator may download unpackaged source code, compile it, and install it. This may cause the state of the local system to fall out of synchronization with the state of the package manager's database. The local administrator will be required to take additional measures, such as manually managing some dependencies or integrating the changes into the package manager.

There are tools available to ensure that locally compiled packages are integrated with the package management. For distributions based on .deb and .rpm files as well as Slackware Linux, there is CheckInstall, and for recipe-based systems such as Gentoo Linux and hybrid systems such as Arch Linux, it is possible to write a recipe first, which then ensures that the package fits into the local package database.

Maintenance of configuration
Particularly troublesome with software upgrades are upgrades of configuration files. Since package managers, at least on Unix systems, originated as extensions of file archiving utilities, they can usually only either overwrite or retain configuration files, rather than applying rules to them. There are exceptions to this that usually apply to kernel configuration (which, if broken, will render the computer unusable after a restart). Problems can be caused if the format of configuration files changes; for instance, if the old configuration file does not explicitly disable new options that should be disabled. Some package managers, such as Debian's dpkg, allow configuration during installation. In other situations, it is desirable to install packages with the default configuration and then overwrite this configuration, for instance, in headless installations to a large number of computers. This kind of pre-configured installation is also supported by dpkg.

Repositories
To give users more control over the kinds of software that they are allowing to be installed on their system (and sometimes due to legal or convenience reasons on the distributors' side), software is often downloaded from a number of software repositories.

Upgrade suppression
When a user interacts with the package management software to bring about an upgrade, it is customary to present the user with the list of actions to be executed (usually the list of packages to be upgraded, and possibly giving the old and new version numbers), and allow the user to either accept the upgrade in bulk, or select individual packages for upgrades. Many package managers can be configured to never upgrade certain packages, or to upgrade them only when critical vulnerabilities or instabilities are found in the previous version, as defined by the packager of the software. This process is sometimes called version pinning.

For instance:
 * yum supports this with the syntax exclude=openoffice*
 * pacman with IgnorePkg= openoffice (to suppress upgrading openoffice in both cases)
 * dpkg and dselect support this partially through the hold flag in package selections
 * APT extends the hold flag through the complex "pinning" mechanism (Users can also blacklist a package )
 * aptitude has "hold" and "forbid" flags
 * portage supports this through the package.mask configuration file

Cascading package removal
Some of the more advanced package management features offer "cascading package removal", in which all packages that depend on the target package and all packages that only the target package depends on, are also removed.

Comparison of commands
Although the commands are specific for every particular package manager, they are to a large extent translatable, as most package managers offer similar functions. The Arch Linux Pacman/Rosetta wiki offers an extensive overview.

Prevalence
Package managers like dpkg have existed as early as 1994.

Linux distributions oriented to binary packages rely heavily on package management systems as their primary means of managing and maintaining software. Mobile operating systems such as Android (Linux-based), iOS (Unix-based), and Windows Phone rely almost exclusively on their respective vendors' app stores and thus use their own dedicated package management systems.

Comparison with installers
A package manager is often called an "install manager", which can lead to a confusion between package managers and installers. The differences include:

Comparison with build automation utility
Most software configuration management systems treat building software and deploying software as separate, independent steps. A build automation utility typically takes human-readable source code files already on a computer, and automates the process of converting them into a binary executable package on the same or remote computer. Later a package manager typically running on some other computer downloads those pre-built binary executable packages over the internet and installs them.

However, both kinds of tools have many commonalities:
 * For example, the dependency graph topological sorting used in a package manager to handle dependencies between binary components is also used in a build manager to handle the dependency between source components.
 * For example, many makefiles support not only building executables, but also installing them with.
 * For example, every package manager for a source-based distribution – Portage, Sorcery, Homebrew, etc. – supports converting human-readable source code to binary executables and installing it.

A few tools, such as Maak and A-A-P, are designed to handle both building and deployment, and can be used as either a build automation utility or as a package manager or both.

Comparison with app stores
App stores can also be considered application-level package managers, without the ability to install all levels of programs ). Unlike traditional package managers, app stores are designed to enable payment for the software itself (instead of for software development), and may only offer monolithic packages with no dependencies or dependency resolution. They are usually extremely limited in their management functionality, due to a strong focus on simplification over power or emergence, and common in commercial operating systems and locked-down “smart” devices.

Package managers also often have only human-reviewed code. Many app stores, such and Google Play and Apple's App Store, screen apps mostly using automated tools only; malware with defeat devices can pass these tests, by detecting when the software is being automatically tested and delaying malicious activity. There are, however, exceptions; the npm package database, for instance, relies entirely on post-publication review of its code, while the Debian package database has an extensive human review process before any package goes into the main stable database. The XZ Utils backdoor used years of trust-building to insert a backdoor, which was nontheless caught while in the testing database.

Universal package manager
Also known as binary repository manager, it is a software tool designed to optimize the download and storage of binary files, artifacts and packages used and produced in the software development process. These package managers aim to standardize the way enterprises treat all package types. They give users the ability to apply security and compliance metrics across all artifact types. Universal package managers have been referred to as being at the center of a DevOps toolchain.

Package formats
Each package manager relies on the format and metadata of the packages it can manage. That is, package managers need groups of files to be bundled for the specific package manager along with appropriate metadata, such as dependencies. Often, a core set of utilities manages the basic installation from these packages and multiple package managers use these utilities to provide additional functionality.

For example, yum relies on rpm as a backend. Yum extends the functionality of the backend by adding features such as simple configuration for maintaining a network of systems. As another example, the Synaptic Package Manager provides a graphical user interface by using the Advanced Packaging Tool (apt) library, which, in turn, relies on dpkg for core functionality.

Alien is a program that converts between different Linux package formats, supporting conversion between Linux Standard Base (LSB) compliant .rpm packages, .deb, Stampede (.slp), Solaris (.pkg) and Slackware (.tgz, .txz, .tbz, .tlz) packages.

In mobile operating systems, Google Play consumes Android application package (APK) package format while Microsoft Store uses APPX and XAP formats. (Both Google Play and Microsoft Store have eponymous package managers.)

Free and open source software systems
By the nature of free and open source software, packages under similar and compatible licenses are available for use on a number of operating systems. These packages can be combined and distributed using configurable and internally complex packaging systems to handle many permutations of software and manage version-specific dependencies and conflicts. Some packaging systems of free and open source software are also themselves released as free and open source software. One typical difference between package management in proprietary operating systems, such as Mac OS X and Windows, and those in free and open source software, such as Linux, is that free and open source software systems permit third-party packages to also be installed and upgraded through the same mechanism, whereas the package managers of Mac OS X and Windows will only upgrade software provided by Apple and Microsoft, respectively (with the exception of some third party drivers in Windows). The ability to continuously upgrade third-party software is typically added by adding the URL of the corresponding repository to the package management's configuration file.

Application-level package managers
Beside the system-level application managers, there are some add-on package managers for operating systems with limited capabilities and for programming languages in which developers need the latest libraries.

Unlike system-level package managers, application-level package managers focus on a small part of the software system. They typically reside within a directory tree that is not maintained by the system-level package manager, such as c:\cygwin or /opt/sw. However, this might not be the case for the package managers that deal with programming libraries, leading to a possible conflict as both package managers may claim to "own" a file and might break upgrades.

Data Dependency Management
In 2016, Edgard Marx, a computer scientist from Leipzig University, coined the term Data Dependency Management to refer to the systems that deal with the management of data. Data Dependency Management systems are designed to facilitate the deployment and management of data on the cloud, personal computers, or smart devices (edge). Data Dependency Management frameworks can be used to describe how the data was conceived, licensing as well as its dependencies. The concept of data dependency management comes from software package dependency management tools such as npm for JavaScript, gem for Ruby, and NuGet for .NET. Their rationale is to allow users to manage the software dependency on data, such as machine learning models for data-driven applications. They are useful to publish, locate, and install data packages. A typical example of a data dependency management frameworks are Hugging Face, KBox, among others.

Impact
Ian Murdock had commented that package management is "the single biggest advancement Linux has brought to the industry", that it blurs the boundaries between operating system and applications, and that it makes it "easier to push new innovations [...] into the marketplace and [...] evolve the OS".

There is also a conference for package manager developers known as PackagingCon. It was established in 2021 with the aim to understand different approaches to package management.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Package manager


text:
OBL

OBL or ÖBL may refer to:

Basketball

 * Obol Basketball League, former name for the Swedish Basketball League
 * Orlen Basket Liga, the Polish Basketball League name from 2023
 * Österreichische Basketball Bundesliga, the top basketball league in Austria

Other

 * Osama bin Laden (1957–2011), founder of the al-Qaeda militant organization
 * Zoersel-Oostmalle Airfield, Belgium (IATA code)
 * Oblique case, a grammatical case
 * Obligate wetland plant, a wetland indicator status
 * Österreichisches Biographisches Lexikon 1815–1950, a biographical dictionary of individuals who've contributed to the history of Austria
 * One Bank Limited, a Bangladeshi bank
 * Oblo language of northern Cameroon (ISO 639-3 code: obl)

title: OBL


text:
Osama (disambiguation)

Osama bin Laden (1957–2011) was a Saudi-born terrorist and the co-founder of al-Qaeda.

Osama or Usama may also refer to:

Film

 * Osama (film), a 2003 film made in Afghanistan
 * Being Osama, a 2004 documentary film of six men named Osama
 * Main Osama, an upcoming Indian film

Other uses

 * Osama (name)
 * "Osama" (song), 2021 single by Zakes Bantwini
 * Dinner With Osama, collection of short stories by Marilyn Krysl
 * Osama (novel), a World Fantasy Award-winning novel by Lavie Tidhar

title: Osama (disambiguation)


text:
London Internet Exchange

The London Internet Exchange ("LINX") is a mutually governed Internet exchange point (IXP) that provides peering services and public policy representation to network operators (over 950 different ASNs). It was founded in 1994 in London. LINX operates IXPs in London, Manchester, Scotland and Wales in the United Kingdom and Northern Virginia in the United States.

LINX was founded in 1994 by a group of ISPs and educational networks and is a founding member of Euro-IX, a Europe-wide alliance of Internet Exchanges. It is one of the largest neutral IXPs in Europe in terms of average throughput.

LINX is a non-profit organization (a company limited by a guarantee). Networks join LINX as members and sign a memorandum of understanding. Members collectively 'own' the company, and all members have a single vote at AGMs and EGMs in matters relating to finances, constitution, and what activities LINX may carry out. Members also periodically elect the LINX non-executive board of directors. Members meet at regular LINX meetings to discuss technical, corporate governance, and regulatory matters. LINX has a mandate to not actively compete with its members.

History
In November 1994, using a donated piece of equipment no bigger than a video recorder and without any written contracts, five UK-based Internet service providers (ISPs) linked their networks to exchange data and avoid paying high transatlantic bandwidth costs.

LINX effectively began when two ISPs (PIPEX and UK Net) linked their networks via a 64-kilobit serial link to save the cost and time delay involved in routing data across the Atlantic to US Internet exchanges.

When Demon Internet, UKERNA – the UK academic network – and other ISPs showed interest in establishing similar serial links, Keith Mitchell, then chief technical officer of PIPEX, initiated a meeting with BT to discuss the creation of a London-based Internet exchange.

PIPEX provided the LINX founders with a Cisco Catalyst 1200 switch with eight 10-megabit ports. Rack space was leased at a then virtually empty data center operated by Telehouse International Corporation of Europe Ltd at Coriander Avenue in London's Dockland.

Switching the first data through the Telehouse hub was accomplished by primarily technical specialists who were unconcerned about the formalities of legal contracts. However, while PIPEX continued to provide administrative and technical oversight, the need for a formal constitution was eventually recognized.

The solution was to form a company limited by guarantee. Lawyers produced a draft memorandum and constitution which was extensively modified by members. The company was formed in 1995, and a board of five non-executive directors was elected, with Keith Mitchell as the initial chairman.

Not for profit organization
From the beginning, it was agreed that LINX would be a non-profit organization run for the benefit of members and governed collectively through regular member meetings, a practice which continues to this day.

While PIPEX continued to provide administrative oversight – charged at cost to LINX – member meetings were held every two months (now every three months) to decide strategic direction. Eventually, it was accepted that the purely co-operative system of operation at LINX was becoming overly demanding. Then, in late 1996, Keith Mitchell accepted the role of full-time chairman, working with a personal assistant from offices in Peterborough.

In the summer of 1996, LINX became the first Internet exchange in the world to deploy a 100-megabit switch – a Cisco Catalyst 5000. In January 1999, it pioneered the implementation of a Metropolitan Area Network (MAN) running over gigabit Ethernet connections.

As the Internet grew in popularity, legislators and law enforcement agencies began to call for its regulation. LINX increasingly found itself taking on non-core activities, such as providing expert advice on behalf of its members (and, therefore, the whole industry) to a wide range of official agencies.

In 1999, LINX appointed its first full-time regulation officer in Roland Perry to advise organizations such as the Home Office Internet Task Force, the National Hi-Tech Crime Unit, the Department of Trade and Industry and relevant departments of the EU Commission. In 2003, Roland was succeeded by Malcolm Hutty when Roland left to form his own advisory group.

LINX also actively and financially supports the Internet Watch Foundation which, since 1996, has worked to eradicate child abuse images from the UK Internet. Initial funding from LINX was instrumental in enabling the IWF to launch and the decision to create the IWF and define its charter was taken at a LINX member meeting in Heathrow.

LINX in the twenty-first century
2000 – A training manager was appointed to introduce an accredited training program for Internet engineers and technicians.

2001 – LINX amended its corporate structure to make the post of chairman non-executive and appointed its first chief executive officer, John Souter, previously UK managing director of German-owned Varieties Communications.

2002 – LINX was the first exchange to introduce 10G Ethernet operation, using equipment from Foundry Networks – in fact, the second of their worldwide customers to deploy their technology.

2003 – This year saw the launch of the 'LINX from Anywhere' service, a facility that permits smaller ISPs to piggyback on the networks of existing members to obtain a secure, virtual presence on the LINX exchange without incurring the manpower and Rackspace costs of having their own installation in London.

2004 – LINX considerably expanded its footprint, with four new points of presence (Pop's) – all in the Docklands area of London.

2005 – LINX members voted to make public affairs one of the company's "core functions", placing it on an equal footing with peering and interconnection.

2006 – LINX membership reached 200.

2008 – LINX expanded again opening three new PoPs, this time adding considerably to the geographical diversity by doing so in the City of London, North Acton and Slough. It also heralded new relationships with data centre operators, with the addition of Interxion and Equinix (to the pre-existing ones of Telehouse and Telecity).

2011 – The LINX primary LAN was redesigned to a VPLS-based infrastructure with a new vendor, Juniper Networks.

2012 – The Connection reseller Programme launched. Also this year LINX became the first Internet exchange in the world to install a Juniper PTX5000 in a live network and the exchange opened its first site outside London in Manchester (IX Manchester).

2013 – Two additional local exchanges, IX Scotland in Edinburgh and LINX NOVA in North Virginia, USA, were launched. They were the exchange's first sites outside England.

2014 – Another local exchange, IX Cardiff in Wales, was launched.

2016 – Sees the introduction of new hardware and a restructuring of LON2 with hardware from EdgeCore Networks

2017 – Following the passage of the Investigatory Powers Act, a new constitution was proposed which would ban directors from reporting the installation of surveillance equipment to members. This caused dissension among members, many of which are non-UK based ISPs operating from countries where mass surveillance is, like in the UK, not legal. This interpretation of the constitutional change was disputed on the official LINX website. Voting on the constitutional revision took place during a hastily called Extraordinary General Meeting (EGM) on 21 February; although a majority supported the change the number attending was too small for the motion to be carried.

2021 – LINX reported a record level of UK Traffic at 6.05 Tbit/s.

2022 – LINX joined the long list of organizations supporting Ukraine by disconnecting Russian services from its networks.

Technology
In London, LINX operates two physically separate networks, or switching platforms, on different architectures using equipment from different manufacturers (Extreme Networks and Juniper Networks ). These networks are deployed over ten locations, each connected by multiple 100 Gigabit Ethernet or 10 Gigabit Ethernet connections over fibre networks.

The LINX Engineering team restructured its secondary LAN in London, LON2, in 2018 using software and hardware from two different suppliers.

LINX data center facilities are found at sixteen locations throughout London, including:

 * Telehouse North
 * Telehouse North 2
 * Telehouse East
 * Telehouse West
 * Equinix Harbour Exchange (ex. TeleCity)
 * Digital Realty, Bonnington House, Millharbour (ex. TeleCity)
 * Digital Realty, Sovereign House, Marsh Wall (ex. TeleCity)
 * Equinix Powergate, Acton
 * Equinix, Slough
 * Interxion London City
 * Virtus, Hayes (Transmission PoP)
 * Colt Data Centre, London West (Transmission PoP)

Connecting is also possible from remote locations via the 'LINX from Anywhere' scheme via a range of layer 2 service/MPLS carriers.

Redundancy of the network is managed using rapid-failover protection mechanisms such a VPLS service over an MPLS core (MPLS/VPLS) from Juniper and Extreme's Ethernet Automatic Protection System (EAPS). These restore connectivity within tenths of a second in the event of the loss of a network segment.

In addition to the main peering infrastructure, LINX provides managed private interconnections (via Single Mode Fiber) between LINX members, and works with a number of fibre carriers to provide rapid connection between LINX members for private circuits. These PI circuits may be used for any purpose, but are mainly intended for Private Peering arrangements between members. Private Peering is sometimes more appropriate for managing large flows of traffic between ISPs and/or Content Providers.

Telehouse hosts the vast majority of internet peering traffic from LINX.

Public affairs
One of LINX's core functions is to represent its members in matters of public policy. LINX's Public Affairs department works to obtain advance warning of public policy developments that could affect LINX members, to inform members about important policy developments at a time when it is still possible to influence them, and to educate, inform and influence regulators and legislators.

At the UK level, LINX liaises directly with policymakers on matters such as content regulation, telecoms regulation, privacy and data protection, e-mail spam, online fraud/phishing, law enforcement, counter-terrorism, and any other topics that affect LINX members.

At the European level, LINX is an active member of Euro ISPA and works with Euro ISPA's other national associations to influence European policy.

LINX also works actively with partner organizations such as the Internet Watch Foundation (IWF) and the Internet Society (ISOC). LINX was instrumental in the creation of the Internet Watch Foundation, the UK hotline for reporting and removing child sexual abuse material from the Internet, and continues to advise the IWF as a member of its Funding Council.

As a mutual, membership-based organization, all of LINX's public affairs activity is informed and guided by extensive and ongoing consultation with LINX members.

LINX Manchester
Launched in April 2012 IX Manchester, now known as LINX Manchester was initially a single-site platform based on a stand-alone Brocade BigIron RX-16 switch, repurposed from the primary LAN in London. A new design extends the network to two new sites – M247's Ice Colo & Joule House and brings in completely new hardware from Extreme Networks.

The new network will be configured as an EAPS protected ring, topology currently used for the secondary LINX LAN in London. All sites will use a Summit X670v switch, capable of connecting 48x10 Gb member ports. Telecity Williams will also have a smaller Summit X460 switch for terminating slower ports.

The links between sites will be provisioned on a dark fibre provided by NTL and lit by LINX with the use of SFP+ DWDM transceivers and passive DWDM MUX units. Initial ISL capacity will be configured at 20 Gbit/s but easily upgradeable to 80 Gbit/s if required.

LINX Scotland
Located in Pulsant's South Gyle data center in Edinburgh (formerly Scolocate), IX Scotland, now known as LINX Scotland, was officially launched in November 2013. The site will use the latest hardware from Extreme Networks enabling all the advanced features expected from a modern exchange.

LINX Wales
Located in BT's Stadium House data center in Cardiff. IX Cardiff, then LINX Cardiff, now known as LINX Wales was officially launched on 15 October 2014 in an effort to decentralize UK internet traffic.

As of July 2018, LINX Wales has a typical peak of 0.9976 Gbit/s of network traffic with a maximum peak of 1.03 Gbit/s as of 1 December 2017.

LINX NOVA
Following discussions with the US network community, and its own members, LINX decided to launch an open peering exchange in North America in late 2013. Formally to be known as LINX NoVA, the exchange will be closely aligned with, and endorsed by, the newly formed Open-IX, using systems and processes that have proved successful in Europe and the wider world for nearly 20 years.

Based in the North Virginia/Washington DC area, LINX NoVA initially spanned three data centers – Evo Switch in Manassas, Digital Realty in Ashburn and Coresite in Reston – and will be connected using dark fiber lit by LINX. An agreement for a fourth Colo site, also in Ashburn, is expected shortly.

The LINX NOVA exchange will use MX960 router equipment from Juniper Networks capable of delivering 100G member ports from launch with the three PoPs all connected by diverse dark fiber lit by LINX.

LINX NoVA will be developed in the same way as the LINX primary LAN in London (VPLS, separated core and edge, etc.) but as a stand-alone site not requiring a connection to the LANs operated in the London, UK.

Other activities
LINX also carries on a number of non-core activities (NCAPs) from time to time, for example the LINX Accredited Internet Technician (LAIT) training Program.

Other services provided include a time service using atomic clocks, as well as hosting for other "Good of the Internet" services including various Internet statistics projects, numerous secondary name servers for various ccTLD domains, and instances of the F, K and I root nameservers.

Latest news for 2018/19 sees LINX launch an IXP partner relationship with Japan IX allowing customers to connect to LINX in London and also LINX and Saudi Telecom Company (STC), on 7 December 2018 marked the start of JED-IX driven by LINX, an Internet exchange in Jeddah (JED-IX), Kingdom of Saudi Arabia (KSA).

title: London Internet Exchange


text:
Half-line

Half-line may refer to:
 * Half-line (geometry), half of a line
 * Alliterative verse, half of a line of poetry

title: Half-line


text:
Painter's algorithm

The painter's algorithm (also depth-sort algorithm and priority fill) is an algorithm for visible surface determination in 3D computer graphics that works on a polygon-by-polygon basis rather than a pixel-by-pixel, row by row, or area by area basis of other Hidden-Surface Removal algorithms. The painter's algorithm creates images by sorting the polygons within the image by their depth and placing each polygon in order from the farthest to the closest object.

The painter's algorithm was initially proposed as a basic method to address the Hidden-surface determination problem by Martin Newell, Richard Newell, and Tom Sancha in 1972, while all three were working at CADCentre. The name "painter's algorithm" refers to the technique employed by many painters where they begin by painting distant parts of a scene before parts that are nearer, thereby covering some areas of distant parts. Similarly, the painter's algorithm sorts all the polygons in a scene by their depth and then paints them in this order, farthest to closest. It will paint over the parts that are normally not visible — thus solving the visibility problem — at the cost of having painted invisible areas of distant objects. The ordering used by the algorithm is called a ' depth order'  and does not have to respect the numerical distances to the parts of the scene: the essential property of this ordering is, rather, that if one object obscures part of another, then the first object is painted after the object that it obscures. Thus, a valid ordering can be described as a topological ordering of a directed acyclic graph representing occlusions between objects.

Algorithm
Conceptually Painter's Algorithm works as follows:

 * 1) Sort each polygon by depth
 * 2) Place each polygon from the farthest polygon to the closest polygon

Pseudocode
sort polygons by depth for each polygon p: for each pixel that p covers: paint p.color on pixel

Time complexity
The painter's algorithm's time-complexity is heavily dependent on the sorting algorithm used to order the polygons. Assuming the use of the most optimal sorting algorithm, painter's algorithm has a worst-case complexity of O(n log n + m*n), where n is the number of polygons and m is the number of pixels to be filled.

Space complexity
The painter's algorithm's worst-case space-complexity is O(n+m), where n is the number of polygons and m is the number of pixels to be filled.

Advantages
There are two primary technical requisites that favor the use of the painter's algorithm.

Basic graphical structure
The painter's algorithm is not as complex in structure as its other depth sorting algorithm counterparts. Components such as the depth-based rendering order, as employed by the painter's algorithm, are one of the simplest ways to designate the order of graphical production. This simplicity makes it useful in basic computer graphics output scenarios where an unsophisticated render will need to be made with little struggle.

Memory efficiency
In the early 70s, when the painter's algorithm was developed, physical memory was relatively small. This required programs to manage memory as efficiently as possible to conduct large tasks without crashing. The painter's algorithm prioritizes the efficient use of memory but at the expense of higher processing power since all parts of all images must be rendered.

Limitations
The algorithm can fail in some cases, including cyclic overlap or piercing polygons.

Cyclical overlapping
In the case of cyclic overlap, as shown in the figure to the right, Polygons A, B, and C overlap each other in such a way that it is impossible to determine which polygon is above the others. In this case, the offending polygons must be cut to allow sorting.

Piercing polygons
The case of piercing polygons arises when one polygon intersects another. Similar to cyclic overlap, this problem may be resolved by cutting the offending polygons.

Efficiency
In basic implementations, the painter's algorithm can be inefficient. It forces the system to render each point on every polygon in the visible set, even if that polygon is occluded in the finished scene. This means that, for detailed scenes, the painter's algorithm can overly tax the computer hardware.

Extended painter's algorithm
Newell's algorithm, proposed as the extended algorithm to painter's algorithm, provides a method for cutting cyclical and piercing polygons.

Reverse painter's algorithm
Another variant of painter's algorithm includes reverse painter's algorithm. Reverse painter's algorithm paints objects nearest to the viewer first — with the rule that paint must never be applied to parts of the image that are already painted (unless they are partially transparent). In a computer graphic system, this can be very efficient since it is not necessary to calculate the colors (using lighting, texturing, and such) for parts of a distant scene that are hidden by nearby objects. However, the reverse algorithm suffers from many of the same problems as the standard version.

Other computer graphics algorithms
The flaws of painter's algorithm led to the development of Z-buffer techniques, which can be viewed as a development of the painter's algorithm by resolving depth conflicts on a pixel-by-pixel basis, reducing the need for a depth-based rendering order. Even in such systems, a variant of the painter's algorithm is sometimes employed. As Z-buffer implementations generally rely on fixed-precision depth-buffer registers implemented in hardware, there is scope for visibility problems due to rounding error. These are overlaps or gaps at joints between polygons. To avoid this, some graphics engines implement "over-rendering", drawing the affected edges of both polygons in the order given by the painter's algorithm. This means that some pixels are actually drawn twice (as in the full painter's algorithm), but this happens on only small parts of the image and has a negligible performance effect.

title: Painter's algorithm


text:
Scanline rendering

Scanline rendering (also scan line rendering and scan-line rendering) is an algorithm for visible surface determination, in 3D computer graphics, that works on a row-by-row basis rather than a polygon-by-polygon or pixel-by-pixel basis. All of the polygons to be rendered are first sorted by the top y coordinate at which they first appear, then each row or scan line of the image is computed using the intersection of a scanline with the polygons on the front of the sorted list, while the sorted list is updated to discard no-longer-visible polygons as the active scan line is advanced down the picture.

The main advantage of this method is that sorting vertices along the normal of the scanning plane reduces the number of comparisons between edges. Another advantage is that it is not necessary to translate the coordinates of all vertices from the main memory into the working memory—only vertices defining edges that intersect the current scan line need to be in active memory, and each vertex is read in only once. The main memory is often very slow compared to the link between the central processing unit and cache memory, and thus avoiding re-accessing vertices in main memory can provide a substantial speedup.

This kind of algorithm can be easily integrated with many other graphics techniques, such as the Phong reflection model or the Z-buffer algorithm.

Algorithm
The usual method starts with edges of projected polygons inserted into buckets, one per scanline; the rasterizer maintains an active edge table (AET). Entries maintain sort links, X coordinates, gradients, and references to the polygons they bound. To rasterize the next scanline, the edges no longer relevant are removed; new edges from the current scanlines' Y-bucket are added, inserted sorted by X coordinate. The active edge table entries have X and other parameter information incremented. Active edge table entries are maintained in an X-sorted list, effecting a change when 2 edges cross. After updating edges, the active edge table is traversed in X order to emit only the visible spans, maintaining a Z-sorted active Span table, inserting and deleting the surfaces when edges are crossed.

Variants
A hybrid between this and Z-buffering does away with the active edge table sorting, and instead rasterizes one scanline at a time into a Z-buffer, maintaining active polygon spans from one scanline to the next.

In another variant, an ID buffer is rasterized in an intermediate step, allowing deferred shading of the resulting visible pixels.

History
The first publication of the scanline rendering technique was probably by Wylie, Romney, Evans, and Erdahl in 1967.

Other early developments of the scanline rendering method were by Bouknight in 1969, and Newell, Newell, and Sancha in 1972. Much of the early work on these methods was done in Ivan Sutherland's graphics group at the University of Utah, and at the Evans & Sutherland company in Salt Lake City.

Use in realtime rendering
The early Evans & Sutherland ESIG line of image-generators (IGs) employed the technique in hardware 'on the fly', to generate images one raster-line at a time without a framebuffer, saving the need for then costly memory. Later variants used a hybrid approach.

The Nintendo DS is the latest hardware to render 3D scenes in this manner, with the option of caching the rasterized images into VRAM.

The sprite hardware prevalent in 1980s games machines can be considered a simple 2D form of scanline rendering.

The technique was used in the first Quake engine for software rendering of environments (but moving objects were Z-buffered over the top). Static scenery used BSP-derived sorting for priority. It proved better than Z-buffer/painter's type algorithms at handling scenes of high depth complexity with costly pixel operations (i.e. perspective-correct texture mapping without hardware assist). This use preceded the widespread adoption of Z-buffer-based GPUs now common in PCs.

Sony experimented with software scanline renderers on a second Cell processor during the development of the PlayStation 3, before settling on a conventional CPU/GPU arrangement.

Similar techniques
A similar principle is employed in tiled rendering (most famously the PowerVR 3D chip); that is, primitives are sorted into screen space, then rendered in fast on-chip memory, one tile at a time. The Dreamcast provided a mode for rasterizing one row of tiles at a time for direct raster scanout, saving the need for a complete framebuffer, somewhat in the spirit of hardware scanline rendering.

Some software rasterizers use 'span buffering' (or 'coverage buffering'), in which a list of sorted, clipped spans are stored in scanline buckets. Primitives would be successively added to this datastructure, before rasterizing only the visible pixels in a final stage.

Comparison with Z-buffer algorithm
The main advantage of scanline rendering over Z-buffering is that the number of times visible pixels are processed is kept to the absolute minimum which is always one time if no transparency effects are used—a benefit for the case of high resolution or expensive shading computations.

In modern Z-buffer systems, similar benefits can be gained through rough front-to-back sorting (approaching the 'reverse painters algorithm'), early Z-reject (in conjunction with hierarchical Z), and less common deferred rendering techniques possible on programmable GPUs.

Scanline techniques working on the raster have the drawback that overload is not handled gracefully.

The technique is not considered to scale well as the number of primitives increases. This is because of the size of the intermediate datastructures required during rendering—which can exceed the size of a Z-buffer for a complex scene.

Consequently, in contemporary interactive graphics applications, the Z-buffer has become ubiquitous. The Z-buffer allows larger volumes of primitives to be traversed linearly, in parallel, in a manner friendly to modern hardware. Transformed coordinates, attribute gradients, etc., need never leave the graphics chip; only the visible pixels and depth values are stored.

title: Scanline rendering


text:
Lucius Cornelius Cinna

Lucius Cornelius Cinna (before 130 BC – early 84 BC) was a four-time consul of the Roman republic. Opposing Sulla's march on Rome in 88 BC, he was elected to the consulship of 87 BC, during which he engaged in an armed conflict – the Bellum Octavianum – with his co-consul, Gnaeus Octavius. Emerging victorious, Cinna initiated with his ally, Gaius Marius, murders of their enemies. In the aftermath, he dominated the republic for the next three years, serving continuously as consul.

While his domination was not complete – he largely contented himself with securing the consulship for himself and allies – his political rule set a "crucial precedent" for later strongmen in the republic. Through 85 and 84 BC, he prepared for civil war with Sulla, who was soon to return from the First Mithridatic War. When trying to ferry his men across the Adriatic at Ancona early in 84 BC, they mutinied and Cinna was killed.

Early life and family
Cinna was born some time before 130 BC into a patrician family that was not recently distinguished. Theodor Mommsen considered the Cornelii Cinnae to be plebeians, but most modern authors view them as patricians. His father may have been consul in 127 BC.

He married a woman named Annia, with whom he had three children: two daughters and one homonymous son. His eldest daughter married Gaius Julius Caesar (the dictator and consul of 59 BC), probably during Cinna's second consulship in 86 BC; his younger daughter married Gnaeus Domitius Ahenobarbus (who died in 81 BC). Cinna's homonymous son escaped Sulla's retribution by fleeing to Quintus Sertorius – one of Cinna's legates – after Sulla's civil war, before being given amnesty in the lex Plautia and returning to Rome. Afterwards, he became praetor in 44 BC.

Before 90 BC, Cinna must have served as praetor. It is known that he also served during the Social War; T.R.S. Broughton believed Cinna was one of the legates who led the successful Roman offensive against the Marsi during the war in 89 BC. Little is known of Cinna's life or career before his election as consul.

Electoral context
In 88 BC, there were two major questions in Roman politics. The first was the Italian question. During the Social War, the Roman republic had granted basically all the Italian allies Roman citizenship. Publius Sulpicius Rufus, a plebeian tribune, sought to curry their favour by enrolling them equally into the thirty-five tribes (voting units); in this, he was opposed by politicians who wished to pack the numerous Italians into a limited number of existing – or eight newly-created – tribes. The other question was one of command. Mithridates VI Eupator, king of Pontus, had recently invaded the province of Asia. The commander of the Roman response would have a great opportunity to become wealthy and influential from the plunder and glory of the war.

Sulpicius attempted to link the two matters by securing transfer of then-consul Lucius Cornelius Sulla's command against Mithridates to the aged general Gaius Marius in exchange for Marius' support for Italian enrolment. But after he passed the legislation transferring Sulla's command to Marius, Sulla suborned his army into marching on Rome to overturn Sulpicius' actions. After doing so, he invalidated Sulpicius' laws and banished twelve men, Sulpicus and Marius included. Sulla justified his actions by claiming that as consul he had a duty to free the state from dangerous demagogues. He also may have passed legislation in 88 BC to change the Roman constitution by reducing the powers and legislative initiative of the plebeian tribunes; however, some scholars have suggested these reforms are retrojections of Sulla's later actions as dictator. Sulla's reasons and putative reforms notwithstanding, his march on Rome was the subject of deep and broad revulsion at the elections.

One of Cinna's goals during his consulship was holding Sulla legally responsible for his march on Rome; he promised that if elected he would have Sulla prosecuted at the expiration of his term. Sulla did not support Cinna and instead put forward Publius Servilius Vatia Isauricus, an ally who had recently celebrated a triumph. The comitia, still indignant over Sulla's march and treatment of Sulpicius and Marius, rejected Sulla's candidate and elected Cinna with Gnaeus Octavius as his colleague instead. The two consules designati may have, at the time, been friends. Before the results were officially announced, Sulla realised they would be personally unfavourable; seeking not to interfere in the elections directly, he instead tried for a religious solution to protect his actions. Before he declared the winners, he first induced Cinna and Octavius to swear not to overturn Sulla's arrangements publicly. The consuls-designate did so because Sulla as presiding consul had the power to refuse announcement of the winners and invalidate the results. While Octavius seemed to take the oath seriously, Cinna did not.

Expulsion
Cinna's first act as consul was to have a plebeian tribune prosecute Sulla, possibly for his killing of Sulpicius, who when killed had been a serving and sacrosanct plebeian tribune. This was meant to stop Sulla from leaving Italy at the head of an army, strip him of his imperium, and deprive him of his Mithridatic command. It was, however, unenforceable: Sulla ignored the tribunician summons and departed with his army for Greece.

According to Appian, Cinna accepted bribes to support the equal enrolment of the new Italian citizens into the thirty-five tribes. Bribed or not, Cinna declared publicly his support for such enrolment, which brought him immediately into conflict with his co-consul Octavius. Both Cinna and Octavius' partisans quickly armed themselves. Attempts by Cinna to promulgate legislation to distribute the new citizens into the tribes were met by tribunician vetoes backed by Octavius, leading to a riot against the tribunes. A senatus consultum ultimum then may have been moved against the rioters; Octavius quickly executed it, taking his hastily armed supporters down the via Sacra and killing the rioters.

Cinna was unharmed and left the city with some of his major supporters, including Quintus Sertorius, Gaius Milonius, Marcus Marius Gratidianus, and six of the ten tribunes of the plebs. After his departure for Italian towns to raise men and money, the Senate illegally and unconstitutionally stripped Cinna of his consulship and declared him a public enemy (hostis), electing Lucius Cornelius Merula (also the flamen Dialis) in his place. Due to Merula's priestly duties and taboos, Octavius served as de facto sole consul.

March on Rome
Cinna reached Nola, an Italian town still holding against Roman siege, where he appeared before the army stationed there in consular regalia. He addressed them as a mistreated consul who had been unjustly deprived of a gift of the people by the senate, who thereby made a mockery of popular sovereignty. The army raised him up and declared their support. Cinna then administered an oath of loyalty for the officers and men. Following this, he travelled around Italian towns saying that he needed their support and that he had been attacked for his pro-Italian advocacy. Octavius and Merula acted to fortify the city.

Gaius Marius, one of the Sullan exiles, returned to Italy and pledged his loyalty to Cinna. Cinna acknowledged Marius as proconsul but Marius scrupulously refused the title before drumming up support among the Italians and returning to Cinna's camp with some 6,000 men. The Senate and Octavius had ordered Pompey Strabo – a commander in the northern theatre of the Social war – to return to Rome and defend the city with his army. Encamped outside the city, he was not prepared to commit for either side before treating with both of them. Cinna's forces then arrived and besieged the city. He led the main force opposite the Colline Gate, with two detachments under Sertorius and Marius on the north and south of the city, respectively. Strabo eventually sided with Octavius; the Senate, seeking support, also ordered Quintus Caecilius Metellus Pius, who was in the field against the Samnites, to make an honourable peace immediately and return to defend the city.

When Metellus negotiated with the Samnites, they demanded citizenship for themselves and all those who had fled to them, release of all war prisoners, and non-reciprocal return of all plunder. Metellus and the Senate refused; Cinna and Marius seized the opportunity and offered the concessions, gaining the Samnites as allies. After one of the military tribunes in Rome defected and opened the gates to the Janiculum, Cinna and Marius' forces moved to storm the city; they were stopped by six cohorts from Strabo's army. Strabo, seeking to leverage his military forces into a second consulship, initiated secret negotiations with Cinna but soon died of plague. Extending the siege, Cinna's forces fanned out across the countryside and cut Rome's food supply. The Senate then sent envoys to Cinna to negotiate a truce. Initially put off by Cinna's demand that they address him as consul, the Senate acquiesced on this point after Merula abdicated his consulship.

Extra-legal killings
The envoys secured a promise from Cinna that he would not willingly kill anyone but his ally Marius silently stood behind his chair. Cinna then entered the city and promulgated a law recalling Marius and the Sullan exiles. A squadron of his cavalry, led by Gaius Marcius Censorinus killed the consul Octavius, who had refused to flee. Censorinus then presented the consul's head to Cinna; this was the first time a consul's head was displayed as a prize to another Roman.

Cinna and Marius then moved to purge some of their political opponents, Gaius and Lucius Julius Caesar were killed without trial, along with Publius Licinius Crassus and Marcus Antonius. Merula – the recently-abdicated suffect consul – and Marius' old rival, Quintus Lutatius Catulus, were brought up on trial before the people, possibly for usurpation of the consulship and perduellio, respectively; they committed suicide before the verdict.

The killings were not broad across the political class and likely reflected Marius' grudges; nor were the victims then linked to Sulla. There is no evidence that the purge targeted the victim's families. While later sources – including Dio, Velleius, Livy, Diodorus, and Plutarch – claim that Cinna and Marius butchered and ravaged their way through the city for five days, these claims are likely Sullan propaganda filtered through Sulla's memoirs. Cicero, more contemporaneous and speaking to men who lived during the Cinnan regime, indicates that Cinna and Marius targeted only political enemies and did not threaten all of Rome's inhabitants or otherwise sack the city.

Dominatio and death
When he returned to the city he dominated public affairs and took measures against Sulla. Sulla was declared hostis and stripped of his priesthood. His property was confiscated, his house demolished, and his legislation repealed. His wife and children fled the city for the protection of Sulla's army in Greece. At elections in late 87 BC, Cinna had himself and Marius elected as consuls – contrary to some ancient sources, an electoral comitia was likely held, just the two were the only candidates – for 86 BC. Marius, though, died just thirteen days after assuming his seventh consulship, possibly of pneumonia. In Marius' place, Cinna elevated Lucius Valerius Flaccus. During 86 BC, a census was conducted by Lucius Marcius Philippus and Marcus Perperna. Although Cinna supported the registration of the Italians as citizens, the number counted in that year – just 463,000 – indicates most of the newly enfranchised Italians were yet unregistered. Flaccus, Cinna's co-consul, also brought and passed legislation reducing all outstanding debts by three quarters.

At the close of the year, Flaccus departed for Greece, ostensibly to assume command over a leaderless army – Sulla's command had officially been vacated because he was declared an outlaw – but was soon assassinated by one of his legates, Gaius Flavius Fimbria, who then assumed command. Sulla eventually drove Mithridates from Asia and secured a peace, the Treaty of Dardanos, with generous terms for Pontus by 85 BC. He also suborned Fimbria's army in the east, causing Fimbria to commit suicide.

For the year 85 BC, Cinna chose Gnaeus Papirius Carbo as his consular colleague. Sulla's peace with Pontus, widely regarded as generous so to give Sulla a free hand against his enemies in Italy, and other actions in Asia indicated that he would return in arms. Cinna and Carbo responded by immediately beginning military preparations and a propaganda campaign. They stockpiled money and provisions from all of Italy while levying men and giving warnings that Sulla would, if victorious, overturn Italian enfranchisement. The warnings, given Sulla's violent action against Sulpicius in 88 BC, seemed legitimate.

Late in 85 BC, Sulla sent a letter to the Senate in Rome reciting his achievements in the Mithridatic war and complaining against the regime in Rome. He then promised that he would avenge himself upon those enemies in the name of his murdered friends, his exiled family and Rome. Against Cinna's claims, he also asserted he had no intention to overturn Italian enfranchisement. The Senate responded to the letter by dispatching an embassy to Sulla to try to reconcile him with his political opponents. The Senate also instructed Cinna and Carbo stop military preparations; they agreed to do so but ignored the Senate and continued recruiting. Cinna's strategy seems to have been to force their way east into Greece and fight Sulla there.

Cinna and Carbo continued in office as consuls for 84 BC; early in that year, Cinna started to embark his men across the Adriatic. Modern sources seem to differ about his final destination. T R S Broughton says Epirus. Others such as Ernst Badian claim Cinna was going for Liburnia, in the northern Adriatic, meaning that Cinna was not intending to challenge Sulla in Greece. When transiting the Adriatic, the first set of ships transited safely. But the second set encountered a storm. Some of the ships sank and many men deserted, saying they were unwilling to fight fellow citizens. The remaining men waiting to depart at Ancona then refused to embark. Appian reports that when Cinna called an assembly, he attempted to impose discipline, which culminated in his men mutinying and killing him. Plutarch delivers a different story centring around soldiers fearing that Cinna had assassinated the then-young Pompey; this story, however, is not credible. After his death, his co-consul Carbo was recalled to Rome hold elections for his replacement, but after two attempts to hold elections received bad omens, the elections were indefinitely postponed and Carbo held office without colleague for the rest of the year.

The Senate's envoys brought news of Cinna's death to Sulla. Sulla then rejected the Senate's offers, refused to disband his army, and demanded that the Senate restore his legal status, property, and offices. Sulla's rejection of terms was met poorly. Eventually, Sulla invaded Italy in 83 BC, triggering a civil war, in which he was eventually victorious, the next year.

Assessment
The dominatio Cinnae is not well documented. According to Robin Seager, in the Cambridge Ancient History, "assessment [of it] is rendered painfully difficult by the way in which our scrappy sources are pervaded by the insidious influence of Sulla's own version of events, diffused without competition after his victory" in the civil war. Cinna and his faction, however, were the first to transform force into political domination. Their methods did not accord with republican principles, setting a precedent later followed by Sulla, Caesar, and Octavian.

The short length and partial nature of his dominatio – Cinna seems only to have wanted to be consul every year – have made it difficult to develop a clear assessment of his politics or character. Previous scholarship and ancient narratives, which painted Cinna as an appendage to Marius, are now largely rejected. He was competent at using popularis-style argumentation but had no diagnoses for the republic's more structural flaws.

His support for Italian enfranchisement and distribution among the thirty-five tribes was opportunistic and he only haltingly followed through on his Italian promises once entrenched in power. After the initial wave of killings with Marius in 86 BC, there are no signs of extra-legal persecutions. The nature of politics during his dominatio was relatively traditional though the consul and the Senate acted largely independently and were also largely willing to ignore the other. While there must have been resentment over Cinna's monopolisation of the consulship, the political class in Rome during his consulships was largely not personally threatened and left alone.

title: Lucius Cornelius Cinna