text:
package modelApi

import (
	"encoding/json"
	"errors"
	"github.com/gin-gonic/gin"
	"github.com/vivek-yadav/ticks24/db/mongo"
	"github.com/vivek-yadav/ticks24/utils"
	"gopkg.in/mgo.v2"
	"gopkg.in/mgo.v2/bson"
	"strconv"
	"strings"
)

type ApiModel interface {
	DbFetchOne(*mgo.Query) (interface{}, error)
	DbInsertOne(*mgo.Collection) (interface{}, error)
	DbUpdateOne(*mgo.Collection, bson.M, bson.M) (interface{}, error)
	DbReplaceOne(*mgo.Collection) (interface{}, error)
	DbDeleteOne(*mgo.Collection) (interface{}, error)
}
type ApiModels interface {
	DbFetchAll(*mgo.Query) (interface{}, error)
	DbInsertAll(*mgo.Collection) (interface{}, error)
	DbUpdateAll(*mgo.Collection, bson.M, bson.M) (interface{}, error)
	DbReplaceAll(*mgo.Collection) (interface{}, error)
	DbDeleteAll(*mgo.Collection) (interface{}, error)
}

func DeleteOne(collectionName string, c *gin.Context) (er error) {
	id := c.Query("id")
	if id == "" {
		id = c.Param("id")
	}
	var idHex bson.ObjectId
	if bson.IsObjectIdHex(id) {
		idHex = bson.ObjectIdHex(id)
	} else {
		er = errors.New("ERROR : Id is not proper")
		return
	}

	authDB, _ := mongo.GetAppDB()
	con, _ := authDB.Connect()
	defer con.Close()
	uc := con.DB("").C(collectionName)
	er = uc.RemoveId(idHex)
	if er != nil {
		er = errors.New("ERROR : Failed to Delete " + collectionName + " (\n\t" + er.Error() + "\n)")
		return
	}
	return
}

func DeleteOneWithString(collectionName string, id string) (er error) {
	var idHex bson.ObjectId
	if bson.IsObjectIdHex(id) {
		idHex = bson.ObjectIdHex(id)
	} else {
		er = errors.New("ERROR : Id is not proper")
		return
	}

	authDB, _ := mongo.GetAppDB()
	con, _ := authDB.Connect()
	defer con.Close()
	uc := con.DB("").C(collectionName)
	er = uc.RemoveId(idHex)
	if er != nil {
		er = errors.New("ERROR : Failed to Delete " + collectionName + " (\n\t" + er.Error() + "\n)")
		return
	}
	return
}

func DeleteAll(collectionName string, c *gin.Context) (er error) {
	var ids []string
	c.Bind(&ids)
	idHexs := make([]bson.ObjectId, len(ids))
	for i, v := range ids {
		if bson.IsObjectIdHex(v) {
			idHexs[i] = bson.ObjectIdHex(v)
		} else {
			er = errors.New("ERROR : Id is not proper (" + v + ")")
			return
		}
	}

	authDB, _ := mongo.GetAppDB()
	con, _ := authDB.Connect()
	defer con.Close()
	uc := con.DB("").C(collectionName)
	var info *mgo.ChangeInfo
	info, er = uc.RemoveAll(bson.M{"_id": bson.M{"$in": idHexs}})
	if er != nil {
		er = errors.New("ERROR : Failed to Delete " + collectionName + " (\n\t" + er.Error() + "\n)")
		return
	}
	if info.Removed == 0 {
		er = errors.New("No of " + collectionName + " Removed :" + strconv.Itoa(info.Removed) + " Out matched " + collectionName + " : " + strconv.Itoa(info.Matched))
		return
	}
	return
}

func DeleteAllWitArray(collectionName string, ids []string) (er error) {
	idHexs := make([]bson.ObjectId, len(ids))
	for i, v := range ids {
		if bson.IsObjectIdHex(v) {
			idHexs[i] = bson.ObjectIdHex(v)
		} else {
			er = errors.New("ERROR : Id is not proper (" + v + ")")
			return
		}
	}

	authDB, _ := mongo.GetAppDB()
	con, _ := authDB.Connect()
	defer con.Close()
	uc := con.DB("").C(collectionName)
	var info *mgo.ChangeInfo
	info, er = uc.RemoveAll(bson.M{"_id": bson.M{"$in": idHexs}})
	if er != nil {
		er = errors.New("ERROR : Failed to Delete " + collectionName + " (\n\t" + er.Error() + "\n)")
		return
	}
	if info.Removed == 0 {
		er = errors.New("No of " + collectionName + " Removed :" + strconv.Itoa(info.Removed) + " Out matched " + collectionName + " : " + strconv.Itoa(info.Matched))
		return
	}
	return
}

func ReplaceOne(collectionName string, dbHandler func(*mgo.Collection) (interface{}, error)) (uu interface{}, er error) {
	authDB, _ := mongo.GetAppDB()
	con, _ := authDB.Connect()
	defer con.Close()
	uc := con.DB("").C(collectionName)

	uu, er = dbHandler(uc)
	if er != nil {
		er = errors.New("ERROR : Failed to Replace All " + collectionName + " (\n\t" + er.Error() + "\n)")
		return
	}
	return
}

func ReplaceAll(collectionName string, dbHandler func(*mgo.Collection) (interface{}, error)) (uu interface{}, er error) {
	if er != nil {
		return
	}

	uu, er = replaceAllFromDB(collectionName, dbHandler)
	if er != nil {
		return
	}
	return
}

func replaceAllFromDB(collectionName string, queryResolver func(*mgo.Collection) (interface{}, error)) (interface{}, error) {
	var u interface{}

	authDB, _ := mongo.GetAppDB()
	con, _ := authDB.Connect()
	defer con.Close()
	uc := con.DB("").C(collectionName)

	u, er := queryResolver(uc)
	if er != nil {
		return u, errors.New("ERROR : Failed to Replace All " + collectionName + " (\n\t" + er.Error() + "\n)")
	}
	return u, nil
}

func UpdateOneById(collectionName string, c *gin.Context, updatedValues map[string]interface{}) (uu interface{}, er error) {
	id := c.Query("id")
	if id == "" {
		id = c.Param("id")
	}
	var idHex bson.ObjectId
	if bson.IsObjectIdHex(id) {
		idHex = bson.ObjectIdHex(id)
	} else {
		er = errors.New("ERROR : Id is not proper")
		return
	}
	authDB, _ := mongo.GetAppDB()
	con, _ := authDB.Connect()
	defer con.Close()
	uc := con.DB("").C(collectionName)
	update := bson.M{"$set": updatedValues}
	er = uc.UpdateId(idHex, update)
	if er != nil {
		er = errors.New("ERROR : Failed to Update " + collectionName + " (\n\t" + er.Error() + "\n)")
		return
	}
	uu = updatedValues
	return
}

func UpdateOneByIdString(collectionName string, id string, updatedValues map[string]interface{}) (uu interface{}, er error) {
	var idHex bson.ObjectId
	if bson.IsObjectIdHex(id) {
		idHex = bson.ObjectIdHex(id)
	} else {
		er = errors.New("ERROR : Id is not proper")
		return
	}
	authDB, _ := mongo.GetAppDB()
	con, _ := authDB.Connect()
	defer con.Close()
	uc := con.DB("").C(collectionName)
	update := bson.M{"$set": updatedValues}
	er = uc.UpdateId(idHex, update)
	if er != nil {
		er = errors.New("ERROR : Failed to Update " + collectionName + " (\n\t" + er.Error() + "\n)")
		return
	}
	uu = updatedValues
	return
}

func Update(collectionName string, c *gin.Context, updatedValues map[string]interface{}, dbHandler func(*mgo.Collection, bson.M, bson.M) (interface{}, error)) (uu interface{}, er error) {

	and := c.Query("and")
	var andCond []map[string]string
	if and != "" {
		andBytes := []byte(and)
		er = json.Unmarshal(andBytes, &andCond)
	}

	or := c.Query("or")
	var orCond []map[string]string
	if or != "" {
		orBytes := []byte(or)
		er = json.Unmarshal(orBytes, &orCond)
	}

	if er != nil {
		return
	}

	uu, er = updateFromDB(collectionName, dbHandler, andCond, orCond, updatedValues)

	if er != nil {
		return
	}
	return
}

func UpdateWithMap(collectionName string, c map[string]string, updatedValues map[string]interface{}, dbHandler func(*mgo.Collection, bson.M, bson.M) (interface{}, error)) (uu interface{}, er error) {

	and := c["and"]
	var andCond []map[string]string
	if and != "" {
		andBytes := []byte(and)
		er = json.Unmarshal(andBytes, &andCond)
	}

	or := c["or"]
	var orCond []map[string]string
	if or != "" {
		orBytes := []byte(or)
		er = json.Unmarshal(orBytes, &orCond)
	}

	if er != nil {
		return
	}

	uu, er = updateFromDB(collectionName, dbHandler, andCond, orCond, updatedValues)

	if er != nil {
		return
	}
	return
}

func updateFromDB(collectionName string, queryResolver func(*mgo.Collection, bson.M, bson.M) (interface{}, error), andCond []map[string]string, orCond []map[string]string, updatedValues map[string]interface{}) (interface{}, error) {
	var u interface{}

	authDB, _ := mongo.GetAppDB()
	con, _ := authDB.Connect()
	defer con.Close()
	uc := con.DB("").C(collectionName)

	find := utils.GetBsonFindArray(andCond, orCond)
	update := bson.M{"$set": updatedValues}
	u, er := queryResolver(uc, find, update)
	if er != nil {
		return u, errors.New("ERROR : Failed to Update " + collectionName + " (\n\t" + er.Error() + "\n)")
	}
	return u, nil
}

func InsertOne(collectionName string, dbHandler func(*mgo.Collection) (interface{}, error)) (uu interface{}, er error) {
	authDB, _ := mongo.GetAppDB()
	con, _ := authDB.Connect()
	defer con.Close()
	uc := con.DB("").C(collectionName)

	uu, er = dbHandler(uc)
	return
}

func InsertAll(collectionName string, dbHandler func(*mgo.Collection) (interface{}, error)) (uu interface{}, er error) {
	authDB, _ := mongo.GetAppDB()
	con, _ := authDB.Connect()
	defer con.Close()
	uc := con.DB("").C(collectionName)

	uu, er = dbHandler(uc)
	return
}

func FetchAll(collectionName string, c *gin.Context, dbHandler func(*mgo.Query) (interface{}, error)) (r Result, er error) {
	//r := Result{}
	var uu interface{}

	var page, size, total int64
	var fields []string
	var exfields []string
	var sorts []string
	sort := c.Query("sort")
	if sort != "" {
		sorts = strings.Split(sort, ",")
	}
	//u := models.Users{}
	field := c.Query("fields")
	if field != "" {
		fields = strings.Split(field, ",")
	}
	exfield := c.Query("excludeFields")
	if exfield != "" {
		exfields = strings.Split(exfield, ",")
	}
	pageS := c.Query("page")
	sizeS := c.Query("size")
	page, er = strconv.ParseInt(pageS, 10, 64)
	if er != nil {
		page = 1
		er = nil
	}
	size, er = strconv.ParseInt(sizeS, 10, 64)
	if er != nil {
		size = 10
		er = nil
	}

	and := c.Query("and")
	var andCond []map[string]string
	if and != "" {
		andBytes := []byte(and)
		er = json.Unmarshal(andBytes, &andCond)
	}

	or := c.Query("or")
	var orCond []map[string]string
	if or != "" {
		orBytes := []byte(or)
		er = json.Unmarshal(orBytes, &orCond)
	}

	if er != nil {
		return
	}

	if len(exfields) > 0 {
		uu, total, er = getListFromDB(collectionName, dbHandler, exfields, true, sorts, andCond, orCond, page, size)
	} else {
		uu, total, er = getListFromDB(collectionName, dbHandler, fields, false, sorts, andCond, orCond, page, size)
	}

	if er != nil {
		return
	}

	r.Total = total
	if r.Total != 0 {
		r.Page = page
		r.Size = size
		r.URL = c.Request.RequestURI
	}
	r.Data = uu
	return
}

func FetchAllWithMap(collectionName string, c map[string]string, dbHandler func(*mgo.Query) (interface{}, error)) (r Result, er error) {
	//r := Result{}
	var uu interface{}

	var page, size, total int64
	var fields []string
	var exfields []string
	var sorts []string
	sort := c["sort"]
	if sort != "" {
		sorts = strings.Split(sort, ",")
	}
	//u := models.Users{}
	field := c["fields"]
	if field != "" {
		fields = strings.Split(field, ",")
	}
	exfield := c["excludeFields"]
	if exfield != "" {
		exfields = strings.Split(exfield, ",")
	}
	pageS := c["page"]
	sizeS := c["size"]
	page, er = strconv.ParseInt(pageS, 10, 64)
	if er != nil {
		page = 1
		er = nil
	}
	size, er = strconv.ParseInt(sizeS, 10, 64)
	if er != nil {
		size = 10
		er = nil
	}

	and := c["and"]
	var andCond []map[string]string
	if and != "" {
		andBytes := []byte(and)
		er = json.Unmarshal(andBytes, &andCond)
	}

	or := c["or"]
	var orCond []map[string]string
	if or != "" {
		orBytes := []byte(or)
		er = json.Unmarshal(orBytes, &orCond)
	}

	if er != nil {
		return
	}

	if len(exfields) > 0 {
		uu, total, er = getListFromDB(collectionName, dbHandler, exfields, true, sorts, andCond, orCond, page, size)
	} else {
		uu, total, er = getListFromDB(collectionName, dbHandler, fields, false, sorts, andCond, orCond, page, size)
	}

	if er != nil {
		return
	}

	r.Total = total
	if r.Total != 0 {
		r.Page = page
		r.Size = size
		r.URL = "internal Call"
	}
	r.Data = uu
	return
}

func getListFromDB(collectionName string, queryResolver func(*mgo.Query) (interface{}, error), fields []string, isExclude bool, sort []string, andCond []map[string]string, orCond []map[string]string, page, size int64) (interface{}, int64, error) {
	var u interface{}

	authDB, _ := mongo.GetAppDB()
	con, _ := authDB.Connect()
	defer con.Close()
	uc := con.DB("").C(collectionName)

	q := uc.Find(utils.GetBsonFindArray(andCond, orCond))
	if isExclude {
		q = q.Select(utils.Deselector(fields...))
	} else {
		q = q.Select(utils.Selector(fields...))
	}

	c, erc := q.Count()
	if erc != nil {
		return u, 0, errors.New("ERROR : Failed to Find " + collectionName + " (\n\t" + erc.Error() + "\n)")
	}
	total := int64(c)
	if total/size < page-1 {
		return u, 0, errors.New("ERROR : Failed to Find " + collectionName + " on this page or page limit reached")
	}
	q = q.Sort(sort...)
	q = q.Limit(int(size))
	q = q.Skip(int((page - 1) * size))
	u, er := queryResolver(q)
	if er != nil {
		return u, 0, errors.New("ERROR : Failed to Find " + collectionName + " (\n\t" + er.Error() + "\n)")
	}
	return u, total, nil
}

func FetchById(collectionName string, c *gin.Context, dbHandler func(*mgo.Query) (interface{}, error)) (uu interface{}, er error) {

	var fields []string
	var exfields []string
	//u := models.Users{}
	field := c.Query("fields")
	if field != "" {
		fields = strings.Split(field, ",")
	}
	exfield := c.Query("excludeFields")
	if exfield != "" {
		exfields = strings.Split(exfield, ",")
	}

	id := c.Query("id")
	if id == "" {
		id = c.Param("id")
	}

	if er != nil {
		return
	}

	if len(exfields) > 0 {
		uu, er = getByIdFromDB(collectionName, dbHandler, exfields, true, id)
	} else {
		uu, er = getByIdFromDB(collectionName, dbHandler, fields, false, id)
	}
	if er != nil {
		return
	}

	return
}

func FetchByIdWithMap(collectionName string, c map[string]string, dbHandler func(*mgo.Query) (interface{}, error)) (uu interface{}, er error) {

	var fields []string
	var exfields []string
	//u := models.Users{}
	field := c["fields"]
	if field != "" {
		fields = strings.Split(field, ",")
	}
	exfield := c["excludeFields"]
	if exfield != "" {
		exfields = strings.Split(exfield, ",")
	}

	id := c["id"]
	if er != nil {
		return
	}

	if len(exfields) > 0 {
		uu, er = getByIdFromDB(collectionName, dbHandler, exfields, true, id)
	} else {
		uu, er = getByIdFromDB(collectionName, dbHandler, fields, false, id)
	}
	if er != nil {
		return
	}

	return
}

func getByIdFromDB(collectionName string, queryResolver func(*mgo.Query) (interface{}, error), fields []string, isExclude bool, id string) (interface{}, error) {
	var u interface{}

	authDB, _ := mongo.GetAppDB()
	con, _ := authDB.Connect()
	defer con.Close()
	uc := con.DB("").C(collectionName)
	var idHex bson.ObjectId
	if bson.IsObjectIdHex(id) {
		idHex = bson.ObjectIdHex(id)
	}
	q := uc.Find(bson.M{"_id": idHex})
	if isExclude {
		q = q.Select(utils.Deselector(fields...))
	} else {
		q = q.Select(utils.Selector(fields...))
	}

	_, erc := q.Count()
	if erc != nil {
		return u, errors.New("ERROR : Failed to Find " + collectionName + " (\n\t" + erc.Error() + "\n)")
	}

	u, er := queryResolver(q)
	if er != nil {
		return u, errors.New("ERROR : Failed to Find " + collectionName + " (\n\t" + er.Error() + "\n)")
	}
	return u, nil
}

func FetchOne(collectionName string, c *gin.Context, dbHandler func(*mgo.Query) (interface{}, error)) (uu interface{}, er error) {

	var fields []string
	var exfields []string
	//u := models.Users{}
	field := c.Query("fields")
	if field != "" {
		fields = strings.Split(field, ",")
	}
	exfield := c.Query("excludeFields")
	if exfield != "" {
		exfields = strings.Split(exfield, ",")
	}

	and := c.Query("and")
	var andCond []map[string]string
	if and != "" {
		andBytes := []byte(and)
		er = json.Unmarshal(andBytes, &andCond)
	}

	or := c.Query("or")
	var orCond []map[string]string
	if or != "" {
		orBytes := []byte(or)
		er = json.Unmarshal(orBytes, &orCond)
	}

	if er != nil {
		return
	}

	if len(exfields) > 0 {
		uu, er = getFromDB(collectionName, dbHandler, exfields, true, andCond, orCond)
	} else {
		uu, er = getFromDB(collectionName, dbHandler, fields, false, andCond, orCond)
	}

	if er != nil {
		return
	}
	return
}

func FetchOneWithMap(collectionName string, c map[string]string, dbHandler func(*mgo.Query) (interface{}, error)) (uu interface{}, er error) {

	var fields []string
	var exfields []string
	//u := models.Users{}
	field := c["fields"]
	if field != "" {
		fields = strings.Split(field, ",")
	}
	exfield := c["excludeFields"]
	if exfield != "" {
		exfields = strings.Split(exfield, ",")
	}

	and := c["and"]
	var andCond []map[string]string
	if and != "" {
		andBytes := []byte(and)
		er = json.Unmarshal(andBytes, &andCond)
	}

	or := c["or"]
	var orCond []map[string]string
	if or != "" {
		orBytes := []byte(or)
		er = json.Unmarshal(orBytes, &orCond)
	}

	if er != nil {
		return
	}

	if len(exfields) > 0 {
		uu, er = getFromDB(collectionName, dbHandler, exfields, true, andCond, orCond)
	} else {
		uu, er = getFromDB(collectionName, dbHandler, fields, false, andCond, orCond)
	}

	if er != nil {
		return
	}
	return
}

func getFromDB(collectionName string, queryResolver func(*mgo.Query) (interface{}, error), fields []string, isExclude bool, andCond []map[string]string, orCond []map[string]string) (interface{}, error) {
	var u interface{}

	authDB, _ := mongo.GetAppDB()
	con, _ := authDB.Connect()
	defer con.Close()
	uc := con.DB("").C(collectionName)

	q := uc.Find(utils.GetBsonFindArray(andCond, orCond))
	if isExclude {
		q = q.Select(utils.Deselector(fields...))
	} else {
		q = q.Select(utils.Selector(fields...))
	}

	_, erc := q.Count()
	if erc != nil {
		return u, errors.New("ERROR : Failed to Find " + collectionName + " (\n\t" + erc.Error() + "\n)")
	}
	u, er := queryResolver(q)
	if er != nil {
		return u, errors.New("ERROR : Failed to Find " + collectionName + " (\n\t" + er.Error() + "\n)")
	}
	return u, nil
}


text:
Customer Onboarding (Credit, Compliance & Fraud)
Corporate Fraud Detection
Credit Control Training
Partnerships & Resellers
Home / Blog / Risk & Compliance / Strategy / Graydon Business Intelligence Unit wins national economic crime award
Written by Graydon
Graydon Business Intelligence Unit wins national economic crime award
London, 12th December 2019 – Graydon, one of Europe's leading providers of business data, insights, analytics and solutions, won the prize for Outstanding Fraud Consultants at the inaugural Tackling Economic Crime Awards 2019. A great recognition of the expertise of the team and of the solutions that helps companies detect and prevent fraud.
Graydon's Business Intelligence Unit is responsible for investigating and detecting potentially fraudulent and suspect companies who have applied for trade credit. The unit was established over 20 years ago and is led by Graydon's Head of Intelligence and CICM-fellow Alan Norton. Every day, fraudsters are becoming increasingly sophisticated and their methods are constantly evolving.
As the jury report mentioned: "At a time when organisations are increasingly targeted by fraud, the team provides a crucial service to Graydon clients across the UK. The unit's work was recognised in the Chartered Institute of Credit Management Awards in 2018. Each year, the Unit's workload is increasing. In the last five years, the average value of fraudulent transactions identified and investigated by Graydon has soared by 58 percent!"
The awards are held in particularly high regard by the industry as they are endorsed and connected to one of the most authoritative voices on fraud: the University of Portsmouth's Centre for Counter-Fraud Studies. Professor Martin Gill, founder of the TECAs, commented: "The judging process is strict and robust; judges mark independently against a set of criteria, and they commit to declaring any conflict of interest. Each entry must achieve a fixed score threshold to become a finalist, ensuring consistent quality across the competition; which means all the finalists – individuals, teams and companies represent outstanding performance of the highest level."
"Graydon UK was shortlisted for the awards alongside some of the big industry names like PWC and Nationwide", said Simon Blackwell, Managing Director at Graydon UK. "This award underlines the fantastic work that our intelligence team does every day – saving our clients hundreds of thousands of pounds every week - and deservedly recognises our team as the best in the business. It puts us at the forefront of the industry, by creating solutions that help companies in the ongoing fight against economic crime and fraud."
Image: Graydon's Director of Data Operations Chris Oatts, and Marketing Executive James Woodman collect the award on behalf of the Graydon Business Intelligence Unit.
By Craig Evans | 105 reads
Preventing fraud is a game of cat and mouse
By Graydon | 19 reads
Graydon and Cifas work together to analyse and detect corporate fraud
Get the latest business tips
Click here for preferences
Corporate Fraud Intelligence
Customer Onboarding (Credit, KYC & AML)
About Graydon
Graydon UK Ltd, Registered in England and Wales No 363849
© Graydon. All rights reserved

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Receiving Jquery POST data in Express Edit See the accepted answer below for the fix. I also had to remove the line contentType: 'appliction/json', from my POST request.
I'm trying to send a string to Node.js / Express, but req.body is undefined server-side.
Client jQuery:
$.post({
        traditional: true,
        url: '/matches',
        contentType: 'appliction/json',
        data: viewedProfiles,
        dataType: 'json',
        success: function(response){

Express:
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());

app.post('/matches', isLoggedIn, function(req, res){
  console.log(req.body) // this is undefined
  var loadedProfiles = []
  loadedProfiles.push(req.body.viewedProfiles)
  console.log('loadedProfiles')
  console.log(loadedProfiles)

I've tried:

*

*not specifying 'dataType'

*setting data: JSON.stringify(viewProfiles)

*splitting the string into an array on the client, and then having jQuery stringify it

*looking for req.params instead of req.body (clutching at straws)

I can see the XHR request in dev tools, and it contains the string I'm expecting.
What super obvious thing am I missing to send the data to Express?
Thanks.

A: Your server side code looks fine but you need to use $.ajax() rather than  $.post() function because $.post() function send data into url (with url encoded). So your JQuery code would be
$.ajax({
        url: '/matches',
        type: 'POST',
        contentType: 'application/json',
        data: JSON.stringify({"viewedProfiles": viewedProfiles}),
        success: function(response){

I hope this will help you

A: I've configured an exact same setup. And code below works:
var profiles = { 'data' : 'hello' };

$.post({
        traditional: true,
        url: '/matches',
        contentType: 'application/json',
        data: JSON.stringify( profiles ),
        dataType: 'json',
        success: function(response){ console.log( response ); }
} );

My nodejs engine:
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());

app.post( '/matches' , function(req, res){
  console.log(req.body) // this outputs: { data: 'hello' }
} );

Btw, There is a typo where your contentType is, 'applicAtion/json'

redpajama_set_name: RedPajamaStackExchange


1)Gases have neither definite shape nor definite volume. They take up the shape and volume of the container.
2)They have lower density than liquids and solids.
4)Gases intermix completely in all proportion without any mechanical aid.
5)They exert pressure equally in all direction.
The mass of a gas can be easily determined by weighing the container containing the gas, and then emptying the container by taking out the gas and weighing the empty container again. The difference between the two masses gives the mass of the gas.
As a gas fills the whole of the vessel in which it is put, hence the volume of the gas is equal to the volume of its container which in turn can be calculated from the dimensions of the container.
The S.I. unit of volume is m3.
The instrument used for the measurement of atmospheric pressure is called a barometer.
It consists of inverting a tube filled with mercury in a dish of mercury. The height of the mercury column above the level of mercury in the dish is a measure atmospheric pressure at that place.
1) The height of the column in a barometer is inversely proportional to the density of the liquid. As Mercury has very high density ,the height of the column setup is very convenient for study.
2) Mercury is non-volatile at room temperature.Hence, the vapour pressure due to Mercury vapour is negligible.
The instrument used for the measurement of the pressure of a gas is called manometer. It simply consists of a U- shaped tube containing mercury usually.
1)Those in which the longer limb is closed.Closed limb manometer is used only for gases at pressure less than the atmospheric pressure.
2)Those in which the longer limit is open.Open limb manometer is used for all.
A standard or normal atmospheric pressure is defined as the pressure exerted by a mercury column of exactly 76 cm at 0°C. This is the pressure exerted by the atmosphere at the sea level.
Temperature is a measure of the extent of hotness or coldness of a body.
It is based on the principle that substances expands on heating.
Substance used in the measurement of temperature is mercury.


text:
require 'progress_bar'
require 'benchmark'

MAX = 10**6
PORTION = MAX / 100

class TimelineModel < CassandraComplex::Model
  table 'timeline'

  attribute :user_id,  'varchar'
  attribute :tweet_id, 'int'
  attribute :author,   'varchar'
  attribute :body,     'varchar'

  primary_key :user_id, :tweet_id
end

progress_bar = ProgressBar.new(MAX, :bar, :percentage, :elapsed, :eta)

conn = CassandraComplex::Connection.new('127.0.0.1:9160')
conn.execute('DROP KEYSPACE cassandra_complex_benchmark;')
conn.execute('CREATE KEYSPACE cassandra_complex_benchmark WITH strategy_class = \'SimpleStrategy\' AND strategy_options:replication_factor = 1;')
CassandraComplex::Configuration.read({'host'=>'127.0.0.1:9160', 'default_keyspace'=>'cassandra_complex_benchmark'})
TimelineModel.create_table
puts "#{MAX} records created, found, deleted within cassandra in(user, system, total, real) time:"
puts Benchmark.measure{
  (1..MAX).each do |i|

    progress_bar.increment! PORTION if (i%PORTION) == 0
    id = "test_#{i}"
    TimelineModel.new({'user_id' => id, 'tweet_id' => i, 'author' => id, 'body' => id}).save
    timeline = TimelineModel.find(id)
    timeline[0].delete
  end
}

TimelineModel.drop_table
conn.execute('DROP KEYSPACE cassandra_complex_benchmark;')

redpajama_set_name: RedPajamaGithub


text:
KISS Legend Paul Stanley Reveals His Opinions About The Important Issue
BySami Altintas Last updated Feb 22, 2020 February 22, 2020
In a new appearance with Sioux City Journal, Paul Stanley, the guitarist of the American rock band KISS, which rose to prominence in the mid-to-late 1970s with their elaborate live performances, has talked about the most wondering issue about the band and revealed his opinions about it.
He stated that the End Of The World tour is just the end of Gene Simmons and himself, the remaining two members, Eric Singer and Tommy Thayer, of the band could continue with the new members.
"There was a time when people said, 'KISS has to be the original four members.' Well, those people are 50 percent wrong. And all of this is conjecture.
"I'm not walking away from what Gene and I have built over 45 years," Paul added. "I'm of the mindset that teams don't fold because their star pitcher or star hitter is gone. There's an amazing pool of talent out there. Can it continue? Absolutely."
The 47-year band KISS' ongoing End of The Road Tour kicked off at the Rogers Arena in Vancouver on January 31, 2019, and conclude on July 17, 2021, in New York City.
Last November, manager Doc has said that they want to include everybody that played with KISS to celebrate the 45 years of KISS. He also added that they still looking at what they're gonna do on the final show of KISS.
Post Tags: #kiss#kiss news#news#Paul Stanley#Paul Stanley news#rock#rock news
Sami Altintas
Hello dear readers, I'm Sami. I'm the social media coordinator/editor of MetalCastle, which is a number one source for rock and metal music news. I am a huge fan of Mötley Crüe. Out of music, I also love taking photos, writing stuff and seeing new places. If you have any problems or questions, contact me: sami@metalcastle.net
KISS Manager Explains How They Decided To Put David Lee Roth On Their Opening Night
John Dolmayan: "I Find It Very Unlikely That System of a Down Will Ever Record Again"
Foo Fighters' Chris Shiflett Reveals Anger At People Who Disrespect Taylor Hawkins' Death
Read More Foo Fighters' Chris Shiflett Reveals Anger At People Who Disrespect Taylor Hawkins' DeathContinue
Whitesnake's David Coverdale Sends A Special Celebration Photo For Jimmy Page
Read More Whitesnake's David Coverdale Sends A Special Celebration Photo For Jimmy PageContinue
John Corabi Admits Tommy Lee And Nikki Sixx Didn't Care Of Him On His Son's Struggle With Drugs
Read More John Corabi Admits Tommy Lee And Nikki Sixx Didn't Care Of Him On His Son's Struggle With DrugsContinue
MICHAEL JACKSON's Daughter PARIS JACKSON Gives Life-Changing Suggestions
Read More MICHAEL JACKSON's Daughter PARIS JACKSON Gives Life-Changing SuggestionsContinue
Downing On His Departure From Judas Priest: "That Was A Myth"
Read More Downing On His Departure From Judas Priest: "That Was A Myth"Continue
Robert Plant Recalls First Met With Jimmy Page: "The Fireball That We Developed Took No Prisoners"
Read More Robert Plant Recalls First Met With Jimmy Page: "The Fireball That We Developed Took No Prisoners"Continue


text:
Q: Replace a continuous probability distribution with a discrete one Say one wants to fit a curve $f(x)$ to a set of noisy data points $(x_i, y_i)$. If the error for each point $y_i$ is assumed to be normally distributed with variance $\sigma_i^2$, one wants to find the curve that minimizes the sum of weighted error, which is commonly given by:
$$\text{Weighted Error}=\sum_i\left(\frac{y_i-f(x)}{\sigma_i}\right)^2$$
I'm looking for the equivalent of this expression for the discrete case, i.e. when instead of a normal distribution, the probability that $f(x_i)$ passes through any given $y$ is defined using a discrete probability distribution of the form:
$$P(f(x_i)=y)=\sum_j A_j \delta(y,y_j)$$
My questions for today:

*

*I assume the corresponding quantity for the weighted error, in analogy with the normal distribution, is given by the function: $$G=-\log P(f(x))$$ Is this assumption correct?

*How would one find the derivative of this quantity in the discrete case? i.e finding the value of:
$$\frac{dG} {dx}=\frac{-d \log P(f(x))} {dx}$$

*In general, why the sum of weighted errors usually minimized instead of the expected value, a.k.a the information entropy?

Any help gladly appreciated.


text:
Elodie Rêverie
Elodie Rêverie embarked on a journey that began in early childhood, with her fingers poised over piano keys and continues today, as she writes, performs, and produces her music with a fierce independence. This self-reliant nature is born of a confidence gained the hard way. Gained via hours at the piano as a child in Brooklyn, and as a history major in college. Gained over months of primitive living in the Nevada desert. Gained with every instant she's ever stepped up on a stage. Elodie (rhymes with Melody) is bound by close family ties and these bonds are a huge part of her artistry. Elodie embraces every last facet of her heritage including the lore around her Scottish ancestry which has called her back to Scotland to explore castles and study songwriting. Intimately personal songwriting is not new to Rêverie which is why her lyrics and sultry vocals carry so much emotion. Using a bow staff she forged fire from nothing and after completing her college degree, Elodie understood both the literal and metaphorical gold rush that motivated her California recording career. Hammering beats drive much of her music with softer melodies bringing out the nuances in her voice which has been described as ethereal and dreamlike. Apt descriptions given rêverie is French for dream. The word is also the title of a classic composition by Claude Debussy which has always spoken to Elodie's musical soul and perhaps sparked the musical journey that Elodie Rêverie now traverses.


text:
A '9 to 5′ Reboot Is in the Works, and Dolly Parton Is Ready
Cillea Houghton Published: March 2, 2018
Dolly Parton is ready to revisit her legendary role as Doralee Rhodes, and it's great timing, because a reboot of the iconic film 9 to 5 is in the works!
Deadline reports that Parton and co-stars Lily Tomlin and Jane Fonda are eager to reprise the movie that put a spotlight on misogyny and sexual harassment in the workplace. The plot pf the reprise will center around three young women dealing with similar issues in their modern work environments, and they turn to the original three leading stars for advice.
20th Century Fox will work with the film's original writer, Patricia Resnick, who is looking to collaborate with Rashida Jones, a highly respected actress and writer known for her roles on Parks and Recreation, The Office and Angie Tribeca.
Unforgettable Dolly Parton Moments
In the wake of the #MeToo movement, the water is just right for 9 to 5 part two. Parton tells ABC's Nightline that she and her revered co-stars are committed to putting the sequel together after years of talking about it.
"I've been talking to Lily and Jane ... Actually all these years, we've talked about doing a sequel to 9 to 5 and it never made any real sense until just recently," she says.
The legendary actresses have remained longtime friends since the film's debut in 1980, most recently reuniting at the 2017 Emmy Awards to present the award for Outstanding Supporting Actor in a Limited Series or Movie. Tomlin was also on hand at the 2016 CMA Awards to present Parton with the Willie Nelson Lifetime Achievement Award.
These Country Singers Are Also Actors!
Filed Under: Dolly Parton


text:
Home » IANS » UK election: Labour promises to outspend Tories on NHS
UK election: Labour promises to outspend Tories on NHS
Published on : Wed 13th November 2019, 01:58 PM
London, Nov 13 (IANS) UK's Labour Party on Wednesday vowed to spend more on the National Health Service (NHS) in England than the Conservative Party if it wins the upcoming general election.
The health service budget would rise to £155 bn by 2023-24 — £6bn more than the Conservatives promised the front-line budget would reach by that stage when it set out its 5-year plan last year, the BBC reported.
Labour said the money would "boost mental health services".
Labour has said it would aim to shift Britain towards a 32-hour working-week. The party said it would be phased in over 10 years so would not have impact on the NHS budget, as claimed by the Tories.
The average UK full-time working week is 42.5 hours as compared to an EU average of 41.2, according to statistics body Eurostat.
vin/


Full Day Charter Time: 9 hours - departure and return time confirmed at time of booking. Price: $1,500.00 Come fish in the "Sailfish Capital of the World" Stuart, Fl. The rate for 2015 is $1,500 (check or cash) for your party of one to six. A $50 convenience fee will be charge. A fuel surcharge may be applied based on current fuel prices. Due to Coast Guard regulations parties must be no more that six persons. If unable to fish due to bad weather, your trip may be rescheduled or deposit refunded. The Sportfishing Vessel The Wet-n-Wild is a 54 foot Gillikin Yacht that was built by James Gillikin and Capt Tony. It was commissioned in 2001. It is equipped with a pair of 800 horsepower Caterpillar diesels and has a cruising speed of 30 knots. The Wet-n-Wild boat is fast, clean, and extremely comfortable. The air conditioned interior features a day bunk, large heads, a spacious salon and galley. The salon boasts a big screen HDTV with Dish network tv and a state of the art sound system featuring satellite radio or a hook up for your IPOD. The spacious cockpit features a mezzanine "fighting couch" allowing you to relax in the shade and still be right in the middle of the action. Whether fighting your fish "stand up" or from the big game fighting chair, you'll be equipped with everything you need to land the fish of a lifetime! We carry top of the line Avet reels and with Connely custom rods from 20 to 80# class. If you have any questions, we can answer those through GetMyBoat's messaging platform before you pay. Just hit, "Request to Book" and send us an inquiry for a custom offer.
For a day filled with adventure and excitement we invite you to come aboard the Wet-n-Wild where OwnerCaptain Tony and crew will provide an experience that will keep you coming back again for more! We invite you to feel at home on the Wet-n-Wild while catching plenty of fish. The well equiped 54' sportfishing boat can put you on the Marlin, Tuna, Wahoo, Dolphin, and Sailfish. Captain Tony and crew will do there best to help you land them. If fishing for Spanish Mackerel, Cobia, or King Mackerel we do offer half day in-shore trips. His fishing experience spans the Crystal Coast waters of NC which includes Atlantic Beach, Beaufort, Morehead City, Emerald Isle, and Pine Knoll Shores to the Treasure Coast of FL which includes Fort Pierce, Jensen Beach, Stuart, Manatee Pocket, and Jupiter.Captain Tony's philosphy is "it's all about you - the charter." It is his intention to provide you with the boating experience you desire whether that's an action packed day of fishing or a relaxing time cruising on the water. He also appreciates feedback on how he can provide a better charter experience.
Reserve a 24' Pontoon in Stuart, FL for 12 person!
Explore Jensen Beach, FL on a 24' Pontoon Boat!


text:
Q: Tkinter showing images Here is the code I am trying to display images.
Well.. first of all there should be 4 cards shown in the screen ; however,  there are only 2.
I have no idea why this is happening. I really need help .
def __init__(self):
    Frame.__init__(self)
    self.master.title("Black Jack")
    blackjack = Blackjack()
    self.grid()

    self._playerCardImage = PhotoImage(file=str(blackjack._player._cards[0].fileName))
    self._playerCardLabel = Label(self, image = self._playerCardImage)
    self._playerCardLabel.grid(row=0, column=0)

    self._playerCardImage1 = PhotoImage(file=str(blackjack._player._cards[1].fileName))
    self._playerCardLabel1 = Label(self, image = self._playerCardImage1)
    self._playerCardLabel1.grid(row=0, column=1)

    self._dealerCardImage = PhotoImage(file=str(blackjack._dealer._cards[0].fileName))
    self._dealerCardImage = Label(self, image = self._dealerCardImage)
    self._dealerCardImage.grid(row=0, column=2)

    self._dealerCardImage1 = PhotoImage(file=str(blackjack._dealer._cards[1].fileName))
    self._dealerCardImage1 = Label(self, image = self._dealerCardImage1)
    self._dealerCardImage1.grid(row=0, column=3)

A: your first 2 lines of code for the first 2 cards:
self._playerCardImage = PhotoImage(file=str(blackjack._player._cards[0].fileName))
self._playerCardLabel = Label(self, image = self._playerCardImage)
self._playerCardLabel.grid(row=0, column=0)

your last 2 lines of code for the last 2 cards:
self._dealerCardImage1 = PhotoImage(file=str(blackjack._dealer._cards[1].fileName))
self._dealerCardImage1 = Label(self, image = self._dealerCardImage1)
self._dealerCardImage1.grid(row=0, column=3)

you are reinitializing the _dealerCardImage1 as a label.
you will need to change the alst 2 lines to something like:
self._dealerCardImage1 = PhotoImage(file=str(blackjack._dealer._cards[1].fileName))
self._dealerCardLabel1 = Label(self, image = self._dealerCardImage1)
self._dealerCardLabel1.grid(row=0, column=3)

A: In a question to another answer you asked if you could create the images in a loop. There's nothing to prevent you from doing just that.
For example, if you wanted to create 4 player cards, you could do something like:
def __init__(self):
    Frame.__init__(self)
    self.master.title("Black Jack")
    blackjack = Blackjack()
    self.grid()

    self._images = []
    self._labels = []
    for column in range(4):
        image = PhotoImage(file=str(blackjack._player._cards[column].fileName))
        label = Label(self, image = image)
        label.grid(row=0, column=column)

        self._images.append(image)
        self._labels.append(label)


text:
Q: Preventing double hash operation when trying to update value in a of type Dictionary I am working on software for scientific research that deals heavily with chemical formulas. I keep track of the contents of a chemical formula using an internal Dictionary<Isotope, int> where Isotope is an object like "Carbon-13", "Nitrogen-14", and the int represents the number of those isotopes in the chemical formula. So the formula C2H3NO would exist like this:
{"C12", 2
"H1", 3
"N14", 1
"O16", 1}

This is all fine and dandy, but when I want to add two chemical formulas together, I end up having to calculate the hash function of Isotope twice to update a value, see follow code example.
public class ChemicalFormula {
    internal Dictionary<Isotope, int> _isotopes = new Dictionary<Isotope, int>();

    public void Add(Isotope isotope, int count)
    {
        if (count != 0)
        {
            int curValue = 0;
            if (_isotopes.TryGetValue(isotope, out curValue))
            {
                int newValue = curValue + count;
                if (newValue == 0)
                {
                    _isotopes.Remove(isotope);
                }
                else
                {
                    _isotopes[isotope] = newValue;
                }
            }
            else
            {
                _isotopes.Add(isotope, count);
            }
            _isDirty = true;
        }
    }
}

While this may not seem like it would be a slow down, it is when we are adding billions of chemical formulas together, this method is consistently the slowest part of the program (>45% of the running time). I am dealing with large chemical formulas like "H5921C3759N1023O1201S21" that are consistently being added to by smaller chemical formulas.
My question is, is there a better data structure for storing data like this? I have tried creating a simple IsotopeCount object that contains a int so I can access the value in a reference-type (as opposed to value-type) to avoid the double hash function. However, this didn't seem beneficial.
EDIT
Isotope is immutable and shouldn't change during the lifetime of the program so I should be able to cache the hashcode.
I have linked to the source code so you can see the classes more in depth rather than me copy and paste them here.

A:
I have tried creating a simple IsotopeCount object that contains a int so I can access the value in a reference-type (as opposed to value-type) to avoid the double hash function. However, this didn't seem beneficial.

Well it would stop the double hashing... but obviously it's then worse in terms of space. What performance difference did you notice?
Another option you should strongly consider if you're doing this a lot is caching the hash within the Isotope class, assuming it's immutable. (If it's not, then using it as a dictionary key is at least somewhat worrying.)
If you're likely to use most Isotope values as dictionary keys (or candidates) then it's probably worth computing the hash during initialization. Otherwise, pick a particularly unlikely hash value (in an ideal world, that would be any value) and use that as the "uncached" value, and compute it lazily.
If you've got 45% of the running time in GetHashCode, have you looked at optimizing that? Is it actually GetHashCode, or Equals which is the problem? (You talk about "hashing" but I suspect you mean "hash lookup in general".)
If you could post the relevant bits of the Isotope type, we may be able to help more.
EDIT: Another option to consider if you're using .NET 4 would be ConcurrentDictionary, with its AddOrUpdate method. You'd use it like this:
public void Add(Isotope isotope, int count)
{
    // I prefer early exit to lots of nesting :)
    if (count == 0)
    {
        return 0;
    }

    int newCount = _isotopes.AddOrUpdate(isotope, count,
                                         (key, oldCount) => oldCount + count);
    if (newCount == 0)
    {
        _isotopes.Remove(isotope);
    }
    _isDirty = true;
}

A: Do you actually require random access to Isotope count by type or are you using the dictionary as a means for associating a key with a value?
I would guess the latter.
My suggestion to you is not to work with a dictionary but with a sorted array (or List) of IsotopeTuples, something like:
class IsotopeTuple{
   Isotope i;
   int count;
}

sorted by the name of the isotope.
Why the sorting?
Because then, when you want to "add" two isotopes together, you can do this in linear time by traversing both arrays (hope this is clear, I can elaborate if needed). No hash computation required, just super fast comparisons of order.
This is a classic approach when dealing with vector multiplications where the dimensions are words.
Used widely in text mining.
the tradeoff is of course that the construction of the initial vector is (n)log(n), but I doubt if you will feel the impact.

A: I second the opinion that Isotope should be made immutable with precalculated hash. That would make everything much simpler.
(in fact, functionally-oriented programming is better suited for calculations of such sort, and it deals with immutable objects)

A: Another solution that you could think of if you had a limited number of Isotopes and no memory problems:
public struct Formula
{
   public int C12;
   public int H1;
   public int N14;
   public int O16;
}

I am guessing you're looking at organic chemistry, so you may not have to deal with that many isotopes, and if the lookup is the issue, this one will be pretty fast...


text:
Endosamara es un género monotípico de plantas con flores perteneciente a la familia Fabaceae. Su única especie: Endosamara racemosa  (Roxb.) R.Geesink, es originaria de Asia donde se encuentra en Birmania, la India, Filipinas, Sri Lanka y Tailandia.

Taxonomía
El género fue descrito por Nicholas Edward Brown y publicado en Journal of Botany, British and Foreign 66: 141. 1928.
Sinonimia
Millettia leiogyna Kurz
Millettia pallida Dalzell
Millettia pallida (Dalzell & A.Gibson) Dalzell
Millettia racemosa (Roxb.) Benth.
Pongamia racemosa Graham
Robinia racemosa Roxb.
Tephrosia racemosa Wight & Arn.
Wisteria pallida Dalzell & A.Gibson
Wisteria racemosa Dalzell & A. Gibson

Referencias

Enlaces externos

Millettieae
Flora del subcontinente indio

Flora de Filipinas
Flora de Sri Lanka
Flora de Indochina
Flora de Asia continental
Plantas descritas en 1984
Plantas descritas por Roxburgh
Plantas descritas por R.Geesink

redpajama_set_name: RedPajamaWikipedia


text:
Sigle
 Piede al secondo, misura della velocità in unità imperiali, pari a
 Flight progress strip – Striscia progresso volo
 First person shooter – sparatutto in prima persona, genere di videogiochi
 Floating Point Systems – azienda di computer fondata nel 1970 e in seguito comprata da Cray Research
 Forssan Palloseura – squadra di hockey su ghiaccio finlandese
 Fotogrammi per secondo – misura della velocità di aggiornamento di un qualunque mezzo visivo

Codici
 FPS – codice vettore ICAO di Flightpass Limited


text:
Mike is an active after dinner speaker and, through this, has raised in excess of £500,000 for his various charities.
Mike was an active member of Romford Round Table from 1978 until 1993 and was Chairman in 1992. He is currently a member of Hornchurch 41 club.
Mike's first book "Where There's A Will" was published in 1980, and reprinted in 2018.
He was featured as the subject on "This Is Your Life", in 1981.
He was awarded the OBE for Services to Disabled Sport in the 2005 New Year's Honours List, and the CBE in the Queen's Birthday Honours list 2009 again for his contribution to Disabled Sport.
Mike was awarded an Honorary Fellowship of the College of Optometrists in 2005, and an Honorary Doctorate of Philosophy at London Metropolitan University in December 2009.
He was made an Honorary Fellow of the Royal College of Ophthalmologists in September 2011 and received two further Honorary Doctorates in Business Administration from Anglia Ruskin University in October 2011 and Social Science from University of East London in 2015.
He was appointed as a Deputy Lieutenant of London in July 2016 and his second book "Don't Ask Me, Ask the Dog?" is published and available from Amazon in "E" and print formats.
The second volume of Mike's auto-biography covers the last 30 years of his working life, his sporting career both as a competitor and administrator, and his quest (via his after dinner speaking) to challenge his own, and others' view of disability.
He is intending to reprint his first book "Where There's A Will" in spring/summer 2017.


Islam places great emphasis on the child, right from infancy to the age of puberty. The reason for this is to prepare him to become a good member of the community. Children learn more by example than by words. Telling our children what to do and not showing them by a good example is a hypocritical act and drives children to confusion and away from us. It is for this reason that we are presenting this booklet as a guideline for those parents who are concerned about their present and future offspring.
This booklet is a guideline for those parents who are concerned about their present and future offspring.


until scores have returned to baseline or the individual is symptom free and scores are in the anticipated range based on educational history. In the majority of cases symptoms resolve before testing returns to normal.
ADHD is not just a childhood disorder. Help your child live normally by viewing and clicking on the links below.
What Exactly is Tourette Syndrome?
Tourette syndrome (TS) is a neurological disorder characterized by tics - involuntary, rapid, sudden movements or vocalizations that occur repeatedly in the same way.
Copyright © NJ Neurology, Inc. All rights reserved.


Figure 23-2: The Macro Settings section of the Trust Center dialog box.
the next time you open that file.
Figure 23-3: Excel's Security Warning that the file contains macros.
box shown in Figure 23-4. You can use this dialog box to enable or disable the macros.


It is a dry version of Apple Cider, made from freshly squeezed juice, where apples were purchased from Yau Ma Tei Fruits Market. It brings full mouth of fruitiness.
Salute to this historical Market Place!
Copyright @ 2019 hongkongwhistle.com All rights reserved.


This photograph of Gotto Falls was taken after a hike off the Roaring Fork Motor Nature Trail in the Great Smoky Mountains National Park in Tennessee. The long exposure coupled with the uneven lighting gives the waterfall a magical appearance as the waterfall tumbles out of the light and into the dark grotto below. Grotto Falls provides the perfect landscape for a summer picnic with plenty of shade and an ever present cool mist.


Mimobots, the collectible figurine/USB flash drives, now have an even cooler cousin, the Mimomicro. These offer USB storage, and add an microSD card reader, too. Kids (and adults) can transfer data between phones, cameras and PCs, and be stylish about it, too.
The Mimobot, available in literally dozens of popular characters, has a removable cap covering the USB. The Mimomicro, however, has a flip-down design that reveal both the microSD slot and USB plug, and a mini LED that illuminates when in use. At 1.6" H x 1.0" W, it fits neatly in a pocket or backpack pouch. It also has a tether for clipping to keychains.
The product line launches with three DC Comics characters: Wonder Woman, Superman and Batman. And Mimomicros from the Star Wars universe include Darth Vader, Yoda, C-3PO, Chewbacca, and the Millennium Falcon. Expect many more characters to come. Prices start at $12.95 in March.