Umple is a language for both object-oriented programming and modelling with class diagrams and state diagrams. The name Umple is a portmanteau of "UML", "ample" and "Simple", indicating that it is designed to provide ample features to extend programming languages with UML capabilities. == History and philosophy == The design of Umple started in 2008 at the University of Ottawa. Umple was open-sourced and its development was moved to Google Code in early 2011 and to GitHub in 2015. Umple was developed, in part, to address certain problems observed in the modelling community. Most specifically, it was designed to bring modelling and programming into alignment, It was intended to help overcome inhibitions against modelling common in the programmer community. It was also intended to reduce some of the difficulties of model-driven development that arise from the need to use large, expensive or incomplete tools. One design objective is to enable programmers to model in a way they see as natural, by adding modelling constructs to programming languages. == Features and capabilities == Umple can be used to represent in a textual manner many UML modelling entities found in class diagrams and state diagrams. Umple can generate code for these in various programming languages. Currently Umple fully supports Java, C++ and PHP as target programming languages and has functional, but somewhat incomplete support for Ruby. Umple also incorporates various features not related to UML, such as the singleton pattern, keys, immutability, mixins and aspect-oriented code injection. The class diagram notations Umple supports includes classes, interfaces, attributes, associations, generalizations and operations. The code Umple generates for attributes include code in the constructor, 'get' methods and 'set' methods. The generated code differs considerably depending on whether the attribute has properties such as immutability, has a default value, or is part of a key. Umple generates many methods for manipulating, querying and navigating associations. It supports all combinations of UML multiplicity and enforces referential integrity. Umple supports the vast majority of UML state machine notation, including arbitrarily deep nested states, concurrent regions, actions on entry, exit and transition, plus long-lasting activities while in a state. A state machine is treated as an enumerated attribute where the value is controlled by events. Events encoded in the state machine can be methods written by the user, or else generated by the Umple compiler. Events are triggered by calling the method. An event can trigger transitions (subject to guards) in several different state machines. Since a program can be entirely written around one or more state machines, Umple enables automata-based programming. The bodies of methods are written in one of the target programming languages. The same is true for other imperative code such as state machine actions and guards, and code to be injected in an aspect-oriented manner. Such code can be injected before many of the methods in the code Umple generates, for example before or after setting or getting attributes and associations. The Umple notation for UML constructs can be embedded in any of its supported target programming languages. When this is done, Umple can be seen as a pre-processor: The Umple compiler expands the UML constructs into code of the target language. Code in a target language can be passed to the Umple compiler directly; if no Umple-specific notation is found, then the target-language code is emitted unchanged by the Umple compiler. Umple, combined with one of its target languages for imperative code, can be seen and used as a complete programming language. Umple plus Java can therefore be seen as an extension of Java. Alternatively, if imperative code and Umple-specific concepts are left out, Umple can be seen as a way of expressing a large subset of UML in a purely textual manner. Code in one of the supported programming languages can be added in the same manner as UML envisions adding action language code. == License == Umple is licensed under an MIT-style license. == Examples == Here is the classic Hello world program written in Umple (extending Java): This example looks just like Java, because Umple extends other programming languages. With the program saved in a file named HelloWorld.ump, it can be compiled from the command line: $ java -jar umple.jar HelloWorld.ump To run it: $ java HelloWorld The following is a fully executable example showing embedded Java methods and declaration of an association. The following example describes a state machine called status, with states Open, Closing, Closed, Opening and HalfOpen, and with various events that cause transitions from one state to another. class GarageDoor { status { Open { buttonOrObstacle -> Closing; } Closing { buttonOrObstacle -> Opening; reachBottom -> Closed; } Closed { buttonOrObstacle -> Opening; } Opening { buttonOrObstacle -> HalfOpen; reachTop -> Open; } HalfOpen { buttonOrObstacle -> Opening; } } } == Umple use in practice == The first version of the Umple compiler was written in Java, Antlr and Jet (Java Emitter Templates), but in a bootstrapping process, the Java code was converted to Umple following a technique called Umplification. The Antlr and Jet were also later converted to native Umple. Umple is therefore now written entirely in itself, in other words it is self-hosted and serves as its own largest test case. Umple and UmpleOnline have been used in the classroom by several instructors to teach UML and modelling. In one study it was found to help speed up the process of teaching UML, and was also found to improve the grades of students. == Tools == Umple is available as a Jar file so it can be run from the command line, and as an Eclipse plugin. There is also an online tool for Umple called UmpleOnline , which allows a developer to create an Umple system by drawing a UML class diagram, editing Umple code or both. Umple models created with UmpleOnline are stored in the cloud. Currently UmpleOnline only supports Umple programs consisting of a single input file. In addition to code, Umple's tools can generate a variety of other types of output, including user interfaces based on the Umple model.
FuseBase
FuseBase (previously Nimbus Note and Nimbus Platform) is a B2B SaaS platform. It is among the first to support the Model Context Protocol (MCP), an open standard enabling seamless integration of AI agents with external tools, systems, and data sources. == History == The platform was founded in 2014 as Nimbus Note, the platform started as a cross-platform note-taking and information management tool. As it evolved into Nimbus Platform, it added project management and client portal capabilities. In 2023, the company rebranded as FuseBase, pivoting to connect and automate both internal and external collaboration through AI Agents and cutting-edge protocol adoption like MCP. At the same time, FuseBase was named Product of the Year on Product Hunt. == Technical overview == The platform integrates the Model Context Protocol (MCP), an open-source framework created by Anthropic. MCP allows AI models to securely access and interact with external data, tools, and systems. This enables FuseBase AI Agents to gather relevant context, perform actions, and provide more advanced automation.
Fingerprint scanner
Fingerprint scanners are a type of biometric security device that identify an individual by identifying the structure of their fingerprints. They are used in police stations, security industries, smartphones, and other mobile devices. == Fingerprints == People have patterns of friction ridges on their fingers, these patterns are called the fingerprints. Fingerprints are uniquely detailed, durable over an individual's lifetime, and difficult to alter. Due to the unique combinations, fingerprints have become an ideal means of identification. == Types of fingerprint scanners == There are four types of fingerprint scanners: Optical scanners take a visual image of the fingerprint using a digital camera. Capacitive or CMOS scanners use capacitors and thus electric current to form an image of the fingerprint. This type of scanner tends to excel in terms of precision. Ultrasonic fingerprint scanners use high frequency sound waves to penetrate the epidermal (outer) layer of the skin. Thermal scanners sense the temperature differences on the contact surface, in between fingerprint ridges and valleys. All fingerprint scanners are susceptible to spoofing through fingerprints replicated using photographs and 3D printing. == Construction forms == Each type of fingerprint sensor can take two basic forms: the stagnant and the moving fingerprint scanner. Stagnant: The scanning module is mounted statically, and the user is required to swipe their fingers across it. This is cheaper but also less reliable than the moving form. Imaging can be less than ideal if the finger is not dragged over the scanning area at constant speed. Moving: The scanning module is mounted on a movable surface, while the user's finger can remain static. Because this layout allows the scanning module to pass the fingerprint at a constant speed, this method is generally more reliable. == Form factors == === Peripherals === Add-on fingerprint readers for PCs initially appeared in the late 1990's in the form of PCMCIA modules. Microsoft released a model in its IntelliMouse line with an integrated fingerprint reader in 2005. === Integrated readers === Laptops with built-in readers emerged around the same time as peripheral readers with devices such as NECs MC/R730F. IBM produced laptops with integrated readers starting in 2004. Apple introduced fingerprint scanners to their devices under the name Touch ID in 2013. These were initially released on the iPhone 5S, with the technology remaining exclusive to iPhones until the release of the 2016 MacBook Pro. On both laptops and smartphones, the fingerprint sensor usually uses a USB or I2C interface internally.
Terrorism and social media
Terrorism, fear, and media are interconnected. Terrorists use the media to advertise their attacks and or messages, and the media uses terrorism events to further aid their ratings. Both promote unwarranted propaganda that instills mass amounts of public fear. The leader of al-Qaeda, Osama bin Laden, discussed the weaponization of media in a letter written after his organization committed the terrorist attacks on September 11, 2001. In that letter, bin Laden stated that fear was the deadliest weapon. He noted that the Western civilization has become obsessed with mass media, quickly consuming what will bring them fear. He further stated that societies are bringing this problem on their own people by giving media coverage an inherent power. In relation to one's need for media coverage, al-Qaeda and other militant Jihadi terrorist organizations can be classified as a far-right radical offshoot of mainstream mass media. The Jihad needs to conceptualize their martyrdom by leaving behind manifestos and live videos of their attacks; it is crucially important to them that their ill deeds are being covered by news media. The components the media looks for to deem the news "worthy" enough to publicize are categorized into ten qualities; terrorists usually exceed half in their attacks. These include: Immediacy, Conflict, Negativity, Human Interest, Photographability, Simple Story Lines, Topicality, Exclusivity, Reliability, and Local Interest. Historically, morality and profitability are two motivations which are not easily weighed when delivering news; recent news coverage has become far more motivated in making money for their parent corporation than serving as a defender of truth, doing true journalistic fact-finding, and shielding the public from news which is sensational, outright untrue, or politically-motivated propaganda. A study concerning the disparity in coverage of terrorist events took attacks from the ten‑year span of 2005–2015 and found that 136 episodes of terrorism occurred in the United States. LexisNexis Academic and CNN were the platforms used to measure the media coverage. It was found that out of other terrorist attacks showed on the news, one's with Muslim perpetrators received more than 357% coverage. In addition to this disparity, attacks also received more coverage when they were targeted at the government, had high fatality rates, and showed arrests being made. These findings were aligned with America's tendency to categorize Muslim people as a threat to national security. Thus, mass media coverage on terrorism is creating fake narratives and an absence of related coverage. For instance, the American public believes that crime rates have been on the rise which in fact they have been on an all-time low. Given that the media often covers crime almost immediately and frequently, suggests that people infer it happening all the time. In reference to the disparity in terror attacks, three attacks were seen to have the least media coverage of all the 136. The Sikh Temple massacre in Wisconsin which had 2.6% coverage, the Kansas synagogue killings which had 2.2%, and the Charleston Church deaths which only resulted in 5.1% coverage. The three events had commonalities worth mentioning in that they all had white perpetrators and were not directed at government intuitions (in fact all targeted minorities). The media's obsession with terror is making people fearful of the wrong things and not attentive enough to the issues that are radically unseen. Not only are minorities usually not the perpetrators of domestic terrorism, but they are common victims in mass casualties or proximal witnesses to the attacks. In an early 2000s study, 72 Israeli adults were measured pre and posttest for increased anxiety after being exposed to news broadcasts of terrorism attacks. The study found that the group exposed to the broadcasts without any treatment (preparation intervention) had heightened levels of anxiety compared to the group that received the treatment along with viewing the broadcast. Since preparatory intervention is not yet normalized, people in proximity to ongoing coverage of terror events are suffering from the lasting impacts of fear and anxiety. Preparatory Intervention, in this case, was conducted by a group facilitator who introduced a topic concerning terrorism in which participants were instructed to write down feelings to share with the group and later learn to cope with. A discourse of fear created by mass media presence, but false information is leading people to prepare for the wrong situations. In the early 2000s, police units circulated public schools flooding the idea of Stranger Danger into the minds of adolescents. Children and their parents cautiously separated from strangers while perpetrators in those families' social circles continued to offend under the radar. For myths are becoming common, precedent and real danger is buried beneath the surface. It is these implementations of fear that are falsifying the true narrative which for terrorism is a huge social problem but one that is not resolved through entertainment and mass media production. Mass media like news outlets and even social media platforms are contributing to the growing discourse of fear surrounding terrorism. Terrorism and social media refers to the use of social media platforms to radicalize and recruit violent and non-violent extremists. According to some researchers the convenience, affordability, and broad reach of social media platforms such as YouTube, Facebook and Twitter, terrorist groups and individuals have increasingly used social media to further their goals, recruit members, and spread their message. Attempts have been made by various governments and agencies to thwart the use of social media by terrorist organizations.Terror groups take to social media because it's cheap, accessible, and facilitates quick access to a lot of people. Social media allow them to engage with their networks. In the past, it wasn't so easy for these groups to engage with the people they wanted to whereas social media allows terrorists to release their messages right to their intended audience and interact with them in real time. "Spend some time following the account, and you realize that you're dealing with a real human being with real ideas- albeit boastful, hypocritical, violent ideas". Al- Qaeda has been noted as being as being one of the terror groups that uses social media the most extensively. "While almost all terrorist groups have websites, al qaeda [sic] is the first to fully exploit the internet. This reflects al-Qaeda's unique characteristics." Despite the risks of making statements, such as enabling governments to locate terror group leaders, terror leaders communicate regularly with video and audio messages which are posted on the website and disseminated on the internet. ISIS uses social media to their advantage when releasing threatening videos of beheadings. ISIS uses this tactic to scare normal people on social media. Similarly, Western domestic terrorists also use social media and technology to spread their ideas. == Traditional media == Many authors have proposed that media attention increases perceptions of risk of fear of terrorism and crime and relates to how much attention the person pays to the news. The relationship between terrorism and the media has long been noted. Terrorist organizations depend on the open media systems of democratic countries to further their goals and spread their messages. To garner publicity for their cause, terrorist organizations resort to acts of violence and aggression that deliberately target civilians. This method has proven to be effective in gathering attention: It cannot be denied that although terrorism has proved remarkably ineffective as the major weapon for taking down governments and capturing political power, it has been a remarkably successful means of publicizing a political cause and relaying the terrorist threat to a wider audience, particularly in the open and pluralistic countries of the West. When one says 'terrorism' in a democratic society, one also says 'media'. While a media organization may not support the goals of terrorist organizations, it is their job to report current events and issues. In the fiercely competitive media environment, when a terrorist attack occurs, media outlets scramble to cover the event. In doing so, the media help to further the message of terrorist organizations: To summarise briefly on the symbiotic nature of the relationship between terrorists and the media, the recent history of terrorism in many democratic countries vividly demonstrates that terrorists do thrive on the oxygen of publicity, and it is foolish to deny this. This does not mean that the established democratic media share the values of the terrorists. It does demonstrate, however, that the free media in an open society are particularly vulnerable to exploitation and manipulation by ru
Data plan
A data plan is a subscription plan from a cellular or other mobile service provider to provide internet data and connectivity. == Formatting == Data plans are usually created by a contract between the telecommunications carrier and the user of their service. This contract outlines a maximum amount of usable data, usually highlighted in either megabytes or gigabytes, allotted per month for the user. In most cases companies will allow a user to surpass the amount of data allowed in the contract, however, will have to pay a per-gigabyte fee, ranging anywhere from five to fifteen U.S. dollars. === Popularization of unlimited plans === Unlimited data plans have seen a large increase in usage by consumers since their initial introduction by U.S. network T-Mobile. These plans, instead of setting an overall maximum for the user, have an amount set-up that, when surpassed, will slow the speed of the network for that user. Unlimited plans typically cost significantly more than the traditional shared data plans, which is a major reason that carriers have set large boundaries and fees. The limits imposed on unlimited plans are designed to fight against attempts to misuse the network, such as a DDoS attack, but are more commonly reasoned as a method to increase the number of people that can use one tower simultaneously. === Data speed changes === When a network is near reaching peak capacity data speeds may be slowed down by carriers as part of most major telecom contracts. This, as stated previously, allows for more people to be utilizing one tower, reducing needed capital for the company. Since speed changes are allowed at the company's will, the user has no official guarantee of speed on most major networks. === Costs brought upon by additional data === In many cases both the user and carrier have to incur additional costs when a user utilizes more of a given data package, which has helped in the proliferation of data caps and other forms of shared data plans. Most of the charges that the carrier has to incur for additional data usage is partially or fully given to the user of the network. ==== Users ==== Users are required to pay flat-rate additional fees that occur when they go above the amount of data given to them in their contract, utility, or prepaid plan. The cost per gigabyte of this fee is usually higher than what the contract itself offers, which discourages users from over-utilizing data and incurring a charge for the carrier. Certain contracts, which do not offer paying additional fees for an increase in data, may result in a shutdown of service, or in extremely rare cases, termination of the service as a whole. ==== Carriers ==== Carriers incur costs for additional data usage, as it limits the number of customers, and associated contracts, that they can handle on one network. Creating more cell phone towers in a given area would be costly, and largely useless until particular spikes in traffic. When the peak usable amount of one tower is reached, it may cause negative public relations towards the reliability of the corporation as a whole.
Blitter object
A blitter object (Bob) is a graphical element (GEL) used by the Amiga computer. Bobs are hardware sprite-like objects, movable on the screen with the help of the blitter coprocessor. == Overview == The AmigaOS GEL system consists of VSprites, Bobs, AnimComps (animation components) and AnimObs (animation objects), each extending the preceding with additional functionality. While VSprites are a virtualization of hardware sprites Bobs are drawn into a playfield by the blitter, saving and restoring the background of the GEL as required. The Bob with the highest video priority is the last one to be drawn, which makes it appear to be in front of all other Bobs. In contrast to hardware sprites Bobs are not limited in size and number. Bobs require more processing power than sprites, because they require at least one DMA memory copy operation to draw them on the screen. Sometimes three distinct memory copy operations are needed: one to save the screen area where the Bob would be drawn, one to actually draw the Bob, and one later to restore the screen background when the Bob moves away. An AnimComp adds animation to a Bob and an AnimOb groups AnimComps together and assigns them velocity and acceleration.
Digital cassettes
Digital audio cassette formats introduced to the professional audio and consumer markets: Digital Audio Tape (or DAT) is the most well-known, and had some success as an audio storage format among professionals and "prosumers" before the prices of hard drive and solid-state flash memory-based digital recording devices dropped in the late 1990s. Hard-drive recording has mostly made DAT obsolete, as hard disk recorders offer more editing versatility than tape, and easier importation into digital audio workstations (DAWs) and non-linear video editing (NLE) systems. Digital Compact Cassette was intended as a digital replacement for the mass-market analog cassette tape, but received very little attention or adaptation. Its failure is generally attributed to higher production costs than audio CDs, durability and indifferent reception by consumers. Digital video cassettes include: Betacam IMX (Sony) D-VHS (JVC) D1 (Sony) D2 (Sony) D3 D5 HD Digital-S D9 (JVC) Digital Betacam (Sony) Digital8 (Sony) DV HDV ProHD (JVC) MiniDV MicroMV == Analog cassettes used as digital data storage == Historically, the compact audio cassette which was originally designed for analog storage of music was used as an alternative to disk drives in the late 1970s and early 1980s to provide data storage for home computers. There is a number of unique and incompatible cassette tape data storage formats that all use the same analog compact audio cassette tape media. The ADAT system uses Super VHS tapes to record 8 synchronized digital audiotracks at once. There have also been several audio recording systems that used VHS video recorders as storage devices and video tape transports, generally by encoding the digital data to be recorded into an analog composite video signal (which resembles static) and then recording this to magnetic tape. These systems were often used as "mixdown" recorders, to record the finished mix from a multi-track recorder in preparation for the manufacture of a vinyl record, cassette tape, or CD. An example was the Dbx Model 700. Another example is the Sony PCM adaptor series. Several companies sold VHS backup solutions in the 1980s and 1990s where data was converted to a video image which was then saved onto a VHS tape. the Corvus "Mirror" ( U.S. patent 4380047A ) the Metrum Model 64 on S-VHS tape, the Danmere Backer tape backup system, the Alpha Microsystems Videotrax the Legacy Storage Systems International VAST (Variable Array Storage) the ArVid the Video Backup System Amiga, The S2 VLBI system at three NASA Deep Space Network complexes and over 20 other radio telescopes stores digital data on SVHS tapes.