Friday, December 27, 2013

Best app for Beer lovers: Drinks Guide™ Beers n Cocktail

Best app for Beer lovers:

Drinks Guide™ - Beers, Cocktail Recipes, BAC% Calculator and Drinks Tracker

Download Free
Google Play: https://play.google.com/store/apps/details?id=balli.daru

Facebook Page: https://www.facebook.com/DrinksGuide

All-in-One app where you can find thousands of beers and cocktail recipes. BAC% calculator feature can help you decide if you good to drive or not, depending upon blood alcohol content in your body. Drinks tracker feature can help you keep track of number of beers, shots or wines you drink over period of time. You can add the beers or cocktails you like to Favorites tab for easy access next time. Send the beer details or a cocktail recipe to any friend with one-click.

Detailed description of each feature:
Beers: Search 15000+ beers with detailed information. 3-way search gives you flexibility to browse through entire beers database efficiently and find your favorite beers.
·      Browse By Location: Visiting different country or a state in USA? Find local beers around!
·      Browse By Style: There are hundreds of different beer styles. Pick the one you like and find new beers!
·      Browse By ABV%: Choose low alcohol beers, light, medium, high alcohol up to 65% or anything in between.

Cocktails: Check out 2000+ Cocktail recipes. Plus, you can also browse through list of cocktails based on ingredients you would like in it.

BAC% Calculator: Calculate your Blood Alcohol Content % in your body before you drive. Must use feature before you drink and drive.

Drinks Tracker: Keep track of your drinks. Set a Goal and add your drinks in the database. View your drinking stats. Reset the database anytime.

Advanced Search: Using this feature you can find cocktails based on the flavor you have a mood for. Could be any fruit, brandy, gin etc. Do not remember the full beer name you had last time? Try searching it over here with whatever you remember.

Additional features: Add any drinks to favorites, send cocktail recipes and beers details to your friends etc.  

Wednesday, April 17, 2013

Simple Explanations of Breadboard, Oscilloscope, Function Generator, Zener Diode, Halfwave - Fullwave Rectifier and PSPICE circuit simulation software


BREADBOARD: Breadboards are used to design circuits in a rapid and easily changed fashion. Wires and components are simply pushed into the holes to form a completed circuit and power can be applied. One of the main advantages of using a breadboard is that the components are not soldered and if they are positioned incorrectly they can be moved easily to a new position on the board.

OSCILLOSCOPE: An oscilloscope is the most important piece of electronic test equipment. They allow you to see, in great detail, what is going on with all the voltage level that changes quickly moment by moment in your circuit.                                                                                                 
  
FUNCTION GENERATOR: A function generator is an electronic test equipment used to generate electrical waveforms. The signals from function generator represent the periodic value of a given mathematical function, especially sine, square, triangle and sawtooth waveforms. These waveforms can be either repetitive or single-shot. Model 4086AWG is a laboratory grade synthesized function generator with arbitrary capability. The 4086AWG produces high purity, low distortion sine waves up to 80 MHz.

ZENER DIODE:  Zener diode is a solid state device having two contiguous regions of opposite conductivity type (P-type and N-type) and a PN junction at the interface of the two regions. Typically, one of the regions is more lightly doped than the other, and is the region chiefly affecting breakdown voltage of the PN junction. Zener diodes are commonly formed in a semiconductor process that utilizes a separate doping step to define the relative doping concentrations.  Zener diodes are used to protect circuit components from an over-voltage condition by preventing a circuit node from exceeding the breakdown voltage. 

          HALF WAVE RECTIFIERS: Half wave rectifier uses the ability of a silicon diode to conduct current while forward biased and stop current flow while reverse biased. In half wave rectification, either the positive or negative half of the AC wave is passed, while the other half is blocked. Because only one half of the input waveform reaches the output, it is very inefficient if used for power transfer.

            FULL WAVE RECTIFIER: A full-wave rectifier converts the whole of the input waveform to one of constant polarity (positive or negative) at its output. Full-wave rectification converts both polarities of the input waveform to DC (direct current), and is more efficient. A Full Wave Rectifier is a circuit, which converts an ac voltage into a pulsating dc voltage using both half cycles of the applied ac voltage. It uses two diodes of which one conducts during one half cycle while the other conducts during the other half cycle of the applied ac voltage.           

                PSPICE: It is SPICE software, an analog circuit and digital logic simulation software. The full form of SPICE is Simulation Program with Integrated Circuit Emphasis. Now a days it is available for students to download demo version from the internet, or buy full version, and run on their personal computers, that is why the letter "P" is added in its name. PSPICE is a powerful general purpose analog and mixed-mode circuit simulator that is used to verify circuit designs and to predict the circuit behavior. It is widely used in electronic design automation. SPICE solves sets of non-linear differential equations in the frequency domain, steady state and time domain and can simulate the behavior of transistor and gate designs. PSPICE was developed at the University of California at Berkeley in the mid-1970s, there are enhanced versions of SPICE provided by several software companies. The heart of your SPICE file is the netlist, which is simply a list of components and the nets (or nodes) that connect them together. As an example, let’s create a netlist for a simple low-pass RC filter. Just draw the schematic, then assign names for the resistor, capacitor, voltage source (R1, C1, VS) and node numbers (1 and 2). Ground is the only exception whose node is always numbered 0.
PSpice has analog and digital libraries of standard components, such as NAND, NOR, flip-flops, MUXes, FPGA, PLDs  and many more digital components. This makes it a useful tool for a wide range of analog and digital applications.
The circuit design in the PSPICE can contain the following components:
  • Independent and dependent voltage and current sources
  • Resistors
  • Capacitors
  • Inductors
  • Mutual inductors
  • Transmission lines
  • Operational amplifiers
  • Switches
  • Diodes
  • Bipolar transistors
  • MOS transistors
  • JFET
  • MESFET
  • Digital gates

Tuesday, June 26, 2012

Barrel Shifter VHDL Code with diagram to learn

Barrel Shifter: Rotates 8-bit input by a specific amount.
Problem with large input (e.g., 32 bits)
– Large multiplexing structure
– Lengthy code
– Better alternative

Barrel Shifter VHDL Code:
library ieee;
use ieee.std_logic_1164.all;
entity barrel_shifter is
   port(
      a: in std_logic_vector(7 downto 0);
      amt: in std_logic_vector(2 downto 0);
      y: out std_logic_vector(7 downto 0)
   );
end barrel_shifter ;
architecture sel_arch of barrel_shifter is
begin
   with amt select
      y<= a                             when "000",
          a(0) & a(7 downto 1)          when "001",
          a(1 downto 0) & a(7 downto 2) when "010",
          a(2 downto 0) & a(7 downto 3) when "011",
          a(3 downto 0) & a(7 downto 4) when "100",
          a(4 downto 0) & a(7 downto 5) when "101",
          a(5 downto 0) & a(7 downto 6) when "110",
          a(6 downto 0) & a(7) when others; -- 111
end sel_arch;

Friday, May 25, 2012

What is an Operating System? (Extended Machine and Resource Manager)

WHAT IS AN OPERATING SYSTEM?
I think its hard to pin down what an operating system is other than saying it is the software that runs in kernel mode and even that is not always true. Basically operating systems perform two unrelated functions: providing application programmers a clean abstract set of resources instead of the messy hardware ones and managing these hardware resources.

Therefore, OPERATING SYSTEM = EXTENDED MACHINE + RESOURCE MANAGER

Depending on who is doing the talking, you might hear mostly about one function or the other.

But here we will now look at both.

First case: Extended Machine
The architecture (instruction set, memory organization, I/O, and bus structure) of most computers at the machine language level is primitive and awkward to program, especially for input/output. To make this point more concrete, consider how floppy disk I/O is done using the NEC PD765 compatible controller chips used on most Intel-based personal computers. We use the floppy disk as an example, because, although it is obsolete, it is much simpler than a modem hard disk.

[ The PD765 has 16 commands, each specified by loading between 1 and 9 bytes into a device register. These commands are for reading and writing data, moving the disk arm, and formatting tracks, as well as initializing, sensing, resetting, and recalibrating the controller and the drives. The most basic commands are read and write, each of which requires 13 parameters, packed into 9 bytes. These parameters specify such items as the address of the disk block to be read, the number of sectors per track, the recording mode used on the physical medium, the intersector gap spacing, and what to do with a deleted-data-address-mark. When the operation is completed, the controller chip returns 23 status and error fields packed into 7 bytes. As if this were not enough, the floppy disk programmer must also be constantly aware of whether the motor is on or off. If the motor is off, it must be turned on (with a long startup delay) before data can be read or written. The motor cannot be left on too long, however, or the floppy disk will wear out.]
If you do not understand this mumbo jumbo, do not worry; that is precisely the point-it is rather esoteric. The programmer is thus forced to deal with the trade-off between long startup delays versus wearing out floppy disks (and losing the data on them). Without going into the real details, it should be clear that the average programmer probably does not want to get too intimately involved with the programming of floppy disks (or hard disks, which are worse). Instead, what the programmer wants is a simple, high-level abstraction to deal with.
In the case of disks, a typical abstraction would be that the disk contains a collection of named files. Each file can be opened for reading or writing, then read or written, and finally closed. Details such as whether or not recording should use modified frequency modulation and what the current state of the motor is should not appear in the abstraction presented to the application programmer.

Abstraction is the key to managing complexity. Good abstractions turn a nearly impossible task into two manageable ones. The first one of these is defining and implementing the abstractions. The second one is using these abstractions to solve the problem at hand.
One abstraction that almost every computer user understands is the file. It is a useful piece of information, such as a digital photo, saved e-mail message, or Web page. Dealing with photos, e-mails, and Web pages is easier than the details of disks, such as the floppy disk described above. The job of the operating system is to create good abstractions and then implement and manage the abstract objects thus created. Abstractions are one of the keys to understanding operating systems. This point is so important that it is worth repeating in different words. Real processors, memories, disks, and other devices are very complicated and present difficult, awkward, idiosyncratic, and inconsistent interfaces to the people who have to write software to use them. Sometimes this is due to the need for backward compatibility with older hardware, sometimes due to a desire to save money, but sometimes the hardware designers do not realize (or care) how much trouble they are causing for the software. One of the major tasks of the operating system is to hide the hardware and present programs with nice, clean, elegant, consistent, abstractions to work with instead.

Operating systems turn the ugly into the beautiful using abstraction concept.

It should be noted that the operating system's real customers are the application programs (via the application programmers, of course). They are the ones who deal directly with the operating system and its abstractions. In contrast, end users deal with the abstractions provided by the user interface, either a commandline shell or a graphical interface. While the abstractions at the user interface may be similar to the ones provided by the operating system, this is not always the case. To make this point clearer, consider the normal Windows desktop and the line-oriented command prompt. Both are programs running on the Windows operating system and use the abstractions Windows provides, but they offer very different user interfaces. Similarly, a Linux user running Gnome or KDE sees a very different interface than a Linux user working directly on top of the underlying (text-oriented) X Window System, but the underlying operating system abstractions are the same in both cases.That is a large and important subject, but one only peripherally related to operating systems.

Second case: Resource Manager
Modern computers consist of processors, memories, timers, disks, mice, network interfaces, printers, and a wide variety of other devices. The concept of an operating system as primarily providing abstractions to application programs is a top-down view. An alternative, bottom-up, view holds that the operating system is there to manage all the pieces of a complex system. In the alternative view, the job of the operating system is to provide for an orderly and controlled allocation of the processors, memories, and I/0 devices among the various programs competing for them.

Modem operating systems allow multiple programs to run at the same time. Imagine what would happen if three programs running on some computer all tried to print their output simultaneously on the same printer. The first few lines of printout might be from program 1, the next few from program 2, then some from program 3, and so forth. The result would be chaos. The operating system can bring order to the potential chaos by buffering all the output destined for the printer on the disk. When one program is finished, the operating system can then copy its output from the disk file where it has been stored for the printer, while at the same time the other program can continue generating more output, oblivious to the fact that the output is not really going to the printer (yet). When a computer (or network) has multiple users, the need for managing and protecting the memory, 110 devices, and other resources is even greater, since the users might otherwise interfere with one another. In addition, users often need to share not only hardware, but information (files, databases, etc.) as well.

In short, this view of the operating system holds that its primary task is to keep track of which programs are using which resource, to grant resource requests, to account for usage, and to mediate conflicting requests from different programs and users.

Resource management includes multiplexing (sharing) resources in two different ways: in time and in space. When a resource is time multiplexed, different programs or users take turns using it. First one of them gets to use the resource, then another, and so on. For example, with only one CPU and multiple programs that want to run on it, the operating system first allocates the CPU to one program, then, after it has run long enough, another one gets to use the CPU, then another, and then eventually the first one again. Determining how the resource is time multiplexed- who goes next and for how long-is the task of the operating system. Another example of time multiplexing is sharing the printer. When multiple print jobs are queued up for printing on a single printer, a decision has to be made about which one is to be printed next.

Tuesday, May 8, 2012

What design choices have to be made when integrating COTS products to create a COTS-solution system?


What design choices have to be made when integrating COTS products to create a COTS-solution system?
Ans: To develop systems using COTS products, you have to make a number of design choices:
1. Which COTS products offer the most appropriate functionality? Typically, there will be several COTS products available, which can be combined in different ways. If you don’t already have experience with a COTS product, it can be difficult to decide which product is the most suitable.
2. How will data be exchanged? Different products normally use unique data structures and formats. You have to write adaptors that convert from one representation to another. These adaptors are run-time systems that operate alongside the COTS products.
3. What features of a product will actually be used? COTS products may include more functionality than you need and functionality may be duplicated across different products. You have to decide which features in what product are most appropriate for your requirements. If possible, you should also deny access to unused functionality because this can interfere with normal system operation. The failure of the first flight of the Ariane 5 rocket was a consequence of a failure in an inertial navigation system that was reused from the Ariane 4 system. However, the functionality that failed was not actually
required in Ariane 5.

What is an ERP system?


What is an ERP system?
Ans: At a larger scale, an Enterprise Resource Planning (ERP) system may support all of the manufacturing, ordering, and customer relationship management activities in a large company.
ERP systems, such as those produced by SAP and BEA, are large-scale integrated systems designed to support business practices such as ordering and invoicing, inventory management, and manufacturing scheduling. The configuration process for these systems involves gathering detailed information about the customer’s business and business processes, and embedding this in a configuration database. This often requires detailed knowledge of configuration notations and tools and is usually carried out by consultants working alongside system customers. ERP systems are used in almost all large companies to support some or all of their functions. They are, therefore, a very widely used form of software reuse.

What are the main benefits of COTS reuse?


What are the main benefits of COTS reuse?
Ans: The main benefits of COTS reuse are:
1. As with other types of reuse, more rapid deployment of a reliable system may be possible.
2. It is possible to see what functionality is provided by the applications and so it is easier to judge whether or not they are likely to be suitable. Other companies may already use the applications so experience of the systems is available.
3. Some development risks are avoided by using existing software. However, this approach has its own risks, as I discuss below.
4. Businesses can focus on their core activity without having to devote a lot of resources to IT systems development.
            5. As operating platforms evolve, technology updates may be simplified as these are the responsibility of the COTS product vendor rather than the customer.