Random Articles (Page 343)
Have a deep view into what people are curious about.
🔗 Wallace Tree
A Wallace tree is an efficient hardware implementation of a digital circuit that multiplies two integers. It was devised by the Australian computer scientist Chris Wallace in 1964.
The Wallace tree has three steps:
- Multiply (that is – AND) each bit of one of the arguments, by each bit of the other, yielding results. Depending on position of the multiplied bits, the wires carry different weights, for example wire of bit carrying result of is 128 (see explanation of weights below).
- Reduce the number of partial products to two by layers of full and half adders.
- Group the wires in two numbers, and add them with a conventional adder.
The second step works as follows. As long as there are three or more wires with the same weight add a following layer:-
- Take any three wires with the same weights and input them into a full adder. The result will be an output wire of the same weight and an output wire with a higher weight for each three input wires.
- If there are two wires of the same weight left, input them into a half adder.
- If there is just one wire left, connect it to the next layer.
The benefit of the Wallace tree is that there are only reduction layers, and each layer has propagation delay. As making the partial products is and the final addition is , the multiplication is only , not much slower than addition (however, much more expensive in the gate count). Naively adding partial products with regular adders would require time. From a complexity theoretic perspective, the Wallace tree algorithm puts multiplication in the class NC1.
These computations only consider gate delays and don't deal with wire delays, which can also be very substantial.
The Wallace tree can be also represented by a tree of 3/2 or 4/2 adders.
It is sometimes combined with Booth encoding.
Discussed on
- "Wallace Tree" | 2020-02-18 | 61 Upvotes 12 Comments
🔗 Pearson Hashing
Pearson hashing is a hash function designed for fast execution on processors with 8-bit registers. Given an input consisting of any number of bytes, it produces as output a single byte that is strongly dependent on every byte of the input. Its implementation requires only a few instructions, plus a 256-byte lookup table containing a permutation of the values 0 through 255.
This hash function is a CBC-MAC that uses an 8-bit substitution cipher implemented via the substitution table. An 8-bit cipher has negligible cryptographic security, so the Pearson hash function is not cryptographically strong, but it is useful for implementing hash tables or as a data integrity check code, for which purposes it offers these benefits:
- It is extremely simple.
- It executes quickly on resource-limited processors.
- There is no simple class of inputs for which collisions (identical outputs) are especially likely.
- Given a small, privileged set of inputs (e.g., reserved words for a compiler), the permutation table can be adjusted so that those inputs yield distinct hash values, producing what is called a perfect hash function.
- Two input strings differing by exactly one character never collide. E.g., applying the algorithm on the strings ABC and AEC will never produce the same value.
One of its drawbacks when compared with other hashing algorithms designed for 8-bit processors is the suggested 256 byte lookup table, which can be prohibitively large for a small microcontroller with a program memory size on the order of hundreds of bytes. A workaround to this is to use a simple permutation function instead of a table stored in program memory. However, using a too simple function, such as T[i] = 255-i, partly defeats the usability as a hash function as anagrams will result in the same hash value; using a too complex function, on the other hand, will affect speed negatively. Using a function rather than a table also allows extending the block size. Such functions naturally have to be bijective, like their table variants.
The algorithm can be described by the following pseudocode, which computes the hash of message C using the permutation table T:
algorithm pearson hashing is
h := 0
for each c in C loop
h := T[ h xor c ]
end loop
return h
The hash variable (h) may be initialized differently, e.g. to the length of the data (C) modulo 256; this particular choice is used in the Python implementation example below.
🔗 Better Portable Graphics
Better Portable Graphics (BPG) is a file format for coding digital images, which was created by programmer Fabrice Bellard in 2014. He has proposed it as a replacement for the JPEG image format as the more compression-efficient alternative in terms of image quality or file size.
It is based on the intra-frame encoding of the High Efficiency Video Coding (HEVC) video compression standard. Tests on photographic images in July 2014 found that BPG produced smaller files for a given quality than JPEG, JPEG XR and WebP.
The format has been designed to be portable and work in low memory environments, and used in portable handheld and IoT devices, where those properties are particularly important. Current research works on designing and developing more energy-efficient BPG hardware which can then be integrated in portable devices such as digital cameras.
While there is no built-in native support for BPG in any mainstream browsers, websites can still deliver BPG images to all browsers by including a JavaScript library written by Bellard.
Discussed on
- "Better Portable Graphics" | 2019-07-12 | 186 Upvotes 123 Comments
🔗 Fallacies of Distributed Computing
The fallacies of distributed computing are a set of assertions made by L Peter Deutsch and others at Sun Microsystems describing false assumptions that programmers new to distributed applications invariably make.
Discussed on
- "Fallacies of Distributed Computing" | 2011-04-21 | 139 Upvotes 48 Comments
🔗 Space Transportation System
The Space Transportation System (STS), also known internally to NASA as the Integrated Program Plan (IPP), was a proposed system of reusable manned space vehicles envisioned in 1969 to support extended operations beyond the Apollo program. (NASA appropriated the name for its Space Shuttle Program, the only component of the proposal to survive Congressional funding approval). The purpose of the system was twofold: to reduce the cost of spaceflight by replacing the current method of launching capsules on expendable rockets with reusable spacecraft; and to support ambitious follow-on programs including permanent orbiting space stations around the Earth and Moon, and a human landing mission to Mars.
In February 1969, President Richard Nixon appointed a Space Task Group headed by Vice President Spiro Agnew to recommend human space projects beyond Apollo. The group responded in September with the outline of the STS, and three different program levels of effort culminating with a human Mars landing by 1983 at the earliest, and by the end of the twentieth century at the latest. The system's major components consisted of:
- A permanent space station module designed for 6 to 12 occupants, in a 270-nautical-mile (500 km) low Earth orbit, and as a permanent lunar orbit station. Modules could be combined in Earth orbit to create a 50 to 100 person permanent station.
- A chemically fueled Earth-to-station shuttle.
- A chemically fueled space tug to move crew and equipment between Earth orbits as high as geosynchronous orbit, which could be adapted as a lunar orbit-to-surface shuttle.
- A nuclear-powered ferry using the NERVA engine, to move crew, spacecraft and supplies between low Earth orbit and lunar orbit, geosynchronous orbit, or to other planets in the solar system.
The tug and ferry vehicles would be of a modular design, allowing them to be clustered and/or staged for large payloads or interplanetary missions. The system would be supported by permanent Earth and lunar orbital propellant depots. The Saturn V might still have been used as a heavy lift launch vehicle for the nuclear ferry and space station modules. A special "Mars Excursion Module" would be the only remaining vehicle necessary for a human Mars landing.
As Apollo accomplished its objective of landing the first men on the Moon, political support for further manned space activities began to wane, which was reflected in unwillingness of the Congress to provide funding for most of these extended activities. Based on this, Nixon rejected all parts of the program except the Space Shuttle, which inherited the STS name. As funded, the Shuttle was greatly scaled back from its planned degree of reusability, and deferred in time. The Shuttle first flew in 1981, and was retired in 2011.
A second part of the system, Space Station Freedom, was approved in the early 1980s and announced in 1984 by president Ronald Reagan. However, this also became politically unviable by 1993, and was replaced with the International Space Station (ISS), with substantial contribution by Russia. The ISS was completed in 2010.
Discussed on
- "Space Transportation System" | 2018-10-21 | 87 Upvotes 60 Comments
🔗 Controversies over the term Engineer
Regulation and licensure in engineering is established by various jurisdictions of the world to encourage public welfare, safety, well-being and other interests of the general public and to define the licensure process through which an engineer becomes authorized to practice engineering and/or provide engineering professional services to the public.
As with many other professions, the professional status and the actual practice of professional engineering is legally defined and protected by law in some jurisdictions. Additionally, some jurisdictions permit only licensed engineers (sometimes called registered engineers) to "practice engineering," which requires careful definition in order to resolve potential overlap or ambiguity with respect to certain other professions which may or may not be themselves regulated (e.g. "scientists," or "architects"). Relatedly, jurisdictions that license according to particular engineering discipline need to define those boundaries carefully as well so that practitioners understand what they are permitted to do.
In many cases, only a state or provincial licensed/registered engineer has the authority to take legal responsibility for engineering work or projects (typically via a seal or stamp on the relevant design documentation). Regulations may require that only a licensed or registered engineer can sign, seal or stamp technical documentation such as reports, plans, engineering drawings and calculations for study estimate or valuation or carry out design analysis, repair, servicing, maintenance or supervision of engineering work, process or project. In cases where public safety, property or welfare is concerned, it may be required that an engineer be licensed or registered – though some jurisdictions have an "industrial exemption" that permits engineers to work internally for an organization without licensure so long as they are not making final decisions to release product to the public or offering engineering services directly to the public (e.g. consultant).
Expert witness or opinion in courts or before government committees or commissions can be provided by experts in the respective field, which is sometimes given by a registered or licensed engineer in some jurisdictions.
Discussed on
- "Controversies over the term Engineer" | 2010-02-07 | 17 Upvotes 24 Comments
🔗 Curry–Howard correspondence
In programming language theory and proof theory, the Curry–Howard correspondence (also known as the Curry–Howard isomorphism or equivalence, or the proofs-as-programs and propositions- or formulae-as-types interpretation) is the direct relationship between computer programs and mathematical proofs.
It is a generalization of a syntactic analogy between systems of formal logic and computational calculi that was first discovered by the American mathematician Haskell Curry and logician William Alvin Howard. It is the link between logic and computation that is usually attributed to Curry and Howard, although the idea is related to the operational interpretation of intuitionistic logic given in various formulations by L. E. J. Brouwer, Arend Heyting and Andrey Kolmogorov (see Brouwer–Heyting–Kolmogorov interpretation) and Stephen Kleene (see Realizability). The relationship has been extended to include category theory as the three-way Curry–Howard–Lambek correspondence.
Discussed on
- "Curry–Howard correspondence" | 2018-08-13 | 55 Upvotes 22 Comments
🔗 Curb Cut Effect
The curb cut effect is the phenomenon of disability-friendly features being used and appreciated by a larger group than the people they were designed for. For example, many hearing people use closed captioning. The phenomenon is named for curb cuts – miniature ramps comprising parts of sidewalk – which were first made for wheelchair access in particular places, but are now universal and no longer widely recognized as a disability-accessibility feature.
The curb cut effect is a subset of universal design, which is the purposeful design of an environment so that it is accessible to all people regardless of ability or disability. The curb cut effect differs slightly from universal design as the curb cut phenomenon is often unintentional rather than purposeful, but results in a similar outcome.
Discussed on
- "Curb Cut Effect" | 2024-02-23 | 55 Upvotes 1 Comments
🔗 Gemini Space
Gemini space denotes the whole of the public information that is published on the Internet by the Gemini community via the Gemini protocol. Thus, Gemini spans an alternative communication web, with hypertext documents that include hyperlinks to other resources that the user can easily access, similar to the secure version of the Hypertext Transfer Protocol (HTTPS), but with a focus on simplified information sharing, both in respect to creation and reading of Gemini content.
Discussed on
- "Gemini Space" | 2021-04-02 | 32 Upvotes 27 Comments
🔗 Kosher Cell Phone
A mobile phone, cellular phone, cell phone, cellphone, or hand phone, sometimes shortened to simply mobile, cell or just phone, is a portable telephone that can make and receive calls over a radio frequency link while the user is moving within a telephone service area. The radio frequency link establishes a connection to the switching systems of a mobile phone operator, which provides access to the public switched telephone network (PSTN). Modern mobile telephone services use a cellular network architecture, and, therefore, mobile telephones are called cellular telephones or cell phones, in North America. In addition to telephony, 2000s-era mobile phones support a variety of other services, such as text messaging, MMS, email, Internet access, short-range wireless communications (infrared, Bluetooth), business applications, video games, and digital photography. Mobile phones offering only those capabilities are known as feature phones; mobile phones which offer greatly advanced computing capabilities are referred to as smartphones.
The development of metal-oxide-semiconductor (MOS) large-scale integration (LSI) technology, information theory and cellular networking led to the development of affordable mobile communications. The first handheld mobile phone was demonstrated by John F. Mitchell and Martin Cooper of Motorola in 1973, using a handset weighing c. 2 kilograms (4.4 lbs). In 1979, Nippon Telegraph and Telephone (NTT) launched the world's first cellular network in Japan. In 1983, the DynaTAC 8000x was the first commercially available handheld mobile phone. From 1983 to 2014, worldwide mobile phone subscriptions grew to over seven billion—enough to provide one for every person on Earth. In the first quarter of 2016, the top smartphone developers worldwide were Samsung, Apple, and Huawei, and smartphone sales represented 78 percent of total mobile phone sales. For feature phones (slang: “dumbphones”) as of 2016, the largest were Samsung, Nokia, and Alcatel.
Discussed on
- "Kosher Cell Phone" | 2019-09-25 | 15 Upvotes 32 Comments