Authenticate applications through facial recognition with Amazon Cognito and Amazon Rekognition
With increased use of different applications, social networks, financial platforms, emails and cloud storage solutions, managing different passwords and credentials can become a burden. In many cases, sharing one password across all these applications and platforms is just not possible. Different security standards may be required, such as passwords composed by only numeric characters, password renewal policies, and providing security questions.
But what if you could enhance the ways users authenticate themselves in their application in a more convenient, simpler and above everything, more secure way? In this post, I will show how to leverage Amazon Cognito user pools to customize your authentication flows and allow logging into your applications using Amazon Rekognition for facial recognition using a sample application.
Solution Overview
We will build a Mobile or Web application that allows users to sign in using an email and require the user to upload a document containing his or her photo. We will use the AWS Amplify Framework to integrate our Front-End application with Amazon S3 and store this image in a secure and encrypted bucket. Our solution will trigger a Lambda function for each new image uploaded to this bucket so that we can index the images inside Amazon Rekognition and save the metadata in a DynamoDB table for later queries.
For authentication, this solution uses Amazon Cognito User Pools combined with Lambda functions to customize the authentication flows together with the Amazon Rekognition CompareFaces API to identify the confidence level between user photos provided during Sign Up and Sign In. Here is the architecture of the solution:
Here’s a step-wise description of the above data-flow architecture diagram:
1. User signs up into the Cognito User Pool.
2. User uploads – during Sign Up – a document image containing his/her photo and name, to an S3 Bucket (e.g. Passport).
3. A Lambda function is triggered containing the uploaded image as payload.
4. The function first indexes the image in a specific Amazon Rekognition Collection to store these user documents.
5. The same function then persists in a DynamoDB table as the indexed image metadata, together with the email registered in Amazon Cognito User Pool for later queries.
6. User enters an email in the custom Sign In page, which makes a request to Cognito User Pool.
7. Amazon Cognito User Pool triggers the “Define Auth Challenge” trigger that determines which custom challenges are to be created at this moment.
8. The User Pool then invokes the “Create Auth Challenge” trigger. This trigger queries the DynamoDB table for the user containing the given email id to retrieve its indexed photo from the Amazon Rekognition Collection.
9. The User Pool invokes the “Verify Auth Challenge” trigger. This verifies if the challenge was indeed successfully completed; if it finds an image, it will compare it with the photo taken during Sign In to measure its confidence between both the images.
10. The User Pool, once again, invokes the “Define Auth Challenge” trigger that verifies if the challenge was answered. No no further challenges are created, if the ‘Define Auth challenge’ is able to verify the user-supplied answer. The trigger response, back to the User Poll will include an “issueTokens:true” attribute to authenticate itself and finally issue the user a JSON Web Token (JWT) (see step 6).
Serverless Application and the different Lambdas invoked
The following solution is available as a Serverless application. You can deploy it directly from AWS Serverless Application Repository. Core parts of this implementation are:
- Users are required to use a valid email as user name.
- The solution includes a Cognito App Client configured to “Only allow custom authentication” as Amazon Cognito requires a password for user sign up. We are creating a random password to these users, since we don’t want them to Sign In using these passwords later.
- We use two Amazon S3 Buckets: one to store document images uploaded during Sign Up and one to store user photos taken when Signing In for face comparisons.
- We use two different Lambda runtimes (Python and Node.js) to demonstrate how AWS Serverless Application Model (SAM) handles multiple runtimes in the same project and development environment for the developer’s perspective.
The following Lambda functions are triggered to implement the images indexing in Amazon Rekognition and customize Amazon Cognito User Pools custom authentication challenges:
1. Create Rekognition Collection (Python 3.6)– This Lambda function gets triggered only once, at the beginning of deployment, to create a Custom Collection in Amazon Rekognition to index documents for user Sign Ups.
2. Index Images (Python 3.6) – This Lambda function gets triggered for each new document upload to Amazon S3 during Sign Up and indexes the uploaded document in the Amazon Rekognition Collection (mentioned in the previous step) and then persists its metadata into DynamoDB.
3.Define Auth Challenge (Node.js 8.10) – This Lambda function tracks the custom authentication flow, which is comparable to a decider function in a state machine. It determines which challenges are presented, in what order, to the user. At the end, it reports back to the user pool if the user succeeded or failed authentication. The Lambda function is invoked at the start of the custom authentication flow and also after each completion of the “Verify Auth Challenge Response” trigger.
4. Create Auth Challenge (Node.js 8.10) – This Lambda function gets invoked, based on the instruction of the “Define Auth Challenge” trigger, to create a unique challenge for the user. We will use this function to query DynamoDB for existing user records and if their given metadata are valid.
5. Verify Auth Challenge Response (Node.js 8.10) – This Lambda function gets invoked by the user pool when the user provides the answer to the challenge. Its only job is to determine if that answer is correct. In this case, it compares both images provided during Sign Up and Sign In, using the Amazon Rekognition CompareFaces API and considers a API responses containing a confidence level equals or greater than 90% as a valid challenge response
In the sections below, let’s step through the code for the different Lambda functions we described above.
1. Create an Amazon Rekognition Collection
As described above, this function creates a Collection in Amazon Rekognition that will later receive user photos uploaded during Sign Up.
import boto3
import os
def handler(event, context):
maxResults=1
collectionId=os.environ['COLLECTION_NAME']
client=boto3.client('rekognition')
#Create a collection
print('Creating collection:' + collectionId)
response=client.create_collection(CollectionId=collectionId)
print('Collection ARN: ' + response['CollectionArn'])
print('Status code: ' + str(response['StatusCode']))
print('Done...')
return response
2. Index Images into Amazon Rekognition
This function is responsible for receiving uploaded images during the sign up from users and index the images in the Amazon Rekognition Collection created by the Lambda described above to persist its metadata in an Amazon Dynamodb table.
from __future__ import print_function
import boto3
from decimal import Decimal
import json
import urllib
import os
dynamodb = boto3.client('dynamodb')
s3 = boto3.client('s3')
rekognition = boto3.client('rekognition')
# --------------- Helper Functions ------------------
def index_faces(bucket, key):
response = rekognition.index_faces(
Image={"S3Object":
{"Bucket": bucket,
"Name": key}},
CollectionId=os.environ['COLLECTION_NAME'])
return response
def update_index(tableName,faceId, fullName):
response = dynamodb.put_item(
TableName=tableName,
Item={
'RekognitionId': {'S': faceId},
'FullName': {'S': fullName}
}
)
# --------------- Main handler ------------------
def handler(event, context):
# Get the object from the event
bucket = event['Records'][0]['s3']['bucket']['name']
key = urllib.parse.unquote_plus(
event['Records'][0]['s3']['object']['key'].encode('utf8'))
try:
# Calls Amazon Rekognition IndexFaces API to detect faces in S3 object
# to index faces into specified collection
response = index_faces(bucket, key)
# Commit faceId and full name object metadata to DynamoDB
if response['ResponseMetadata']['HTTPStatusCode'] == 200:
faceId = response['FaceRecords'][0]['Face']['FaceId']
ret = s3.head_object(Bucket=bucket,Key=key)
email = ret['Metadata']['email']
update_index(os.environ['COLLECTION_NAME'],faceId, email)
return response
except Exception as e:
print("Error processing object {} from bucket {}. ".format(key, bucket))
raise e
3. Define Auth Challenge Function
This is the decider function that manages the authentication flow. In the session array that’s provided to this Lambda function (event.request.session), the entire state of the authentication flow is present. If it’s empty, it means the custom authentication flow just started. If it has items, the custom authentication flow is underway, i.e. a challenge was presented to the user, the user provided an answer, and it was verified to be right or wrong. In either case, the decider function has to decide what to do next:
exports.handler = async (event, context) => {
console.log("Define Auth Challenge: " + JSON.stringify(event));
if (event.request.session &&
event.request.session.length >= 3 &&
event.request.session.slice(-1)[0].challengeResult === false) {
// The user provided a wrong answer 3 times; fail auth
event.response.issueTokens = false;
event.response.failAuthentication = true;
} else if (event.request.session &&
event.request.session.length &&
event.request.session.slice(-1)[0].challengeResult === true) {
// The user provided the right answer; succeed auth
event.response.issueTokens = true;
event.response.failAuthentication = false;
} else {
// The user did not provide a correct answer yet; present challenge
event.response.issueTokens = false;
event.response.failAuthentication = false;
event.response.challengeName = 'CUSTOM_CHALLENGE';
}
return event;
}
4. Create Auth Challenge Function
This function queries DynamoDB for a record containing the given e-mail to retrieve its image ID inside Amazon Rekognition Collection and define as a challenge that the user must provide a photo that relates to the same person.
const aws = require('aws-sdk');
const dynamodb = new aws.DynamoDB.DocumentClient();
exports.handler = async (event, context) => {
console.log("Create auth challenge: " + JSON.stringify(event));
if (event.request.challengeName == 'CUSTOM_CHALLENGE') {
event.response.publicChallengeParameters = {};
let answer = '';
// Querying for Rekognition ids for the e-mail provided
const params = {
TableName: process.env.COLLECTION_NAME,
IndexName: "FullName-index",
ProjectionExpression: "RekognitionId",
KeyConditionExpression: "FullName = :userId",
ExpressionAttributeValues: {
":userId": event.request.userAttributes.email
}
}
try {
const data = await dynamodb.query(params).promise();
data.Items.forEach(function (item) {
answer = item.RekognitionId;
event.response.publicChallengeParameters.captchaUrl = answer;
event.response.privateChallengeParameters = {};
event.response.privateChallengeParameters.answer = answer;
event.response.challengeMetadata = 'REKOGNITION_CHALLENGE';
console.log("Create Challenge Output: " + JSON.stringify(event));
return event;
});
} catch (err) {
console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
throw err;
}
}
return event;
}
5. Verify Auth Challenge Response Function
This function verifies within Amazon Rekognition if it can find an image with the confidence level equals or over 90% compared to the image uploaded during Sign In, and if this image refers to the user claims to be through the given e-mail address.
var aws = require('aws-sdk');
var rekognition = new aws.Rekognition();
exports.handler = async (event, context) => {
console.log("Verify Auth Challenge: " + JSON.stringify(event));
let userPhoto = '';
event.response.answerCorrect = false;
// Searching existing faces indexed on Rekognition using the provided photo on s3
const objectName = event.request.challengeAnswer;
const params = {
"CollectionId": process.env.COLLECTION_NAME,
"Image": {
"S3Object": {
"Bucket": process.env.BUCKET_SIGN_UP,
"Name": objectName
}
},
"MaxFaces": 1,
"FaceMatchThreshold": 90
};
try {
const data = await rekognition.searchFacesByImage(params).promise();
// Evaluates if Rekognition was able to find a match with the required
// confidence threshold
if (data.FaceMatches[0]) {
console.log('Face Id: ' + data.FaceMatches[0].Face.FaceId);
console.log('Similarity: ' + data.FaceMatches[0].Similarity);
userPhoto = data.FaceMatches[0].Face.FaceId;
if (userPhoto) {
if (event.request.privateChallengeParameters.answer == userPhoto) {
event.response.answerCorrect = true;
}
}
}
} catch (err) {
console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
throw err;
}
return event;
}
The Front End Application
Now that we’ve stepped through all the Lambdas, let’s create a custom Sign In page, in order to orchestrate and test our scenario. You can use AWS Amplify Framework to integrate your Sign In page to Amazon Cognito and the photo uploads to Amazon S3.
The AWS Amplify Framework allows you to implement your application using your favourite framework (React, Angular, Vue, HTML/JavaScript, etc). You can customize the snippets below as per your requirements. The snippets below demonstrate how to import and initialize AWS Amplify Framework on React:
import Amplify from 'aws-amplify';
Amplify.configure({
Auth: {
region: 'your region',
userPoolId: 'your userPoolId',
userPoolWebClientId: 'your clientId',
},
Storage: {
region: 'your region',
bucket: 'your sign up bucket'
}
});
Signing Up
For users to be able to sign themselves up, as mentioned above, we will “generate” a random password on their behalf since it is required by Amazon Cognito for user sign up. However, once we create our Cognito User Pool Client, we ensure that authentication only happens following the custom authentication flow – never using user and password.
import { Auth } from 'aws-amplify';
signUp = async event => {
const params = {
username: this.state.email,
password: getRandomString(30),
attributes: {
name: this.state.fullName
}
};
await Auth.signUp(params);
};
function getRandomString(bytes) {
const randomValues = new Uint8Array(bytes);
window.crypto.getRandomValues(randomValues);
return Array.from(randomValues).map(intToHex).join('');
}
function intToHex(nr) {
return nr.toString(16).padStart(2, '0');
}
Signing in
Starts the custom authentication flow to the user.
import { Auth } from "aws-amplify";
signIn = () => {
try {
user = await Auth.signIn(this.state.email);
this.setState({ user });
} catch (e) {
console.log('Oops...');
}
};
Answering the Custom Challenge
In this step, we open the camera through Browser to take a user photo and then upload it to Amazon S3, so we can start the face comparison.
import Webcam from "react-webcam";
// Instantiate and set webcam to open and take a screenshot
// when user is presented with a custom challenge
/* Webcam implementation goes here */
// Retrieves file uploaded to S3 and sends as a File to Rekognition
// as answer for the custom challenge
dataURLtoFile = (dataurl, filename) => {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, {type:mime});
};
sendChallengeAnswer = () => {
// Capture image from user camera and send it to S3
const imageSrc = this.webcam.getScreenshot();
const attachment = await s3UploadPub(dataURLtoFile(imageSrc, "id.png"));
// Send the answer to the User Pool
const answer = `public/${attachment}`;
user = await Auth.sendCustomChallengeAnswer(cognitoUser, answer);
this.setState({ user });
try {
// This will throw an error if the user is not yet authenticated:
await Auth.currentSession();
} catch {
console.log('Apparently the user did not enter the right code');
}
};
Conclusion
In this blog post, we implemented an authentication mechanism using facial recognition using the custom authentication flows provided by Amazon Cognito combined with Amazon Rekognition. Depending on your organization and workload security criteria and requirements, this scenario might work from both security and user experience point of views. Additionally, we can enhance the security factor by chaining multiple Auth Challenges not only based on the user photo, but also a combination of Liveness Detection, a combination of their document numbers used for signing up and other additional MFA’s.
Since this is an entirely Serverless-based solution, you can customize it as your requirements arise using AWS Lambda functions. You can read more on custom authentication in our developer guide.


Complete technical analysis package with over 300 built-in indicators and charting tools helps to keep you on top of market trends using multiple accounts. You can execute trades manually or with preloaded indicators and automated robot trading strategies (or Expert Advisors). Alternatively, highly customizable, advanced software allows you to create your own trading strategies using its unique OvoPlatform programming language. Take advantage of OvoPlatform one-click functionality to make sure your trades are executed fast, every time.
Learn more Live demo


Create/Edit PropertyEach page type has a number of different properties. These are the properties which generate the functions of the specific page type. If you are an administrator it may be advisable for you to know how these functions are created and operate. The reason for this is that it will enable you to change certain settings, making it easier for your editors to use the page types. The page type Ordinary web page is shown below, along with its various properties. It has eight identical properties, which are displayed on the right when you click on the page typeís name in the menu on the left.
Most of the properties operate in the same way, which means that if you have learnt how one works, you will easily understand how the others work. We will now have a closer look at the MainBody property, which is one of the most common properties available in most page types. MainBody is the editing feature which the editor uses to create content, insert images in the page, etc. NameThe propertyís name is entered here. This name should not be changed because the ASPX page which creates the page for the visitor refers to the various propertiesí names. If you change the name, you cannot be sure that the page will be displayed.Edit HeadingYou enter under Edit heading the text to be displayed next to the field when the page type is used.You can change this to suit your editors so that they easily know what should be entered in the field.Help TextHelp text is the text which is displayed if the editor points with the mouse at the Edit heading. You can use this to provide some extra help as to what should be entered in the specific field.TypeThe Type option specifies the type of field to be used for this property. All page types are structured like forms and are based on different properties, which are different types of form fields. For this option you can choose to have an integer, string, page, date, etc. When you choose Long string you always have the option to use the HTML editor.Place under headingMost page templates have a number of headings (tabs), which the editor can toggle between to enter information. This option allows you to choose under which tab you want this property to be displayed for the editor. In certain cases, it may be advisable to create a tab, which only administrators have access to and place certain properties under this tab. The main thing is to facilitate the editorís task.No default valueThe option No default value indicates that you do not want there to be any information available in the field when the editor uses the page type. You must specify one of the three options: No default value, Inherits value or Default value.Inherits valueThe option Inherits valueindicates that the value from the page located above this page in the structure is displayed in the field. The editor does have the option, however, to change this value.Default valueIn the Default value field you have the option to enter a default text for this property whenever the editor uses the page type.Value must be enteredIn the Value must be entered field you can make sure that the editor always enters a value in this field. If the editor leaves it blank and saves the page, an error message will appear indicating that information is missing.Searchable propertyThe Searchable property option allows you to decide whether the information entered for this property will be searchable or not. All properties are searchable by default, but it may occasionally be advisable to remove this feature.Unique value per languageWhen you work with globalization, you decide in every page type which fields will vary depending upon language. It is normal that not all fields vary. The values of those fields that wonít vary are always provided in the original language of that page. The fields that will vary are provided on each page type and property by marking Unique value per language.Properties for the EditorIn the Properties for the Editor field you can specify which buttons will be available for the editor in the editing application. By selecting different options you can control what the editors can do using this editing tool. If you uncheck all the options this property will become a normal input field like a text box. |
|
Read more in Editor's Manual - Read more in Administratorís Manual |


|
|
Hero lets you...
|
|
|
World's most advanced App
with High-Tech solutions
|
|
The Strong museum has collected more than 55,000 video games and related artifacts from the history of gaming.
|
|
|
|
The Strong museum has collected more than 55,000 video games and related artifacts from the history of gaming.
|
|
|
|
|
|
|
Features All Joined Together in One App
|
|
|
Sync
|
|
Computer manufacturer Lenovo is getting flak.
|
|
Learn More
|
|
|
Share
|
|
Computer manufacturer Lenovo is getting flak.
|
|
Learn More
|
|
|
Stats
|
|
Computer manufacturer Lenovo is getting flak.
|
|
Learn More
|
|
|
|
|
Responsive layout
|
|
|
Tanjin is one of nearly 2,000 people to have landed on Italy's southernmost.
|
|
|
Retina Ready
|
|
|
Tanjin is one of nearly 2,000 people to have landed on Italy's southernmost.
|
|
|
|
|
|
Various Skins
|
|
|
Tanjin is one of nearly 2,000 people to have landed on Italy's southernmost.
|
|
|
Great Performance
|
|
|
Tanjin is one of nearly 2,000 people to have landed on Italy's southernmost.
|
|
|
|
|
|
User Friendly Menus
|
|
|
Tanjin is one of nearly 2,000 people to have landed on Italy's southernmost.
|
|
|
Social Share
|
|
|
Tanjin is one of nearly 2,000 people to have landed on Italy's southernmost.
|
|
|
|
|
Interested in our App?
Muriel Bowser's administration says move is unrelated to charges that encryption caused failures in Metro.
request a quote
|
|
|
|


|
LUFA Library - DFU Class Bootloader
|
#include "BootloaderDFU.h"
Functions | |
| void | Application_Jump_Check (void) |
| int | main (void) |
| static void | SetupHardware (void) |
| static void | ResetHardware (void) |
| ISR (TIMER1_OVF_vect, ISR_BLOCK) | |
| void | EVENT_USB_Device_ControlRequest (void) |
| static void | DiscardFillerBytes (uint8_t NumberOfBytes) |
| static void | ProcessBootloaderCommand (void) |
| static void | LoadStartEndAddresses (void) |
| static void | ProcessMemProgCommand (void) |
| static void | ProcessMemReadCommand (void) |
| static void | ProcessWriteCommand (void) |
| static void | ProcessReadCommand (void) |
Variables | |
| static bool | IsSecure = SECURE_MODE |
| static bool | RunBootloader = true |
| static bool | WaitForExit = false |
| static uint8_t | DFU_State = dfuIDLE |
| static uint8_t | DFU_Status = OK |
| static DFU_Command_t | SentCommand |
| static uint8_t | ResponseByte |
| static AppPtr_t | AppStartPtr = (AppPtr_t)0x0000 |
| static uint8_t | Flash64KBPage = 0 |
| static uint16_t | StartAddr = 0x0000 |
| static uint16_t | EndAddr = 0x0000 |
| uint16_t | MagicBootKey |
Main source file for the DFU class bootloader. This file contains the complete bootloader logic.
| void Application_Jump_Check | ( | void | ) |
Special startup routine to check if the bootloader was started via a watchdog reset, and if the magic application start key has been loaded into MagicBootKey. If the bootloader started via the watchdog and the key is valid, this will force the user application to start via a software jump.
|
static |
Routine to discard the specified number of bytes from the control endpoint stream. This is used to discard unused bytes in the stream from the host, including the memory program block suffix.
| [in] | NumberOfBytes | Number of bytes to discard from the host from the control endpoint |
| void EVENT_USB_Device_ControlRequest | ( | void | ) |
Event handler for the USB_ControlRequest event. This is used to catch and process control requests sent to the device from the USB host before passing along unhandled control requests to the library for processing internally.
| ISR | ( | TIMER1_OVF_vect | , |
| ISR_BLOCK | |||
| ) |
ISR to periodically toggle the LEDs on the board to indicate that the bootloader is active.
|
static |
Routine to concatenate the given pair of 16-bit memory start and end addresses from the host, and store them in the StartAddr and EndAddr global variables.
| int main | ( | void | ) |
Main program entry point. This routine configures the hardware required by the bootloader, then continuously runs the bootloader processing routine until instructed to soft-exit, or hard-reset via the watchdog to start the loaded application code.
|
static |
Routine to process an issued command from the host, via a DFU_DNLOAD request wrapper. This routine ensures that the command is allowed based on the current secure mode flag value, and passes the command off to the appropriate handler function.
|
static |
Handler for a Memory Program command issued by the host. This routine handles the preparations needed to write subsequent data from the host into the specified memory.
|
static |
Handler for a Memory Read command issued by the host. This routine handles the preparations needed to read subsequent data from the specified memory out to the host, as well as implementing the memory blank check command.
|
static |
Handler for a Data Read command issued by the host. This routine handles bootloader information retrieval commands such as device signature and bootloader version retrieval.
|
static |
Handler for a Data Write command issued by the host. This routine handles non-programming commands such as bootloader exit (both via software jumps and hardware watchdog resets) and flash memory erasure.
|
static |
Resets all configured hardware required for the bootloader back to their original states.
|
static |
Configures all hardware required for the bootloader.
Pointer to the start of the user application. By default this is 0x0000 (the reset vector), however the host may specify an alternate address when issuing the application soft-start command.
|
static |
Current DFU state machine state, one of the values in the DFU_State_t enum.
|
static |
Status code of the last executed DFU command. This is set to one of the values in the DFU_Status_t enum after each operation, and returned to the host when a Get Status DFU request is issued.
|
static |
Memory end address, indicating the end address to read from/write to in the memory being addressed (either FLASH of EEPROM depending on the issued command from the host).
|
static |
64-bit flash page number. This is concatenated with the current 16-bit address on USB AVRs containing more than 64KB of flash memory.
|
static |
Flag to indicate if the bootloader is currently running in secure mode, disallowing memory operations other than erase. This is initially set to the value set by SECURE_MODE, and cleared by the bootloader once a memory erase has completed in a bootloader session.
| uint16_t MagicBootKey |
Magic lock for forced application start. If the HWBE fuse is programmed and BOOTRST is unprogrammed, the bootloader will start if the /HWB line of the AVR is held low and the system is reset. However, if the /HWB line is still held low when the application attempts to start via a watchdog reset, the bootloader will re-start. If set to the value MAGIC_BOOT_KEY the special init function Application_Jump_Check() will force the application to start.
|
static |
Response to the last issued Read Data DFU command. Unlike other DFU commands, the read command requires a single byte response from the bootloader containing the read data when the next DFU_UPLOAD command is issued by the host.
|
static |
Flag to indicate if the bootloader should be running, or should exit and allow the application code to run via a soft reset. When cleared, the bootloader will abort, the USB interface will shut down and the application jumped to via an indirect jump to location 0x0000 (or other location specified by the host).
|
static |
Data containing the DFU command sent from the host.
|
static |
Memory start address, indicating the current address in the memory being addressed (either FLASH or EEPROM depending on the issued command from the host).
|
static |
Flag to indicate if the bootloader is waiting to exit. When the host requests the bootloader to exit and jump to the application address it specifies, it sends two sequential commands which must be properly acknowledged. Upon reception of the first the RunBootloader flag is cleared and the WaitForExit flag is set, causing the bootloader to wait for the final exit command before shutting down.


New tyres and points system for 2012 season in GP2 | GP 2 Series ...
Oct 4, 2011 . GP2 is moving even closer to Formula One by introducing new tyre rules and adopting the same points system for the 2012 season - news from .
http://en.espnf1.com/gp2/motorsport/story/60459.html
Treatment for Herniated or Bulging Discs
Formula 1 will introduce a new points scoring system in 2010
Dec 11, 2009 . Formula 1's points scoring system will be changed next season under a new scheme proposed by the sport's bosses. At the moment, the top .
http://news.bbc.co.uk/sport2/hi/motorsport/formula_one/8407119.stm
Formula 1 - The Official F1 Website
(The moveable front wing, used in 2010, has been dropped.) The system's availability is electronically governed - it can be used at any time in . when a driver is less than one second behind another car at pre-determined points on the track.
http://www.formula1.com/inside_f1/rules_and_regulations/sporting_regulations/8692/
2010 formula 1 points system Herniated or Bulging Discs
NASCAR with other points
Basically, the point of this is to reward consistency and high finishes to get a . What I'll do is re-do every season of NASCAR with the same points system as in Formula 1 at the time, except for . 1950 keeps the same point system as in 1949 (8-6-4-3-2-1). . Hamlin is going to win 2010, or at least I think.
http://efr1.forumotion.com/t1399-nascar-with-other-points
New points system approved, ex-drivers to assist stewards - Formula 1
Dec 11, 2009 . The next seven finishers will score 10, 8, 6, 5, 3, 2 and 1 point . Friday's WMSC meeting agreed a number of other changes for 2010, including .
http://www.formula1.com/news/headlines/2009/12/10279.html
Official Impairment Listing for Spinal Disorders
Fernando Alonso in the Box Seat, But the 2010 Formula One Battle ...
Nov 8, 2010 . There has never been a closer Formula One season than 2010. . Going back to the old-old points system (10-6-4-3-2-1) would see Hamilton .
http://bleacherreport.com/articles/511906-fernando-alonso-in-the-box-seat-but-the-2010-formula-1-battle-rages-on
- equestrian cambria county strongstown cheryl (narrowing of the spine)
New F1 points system 2010 | 25 points for a win in 2010
Dec 10, 2009 . The FIA will vote tomorrow on a new points system for F1 proposed by the re- formed F1 Commission. . Proposed 2010 points, 25, 20, 15, 10, 8, 6, 5, 3, 2, 1. Points as % of a . http://www.formula1.com/results/driver/2009/ .
http://www.f1fanatic.co.uk/2009/12/10/new-f1-points-system-proposed-for-2010/List of Formula One World Championship points scoring systems ...
List of Formula One World Championship points scoring systems. From Wikipedia, the free . 6, 5, 4, 3, 2, 1, All, All. 2010, 25, 18, 15, 12, 10, 8, 6, 4, 2, 1, All, All .
http://en.wikipedia.org/wiki/List_of_Formula_One_World_Championship_points_scoring_systems
F1 2012 Driver Results Table and Progression Chart
Review the 2012 Formula One season with a driver table, chart, and race reviews . . Season: 2012 2011 2010 . Here is the list of F1 points scoring systems.
http://f1.dg42.net/
Displaced Aussie » 2010 Formula 1 Points System
Nov 15, 2010 . 2010 Formula 1 Points System. I'm not going to comment about the points system or the season, but I couldn't find this data anywhere else.
http://www.displacedaussie.net/2010/11/formula-1-points-system/
Medical-Vocational Allowance for Herniated Disc
Formula Fun? Comparing F1 scoring systems - Significance Magazine
How about that pesky new scoring system? . The Formula One season takes place over a number of races (19 in 2010 and 20 in 2011), with drivers awarded .
http://www.significancemagazine.org/details/webexclusive/878673/Formula-Fun-Comparing-F1-scoring-systems.html
BBC Sport - F1 - Formula 1 adopts new points system for 2010 season
Feb 2, 2010 . Formula 1 will have a new points system for the 2010 after an agreement between the governing body (FIA) and the teams. The new system will .
http://news.bbc.co.uk/sport2/hi/motorsport/formula_one/8493082.stm
Appealing a Denial of Benefits
2012 Formula 1 Drivers Championship - Full results for every F1 ...
The tabled results for every driver participating in the 2012 Formula one season. . News On F1 - Formula 1 News, Results, Information and Statistics. Click Here .
http://www.newsonf1.com/current/drivers/
The 2010 points system: What if
- GPUpdate.net
Apr 20, 2010 . Naturally - with knowledge of the points system in use - teams and drivers will always . More 2010 Chinese Formula 1 Grand Prix photos .
http://www.gpupdate.net/en/f1-news/232992/the-2010-points-system-what-if/


Who won today?
we don't know
today was an intresting day in sports there were wins and losses all around.
today was an intresting day in sports there were wins and losses all around.
A bizarrely skittish national championship game served as one of the choppiest contests of the tournament, for the Tar Heels, that will be forgotten in the glow of a championship win. A sequence of clutch plays in the final minute allows UNC to separate from Gonzaga and find victory. Isaiah Hicks’ one-hander with 26 seconds to go gave UNC a three-point lead. Kennedy Meeks’ block, ensuing pass to Justin Jackson — who dunked on a breakaway — and then Meeks’ steal on Gonzaga’s next possession wrapped up the championship.
There would be no allowance for a buzzer-beater this year. Joel Berry, plagued by two injured ankles during this tournament run, led all scorers with 22 points in 37 minutes played and was named the Most Outstanding Player of the Final Four after the game.


Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make atype specimen book. It has survived not only five centuries. but also the leap into electronic typesetting, remaining essentially unchanged.
Lorem Ipsum is simply dummy text of the printing and typesetting of the industry. Lorem Ipsum has been the and scrambled it. atype specimen
Lorem Ipsum is simply dummy text of the printing and typesetting of the industry. Lorem Ipsum has been the and scrambled it. atype specimen
Lorem Ipsum is simply dummy text of the printing and typesetting of the industry. Lorem Ipsum has been the and scrambled it. atype specimen
Lorem Ipsum is simply dummy text of the printing and typesetting of the industry. Lorem Ipsum has been the and scrambled it. atype specimen
Lorem Ipsum is simply dummy text of the printing and typesetting of the industry. Lorem Ipsum has been the and scrambled it. atype specimen
Lorem Ipsum is simply dummy text of the printing and typesetting of the industry. Lorem Ipsum has been the and scrambled it. atype specimen
Lorem Ipsum is simply dummy text of the printing and typesetting of the industry. Lorem Ipsum has been the and scrambled it. atype specimen
Lorem Ipsum is simply dummy text of the printing and typesetting of the industry. Lorem Ipsum has been the and scrambled it. atype specimen
Lorem Ipsum is simply dummy text of the printing and typesetting of the industry. Lorem Ipsum has been the and scrambled it. atype specimen
25-September 2013
25-September 2013
There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable.
If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything.
Lorem Ipsum is simply dummy of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since.
Texas, US
<EMAIL_ADDRESS>890-09880-45590


Association of Computer Engineering Students (ACES) is the student body of Computer Engineering Department, BV(DU)COE Pune which provides a platform for the holistic development of a Computer Engineer. Here we not only learn the technicalities of a particular thing but also embrace its social and cultural aspects for the greater good of the society. Apart from working in the department on various things like organising technical events and workshops we also work towards a better society by organising social events and workshops.


Gramene is a comparative genome database for cereal crops and a community resource agricultural researchers and plant breeders of rice and other grasses. Our goal is to facilitate the study of cross-species homology relationships using information derived from public projects involved in genomic and EST sequencing, protein structure and function analysis, genetic and physical mapping, interpretation of biochemical pathways, gene and QTL localization, controlled vocabularies and descriptions of phenotypic characters and mutations. [more]
The current Gramene version is 29, released in March 2009. This release is based on Ensembl 52, released in December 2008. For details on what's new in this release, see NEWS


As you currently have no territories, you can attack any region with a minimum contingent. Select a territory to attack to begin, then attack.
{{else}}You currently have no troops, so you cannot attack. You must wait for the next tick for resupply.
{{/if}}Your territories:
Total troop count:
Credits:


Employee Management Employee
| Picture | Employee Name | Address | Age | Birthdate | Hiered date | Department | Division | Action |
|---|---|---|---|---|---|---|---|---|
| {{employee.first_name}} | {{employee.address}} | {{employee.age}} | {{employee.birthday}} | {{employee.hiered_date}} | {{employee.department_name}} | {{employee.division_name}} |


Address:
MIT Computer Science and Artificial Intelligence Laboratory The Stata Center, Building 32 32 Vassar Street Cambridge, MA 02139, USA
Office:
room 32-211 (second floor, both access from Dreyfool (D) and Gates (G) entrances work).
Email:stefanie.mueller(at)mit.edu
Telephone:
please contact us by email first.
+1<PHONE_NUMBER>


Paul McCartney headlining Glastonbury 2020
by Andrew SacherGlastonbury 2020 happens June 24-28, and they just announced a very big headliner: Paul McCartney. He plays on 6/27. “Having Paul McCartney coming back to headline the Pyramid next year is an absolute dream come true. There really was no one that we wanted more for the 50th anniversary,” Glastonbury co-organizer Emily Eavis said. Paul previously headlined the festival in 2004.
The former Beatle joins Diana Ross, who plays the Sunday (6/28) legends slot on the Pyramid Stage.
Tickets for Glastonbury 2020 are currently sold out, but there will be a “resale of any returned coach + ticket packages” on April 16, followed by a generation admission relsaae on April 19. In order to get tickets, you have to register.


{% extends 'base.html' %} {% load crispy_forms_tags %} {% load static %} {% block title %}Home{% endblock title %} {% block content %} {% if user.is_authenticated %}
| Business name | Neighbourhood | Business type | |
|---|---|---|---|
| {{ business.name }} | {{ business.neighborhood}} | {{ business.email }} | {{ business.business_type }} |
You are not logged in
Log In | Sign Up {% endif %} {% endblock content %}


Quickstart Guide¶
To run TARDIS requires two files. The atomic database (for more info refer to Atomic Data for TARDIS) and a configuration file (more info at Configuration File).
Running TARDIS in the commandline¶
After installing TARDIS just download the example directory and run TARDIS with:
tar zxvf tardis_example.tar.gz
cd tardis_example
tardis tardis_example.yml output_spectrum.dat
Then plot the output_spectrum.dat with your favourite plotting program. Here’s an example how to do this with python. (The only thing you need to install is ipython and matplotlib - in addition to TARDIS’s requirements)
ipython --pylab
>>> tardis_spec = loadtxt('output_spectrum.dat')
>>> plot(tardis_spec[:,0], tardis_spec[:,1])
More atomic datasets can be downloaded from Atomic Data for TARDIS.
Running TARDIS interactively (recommended)¶
To get more information from each run of TARDIS one can run it interactively and have full access to the model properties
>>> from tardis import run_tardis
>>> model = run_tardis('myconfig.yml')
This model can then be used for inspecting the run as described Accessing Physical Quantities
Graphical User Interface¶
Warning
The GUI is currently not compatible with the latest development version of TARDIS (see TEP and Issue #690)
To get a detailed explanation on gui layout go to Graphical User Interface .
To setup and run the GUI(under development) follow these steps:
The gui can use one of two python bindings for qt, namely PyQt4 and PySide. You can choose which binding is used by setting the environment variable QT_API in your bash.
1. Installing required packages
source activate tardis
conda install ipython=3.0.0 pyside=1.2.1 shiboken=1.2.1
2. Choosing between PySide and PyQt4
#To choose PySide
export QT_API=pyside
#To choose PyQt
export QT_API=pyqt
3. An example of creating a model and GUI
To show the gui from the ipython shell use the following commands.
ipython --pylab=qt4
>>> from tardis import run_tardis
>>> mdl = run_tardis('yamlconfigfile.yml', 'atomdatafile.h5')
>>> from tardis.gui import interface
>>> interface.show(mdl)
If you just want to run from a configuration file and show the results, you can do that outside the ipython shell.To do this navigate to the folder where you installed tardis and go to tardis/tardis/gui, and use the following command.
python interface.py path-to-yaml-configuration-file path-to-atomic-data-file


Consultancy
Assessing the customer requirements, physical facilities and review current processes to recommend a system design, implementation plan and ROI estimation.
Our Consultancy Services are
- Computer-site planning consultancy services.
- Hardware selection consultancy services.
- Computer Audit consultancy and hardware consultancy services.
- Computer hardware acceptance testing consultancy services.
- Hardware disaster-recovery consultancy services.
Implementation
Assessing the customer requirements, physical facilities and review current processes to recommend a system design, implementation plan and ROI estimation.
Our Implementation Services are
- Application and Equipment Installation & configuration.
- Optimize performance and value with a service agreement that meets your needs, from basic maintenance and support to all-inclusive full service support.
- We will be a single point of contact who will work closely with your project sponsor to manage the entire implementation process from requirements, installation, configuration, certification and training.
Managed
Managed services are the practice of transferring day-to-day related management responsibility as a strategic method for improved effective and efficient operations.
Our Managed services are
Integrated Services
- Annual Maintenance Contracts.
- Managed IT Support 24/7.
- Managed Server Solutions.
- Network Management.
- Managed Security Solutions.
- Backup Media Management.
Extended Services
- Help Desk Management.
- Asset Management.
- Help Desk.
- IT Infrastructure.
- Senior Management Support.


| fa-handshake-o | |
| fa-handshake-o fa-lg | |
| fa-handshake-o fa-2x | |
| fa-handshake-o fa-3x | |
| fa-handshake-o fa-4x | |
| fa-handshake-o fa-5x |
see the examples page on fontawesome.io
Roboto
Don Eladio, please. I didn't sell anything. I apologize if you are offended by my method of obtaining this meeting. I merely took the initiative. I meant no insult.
Oswald
Right now, you deal almost exclusively in cocaine. But the coca plant can't grow in Mexico. You are no more than middlemen for the Colombians. They cut you a percentage for smuggling across the border. But the lion's share of the profit goes to them, despite your assumption of all the risk. And you keep all the profits.
Raleway
I don't think we're alike at all, Mr. White. You are not a cautious man at all. Your partner was late and he was high. He's high often, isn't he? You have poor judgement. I can't work with someone with poor judgement. I've been told, it's excellent. That is not the only factor. I have to ask... why? Why him? How much product do you have on hand? I have your numbers. You can never trust a drug addict.
Montserrat
I handle the business operations. With all due respect, Don Eladio. I didn't sell it to them. I gave them samples. I gave them samples to give to you. To introduce you to our product. This product is the drug of the future. It'll triple your profits. Perhaps quadruple.


Thank you, friend!
Thank you for your support!
Click to go to our
new store
Forever Grateful. Forever Dead.


It does not need to be tricky to get your AJAX site indexed correctly by
search engines.
Your site should be indexed as normal if you use HTML5 History.
If you use #!/
your site can be indexed correctly if you
provide ?_escaped_fragment_=
-pages. These can be either generated on
the fly or using a tool that generates snapshots.
Crawler.js is a Node.js-CLI
that generates static snapshots of your site using PhantomJS. Read more about it
at Googles site about
Making AJAX Applications Crawlable.
Update
Google officially deprecated
their AJAX crawling scheme in 2015, telling _escaped_fragment_ URLs have become superfluous for them:
Instead of the _escaped_fragment_ URLs, we'll generally crawl, render, and index the #! URLs. [...] If you're building a new site or restructuring an already existing site, simply avoid introducing _escaped_fragment_ urls.


Stop wasting time and money designing and managing a website that doesn’t get results. Happiness guaranteed!
An open platform for presentations and content collaboration. Sign up to get early access.
Poorly designed presentations are a thing of the past. Create beautiful and high-quality content that is aligned with your brand, in just a few clicks.
Manually updating your business reports and sales pitches is tedious and painful. With Pitch, connect to external data sources documents.
Poorly designed presentations are a thing of the past. Create beautiful and high-quality content that is aligned with your brand, in just a few clicks.
Manually updating your business reports and sales pitches is tedious and painful. With Pitch, connect to external data sources documents.


VilniusPHP 0x87
Photography and Software Engineering – I thought it’s different… but it appears it’s not.
Drawing from over 20 years of experience in IT and software development, coupled with more than 3 years as a novice photographer, Sergej Kurakin has uncovered surprising parallels between his creative passion and his professional work. Join him as he explores the unexpected similarities. (Presented in Lithuanian)
Sergej Kurakin (Ovoko)
Cloud Design Patterns in Practice
While many of us are familiar with the classic “Gang of Four” design patterns and other commonly used design paradigms in object-oriented languages, there exists a world of cloud-specific design patterns. Darius Kasperavičius will guide us through the cloud design patterns he has applied in Kilo Health Core projects, offering a fascinating blend of theory and practical application. (Presented in Lithuanian)
Darius Kasperavičius (KiloHealth)


EBD - Easton Bible DIctionary
Ashpenaz
ASHPENAZ
"ASHPENAZ "the master of the eunuchs of Nebuchadnezzar (
Daniel 1:3
), the “Rabsaris” of the court. His position was similar to that of the Kislar-aga of the modern Turkish sultans.
"ASHPENAZ "the master of the eunuchs of Nebuchadnezzar (Daniel 1:3), the “Rabsaris” of the court. His position was similar to that of the Kislar-aga of the modern Turkish sultans.


LEE TSONG #117-1, Min Sheng E. Road. Sec. 3, Taipei, Taiwan Attn: Dear Friend, I wish my proposal would not come to you as a surprise. I am LEE TSONG, I work as you would have seen with CITICORP, although this being a brief introduction. Anyway, we had a foreign client (Mohamed Mohd Salaheldin) who deposited a huge sum of amount, US$28.5million (Twenty Eight Million Five Hundred Thousand United States Dollars) with our bank. Unfortunately, this client was among the victims of EGYPTAIR FLIGHT NO.990 that crashed on the 31-10-1999 in U.S.A. Confirmable from the below website www.cnn.com/us/9911/02/egyptair990.list/index.html http://www.cnn.com/us/9911/02/egyptair990.list/index.html or www.greatdreams.com/plane990.htm but, since then we have not had anybody to come for the claims as the next of kin. A situation I have monitored closely with my position in the bank. Now, having monitored this deposit and managed it over the years before his death, and hence nobody has showed up as the next of kin for the past two years plus, I have removed the file to my "private vault". I now solicit for your assistance to present you as the next of kin as every other arrangement has being concluded by me and I am only waiting for a foreigner to enable me move the funds to his account. This does not have any risk attached to it as all the internal documentations would be handled by me and every loop holes sealed off. I therefore request you to confirm your interest by a return message and I will furnish you with the full details and what to do concerning this deal. What you stand to gain would be discussed and it is negotiable before the deal commences. NOTE: PLEASE KINDLY SEND YOUR TO THE ADDRESS BELOW<EMAIL_ADDRESS>Believing to hear from you soonest. Kind regards, LEE TSONG . __________________________________________________________________ Tiscali ADSL libera la velocita'! Attiva Senza Canone entro il 14 giugno: navighi a 1,5 euro l'ora per i primi 3 mesi,se scegli il modem e' tuo in comodato gratuito e in piu' hai gratis SuperMail per 12 mesi. Non aspettare, attivala subito! http://abbonati.tiscali.it/adsl/prodotti/640Kbps/


DavidBase
Reset Password Request
Write your email to reset your password's account to FireBase
Email address
Go back


I'm currently an adjunct instructor at Northeastern Technical College. I'm also getting started with freelance work on the side in both mobile and web developement. I have a bachelors degree in Computer Science. I also have experience in Android development and robotics research.
Outside of programming and work, I lift weights in my free time, I enjoy reading any type of genre and binge watching Netflix. My programming interests include learning full stack development, bioinformatics (any healthcare related), learning new technologies, and learning new ways to teach programming.
Northeastern Technical College
August 2017 - Current
Brite (Independent Company)
Feburary 2018 - May 2018
University of South Carolina
Summer 2018
Minor: Applied Mathematics
Francis Marion University (August 2014 - May 2018)
Northeastern Technical College (August 2012- August 2014)
Life scholar 2012-2016
Who's who of technical colleges - 2014
Computer Science award - Graduated top of the 2018 class.
Uplison Pi Epilson (President) - Computer Science honor society
Click the project name for more details
Project for Software Engineering course (CS340). Create an animal shelter management system.
Recreating the Animal Shelter project using Spring Boot stack.
Built using HTML, CSS and Javascript.
Create web apps of a todolist using a varied of technologies


-
Google Discussiegroepen
groups.google.com
Met Google Discussiegroepen kun je online forums en e-mailgroepen maken en eraan deelnemen. Bovendien profiteer je van uitgebreide ...
-
Jamiehankins.co.uk DNS Lookup | Nameserver Lookup - Who.is - Who.is
who.is
Jamiehankins.co.uk DNS Lookup | Nameserver Lookup - Who.is information. Search for name server and DNS record information for domain names using our ...
-
Tweet activity dashboard
support.twitter.com
What is the Tweet activity dashboard? The Tweet activity dashboard is a tool you can use to learn more about your Tweets. For instance: See how ...
-
If programming languages were weapons • Bjorn Tipling
bjorn.tipling.com
C is an M1 Garand standard issue rifle, old but reliable. C++ is a set of nunchuks, powerful and impressive when wielded but takes many years of pain ...
-
Bienvenue sur Facebook. Connectez-vous, inscrivez-vous ou découvrez !
www.facebook.com
Facebook est un réseau social qui vous relie à des amis, des collègues de travail, des camarades de classe ou d’autres personnes qui ont quelque ...
-
Troy Hunt: Everything you need to know about the Shellshock Bash bug
www.troyhunt.com
Observations, musings and conjecture about the world of software and technology
-
View Issue/Pull Request buttons for Gmail
github.com
If you're a Gmail user who gets GitHub notifications via email, you'll notice that we've added subject-line links to issues and pull requests on ...
-
Join GitHub in support of the open Internet
github.com
Our open and free Internet fuels some of the most incredible innovation in history. It provides new opportunities for billions of people to ...
-
Stripe: Apple Pay
stripe.com
Stripe is a suite of APIs that powers commerce for businesses of all sizes.
-
Testing a way for you to make purchases on Twitter | Twitter Blogs
blog.twitter.com
A new way to discover and buy products on Twitter.
-
How a new HTML element will make the Web faster
arstechnica.com
Today, the average size of a webpage is 1.7MB—1MB from images—but change is afoot.
-
Centering in CSS: A Complete Guide | CSS-Tricks
css-tricks.com
Centering things in CSS is the poster child of CSS complaining. Why does it have to be so hard? They jeer. I think the issue isn't that it's ...
-
The Talk on Talks
zachholman.com
Writings, screencasts, and talks by Zach Holman. Zach works at GitHub and enjoys consuming cherry pies.
-
Folder Jumping
github.com
You'll now start seeing expanded file listings on GitHub that look like this: The grey text in the paths — in this case, java/com/netflix/ — means ...
-
Government opens up: 10k active government users on GitHub
github.com
In the summer of 2009, The New York Senate was the first government organization to post code to GitHub, and that fall, Washington DC quickly ...
-
The New GitHub Issues
github.com
We've rebuilt GitHub Issues to be smarter: search smarter, filter smarter, and manage your issues and pull requests smarter. If you want to see it in ...

-
Coursera
www.coursera.org
Take free online classes from 80+ top universities and organizations. Coursera is a social entrepreneurship company partnering with Stanford ...
-
Patchwork Night SF Edition
github.com
We're happy to announce a Patchwork hack night on Tuesday, September 30, 2014 at GitHub HQ. No coding experience needed Patchwork is a hands-on ...
-
Security vulnerability in bash addressed
github.com
Update: 2014-09-25 15:45 UTC GitHub is closely monitoring new developments that indicate the existing bash patch for CVE-2014-6271 is incomplete. The ...
-
Heroku | Introducing Heroku DX: The New Heroku Developer Experience
blog.heroku.com
One of our core beliefs at Heroku is that developers do their best work when the development process is as simple, elegant, and conducive to focus ...
-
Apple Shows Love for HTML5 with iOS 8 | Blog | Sencha
www.sencha.com
September 16, 2014 | Ross Gerbasi
-
Build Web Layouts Easily with Susy | CSS-Tricks
css-tricks.com
I've been coming around to the idea of using Susy (a Sass add-on for grids) lately. I like the idea of grids-on-demand, rather than a strict ...


Introduce yourself
Making news friends in the adult world is hard. Frisco is the perfect filter matching you the most interesting people in your area.
---
title: Home
description: The latest app to help you find new friends with common interests.
image: https://source.unsplash.com/j5LSbCqB1wA/2000x1322?a=.png
bottom_image: https://unsplash.it/2000/1322?a=.png
---
The main objectives of the Biomedical Knowledge Engineering Laboratory at Seoul National University (SNU BiKE) are to develop tools and methodologies for representing, acquiring, processing, and managing knowledge and data for healthcare services and biomedical research.
Biomedical Knowledge Engineering Laboratory
서울대학교 의생명지식공학연구실
Making news friends in the adult world is hard. Frisco is the perfect filter matching you the most interesting people in your area.
The more you tell Frisco the better it gets to know you. Frisco matches you with people who share similar interests with you.
Frisco shows you cards with people who might be a good match for friendship. Swipe left to move to the next card or right to start talking.
It's free, fun and an exciting way to meet new people.


|
The Access/SQL Server/ASP.Net Users
Group
Wednesday, Jan 24 2000, 5:45 pm
Attention
all User Group Attendees!!
USER
GROUP MEETING DATE CHANGE
Adam
Cogan is in San Fransisco at VBits this month so the User Group Meeting
this month is on the 24th January which is a change from our usual 3rd
Wednesday time slot. Please let us know if it's alright with you!
That's
fine by
me!
Sorry
I
can't make it
If you can't make it to
San Fran, VSLive is coming to Sydney! Adam, alongside many other industry
specialists, is to speak at Sydneys VSLive
Conference this March, covering hot topics such as .NET and XML.
This month - Developing for Microsoft SharePoint Portal (Tahoe) Server and the
Web Storage System
SSW has been using Tahoe
for a couple of months now and we think it's great. Adam Cogan will introduce
you to the ins and outs of Tahoe including how it can help with both enterprise
portal/search as well as document management solutions. You'll learn how Tahoe
can provide for relatively simple development of departmental Web Storage
System solutions. All the while, he'll illustrate these key features with live
demonstrations, examples and code!
20 Hot Tips Tricks for Developers
Adam will do a rapid
session of 20 valuable tips mainly for Access and SQL Server from Excel and
Access to Pivot Tables and stored procedures.
|