Consumer culture theory (CCT) is the study of consumption from a social and cultural point of view, as opposed to an economic or psychological one.
82-410: Cname="CCT1"> Arnould, E. J.; Thompson, C. J. (2005). "Consumer culture theory (CCT): Twenty Years of Research" . Journal of Consumer Research . 31 (4): 868–882. doi : 10.1086/426626 . </ref> Reflective of a post-modernist society, CCT views cultural meanings as being numerous and fragmented and hence views culture as an amalgamation of different groups and shared meanings, rather than
164-543: A first-class entity , rather than the specific place where the object is located at a certain time. It implements the Uniform Resource Identifier ( Uniform Resource Name ) concept and adds to it a data model and social infrastructure. A DOI name also differs from standard identifier registries such as the ISBN , ISRC , etc. The purpose of an identifier registry is to manage a given collection of identifiers, whereas
246-433: A "array of characters" which may be stored in the same array but is often not null terminated. Using C string handling functions on such an array of characters often seems to work, but later leads to security problems . There are many algorithms for processing strings, each with various trade-offs. Competing algorithms can be analyzed with respect to run time, storage requirements, and so forth. The name stringology
328-414: A 10-byte buffer , along with its ASCII (or more modern UTF-8 ) representation as 8-bit hexadecimal numbers is: The length of the string in the above example, " FRANK ", is 5 characters, but it occupies 6 bytes. Characters after the terminator do not form part of the representation; they may be either part of other data or just garbage. (Strings of this form are sometimes called ASCIZ strings , after
410-448: A DOI name is a handle, and so has a set of values assigned to it and may be thought of as a record that consists of a group of fields. Each handle value must have a data type specified in its <type> field, which defines the syntax and semantics of its data. While a DOI persistently and uniquely identifies the object to which it is assigned, DOI resolution may not be persistent, due to technical and administrative issues. To resolve
492-537: A DOI name, it may be input to a DOI resolver, such as doi.org . Another approach, which avoids typing or copying and pasting into a resolver is to include the DOI in a document as a URL which uses the resolver as an HTTP proxy, such as https://doi.org/ (preferred) or http://dx.doi.org/ , both of which support HTTPS. For example, the DOI 10.1000/182 can be included in a reference or hyperlink as https://doi.org/10.1000/182 . This approach allows users to click on
574-440: A URN. String (computer science) In computer programming , a string is traditionally a sequence of characters , either as a literal constant or as some kind of variable . The latter may allow its elements to be mutated and the length changed, or it may be fixed (after creation). A string is generally considered as a data type and is often implemented as an array data structure of bytes (or words ) that stores
656-449: A byte value in the ASCII range will represent only that ASCII character, making the encoding safe for systems that use those characters as field separators. Other encodings such as ISO-2022 and Shift-JIS do not make such guarantees, making matching on byte codes unsafe. These encodings also were not "self-synchronizing", so that locating character boundaries required backing up to the start of
738-441: A computer program to the user of the program. A program may also accept string input from its user. Further, strings may store data expressed as characters yet not intended for human reading. Example strings and their purposes: The term string may also designate a sequence of data or computer records other than characters — like a "string of bits " — but when used without qualification it refers to strings of characters. Use of
820-462: A consequence, some people call such a string a Pascal string or P-string . Storing the string length as byte limits the maximum string length to 255. To avoid such limitations, improved implementations of P-strings use 16-, 32-, or 64-bit words to store the string length. When the length field covers the address space , strings are limited only by the available memory . If the length is bounded, then it can be encoded in constant space, typically
902-533: A dedicated string datatype at all, instead adopting the convention of representing strings as lists of character codes. Even in programming languages having a dedicated string type, string can usually be iterated as a sequence character codes, like lists of integers or other values. Representations of strings depend heavily on the choice of character repertoire and the method of character encoding. Older string implementations were designed to work with repertoire and encoding defined by ASCII, or more recent extensions like
SECTION 10
#1732852493984984-414: A fixed length. A few languages such as Haskell implement them as linked lists instead. A lot of high-level languages provide strings as a primitive data type, such as JavaScript and PHP , while most others provide them as a composite data type, some with special language support in writing literals, for example, Java and C# . Some languages, such as C , Prolog and Erlang , avoid implementing
1066-560: A homogeneous construct (such as the American culture). Consumer culture is viewed as "social arrangement in which the relations between lived culture and social resources, between meaningful ways of life and the symbolic and material resources on which they depend, are mediated through markets" and consumers as part of an interconnected system of commercially produced products and images which they use to construct their identity and orient their relationships with others. This evolution underscores
1148-462: A length code are limited to the maximum value of the length code. Both of these limitations can be overcome by clever programming. It is possible to create data structures and functions that manipulate them that do not have the problems associated with character termination and can in principle overcome length code bounds. It is also possible to optimize the string represented using techniques from run length encoding (replacing repeated characters by
1230-449: A machine word, thus leading to an implicit data structure , taking n + k space, where k is the number of characters in a word (8 for 8-bit ASCII on a 64-bit machine, 1 for 32-bit UTF-32/UCS-4 on a 32-bit machine, etc.). If the length is not bounded, encoding a length n takes log( n ) space (see fixed-length code ), so length-prefixed strings are a succinct data structure , encoding a string of length n in log( n ) + n space. In
1312-401: A managed registry (providing both social and technical infrastructure). It does not assume any specific business model for the provision of identifiers or services and enables other existing services to link to it in defined ways. Several approaches for making identifiers persistent have been proposed. The comparison of persistent identifier approaches is difficult because they are not all doing
1394-544: A non-profit organization created in 1997, is the governance body of the DOI system. It safeguards all intellectual property rights relating to the DOI system, manages common operational features, and supports the development and promotion of the DOI system. The IDF ensures that any improvements made to the DOI system (including creation, maintenance, registration, resolution and policymaking of DOI names) are available to any DOI registrant. It also prevents third parties from imposing additional licensing requirements beyond those of
1476-465: A one 8-bit byte per-character encoding) for reasonable representation. The normal solutions involved keeping single-byte representations for ASCII and using two-byte representations for CJK ideographs . Use of these with existing code led to problems with matching and cutting of strings, the severity of which depended on how the character encoding was designed. Some encodings such as the EUC family guarantee that
1558-542: A program treated specially (such as period and space and comma) were in the same place in all the encodings a program would encounter. These character sets were typically based on ASCII or EBCDIC . If text in one encoding was displayed on a system using a different encoding, text was often mangled , though often somewhat readable and some computer users learned to read the mangled text. Logographic languages such as Chinese , Japanese , and Korean (known collectively as CJK ) need far more than 256 characters (the limit of
1640-478: A separate integer (which may put another artificial limit on the length) or implicitly through a termination character, usually a character value with all bits zero such as in C programming language. See also " Null-terminated " below. String datatypes have historically allocated one byte per character, and, although the exact character set varied by region, character encodings were similar enough that programmers could often get away with ignoring this, since characters
1722-435: A sequence of elements, typically characters, using some character encoding . String may also denote more general arrays or other sequence (or list ) data types and structures. Depending on the programming language and precise data type used, a variable declared to be a string may either cause storage in memory to be statically allocated for a predetermined maximum length or employ dynamic allocation to allow it to hold
SECTION 20
#17328524939841804-405: A single long consecutive array of characters, a typical text editor instead uses an alternative representation as its sequence data structure—a gap buffer , a linked list of lines, a piece table , or a rope —which makes certain string operations, such as insertions, deletions, and undoing previous edits, more efficient. The differing memory layout and storage requirements of strings can affect
1886-402: A string, and pasting two strings together could result in corruption of the second string. Unicode has simplified the picture somewhat. Most programming languages now have a datatype for Unicode strings. Unicode's preferred byte stream format UTF-8 is designed not to have the problems described above for older multibyte encodings. UTF-8, UTF-16 and UTF-32 require the programmer to know that
1968-456: A string, usually quoted in some way, to represent an instance of a string datatype; such a meta-string is called a literal or string literal . Although formal strings can have an arbitrary finite length, the length of strings in real languages is often constrained to an artificial maximum. In general, there are two types of string datatypes: fixed-length strings , which have a fixed maximum length to be determined at compile time and which use
2050-404: A string-specific datatype, depending on the needs of the application, the desire of the programmer, and the capabilities of the programming language being used. If the programming language's string implementation is not 8-bit clean , data corruption may ensue. C programmers draw a sharp distinction between a "string", aka a "string of characters", which by definition is always null terminated, vs.
2132-497: A termination value. Most string implementations are very similar to variable-length arrays with the entries storing the character codes of corresponding characters. The principal difference is that, with certain encodings, a single logical character may take up more than one entry in the array. This happens for example with UTF-8, where single codes ( UCS code points) can take anywhere from one to four bytes, and single characters can take an arbitrary number of codes. In these cases,
2214-474: A text file that is both human-readable and intended for consumption by a machine. This is needed in, for example, source code of programming languages, or in configuration files. In this case, the NUL character does not work well as a terminator since it is normally invisible (non-printable) and is difficult to input via a keyboard. Storing the string length would also be inconvenient as manual computation and tracking of
2296-419: A transaction, etc. The names can refer to objects at varying levels of detail: thus DOI names can identify a journal, an individual issue of a journal, an individual article in the journal, or a single table in that article. The choice of level of detail is left to the assigner, but in the DOI system it must be declared as part of the metadata that is associated with a DOI name, using a data dictionary based on
2378-474: A variable number of elements. When a string appears literally in source code , it is known as a string literal or an anonymous string. In formal languages , which are used in mathematical logic and theoretical computer science , a string is a finite sequence of symbols that are chosen from a set called an alphabet . A primary purpose of strings is to store human-readable text, like words and sentences. Strings are used to communicate information from
2460-574: A variety of methods In 2005, Arnould and Thompson identified four research programs in CCT: Doi (identifier) A digital object identifier ( DOI ) is a persistent identifier or handle used to uniquely identify various objects, standardized by the International Organization for Standardization (ISO). DOIs are an implementation of the Handle System ; they also fit within
2542-450: Is a type of Handle System handle, which takes the form of a character string divided into two parts, a prefix and a suffix, separated by a slash. The prefix identifies the registrant of the identifier and the suffix is chosen by the registrant and identifies the specific object associated with that DOI. Most legal Unicode characters are allowed in these strings, which are interpreted in a case-insensitive manner. The prefix usually takes
Consumer culture theory - Misplaced Pages Continue
2624-417: Is commonly referred to as a C string . This representation of an n -character string takes n + 1 space (1 for the terminator), and is thus an implicit data structure . In terminated strings, the terminating code is not an allowable character in any string. Strings with length field do not have this limitation and can also store arbitrary binary data . An example of a null-terminated string stored in
2706-609: Is immaterial. According to Jean E. Sammet , "the first realistic string handling and pattern matching language" for computers was COMIT in the 1950s, followed by the SNOBOL language of the early 1960s. A string datatype is a datatype modeled on the idea of a formal string. Strings are such an important and useful datatype that they are implemented in nearly every programming language . In some languages they are available as primitive types and in others as composite types . The syntax of most high-level programming languages allows for
2788-452: Is located. Thus, by being actionable and interoperable , a DOI differs from ISBNs or ISRCs which are identifiers only. The DOI system uses the indecs Content Model to represent metadata . The DOI for a document remains fixed over the lifetime of the document, whereas its location and other metadata may change. Referring to an online document by its DOI should provide a more stable link than directly using its URL. But if its URL changes,
2870-667: Is maintained by the International DOI Foundation. The IDF is recognized as one of the federated registrars for the Handle System by the DONA Foundation (of which the IDF is a board member), and is responsible for assigning Handle System prefixes under the top-level 10 prefix. Registration agencies generally charge a fee to assign a new DOI name; parts of these fees are used to support the IDF. The DOI system overall, through
2952-464: Is shown with a DOI name that leads to an Excel file of data underlying the tables and graphs. Further development of such services is planned. Other registries include Crossref and the multilingual European DOI Registration Agency (mEDRA) . Since 2015, RFCs can be referenced as doi:10.17487/rfc ... . The IDF designed the DOI system to provide a form of persistent identification , in which each DOI name permanently and unambiguously identifies
3034-555: Is to use one of a number of add-ons and plug-ins for browsers , thereby avoiding the conversion of the DOIs to URLs, which depend on domain names and may be subject to change, while still allowing the DOI to be treated as a normal hyperlink. A disadvantage of this approach for publishers is that, at least at present, most users will be encountering the DOIs in a browser, mail reader , or other software which does not have one of these plug-ins installed. The International DOI Foundation ( IDF ),
3116-509: The ISO 8859 series. Modern implementations often use the extensive repertoire defined by Unicode along with a variety of complex encodings such as UTF-8 and UTF-16. The term byte string usually indicates a general-purpose string of bytes, rather than strings of only (readable) characters, strings of bits, or such. Byte strings often imply that bytes can take any value and any data can be stored as-is, meaning that there should be no value interpreted as
3198-458: The formal behavior of symbolic systems, setting aside the symbols' meaning. For example, logician C. I. Lewis wrote in 1918: A mathematical system is any set of strings of recognisable marks in which some of the strings are taken initially and the remainder derived from these by operations performed according to rules which are independent of any meaning assigned to the marks. That a system should consist of 'marks' instead of sounds or odours
3280-491: The indecs Content Model . The official DOI Handbook explicitly states that DOIs should be displayed on screens and in print in the format doi:10.1000/182 . Contrary to the DOI Handbook , Crossref , a major DOI registration agency, recommends displaying a URL (for example, https://doi.org/10.1000/182 ) instead of the officially specified format. This URL is persistent (there is a contract that ensures persistence in
3362-479: The DOI System. It requires an additional layer of administration for defining DOI as a URN namespace (the string urn:doi:10.1000/1 rather than the simpler doi:10.1000/1 ) and an additional step of unnecessary redirection to access the resolution service, already achieved through either http proxy or native resolution. If RDS mechanisms supporting URN specifications become widely available, DOI will be registered as
Consumer culture theory - Misplaced Pages Continue
3444-413: The DOI as a normal hyperlink . Indeed, as previously mentioned, this is how Crossref recommends that DOIs always be represented (preferring HTTPS over HTTP), so that if they are cut-and-pasted into other documents, emails, etc., they will be actionable. Other DOI resolvers and HTTP Proxies include the Handle System and PANGAEA . At the beginning of the year 2016, a new class of alternative DOI resolvers
3526-436: The DOI system and are willing to pay to become a member of the system can assign DOIs. The DOI system is implemented through a federation of registration agencies coordinated by the IDF. By late April 2011 more than 50 million DOI names had been assigned by some 4,000 organizations, and by April 2013 this number had grown to 85 million DOI names assigned through 9,500 organizations. Fake registries have even appeared. A DOI
3608-409: The DOI system associates metadata with objects. A small kernel of common metadata is shared by all DOI names and can be optionally extended with other relevant data, which may be public or restricted. Registrants may update the metadata for their DOI names at any time, such as when publication information changes or when an object moves to a different URL. The International DOI Foundation (IDF) oversees
3690-436: The DOI system have deliberately not registered a DOI namespace for URNs , stating that: URN architecture assumes a DNS-based Resolution Discovery Service (RDS) to find the service appropriate to the given URN scheme. However no such widely deployed RDS schemes currently exist.... DOI is not registered as a URN namespace, despite fulfilling all the functional requirements, since URN registration appears to offer no advantage to
3772-459: The DOI system. DOI name-resolution may be used with OpenURL to select the most appropriate among multiple locations for a given object, according to the location of the user making the request. However, despite this ability, the DOI system has drawn criticism from librarians for directing users to non-free copies of documents, that would have been available for no additional fee from alternative locations. The indecs Content Model as used within
3854-495: The IDF on users of the DOI system. The IDF is controlled by a Board elected by the members of the Foundation, with an appointed Managing Agent who is responsible for co-ordinating and planning its activities. Membership is open to all organizations with an interest in electronic publishing and related enabling technologies. The IDF holds annual open meetings on the topics of DOI and related issues. Registration agencies, appointed by
3936-597: The IDF, operates on a not-for-profit cost recovery basis. The DOI system is an international standard developed by the International Organization for Standardization in its technical committee on identification and description, TC46/SC9. The Draft International Standard ISO/DIS 26324, Information and documentation – Digital Object Identifier System met the ISO requirements for approval. The relevant ISO Working Group later submitted an edited version to ISO for distribution as an FDIS (Final Draft International Standard) ballot, which
4018-472: The IDF, provide services to DOI registrants: they allocate DOI prefixes, register DOI names, and provide the necessary infrastructure to allow registrants to declare and maintain metadata and state data. Registration agencies are also expected to actively promote the widespread adoption of the DOI system, to cooperate with the IDF in the development of the DOI system as a whole, and to provide services on behalf of their specific user community. A list of current RAs
4100-452: The URI system ( Uniform Resource Identifier ). They are widely used to identify academic, professional, and government information, such as journal articles, research reports, data sets, and official publications . A DOI aims to resolve to its target, the information object to which the DOI refers. This is achieved by binding the DOI to metadata about the object, such as a URL where the object
4182-433: The assignment of the seventh bit to (for example) handle ASCII codes. Early microcomputer software relied upon the fact that ASCII codes do not use the high-order bit, and set it to indicate the end of a string. It must be reset to 0 prior to output. The length of a string can also be stored explicitly, for example by prefixing the string with the length as a byte value. This convention is used in many Pascal dialects; as
SECTION 50
#17328524939844264-435: The character value and a length) and Hamming encoding . While these representations are common, others are possible. Using ropes makes certain string operations, such as insertions, deletions, and concatenations more efficient. The core data structure in a text editor is the one that manages the string (sequence of characters) that represents the current state of the file being edited. While that state could be stored in
4346-459: The characters 1000 in the prefix identify the registrant; in this case the registrant is the International DOI Foundation itself. 182 is the suffix, or item ID, identifying a single object (in this case, the latest version of the DOI Handbook ). DOI names can identify creative works (such as texts, images, audio or video items, and software) in both electronic and physical forms, performances , and abstract works such as licenses, parties to
4428-403: The doi.org domain, ) so it is a PURL —providing the location of an name resolver which will redirect HTTP requests to the correct online location of the linked item. The Crossref recommendation is primarily based on the assumption that the DOI is being displayed without being hyperlinked to its appropriate URL—the argument being that without the hyperlink it is not as easy to copy-and-paste
4510-507: The fixed-size code units are different from the "characters", the main difficulty currently is incorrectly designed APIs that attempt to hide this difference (UTF-32 does make code points fixed-sized, but these are not "characters" due to composing codes). Some languages, such as C++ , Perl and Ruby , normally allow the contents of a string to be changed after it has been created; these are termed mutable strings. In other languages, such as Java , JavaScript , Lua , Python , and Go ,
4592-457: The form 10.NNNN , where NNNN is a number greater than or equal to 1000 , whose limit depends only on the total number of registrants. The prefix may be further subdivided with periods, like 10.NNNN.N . For example, in the DOI name 10.1000/182 , the prefix is 10.1000 and the suffix is 182 . The "10" part of the prefix distinguishes the handle as part of the DOI namespace, as opposed to some other Handle System namespace, and
4674-604: The full URL to actually bring up the page for the DOI, thus the entire URL should be displayed, allowing people viewing the page containing the DOI to copy-and-paste the URL, by hand, into a new window/tab in their browser in order to go to the appropriate page for the document the DOI represents. Major content of the DOI system currently includes: In the Organisation for Economic Co-operation and Development 's publication service OECD iLibrary , each table or graph in an OECD publication
4756-443: The functionality of a registry-controlled scheme and will usually lack accompanying metadata in a controlled scheme. The DOI system does not have this approach and should not be compared directly to such identifier schemes. Various applications using such enabling technologies with added features have been devised that meet some of the features offered by the DOI system for specific sectors (e.g., ARK ). A DOI name does not depend on
4838-430: The implementation is usually hidden , the string must be accessed and modified through member functions. text is a pointer to a dynamically allocated memory area, which might be expanded as needed. See also string (C++) . Both character termination and length codes limit strings: For example, C character arrays that contain null (NUL) characters cannot be handled directly by C string library functions: Strings using
4920-537: The integration of these technologies and operation of the system through a technical and social infrastructure. The social infrastructure of a federation of independent registration agencies offering DOI services was modelled on existing successful federated deployments of identifiers such as GS1 and ISBN . A DOI name differs from commonly used Internet pointers to material, such as the Uniform Resource Locator (URL), in that it identifies an object itself as
5002-518: The intricate relationship between technology, consumer behavior, and cultural production in contemporary society. There is a widely held misperception by people outside CCT researchers that this field is oriented toward the study of consumption contexts. Memorable study contexts, such as the Harley-Davidson subculture or the Burning Man festival probably fueled this perspective, which is far from
SECTION 60
#17328524939845084-428: The latter case, the length-prefix field itself does not have fixed length, therefore the actual string data needs to be moved when the string grows such that the length field needs to be increased. Here is a Pascal string stored in a 10-byte buffer, along with its ASCII / UTF-8 representation: Many languages, including object-oriented ones, implement strings as records with an internal structure like: However, since
5166-407: The length is tedious and error-prone. Two common representations are: While character strings are very common uses of strings, a string in computer science may refer generically to any sequence of homogeneously typed data. A bit string or byte string , for example, may be used to represent non-textual binary data retrieved from a communications medium. This data may or may not be represented by
5248-436: The logical length of the string (number of characters) differs from the physical length of the array (number of bytes in use). UTF-32 avoids the first part of the problem. The length of a string can be stored implicitly by using a special terminating character; often this is the null character (NUL), which has all bits zero, a convention used and perpetuated by the popular C programming language . Hence, this representation
5330-430: The object to which it is associated (although when the publisher of a journal changes, sometimes all the DOIs will be changed, with the old DOIs no longer working). It also associates metadata with objects, allowing it to provide users with relevant pieces of information about the objects and their relationships. Included as part of this metadata are network actions that allow DOI names to be resolved to web locations where
5412-462: The object's location and, in this way, is similar to a Uniform Resource Name (URN) or PURL but differs from an ordinary URL. URLs are often used as substitute identifiers for documents on the Internet although the same document at two different locations has two URLs. By contrast, persistent identifiers such as DOI names identify objects as first class entities: two instances of the same object would have
5494-454: The objects they describe can be found. To achieve its goals, the DOI system combines the Handle System and the indecs Content Model with a social infrastructure. The Handle System ensures that the DOI name for an object is not based on any changeable attributes of the object such as its physical location or ownership, that the attributes of the object are encoded in its metadata rather than in its DOI name, and that no two objects are assigned
5576-447: The original assembly language directive used to declare them.) Using a special byte other than null for terminating strings has historically appeared in both hardware and software, though sometimes with a value that was also a printing character. $ was used by many assembler systems, : used by CDC systems (this character had a value of zero), and the ZX80 used " since this was
5658-467: The primary purpose of the DOI system is to make a collection of identifiers actionable and interoperable, where that collection can include identifiers from many other controlled collections. The DOI system offers persistent, semantically interoperable resolution to related current data and is best suited to material that will be used in services outside the direct control of the issuing assigner (e.g., public citation or managing content of value). It uses
5740-415: The publisher must update the metadata for the DOI to maintain the link to the URL. It is the publisher's responsibility to update the DOI database. If they fail to do so, the DOI resolves to a dead link , leaving the DOI useless. The developer and administrator of the DOI system is the International DOI Foundation (IDF), which introduced it in 2000. Organizations that meet the contractual obligations of
5822-411: The same DOI name. DOI name resolution is provided through the Handle System , developed by Corporation for National Research Initiatives , and is freely available to any user encountering a DOI name. Resolution redirects the user from a DOI name to one or more pieces of typed data: URLs representing instances of the object, services such as e-mail, or one or more items of metadata. To the Handle System,
5904-537: The same DOI name. Because DOI names are short character strings, they are human-readable, may be copied and pasted as text, and fit into the URI specification. The DOI name-resolution mechanism acts behind the scenes, so that users communicate with it in the same way as with any other web service; it is built on open architectures , incorporates trust mechanisms , and is engineered to operate reliably and flexibly so that it can be adapted to changing demands and new applications of
5986-472: The same amount of memory whether this maximum is needed or not, and variable-length strings , whose length is not arbitrarily fixed and which can use varying amounts of memory depending on the actual requirements at run time (see Memory management ). Most strings in modern programming languages are variable-length strings. Of course, even variable-length strings are limited in length – by the size of available computer memory . The string length can be stored as
6068-431: The same thing. Imprecisely referring to a set of schemes as "identifiers" does not mean that they can be compared easily. Other "identifier systems" may be enabling technologies with low barriers to entry, providing an easy to use labeling mechanism that allows anyone to set up a new instance (examples include Persistent Uniform Resource Locator (PURL), URLs, Globally Unique Identifiers (GUIDs), etc.), but may lack some of
6150-434: The security of the program accessing the string data. String representations requiring a terminating character are commonly susceptible to buffer overflow problems if the terminating character is not present, caused by a coding error or an attacker deliberately altering the data. String representations adopting a separate length field are also susceptible if the length can be manipulated. In such cases, program code accessing
6232-497: The string data requires bounds checking to ensure that it does not inadvertently access or change data outside of the string memory limits. String data is frequently obtained from user input to a program. As such, it is the responsibility of the program to validate the string to ensure that it represents the expected format. Performing limited or no validation of user input can cause a program to be vulnerable to code injection attacks. Sometimes, strings need to be embedded inside
6314-493: The string delimiter in its BASIC language. Somewhat similar, "data processing" machines like the IBM 1401 used a special word mark bit to delimit strings at the left, where the operation would start at the right. This bit had to be clear in all other parts of the string. This meant that, while the IBM 1401 had a seven-bit word, almost no-one ever thought to use this as a feature, and override
6396-489: The theory development aim of this school of thought. Some academic journals associated with research on consumer culture theory are Journal of Consumer Research , Consumption Markets & Culture , and Marketing Theory . CCT is often associated with qualitative methodologies , such as interviews , case studies , ethnography , and netnography , because they are suitable to study the experiential, sociological and cultural aspects of consumption. However, CCT researchers use
6478-768: The value is fixed and a new string must be created if any alteration is to be made; these are termed immutable strings. Some of these languages with immutable strings also provide another type that is mutable, such as Java and .NET 's StringBuilder , the thread-safe Java StringBuffer , and the Cocoa NSMutableString . There are both advantages and disadvantages to immutability: although immutable strings may require inefficiently creating many copies, they are simpler and completely thread-safe . Strings are typically implemented as arrays of bytes, characters, or code units, in order to allow fast access to individual units or substrings—including characters when they have
6560-463: The word "string" to mean any items arranged in a line, series or succession dates back centuries. In 19th-Century typesetting, compositors used the term "string" to denote a length of type printed on paper; the string would be measured to determine the compositor's pay. Use of the word "string" to mean "a sequence of symbols or linguistic elements in a definite order" emerged from mathematics, symbolic logic , and linguistic theory to speak about
6642-510: Was approved by 100% of those voting in a ballot closing on 15 November 2010. The final standard was published on 23 April 2012. DOI is a registered URI under the info URI scheme specified by IETF RFC 4452 . info:doi/ is the infoURI Namespace of Digital Object Identifiers. The DOI syntax is a NISO standard, first standardized in 2000, ANSI/NISO Z39.84-2005 Syntax for the Digital Object Identifier. The maintainers of
6724-614: Was started by http://doai.io. This service is unusual in that it tries to find a non-paywalled (often author archived ) version of a title and redirects the user to that instead of the publisher's version . Since then, other open-access favoring DOI resolvers have been created, notably https://oadoi.org/ in October 2016 (later Unpaywall ). While traditional DOI resolvers solely rely on the Handle System, alternative DOI resolvers first consult open access resources such as BASE (Bielefeld Academic Search Engine). An alternative to HTTP proxies
#983016