Popular Posts

Sunday, June 28, 2020

Contact Tracing Covid-19

Contact Tracing


What is contact tracing?

Contact tracing is a technique used by public health officials to identify people who are exposed to an infectious disease in order to slow the spread of that illness within a population.
When a patient is admitted to a hospital and diagnosed with a new, communicable disease, they’re interviewed by health workers to learn who they’ve interacted recently. Any contacts whose interactions with the patient are then evaluated, and if they’re diagnosed with the disease, the process repeats with their known, recent contacts.

What are Apple and Google proposing as a solution?

At a high level, Apple and Google are proposing a common standard for how personal electronic devices (phones, tablets, watches) can automate the process of contact tracing.
Instead of health workers chasing down contacts on the phone — a process that can take hours, or even days — the proposed system could identify every recent contact and notify all of them within moments of a confirmed, positive diagnosis.

Hardware

Bluetooth organizes communications between devices around the concept of services.
A service describes a set of characteristics for accomplishing a particular task. A device may communicate with multiple services in the course of its operation. Many service definitions are standardized so that devices that do the same kinds of things communicate in the same way.
For example, a wireless heart rate monitor that uses Bluetooth to communicate to your phone would have a profile containing two services: a primary Heart Rate service and a secondary Battery service.
Apple and Google’s Contact Tracing standard defines a new Contact Detection service.
When a contact tracing app is running (either in the foreground or background), it acts as a peripheral, advertising its support for the Contact Detection service to any other device within range. The Rolling Proximity Identifier generated every 15 minutes is sent in the advertising packet along with the 16-bit service UUID.

Software

Your device stores any Rolling Proximity Identifiers it discovers, and periodically checks them against a list of Positive Diagnosis Keys sent from the central health authority.
Each Positive Diagnosis Key corresponds to someone else’s Temporary Exposure Key. We can derive all of the possible Rolling Proximity Identifiers that it could advertise over the course of that day (using the same hmac algorithm that we used to derive our own Rolling Proximity Identifiers). If any matches were found among your device’s list of Rolling Proximity Identifiers, it means that you may have been in contact with an infected individual.
Suffice to say that digital contact tracing is really hard to get right. Given the importance of getting it right, both in terms of yielding accurate results and preserving privacy, Apple and Google are providing SDKs for app developers to use for iOS and Android, respectively.
All of the details we discussed about cryptography and Bluetooth are managed by the framework. The only thing we need to do as developers is communicate with the user — specifically, requesting their permission to start contact tracing and notifying them about a positive diagnosis.

ExposureNotification

When Apple announced the ContactTracing framework on April 10th, all we had to go on were some annotated Objective-C headers. But as of the first public beta of iOS 13.5, we now have official documentation under its name: ExposureNotification.

Calculating Risk of Exposure

A contact tracing app regularly fetches new Positive Diagnosis Keys from the central health authority. It then checks those keys against the device’s Rolling Proximity Identifiers. Any matches would indicate a possible risk of exposure.
In the first version of ContactTracing, all you could learn about a positive match was how long you were exposed (in 5 minute increments) and when contact occurred (with an unspecified level of precision). While we might applaud the level of privacy protections here, that doesn’t offer much in the way of actionable information. Depending on the individual, a push notification saying “You were in exposed for 5–10 minutes sometime 3 days ago” could warrant a visit to the hospital or elicit no more concern than a missed call.
With ExposureNotification, you get a lot more information, including:
  • Days since last exposure incident
  • Cumulative duration of the exposure (capped at 30 minutes)
  • Minimum Bluetooth signal strength attenuation (Transmission Power - RSSI), which can tell you how close they got
  • Transmission risk, which is an app-definied value that may be based on symptoms, level of diagnosis verification, or other determination from the app or a health authority.
Apple Contact Tracing Framework -
https://covid19-static.cdn-apple.com/applications/covid19/current/static/contact-tracing/pdf/ContactTracing-FrameworkDocumentation.pdf



Wednesday, June 24, 2020

WWDC 2020 Keynote

Check out the WWDC keynote

iOS 14
- App Library
- Widgets
- Picture in Picture
- Siri (Audio messages and Speech Recognition)
- Messages (Conversation, Memoji, Groups)
- Maps (Cycling and EV Routing)
- App Clip (Easy to discover with App Clip code which uses NFC, QRCode and Parking Symbols)
Developers also can use App Clip in their application with less than 100 MB of native SDK

iPadOS
- Calls (Notification will show at the top to accept to reject calls)
- Search (Universal search - we can search from anywhere)
- Scribble

AirPods Software
- AirPods Pro - Spatial audio will work based on Head moves

Apple Watch
- WatchOS7 - native SwiftUI
- Face Sharing
- Activity - Fitness

macOS (Big Sur) version 11
- Control Centre
- Mac Catalyst
- Safari (Extensions - One day, All time, we can add theme to safari, If we open multiple tabs - we can see preview on placing a mouse on particular tab)
- Xcode 12

Privacy
- Data minimisation
- On-device intelligence
- Security protection

Hardware

- Apple silicon (Apple moves using intel products to it’s own)

Friday, April 1, 2016

AMCAT exam syllabus

Amcat syllabus
AMCAT exam syllabus 2015
There are two modules available,
§  Compulsory module
§  Optional module
Compulsory modules are given below,
§  English comprehension
§  Quantitative ability
§  Logical ability
§  AMPI (Aspiring Minds Personality Inventory)
Compulsory for general graduates
§  Attention to detail
Compulsory for management graduates
§  Excel
Optional modules
§  Computer literacy
§  Computer programming principles and application
§  Mechanical
§  Finance
§  Electronics and semiconductor
§  Civil engineering
AMCAT detailed test syllabus pattern
Compulsory module – English comprehension
§  Fill in the blanks
§  Error detection
§  Subject verb agreement
§  Antonyms
§  Synonyms
§  Tenses and articles
§  Ordering sentences
§  Passage questions
Quantitative aptitude
Compulsory module – Quantitative ability 
Basic numbers, word problems, power and logarithms, permutation-combination basic probability is the major divisions in this section. The divisions from the major divisions are,
§  Mixtures
For more topics click: Quantitative Aptitude questions
Compulsory module – Logical ability 
Deductive reasoning, inductive reasoning, abductive reasoning are the three major divisions. Under this following are the subdivisions.
§  Logical word sequence
§  Selection decision tables
§  Objective reasoning
§  Coding deductive logic
§  Analogy and classification pattern recognition
§  Data sufficiency
§  Number series
§  Critical Reasoning
More reasoning topic click: Logical ability
AMPI (Aspiring Minds Personality Inventory)
This module is for checking your skill on personality, i.e., candidate activity in interaction.
Optional modules – computer programming
§  Data structures and algorithm
§  Oops
Optional modules – computer literacy
§  Basic software and internet
§  Hardware usage and organization
Optional modules – electronics and semiconductor
§  Analog electronics

§  Digital electronics

Thursday, January 16, 2014

Short descriptions of algoritms

Some short descriptions on each of the algorithms:-

Bubble Sort:-
Exchange two adjacent elements if they are out of order. Repeat until array is sorted. This is a slow algorithm.

 Selection Sort:-
Find the largest element in the array, and put it in the proper place. Repeat until array is sorted. This is also slow.

 Insertion Sort:-
Scan successive elements for out of order item, then insert the item in the proper place. Sort small array fast, big array very slowly.

Quick sort:-
Partition array into two segments. The first segment all elements are less than or equal to the pivot value. The second segment all elements are greater or equal to the pivot value. Sort the two segments recursively. Quicksort is fastest on average, but sometimes unbalanced partitions can lead to very slow sorting.

Merge sort:-
Start from two sorted runs of length 1, merge into a single run of twice the length. Repeat until a single sorted run is left. Mergesort needs N/2 extra buffer. Performance is second place on average, with quite good speed on nearly sorted array. Mergesort is stable in that two elements that are equally ranked in the array will not have their relative positions flipped.

Heap sort:-
Form a tree with parent of the tree being larger than its children. Remove the parent from the tree successively. On average, Heapsort is third place in speed. Heapsort does not need extra buffer, and performance is not sensitive to initial distributions.

Shell sort:-
Sort every Nth element in an array using insertion sort. Repeat using smaller N values, until N = 1. On average, Shellsort is fourth place in speed. Shellsort may sort some distributions slowly.

Combo Sort:-
Sorting algorithms can be mixed and matched to yield the desired properties. We want fast average performance, good worst case performance, and no large extra storage requirement. We can achieve the goal by starting with the Quicksort (fastest on average). We modify Quicksort by sorting small partitions by using Insertion Sort (best with small partition). If we detect two partitions are badly balanced, we sort the larger partition by Heapsort (good worst case performance). Of course we cannot undo the bad partitions, but we can stop the possible degenerate case from continuing to generate bad partitions.

Monday, July 1, 2013

How Linux Boots


You now know the physical structure of a Linux system, what the kernel is, and how to work with processes. This chapter teaches you how the system starts (boots) — that is, how the kernel gets into memory and how the regular system processes get started.

As it turns out, there isn't much to the boot process:

  1. A boot loader finds the kernel image on the disk, loads it into memory, and starts it.
  2. The kernel initializes the devices and its drivers.
  3. The kernel mounts the root filesystem.
  4. The kernel starts a program called init.
  5. init sets the rest of the processes in motion.
  6. The last processes that init starts as part of the boot sequence allow you to log in.
Identifying each stage of the boot process is invaluable in fixing boot problems and understanding the system as a whole. To start, zero in on the boot loader, which is the initial screen or prompt you get after the computer does its power-on self-test, asking which operating system to run. After you make a choice, the boot loader runs the Linux kernel, handing control of the system to the kernel.
There is a detailed discussion of the kernel which explains the role of the kernel, and , but this chapter covers the kernel initialization stage, the stage when the kernel prints a bunch of messages about the hardware present on the system. The kernel starts init just after it displays a message proclaiming that the kernel has mounted the root filesystem:
VFS: Mounted root (ext2 filesystem) readonly.

Soon after, you will see a message about init starting, followed by system service startup messages, and finally you get a login prompt of some sort.
Note 
On Red Hat Linux, the init note is especially obvious, because it "welcomes" you to "Red Hat Linux." All messages thereafter show success or failure in brackets at the right-hand side of the screen.

Saturday, January 19, 2013

Linux Commands

Table A-1: File Management Commands
Command
Description
chgrp
Changes a file's group
chmod
Changes a file's permissions
chown
Changes a file's user ownership
cp
Copies a file
dd
Converts and copies
df
Displays disk usage statistics
du
Displays directory space usage
file
Identifies a file type
find
Searches for a file
ln
Creates a symbolic or hard link
ls
Lists files
mkdir
Creates a directory
mkfifo
Creates a named pipe
mknod
Creates a special file
mv
Renames or moves a file
rm
Removes a file
touch
Creates a file or updates a file's timestamp