Today we continue to read up on how Google protects data.Google has incredible expertise in this area. Security is an integral part of their operations. They scan for security threats using tools, they use penetration testing, quality assurance processes, security reviews and external audit. They have a rigorous incident management process for security events that affect the confidentiality, integrity or availability of systems of data. They apply defense-in-depth perspective to securing their custom-designed servers, proprietary operating systems and geographically distributed data centers. Data is encrypted in transit, at rest and on backup media, moving over the internet or traveling between the data centers. They build redundancy into their server design, data storage, network and internet connectivity and even the software services.Their audits cover compliance standards and we reviewed some of them. We also reviewed some of the tools used to empower users and administrators to improve security and compliance. We were discussing user authentication, data management and email management features. We now review data detention which is facilitated by the eDiscovery feature. eDiscovery is the means to prepare for lawsuits and other legal matters. Google Vault is the eDiscovery solution for Google Apps that lets customers retain, archive, search and export their business gmail. Administrators can specify retention rules that specify how long certain messages are retained before they are removed from user mailboxes and expunged from all Google systems. Retention rules can be specified based on duration, content, labels and delegation. A legal hold is a binding requirement on a user to preserve all their emails and on the record chats indefinitely In a legal hold, messages may be deleted from the user's view but not from the message servers. Email and chat can be searched using user accounts, organizational units, date or keyword. Results can be exported as evidence reports.
Endpoints are also secured. For example, administrators can enforce policies over mobile devices in their organization, encrypt data on devices, and perform actions like remotely wiping or locking lost or stolen devices. This comes with mobile data management in Google Apps. Chrome browser security can be managed by policies specified by the administrator remotely There are over 280 policies that can be specified. The Google Apps admin console applies policy to Chrome Devices
Administrators can also recover data by restoring a deleted user account or restoring a user's drive or gmail data. They can publish reports that provide transparency to their actions.
#codingexercise
given a doubly linked list of 0 and 1 integers, sort them in place
dll Sort0And1(dll root)
{
if ( root == null || root.next == null) return;
var current = root:
var transition = null);
while(current)
{
if (current.data ==1)
{
if (transition == null)
transition = current;
root = CutAndInsertAfter(transition, current, root);
}else{
root = CutAndInsertBefore(transition, current, root);
}
current = current.next;
}
return root;
}
Endpoints are also secured. For example, administrators can enforce policies over mobile devices in their organization, encrypt data on devices, and perform actions like remotely wiping or locking lost or stolen devices. This comes with mobile data management in Google Apps. Chrome browser security can be managed by policies specified by the administrator remotely There are over 280 policies that can be specified. The Google Apps admin console applies policy to Chrome Devices
Administrators can also recover data by restoring a deleted user account or restoring a user's drive or gmail data. They can publish reports that provide transparency to their actions.
#codingexercise
given a doubly linked list of 0 and 1 integers, sort them in place
dll Sort0And1(dll root)
{
if ( root == null || root.next == null) return;
var current = root:
var transition = null);
while(current)
{
if (current.data ==1)
{
if (transition == null)
transition = current;
root = CutAndInsertAfter(transition, current, root);
}else{
root = CutAndInsertBefore(transition, current, root);
}
current = current.next;
}
return root;
}
No comments:
Post a Comment