Software

Software as a Service (SaaS)

Software as a Service (SaaS)

Software as a service (SaaS) is a software distribution model in which a third-party provider hosts applications and makes them available to customers over the Internet. SaaS is one of three main categories of cloud computing, alongside infrastructure as a service (IaaS) and platform as a service (PaaS).

SaaS is closely related to the application service provider (ASP) and on demand computing software delivery models. The hosted application management model of SaaS is similar to ASP, where the provider hosts the customer’s software and delivers it to approved end users over the internet.  In the software on demand SaaS model, the provider gives customers network-based access to a single copy of an application that the provider created specifically for SaaS distribution. The application’s source code is the same for all customers and when new features or functionalities are rolled out, they are rolled out to all customers. Depending upon the service level agreement (SLA), the customer’s data for each model may be stored locally, in the cloud or both locally and in the cloud.Organizations can integrate SaaS applications with other software using application programming interfaces (APIs). For example, a business can write its own software tools and use the SaaS provider’s APIs to integrate those tools with the SaaS offering.

There are SaaS applications for fundamental business technologies, such as email, sales management, customer relationship management (CRM), financial management, human resource management (HRM), billing and collaboration. Leading SaaS providers include SalesforceOracleSAP, Intuit and Microsoft.

SaaS applications are used by a range of IT professionals and business users, as well as C-level executives.

Pizza as a service

Advantages

SaaS removes the need for organizations to install and run applications on their own computers or in their own data centers. This eliminates the expense of hardware acquisition, provisioning and maintenance, as well as software licensing, installation and support. Other benefits of the SaaS model include:

Flexible payments: Rather than purchasing software to install, or additional hardware to support it, customers subscribe to a SaaS offering. Generally, they pay for this service on a monthly basis using a pay-as-you-go model. Transitioning costs to a recurring operating expense allows many businesses to exercise better and more predictable budgeting. Users can also terminate SaaS offerings at any time to stop those recurring costs.

Scalable usage: Cloud services like SaaS offer high vertical scalability, which gives customers the option to access more, or fewer, services or features on-demand.

Automatic updates: Rather than purchasing new software, customers can rely on a SaaS provider to automatically perform updates and patch management. This further reduces the burden on in-house IT staff.

Accessibility and persistence: Since SaaS applications are delivered over the Internet, users can access them from any Internet-enabled device and location.

Disadvantages

But SaaS also poses some potential disadvantages. Businesses must rely on outside vendors to provide the software, keep that software up and running, track and report accurate billing and facilitate a secure environment for the business’ data. Providers that experience service disruptions, impose unwanted changes to service offerings, experience a security breach or any other issue can have a profound effect on the customers’ ability to use those SaaS offerings. As a result, users should understand their SaaS provider’s service-level agreement, and make sure it is enforced.

Software

CGI Definition

CGI Definition

CGI has two different meanings: 1) Common Gateway Interface, and 2) Computer Generated Imagery.

1) Common Gateway Interface

The Common Gateway Interface (CGI) is a set of rules for running scripts and programs on a Web server. It specifies what information is communicated between the Web server and clients’ Web browsers and how the information is transmitted.

Most Web servers include a cgi-bin directory in the root folder of each website on the server. Any scripts placed in this directory must follow the rules of the Common Gateway Interface. For example, scripts located in the cgi-bin directory may be given executable permissions, while files outside the directory may not be allowed to be executed. A CGI script may also request CGI environment variables, such as SERVER_PROTOCOL and REMOTE_HOST, which may be used as input variables for the script.

Since CGI is a standard interface, it can be used on multiple types of hardware platforms and is supported by several types Web server software, such as Apache and Windows Server. CGI scripts and programs can also be written in several different languages, such as C++Java, and Perl. While many websites continue to use CGI for running programs and scripts, developers now often include scripts directly within Web pages. These scripts, which are written in languages such as PHP and ASP, are processed on the server before the page is loaded, and the resulting data is sent to the user’s browser.

2) Computer Generated Imagery

In the computer graphics world, CGI typically refers to Computer Generated Imagery. This type of CGI refers to 3D graphics used in film, TV, and other types of visual media. Most modern action films include at least some CGI for special effects, while other movies, such as a Pixar animated films, are built completely from computer generated graphics.

 

Software

Image Scaling Definition

Image Scaling Definition

Image scaling is the process of resizing a digital image. Scaling down an image makes it smaller while scaling up an image makes it larger. Both raster graphics and vector graphics can be scaled, but they produce different results.

Raster Image Scaling

A raster graphic is a bitmap image comprised of individual pixels. Examples include JPEG and PNG files. The process of scaling raster graphics is also called “resampling,” in which pixels are mapped to a new grid, which may be smaller or larger than the original matrix.

Scaling down a raster graphic may cause a slight decrease in image quality since the pixels are squeezed into a smaller grid. Colors must be blended and edges are often smoothed out using a process called anti-aliasing. A good image scaling algorithm or “scaler” will keep most of the image detail when scaling down an image. The further an image is scaled down, the less detail can be maintained.

Scaling up a raster graphic also decreases the image quality. Generally, increasing the size of a digital image will cause it to look blurry. The larger the image is scaled, the fuzzier it will appear. Anti-aliasing can be used to smooth out the edges, but a scaled-up image will not look as clear as the original image.

Vector Image Scaling

Vector graphics, such as an .SVG or .AI file, are comprised of points and lines, also called paths. These paths can be scaled up or down with no loss of quality. Instead of mapping pixels to another grid, vector image scaling simply moves the points within the image.

Since vector graphics are not defined by pixels, they appear sharp at both small and large sizes. For this reason, company logos and application icons are often designed as vector graphics. When published in a software application or website, the images can be scaled to a specific size and then saved as a raster graphic.

NOTE: “Video Upscaling” is the process of scaling video for a higher-resolution display. The goal is to make a lower-resolution video look sharp at a higher resolution. For example, an HD video might be upscaled to 4K. A good upscaling algorithm will keep as much detail as possible at the higher resolution, but cannot make the video look as sharp as a video originally recorded in 4K.

Software

Snapchat Definition

Snapchat Definition

Snapchat is a mobile app and service for sharing photos, videos, and messages with other people. Once you view a message received via Snapchat, it is automatically deleted. This makes the service ideal for sharing quick updates with friends without accumulating media or messages on your mobile device.

The Snapchat app is available for iOS and Android devices. Once you download and install the app, you can create an account and add friends. You can then take a “snap” and send it to one or more of the people in your friends list. You can also use Snapchat to send quick text messages that disappear once the recipient reads them.

To take a photo in Snapchat, simply tap the capture button while the camera is active. To take a video, hold down the button for a few seconds to record a short clip. Once you’ve captured your photo or video, you can swipe right or left to apply filters or add other effects. You can tap the “T” icon in the upper right to add text and tap the pencil icon to select a color and draw on your snap before sending it. If you’re taking a selfie, you can press and hold on your face before capturing the shot. This will allow the app to detect your face and you can apply fun effects to your selfie before sending it.

Snapchat allows you to send snaps directly to specific friends or share them with all your friends by adding them to your “Story.” After you capture a photo or video, you can tap the “+” icon near the bottom of the screen to add the snap to your story. Your friends can view the images and videos you’ve added for 24 hours after you publish them. You can also view your friends’ stories by swiping to the Stories screen within the app.

Software

Algorithm Definition

Algorithm Definition

An algorithm is a set of instructions designed to perform a specific task. This can be a simple process, such as multiplying two numbers, or a complex operation, such as playing a compressed video file. Search engines use proprietary algorithms to display the most relevant results from their search index for specific queries.

In computer programming, algorithms are often created as functions. These functions serve as small programs that can be referenced by a larger program. For example, an image viewing application may include a library of functions that each use a custom algorithm to render different image file formats. An image editing program may contain algorithms designed to process image data. Examples of image processing algorithms include cropping, resizing, sharpening, blurring, red-eye reduction, and color enhancement.

In many cases, there are multiple ways to perform a specific operation within a software program. Therefore, programmers usually seek to create the most efficient algorithms possible. By using highly-efficient algorithms, developers can ensure their programs run as fast as possible and use minimal system resources. Of course, not all algorithms are created perfectly the first time. Therefore, developers often improve existing algorithms and include them in future software updates. When you see a new version of a software program that has been “optimized” or has “faster performance,” it most means the new version includes more efficient algorithms.

Software

App Definition

App Definition

App is short for “application,” which is the same thing as a software program. While an app may refer to a program for any hardware platform, it is most often used to describe programs for mobile devices, such as smartphones and tablets.

The term “app” was popularized by Apple when the company created the “App Store” in 2008, a year after the first iPhone was released. As the iPhone and App Store grew in popularity, the term “app” became the standard way to refer to mobile applications. Programs for Android and Windows Phone are now called “apps” as well.

Unlike applications for traditional PCs (often called “desktop applications”), mobile apps can only be obtained by downloading them from an online app store. Most devices automatically install apps when downloaded, which creates a seamless installation process for the user. Some apps are free, while others must be purchased. However, mobile apps are typically much cheaper than PC applications, and many are available for only 99 cents. In fact, most paid apps are less than $10.

Part of the reason mobile apps are cheaper than desktop applications is because they are often less advanced and take less resources to develop. Apps are limited to the capabilities of the mobile operating system (such as iOS or Android) and therefore may not offer as much functionality as a desktop program. For example, a word processor for Android will most likely have significantly less features than a word processing application for Windows. Most apps are designed to be small, fast, and easy-to-use. Unlike desktop applications, apps are intended to be used on-the-go and are developed to advantage of a small touchscreen interface.

NOTE: Apple released the Mac App Store in January, 2011, which offers downloadable applications for Mac OS X. In this case, the term “app” refers to desktop applications.

Software

Raw Data Definition

Raw Data Definition

Raw data is unprocessed computer data. This information may be stored in a file, or may just be a collection of numbers and characters stored on somewhere in the computer’s hard disk. For example, information entered into a database is often called raw data. The data can either be entered by a user or generated by the computer itself. Because it has not been processed by the computer in any way, it is considered to be “raw data.” To continue the culinary analogy, data that has been processed by the computer is sometimes referred to as “cooked data.”

Software

Sprite Definition

Sprite Definition

A sprite is a bitmap graphic that is designed to be part of a larger scene. It can either be a static image or an animated graphic. Examples of sprites include objects in 2D video games, icons that are part of an application user interface, and small images published on websites.

In the 1980s and for most of the 1990s, sprites were the standard way to integrate graphics into video games. Graphic artists created small 2D images that were used to represent characters and other objects. Developers referenced these sprites in the source code and assigned properties such as when the sprites were displayed and how they interacted with other sprites. For example, in a side-scroller, such as Super Mario Bros, the sprite of an enemy Koopa would turn into a flattened Koopa when Super Mario jumped on it. Today, some video games still use 2D sprites, but most mainstream games use 3D polygons instead. Since computers and gaming consoles now have dedicated 3D video cards, they can actually render 3D objects more efficiently than 2D sprites.

While sprites have become less common in modern video games, they are still used by software developers for other purposes. For example, sprites are often used to add buttons, symbols, and other user interface elements to software programs. Developers can attach actions to sprites within the user interface, such as playing an animation or changing the current view of the window when the sprite is clicked. Sprites are especially useful for adding custom graphics that are not natively supported by the operating system’s API.

Sprites are also used on the Web for navigation buttons and for adding visual appeal to webpages. In recent years, sprite sheets have become a popular way for web developers to load website graphics. By combining a large number of sprites into a single image, all the sprites can be downloaded and cached by a user’s browser with a single request to the server. The images are then displayed using CSS properties that define the locations of individual sprites within the image.

Software

FPS Definition

FPS Definition

Stands for “Frames Per Second.” FPS is used to measure frame rate – the number of consecutive full-screen images that are displayed each second. It is a common specification used in video capture and playback and is also used to measure video game performance.

On average, the human eye can process 12 separate images per second. This means a frame rate of 12 FPS can display motion, but will appear choppy. Once the frame rate exceeds 12 FPS, the frames appear less discrete and start to blur together. A frame rate of 24 FPS is commonly used for film since it creates a smooth appearance. Many video cameras record in 30 or 60 FPS, which provides even smoother motion.

The 60i (60 FPS, interlaced) format was used for NTSC broadcasts and was replaced by the 60p (60 FPS, progressive scan) with HDTV. This means HDTV not only provides a higher resolution than NTSC, but also yields smoother playback. In order to take advantage of higher frame rates, the display on which the video is output must support a refresh rate that is at least as high as the frame rate. That is why most televisions and monitors support refresh rates of at least 60 hertz.

FPS is also used to measure the frame rate of video games. The maximum frame rate is generally determined by a combination of the graphics settings and the GPU. For example, if you are running a new game on an old computer, you may have to reduce the quality of the graphics to maintain a high frame rate. If you have a new computer with a powerful video card, you may be able to increase the graphics settings without reducing the FPS.

While some games limit the maximum frame rate, it is not uncommon for a powerful GPU to generate over 100 FPS. For a game to be playable without any lag, it helps to make sure the game maintains over 60 FPS even when a lot is happening on the screen. Therefore, it is wise to configure your graphics settings conservatively to avoid choppy gameplay.

NOTE: FPS is also a common abbreviation for “First Person Shooter,” a type of 3D video game that gives you the perspective of the main character.

Software

Clip Art Definition

Clip Art Definition

Clip art is a collection of pictures or images that can be imported into a document or another program. The images may be either raster graphics or vector graphics. Clip art galleries many contain anywhere from a few images to hundreds of thousands of images.

Clip art is typically organized into categories, such as people, objects, nature, etc., which is especially helpful when browsing through thousands of images. Most clip art images also have keywords associated with them. For example, a picture of a female teacher in a classroom may have the keywords “school,” “teacher,” “woman,” “classroom,” and “students” associated with it. Most clip art programs allow you to search for images based on these keywords.

When you find a clip art image you want to use, you can copy it to your computer’s clipboard and paste it into another program, such as Photoshop or Microsoft Word. You may also be able to export the image to the Desktop or another folder on your hard disk. Most clip art is royalty free, meaning you can use the images without paying royalties to the creators of the images. So if you buy a clip art package with 50,000 images for $50.00, you are only paying 1/10 of one cent for each image. That’s a pretty good deal.