Tuesday, July 29, 2008

Planet (software)

In computing, Planet is a feed aggregator application designed to collect posts from the weblogs of members of an Internet community and display them on a single page. Planet runs on a web server. It creates pages with entries from the original feeds in chronological order, most recent entries first.

Planet is written in Python and maintained by Jeff Waugh and Scott James Remnant. Released under the Python License, Planet is free software.

Monday, July 21, 2008

Optimization

Optimization or optimality is a term that may refer to:

* Optimization (mathematics), trying to find maxima and minima of a function
* Optimization (computer science), improving a system to reduce runtime, bandwidth, memory requirements, or other property of a system; in particular
o Compiler optimization, improving the performance or efficiency of compiled code
* Search engine optimization, in internet marketing, methodologies aimed at improving the ranking of a website in search engine listings
* Process optimization, in business and engineering, methodologies for improving the efficiency of a production process
* Product optimization, in business and marketing, methodologies for improving the quality and desirability of the current product or a product concept
* Optimality theory in linguistics.
* Optimal classification, a process which arranges classification element attributes in an order which minimizes the number of queries necessary to identify any particular element.

Monday, July 14, 2008

Network model

The network model is a database model conceived as a flexible way of representing objects and their relationships. Its original inventor was Charles Bachman, and it was developed into a standard specification published in 1969 by the CODASYL Consortium. Where the hierarchical model structures data as a tree of records, with each record having one parent record and many children, the network model allows each record to have multiple parent and child records, forming a lattice structure.

Tuesday, July 08, 2008

Media ecology

In 1977, Marshall McLuhan said that media ecology "means arranging various media to help each other so they won't cancel each other out, to buttress one medium with another. You might say, for example, that radio is a bigger help to literacy than television, but television might be a very wonderful aid to teaching languages. And so you can do some things on some media that you cannot do on others. And, therefore, if you watch the whole field, you can prevent this waste that comes by one canceling the other out."

Inspired by McLuhan, Neil Postman founded the Program in Media Ecology at New York University in 1971. He described it as

Media ecology looks into the matter of how media of communication affect human perception, understanding, feeling, and value; and how our interaction with media facilitates or impedes our chances of survival. The word ecology implies the study of environments: their structure, content, and impact on people.

Wednesday, July 02, 2008

Social networking spam

Social networking spam is spam directed at users of internet social networking services such as MySpace. Users of social networking services can send notes, that may include embedded links to other social network locations or even outside sites, to one another.

This is where the social network spammer comes in. Utilizing the social network's search tools, he/she can target a certain demographic segment of the users, and send notes to them from an account disguised as that of a real person. Such notes typically include embedded links to pornographic or other product sites designed to sell something. As of 2006, spamming software such as FriendBot is available to automate this process.

Unfortunately for victims, until recently no filters were available for MySpace notes. The best a MySpace user could do was block notes from the sender's address. MySpace now includes an option for users to “report spam/abuse” addresses. Spammers, however, frequently change their address from one throw-away account to another.

Monday, June 23, 2008

E-mail spoofing

E-mail spoofing is a term used to describe fraudulent email activity in which the sender address and other parts of the email header are altered to appear as though the email originated from a different source. E-mail spoofing is a technique commonly used for spam e-mail and phishing to hide the origin of an e-mail message. By changing certain properties of the e-mail, such as the From, Return-Path and Reply-To fields (which can be found in the message header), ill-intentioned users can make the e-mail appear to be from someone other than the actual sender. It is often associated with website spoofing which mimics an actual, well-known website but are run by another party either with fraudulent intentions or as a means of criticism of the organization's activities. The result is that, although the e-mail appears to come from the email indicated in the "From" field (found in the email headers) it actually comes from another e-mail address, probably the same one indicated in the "Reply To" field; if the initial e-mail is replied to, the delivery will be sent to the "Reply To" e-mail, that is, to the spammer's email.

Monday, June 16, 2008

Difficulties with e-mail forwarding


There are some additional details when an e-mail forwarder is involved. Forwarders perform a useful service in allowing you to have one simple permanent address, even if you change jobs or ISPs. List servers perform a similar function, forwarding e-mail to many receivers on behalf of one sender. Forwarders pose no problem for an end-to-end authentication method like DKIM and DomainKeys, as long as the signed message is not modified (some lists do this).

CSV limits its focus to one-hop authentications. SPF and SenderID have in essence the same limitation, they don't work directly behind the "border" ( MX ) of the receiver. For SPF forwarders to third parties could rewrite the Return-Path (MAIL FROM) in a similar way like mailing lists. This approach emulates the SMTP behaviour before RFC 1123 deprecated source routes; for a technical explanation see SRS.

For SenderID, forwarders to third parties and mailing lists are asked to add a Sender: or Resent-Sender: header. For many mailing lists, the former is already the case, but other forwarders avoid any modifications of the mail in addition to the mandatory Received-timestamp line.


Use of a forwarder prevents the receiver from directly seeing the sender's IP address. The incoming IP packets have only the forwarder's IP address. Two solutions are possible if one can trust all forwarders. Either one trusts the forwarder to authenticate the sender, or one trusts the forwarder to at least accurately record the incoming IP address and pass it on, so one can do their own authentication.

The situation gets complicated when there is more than one forwarder. A sender can explicitly authorize a forwarder to send on its behalf, in effect extending its boundary to the public Internet. A receiver can trust a forwarder that it pays to handle e-mail, in effect designating a new receiver. There may be additional "MTA relays" in the middle, however. These are sometimes used for administrative control, traffic aggregation, and routing control. All it takes is one broken link in the chain-of-trust from sender to receiver, and it is no longer possible to authenticate the sender.

Forwarders have one other responsibility, and that is to route Bounce messages (a.k.a. DSNs) in case the forwarding fails (or if it is requested anyway). E-mail forwarding is different from remailing when it comes to which address should receive DSNs. Spam bounces should not be sent to any address that may be forged. These bounces may go back by the same path they came, if that path has been authenticated.

Wednesday, June 11, 2008

Concurrent Versions System

In the field of software development, the Concurrent Versions System (CVS), also known as the Concurrent Versioning System, provides a version control system based on open-source code. Version control system software keeps track of all work and all changes in a set of files, and allows several developers (potentially widely separated in space and/or time) to collaborate. Dick Grune developed CVS in the 1980s. CVS has become popular in the open source software world and is released under the GNU General Public License.

Monday, June 02, 2008

Robot software

Robot software is the coded commands that tell a mechanical device (known as a robot) what tasks to perform and control its actions. Robot software is used to perform tasks and automate tasks to be performed. Programming robots is a non-trivial task. Many software systems and frameworks have been proposed to make programming robots easier.

Some robot software aims at developing intelligent mechanical devices. Though common in science fiction stories, such programs are yet to become common-place in reality and much development is yet required in the field of artificial intelligence before they even begin to approach the science fiction possibilities. Pre-programmed hardware may include feedback loops such that it can interact with its environment, but does not display actual intelligence.

Currently, malicious programming of robots is of some concern, particularly in large industrial robots. The power and size of industrial robots mean they are capable of inflicting severe injury if programmed incorrectly or used in an unsafe manner. One such incident occurred on 21 July 1984 when a man was crushed to death by an industrial robot. That incident was an accident, but shows the potential risks of working with robots. In science fiction, the Three Laws of Robotics were developed for robots to obey and avoid malicious actions.

Tuesday, May 27, 2008

Ecological Systems Theory

Ecological Systems Theory, also called "Development in Context" or "Human Ecology" theory, specifies four types of nested environmental systems, with bi-directional influences within and between the systems. The theory was developed by Urie Bronfenbrenner, generally regarded as one of the world's leading scholars in the field of developmental psychology. Later a fifth system was added:

* Microsystem: Immediate environments (family, school, peer group, neighborhood, and childcare environments)
* Mesosystem: A system comprised of connections between immediate environments (i.e., a child’s home and school)
* Exosystem: External environmental settings which only indirectly affect development (such as parent's workplace)
* Macrosystem: The larger cultural context (Eastern vs. Western culture, national economy, political culture, subculture)
* Chronosystem: The patterning of environmental events and transitions over the course of life.

The person's own biology may be considered part of the microsystem; thus the theory has recently sometimes been called "Bio-Ecological Systems Theory." Each system contains roles, norms, and rules that can powerfully shape development.

Monday, May 19, 2008

Evolutionary robotics

Evolutionary Robotics (ER) is a methodology that uses evolutionary computation to develop controllers for autonomous robots. Algorithms in ER frequently operate on populations of candidate controllers, initially selected from some distribution. This population is then repeatedly modified according to a fitness function. In the case of genetic algorithms (or "GAs"), a common method in evolutionary computation, the population of candidate controllers is repeatedly grown according to crossover, mutation and other GA operators and then culled according to the fitness function. The candidate controllers used in ER applications may be drawn from some subset of the set of artificial neural networks, although some applications (including SAMUEL, developed at the Naval Center for Applied Research in Artificial Intelligence) use collections of "IF THEN ELSE" rules as the constituent parts of an individual controller. It is theoretically possible to use any set of symbolic formulations of a control laws (sometimes called a policies in the machine learning community) as the space of possible candidate controllers. It is worth noting that artificial neural networks can also be used for robot learning outside of the context of evolutionary robotics. In particular, other forms of reinforcement learning can be used for learning robot controllers.

Monday, May 12, 2008

Software Innovation

Software Innovation can be understood in (at least) two ways:

1. Software Product Innovation - the creation of novel and useful software programs.

2. Software Process Innovation - the introduction of novel and useful ways of developing software.

Innovation should be distinguished from invention, and from creativity . Both are relevant to software innovation, but whereas creativity is the state of mind which leads to innovative thinking, and invention could describe a new algorithm or program (or software development technique), innovation implies that the creative act and invention are carried into wider use, leading to substantial kinds of change; thus the successful exploitation of new ideas. Software innovation therefore = invention + exploitation + diffusion , where invention refers to the creative act or process, exploitation refers to its enactment in practice, and diffusion of innovations refers to its adoption by a wider audience. Software innovation may refer to both radical (disruptive, discontinuous) and incremental changes to software products and processes. Typical the result of software innovation is experienced as change – in the way people work, business is carried out, in people’s choice of entertainment, in the way they choose to communicate, or in how they govern their communities and interact with each other.

Tuesday, May 06, 2008

Cost overrun

Cost overrun is defined as excess of actual cost over budget. Cost overrun is also sometimes called "cost escalation," "cost increase," or "budget overrun." However, cost escalation and increases do not necessarily result in cost overruns if cost escalation is included in the budget.

Cost overrun is common in infrastructure, building, and technology projects. One of the most comprehensive studies of cost overrun that exists found that 9 out of 10 projects had overrun, overruns of 50 to 100 percent were common, overrun was found in each of 20 nations and five continents covered by the study, and overrun had been constant for the 70 years for which data were available. For IT projects, an industry study by the Standish Group (2004) found that average cost overrun was 43 percent, 71 percent of projects were over budget, over time, and under scope, and total waste was estimated at US$55 billion per year in the US alone.

Monday, April 28, 2008

Piri Reis map

The Piri Reis map ("Piri" pronounced /piɹi/) is a famous pre-modern world map created by 16th century Ottoman-Turkish admiral and cartographer Piri Reis. The map shows part of the western coasts of Europe and North Africa with reasonable accuracy, and the coast of Brazil is also easily recognizable. Various Atlantic islands including the Azores and Canary Islands are depicted, as is the mythical island of Antillia. The map is noteworthy for its depiction of a southern landmass that some controversially claim is evidence for early awareness of the existence of Antarctica.

Monday, April 21, 2008

Marine Cargo Types

There is a wide range of marine cargoes at seaport terminals operated. The primary types are these:

* Containers are the largest and fastest growing cargo category at most ports worldwide. Containerized cargo includes everything from auto parts and machinery components to shoes, toys, and frozen meat and seafood.

* Automobiles are handled at many ports.

* Project cargo and heavy lift cargo may include items such as manufacturing equipment, factory components, power equipment such as generators and wind turbines, military equipment or almost any other oversized or overweight cargo too big or too heavy to fit into a container.

* Break bulk cargo is typically material stacked on wooden pallets and lifted into and out of the hold of a vessel by cranes on the dock or aboard the ship itself. The volume of break bulk cargo has declined dramatically worldwide as containerization has grown.

* Bulk Cargoes, such as salt, oil, tallow, and Scrap metal, are usually defined as commodities that are neither on pallets nor in containers, and which are not handled as individual pieces, the way heavy-lift and project cargoes are. Alumina, grain, gypsum, logs and wood chips, for instance, are bulk cargoes.

Monday, April 14, 2008

Logical schema

A Logical Schema is a data model of a specific problem domain that is in terms of a particular data management technology. Without being specific to a particular database management product, it is in terms of either (for example, in 2007) relational tables and columns, object-oriented classes, or XML tags. This is as opposed to a conceptual data model, which describes the semantics of an organization without reference to technology, or a physical data model, which describes the particular physical mechanisms used to capture data in a storage medium.

Monday, April 07, 2008

Apache Derby

Apache Derby relational database management system that can be embedded in Java programs and used for online transaction processing. It has a 2 MB disk-space footprint. Apache Derby is developed as an open source project under the Apache 2.0 licence. Derby was previously distributed as IBM Cloudscape and Sun Java DB.

Friday, April 04, 2008

Relational model

The relational model for database management is a database model based on predicate logic and set theory. It was first formulated and proposed in 1969 by Edgar Codd with aims that included avoiding, without loss of completeness, the need to write computer programs to express database queries and enforce database integrity constraints. "Relation" is a mathematical term for "table", and thus "relational" roughly means "based on tables". It did not originally refer to the links or "keys" between tables, contrary to popular interpretation of the name.

Monday, March 24, 2008

CrushFTP

CrushFTP is a FTP server that supports the following protocols: FTP, FTPS, SFTP, HTTP, HTTPS, WebDAV and WebDAV SSL. Additionally, although not a protocol, it has a web interface for end users to manage their files from a web browser. CrushFTP uses a GUI for administration, but also installs as a daemon on Mac OS X, Linux, Unix, and as a service in Windows. It supports multihoming, hot configuration changes, and has a GUI based user and group manager. The plugin architecture in CrushFTP allows for plugins to read users from SQL, LDAP, Active Directory, folders, and NetInfo. All settings are stored in XML files that can be edited directly, or with the CrushFTP GUI. If edited directly, CrushFTP will notice the modification date change and load the settings immediately without needing a server restart.

Monday, March 17, 2008

Software development process

A software development process is a structure imposed on the development of a software product. Synonyms include software life cycle and software process. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process.

A growing body of software development organizations implement process methodologies. Many of them are in the defense industry, which in the U.S. requires a rating based on 'process models' to obtain contracts. The international standard for describing the method of selecting, implementing and monitoring the life cycle for software is ISO 12207.