User talk:Smith Ascii
Module : Understanding the Ebola Virus and How You Can Avoid It
INTRODUCTION
There has been an outbreak of the Ebola virus in West Africa. Guidelines have been issued by a number of public health Agencies Worldwide to assist in halting the spread of this deadly disease. This free lesson summarizes the health guidelines issued and will help you Understand the background of this disease, its symptoms, and how the medical profession Is dealing with treatment. I hope this short, free lesson on Ebola virus will assist education among those who are at risk From the disease and increase awareness of its treatment, and also increase understanding with regards to the limit of its danger to public Health.
THE YATEBTS TECHNOLOGY COMING SOON IN CAMEROON
Agent Smith, what do you think about this cheap, right up the sky's ass hacking? http://www.forbes.com/2010/02/02/hackers-cybercrime-cryptography-technology-security-satellite.html - Red1 (talk) 20:58, 26 August 2014 (CEST)
What is YateBTS
YateBTS is an open source GSM Base Station software.
You can use this software to create a 2G GSM network, either standalone or connected to the public telephony network.
The use of a non-DSP aproach for GSM protocol together with a SIP implementation that supports an IMS core and SS7 core network makes it a disruptive technology.
Please see the INSTALL file for information of how to download, build and install YateBTS.
Configuration
YateBTS is a module for the Yate telephony engine.
You will need to configure Yate to load it and also YateBTS itself.
YateBTS
The module is configured by the ybts.conf file. Depending on the install method you may have just an ybts.conf.sample which you will need to copy as ybts.conf
As a minimum you will need to configure the radio band and frequency (ARFCN) on which YateBTS will operate. Please read the minimal instructions at top of ybts.conf.sample
Depending on the transceiver you will need to edit the path setting in ybts.conf:
[transceiver] Path=./transceiver
replace ./transceiver with ./transceiver-rad1 or ./transceiver-uhd or ./transceiver-usrp1
Alternatively you may create a symbolic link to the desired transceiver:
cd /usr/lib64/yate/bts (or wherever it is installed) ln -s transceiver-rad1 transceiver
Network In a Box
The Network In a Box (NIB) is a configuration that allows using YateBTS standalone with just local subscribers.
To use it you need to configure in Yate:
In file javascript.conf:
[general] routing=welcome.js
[scripts] nib=nib.js
In file extmodule.conf:
[scripts] gsm_auth.sh
For more info see: http://wiki.yatebts.com/index.php/Javascript_NIB
Cellphone Network Brings Coverage Almost Anywhere
OpenBTS and YateBTS help communities replace expensive cellular network infrastructure with open source software. Image: mayo5/Getty Antarctica is probably the last place you’d expect cellphone service. But thanks to the Australian government and a company called Range Networks, you’ll soon be able to find a signal near several research facilities on the continent. Range has already brought GSM service–the same type of network that carries voice calls and text messages elsewhere in the world–to Macquarie Island, a small island just outside the Antarctic Circle. This is preferable to walkie talkies or Wi-Fi because it provides wider coverage while using less energy. And although the network has a satellite uplink to connect it with the rest of the world, it doesn’t depend on satellites for local communications, which is essential to the safety of field researchers.
GSM networks like the one on the island usually cost about a million dollars to build, says Range Networks CEO Ed Kozel. But Range is able to bring the technology to Antarctica for just a few thousand dollars using an open source platform called OpenBTS, short for Open Base Transceiver Station. All you need to run a GSM network with OpenBTS is radio software and an off-the-shelf Linux server. “The legacy infrastructures are why most operators are so expensive to run, but we took a clean slate approach,” Kozel explains. Thanks to its barebones approach, the technology is a way of bringing cell service to all sorts of remote populations, from Antarctica to rural Indonesia. Big telecommunications companies are unlikely to build traditional networks in such places because they just wouldn’t be profitable. But the economics of open source are very different.
==From Indonesia to Iceland==
OpenBTS was co-created by Range Networks co-founder David Burgess in 2008, when he realized he could replace much of the traditional infrastructure involved in cellular networks with software. “My first encounter with mobile networks was in the defense contracting world,” says Burgess, who has since left the company to found a new venture called Legba. “I fell in love with the technology very quickly, but the way GSM was deployed–and still is in the traditional world–is fairly inefficient. There’s a lot of things that made sense back in the 80s when computers were very expensive and consumed a lot of power, but just don’t make sense today.”
Though OpenBTS is typically used remote areas with low populations, it has also inspired some other, unexpected uses. A search and rescue team in Iceland, for instance, used the software to turn one of its helicopters into a flying cellphone tower that can be used to triangulate the location of missing persons. And yes, the software can be used by hackers to hijack people’s phone calls by spoofing cellphone towers. “It’s not the intent for the company, but because the software is open source, people can do that,” Kozel acknowledges. But the benefits of bringing wireless connectivity to people who otherwise wouldn’t have it, he says, is worth the trade-off. The Next Step While Range Networks continues to build new networks in remote areas, Burgess has turned his attention to another problem. He says many network operators are planning to switch over to the widely used LTE cellular standard and shut down their GSM networks in order to save money and open up more of the wireless spectrum for LTE. But many of those networks, he explains, aren’t planning to replace the GSM infrastructure in rural locations with newer LTE infrastructure, which will leave customers in those areas without any access. After leaving Range last year, Burgess is now focused on a new open source creation called YateBTS. This platform combines code from OpenBTS with another open source project called Yate, which is short for Yet Another Telephony Engine. Burgess says Yate, which was developed by Romanian company NullTeam, acts something like a translator between different types of telecommunications protocols. This lets YateBTS integrate with other network standards. Burgess hopes Legba, which he started to commercialize YateBTS, will be able to provide network operators with a way of running GSM networks on the same infrastructure, and even within the same spectrum, as their LTE networks. But his ambition is greater than that. He’d also like to revolutionize infrastructure the way Android has revolutionized mobile computing. “What Android did for the handset world was enable a whole new wave of companies and technologies it produced a lot of new products and new competition in the smart phone market,” he says. “What Android did for the handsets we’d like to do for the network.”
What powers YateBTS Lab Kit and YateBTS SatSite[2014]?
USA - Legba [2] and SS7Ware [3] will present YateBTS, the versatile software that powers YateBTS Lab Kit and YateBTS SatSite at the Mobile World Congress 2014 in Barcelona. While YateBTS Lab Kit is particularly designed for product testing and academic research, YateBTS SatSite is the commercial solution for rural networks, M2M applications, remote locations and private networks.
The CEOs of both companies, David Burgess and Diana Cionoiu, will present their game-changing products based on intelligently designed software and commodity hardware, which have much lower total life cycle costs than the complex, proprietary systems in the market today. The YateBTS Lab Kit provides the full functionality of a 2.5G network. It is intended for mobile network operator labs, M2M application development, mobile phone vendors, academics and security researchers.
The YateBTS SatSite is a commercial 2.5G network solution intended for rural networks, M2M applications, remote locations and private networks. A key feature of SatSite is a 3G backhaul modem to support easy extension of mobile coverage into remote areas. SatSite provides local call switching and low-rate speech encoding to reduce backhaul loading, ideal for areas with sparse infrastructure. "It is with great pleasure that we announce our presence at Mobile World Congress in Barcelona 2014. This is the biggest event in the industry and a good opportunity for networking." - David Burgess, CEO of Legba. "There are 2 billion people in this world without mobile coverage. And another 2 billion with poor mobile coverage. Our goal is to provide price-wise accessible solutions for that market." - Diana Cionoiu, CEO of SS7Ware.
HOW TO SET UP THE YATBTS TECHNOLOGY
This quick tutorial is to help you set up your yateBTS GSM network. First:
Second:
- One YatesBTS lab Kit
- Power Adapter
- Two GSM antennas
- Two filters,One for the Europe's and one for the America
- Two phones,with their charges
- Five Sim cards,two of them are already inserted in the phones
- One smart card reader
- And the WiFi antenna
Third: Now we have to Assemble the Content
Briefing on Assemble
- connect one antenna to the TX socket
- connect the filter to the RX socket
- connect the second antenna to the filter
- Before connecting the the power adapter to the lab kit 12 BDC socket,check that your using the lab kit's dedicated power adapter and its power output..ok
- this one is optional,connect the Smart card reader to any of the USB ports,
- connect the WiFi antenna,
briefing on Access
- connect the monitor to the yateBTS via the DVI or the HDMI socket
- connect the key board and the mouse to any of the USB ports or the PS2 ports
UNDERSTANDING THE API
API in procedural languages
In most procedural languages, an API specifies a set of functions or routines that accomplish a specific task or are allowed to interact with a specific software component. This specification is presented in a human readable format in paper books, or in electronic formats like ebooks or as man pages. For example, the math API on Unix systems is a specification on how to use the mathematical functions included in the math library. Among these functions there is a function, named sqrt(), that can be used to compute the square root of a given number.
The Unix command man 3 sqrt presents the signature of the function sqrt in the form:
SYNOPSIS
#include <math.h> double sqrt(double X); float sqrtf(float X);
DESCRIPTION
sqrt computes the positive square root of the argument. ...
RETURNS
On success, the square root is returned. If X is real and positive...
This description means that sqrt() function returns the square root of a positive floating point number (single or double precision), as another floating point number.
Hence the API in this case can be interpreted as the collection of the include files used by a program, written in the C language, to reference that library function, and its human readable description provided by the man pages.
Similarly, other languages have procedural libraries; for example, Perl has dedicated APIs for the same mathematical task with built-in documentation available, which is accessible using the perldoc utility:
$ perldoc -f sqrt
sqrt EXPR sqrt #Return the square root of EXPR. If EXPR is omitted, returns #square root of $_. Only works on non-negative operands, unless #you've loaded the standard Math::Complex module.
API in object-oriented languages
In its simplest form, an object API is a prescription of how objects work in a given object-oriented language – usually it is expressed as a set of classes with an associated list of class methods.
For example, in the Java language, if the class Scanner is to be used (a class that reads input from the user in text-based programs), it is required to import the java.util.Scanner library, so objects of type Scanner can be used by invoking some of the class' methods:
import java.util.Scanner;
public class Test {
public static void main(String[] args) { System.out.println("Enter your name:"); Scanner inputScanner = new Scanner(System.in); String name = inputScanner.nextLine(); System.out.println("Your name is " + name + "."); inputScanner.close(); }
}
In the example above, methods nextLine() and close() are part of the API for the Scanner class, and hence are described in the documentation for that API, e.g.:
public String nextLine()
Advances this scanner past the current line and returns the input that was skipped. ...
Returns:
the line that was skipped
Throws:
NoSuchElementException - if no line was found
IllegalStateException - if this scanner is closed
More generally, in object-oriented languages, an API usually includes a description of a set of class definitions, with a set of behaviors associated with those classes. This abstract concept is associated with the real functionality exposed, or made available, by the classes that are implemented in terms of class methods (or more generally by all its public components hence all public methods, but also possibly including any internal entity made public, like fields, constants, nested objects, enums, etc.).
The API in this case can be conceived of as the totality of all the methods publicly exposed by the classes (usually called the class interface). This means that the API prescribes the methods by which one interacts with/handles the objects derived from the class definitions.
More generally, one can see the API as the collection of all the kinds of objects one can derive from the class definitions, and their associated possible behaviors. Again: the use is mediated by the public methods, but in this interpretation, the methods are seen as a technical detail of how the behavior is implemented.
For instance: a class representing a Stack can simply expose publicly two methods push() (to add a new item to the stack), and pop() (to extract the last item, ideally placed on top of the stack).
In this case the API can be interpreted as the two methods pop() and push(), or, more generally, as the idea that one can use an item of type Stack that implements the behavior of a stack: a pile exposing its top to add/remove elements. The second interpretation appears more appropriate in the spirit of object orientation.
This concept can be carried to the point where a class interface in an API has no methods at all, but only behaviors associated with it. For instance, the Java and Lisp language APIs include the interface named Serializable, which is a marker interface that requires each class implementing it to behave in a serialized fashion. This does not require implementation of a public method, but rather requires any class which implements this interface to be based on a representation that can be saved (serialized) at any time.
Similarly the behavior of an object in a concurrent (multi-threaded) environment is not necessarily determined by specific methods, belonging to the interface implemented, but still belongs to the API for that Class of objects, and should be described in the documentation.
In this sense, in object-oriented languages, the API defines a set of object behaviors, possibly mediated by a set of class methods.
In such languages, the API is still distributed as a library. For example, the Java language libraries include a set of APIs that are provided in the form of the JDK used by the developers to build new Java programs. The JDK includes the documentation of the API in JavaDoc notation.
The quality of the documentation associated with an API is often a factor determining its success in terms of ease of use.
API libraries and frameworks
An API is usually related to a software library: the API describes and prescribes the expected behavior while the library is an actual implementation of this set of rules. A single API can have multiple implementation (or none, being abstract) in the form of different libraries that share the same programming interface.
An API can also be related to a software framework: a framework can be based on several libraries implementing several APIs, but unlike the normal use of an API, the access to the behavior built into the framework is mediated by extending its content with new classes plugged into the framework itself. Moreover the overall program flow of control can be out of the control of the caller, and in the hands of the framework via inversion of control or a similar mechanism. API and protocols
An API can also be an implementation of a protocol.
When an API implements a protocol it can be based on proxy methods for remote invocations that underneath rely on the communication protocol. The role of the API can be exactly to hide the detail of the transport protocol. E.g.: RMI is an API that implements the JRMP protocol or the IIOP as RMI-IIOP.
Protocols are usually shared between different technologies (system based on given computer programming languages in a given operating system) and usually allow the different technologies to exchange information, acting as an abstraction/mediation level between the two different environments. APIs are usually specific to a given technology: hence the APIs of a given language cannot be used in other languages, unless the function calls are wrapped with specific adaptation libraries.
To enable the exchange of information among systems that use different technologies, when an API implements a protocol, it can prescribe a language-neutral message format: e.g. SOAP uses XML as a general container for the messages to be exchanged. Object exchange API and protocols
An object API can prescribe a specific object exchange format which is usable locally within an application, while an object exchange protocol can define a way to transfer the same kind of information in a message sent to a remote system.
When a message is exchanged via a protocol between two different platforms using objects on both sides, the object in a programming language can be transformed (marshalled and unmarshalled) in an object in a remote and different language: so, e.g., a program written in Java invokes a service via SOAP or IIOP written in C# both programs use APIs for remote invocation (each locally to the machine where they are working) to (remotely) exchange information that they both convert from/to an object in local memory.
Instead when a similar object is exchanged via an API local to a single machine the object is effectively exchanged (or a reference to it) in memory: e.g. via memory allocated by a single process, or among multiple processes using shared memory, an application server, or other sharing technologies like tuple spaces. Object remoting API and protocols
An object remoting API is based on a remoting protocol, such as CORBA, that allows remote object method invocation. A method call, executed locally on a proxy object, invokes the corresponding method on the remote object, using the remoting protocol, and acquires the result to be used locally as return value.
When remoting is in place, a modification on the proxy object corresponds to a modification on the remote object. When only an object transfer takes place, the modification to the local copy of the object is not reflected on the original object, unless the object is sent back to the sending system. API sharing and reuse via virtual machine
Some languages like those running in a virtual machine (e.g. .NET CLI compliant languages in the Common Language Runtime (CLR), and JVM compliant languages in the Java Virtual Machine) can share an API. In this case, a virtual machine enables language interoperability, by abstracting a programming language using an intermediate bytecode and its language bindings. In these languages, the compiler performs just-in-time compilation or ahead-of-time compilation transforming the source code, possibly written in multiple languages, into its language-independent bytecode representation.
For instance, through the bytecode representation, a program written in Groovy or Scala language can use any standard Java class and hence any Java API. This is possible thanks to the fact both Groovy and Scala have an object model that is a superset of that of the Java language; thus, any API exposed via a Java object is accessible via Groovy or Scala by an equivalent object invocation translated in bytecode.
On the other side, Groovy and Scala introduce first-class entities that are not present in Java, like closures. These entities cannot be natively represented in Java language (Java 8 introduced the concept of lambda expression); thus, in order to enable interoperation a closure is encapsulated in a standard object. In this case the closure invocation is mediated by a method named call() which is always present in an closure object as seen by Java.
Web APIs
Main article: Web API
When used in the context of web development, an API is typically defined as a set of Hypertext Transfer Protocol (HTTP) request messages, along with a definition of the structure of response messages, which is usually in an Extensible Markup Language (XML) or JavaScript Object Notation (JSON) format. While "web API" historically has been virtually synonymous for web service, the recent trend (so-called Web 2.0) has been moving away from Simple Object Access Protocol (SOAP) based web services and service-oriented architecture (SOA) towards more direct representational state transfer (REST) style web resources and resource-oriented architecture (ROA).[6] Part of this trend is related to the Semantic Web movement toward Resource Description Framework (RDF), a concept to promote web-based ontology engineering technologies. Web APIs allow the combination of multiple APIs into new applications known as mashups. Web use to share content
The practice of publishing APIs has allowed web communities to create an open architecture for sharing content and data between communities and applications. In this way, content that is created in one place can be dynamically posted and updated in multiple locations on the web:
Photos can be shared from sites like Flickr and Photobucket to social network sites like Facebook and MySpace. Content can be embedded, e.g. embedding a presentation from SlideShare on a LinkedIn profile. Content can be dynamically posted. Sharing live comments made on Twitter with a Facebook account, for example, is enabled by their APIs. Video content can be embedded on sites served by another host. User information can be shared from web communities to outside applications, delivering new functionality to the web community that shares its user data via an open API. One of the best examples of this is the Facebook Application platform. Another is the Open Social platform. If content is a direct representation of the physical world (e.g., temperature at a geospatial location on earth) then an API can be considered an "Environmental Programming Interface" (EPI). EPIs are characterized by their ability to provide a means for universally sequencing events sufficient to utilize real-world data for decision making.
Implementations
The POSIX standard defines an API that allows writing a wide range of common computing functions in a way such that they can operate on many different systems (Mac OS X, and various Berkeley Software Distributions (BSDs) implement this interface). However, using this requires re-compiling for each platform. A compatible API, on the other hand, allows compiled object code to function with no changes to the system that implements that API. This is beneficial to both software providers (where they may distribute existing software on new systems without producing and distributing upgrades) and users (where they may install older software on their new systems without purchasing upgrades), although this generally requires that various software libraries implement the necessary APIs as well.
Microsoft has shown a strong commitment to a backward compatible API, particularly within their Windows API (Win32) library, such that older applications may run on newer versions of Windows using an executable-specific setting called "Compatibility Mode".[9]
Among Unix-like operating systems, there are many related but incompatible operating systems running on a common hardware platform (particularly Intel 80386-compatible systems). There have been several attempts to standardize the API such that software vendors may distribute one binary application for all these systems; however, to date, none of these has met with much success. The Linux Standard Base is attempting to do this for the Linux platform, while many of the BSD Unixes, such as FreeBSD, NetBSD, and OpenBSD, implement various levels of API compatibility for both backward compatibility (allowing programs written for older versions to run on newer distributions of the system) and cross-platform compatibility (allowing execution of foreign code without recompiling).
Source:click
Common Words and definition in business
- Customer relationship management (CRM)
is about tracking and managing business relationships
- Enterprise resource planning (ERP)
is about managing business materials and processes. Together they can transform a business.
What Keeps Me Awake At Night?
g