AI Chatbot Robot

AI Chatbot Robot — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Django (web framework)

    Django (web framework)

    Django ( JANG-goh; sometimes stylized as django) is a free and open-source, Python-based web framework that runs on a web server. It follows the model–template–views (MTV) architectural pattern. It is maintained by the Django Software Foundation (DSF), an independent organization established in the US as a 501(c)(3) non-profit. Django's primary goal is to ease the creation of complex, database-driven websites. The framework emphasizes reusability and "pluggability" of components, less code, low coupling, rapid development, and the principle of don't repeat yourself. Python is used throughout, even for settings, files, and data models. Django also provides an optional administrative create, read, update and delete interface that is generated dynamically through introspection and configured via admin models. Some well-known sites that use Django include Instagram, Mozilla, Disqus, Bitbucket, Nextdoor, and Clubhouse. == History == Django was created in the autumn of 2003, when the web programmers at the Lawrence Journal-World newspaper, Adrian Holovaty and Simon Willison, began using Python to build applications. Jacob Kaplan-Moss was hired early in Django's development shortly before Willison's internship ended. It was released publicly under a BSD license in July 2005. The framework was named after guitarist Django Reinhardt. Holovaty is a romani jazz guitar player inspired in part by Reinhardt's music. In June 2008, it was announced that a newly formed Django Software Foundation (DSF) would maintain Django in the future. == Features == === Components === Despite having its own nomenclature, such as naming the callable objects generating the HTTP responses "views", the core Django framework can be seen as an MVC architecture. It consists of an object-relational mapper (ORM) that mediates between data models (defined as Python classes) and a relational database ("Model"), a system for processing HTTP requests with a web templating system ("View"), and a regular-expression-based URL dispatcher ("Controller"). Also included in the core framework are: a lightweight and standalone web server for development and testing a form serialization and validation system that can translate between HTML forms and values suitable for storage in the database a template system that utilizes the concept of inheritance borrowed from object-oriented programming a caching framework that can use any of several cache methods support for middleware classes that can intervene at various stages of request processing and carry out custom functions an internal dispatcher system that allows components of an application to communicate events to each other via pre-defined signals an internationalization system, including translations of Django's own components into a variety of languages a serialization system that can produce and read XML and/or JSON representations of Django model instances a system for extending the capabilities of the template engine an interface to Python's built-in unit test framework === Bundled applications === The main Django distribution also bundles a number of applications in its "contrib" package, including: an extensible authentication system the dynamic administrative interface tools for generating RSS and Atom syndication feeds a "Sites" framework that allows one Django installation to run multiple websites, each with their own content and applications tools for generating Sitemaps built-in mitigation for cross-site request forgery, cross-site scripting, SQL injection, password cracking and other typical web attacks, most of them turned on by default a framework for creating geographic information system (GIS) applications === Extensibility === Django's configuration system allows third-party code to be plugged into a regular project, provided that it follows the reusable app conventions. More than 5000 packages are available to extend the framework's original behavior, providing solutions to issues the original tool didn't tackle: registration, search, API provision and consumption, CMS, etc. This extensibility is, however, mitigated by internal components' dependencies. While the Django philosophy implies loose coupling, the template filters and tags assume one engine implementation, and both the auth and admin bundled applications require the use of the internal ORM. None of these filters or bundled apps are mandatory to run a Django project, but reusable apps tend to depend on them, encouraging developers to keep using the official stack in order to benefit fully from the apps ecosystem. === Server arrangements === Django can be run on ASGI or WSGI-compliant web servers. Django officially supports five database backends: PostgreSQL, MySQL, MariaDB, SQLite, and Oracle. Microsoft SQL Server can be used with mssql-django. == Version history == The Django team will occasionally designate certain releases to be "long-term support" (LTS) releases. LTS releases will get security and data loss fixes applied for a guaranteed period of time, typically 3+ years, regardless of the pace of releases afterwards. == Community == === DjangoCon === There is a semiannual conference for Django developers and users, named "DjangoCon", that has been held since September 2008. DjangoCon is held annually in Europe, in May or June; while another is held in the United States in August or September, in various cities. ==== United States ==== The 2012 DjangoCon took place in Washington, D.C., from September 3 to 8. 2013 DjangoCon was held in Chicago at the Hyatt Regency Hotel and the post-conference Sprints were hosted at Digital Bootcamp, computer training center. The 2014 DjangoCon US returned to Portland, OR from August 30 to 6 September. The 2015 DjangoCon US was held in Austin, TX from September 6 to 11 at the AT&T Executive Center. The 2016 DjangoCon US was held in Philadelphia, PA at The Wharton School of the University of Pennsylvania from July 17 to 22. The 2017 DjangoCon US was held in Spokane, WA; in 2018 DjangoCon US was held in San Diego, CA. DjangoCon US 2019 was held again in San Diego, CA from September 22 to 27. DjangoCon 2021 took place virtually and in 2022, DjangoCon US returned to San Diego from October 16 to 21. DjangoCon US 2023 was held from October 16 to 20 at the Durham, NC convention center and DjangoCon US 2024 took place also in Durham in September 22 to 27. DjangoCon US 2025 was held from September 8 to 12 in Chicago, Illinois. ==== Europe ==== The 2025 edition of DjangoCon Europe took place in Dublin, Ireland from 23 to 27 April. In 2024, the conference was hosted in Vigo, Spain. Edinburgh, Scotland served as the venue for DjangoCon Europe in 2023. The 2022 conference was organized in Porto, Portugal. In 2021, DjangoCon Europe was held virtually due to the COVID-19 pandemic. The 2020 edition was also conducted as a fully virtual event. DjangoCon Europe 2019 was held in Copenhagen, Denmark. In 2018, the event took place in Heidelberg, Germany. The 2017 conference was convened in Florence, Italy. DjangoCon Europe 2012 was organized in Zurich, Switzerland. ==== Australia ==== Django mini-conferences are usually held every year as part of the Australian Python Conference 'PyCon AU'. Previously, these mini-conferences have been held in: Hobart, Australia, in July 2013, Brisbane, Australia, in August 2014 and 2015, Melbourne, Australia in August 2016 and 2017, and Sydney, Australia, in August 2018 and 2019. ==== Africa ==== The first DjangoCon Africa was held in Zanzibar, Tanzania, from 6 to 11 November 2023. The event hosted approximately 200 attendees from 22 countries, including 103 women. The conference featured 26 talks on topics such as software development, education, careers, accessibility, and agriculture, often highlighting perspectives from across the African continent. Future editions of the conference are planned, with details available on the official website === Community groups & programs === Django has spawned user groups and meetups around the world, a notable group is the Django Girls organization, which began in Poland but now has had events in 91 countries. Another initiative is Djangonaut Space, a mentorship program aimed at supporting new contributors to the Django ecosystem. The program pairs experienced mentors with developers to guide them through making meaningful contributions to Django and its community. It emphasizes long-term engagement, inclusion, and collaborative open-source development. == Ports to other languages == Programmers have ported Django's template engine design from Python to other languages, providing decent cross-platform support. Some of these options are more direct ports; others, though inspired by Django and retaining its concepts, take the liberty to deviate from Django's design: Liquid for Ruby Template::Swig for Perl Twig for PHP and JavaScript Jinja for Python ErlyDTL for Erlang == CMSs based on Django Framework == Django as a framework is capable of building a complete CMS

    Read more →
  • Death and the Internet

    Death and the Internet

    A recent extension to the cultural relationship with death is the increasing number of people who die having created a large amount of digital content, such as social media profiles, that will remain after death. This may result in concern and confusion, because of automated features of dormant accounts (e.g. birthday reminders), uncertainty of the deceased's preferences that profiles be deleted or left as a memorial, and whether information that may violate the deceased's privacy (such as email or browser history) should be made accessible to family. Issues with how this information is sensitively dealt with are further complicated as it may belong to the service provider (not the deceased) and many do not have clear policies on what happens to the accounts of deceased users. While some sites, including Facebook and X (formerly Twitter), have policies related to death, others remain dormant until if applicable, deleted due to inactivity or transferred to family or friends. The FADA (Fiduciary Access to Digital Assets Act) was set in place to make it possible to transfer digital possessions legally. More broadly, the heavy increase in social media use is affecting cultural practices surrounding death. "Virtual funerals" and other forms of previously physical memorabilia are being introduced into the digital world, complete with public details of a person's life and death. == E-mail == Gmail and Hotmail allow the email accounts of the deceased to be accessed provided certain requirements are met. Yahoo! Mail will not provide access, citing the No Right of Survivorship and Non-Transferability clause in the Yahoo! terms of service. In 2005, Yahoo! was ordered by the Probate Court of Oakland County, Michigan, to release emails of deceased US Marine Justin Ellsworth to his father, John Ellsworth. == By website == === Facebook === ==== Policies ==== In its early days, Facebook used to delete profiles of dead people, but does not anymore. In October 2009, the company introduced "memorial pages" in response to multiple user requests related to the 2007 Virginia Tech shooting. After receiving a proof of death via a special form, the profile would be converted into a tribute page with minimal personal details, where friends and family members could share their grief. In February 2015, Facebook allowed users to appoint a friend or family member as a "legacy contact" with the rights to manage their page after death. It also gave Facebook users an option to have their account permanently deleted when they die. As of January 2019, all 3 options were active. ==== Controversies ==== In 2013, BuzzFeed criticized Facebook for the lack of control over memorialization that resulted in a "Facebook death" prank aimed at locking users out of their own accounts. In 2017, Reuters reported that a German court rejected a mother's demand to access her deceased daughter's memorialized account stating that the right to private telecommunications outweighed the right to inheritance. In July 2018, Dubai's DIFC Courts ruling clarified that Facebook, Twitter and other social media accounts should be bequeathed in legally binding will. Social media networks have also been criticized for not responding to relatives' requests to alter information on memorialized accounts. Another criticism is that Facebook users often are unaware that their content is ultimately owned not by them, but by Facebook. === Dropbox === ==== Policies ==== Dropbox determines inactive accounts by looking at sign-ins, file shares, and file activity over the previous 12 months. Once an account is determined inactive, Dropbox deletes the files on the account. To request access to the account of a deceased person, heirs are required to send appropriate documents by physical mail. === Google === ==== Policies ==== In April 2013, Google announced the creation of the 'Inactive Account Manager', which allows users of Google services to set up a process in which ownership and control of inactive accounts is transferred to a delegated user. Google also allows users to submit a range of requests regarding accounts belonging to deceased users. Google works with immediate family members and representatives to close online accounts in some cases once a user is known to be deceased, and in certain circumstances may also provide content from a deceased user's account. === X (formerly Twitter) === ==== Policies ==== Until 2010, Twitter (launched in July 2006) did not have a policy on handling deceased user accounts, and simply deleted timelines of deceased users. In August 2010, Twitter allowed memorialization of accounts upon request from family members, and also provided them with an option of either deleting the account or obtaining a permanent backup of the deceased user's public tweets. In 2014, Twitter updated its policy to include an option to delete deceased user photographs. This policy was implemented after multiple Twitter trolls sent Zelda Williams, daughter of Robin Williams, photoshopped images of her father. As of January 2019, the only option that Twitter offered for the accounts of dead people was account deactivation. Previously published content is not removed. To deactivate an account Twitter requires an immediate family member to present a copy of their ID and a death certificate of the deceased. Twitter specified that it does not provide account access to anyone, but does allow people having account login information to continue posting. A prominent example is Roger Ebert's account maintained by his wife Chaz. ==== Controversies ==== In 2012, The Next Web columnist Martin Bryant noticed that since Twitter, unlike Facebook, did not have a "one account per real person" emphasis, memorializing accounts presented a difficulty to the service. He also criticized the service for the lack of control over hacking of such accounts and disapproved the practice of passing dead people's usernames to new owners after a certain period of inactivity. In 2013, Variety ran a feature about Cory Monteith's Twitter account that had 1.5 million followers at the moment on his death and gained almost 1 million new followers afterwards. Monteith's fans also launched #DontDeleteCorysTwitter campaign. As of February 2019, the celebrity's account had 1.63 million followers. Various media reported awkward incidents related to automatic posting and account hacking. === iTunes === ==== Policies ==== iCloud and iTunes accounts are "non transferable" since the content is not owned — users only have a licence to access it. === Wikipedia === Users who have made at least several hundred edits or are otherwise known for substantial contributions to Wikipedia can be noted at a central memorial page. Wikipedia user pages are ordinarily fully edit-protected after the user has died, to prevent vandalism. === YouTube === YouTube grants access to accounts of deceased persons under certain conditions. It is one of the data options that one can select to give access to a trusted contact with Google's Inactive Account Manager. === Instagram === ==== Policies ==== As of the COVID-19 pandemic, Instagram has notified its users of a delay in time of reviewing reports of deceased users due to the limited staff the pandemic has caused. Users that submit a report on a deceased user on Instagram can either memorialize the account or remove it from Instagram's platform. Through memorializing the account, Instagram secures and protects a platform of a deceased user, but per their policy, they do not supply any of the login credentials to the account. For both memorializing or removing a deceased users account, a verified user needs to submit a tangible document that shows proof of death of the user. However, to fully remove an account, the user must be a close or direct family member to the deceased person, and show proof of credibility as well. === Microsoft === ==== Policies ==== Per Microsoft's policies, they do not supply any of the login credentials to a deceased user's Microsoft account. A user does not have to contact or notify Microsoft of the deceased user, as the related user is able to close the account themselves. At default, Microsoft removes accounts after 2 years of inactivity. If the user does not have access to the deceased user's account, Microsoft recommends that the user deletes all bank accounts linked to that of the deceased to ensure no subscriptions are still going through. If the user wants to request to gain access to the deceased user's account, a court order or a subpoena has to be provided to Microsoft, but does not guarantee access to the deceased user's account. For users that live in Germany, more documentation is needed to gain access of a deceased user's account, including the deceased user's death certificate, a form of ID, and a documentation of consent from the deceased. The requesting user needs to provide a form of ID as well. == Digital inheritance == Digital inheritance is the process of handing over

    Read more →
  • Greedy embedding

    Greedy embedding

    In distributed computing and geometric graph theory, greedy embedding is a process of assigning coordinates to the nodes of a telecommunications network in order to allow greedy geographic routing to be used to route messages within the network. Although greedy embedding has been proposed for use in wireless sensor networks, in which the nodes already have positions in physical space, these existing positions may differ from the positions given to them by greedy embedding, which may in some cases be points in a virtual space of a higher dimension, or in a non-Euclidean geometry. In this sense, greedy embedding may be viewed as a form of graph drawing, in which an abstract graph (the communications network) is embedded into a geometric space. The idea of performing geographic routing using coordinates in a virtual space, instead of using physical coordinates, is due to Rao et al. Subsequent developments have shown that every network has a greedy embedding with succinct vertex coordinates in the hyperbolic plane, that certain graphs including the polyhedral graphs have greedy embeddings in the Euclidean plane, and that unit disk graphs have greedy embeddings in Euclidean spaces of moderate dimensions with low stretch factors. == Definitions == In greedy routing, a message from a source node s to a destination node t travels to its destination by a sequence of steps through intermediate nodes, each of which passes the message on to a neighboring node that is closer to t. If the message reaches an intermediate node x that does not have a neighbor closer to t, then it cannot make progress and the greedy routing process fails. A greedy embedding is an embedding of the given graph with the property that a failure of this type is impossible. Thus, it can be characterized as an embedding of the graph with the property that for every two nodes x and t, there exists a neighbor y of x such that d(x,t) > d(y,t), where d denotes the distance in the embedded space. == Graphs with no greedy embedding == Not every graph has a greedy embedding into the Euclidean plane; a simple counterexample is given by the star K1,6, a tree with one internal node and six leaves. Whenever this graph is embedded into the plane, some two of its leaves must form an angle of 60 degrees or less, from which it follows that at least one of these two leaves does not have a neighbor that is closer to the other leaf. In Euclidean spaces of higher dimensions, more graphs may have greedy embeddings; for instance, K1,6 has a greedy embedding into three-dimensional Euclidean space, in which the internal node of the star is at the origin and the leaves are a unit distance away along each coordinate axis. However, for every Euclidean space of fixed dimension, there are graphs that cannot be embedded greedily: whenever the number n is greater than the kissing number of the space, the graph K1,n has no greedy embedding. == Hyperbolic and succinct embeddings == Unlike the case for the Euclidean plane, every network has a greedy embedding into the hyperbolic plane. The original proof of this result, by Robert Kleinberg, required the node positions to be specified with high precision, but subsequently it was shown that, by using a heavy path decomposition of a spanning tree of the network, it is possible to represent each node succinctly, using only a logarithmic number of bits per point. In contrast, there exist graphs that have greedy embeddings in the Euclidean plane, but for which any such embedding requires a polynomial number of bits for the Cartesian coordinates of each point. == Special classes of graphs == === Trees === The class of trees that admit greedy embeddings into the Euclidean plane has been completely characterized, and a greedy embedding of a tree can be found in linear time when it exists. For more general graphs, some greedy embedding algorithms such as the one by Kleinberg start by finding a spanning tree of the given graph, and then construct a greedy embedding of the spanning tree. The result is necessarily also a greedy embedding of the whole graph. However, there exist graphs that have a greedy embedding in the Euclidean plane but for which no spanning tree has a greedy embedding. === Planar graphs === Papadimitriou & Ratajczak (2005) conjectured that every polyhedral graph (a 3-vertex-connected planar graph, or equivalently by Steinitz's theorem the graph of a convex polyhedron) has a greedy embedding into the Euclidean plane. By exploiting the properties of cactus graphs, Leighton & Moitra (2010) proved the conjecture; the greedy embeddings of these graphs can be defined succinctly, with logarithmically many bits per coordinate. However, the greedy embeddings constructed according to this proof are not necessarily planar embeddings, as they may include crossings between pairs of edges. For maximal planar graphs, in which every face is a triangle, a greedy planar embedding can be found by applying the Knaster–Kuratowski–Mazurkiewicz lemma to a weighted version of a straight-line embedding algorithm of Schnyder. The strong Papadimitriou–Ratajczak conjecture, that every polyhedral graph has a planar greedy embedding in which all faces are convex, remains unproven. === Unit disk graphs === The wireless sensor networks that are the target of greedy embedding algorithms are frequently modeled as unit disk graphs, graphs in which each node is represented as a unit disk and each edge corresponds to a pair of disks with nonempty intersection. For this special class of graphs, it is possible to find succinct greedy embeddings into a Euclidean space of polylogarithmic dimension, with the additional property that distances in the graph are accurately approximated by distances in the embedding, so that the paths followed by greedy routing are short.

    Read more →
  • X2 transceiver

    X2 transceiver

    The X2 transceiver format is a 10 gigabit per second modular fiber optic interface intended for use in routers, switches and optical transport platforms. It is an early generation 10 gigabit interface related to the similar XENPAK and XPAK formats. X2 may be used with 10 Gigabit Ethernet or OC-192/STM-64 speed SDH/SONET equipment. X2 modules are smaller and consume less power than first-generation XENPAK modules, but larger and consume more energy than the newer XFP transceiver standard and SFP+ standards. As of 2016 this format is relatively uncommon and has been replaced by 10 Gbit/s SFP+ in most new equipment.

    Read more →
  • Eigenface

    Eigenface

    An eigenface ( EYE-gən-) is the name given to a set of eigenvectors when used in the computer vision problem of human face recognition. The approach of using eigenfaces for recognition was developed by Sirovich and Kirby and used by Matthew Turk and Alex Pentland in face classification. The eigenvectors are derived from the covariance matrix of the probability distribution over the high-dimensional vector space of face images. The eigenfaces themselves form a basis set of all images used to construct the covariance matrix. This produces dimension reduction by allowing the smaller set of basis images to represent the original training images. Classification can be achieved by comparing how faces are represented by the basis set. == History == The eigenface approach began with a search for a low-dimensional representation of face images. Sirovich and Kirby showed that principal component analysis could be used on a collection of face images to form a set of basis features. These basis images, known as eigenpictures, could be linearly combined to reconstruct images in the original training set. If the training set consists of M images, principal component analysis could form a basis set of N images, where N < M. The reconstruction error is reduced by increasing the number of eigenpictures; however, the number needed is always chosen less than M. For example, if you need to generate a number of N eigenfaces for a training set of M face images, you can say that each face image can be made up of "proportions" of all the K "features" or eigenfaces: Face image1 = (23% of E1) + (2% of E2) + (51% of E3) + ... + (1% En). In 1991 M. Turk and A. Pentland expanded these results and presented the eigenface method of face recognition. In addition to designing a system for automated face recognition using eigenfaces, they showed a way of calculating the eigenvectors of a covariance matrix such that computers of the time could perform eigen-decomposition on a large number of face images. Face images usually occupy a high-dimensional space and conventional principal component analysis was intractable on such data sets. Turk and Pentland's paper demonstrated ways to extract the eigenvectors based on matrices sized by the number of images rather than the number of pixels. Once established, the eigenface method was expanded to include methods of preprocessing to improve accuracy. Multiple manifold approaches were also used to build sets of eigenfaces for different subjects and different features, such as the eyes. == Generation == A set of eigenfaces can be generated by performing a mathematical process called principal component analysis (PCA) on a large set of images depicting different human faces. Informally, eigenfaces can be considered a set of "standardized face ingredients", derived from statistical analysis of many pictures of faces. Any human face can be considered to be a combination of these standard faces. For example, one's face might be composed of the average face plus 10% from eigenface 1, 55% from eigenface 2, and even −3% from eigenface 3. Remarkably, it does not take many eigenfaces combined together to achieve a fair approximation of most faces. Also, because a person's face is not recorded by a digital photograph, but instead as just a list of values (one value for each eigenface in the database used), much less space is taken for each person's face. The eigenfaces that are created will appear as light and dark areas that are arranged in a specific pattern. This pattern is how different features of a face are singled out to be evaluated and scored. There will be a pattern to evaluate symmetry, whether there is any style of facial hair, where the hairline is, or an evaluation of the size of the nose or mouth. Other eigenfaces have patterns that are less simple to identify, and the image of the eigenface may look very little like a face. The technique used in creating eigenfaces and using them for recognition is also used outside of face recognition: handwriting recognition, lip reading, voice recognition, sign language/hand gestures interpretation and medical imaging analysis. Therefore, some do not use the term eigenface, but prefer to use 'eigenimage'. === Practical implementation === To create a set of eigenfaces, one must: Prepare a training set of face images. The pictures constituting the training set should have been taken under the same lighting conditions, and must be normalized to have the eyes and mouths aligned across all images. They must also be all resampled to a common pixel resolution (r × c). Each image is treated as one vector, simply by concatenating the rows of pixels in the original image, resulting in a single column with r × c elements. For this implementation, it is assumed that all images of the training set are stored in a single matrix T, where each column of the matrix is an image. Subtract the mean. The average image a has to be calculated and then subtracted from each original image in T. Calculate the eigenvectors and eigenvalues of the covariance matrix S. Each eigenvector has the same dimensionality (number of components) as the original images, and thus can itself be seen as an image. The eigenvectors of this covariance matrix are therefore called eigenfaces. They are the directions in which the images differ from the mean image. Usually this will be a computationally expensive step (if at all possible), but the practical applicability of eigenfaces stems from the possibility to compute the eigenvectors of S efficiently, without ever computing S explicitly, as detailed below. Choose the principal components. Sort the eigenvalues in descending order and arrange eigenvectors accordingly. The number of principal components k is determined arbitrarily by setting a threshold ε on the total variance. Total variance ⁠ v = ( λ 1 + λ 2 + . . . + λ n ) {\displaystyle v=(\lambda _{1}+\lambda _{2}+...+\lambda _{n})} ⁠, n = number of components, and λ {\displaystyle \lambda } represents component eigenvalue. k is the smallest number that satisfies ( λ 1 + λ 2 + . . . + λ k ) v > ϵ {\displaystyle {\frac {(\lambda _{1}+\lambda _{2}+...+\lambda _{k})}{v}}>\epsilon } These eigenfaces can now be used to represent both existing and new faces: we can project a new (mean-subtracted) image on the eigenfaces and thereby record how that new face differs from the mean face. The eigenvalues associated with each eigenface represent how much the images in the training set vary from the mean image in that direction. Information is lost by projecting the image on a subset of the eigenvectors, but losses are minimized by keeping those eigenfaces with the largest eigenvalues. For instance, working with a 100 × 100 image will produce 10,000 eigenvectors. In practical applications, most faces can typically be identified using a projection on between 100 and 150 eigenfaces, so that most of the 10,000 eigenvectors can be discarded. === Matlab example code === Here is an example of calculating eigenfaces with Extended Yale Face Database B. To evade computational and storage bottleneck, the face images are sampled down by a factor 4×4=16. Note that although the covariance matrix S generates many eigenfaces, only a fraction of those are needed to represent the majority of the faces. For example, to represent 95% of the total variation of all face images, only the first 43 eigenfaces are needed. To calculate this result, implement the following code: === Computing the eigenvectors === Performing PCA directly on the covariance matrix of the images is often computationally infeasible. If small images are used, say 100 × 100 pixels, each image is a point in a 10,000-dimensional space and the covariance matrix S is a matrix of 10,000 × 10,000 = 108 elements. However the rank of the covariance matrix is limited by the number of training examples: if there are N training examples, there will be at most N − 1 eigenvectors with non-zero eigenvalues. If the number of training examples is smaller than the dimensionality of the images, the principal components can be computed more easily as follows. Let T be the matrix of preprocessed training examples, where each column contains one mean-subtracted image. The covariance matrix can then be computed as S = TTT and the eigenvector decomposition of S is given by S v i = T T T v i = λ i v i {\displaystyle \mathbf {Sv} _{i}=\mathbf {T} \mathbf {T} ^{T}\mathbf {v} _{i}=\lambda _{i}\mathbf {v} _{i}} However TTT is a large matrix, and if instead we take the eigenvalue decomposition of T T T u i = λ i u i {\displaystyle \mathbf {T} ^{T}\mathbf {T} \mathbf {u} _{i}=\lambda _{i}\mathbf {u} _{i}} then we notice that by pre-multiplying both sides of the equation with T, we obtain T T T T u i = λ i T u i {\displaystyle \mathbf {T} \mathbf {T} ^{T}\mathbf {T} \mathbf {u} _{i}=\lambda _{i}\mathbf {T} \mathbf {u} _{i}} Meaning that, if ui is an eigenvector of TTT, then vi = Tui is an eigenvector of S. If we have

    Read more →
  • Bluelight (web forum)

    Bluelight (web forum)

    Bluelight is a web-forum, research portal, online community, and non-profit organisation dedicated to harm reduction in drug use. Its userbase includes current and former substance users, academic researchers, drug policy activists, and mental health advocates. It is believed to be the largest online international drug discussion website in the world. As of November 2025, the website claims over 475,900 registered members, the Discord community claims over 11,900 members, and additional members utilise other platforms such as Telegram. Bluelight has been utilised by academic researchers as a primary source of data in numerous publications. Researchers also utilise the site to advertise research studies, recruit study participants, and better understand the world of substance use. Research groups and organisations that have partnered with Bluelight to recruit study participants include Imperial College London, Johns Hopkins University, Health Canada, Karlstad University, Curtin University, Macquarie University, Columbia University, University of Pennsylvania, University of Michigan, Toronto Metropolitan University (then known as Ryerson University), and MAPS. Researchers have found that the most common reasons for substance users to visit Bluelight.org and similar online communities are to learn "how to use drugs safely" and "how to help others use drugs safely." Bluelight neither condemns or condones drug use, instead advocating for the principle of responsible drug use; educating and allowing individuals to make informed decisions regarding their drug use, providing information on local drug misuse services, and providing them with other drug harm reduction resources and public safety notices. == History == Bluelight.org was originally formed in 1997 as a message board on bluelight.net called the MDMA Clearinghouse. The board was created as a side project by the owner of West Palm Beach design company Bluelight Designs. 200–300 users joined the site between 1998 and 1999, but the site's servers were heavily limited and could only store a few threads at a time; this led to the creation of 'The New Bluelight' forum in May 1999 and the registration of the bluelight.nu domain in June 1999. The site began to explode in popularity in the early 2000s with the rise of MDMA in the club scene, amassing nearly 7,000 members by the year 2000 and 59,000 by the start of 2006. The site switched to the bluelight.ru domain in October 2005, and switched again to bluelight.org in January 2014. In early 2024, Bluelight was re-structured and the forum became a subsidiary of the newly formed Australian non-profit organisation & registered charity Bluelight Communities Ltd. == Partnerships == In the early 2000s, Bluelight worked with reagent test supplier EZ-Test to promote the sale of drug checking kits. In 2007, Bluelight partnered with the Multidisciplinary Association for Psychedelic Studies (MAPS), a non-profit organisation working to raise awareness and understanding of psychedelic drugs through education, clinical research, and advocacy. MAPS utilised Bluelight to recruit participants for its first MDMA-assisted psychotherapy trial for PTSD. In 2013, the official MAPS forums were migrated to Bluelight. Bluelight's other partners include Erowid, a non-profit organisation dedicated to education surrounding psychoactive drugs; TripSit, a harm reduction education website; Pill Reports, a web-based database for drug checking results that was initially formed as an offshoot of the site; and the Global Drug Survey, an independent research organisation focused on collecting data about substance use. == Notable users == Alan Woods – funded the site's maintenance costs from 1999 until his death in 2008 Hamilton Morris John McAfee – created an infamous series of troll posts about the stimulant MDPV

    Read more →
  • Filter (social media)

    Filter (social media)

    Filters are digital image effects often used on social media. They initially simulated the effects of camera filters, and they have since developed with facial recognition technology and computer-generated augmented reality. Social media filters—especially beauty filters—are often used to alter the appearance of selfies taken on smartphones or other similar devices. While filters are commonly associated with beauty enhancement and feature alterations, there is a wide range of filters that have different functions. From adjusting photo tones to using face animations and interactive elements, users have access to a range of tools. These filters allow users to enhance photos and allow room for creative expression and fun interactions with digital content. == History == Beauty filters originate from Purikura ("print club"), a type of Japanese photographic arcade game machine conceived in 1994 by Sasaki Miho, a female employee at Atlus, and released in 1995 by Atlus and Sega primarily for female visitors at Japanese arcades. They allowed the manipulation of digital selfie photos with kawaii beauty filters similar to later Snapchat filters. Purikura filters included beautifying the image, cat whiskers, bunny ears, writing text, scribbling graffiti, selecting backdrops, borders, insertable decorations, icons, hair extensions, twinkling diamond tiaras, tenderized light effects, and predesigned decorative margins. To capitalize on the Purikura phenomenon in Japan during the late 1990s, Japanese mobile phones began including a front-facing camera, starting with the Kyocera Visual Phone VP‑210 in 1999. The Sanyo SCP-5300 released in 2002 was the first camera phone with filter effects, such as illumination, white‑balance control, sepia, black and white, and negative colors. Purikura-like beauty filters later appeared in smartphone apps such as Instagram and Snapchat in the 2010s. In 2010, Apple introduced the iPhone 4—the first iPhone model with a front-facing camera. It gave rise to a dramatic increase in selfies, which could be touched up with more flattering lighting effects with applications such as Instagram. The American photographer Cole Rise was involved in the creation of the original filters for Instagram around 2010, designing several of them himself, including Sierra, Mayfair, Sutro, Amaro, and Willow. However, the technology for virtual lens filters was invented and patented by Patrick Levy-Rosenthal in 2007. The patent received 100 citations, including Facebook, Nvidia, Microsoft, Samsung, and Snap. In September, 2011, the Instagram 2.0 update for the application introduced "live filters," which allowed the user to preview the effect of the filter while shooting with the application's camera. #NoFilter, a hashtag label to describe an image that had not been filtered, became popular around 2013. An update in 2014 allowed users to adjust the intensity of the filters as well as fine-tune other aspects of the image, features that had been available for years on applications such as VSCO and Litely. In 2014, Snapchat started releasing sponsored filters to monetize the participatory use of the application. In September 2015, Snapchat acquired Looksery and released a feature called "lenses," animated filters using facial recognition technology. Some of the early lenses available on Snapchat at the time were Heart Eyes, Terminator, Puke Rainbows, Old, Scary, Rage Face, Heart Avalanche. The Coachella filter released April 2016 was a popular early augmented reality filter. In April 2017, Facebook released the Camera Effects Platform, which is the first augmented reality platform that allows developers to create their own filters and effects on Facebook's Camera. In December 2017, Snapchat also launched their Lens Studio augmented reality developer tool that allows users and advertisers to do the same on the Snapchat application. In April 2022,TikTok joined the two, and launched their own augmented reality developer platform called Effect house. In February 2023, Effect House gave opened up the access to generative AI tools that allowed creators to change facial features in real time. In November 2023, TikTok released a feature where users no longer needed Effect House to create their own filters, as they are now able to create their own effects on the TikTok application. In August 2024, Meta announced that it would be removing third-party filter effects from its family of apps by January 14, 2025. The AR development software Meta Spark AR will also be retired at the same time; it was at one point the "world's largest mobile AR platform". Brand and creator effects represent the vast majority of filters available on Meta platforms, with over 2 million third-party filters available as of 2021. == Beauty filter == A beauty filter is a filter applied to still photographs, or to video in real time, to enhance the physical attractiveness of the subject. Typical effects of such filters include smoothing skin texture and modifying the proportions of facial features, for example enlarging the eyes or narrowing the nose. Filters may be included as a built-in feature of social media apps such as Instagram or Snapchat, or implemented through standalone applications such as Facetune. In 2020, the "Perfect Skin" filter for Snapchat and Instagram which was created by Brazilian augmented reality developer Brenno Faustino gained more than 36 million impressions in the first 24 hours of its release. In 2021, TikTok users pointed out how the default front-facing camera on the platform automatically applied the retouch and other feature-altering filters. Users noted that these filters slimmed down faces, smoothed skin, whitened teeth, and altered facial features such as nose and eye size, without the option to disable this feature through settings. In March 2023, the "Bold Glamour" filter was released on TikTok and instantly went viral with over 18 million videos created within its first week. This filter subtly enhances the user's facial features seamlessly, giving the illusion of fuller eyebrows, taller cheekbones, enhanced eye make up, a smaller nose, plumper lips, and clearer skin, giving off a natural yet distinct effect. As of May 2024, the filter has been used in over 220 million videos and has become a pivotal moment for beauty filters on digital platforms. Critics have raised concerns that the widespread use of such filters on social media may lead to negative body image, particularly among girls. Though Meta's intention of removing third-party filters will likely see all beauty filters removed, academics feel that the damage of beautifying filters is already done. === Background === The manipulation of photos to enhance attractiveness has long been possible using software such as Adobe Photoshop and, before that, analogue techniques such as airbrushing. However, such tools required considerable technical and artistic skill, and so their use was mostly limited to professional contexts, such as magazines or advertisements. By contrast, filters work in an automated fashion through the use of complex algorithms, requiring little or no input from the user. This ease of use, in combination with the increase in processing power of smartphones, and the rise of social media and selfie culture, have led to photographic manipulation occurring on a much wider scale than ever before. One of the earliest examples of a content-aware digital photographic filter is red-eye reduction. === Effects === Typical changes applied by beauty filters include: Smoothing skin texture; minimizing fine lines and blemishes Erasing under-eye bags Erasing naso-labial lines ("laugh lines") Application of virtual makeup, such as lipstick or eyeshadow Slimming the face; erasing double chins Enlarging the eyes Whitening teeth Narrowing the nose Increasing fullness of the lips Beauty filters most frequently target the face, though in some cases they may affect other body parts. For example, the app "Retouch Me" was reported to have a feature which allows users to superimpose visible abdominal muscles (a "six pack") onto photos featuring the subject's bare stomach. === Reception and psychological effects === Some commentators have expressed concern that beauty filters may create unrealistic beauty standards, particularly among girls, and contribute to rates of body dysmorphic disorder. A correlation has been established between negative body image and the use of beautifying filters, though the direction of causation is unknown. The inability to discern whether a particular image has been filtered is thought to exacerbate their negative psychological effects. Policymakers have advocated for social networks to disclose the use of filters; TikTok, Instagram, and Snapchat all label filtered photos and videos with the name of the filter applied. It has also been noted that beauty filters on social media tend to highlight Eurocentric features, like lighter eyes, a smaller nose, and flushed ch

    Read more →
  • Nitro Zeus

    Nitro Zeus

    Nitro Zeus is the project name for a well funded comprehensive cyber attack plan created as a mitigation strategy after the Stuxnet malware campaign and its aftermath. Unlike Stuxnet, that was loaded onto a system after the design phase to affect its proper operation, Nitro Zeus's objectives are built into a system during the design phase unbeknownst to the system users. This built-in feature allows a more assured and effective cyber attack against the system's users. The information about its existence was raised during research and interviews carried out by Alex Gibney for his Zero Days documentary film. The proposed long term widespread infiltration of major Iranian systems would disrupt and degrade communications, power grid, and other vital systems as desired by the cyber attackers. This was to be achieved by electronic implants in Iranian computer networks. The project was seen as one pathway in alternatives to full-scale war.

    Read more →
  • Automated parking system

    Automated parking system

    An automated (car) parking system (APS) is a mechanical system designed to minimize the area and/or volume required for parking cars. Like a multi-story parking garage, an APS provides parking for cars on multiple levels stacked vertically to maximize the number of parking spaces while minimizing land usage. The APS, however, utilizes a mechanical system to transport cars to and from parking spaces (rather than the driver) in order to eliminate much of the space wasted in a multi-story parking garage. While a multi-story parking garage is similar to multiple parking lots stacked vertically, an APS is more similar to an automated storage and retrieval system for cars. Parking systems are generally powered by electric motors or hydraulic pumps that move vehicles into a storage position.The paternoster (shown animated at the right) is an example of one of the earliest and most common types of APS. APS are also generically known by a variety of other names, including:automated parking facility (APF), automated vehicle storage and retrieval system (AVSRS), car parking system, mechanical parking, and robotic parking garage. == History == The concept for the automated parking system was and is driven by two factors: a need for parking spaces and a scarcity of available land. The earliest use of an APS was in Paris, France in 1905 at the Garage Rue de Ponthieu. The APS consisted of a groundbreaking multi-story concrete structure with an internal car elevator to transport cars to upper levels where attendants parked the cars. In the 1920s, a Ferris wheel-like APS (for cars rather than people) called a paternoster system became popular as it could park eight cars in the ground space normally used for parking two cars. Mechanically simple with a small footprint, the paternoster was easy to use in many places, including inside buildings. At the same time, Kent Automatic Garages was installing APS with capacities exceeding 1,000 cars. The “ferris-wheel,” or paternoster system — was created by the Westinghouse Corporation in 1923 and subsequently built in 1932 on Chicago's Monroe Street. The Nash Motor Company created the first glass-enclosed version of this system for the Chicago Century of Progress Exhibition in 1933 The first driverless parking garage opened in 1951 in Washington, D.C., but was replaced with office space due to increasing land values. APS saw a spurt of interest in the U.S. in the late 1940s and 1950s with the Bowser, Pigeon Hole and Roto Park systems. In 1957, 74 Bowser, Pigeon Hole systems were installed, and some of these systems remain in operation. However, interest in APS in the U.S. waned due to frequent mechanical problems and long waiting times for patrons to retrieve their cars. In the United Kingdom, the Auto Stacker opened in 1961 in Woolwich, south east London, but proved equally difficult to operate. Interest in APS in the U.S. was renewed in the 1990s, and there were 25 major current and planned APS projects (representing nearly 6,000 parking spaces) in 2012. The first American robotic parking garage opened in 2002 in Hoboken, New Jersey. While interest in the APS in the U.S. languished until the 1990s, Europe, Asia and Central America had been installing more technically advanced APS since the 1970s. In the early 1990s, nearly 40,000 parking spaces were being built annually using the paternoster APS in Japan. In 2012, there are an estimated 1.6 million APS parking spaces in Japan. The ever-increasing scarcity of available urban land (urbanization) and increase of the number of cars in use (motorization) have combined with sustainability and other quality-of-life issues to renew interest in APS as alternatives to multi-storey car parks, on-street parking, and parking lots. == Largest systems == The largest Automated Parking Facility in the world is in Al Jahra, Kuwait, and provides 2,314 parking spaces. The world's fastest Automated Parking System is in Wolfsburg, Germany, with a retrieval time of 1 minute and 44 seconds. The largest APS in Europe is at Dokk1 in Aarhus, Denmark, and provides 1,000 parking spaces via 20 car lifts. == Space saving == All APS take advantage of a common concept to decrease the area of parking spaces - removing the driver and passengers from the car before it is parked. With either fully automated or semi-automated APS, the car is driven up to an entry point to the APS and the driver and passengers exit the car. The car is then moved automatically or semi-automatically (with some attendant action required) to its parking space. The space-saving provided by the APS, compared to the multi-story parking garage, is derived primarily from a significant reduction in space not directly related to the parking of the car: Parking space width and depth (and distances between parking spaces) are dramatically reduced since no allowance need be made for driving the car into the parking space or for the opening of car doors (for drivers and passengers) No driving lanes or ramps are needed to drive the car to/from the entrance/exit to a parking space Ceiling height is minimized since there is no pedestrian traffic (drivers and passengers) in the parking area, and No walkways, stairways or elevators are needed to accommodate pedestrians in the parking area. With the elimination of ramps, driving lanes, pedestrians and the reduction in ceiling heights, the APS requires substantially less structural material than the multi-story parking garage. Many APS utilize a steel framework (some use thin concrete slabs) rather than the monolithic concrete design of the multi-story parking garage. These factors contribute to an overall volume reduction and further space savings for the APS. == Other considerations == In addition to the space saving, many APS designs provide a number of secondary benefits: The parked cars and their contents are more secure since there is no public access to parked cars Minor parking lot damage such as scrapes and dents are eliminated Drivers and passengers are safer not having to walk through parking lots or garages Driving around in search of a parking space is eliminated, thereby reducing engine emissions and wasted time Only minimal ventilation and lighting systems are needed Handicap access is improved The volume and visual impact of the parking structure is minimized Shorter construction time === Problems === There have been a number of problems with robotic parking systems, particularly in the United States. The systems work well in balanced throughput situations like shopping malls and train stations, but they are unsuited to high peak volume applications like rush hour usage or stadiums and they suffer from technical problems. Further, parkers not familiar with the system may cause problems, for example by failing to push the button to alert a fully automated system to the presence of a car to be parked. In London around 40 vehicles were trapped for two years in CBRE's system. == Fully automated vs semi-automated == Fully automated parking systems operate much like robotic valet parking. The driver drives the car into an APS entry (transfer) area. The driver and all passengers exit the car. The driver uses an automated terminal nearby for payment and receipt of a ticket. When driver and passengers have left the entry area, the mechanical system lifts the car and transports it to a pre-determined parking space in the system. More sophisticated fully automated APS will obtain the dimensions of cars on entry in order to place them in the smallest available parking space. The driver retrieves a car by inserting a ticket or code into an automated terminal. The APS lifts the car from its parking space and delivers it to an exit area. Most often, the retrieved car has been oriented to eliminate the need for the driver to back out. Fully automated APS theoretically eliminate the need for parking attendants. Semi-automated APS also use a mechanical system of some type to move a car to its parking space, however putting the car into and/or the operation of the system requires some action by an attendant or the driver. The choice between fully and semi-automated APS is often a matter of space and cost, however large capacity (> 100 cars) tend to be fully automated. == Applications == By virtue of their relatively smaller volume and mechanized parking systems, APS are often used in locations where a multi-story parking garage would be too large, too costly or impractical. Examples of such applications include, under or inside existing or new structures, between existing structures and in irregularly shaped areas. APS can also be applied in situations similar to multi-storey parking garages such as freestanding above ground, under buildings above grade and under buildings below grade. == Costs == The direct comparison of costs between an APS and a multi-story parking garage can be complicated by many variables such as capacity, land costs, area shape, number and location of entranc

    Read more →
  • Bulletin (service)

    Bulletin (service)

    Bulletin was an online newsletter platform launched by Facebook on July 6, 2021, that allows notable writers to make announcements directly to their subscribers. Its competitors included Substack, of which Bulletin was called a "near-clone." Writers participating in the platform's launch included Malcolm Gladwell, Mitch Albom, Tan France, Jessica Yellin, Jane Wells, Erin Andrews and Dorie Greenspan. Facebook CEO Mark Zuckerberg stated that Bulletin represented the first time that the company had "built a project that is directly for journalists and individual writers." In October 2022 Meta announced the shutdown of Bulletin. The platform went into read only mode in January 2023 and became unavailable in April 2023. == History == Facebook announced Bulletin as its online newsletter platform on June 29, 2021. and launched by the company on July 6, 2021. Facebook CEO Mark Zuckerberg touted the service by saying that Bulletin represented the first time that the company had "built a project that is directly for journalists and individual writers." Writers participating in the platform's launch included Malcolm Gladwell, Mitch Albom, Tan France, Jessica Yellin, Jane Wells, Erin Andrews and Dorie Greenspan. == Reception == Unlike competitor such as Substack, Facebook indicated upon service's launch that it would not take a cut of subscription fees of writers using that platform. According to Washington Post technology writer Will Oremus, the move was criticized by those who viewed it as a form of predatory pricing intended by Facebook to force those competitors out of business. Sandeep Vaheesan, legal director of the think tank Open Markets, called for the government to reexamine predatory pricing as a violation of antitrust law, saying, "We want companies to compete by making better products, investing in new equipment and tech — not purely relying on their financial advantages to capture market share."

    Read more →
  • Packingham v. North Carolina

    Packingham v. North Carolina

    Packingham v. North Carolina, 582 U.S. 98 (2017), is a case in which the Supreme Court of the United States held that a North Carolina statute that prohibited registered sex offenders from using social media websites was unconstitutional because it violated the First Amendment to the U.S. Constitution, which protects freedom of speech. In 2010, Lester Gerard Packingham, a registered sex offender, posted on Facebook under a pseudonym to comment favorably on a recent traffic court experience. Police then identified Packingham and charged him with violating North Carolina's law. Packingham moved to dismiss the charges, arguing that the state's law violated the First Amendment. The trial court dismissed this motion and ultimately convicted Packingham. A state appellate court initially reversed the trial court, holding that the law did violate the First Amendment, but the North Carolina Supreme Court, the state's highest court, disagreed and reinstated the conviction. In June 2017, the U.S. Supreme Court unanimously reversed the North Carolina Supreme Court's judgment. In the majority opinion authored by Justice Anthony Kennedy, the Court held that social media—defined broadly to include Facebook, Amazon.com, The Washington Post, and WebMD, among many others—is a "protected space" under the First Amendment for lawful speech. The Court offered that North Carolina could protect children through less restrictive means, such as prohibiting "conduct that often presages a sexual crime, like contacting a minor or using a website to gather information about a minor". == Background == === North Carolina statute === In 2008, the state of North Carolina passed a law that made it a felony for a registered sex offender "to access a commercial social networking Web site where the sex offender knows that the site permits minor children to become members or to create or maintain personal Web pages". The law defined a "commercial social networking Web site" using four criteria. Specifically, the website must: be "operated by a person who derives revenue from membership fees, advertising, or other sources related to the operation of the Web site". facilitate "the social introduction between two or more persons for the purposes of friendship, meeting other persons, or information exchanges". allow "users to create Web pages or personal profiles that contain information such as the name or nickname of the user, photographs placed on the personal Web page by the user, other personal information about the user, and links to other personal Web pages on the commercial social networking Web site of friends or associates of the user that may be accessed by other users or visitors to the Web site". provide "users or visitors... mechanisms to communicate with other users, such as a message board, chat room, electronic mail, or instant messenger". The law exempted websites that "Provid[e] only one of the following discrete services: photo-sharing, electronic mail, instant messenger, or chat room or message board platform", as well as websites that have as their primary purpose "the facilitation of commercial transactions involving goods or services between [their] members or visitors". === Facts of the case === In 2002, Lester Gerard Packingham was convicted of taking "indecent liberties with a child", a felony that required him to register as a sex offender. A North Carolina court sentenced him to 10–12 months in prison with 24 months of supervised release. He was given no other special instructions on his behavior outside of prison other than to "remain away from" the minor. In 2010, after a state court dismissed a traffic ticket against Packingham, he submitted a post on Facebook under the name "J. R. Gerrard", stating: "Man God is Good! How about I got so much favor they dismissed the ticket before court even started? No fine, no court cost, no nothing spent. . . . . .Praise be to GOD, WOW! Thanks JESUS!" The Durham Police Department identified Packingham as the author of the post after cross-checking the time of the post with recently dismissed traffic tickets, and a grand jury indicted him for violating the North Carolina statute. === Lower court proceedings === Initially, Packingham moved to dismiss his indictment, arguing that it violated the First Amendment. A North Carolina Superior Court judge denied this motion, and he was convicted of violating the North Carolina social media law. Packingham appealed his conviction to the North Carolina Court of Appeals, which reversed the trial court's decision in 2013. Applying intermediate scrutiny, the court of appeals determined that North Carolina's law violated the First Amendment because it was too broad, applying to all registered sex offenders regardless of whether the offender had committed a crime involving a minor or whether the offender was a continuing threat to minors. The appeals court also stated that the law had been defined broadly enough to prohibit a registered sex offender from conducting a wide array of Internet activity, such as "conducting a 'Google' search, purchasing items on Amazon.com, or accessing a plethora of Web sites unrelated to online communication with minors". In 2015, the North Carolina Supreme Court, the state's highest court, reversed the court of appeals, holding that the law was "constitutional in all respects". The North Carolina Supreme Court found that the statute was a "limitation on conduct" and did not impede any free speech. The state had a vested interest in “forestalling the illicit lurking and contact of minors” by registered sex offenders and potential future victims, and upheld Packingham's conviction. == Supreme Court ruling == Packingham filed a petition for a writ of certiorari with the Supreme Court of the United States. The federal government also filed a brief recommending that the Supreme Court grant certiorari, arguing that the North Carolina Supreme Court incorrectly decided the case in favor of the state. The U.S. Supreme Court granted certiorari in October 2016. Amicus briefs in support of Packingham were filed by the libertarian Cato Institute and the American Civil Liberties Union. The North Carolina Supreme Court filed a brief supporting its prior decision, urging the importance of protecting minors from being stalked online. === Oral argument === The oral argument took place in February 2017. Packingham’s lawyer, David T. Goldberg, argued that the law banned “vast swaths of First Amendment activity”, went too far in restricting which Internet sites could be accessed, and forbade use of the Internet in general. The law targeted speech on some of the platforms that Americans use most often, Goldberg noted, and that under the law Packingham could not even use Twitter to read the myriad messages discussing his own case. He further noted that the law imposes punishment without regard to whether the offender actually did anything wrong. North Carolina’s senior deputy Attorney General, Robert C. Montgomery, argued for the state, and claimed that communication through social media sites is a “crucial channel”. Justice Sonia Sotomayor asked Montgomery to provide evidence as to the claim that by giving Packingham Internet privileges, he would commit another crime. Justice Stephen Breyer added that “It seems to be well-settled law that the state can’t (bar usage) unless there is a 'clear and present danger'." === Opinion of the Court === In June 2017 the Supreme Court delivered a judgment in favor of Packingham, unanimously voting to reverse the state court's ruling. Justice Anthony Kennedy authored the decision, joined by Justice Ginsburg, Justice Breyer, Justice Sotomayor, and Justice Kagan. Kennedy explained the decision: "A fundamental principle of the First Amendment is that all persons have access to places where they can speak and listen, and then, after reflection, speak and listen once more." He continued that "By prohibiting sex offenders from using those websites, North Carolina with one broad stroke bars access to what for many are the principal sources for knowing current events, checking ads for employment, speaking and listening in the modern public square, and otherwise exploring the vast realms of human thought and knowledge." Citing Ashcroft v. Free Speech Coalition as a precedent, Kennedy also wrote: "It is well established that, as a general rule, the Government 'may not suppress lawful speech as the means to suppress unlawful speech'." === Concurring opinion === Justice Samuel Alito wrote an opinion concurring in the judgment, joined by John Roberts and Clarence Thomas. While Alito agreed that the state statute at issue violated the First Amendment, he noted that there are reasonable scenarios for which legal bans for sex offenders can be placed, such as for sites targeted at teenagers. Justice Gorsuch took no part in the decision of the case. == Impact == Packingham v. North Carolina was one of the first U.S. Supreme Court cases to ana

    Read more →
  • Temporal resolution

    Temporal resolution

    Temporal resolution (TR) refers to the discrete resolution of a measurement with respect to time. It is defined as the amount of time needed to revisit and acquire data for the same location. When applied to remote sensing, this amount of time is influenced by the sensor platform's orbital characteristics and the features of the sensor itself. The temporal resolution is low when the revisiting delay is high and vice versa. Temporal resolution is typically expressed in days. == Physics == Often there is a trade-off between the temporal resolution of a measurement and its spatial resolution, due to Heisenberg's uncertainty principle. In some contexts, such as particle physics, this trade-off can be attributed to the finite speed of light and the fact that it takes a certain period of time for the photons carrying information to reach the observer. In this time, the system might have undergone changes itself. Thus, the longer the light has to travel, the lower the temporal resolution. == Technology == === Computing === In another context, there is often a tradeoff between temporal resolution and computer storage. A transducer may be able to record data every millisecond, but available storage may not allow this, and in the case of 4D PET imaging the resolution may be limited to several minutes. === Electronic displays === In some applications, temporal resolution may instead be equated to the sampling period, or its inverse, the refresh rate, or update frequency in Hertz, of a TV, for example. The temporal resolution is distinct from temporal uncertainty. This would be analogous to conflating image resolution with optical resolution. One is discrete, the other, continuous. The temporal resolution is a resolution somewhat the 'time' dual to the 'space' resolution of an image. In a similar way, the sample rate is equivalent to the pixel pitch on a display screen, whereas the optical resolution of a display screen is equivalent to temporal uncertainty. Note that both this form of image space and time resolutions are orthogonal to measurement resolution, even though space and time are also orthogonal to each other. Both an image or an oscilloscope capture can have a signal-to-noise ratio, since both also have measurement resolution. === Oscilloscopy === An oscilloscope is the temporal equivalent of a microscope, and it is limited by temporal uncertainty the same way a microscope is limited by optical resolution. A digital sampling oscilloscope has also a limitation analogous to image resolution, which is the sample rate. A non-digital non-sampling oscilloscope is still limited by temporal uncertainty. The temporal uncertainty can be related to the maximum frequency of continuous signal the oscilloscope could respond to, called the bandwidth and given in Hertz. But for oscilloscopes, this figure is not the temporal resolution. To reduce confusion, oscilloscope manufacturers use 'Sa/s' instead of 'Hz' to specify the temporal resolution. Two cases for oscilloscopes exist: either the probe settling time is much shorter than the real time sampling rate, or it is much larger. The case where the settling time is the same as the sampling time is usually undesirable in an oscilloscope. It is more typical to prefer a larger ratio either way, or if not, to be somewhat longer than two sample periods. In the case where it is much longer, the most typical case, it dominates the temporal resolution. The shape of the response during the settling time also has as strong effect on the temporal resolution. For this reason probe leads usually offer an arrangement to 'compensate' the leads to alter the trade off between minimal settling time, and minimal overshoot. If it is much shorter, the oscilloscope may be prone to aliasing from radio frequency interference, but this can be removed by repeatedly sampling a repetitive signal and averaging the results together. If the relationship between the 'trigger' time and the sample clock can be controlled with greater accuracy than the sampling time, then it is possible to make a measurement of a repetitive waveform with much higher temporal resolution than the sample period by upsampling each record before averaging. In this case the temporal uncertainty may be limited by clock jitter.

    Read more →
  • Residual neural network

    Residual neural network

    A residual neural network (also referred to as a residual network or ResNet) is a deep learning architecture in which the layers learn residual functions with reference to the layer inputs. It was developed in 2015 for image recognition, and won the ImageNet Large Scale Visual Recognition Challenge (ILSVRC) of that year. As a point of terminology, "residual connection" refers to the specific architectural motif of x ↦ f ( x ) + x {\displaystyle x\mapsto f(x)+x} , where f {\displaystyle f} is an arbitrary neural network module. The motif had been used previously (see §History for details). However, the publication of ResNet made it widely popular for feedforward networks, appearing in neural networks that are seemingly unrelated to ResNet. The residual connection stabilizes the training and convergence of deep neural networks with hundreds of layers, and is a common motif in deep neural networks, such as transformer models (e.g., BERT, and GPT models such as ChatGPT), the AlphaGo Zero system, the AlphaStar system, and the AlphaFold system. == Mathematics == === Residual connection === In a multilayer neural network model, consider a (non-residual) subnetwork with a certain number of stacked layers (e.g., 2 or 3). Let H ( x ; α ) {\displaystyle H(x;\alpha )} denote the subnetwork. Suppose H ∗ {\displaystyle H^{}} is the desired optimal output of this subnetwork. Residual learning simply adds x {\displaystyle x} directly to the output, such that the optimal learned output now becomes be H ∗ − x {\displaystyle H^{}-x} , which is interpreted as a "residual" with respect to x {\displaystyle x} . The operation of "adding x {\displaystyle x} " is implemented via a "skip connection" that performs an identity mapping to connect the input of the subnetwork with its output. This connection is referred to as a "residual connection" in later work. Let F ( x ; α ) = H ( x ; a ) + x {\displaystyle F(x;\alpha )=H(x;a)+x} . The function F {\displaystyle F} is often represented by matrix multiplication interlaced with activation functions and normalization operations (e.g., batch normalization or layer normalization). As a whole, one of these subnetworks is referred to as a "residual block". A deep residual network is constructed by simply stacking these blocks. Long short-term memory (LSTM) has a memory mechanism that serves as a residual connection. In an LSTM without a forget gate, an input x t {\displaystyle x_{t}} is processed by a function F {\displaystyle F} and added to a memory cell c t {\displaystyle c_{t}} , resulting in c t + 1 = c t + F ( x t ) {\displaystyle c_{t+1}=c_{t}+F(x_{t})} . An LSTM with a forget gate essentially functions as a highway network. To stabilize the variance of the layers' inputs, it is recommended to replace the residual connections x + f ( x ) {\displaystyle x+f(x)} with x / L + f ( x ) {\displaystyle x/L+f(x)} , where L {\displaystyle L} is the total number of residual layers. === Projection connection === If the function F {\displaystyle F} is of type F : R n → R m {\displaystyle F:\mathbb {R} ^{n}\to \mathbb {R} ^{m}} where n ≠ m {\displaystyle n\neq m} , then F ( x ) + x {\displaystyle F(x)+x} is undefined. To handle this special case, a projection connection is used: y = F ( x ) + P ( x ) {\displaystyle y=F(x)+P(x)} where P {\displaystyle P} is typically a linear projection, defined by P ( x ) = M x {\displaystyle P(x)=Mx} where M {\displaystyle M} is a m × n {\displaystyle m\times n} matrix. The matrix is trained via backpropagation, as is any other parameter of the model. === Signal propagation === The introduction of identity mappings facilitates signal propagation in both forward and backward paths. ==== Forward propagation ==== If the output of the ℓ {\displaystyle \ell } -th residual block is the input to the ( ℓ + 1 ) {\displaystyle (\ell +1)} -th residual block (assuming no activation function between blocks), then the ( ℓ + 1 ) {\displaystyle (\ell +1)} -th input is: x ℓ + 1 = F ( x ℓ ) + x ℓ {\displaystyle x_{\ell +1}=F(x_{\ell })+x_{\ell }} Applying this formulation recursively, e.g.: x ℓ + 2 = F ( x ℓ + 1 ) + x ℓ + 1 = F ( x ℓ + 1 ) + F ( x ℓ ) + x ℓ {\displaystyle {\begin{aligned}x_{\ell +2}&=F(x_{\ell +1})+x_{\ell +1}\\&=F(x_{\ell +1})+F(x_{\ell })+x_{\ell }\end{aligned}}} yields the general relationship: x L = x ℓ + ∑ i = ℓ L − 1 F ( x i ) {\displaystyle x_{L}=x_{\ell }+\sum _{i=\ell }^{L-1}F(x_{i})} where L {\textstyle L} is the index of a residual block and ℓ {\textstyle \ell } is the index of some earlier block. This formulation suggests that there is always a signal that is directly sent from a shallower block ℓ {\textstyle \ell } to a deeper block L {\textstyle L} . ==== Backward propagation ==== The residual learning formulation provides the added benefit of mitigating the vanishing gradient problem to some extent. However, it is crucial to acknowledge that the vanishing gradient issue is not the root cause of the degradation problem, which is tackled through the use of normalization. To observe the effect of residual blocks on backpropagation, consider the partial derivative of a loss function E {\displaystyle {\mathcal {E}}} with respect to some residual block input x ℓ {\displaystyle x_{\ell }} . Using the equation above from forward propagation for a later residual block L > ℓ {\displaystyle L>\ell } : ∂ E ∂ x ℓ = ∂ E ∂ x L ∂ x L ∂ x ℓ = ∂ E ∂ x L ( 1 + ∂ ∂ x ℓ ∑ i = ℓ L − 1 F ( x i ) ) = ∂ E ∂ x L + ∂ E ∂ x L ∂ ∂ x ℓ ∑ i = ℓ L − 1 F ( x i ) {\displaystyle {\begin{aligned}{\frac {\partial {\mathcal {E}}}{\partial x_{\ell }}}&={\frac {\partial {\mathcal {E}}}{\partial x_{L}}}{\frac {\partial x_{L}}{\partial x_{\ell }}}\\&={\frac {\partial {\mathcal {E}}}{\partial x_{L}}}\left(1+{\frac {\partial }{\partial x_{\ell }}}\sum _{i=\ell }^{L-1}F(x_{i})\right)\\&={\frac {\partial {\mathcal {E}}}{\partial x_{L}}}+{\frac {\partial {\mathcal {E}}}{\partial x_{L}}}{\frac {\partial }{\partial x_{\ell }}}\sum _{i=\ell }^{L-1}F(x_{i})\end{aligned}}} This formulation suggests that the gradient computation of a shallower layer, ∂ E ∂ x ℓ {\textstyle {\frac {\partial {\mathcal {E}}}{\partial x_{\ell }}}} , always has a later term ∂ E ∂ x L {\textstyle {\frac {\partial {\mathcal {E}}}{\partial x_{L}}}} that is directly added. Even if the gradients of the F ( x i ) {\displaystyle F(x_{i})} terms are small, the total gradient ∂ E ∂ x ℓ {\textstyle {\frac {\partial {\mathcal {E}}}{\partial x_{\ell }}}} resists vanishing due to the added term ∂ E ∂ x L {\textstyle {\frac {\partial {\mathcal {E}}}{\partial x_{L}}}} . == Variants of residual blocks == === Basic block === A basic block is the simplest building block studied in the original ResNet. This block consists of two sequential 3x3 convolutional layers and a residual connection. The input and output dimensions of both layers are equal. === Bottleneck block === A bottleneck block consists of three sequential convolutional layers and a residual connection. The first layer in this block is a 1×1 convolution for dimension reduction (e.g., to 1/2 of the input dimension); the second layer performs a 3×3 convolution; the last layer is another 1×1 convolution for dimension restoration. The models of ResNet-50, ResNet-101, and ResNet-152 are all based on bottleneck blocks. === Pre-activation block === The pre-activation residual block applies activation functions before applying the residual function F {\displaystyle F} . Formally, the computation of a pre-activation residual block can be written as: x ℓ + 1 = F ( ϕ ( x ℓ ) ) + x ℓ {\displaystyle x_{\ell +1}=F(\phi (x_{\ell }))+x_{\ell }} where ϕ {\displaystyle \phi } can be any activation (e.g. ReLU) or normalization (e.g. LayerNorm) operation. This design reduces the number of non-identity mappings between residual blocks, and allows an identity mapping directly from the input to the output. This design was used to train models with 200 to over 1000 layers, and was found to consistently outperform variants where the residual path is not an identity function. The pre-activation ResNet with 200 layers took 3 weeks to train for ImageNet on 8 GPUs in 2016. Since GPT-2, transformer blocks have been mostly implemented as pre-activation blocks. This is often referred to as "pre-normalization" in the literature of transformer models. == Applications == Originally, ResNet was designed for computer vision. All transformer architectures include residual connections. Indeed, very deep transformers cannot be trained without them. The original ResNet paper made no claim on being inspired by biological systems. However, later research has related ResNet to biologically-plausible algorithms. A study published in Science in 2023 disclosed the complete connectome of an insect brain (specifically that of a fruit fly larva). This study discovered "multilayer shortcuts" that resemble the skip connections in artificial neural networks, including ResNets. == History == === Previous work === Residual connections were noticed in neu

    Read more →
  • Communications system

    Communications system

    A communications system is a collection of individual telecommunications networks systems, relay stations, tributary stations, and terminal equipment usually capable of interconnection and interoperation to form an integrated whole. Communication systems allow the transfer of information from one place to another or from one device to another through a specified channel or medium. The components of a communications system serve a common purpose, are technically compatible, use common procedures, respond to controls, and operate in union. In the structure of a communication system, the transmitter first converts the data received from the source into a light signal and transmits it through the medium to the destination of the receiver. The receiver connected at the receiving end converts it to digital data, maintaining certain protocols e.g. FTP, ISP assigned protocols etc. Telecommunications is a method of communication (e.g., for sports broadcasting, mass media, journalism, etc.). Communication is the act of conveying intended meanings from one entity or group to another through the use of mutually understood signs and semiotic rules. == Types == === By media === An optical communication system is any form of communications system that uses light as the transmission medium. Equipment consists of a transmitter, which encodes a message into an optical signal, a communication channel, which carries the signal to its destination, and a receiver, which reproduces the message from the received optical signal. Fiber-optic communication systems transmit information from one place to another by sending light through an optical fiber. The light forms a carrier signal that is modulated to carry information. A radio communication system is composed of several communications subsystems that give exterior communications capabilities. A radio communication system comprises a transmitting conductor in which electrical oscillations or currents are produced and which is arranged to cause such currents or oscillations to be propagated through the free space medium from one point to another remote therefrom and a receiving conductor at such distant point adapted to be excited by the oscillations or currents propagated from the transmitter. Power-line communication systems operate by impressing a modulated carrier signal on power wires. Different types of power-line communications use different frequency bands, depending on the signal transmission characteristics of the power wiring used. Since the power wiring system was originally intended for transmission of AC power, the power wire circuits have only a limited ability to carry higher frequencies. The propagation problem is a limiting factor for each type of power line communications. === By technology === A duplex communication system is a system composed of two connected parties or devices which can communicate with one another in both directions. The term duplex is used when describing communication between two parties or devices. Duplex systems are employed in nearly all communications networks, either to allow for a communication "two-way street" between two connected parties or to provide a "reverse path" for the monitoring and remote adjustment of equipment in the field. An antenna is basically a small length of a conductor that is used to radiate or receive electromagnetic waves. It acts as a conversion device. At the transmitting end it converts high frequency current into electromagnetic waves. At the receiving end it transforms electromagnetic waves into electrical signals that is fed into the input of the receiver. several types of antenna are used in communication. Examples of communications subsystems include the Defense Communications System (DCS). === Examples: by technology === Telephone Mobile phone Tablet computer Television Telegraph Edison Telegraph TV cable Computer === By application area === The term transmission system is used in the telecommunications industry to emphasize the intermediate media, protocols, and equipment in the circuit, rather than particular end-user applications. A tactical communications system is a communications system that (a) is used within, or in direct support of tactical forces (b) is designed to meet the requirements of changing tactical situations and varying environmental conditions, (c) provides securable communications, such as voice, data, and video, among mobile users to facilitate command and control within, and in support of, tactical forces, and (d) usually requires extremely short installation times, usually on the order of hours, in order to meet the requirements of frequent relocation. An Emergency communication system is any system (typically computer based) that is organized for the primary purpose of supporting the two way communication of emergency messages between both individuals and groups of individuals. These systems are commonly designed to integrate the cross-communication of messages between are variety of communication technologies. An Automatic call distributor (ACD) is a communication system that automatically queues, assigns and connects callers to handlers. This is used often in customer service (such as for product or service complaints), ordering by telephone (such as in a ticket office), or coordination services (such as in air traffic control). A Voice Communication Control System (VCCS) is essentially an ACD with characteristics that make it more adapted to use in critical situations (no waiting for dial tone, or lengthy recorded announcements, radio and telephone lines equally easily connected to, individual lines immediately accessible etc..) == Key components == =

    Read more →
  • Push technology

    Push technology

    Push technology, also known as server push, is a communication method where the communication is initiated by a server rather than a client. This approach is different from the "pull" method where the communication is initiated by a client. In push technology, clients can express their preferences for certain types of information or data, typically through a process known as the publish–subscribe model. In this model, a client "subscribes" to specific information channels hosted by a server. When new content becomes available on these channels, the server automatically sends, or "pushes," this information to the subscribed client. Under certain conditions, such as restrictive security policies that block incoming HTTP requests, push technology is sometimes simulated using a technique called polling. In these cases, the client periodically checks with the server to see if new information is available, rather than receiving automatic updates. == General use == Synchronous conferencing and instant messaging are examples of push services. Chat messages and sometimes files are pushed to the user as soon as they are received by the messaging service. Both decentralized peer-to-peer programs (such as WASTE) and centralized programs (such as IRC or XMPP) allow pushing files, which means the sender initiates the data transfer rather than the recipient. Email may also be a push system: SMTP is a push protocol (see Push e-mail). However, the last step—from mail server to desktop computer—typically uses a pull protocol like POP3 or IMAP. Modern e-mail clients make this step seem instantaneous by repeatedly polling the mail server, frequently checking it for new mail. The IMAP protocol includes the IDLE command, which allows the server to tell the client when new messages arrive. The original BlackBerry was the first popular example of push-email in a wireless context. Another example is the PointCast Network, which was widely covered in the 1990s. It delivered news and stock market data as a screensaver. Both Netscape and Microsoft integrated push technology through the Channel Definition Format (CDF) into their software at the height of the browser wars, but it was never very popular. CDF faded away and was removed from the browsers of the time, replaced in the 2000s with RSS (a pull system.) Other uses of push-enabled web applications include software updates distribution ("push updates"), market data distribution (stock tickers), online chat/messaging systems (webchat), auctions, online betting and gaming, sport results, monitoring consoles, and sensor network monitoring. == Examples == === Web push === The Web push proposal of the Internet Engineering Task Force is a simple protocol using HTTP version 2 to deliver real-time events, such as incoming calls or messages, which can be delivered (or "pushed") in a timely fashion. The protocol consolidates all real-time events into a single session which ensures more efficient use of network and radio resources. A single service consolidates all events, distributing those events to applications as they arrive. This requires just one session, avoiding duplicated overhead costs. Web Notifications are part of the W3C standard and define an API for end-user notifications. A notification allows alerting the user of an event, such as the delivery of an email, outside the context of a web page. As part of this standard, Push API is fully implemented in Chrome, Firefox, and Edge, and partially implemented in Safari as of February 2023. === HTTP server push === HTTP server push (also known as HTTP streaming) is a mechanism for sending unsolicited (asynchronous) data from a web server to a web browser. HTTP server push can be achieved through any of several mechanisms. As a part of HTML5 the Web Socket API allows a web server and client to communicate over a full-duplex TCP connection. Generally, the web server does not terminate a connection after response data has been served to a client. The web server leaves the connection open so that if an event occurs (for example, a change in internal data which needs to be reported to one or multiple clients), it can be sent out immediately; otherwise, the event would have to be queued until the client's next request is received. Most web servers offer this functionality via CGI (e.g., Non-Parsed Headers scripts on Apache HTTP Server). The underlying mechanism for this approach is chunked transfer encoding. Another mechanism is related to a special MIME type called multipart/x-mixed-replace, which was introduced by Netscape in 1995. Web browsers interpret this as a document that changes whenever the server pushes a new version to the client. It is still supported by Firefox, Opera, and Safari today, but it is ignored by Internet Explorer and is only partially supported by Chrome. It can be applied to HTML documents, and also for streaming images in webcam applications. The WHATWG Web Applications 1.0 proposal includes a mechanism to push content to the client. On September 1, 2006, the Opera web browser implemented this new experimental system in a feature called "Server-Sent Events". It is now part of the HTML5 standard. === Pushlet === In this technique, the server takes advantage of persistent HTTP connections, leaving the response perpetually "open" (i.e., the server never terminates the response), effectively fooling the browser to remain in "loading" mode after the initial page load could be considered complete. The server then periodically sends snippets of JavaScript to update the content of the page, thereby achieving push capability. By using this technique, the client doesn't need Java applets or other plug-ins in order to keep an open connection to the server; the client is automatically notified about new events, pushed by the server. One serious drawback to this method, however, is the lack of control the server has over the browser timing out; a page refresh is always necessary if a timeout occurs on the browser end. === Long polling === Long polling is itself not a true push; long polling is a variation of the traditional polling technique, but it allows emulating a push mechanism under circumstances where a real push is not possible, such as sites with security policies that require rejection of incoming HTTP requests. With long polling, the client requests to get more information from the server exactly as in normal polling, but with the expectation that the server may not respond immediately. If the server has no new information for the client when the poll is received, then instead of sending an empty response, the server holds the request open and waits for response information to become available. Once it does have new information, the server immediately sends an HTTP response to the client, completing the open HTTP request. Upon receipt of the server response, the client often immediately issues another server request. In this way the usual response latency (the time between when the information first becomes available and the next client request) otherwise associated with polling clients is eliminated. For example, BOSH is a popular, long-lived HTTP technique used as a long-polling alternative to a continuous TCP connection when such a connection is difficult or impossible to employ directly (e.g., in a web browser); it is also an underlying technology in the XMPP, which Apple uses for its iCloud push support. === Flash XML Socket relays === This technique, used by chat applications, makes use of the XML Socket object in a single-pixel Adobe Flash movie. Under the control of JavaScript, the client establishes a TCP connection to a unidirectional relay on the server. The relay server does not read anything from this socket; instead, it immediately sends the client a unique identifier. Next, the client makes an HTTP request to the web server, including this identifier with it. The web application can then push messages addressed to the client to a local interface of the relay server, which relays them over the Flash socket. The advantage of this approach is that it appreciates the natural read-write asymmetry that is typical of many web applications, including chat, and as a consequence it offers high efficiency. Since it does not accept data on outgoing sockets, the relay server does not need to poll outgoing TCP connections at all, making it possible to hold open tens of thousands of concurrent connections. In this model, the limit to scale is the TCP stack of the underlying server operating system. === Reliable Group Data Delivery (RGDD) === In services such as cloud computing, to increase reliability and availability of data, it is usually pushed (replicated) to several machines. For example, the Hadoop Distributed File System (HDFS) makes 2 extra copies of any object stored. RGDD focuses on efficiently casting an object from one location to many while saving bandwidth by sending minimal number of copies (only one in the best case) of

    Read more →