text:
//
//  BrainCloudLeaderboard.h
//  brainCloudClientObjc
//
//  Created by Hill, Bradley on 2015-08-07.
//  Copyright (c) 2016 bitHeads. All rights reserved.
//

#pragma once

#import "BrainCloudCompletionBlocks.hh"
#import <Foundation/Foundation.h>

@class BrainCloudClient;

typedef NS_ENUM(NSUInteger, LeaderboardType) { HIGH_VALUE, CUMULATIVE, LAST_VALUE, LOW_VALUE };

typedef NS_ENUM(NSUInteger, RotationType) { NEVER, DAILY, WEEKLY, MONTHLY, YEARLY };

typedef NS_ENUM(NSUInteger, SortOrder) { HIGH_TO_LOW, LOW_TO_HIGH };

@interface BrainCloudLeaderboard : NSObject

/**
 * Initializes the brainCloudService
 */
- (instancetype) init: (BrainCloudClient*) client;

/**
* Method returns the social leaderboard. A player's social leaderboard is
* comprised of players who are recognized as being your friend.
*
* The getSocialLeaderboard will retrieve all friends from all friend platforms, so
* - all external friends (Facebook, Steam, PlaystationNetwork)
* - all internal friends (brainCloud)
* - plus "self".
*
* Leaderboards entries contain the player's score and optionally, some user-defined
* data associated with the score. The currently logged in player will also
* be returned in the social leaderboard.
*
* Note: If no friends have played the game, the bestScore, createdAt, updatedAt
* will contain NULL.
*
* @param leaderboardId The id of the leaderboard to retrieve
* @param replaceName If true, the currently logged in player's name will be replaced
* by the string "You".
* @param completionBlock Block to call on return of successful server response
* @param errorCompletionBlock Block to call on return of unsuccessful server response
* @param cbObject User object sent to the completion blocks
*
*/
- (void)getSocialLeaderboard:(NSString *)leaderboardId
                 replaceName:(bool)replaceName
             completionBlock:(BCCompletionBlock)cb
        errorCompletionBlock:(BCErrorCompletionBlock)ecb
                    cbObject:(BCCallbackObject)cbObject;

/**
 * Method returns the social leaderboard by its version. A player's social leaderboard is
 * comprised of players who are recognized as being your friend.
 *
 * The getSocialLeaderboard will retrieve all friends from all friend platforms, so
 * - all external friends (Facebook, Steam, PlaystationNetwork)
 * - all internal friends (brainCloud)
 * - plus "self".
 *
 * Leaderboards entries contain the player's score and optionally, some user-defined
 * data associated with the score. The currently logged in player will also
 * be returned in the social leaderboard.
 *
 * Note: If no friends have played the game, the bestScore, createdAt, updatedAt
 * will contain NULL.
 *
 * @param leaderboardId The id of the leaderboard to retrieve
 * @param replaceName If true, the currently logged in player's name will be replaced
 * by the string "You".
 * @param versionId the version
 * @param completionBlock Block to call on return of successful server response
 * @param errorCompletionBlock Block to call on return of unsuccessful server response
 * @param cbObject User object sent to the completion blocks
 *
 */
- (void)getSocialLeaderboardByVersion:(NSString *)leaderboardId
                          replaceName:(bool)replaceName
                            versionId:(int)versionId
                      completionBlock:(BCCompletionBlock)cb
                 errorCompletionBlock:(BCErrorCompletionBlock)ecb
                             cbObject:(BCCallbackObject)cbObject;

/**
 * Reads multiple social leaderboards.
 *
 * @param leaderboardIds NSArray of NSString leaderboard IDs.
 * @param leaderboardResultCount Maximum count of entries to return for each leaderboard.
 * @param replaceName If true, the currently logged in player's name will be replaced
 * by the string "You".
 * @param completionBlock Block to call on return of successful server response
 * @param errorCompletionBlock Block to call on return of unsuccessful server response
 * @param cbObject User object sent to the completion blocks
 *
 * @returns JSON string representing the entries in each leaderboard.
 * Note that the friend summary data is returned for each record
 * in the leaderboard.
 *
 * {
 *   "server_time": 1445952203123,
 *   "leaderboards": [
 *    {
 *     "leaderboardId": "default",
 *     "leaderboard": [
 *      {
 *       "externalId": "pacer5",
 *       "name": "Rollo",
 *       "pictureUrl": "http://localhost:8080/gameserver/s3/portal/g/eggies/metadata/pacers/pacer5.png",
 *       "playerId": "pacer5",
 *       "authenticationType": null,
 *       "score": 100000,
 *       "data": {
 *        "pacerTag": null,
 *        "pacerLeaderboardTag": {}
 *       },
 *       "createdAt": null,
 *       "updatedAt": null
 *      },
 *      {
 *       "externalId": "pacer4",
 *       "name": "Chirp",
 *       "pictureUrl": "http://localhost:8080/gameserver/s3/portal/g/eggies/metadata/pacers/pacer4.png",
 *       "playerId": "pacer4",
 *       "authenticationType": null,
 *       "score": 80000,
 *       "data": {
 *        "pacerTag": null,
 *        "pacerLeaderboardTag": {}
 *       },
 *       "createdAt": null,
 *       "updatedAt": null
 *      }
 *     ],
 *     "self": {
 *      "externalId": null,
 *      "name": null,
 *      "pictureUrl": null,
 *      "playerId": "49390659-33bd-4812-b0c4-ab04e614ec98",
 *      "authenticationType": null,
 *      "score": 10,
 *      "data": {
 *       "nickname": "batman"
 *      },
 *      "createdAt": 1445952060607,
 *      "updatedAt": 1445952060607,
 *      "summaryFriendData": null
 *     },
 *     "selfIndex": 5
 *    }
 *   ]
 *  }
 */
- (void)getMultiSocialLeaderboard:(NSArray *)leaderboardIds
           leaderboardResultCount:(NSInteger)leaderboardResultCount
                      replaceName:(bool)replaceName
                  completionBlock:(BCCompletionBlock)cb
             errorCompletionBlock:(BCErrorCompletionBlock)ecb
                         cbObject:(BCCallbackObject)cbObject;

/**
* Method returns a page of global leaderboard results.
*
* Leaderboards entries contain the player's score and optionally, some user-defined
* data associated with the score.
*
* Note: This method allows the client to retrieve pages from within the global leaderboard list
*
* Service Name - SocialLeaderboard
* Service Operation - GetGlobalLeaderboardPage
*
* @param leaderboardId The id of the leaderboard to retrieve.
* @param sort Sort key Sort order of page.
* @param startIndex The index at which to start the page.
* @param endIndex The index at which to end the page.
* @param completionBlock Block to call on return of successful server response
* @param errorCompletionBlock Block to call on return of unsuccessful server response
* @param cbObject User object sent to the completion blocks
*/
- (void)getGlobalLeaderboardPage:(NSString *)leaderboardId
                       sortOrder:(SortOrder)sortOrder
                      startIndex:(int)startIndex
                        endIndex:(int)endIndex
                 completionBlock:(BCCompletionBlock)cb
            errorCompletionBlock:(BCErrorCompletionBlock)ecb
                        cbObject:(BCCallbackObject)cbObject;

/**
 * Method returns a page of global leaderboard results.
 * By using a non-current version id, the user can retrieve a historical leaderboard.
 * See GetGlobalLeaderboardVersions method to retrieve the version id.
 *
 * Service Name - SocialLeaderboard
 * Service Operation - GetGlobalLeaderboardPage
 *
 * @param leaderboardId The id of the leaderboard to retrieve.
 * @param sort Sort key Sort order of page.
 * @param startIndex The index at which to start the page.
 * @param endIndex The index at which to end the page.
 * @param versionId The historical version to retrieve.
 * @param completionBlock Block to call on return of successful server response
 * @param errorCompletionBlock Block to call on return of unsuccessful server response
 * @param cbObject User object sent to the completion blocks
 */
- (void)getGlobalLeaderboardPageByVersion:(NSString *)leaderboardId
                                sortOrder:(SortOrder)sortOrder
                               startIndex:(int)startIndex
                                 endIndex:(int)endIndex
                                versionId:(int)versionId
                          completionBlock:(BCCompletionBlock)cb
                     errorCompletionBlock:(BCErrorCompletionBlock)ecb
                                 cbObject:(BCCallbackObject)cbObject;

/**
* Method returns a view of global leaderboard results that centers on the current player.
*
* Leaderboards entries contain the player's score and optionally, some user-defined
* data associated with the score.
*
* Service Name - SocialLeaderboard
* Service Operation - GetGlobalLeaderboardView
*
* @param leaderboardId The id of the leaderboard to retrieve.
* @param sort Sort key Sort order of page.
* @param beforeCount The count of number of players before the current player to include.
* @param afterCount The count of number of players after the current player to include.
* @param completionBlock Block to call on return of successful server response
* @param errorCompletionBlock Block to call on return of unsuccessful server response
* @param cbObject User object sent to the completion blocks
*/
- (void)getGlobalLeaderboardView:(NSString *)leaderboardId
                       sortOrder:(SortOrder)sortOrder
                     beforeCount:(int)beforeCount
                      afterCount:(int)afterCount
                 completionBlock:(BCCompletionBlock)cb
            errorCompletionBlock:(BCErrorCompletionBlock)ecb
                        cbObject:(BCCallbackObject)cbObject;

/**
* Method returns a view of global leaderboard results that centers on the current player.
* By using a non-current version id, the user can retrieve a historial leaderboard.
* See GetGlobalLeaderboardVersions method to retrieve the version id.
*
* Service Name - SocialLeaderboard
* Service Operation - GetGlobalLeaderboardView
*
* @param leaderboardId The id of the leaderboard to retrieve.
* @param sort Sort key Sort order of page.
* @param beforeCount The count of number of players before the current player to include.
* @param afterCount The count of number of players after the current player to include.
* @param versionId The historical version to retrieve.
* @param completionBlock Block to call on return of successful server response
* @param errorCompletionBlock Block to call on return of unsuccessful server response
* @param cbObject User object sent to the completion blocks
*/
- (void)getGlobalLeaderboardViewByVersion:(NSString *)leaderboardId
                                sortOrder:(SortOrder)sortOrder
                              beforeCount:(int)beforeCount
                               afterCount:(int)afterCount
                                versionId:(int)versionId
                          completionBlock:(BCCompletionBlock)cb
                     errorCompletionBlock:(BCErrorCompletionBlock)ecb
                                 cbObject:(BCCallbackObject)cbObject;
/**
 * Gets the number of entries in a global leaderboard
 *
 * Service Name - leaderboard
 * Service Operation - GET_GLOBAL_LEADERBOARD_ENTRY_COUNT
 *
 * @param leaderboardId The leaderboard ID
 * @param completionBlock Block to call on return of successful server response
 * @param errorCompletionBlock Block to call on return of unsuccessful server response
 * @param cbObject User object sent to the completion blocks
 */
- (void)getGlobalLeaderboardEntryCount:(NSString *)leaderboardId
                       completionBlock:(BCCompletionBlock)cb
                  errorCompletionBlock:(BCErrorCompletionBlock)ecb
                              cbObject:(BCCallbackObject)cbObject;

/**
 * Gets the number of entries in a global leaderboard
 *
 * Service Name - leaderboard
 * Service Operation - GET_GLOBAL_LEADERBOARD_ENTRY_COUNT
 *
 * @param leaderboardId The leaderboard ID
 * @param versionId The version of the leaderboard
 * @param completionBlock Block to call on return of successful server response
 * @param errorCompletionBlock Block to call on return of unsuccessful server response
 * @param cbObject User object sent to the completion blocks
 */
- (void)getGlobalLeaderboardEntryCountByVersion:(NSString *)leaderboardId
                                      versionId:(int)versionId
                                completionBlock:(BCCompletionBlock)cb
                           errorCompletionBlock:(BCErrorCompletionBlock)ecb
                                       cbObject:(BCCallbackObject)cbObject;

/** Gets the global leaderboard versions.
*
* Service Name - SocialLeaderboard
* Service Operation - GetGlobalLeaderboardVersions
*
* @param leaderboardId The leaderboard
* @param completionBlock Block to call on return of successful server response
* @param errorCompletionBlock Block to call on return of unsuccessful server response
* @param cbObject User object sent to the completion blocks
*/
- (void)getGlobalLeaderboardVersions:(NSString *)leaderboardId
                     completionBlock:(BCCompletionBlock)cb
                errorCompletionBlock:(BCErrorCompletionBlock)ecb
                            cbObject:(BCCallbackObject)cbObject;

/**
* Post the players score to the given social leaderboard.
* You can optionally send a user-defined json string of data
* with the posted score. This string could include information
* relevant to the posted score.
*
* Note that the behaviour of posting a score can be modified in
* the brainCloud portal. By default, the server will only keep
* the player's best score.
*
* @param leaderboardId The leaderboard to post to
* @param score The score to post
* @param data Optional user-defined data to post with the score
* @param completionBlock Block to call on return of successful server response
* @param errorCompletionBlock Block to call on return of unsuccessful server response
* @param cbObject User object sent to the completion blocks
*/
- (void)postScoreToLeaderboard:(NSString *)leaderboardId
                         score:(int)score
                 jsonOtherData:(NSString *)jsonOtherData
               completionBlock:(BCCompletionBlock)cb
          errorCompletionBlock:(BCErrorCompletionBlock)ecb
                      cbObject:(BCCallbackObject)cbObject;

/**
* Post the players score to the given social leaderboard.
* Pass leaderboard config data to dynamically create if necessary.
* You can optionally send a user-defined json string of data
* with the posted score. This string could include information
* relevant to the posted score.
*
* Service Name - SocialLeaderboard
* Service Operation - PostScoreDynamic
*
* @param leaderboardId The leaderboard to post to
* @param score The score to post
* @param data Optional user-defined data to post with the score
* @param leaderboardType leaderboard type
* @param rotationType Type of rotation
* @param rotationReset Date to start rotation calculations
* @param retainedCount How many rotations to keep
* @param completionBlock Block to call on return of successful server response
* @param errorCompletionBlock Block to call on return of unsuccessful server response
* @param cbObject User object sent to the completion blocks
*/
- (void)postScoreToDynamicLeaderboard:(NSString *)leaderboardId
                                score:(int)score
                             jsonData:(NSString *)jsonData
                      leaderboardType:(LeaderboardType)leaderboardType
                         rotationType:(RotationType)rotationType
                       roatationReset:(NSDate *)rotationReset
                        retainedCount:(int)retainedCount
                      completionBlock:(BCCompletionBlock)cb
                 errorCompletionBlock:(BCErrorCompletionBlock)ecb
                             cbObject:(BCCallbackObject)cbObject;

/**
* Post the players score to the given social leaderboard.
* Pass leaderboard config data to dynamically create if necessary.
* You can optionally send a user-defined json string of data
* with the posted score. This string could include information
* relevant to the posted score. USES UTC TIME
*
* Service Name - SocialLeaderboard
* Service Operation - PostScoreDynamic
*
* @param leaderboardId The leaderboard to post to
* @param score The score to post
* @param data Optional user-defined data to post with the score
* @param leaderboardType leaderboard type
* @param rotationType Type of rotation
* @param rotationResetUTC uses utc time in milliseconds since epoch
* @param retainedCount How many rotations to keep
* @param completionBlock Block to call on return of successful server response
* @param errorCompletionBlock Block to call on return of unsuccessful server response
* @param cbObject User object sent to the completion blocks
*/
- (void)postScoreToDynamicLeaderboardUTC:(NSString *)leaderboardId
                                score:(int)score
                             jsonData:(NSString *)jsonData
                      leaderboardType:(LeaderboardType)leaderboardType
                         rotationType:(RotationType)rotationType
                       roatationResetUTC:(int64_t)rotationResetUTC
                        retainedCount:(int)retainedCount
                      completionBlock:(BCCompletionBlock)cb
                 errorCompletionBlock:(BCErrorCompletionBlock)ecb
                             cbObject:(BCCallbackObject)cbObject;
/**
* Post the players score to the given social leaderboard.
* Pass leaderboard config data to dynamically create if necessary.
* You can optionally send a user-defined json string of data
* with the posted score. This string could include information
* relevant to the posted score.
*
* Service Name - SocialLeaderboard
* Service Operation - PostScoreDynamic
*
* @param leaderboardId The leaderboard to post to
* @param score The score to post
* @param data Optional user-defined data to post with the score
* @param leaderboardType leaderboard type
* @param rotationReset Date to start rotation calculations
* @param retainedCount How many rotations to keep
* @param numDaysToRotate How many days between each rotation
* @param completionBlock Block to call on return of successful server response
* @param errorCompletionBlock Block to call on return of unsuccessful server response
* @param cbObject User object sent to the completion blocks
*/
- (void)postScoreToDynamicLeaderboardDays:(NSString *)leaderboardId
                                    score:(int)score
                                 jsonData:(NSString *)jsonData
                          leaderboardType:(LeaderboardType)leaderboardType
                           roatationReset:(NSDate *)rotationReset
                            retainedCount:(int)retainedCount
                          numDaysToRotate:(int)numDaysToRotate
                          completionBlock:(BCCompletionBlock)cb
                     errorCompletionBlock:(BCErrorCompletionBlock)ecb
                                 cbObject:(BCCallbackObject)cbObject;

/**
* Post the players score to the given social leaderboard.
* Pass leaderboard config data to dynamically create if necessary.
* You can optionally send a user-defined json string of data
* with the posted score. This string could include information
* relevant to the posted score. USES UTC TIME
*
* Service Name - SocialLeaderboard
* Service Operation - PostScoreDynamic
*
* @param leaderboardId The leaderboard to post to
* @param score The score to post
* @param data Optional user-defined data to post with the score
* @param leaderboardType leaderboard type
* @param rotationResetUTC uses utc time in milliseconds since epoch
* @param retainedCount How many rotations to keep
* @param numDaysToRotate How many days between each rotation
* @param completionBlock Block to call on return of successful server response
* @param errorCompletionBlock Block to call on return of unsuccessful server response
* @param cbObject User object sent to the completion blocks
*/
- (void)postScoreToDynamicLeaderboardDaysUTC:(NSString *)leaderboardId
                                    score:(int)score
                                 jsonData:(NSString *)jsonData
                          leaderboardType:(LeaderboardType)leaderboardType
                           roatationResetUTC:(int64_t)rotationResetUTC
                            retainedCount:(int)retainedCount
                          numDaysToRotate:(int)numDaysToRotate
                          completionBlock:(BCCompletionBlock)cb
                     errorCompletionBlock:(BCErrorCompletionBlock)ecb
                                 cbObject:(BCCallbackObject)cbObject;

/**
* Posts score to group leaderbopard and dynamically creates if necessary.
* leaderboardType, rotationReset, retainedCount and rotationType are required.
* uses UTC time in milliseconds since epoch
*
* Service Name - leaderboard
* Service Operation - POST_GROUP_SCORE_DYNAMIC
*
* @param leaderboardId The leaderboard to post to
* @param groupId the group's id
* @param score The score to post
* @param data Optional user-defined data to post with the score
* @param leaderboardType leaderboard type
* @param rotationResetUTC uses utc time in milliseconds since epoch
* @param retainedCount How many rotations to keep
* @param numDaysToRotate How many days between each rotation
* @param completionBlock Block to call on return of successful server response
* @param errorCompletionBlock Block to call on return of unsuccessful server response
* @param cbObject User object sent to the completion blocks
*/
- (void)postScoreToDynamicGroupLeaderboardDaysUTC:(NSString *)leaderboardId
                                  groupId:(NSString *)groupId
                                    score:(int)score
                                 jsonData:(NSString *)jsonData
                          leaderboardType:(LeaderboardType)leaderboardType
                           roatationResetUTC:(int64_t)rotationResetUTC
                            retainedCount:(int)retainedCount
                          numDaysToRotate:(int)numDaysToRotate
                          completionBlock:(BCCompletionBlock)cb
                     errorCompletionBlock:(BCErrorCompletionBlock)ecb
                                 cbObject:(BCCallbackObject)cbObject;

/**
 * Removes a player's score from the leaderboard
 *
 * Service Name - leaderboard
 * Service Operation - REMOVE_PLAYER_SCORE
 *
 * @param leaderboardId The leaderboard ID
 * @param versionId The version of the leaderboard. Use -1 to specifiy the currently active leaderboard version
 * @param completionBlock Block to call on return of successful server response
 * @param errorCompletionBlock Block to call on return of unsuccessful server response
 * @param cbObject User object sent to the completion blocks
 */
- (void)removePlayerScore:(NSString *)leaderboardId
                versionId:(int)versionId
          completionBlock:(BCCompletionBlock)cb
     errorCompletionBlock:(BCErrorCompletionBlock)ecb
                 cbObject:(BCCallbackObject)cbObject;

/**
 * Retrieve the social leaderboard for a group.
 *
 * @param leaderboardId The leaderboard to retreive
 * @param groupId The ID of the group
 * @param completionBlock Block to call on return of successful server response
 * @param errorCompletionBlock Block to call on return of unsuccessful server response
 * @param cbObject User object sent to the completion blocks
 */
- (void)getGroupSocialLeaderboard:(NSString *)leaderboardId
                          groupId:(NSString *)groupId
                  completionBlock:(BCCompletionBlock)cb
             errorCompletionBlock:(BCErrorCompletionBlock)ecb
                         cbObject:(BCCallbackObject)cbObject;

/**
 * Retrieve the social leaderboard for a group by its version.
 *
 * @param leaderboardId The leaderboard to retreive
 * @param groupId The ID of the group
 * @param versionId the version
 * @param completionBlock Block to call on return of successful server response
 * @param errorCompletionBlock Block to call on return of unsuccessful server response
 * @param cbObject User object sent to the completion blocks
 */
- (void)getGroupSocialLeaderboardByVersion:(NSString *)leaderboardId
                                   groupId:(NSString *)groupId
                                 versionId:(int)versionId
                           completionBlock:(BCCompletionBlock)cb
                      errorCompletionBlock:(BCErrorCompletionBlock)ecb
                                  cbObject:(BCCallbackObject)cbObject;

/**
 * Retrieve the social leaderboard for a list of players.
 *
 * Service Name - leaderboard
 * Service Operation - GET_PLAYERS_SOCIAL_LEADERBOARD
 *
 * @param leaderboardId The leaderboard to retrieve
 * @param profileIds The IDs of the players
 * @param completionBlock Block to call on return of successful server response
 * @param errorCompletionBlock Block to call on return of unsuccessful server response
 * @param cbObject User object sent to the completion blocks
 */
- (void)getPlayersSocialLeaderboard:(NSString *)leaderboardId
                         profileIds:(NSArray *)profileIds
                    completionBlock:(BCCompletionBlock)cb
               errorCompletionBlock:(BCErrorCompletionBlock)ecb
                           cbObject:(BCCallbackObject)cbObject;

/**
 * Retrieve the social leaderboard for a list of players by their version.
 *
 * Service Name - leaderboard
 * Service Operation - GET_PLAYERS_SOCIAL_LEADERBOARD_BY_VERSION
 *
 * @param leaderboardId The leaderboard to retrieve
 * @param profileIds The IDs of the players
 * @param versionId the version
 * @param completionBlock Block to call on return of successful server response
 * @param errorCompletionBlock Block to call on return of unsuccessful server response
 * @param cbObject User object sent to the completion blocks
 */
- (void)getPlayersSocialLeaderboardByVersion:(NSString *)leaderboardId
                                  profileIds:(NSArray *)profileIds
                                   versionId:(int)versionId
                             completionBlock:(BCCompletionBlock)cb
                        errorCompletionBlock:(BCErrorCompletionBlock)ecb
                                    cbObject:(BCCallbackObject)cbObject;

/**
 * Retrieve a list of all leaderboards
 *
 * Service Name - leaderboard
 * Service Operation - LIST_ALL_LEADERBOARDS
 *
 * @param completionBlock Block to call on return of successful server response
 * @param errorCompletionBlock Block to call on return of unsuccessful server response
 * @param cbObject User object sent to the completion blocks
 */
- (void)listAllLeaderboards:(BCCompletionBlock)cb
       errorCompletionBlock:(BCErrorCompletionBlock)ecb
                   cbObject:(BCCallbackObject)cbObject;

/**
 * Gets a player's score from a leaderboard
 *
 * Service Name - leaderboard
 * Service Operation - GET_PLAYER_SCORE
 *
 * @param leaderboardId The leaderboard ID
 * @param versionId The version of the leaderboard. Use -1 for current.
 * @param completionBlock Block to call on return of successful server response
 * @param errorCompletionBlock Block to call on return of unsuccessful server response
 * @param cbObject User object sent to the completion blocks
 */
- (void)getPlayerScore:(NSString *)leaderboardId
               versionId:(int)versionId
         completionBlock:(BCCompletionBlock)cb
    errorCompletionBlock:(BCErrorCompletionBlock)ecb
                cbObject:(BCCallbackObject)cbObject;

/**
 * Gets a player's score from multiple leaderboards
 *
 * Service Name - leaderboard
 * Service Operation - GET_PLAYER_SCORES_FROM_LEADERBOARDS
 *
 * @param leaderboardIds A collection of leaderboardIds to retrieve scores from
 * @param callback The method to be invoked when the server response is received
 */
- (void)getPlayerScoresFromLeaderboards:(NSArray *)leaderboardIds
                        completionBlock:(BCCompletionBlock)cb
                   errorCompletionBlock:(BCErrorCompletionBlock)ecb
                               cbObject:(BCCallbackObject)cbObject;

/**
 * Post score to Group Leaderboard - Note the user must be a member of the group
 *
 * Service Name - leaderboard
 * Service Operation - POST_GROUP_SCORE
 *
 * @param leaderboardId
 * @param groupId
 * @param score
 * @param jsonData custom data
 * @param callback The method to be invoked when the server response is received
 */
- (void)postScoreToGroupLeaderboard:(NSString *)leaderboardId
                            groupId:(NSString *)groupId
                              score:(int)score
                           jsonData:(NSString *)jsonData
                    completionBlock:(BCCompletionBlock)cb
               errorCompletionBlock:(BCErrorCompletionBlock)ecb
                           cbObject:(BCCallbackObject)cbObject;

/**
 * Post score to Group Leaderboard - Note the user must be a member of the group
 *
 * Service Name - leaderboard
 * Service Operation - POST_GROUP_SCORE
 *
 * @param leaderboardId
 * @param groupId
 * @param score
 * @param jsonData custom data
 * @param leaderboardType
 * @param rotationType
 * @param rotationResetTime
 * @param retainedCount
 * @param callback The method to be invoked when the server response is received
 */
- (void)postScoreToDynamicGroupLeaderboard:(NSString *)leaderboardId
                                   groupId:(NSString *)groupId
                                     score:(int)score
                                  jsonData:(NSString *)jsonData
                           leaderboardType:(NSString *)leaderboardType
                              rotationType:(NSString *)rotationType
                         rotationResetTime:(int64_t)rotationResetTime
                             retainedCount:(int32_t)retainedCount
                           completionBlock:(BCCompletionBlock)cb
                      errorCompletionBlock:(BCErrorCompletionBlock)ecb
                                  cbObject:(BCCallbackObject)cbObject;

/**
 * Post score to Group Leaderboard - Note the user must be a member of the group - uses UTC time
 *
 * Service Name - leaderboard
 * Service Operation - POST_GROUP_SCORE
 *
 * @param leaderboardId
 * @param groupId
 * @param score
 * @param jsonData custom data
 * @param leaderboardType
 * @param rotationType
 * @param rotationResetTimeUTC uses utc time in milliseconds since epoch
 * @param retainedCount
 * @param callback The method to be invoked when the server response is received
 */
- (void)postScoreToDynamicGroupLeaderboardUTC:(NSString *)leaderboardId
                                   groupId:(NSString *)groupId
                                     score:(int)score
                                  jsonData:(NSString *)jsonData
                           leaderboardType:(NSString *)leaderboardType
                              rotationType:(NSString *)rotationType
                         rotationResetTimeUTC:(int64_t)rotationResetTimeUTC
                             retainedCount:(int32_t)retainedCount
                           completionBlock:(BCCompletionBlock)cb
                      errorCompletionBlock:(BCErrorCompletionBlock)ecb
                                  cbObject:(BCCallbackObject)cbObject;
/**
 * Removes group score
 *
 * Service Name - leaderboard
 * Service Operation - REMOVE_GROUP_SCORE
 *
 * @param leaderboardId
 * @param groupId
 * @param versionId
 * @param callback The method to be invoked when the server response is received
 */
- (void)removeGroupScore:(NSString *)leaderboardId
                 groupId:(NSString *)groupId
               versionId:(int)versionId
         completionBlock:(BCCompletionBlock)cb
    errorCompletionBlock:(BCErrorCompletionBlock)ecb
                cbObject:(BCCallbackObject)cbObject;

/**
 * Retrieve a view of the group leaderboard surrounding the current group
 *
 * Service Name - leaderboard
 * Service Operation - GET_GROUP_LEADERBOARD_VIEW
 *
 * @param leaderboardId
 * @param groupId
 * @param sort the sort type
 * @param beforeCount count before current player
 * @param afterCount count after current player
 * @param callback The method to be invoked when the server response is received
 */
- (void)getGroupLeaderboardView:(NSString *)leaderboardId
                        groupId:(NSString *)groupId
                           sort:(SortOrder)sort
                    beforeCount:(int)beforeCount
                     afterCount:(int)afterCount
                completionBlock:(BCCompletionBlock)cb
           errorCompletionBlock:(BCErrorCompletionBlock)ecb
                       cbObject:(BCCallbackObject)cbObject;

/**
 * Retrieve a view of the group leaderboard surrounding the current group by version
 *
 * Service Name - leaderboard
 * Service Operation - GET_GROUP_LEADERBOARD_VIEW
 *
 * @param leaderboardId
 * @param groupId
 * @param versionId
 * @param sort the sort type
 * @param beforeCount count before current player
 * @param afterCount count after current player
 * @param callback The method to be invoked when the server response is received
 */
- (void)getGroupLeaderboardViewByVersion:(NSString *)leaderboardId
                                 groupId:(NSString *)groupId
                               versionId:(int)versionId
                                    sort:(SortOrder)sort
                             beforeCount:(int)beforeCount
                              afterCount:(int)afterCount
                         completionBlock:(BCCompletionBlock)cb
                    errorCompletionBlock:(BCErrorCompletionBlock)ecb
                                cbObject:(BCCallbackObject)cbObject;

@end


The Bloodlines of Angheim's many noble families emerge from before the dawn of Sollundom, and Angheim's mighty gaze reaches out across the globe… whenever it is not distracted by its own past.
The Kingdom of Angheim is the most royal of royals. They are steeped in ancient power and the trappings of authority, with one's place in society determined both by lineage and by the potency of one's blood. Those who are not royal are often those who seek out something new beyond their homeland, whether they be natural philosophers, adventurers, outcasts, fifthborns, or weak-blooded nobles trying to find land to call their own.
The Church in Angheim is everywhere, but essentially powerless; it is a plaything of the nobility. Noble Angheimers adhere to whatever faith is most politically expedient. They are a society that cares only for power, their weapon of choice is the sword, and their clothing often features buttons. Their national colour is red.
The Prince and heir to the Angheim throne voyaged to Osterheim and was tragically slain. This combined with the loss of the Black Shores to the Padricians, was seen as a sign of weakness in leadership. The nobility of Angheim, led by House Cortez, overthrew the Monarch and claimed the throne. The new Monarch has commissioned a second colony on the shores of Osterheim and the fleet has offered aid to the citizens of Old Adelina.
In the wake of the Black Shores conflict Angheim & Tassanoss signed an alliance to defend against Padrice. Furthermore, the trade agreement between Angheim & Iskaland has solidified into formal alliance, though it remains to be seen whether this will hold up considering the influence of the Matrial Pontiff on the Iskan Duchies.
Angheim is perched across the Northwest of the Continent, bordering all the other major powers, with exposed Northern lands subject to frequent Heathen raids. Angheimers look beyond their lands with a watchful, suspicious eye, and permanently strive to ensure that they are at an advantage.
Angheim's terrain is mostly vast swathes of windswept moors. Hills grow to mountains in the South along the border with Tassanos, and flatten to the East along the Iskan border. The jutting Western peninsula reaches out towards Osterheim. The interior and the West are characterised by hot, muggy summers and cold cloudy winters, while the elevated mountain ranges feature cool, alpine summers with snowy, frozen winters. The weather is mostly dry except in Spring, when rains blow in from Iskaland and the snows melt. The North gives way to cliffs and crags breaking into islands in the Arctic seas.
The Blood Moors are a vast expanse of Nobles' holdings carved up into fiercely-contested domains, named for the strength of the Blood in these lands, but also for the amount of blood spilled upon them. Thousands of petty nobles build extravagant fortifications and engage in showy displays of power, each attempting to convince those around them of their strength. As a result, the vast network of castles and keeps across the Blood Moors make Angheim - as a whole - essentially unconquerable.
Covered in deep, dark forests and claimed from Heathens comparatively recently, The Iron Peninsula has been colonised by upstart, ambitious young family lines. Fifthborns, refugees from the Blood Moors and others seeking to make a name for themselves were obliged to seek out land here to claim as their own domain. Now, generations later, the Iron Peninsula is full - forcing adventurous explorers to reach even further East.
The Silent Heaths are a series of bare hills and mountains capped with ancient ruins and henges. The area is inhabited largely by common people since the Blood, for reasons unknown, fails here. The cunning inhabitants of the Heaths are excellent farmers and engineers, cutting fields into the sides of hills and turning their produce into leverage for their safety. Despite having no real capacity for trade, expansion or defence the surprising Heathfolk have created a space where they can flourish, and earn the begrudging respect of the rest of Angheim and the rest of Atlas.
Angheim is ruled by an absolute Monarch, exercising direct control over the entire country. The Monarch is always the most personally-powerful Old-Blooded Noble in the land, and is proven as such by maintaining the position against any and all attempts on their person. The Monarch rules from the Capital by decree and by envoy, appointing officeholders to positions of power, and using considerable influence to keep them from rebellion. Reliable envoys are armed with authority and tasked with a mission, while shadowy agents monitor and control foreign affairs in a more underhanded fashion.
Angheim's nobility enjoys hundreds of years' worth of inherited wealth, and reside in ancient castles built over generations of war against foes internal and external. The Old Blood is richest in Angheim, and the inherent competition created by its power means that violence between nobles is commonplace. There are whispers that this conflict is fostered by the Monarch to keep them occupied. Frequently, these disputes have been settled by duels, rather than open warfare, and a fashion of duelling has spread not only among the nobility but also among the gentry and the common people.
The Old Blood is revered in Angheim as the true fountainhead of legitimacy and power. Demonstrating that power is essential in rulership, because a weak ruler is easily unseated. Angheim's Nobility walk a fine line between autocracy and outright tyranny. The constant threat of being unseated and having one's power consumed keeps most highborn very wary, and the natural conflict this creates means they do not often gather - except to muster for war against a common foe.
The Monarch is the head of the Church of Angheim, partly recognised as such by the Pontiffs in Tassanos but mostly because nobody is strong enough to argue the point. Religious offices are appointed not so much on theological merit, but on loyalty and the value of the appointee to the Monarch. Bishoprics are frequently handed out to lesser nobles to keep them quiet, and the officeholders will just as happily siphon money from the collection plate to keep themselves in luxury. Neither the Patronic nor Matrial Church has any real power in Angheim, and even common priests spend more time counselling their lords than they do tending to their flock. An undercurrent of true believers runs through Angheim, despite suppression by the Monarch's agents, and unofficial and discreet meetings are where the faithful gather.
The national colour of Angheim is red. Their palette is ruled by rich colours with showy adornments. Intricate patterns and decoration are commonplace, with Angheimer attention to quality and detail prevailing.
Jewellery of all kinds is very common, as nobles and commoners alike seek to put their wealth on display as a kind of power plumage. Gold and silver are often freely mixed according to the taste of the individual.
Angheim's clothing features buttons as closures and also as decoration, often complemented with rich embroidery. Garments should be cut with a high, round or bunched, waistline to emphasise or hide the wearer's physical presence as preferred, with fabric usually falling loosely below the waistline in both practical and fashionable garments.
Soldiers on campaign might wear the slashed, colourful garments of Landsknechts, in similar fashion to Warhammer's Empire soldiers. The new "Redcoat" units wear early versions of their real-world counterparts.
Styles from the early Renaissance should be applied to Angheimer fashion, emulating the Henry VIII and Burgundian looks.
Headwear from the early Renaissance, such as flat caps and bonnets, gable hoods or wimples, are most appropriate for characters from Angheim.
Power: All Angheim's people take their lead from the Monarch, and respect nothing so much as pure strength. This is generally considered best demonstrated by being the last person standing, but it can also be exerted in more subtle ways.
Diligence: A careless person is supplanted by a more careful one. Angheimers value detail and are known for attentively completing their tasks. Whether it's perfecting their longsword technique, practicing their craft, or checking their bed for scorpions, the people of Angheim are perfectionists, or they are replaced.
Cunning: Angheimers are not all mighty beasts capable of legendary feats of strength. Those without a talent for violence need something else to fall back on, so there is also a strong culture of cleverness and quick thinking in Angheim. Just as impressive as the warrior who slew a foe by throwing a horse at him, is the priest who tricked his lord into drinking murk water and stole his crown.
Ambition: Despite the lack of trust running up and down Angheim's social structure, the people as a whole see their ruthless opportunism as a virtue. It means that any office is held by the most capable individual, that failure is punished, and that careful planning is rewarded. Angheim is stronger for it, as each person strives to excel at whatever they do.
Paranoia: The endless plotting of Angheim's social order is not without its price. Constantly looking over one's shoulder is not conducive to a trusting environment, and Angheim is a largely trustless place. Everyone is a competitor, someone who might steal your glory, profit or station. Ruthlessness: When given authority, the people of Angheim exercise it with an iron fist. From the lowest workshop supervisor to the very Monarch, power exists to be used. Service is rewarded handsomely and success is recognised, but always with a mind towards ensuring ongoing subservience. The precarious nature of one's station means that failure, disobedience and challenge are all punished without mercy, regardless of their cause.
The Holy Roman Empire's mess of overlapping jurisdictions and history of noble rule.
Wars of royal inheritance (such as the Hundred Years War, the Troubles and the War of the Roses).
The Old Blood: powerful, clever and permanently on guard, ever on the lookout for other nobles and constantly in a state of kill or be killed.
The Intrepid Explorer: not so rich in the blood and inheritance, having decided to seek out a new life beyond the bounds of Sollundom and perhaps not get eaten by ambitious siblings.
The Landsknecht: stalwart defender of the realm, loyal to the Monarch and keen to prove that the longsword is still mighty.
The Conquistador: packed aboard a ship for months on end, lured by promise of coin and glory. Very much unwilling to let that promise go unfulfilled.
The Wool Merchant: not necessarily wool, but a successful business operator and cunning operator, taking advantage of the nobles' laissez-faire approach to commerce by becoming richer than them.
Actual evil: A lot of people from Angheim are total bastards, but they have good reason. Simple idiotic malice is not common among people who want to survive - since even the most tyrannical ruler has to sleep sometime.
Game of Thrones: While there is some of GoT's scheming and conniving in the writing of Angheim, the Lannisters, Starks and Baratheons have no place in Blackpowder & Bloodlines (nor any of the others, neither!).


text:
Francois. Lockdown in times of The Corona Virus, 2020
between dogs & wolves
women who have murdered their husbands
las canas
going home – illegality and repatriation
a weapon of war
bibi aisha
die noord-kaap/kapa bokone/the northern cape
the miniskirt
by jbieber
Real Beauty has been inspired by a number of events, the primary being my own life. My forties have brought a feeling of more comfort within my own skin than when I was younger.This project is an extention of a Dove billboard advertising campaign in London showing ordinary women in their underwear advocating and speaking up for Real Beauty. Advertising campaigns don't usually draw my attention, but this one did. A model sitting next to me on the way from London to Paris emphasised the extent to which Photoshop is used to enhance beauty. She was not in the least bit concerned about the rings under her eyes as these imperfections would easily be erased after her photoshoot. A BBC radio documentary spoke about an increase in the cases of black anorexic women in South Africa, as the full figured body which was once more favourable is no longer as desirable as Western body shapes.
I felt a strong need to create a body of work that goes against what the media has depicted as beautiful. Even within a complexed society such as South Africa, across all communities, women hold unneccesary perceptions of self doubt around themselves and their beauty from an early age. The work deals with reality and no photoshop has been used to remove blemishes, scars, cellulite and any other form of 'imperfection', but also touches on fantasy.
The photographic shoot was a collaboration between myself and each woman, whom I photographed at their homes. The setting within their surroundings was my choice but each women's pose was pretty much self directed. I wanted each women to project their personality or their fantasy into their shoot. The shoot created a space for each women to explore their own identity in relation to beauty and to live for a couple of hours in an environment of elements of fantasy.
One of the issues that came to the front in Real Beauty was that in general South Africa is conservative as a nation. At times I felt people thought I was recruiting women for a pornographic shoot. I did not discriminate against anyone who approached me. I photographed each and every women. Three main reasons that people used for saying no to being photographed (besides body privacy rights) were; "my" husband wouldn't agree to it, religious views, and just feeling uncomfortable with their body shapes. Most the women that participated in the shoot, did so because they believed in the project and supported my concept of Real Beauty. A second issue that arose from the images produced from Real Beauty is the different belief systems held amongst different communities. Very thin and tall women might be perceived by their communities as being sick, possibly with HIV/Aids and more full figured women as healthy. In other communities thin women are often more desirable.
From the interviews I carried out most women believe that their is no real perfect body shape and it is more about being healthy and feeling comfortable in ones own skin. The general trend was more accepting of thinner and curvacous women and less accepting of the ultra thin models we see in the media. It is said that Tswana and Xhosa women are the most beautiful, the lighter your skin, the more beautiful you are.
The common ground for my work is both myself and the women I photograph wanted to make a stand for Real Beauty.
© jodi bieber 2019

redpajama_set_name: RedPajamaCommonCrawl


This week's broadcast also features performances from Colin Hay, Frank Turner, Owen Danoff and Laura Cantrell.
Like what you hear? Subscribe to the Mountain Stage podcast to hear Piers Faccini's full set in the coming weeks.
This week, "A Change of Tune" host Joni Deutsch interviews Piers Faccini, an English singer-songwriter who specializes in intimate folk. Although his bedside folk style invokes comparisons to Nick Drake, Ray LaMontainge and even Jack Johnson, Faccini shows he's more than just a quiet voice by infusing his music with Delta blues, Mediterranean melodies and neo-classical compositions. His new record with French cellist Vincent Segal, titled Songs of Time Lost, goes to prove why Faccini stands out from the folky crowd.


text:
Like all other schools across the country, Piedmont College has been dealing with the effects of the COVID-19 virus. However, unlike some schools Piedmont College has committed to allow its students back on campus and is working diligently to keep everyone as safe as possible.
Among those changes was shifting fall sports to the spring semester. The decision was not made alone, but also by the USA South Conference, working on guidance from the NCAA. This change especially impacted fall student-athletes.
"It was a little heartbreaking to hear that our season was being moved to the spring," said Olivia Justus, a junior mass communications major and soccer player. "A lot of the players, including myself, trained all throughout quarantine and the summer to get ready for this season. Things are still up in the air on whether we will get to play games or not (since) other schools have different COVID-19 policies, so we may not get to play as many games as we would like."
The challenge of scheduling is on that falls on
Piedmont's Athletics Director Jim Peeples. His job has become more complicated, especially when it comes to scheduling the soccer/lacrosse field that suddenly is needed by four teams in one season: men's and women's soccer, and men's and women's lacrosse.
"It's a puzzle, with many pieces at this point in time," he said. "We are trying to do everything we can to try and fit all sports in the spring."
Like Justus, Peeples acknowledges that part of the challenge is taking into consideration what other USA South Conference schools are doing.
"One of the many puzzle pieces is that several schools within our conference (USA South) are online for school," he said. "And so far there is no solid plan in place as to how fall sports will be able to fit into the spring."
But Peeples is committed to allowing fall sports teams to have a season of play.
Although competition is limited, there is some action of Piedmont's playing fields.
Practices have begun for some sports like soccer, lacrosse, softball, and baseball. The number of athletes at practice has been limited to a certain number for an hour at a time.
For women's soccer at Piedmont that is great news. The Lady Lions of Piedmont's women's soccer team over the past three seasons has gone (47-12-5) 47 wins, 12 losses, 5 ties during the regular season. They have also gone (19-3-1) 19 wins, 3 losses, 1 tie within conference play. They have also gone on to win a conference title and made an appearance in the Division 3 NCAA tournament. The Women's soccer team has arguably been the best overall team at Piedmont College during their dominating run. So, it is expected they would be eager to get back on the pitch (soccer field) and continue their dominating run.
"As a team, we are staying positive in hopes of having another winning season in the spring."
This entry was posted in Uncategorized on September 22, 2020 by connerjelley.
← HOOVES UP As delays to sports continue, Piedmont is committed to finding ways for every athlete to compete amid the COVID-19 pandemic →


Honeymoon Suite - "Love Changes Everything"
Look forward to trying this one out, Thanks for sharing!!
If that video's accurate, you've got some toms charted as cymbals during the intro.
I do indeed. A cleaned up version 2 will be coming sometime in the near future.


Hey folks, this is Frederik Drejfald at Affiliate Expert Academy, and NAM Offers, the premier affiliate network. Today I want to help you solve a problem I have seen my clients struggle with many times, How to find perfect customers online? If you don't know how to, you are definitely going to lose good leads, and sales, when running your advertising campaigns.
Market research focuses your business on your customers. Remember your customer is what drives and directs your business. Take every opportunity to listen and communicate with your customer through market research. When you truly understand your customers' needs and wants you can't fail.
Market research keeps you focused. When you understand what's most important to your customers you can organize your time more efficiently by prioritizing answering your customers' needs.
It helps you to recognize the best ways to make money online. Good research allows you to calculate which opportunities are more likely to earn the highest revenue.
Market research keeps you in touch with the present market and focused on the future. Adapt or Perish! As the owner of a product regular research guides you and helps you to constantly adapt and evolve your brand to meet customers' needs. In Affiliate Marketing good market research helps you to choose the best brands to promote.
It improves your ability to make decisions and reduces business risks. Proper market research provides invaluable information and data about your market, product, customers, competitors, and more. This information allows you to make the best decisions for your business confidently and minimizes your risk of failure.
OK, now that we have a clear understanding of why market research is critical to any business, including affiliate marketing, let's focus on finding your perfect customer.
A quick tactic to find a lot of websites, all containing your perfect customer.
Before you promote a product online you need to identify your perfect avatar (composite of the ideal customer).
You need to know where your perfect avatar is located online, where they are hanging out and which websites they most visit.
At this point you might be thinking, 'Let's start with Facebook'. Yes, Facebook is very useful and does offer a lot of cool tools, but there is so much more than just Facebook.
Let me offer you a way to identify multiple websites, very quickly, all containing your business avatar, i.e. the audience you are looking for.
First, I will use the example of a business that has been very good to me – Auto Insurance, and a website called Alexa (http://www.alexa.com/), that supplies web traffic data. Alexa provides extensive information and data on a company's customers, and the visitors to their website. If you decide to use Alexa you will have to pay, but further below I will show you a similar website, which is totally free.
Go to Alexa.com and enter Insure.com in their search engine.
Now you can view a brief overview of Insure.com's customer demographic.
Alexa provides data on website visitors' gender, age, browsing location, education, ethnicity, income and family status. This information is invaluable when it comes to setting up your advertising campaign. By knowing who your ideal customer is you will know which market to focus your advertising campaigns on.
g.) Finally, you can see that the majority are either African-American or Caucasian.
Sign up to Quantcast for free and create your profile. Type Insure.com in the search bar.
What is really great about this data analysis website is their tool called the Quantcast Media Planner. As well as the most accurate website traffic data analysis available, the Quantcast Media Planner performs very sophisticated audience searches. These searches are conducted against demographic attributes such as age, gender and income. They can also be conducted against audience interest affinities, such as Technology, Bridal, Gaming or Travel.
Now you have access to Quantcast's data on over one quarter of a billion (250,000,000+) internet users!!!
This is the important part! Using the data you have gathered from Alexa.com about your ideal customer you can now enter the following data in the Audience Definition section of the Planner.
Female, older generation (55-64), some college, no children, and browsing outside of their home.
Now you can go to the Filters section and specify your ideal audience by categories. Folks this is awesome! You can target your ideal audience based on their personal interests, such as politics, gaming, food, etc.
In the Filters section you can select websites with a minimum audience of anywhere from 500 to 10 million viewers.
In the above image you can see a list of seventeen websites which are visited by the 'older generation, female, some college and no children' demographic. Under Target People you can see the number of your ideal customers visiting each site. It's a good idea to copy and paste this list, and to use it for further research.
Now you can dig deeper into your search for ideal customers. Google a website called SimilarSites (www.similarsites.com). Enter one of the websites from your new list (of seventeen websites) into the search bar at SimilarSites. In this example we will search for similar sites to Legacy.com which is the first site on our list.
You can assume that a lot of the visitors to the similar websites are similar to your ideal customers. These leads can result in a lot of sales!
But don't stop there. Keep digging. Find out if these websites are being promoted on Google. What keywords are they using? Can you use those keywords to create successful ads? You can even go ahead and start bidding on those websites' specific URLs.
If you're running PPV, or PPC aswell, you can do some research on Facebook. Find out if the websites have any Facebook fan pages. Then check if the fans on those pages are similar to your perfect customer.
OK folks, I hope you see the potential here! By using Alexa, Quantcast Media Planner, SimilarSites, Google, Facebook, and some intuitive reasoning, you can access every marketers' dream, a long list of ideal customers!
With practice you can create the list before you finish drinking a cup of coffee. Seriously.
All the best, and feel free to join our expert team!


Chief Jimmy Perdue has 32 years' experience in law enforcement. He began his career with the Irving Police Department in 1982 and moved up the ranks to the position of Assistant Chief of Police. In July 2005, he was appointed as the Chief of Police for the North Richland Hills Police Department.
During his career he has been involved in nearly all aspects of policing including patrol, criminal investigations, internal affairs, community services, training, tactical and special operations. In 2008 he was promoted to Public Safety Director overseeing the City of North Richland Hills Public Safety Services including the Police Department, Fire Department and Neighborhood Services Department.
Chief Perdue holds a Permanent Peace Officers License for the State of Texas and a Master Peace Officers License. He is a Texas Commission on Law Enforcement Standards and Education licensed instructor. Chief Perdue is a graduate of the FBI National Academy and the Advanced Management College at the Southwestern Law Enforcement Institute. He holds a Bachelor of Arts and Science Degree from Dallas Baptist University and a Master's Degree in Criminal Justice from the University of North Texas. In 2010, he was selected as a member of the International Association of Chiefs of Police Narcotics and Dangerous Drugs Committee.


text:
Brew Central's Syracuse Hosts Debut Craft New York Beer Fest
NewsBrew Central's Syracuse Hosts Debut Craft New York Beer Fest
(brewcentralny.com)
Some 400 craft beer fans packed Syracuse's Landmark Theatre Nov. 16 in a New York-exclusive event that featured 24 breweries – including five Brew Central partners – serving up some 48 samples.
Good Nature Brewmaster Matt Whalen chats with Ken Hebb, owner of St. Lawrence Brewing Co. in Canton, N.Y.
The New York State Brewers Association's Craft New York Beer Fest hoped to create a tasty and educational experience for partakers.
"That's our thing: All the brewers are here. You can meet them and talk to them," brewers association Executive Director Paul Leone said.
The debut festival of the 10-year-old New York brewers collective keyed in on that interaction, said Tim Butler, brewmaster at Brew Central's Empire Brewing Co.
"Our movement is just starting to gain steam here," Butler said, comparing the New York's beer scene to well-established brew communities in California, Oregon and Colorado. "We have to educate the consumer that our beers are just as good if not better than other parts of the country.
"We're not competitors here. When we join forces like this, we're one voice," he said.
Breweries – a small sampling of the New York State Brewers Association's 140-plus members – represented just about every part of the state, including Central New York. Likewise, the Craft New York Beer Fest drew brew fans from places near and far.
Ryan and Darcy Hampel of Ottawa, Ontario, were extremely pleased with the variety of beer – a majority of which they'd never tried – and the opportunity to talk brew with the men and women who make it.
"The U.S. has the reputation of being the place for craft beer," Ryan Hampel said. "It's very cool to see what the trends are down here."
Brew Central partners Brewery Ommegang, Empire, F.X. Matt/Saranac, Good Nature and Middle Ages brewing companies proudly poured their popular samples. Syracuse craft brew pub Kitty Hoynes also served up food samples along with a number of other local vendors.
The New York State Brewers Association will use the Syracuse fest as a catalyst for future events hosted all across the state, Leone said. The association targeted Syracuse for the inaugural New York brew celebration because of the excellent beer culture here.
"We get great beer here – a lot of people are surprised," Butler said. "We're just as well-versed as any other big beer city."
The Craft New York Beer Fest appropriately capped off the sixth annual Syracuse Beer Week, one of the longest running such events in the country.


The Gift is surely the most misunderstood work in the history of anthropology. Marcel Mauss is not entirely without blame for this. It is a work of notoriously scattershot brilliance; but, as a result, the essay has become a kind of screen for the projection of every sort of fantasy. Guyer's excellent new edition will go a long way towards finally straightening matters out. There are endless riches here. But finally they are also in a form where we can see exactly what we're being given.
The Gift is like a river that carries an immense mass of facts set in motion by Mauss' vision. Guyer proves to be a skilled guide in navigating its perilous currents by giving us a nuanced translation that explores the text's most secluded coves.
Marcel Mauss wrote The Gift to refute the contrast between free gifts and self-interested markets. Yet, the opposition that he attacked—gift economy versus market economy—is often attributed to Mauss himself. Previous English translations were taken out of their historical context. Guyer has restored that context and has made the sociological argument more explicit. This long overdue publication will transform the essay's reception, and stands to correct a text whose fame far surpasses most readers' grasp of its meaning.
Not only is Guyer extremely attentive to the wealth of connotations stirred by every word, in every language; she is also attuned to understanding Mauss' essay in the context in which it was written. This gives the reader the sense that Mauss is finally grasped fully—as an inexhaustible source of inspiration.
Marcel Mauss (1872–1950) was a French sociologist and founding figure in anthropology. His widely-cited and influential writings have inspired generations scholars across the disciplines.
Jane I. Guyer is the George Armstrong Kelly Professor Emerita in the Department of Anthropology at Johns Hopkins University.
Hann, Chris. "Can the gift be sponsored?" Journal of the Royal American Institute 22, no. 4 (2016): 984-989.
Among the most welcome features of this third English translation of Mauss's classic is Jane Guyer's decision to re-embed the Essai sur le don: forme et raison de l'échange dans les sociétés archaiques in its original setting in the journal L'Année Sociologique as published in 1925. Her translation and discussion of some of the original framing materials (twenty pages of moving tributes to deceased colleagues before the Essai, and another twenty pages of book reviews at the end) demonstrate more effectively than the earlier English editions both the significance of the timing of this publication in the aftermath of the Great War and its centrality to the Durkheimian school. It was not possible to include all of the voluminous book reviews, and some of the excerpts are extremely brief, but, with the help of research assistants, Guyer has managed to track down the original English of most of Mauss's quotations. Unlike previous translators, she contributes a substantial introduction, in which she elaborates on the difficulties of rendering Mauss's text in English.
…So, why are the works of Mauss and Durkheim, and this text in particular, still so important to the anthropological canon almost a century after they were written? Part of the explanation is surely that, in an age of ferocious specialization, we respect the old-fashioned polymath who can glide so easily from philology to legal history and, following numerous ethnographic detours, end up with profound social commentary on his contemporary world. The more important raison must be that, however different our moment in history, that commentary is still relevant. Mauss's onslaught on the individualism of Anglo-Saxon liberalism offers a different view of human sociality, one that should be recovered today. Like Douglas, he is adamant that the gift economy has not disappeared in industrial society, though we may misrecognize its forms. It just needs to be reinvigorated. Although Mauss never employed the term 'moral economy', in contemporary jargon we might say that this is what he and the other Durkheimians were pursuing.
Goodman, Zoë. "What's the point of the 'Mauss haus'? The Gift and anthropology today." Focalblog, 16 June 2016.
Guyer's journey with The Gift began with a realization of the striking difference in size between the first English translation (Mauss trans. Cunnison 1954) and the original publication in L'Année sociologique (Mauss 1925). What had been left out of the significantly thinner translation? The original, Guyer discovered, published to mark the relaunching of L'Année after the hiatus of World War I, started with a memorial to deceased colleagues and students (many of whom died in battle) and ended with an extensive review section (addressing the works of Malinowski, Radcliffe-Brown, and Boas, among others), much of it written by Mauss. Guyer's decision to produce a new translation arose from a conviction that this contextualization—particularly the memorial and select reviews from Mauss—is critical for understanding The Gift itself.
Mauss, Guyer argues, was writing out of an urgent need to find inspiration from other parts of the world, that Europeans might learn "to confront one another without massacring each other" (2016: 197). The new translation thus importantly changes the emphasis within the text. What was a round-the-world-ticket collection of notable instances of exchange—the accuracy and veracity of which have already been endlessly debated—emerges as a passionate political treatise written at a poignant moment in European history.
Hicks, Dan. "The return of ethnographic theory: HAU and when." Anthropology Today 32, no. 3 (2016): 22.
When is ethnographic theory? At a time at which so much of our theoretical development involves rethinking our disciplinary past, our answer might involve a kind of museum archaeology. Just as the archaeologist understands a museum object as the duration of an idea, so too anthropological knowledge can be conceived as a form of revisitation: a mediated, political and transformative return (Hicks 2016). In 1972, Marshall Sahlins wrote that Mauss's Essay 'remains a source of an unending ponderation for the anthropologist du metier, compelled as if by the hau of the thing to come back to it again and again' (Sahlins 1972: 149). Today, we might use Mauss's account of archaism to reimagine residuality and reciprocity. Mauss and Guyer show us that the translator is always both donor and recipient. There is a force, just like the force in the gift, in anthropological knowledge. The return of ethnographic theory brings new obligations to our disciplinary past, through the fulfilment of which that past and our present become less stable than we might imagine.


It must be a bit conflicting to face your former team. Even more so on your birthday. But scoring against your former team on your birthday must feel like the ultimate irony. And how would our favorite Egyptian-Italian player manage it? Like a pro. Despite scoring the only goal of the game vs. Genoa on his birthday, he kept it classy and didn't celebrate. Which only proves that he is truly Milan, through and through. Buon Compleanno Faraone!
The last time Genoa came to Milan, they had just come off of being humiliated by their fans, who made them hand over their shirts, saying they weren't worthy to wear them. This time, they are 10th on the table, and we are under fire, sitting in 15th, but only on goal differential. And despite narrowly escaping relegation last season, Preziosi's standards are apparently much higher, having just fired Di Canio in favor of Delneri, as Genoa lost the lead in just 3 matches and subsequently lost those matches. Meanwhile, Milan have lost five league matches as well as our Champions League match vs. Málaga midweek. And yet we still cling to our coach as if he was our lifeboat out of this Tsunami that management put us in this summer. Too bad we can't wear Genoa's shirts instead. With a new coach and 5 spots above us in the table, it's funny how things change so much in such a short time.
I have studied several languages. Spanish, oddly, is not one of them, despite the fact that my father is a Spanish Teacher. But tonight I felt like I got schooled in the Spanish… schooled by a bunch of Los Boquerones (the anchovies.) I can't even imagine how our boys must feel, as it seemed like they put forward a valiant effort, only to fail yet again. Or how Allegri must feel, knowing everyone in their right mind wants him gone, yet the people in charge of making that decision are no longer in the category with the sane. One thing is for sure, Spanish lessons hurt. Bad.
Champions League Preview - Málaga vs. Milan: The Turn of the Tide?
As of this writing (and notice I wrote it as quickly as possible so it would still be valid) Pato played nearly 45 minutes for Milan and did not sustain an injury. That might be the brightest spot in this match, I'm not sure. Certainly Lazio take away a deserved three points at home, and Milan sink deeper into the mire that is our season.
Anyone who is expecting Milan to go to the Stadio Olimpico this weekend and convincingly win by this point in the season seriously needs to consider getting their head checked. Of course, we all want that, and there's always an outside chance that it could happen, but let's be realistic: coming away with a point from this fixture would be like a victory.
After an already injury-plagued beginning of the season, news that El Shaarawy had picked up a knock to his knee over the weekend while on international duty was discouraging. But followed by the news of Robinho being out ten more days due to a thigh strain acquired in training at Milanello (without even having come back from injury,) I think that there is now a general resignation amongst Milan fans that we will suffer this injury plague yet again this season. Yes, the same plague that saw our players miss 307 matches in Serie A due to injury in only one year. And thus I suggest we change the saying, "Il club piú titolato al mondo" (the club with the most titles in the world) to "Il club piú infortunato al mondo" (the club with the most injuries in the world.) No one can touch us on that one.
The player mostly known as "Bojan" (because that's what happens when you play at Barca, you get reduced to one name) has almost everything stacked against him. First of all, he's ex-Barca. Second of all, he's on loan from Roma. Third of all, he looks like he should be in a boy band, not on a football pitch. And most recently, he chose his jersey number based on his age. It can be hard to take someone seriously with all of this going against him. But if you look beyond the artificial-looking obvious details, there's a little something more to him than a boyish face and a history of playing for clubs I don't like. Maybe this loan deal is more than meets the eye.
There once was a footballer, let's call him Zlatan Ibrahimovic, or "Ibra" for short. He was a wanderer, kind of a Mary Poppins of Football™. He spent anywhere from 1-3 years at each club, blessing them with his awesomeness. That is, until he came to a club that we'll call "Milan." Something was different about this club. His awesomeness was a perfect fit, and he and his family were very happy there. He made it clear that he wanted to stay beyond his average of two years, and even obtained the promise of the evil emperor's advisor that he would not be banished.
Before the derby on Sunday, I took the opportunity to attend services… er, I mean take the tour of the San Siro. It is like the Mecca of Milan fandom, or at least it was for me. And although I had seen pictures and footage of it many times, nothing prepared me for the religious experience I found there.
He's fearless. A defensive midfielder with great passing skills, but no fear. Taking on opponents of every size and ability with the same intensity and drive. Milan fans rejoiced when they heard he was coming. Finally, a quality signing this summer. In a position we desperately needed. And although, according to Allegri, he is still acclimating to Milan, he has already proven himself worthy of the Milan jersey. But with a reputation that gives our midfield a Fear Factor.
I had been dreaming of watching our boys play at the San Siro for so very long. And I had saved and planned to get there. When the schedule came out this summer, all of the stars aligned so I could be at the San Siro tonight for il Derby della Madonnina. So I was convinced that maybe, just maybe they could pull one off for me. But the biggest star of all did not align, and I have to confess, it hurts even worse in person.


text:
91. Which of the following areas make the largest contribution to national income in India?
Assuming national income being measured as the Gross DomesticProduct (GDP), the lion's share in the national income of India is of the SERVICE sector (tertiary sector) which stands at 57% in 2013. India's dynamic services sector has grown rapidly in the last decade with almost 72.4 per cent of the growth in India's GDP in 2014-15 coming from this sector. (Source: Economic Survey 2015-16).
92. Fixed cost is known as
Direct cost
Prime cost
Overhead cost
Special cost
Fixed costs are business expenses that are not dependent on the level of goods or services produced by the business. They tend to be time-related, such as salaries or rents being paid per month, and are often referred to as overhead costs. This is in contrast to variable costs, which are volume-related (and are paid per quantity produced)
93. Which of the following yields the largest revenue to the Government of India?
Entertainment tax
Income Tax (corporate and non-corporate combined) contribute about 56 per cent of tax revenue of India. But, income tax, apart from agricultural income is shared between the Union and states. Among the given options, Excise duty is the chief and single largest source of revenue income. The Government of India earns maximum from Union Excise Duty.
94. The Centre for Agricultural Marketing is located at
The Chaudhary Charan Singh (CCS) National Institute of Agricultural Marketing (NIAM) is a premier National level Institute set up by the Government of India in August 1988 to offer specialized Training, Research, Consultancy and Education in Agricultural Marketing. NIAM is an autonomous body under the aegis of the Ministry of Agriculture, Government of India. It was set up as a Registered Society to cater to the needs of Agricultural Marketing personnel in India as well as from South East Asian countries. The Union Minister for Agriculture is the President of the Generalbody of NIAM and Secretary, Department of Agriculture and Cooperation is the Chairman of the Executive Committee. The Campus of the National Institute of Agricultural Marketing is situated m a 32 acre plot of land on the outskirts of Jaipur City.
95. One of the essential conditions of perfect competition is :
Only one price for identical goods at any one time.
multiplicity of prices for identical products at any one time.
many sellers and a few buyers.
product differentiation
The fundamental condition of perfect competition is that there must be a large number of sellers or firms. Homogeneous Commodity is the second fundamental condition of a perfect market. The products of all firms in the industry are homogeneous and identical. In other words, they are perfect substitutes for one another. There are no trademarks, patents etc. to distinguish the product of one seller from that of another. Under perfect competition, the control over price is completely eliminated because all firms produce homogeneous commodities. This condition ensures that the same price prevails in the market for the same commodity.
96. Fiscal policy in India is formulated by
Fiscal policy is the use of government revenue collection (mainly taxes) and expenditure (spending) to influence the economy. In India, the fiscal policy is formulated by the Union Ministry of Finance. Fiscal policy is distinguished from monetary policy that deals with the money supply, lending rates and interest rates and is formulated by the Reserve Bank of India.
97. The Ganga Action Plan was directed by :
Rajiv Gandhi
The Ganga Action Plan was launched by Rajiv Gandhi in April 1986 to reduce the pollution load on the river .
98. Antyodaya Programme is associated with
Demands of textile labourers
Upliftment of the poorest of the poor
Bringing up cultural revolution in India
Liberation of bonded labour
Antyodaya Anna Yojana (AAY) is a centrally sponsored scheme launched on December 2000 for one crore of the poorest families. It is on the lookout for the 'poorest of the poor' by providing them 35 kilos of rice and wheat at Rs.2 per kg.
99. Which of the following 'Public Undertakings' has not been conferred with 'Maharatna' Status ?
There are 5 Maharatna companies: Coal India Limited, Indian Oil Corporation Limited, NTPC Limited, Oil and Natural Gas Corporation Limited and Steel Authority of India limited. Bharat Heavy Electricals Limited (BHEL) is a navaratna company.
100. Monetary policy in India is formulated by :
The Reserve Bank of India formulates Monetary Policy in India.
101. Who coined the term 'Hindu rate of growth' for Indian economy?
Kirit S. Parikh
Montek Singh Ahluwalia
A.K. Sen
Raj Krishna
The Hindu rate of growth refers to the low annual growth rate of the socialist economy of India before 1991, which stagnated around 3.5% from 1950s to 1980s, while per capita income growth averaged 1.3%. The term was coined by Indian economist Raj Krishnaa. It suggests that the low growth rate of India, a country with a high Hindu population was in a sharp contrast to high growth rates in other Asian countries, especially the East Asian Tigers, which were also newly independent. This meaning of the term, popularised by Robert McNamara, was used disparagingly and has connotations that refer to the supposed Hindu outlook of fatalism and contentedness.
102. The most distinguishing feature of oligopaly is
number of firms
negligible influence on price
price leadership
An oligopoly is a market form in which a market or industry is dominated by a small number of sellers (oligopolists). Because there are few sellers, each oligopolist is likely to be aware of the actions of the others. The decisions of one firm influence, and are influenced by, the decisions of other firms. Some of its characteristics are: Profit maximization conditions; Number of firms; Product differentiation; Interdependence; Non-Price Competition, etc. The distinctive feature of an oligopoly is interdependence. Oligopolies are typically composed of a few large firms. Each firm is so large that its actions affect market conditions. Therefore the competing firms will be aware of a firm's market actions and will respond appropriately. This means that in contemplating a market action, a firm must take into consideration the possible reactions of all competing firms and the firm's countermoves.
103. When was RBI established?
The Reserve Bank of India (RBI) was founded on 1 April 1935 in accordance with the provisions of the Reserve Bank of India Act, 1934. Following India's independence on 15 August 1947, the RBI was nationalised on 1 January 1949.
104. In the post-independence period, economic reforms were first introduced in India under
Indira Gandhi Government (1980)
Janata Party Government (1977)
Rajiv Gandhi Government (1985)
P.V. Narasimha Rao Government (1990)
The economic liberali-sation in India refers to ongoing economic reforms in India that started on 24 July, 1991. In 1991, the government of P. V. Narasimha Rao and his finance minister Manmohan Singh (currently the Prime Minister of India) started breakthrough reforms which included opening for international trade and investment, deregulation, initiation of privatization, tax reforms, and inflationcontrolling measures.
105. India's biggest nationalised enterprise today
the Indian Railways
the Indian Telecommu-nication System
the Indian Power Sector
the Indian Commercial Banking System
Indian Railways is an Indian state-owned enterprise, owned and operated by the government of India through the Ministry of Railways. Railways were first introduced to India in 1853 from Bombay to Thane. In 1951 the systems were nationalized as one unit, the Indian Railways, becoming one of the largest networks in the world. IR operates both long distance and suburban rail systems on a multi-gauge network of broad, metre and narrow gauges.


California Medical Association: Legalize It!
CANNABIS CULTURE - In the wake of a federal onslaught against medical marijuana in California, the California Medical Association (CMA) adopted an official policy that recommends legalization and regulation of cannabis at their delegates annual meeting in Anaheim on October 14.
Advocates for the legalization of marijuana got a new, unprecedented member of their ranks: the California Medical Association.


text:
Florida's coronavirus numbers on Sunday – and the human toll behind these numbers we are all getting too used to seeing
Posted By Jessica Bryce Young and NSF on Sun, Oct 18, 2020 at 7:45 PM
Coronavirus image via CDC
Today, News Service of Florida staff, as they do every day (sometimes twice or three times) put together Sunday's numbers regarding the effects of the coronavirus in Florida. They sourced their report from the Florida Department of Health and Florida Agency for Health Care Administration. And those numbers are below, if you want to just skip down.
But I want to take a minute to talk about what these numbers mean in human terms.
Photo by the Washington Post
Tony Green, who denied the coronavirus, then contracted and spread it to his whole family.
I read a story in the Washington Post this weekend that hit me like a punch in the gut. It's a first-person account told to Eli Saslow by a man called Tony Green, part of WaPo's "Voices From the Pandemic" series, of how he dismissed, denied and belittled the coronavirus and those who took precautions against it.
RELATED: "Voices From the Pandemic," by Eli Saslow
"I stopped trusting the media for my information when it went hard against Trump in 2016," he says. "I have about 4,000 people in my personal network, and not one of them had gotten sick. Not one. I told my family: "Come on. Enough already. Let's get together and enjoy life for once."
So his parents and his partner's parents joined them at their house in Texas — just the six of them for a weekend.
If you are a sensible person, you can probably guess what happened next. But if you're not — if you, too, feel we shouldn't let the virus stop us from living our lives, or maybe you're just tired of reading these dry lists of numbers that journalists compile from state agencies — read on.
Green doesn't know who had it first, but after that weekend, all six left with it.
"Six infections turned into nine. Nine went up to 14."
Green spent days in the hospital. His father-in-law's mother passed away, never knowing her son was fighting for his life in the hospital room next door. "On the day of her funeral, five more family members tested positive." Then his father-in-law passed away too. He "could only have 10 people at the funeral, and I didn't make that list."
This is a man who thought the virus was a media hoax, called it a "scamdemic." And now: "This virus, I can't escape it. It's torn up our family. It's all over my Facebook. It's the election. It's Trump. It's what I keep thinking about. How many people would have gotten sick if I'd never hosted that weekend?"
I have no answers, but I do have three pieces of advice: 1. Subscribe to the Washington Post; it's only $1 for three months and it's worth so much more than that (even if Bezos would rather build a gated community on the moon than use his personal Amazon fortune to help us here on this planet). 2. Wear a damn mask. 3. VOTE. And now, the numbers:
BY THE NUMBERS: CORONAVIRUS — SUNDAY EDITION (NSF)
— 755,020: Total number of cases.
— 2,539: Increase in cases from a Saturday count.
— 20,529: Increase in cases during the past week (from an Oct. 11 count).
— 15,967: Deaths of Florida residents.
— 50: Increase in Florida resident deaths from a Saturday count.
— 603: Increase in Florida resident deaths during the past week.
— 6,475: Deaths of residents and staff members of long-term care facilities.
— 20: Increase in long-term care deaths from a Saturday count.
— 237: Increase in long-term care deaths during the past week.
— 2,005: People hospitalized with primary diagnoses of COVID-19, the respiratory illness caused by the coronavirus.
— 28.2: Percentage of available hospital beds statewide.
— 26.6: Percentage of available adult intensive-care unit beds statewide.
Please follow CDC guidelines and Orange County advisories to stay safe, and consider supporting this free publication. Our small but mighty team is working tirelessly to bring you news on how coronavirus is affecting Central Florida. Every little bit helps.
Tags: coronavirus, scamdemic, fake news, washington post, pay journalists, Image
« Florida voting officials emphasize… | AMC will now allow you to rent your… »
Florida state Rep. Sabatini misses filing deadline in COVID case challenging Leon County's mask requirement
DeSantis expands visitation at nursing homes, assisted living facilities in time for Thanksgiving
As Florida COVID deaths increase, state surgeon general says the state should reduce reporting and re-examine data
Florida Rep. Anna Eskamani goes full Jedi with Star Wars' Mark Hamill in Thursday phone-banking event
Orlando manufacturing company warns employees of layoffs if Trump isn't re-elected
Seven takeaways from the latest Florida voter registration numbers
Florida suspects arrested in million-dollar flying squirrel trafficking ring
Orlando Weekly's 2020 General Election Guide
Vice presidential candidate Kamala Harris to visit Orlando and Jacksonville on Monday
More by NSF
Orange County is No. 3 among Florida counties with most residents vaccinated for COVID-19
Florida's 1st District Court throws out yet another anti-mask lawsuit from Rep. Anthony Sabatini
Uber asks DeSantis to prioritize COVID vaccine for Florida drivers
Ruth's Chris Steak House Read More
The Outpost Neighborhood Kitchen Read More
Señor Frog's Read More


text:
Q: Search results are duplicated after update_index (django haystack+whoosh) I use django-haystack with whoosh as a backend. I call update_index command in a scheduled intervals and I've noticed that after each update my search results contains a lot of duplicated entries (eg. after 3 update_index calls I have 3 duplicates of the same model instance).
HAve you faced this problem? Any ideas how to solve it?

A: This was related to some bugs in whoosh.
According to Whoosh author it is fixed now: https://bitbucket.org/mchaput/whoosh/issue/97/search-index-contains-a-lot-of-duplicates

redpajama_set_name: RedPajamaStackExchange


Press Blankets | Product categories | Renaissance Graphic Arts, Inc.
Sizing Catcher: 1/16″ thick, this blanket will absorb the sizing from the paper. It's a good idea to keep a few of these blankets on hand at all times. The woven felt will hold up much better than the pressed felt.
Cushion: 1/4″ thick, 100% wool, this blanket is soft but strong pressed felt.
Pusher: 1/8″ thick, this blanket will take the most abuse and become the dirtiest, for this reason this blanket should be the toughest. Blankets that become dirty can be washed with any mild detergent but with proper care they should last any printmaker a very long time.


text:
A Doll´s House (A Doll´s House)
Labadie tour.
Overholser Theatre, Ardmore, United States
Newspaper: The Daily Ardmoreite, 6 Dec, 1910
492067 Labadie, Harriet Harriet Labadie 379 Actor Performance is a reading.
A Doll´s House (A Doll´s House), Home of Mrs. Henry Cleveland Perkins, 1909-03-26
Doll's House, A A Doll´s House 19154 Hotel Margaret, New York, United States 1909-04-27 92491
Doll's House, A A Doll´s House 19156 University of Utah, Presidents Circle, Salt Lake City, United States 1909-11-23 92492
Doll's House, A A Doll´s House 19201 Century Club Theatre, Reno, United States 1909-11-26 92570
Doll's House, A A Doll´s House 19183 Y.M.C.A., Los Angeles, United States 1909-12-30 92530
Doll's House, A A Doll´s House 19202 Masonic Temple, Portland, United States 1910-02-28 92572
Doll's House, A A Doll´s House 19204 Commercial Club Assembly Hall, Hood River, United States 1910-09-14 92578
Doll's House, A A Doll´s House 19206 Atchison, Atchison, United States 1910-11-04 92584
Doll's House, A A Doll´s House 19208 LaBelle Theatre, Pittsburg, United States 1910-11-10 92586
Hedda Gabler Hedda Gabler 19207 Grand Opera House, Topeka, United States 1910-11-15 92664
Doll's House, A A Doll´s House 19207 Grand Opera House, Topeka, United States 1910-11-15 92585
Doll's House, A A Doll´s House 19098 Beldorf Theatre, Independence, United States 1910-12-08 92688
Doll's House, A A Doll´s House 19247 Overholser Theatre, Ardmore, United States 1910-12-21 92666
Doll's House, A A Doll´s House 19246 Muskogee High School, 3200 E Shawnee Rd, Muskogee, United States 1910-12-23 92665
Hedda Gabler Hedda Gabler 11961 The University of Texas, 1 University Station, Austin, United States 1911-02-01 92697
Doll's House, A A Doll´s House 19259 Hospital Circle of The King´s Daughters, United States 1911-04-27 92698
Doll's House, A A Doll´s House 19260 The Grand, Greensboro, United States 1911-05-02 92699
Doll's House, A A Doll´s House 19234 City Opera House, Frederick, United States 1912-02-16 92700
Doll's House, A A Doll´s House 19261 Y.M.C.A., Eugene, United States 1912-11-20 92701
Doll's House, A A Doll´s House 19323 Multnomah Hotel, Portland, United States 1912-11-22 92836
Doll's House, A A Doll´s House 19324 Heilig Theatre, Porland, United States 1912-11-26 92837
Doll's House, A A Doll´s House 19325 The Natatorium, Ashland, United States 1912-11-29 92838
Doll's House, A A Doll´s House 19326 Auditorium Christian Temple, Muskogee, United States 1913-03-17 92839
Doll's House, A A Doll´s House 19327 The Auditorium, The High Point, United States 1913-12-30 92840
Doll's House, A A Doll´s House 19328 State Normal College, Greensboro, United States 1914-01-09 92841
Doll's House, A A Doll´s House 19329 Asheville High School, Asheville, United States 1914-02-13 92842
Doll's House, A A Doll´s House 19330 City School Auditorium, Monroe, United States 1914-03-12 92843
Doll's House, A A Doll´s House 19331 Decatur High School, Decatur, United States 1914-04-29 92844
Doll's House, A A Doll´s House 19332 Mount Carmel High School, Mount Carmel, United States 1914-11-27 92845
The Daily Ardmoreite, 6 dec, 1910: / https://www.newspapers.com/image/71157415/?terms=Labadie%2Bibsen


Oh, the stress of the holidays. House guests, preparing lavish meals for twenty, entertaining distant relatives, driving here, there, and everywhere. We're breaking into a cold sweat just thinking about it.
However, this holiday season will not be like the others… We hope. This year we are resolved to keep the anxiety out of the festivities and simply enjoy the time that we've got with each other. And since nothing is more stressful, in our opinion, than the BIG dinner, we've committed ourselves to prepping our dining spaces a few weeks early. Perhaps we'll even have a Halloween get-together to give our new space a trial run before the turkey even hits the table.
Take a look at what we've got in mind and let us know if any of these will work in your spaces. And hey, if you want to have a trial run in your new space, we'll be glad to accept your invitation.


Helpful for management of traffic, we manufacture superior quality Road Barrier. These barriers are very advantageous for avoidance of road accidents, and are also used by police in check posts. We use high quality polymer, that provides high resistance to rust. The finished product is colored in eye-catching highly reflective color combination (orange-white).


Carlos' Bathrooms provides Bathroom Renovation, Remodelling and Tiling services to all Sydney North Shore locations. We have a proud record in the North Shore region having helped renovate bathrooms in many suburbs including Hornsby, Wahroonga, Turramurra, North Ryde and Chatswood.
When renovating on the North Shore we always ensure we check with the local council for any relevant permits or covenants that might apply to your situation. We then customise the bathroom renovation solution to suit your unique circumstances.


text:
Rebel Early b F 2014 Mountain High - Any Dough
Racing Again March 24th H'cap H'dle (Trained by: W.J. Burke - Ridden by: D.J. O'Keeffe - 2022)
Adare Manor Opportunity H'cap H'dle (Trained by: W.J. Burke - Ridden by: B. Browne - 2020)
Coral Smart Money Series M'dn H'dle (Trained by: W.J. Burke - Ridden by: Rachael Blackmore - 2019)
Athboy H'cap H'dle (Trained by: W.J. Burke - Ridden by: D.J. O'Keeffe - 2021)
National Hunt 2021/2022 10 1 0 3 0 €13,500 €4,900 €18,400
National Hunt 2019/2020 6 1 1 0 1 €10,800 €3,625 €14,425
National Hunt 2018/2019 4 1 0 0 0 €7,188 €0 €7,188
Venue ALL Ballinrobe Clonmel Cork Gowran Park Limerick Navan Punchestown Thurles Tipperary Tramore Wexford
Date From ALL 07/01/23 26/12/22 19/11/22 03/11/22 17/04/22 03/03/22 19/02/22 27/01/22 08/01/22 05/12/21 04/11/21 02/06/21 24/05/21 20/05/21 01/05/21 25/03/21 06/03/21 28/01/21 26/12/20 22/11/20 28/10/20 11/10/20 15/02/20 23/01/20 12/01/20 10/12/19 23/11/19 05/10/19 28/02/19 10/01/19 05/07/18 13/06/18
Date To ALL 07/01/23 26/12/22 19/11/22 03/11/22 17/04/22 03/03/22 19/02/22 27/01/22 08/01/22 05/12/21 04/11/21 02/06/21 24/05/21 20/05/21 01/05/21 25/03/21 06/03/21 28/01/21 26/12/20 22/11/20 28/10/20 11/10/20 15/02/20 23/01/20 12/01/20 10/12/19 23/11/19 05/10/19 28/02/19 10/01/19 05/07/18 13/06/18
Jockey ALL A.P. Kelly B. Browne C.G. O'Dwyer D.J. O'Keeffe Derek McGrath J.J. Burke J.M. Cook M. Hamill P.T. Enright R.M. Power Rachael Blackmore Sam Ewing
Race Type ALL BegCh HcpHdl Hdl MdnHdl NovCh
Distance ALL 2m 2m 100yds 2m 110yds 2m 18yds 2m 2f 40yds 2m 2f 50yds 2m 3f 2m 3f 80yds 2m 4f 2m 4f 140yds 2m 4f 40yds 2m 4f 84yds 2m 4f 85yds 2m 4f 90yds 2m 5f 3m
Place ALL 1 2 3 4 5 6 8 9 10 12 13 14 fell p.u. u.r.
Weight ALL 10-4 10-6 10-7 10-9 10-11 10-13 11-0 11-1 11-2 11-3 11-4 11-6 11-7 11-8 11-9 11-10 11-12
Rating ALL 121 120 118 117 116 115 113 112 110 109 104 103 102 101
Pattern/Listed ALL Grade B Listed
Cork 07/01/23 D.J. O'Keeffe W.J. Burke HcpHdl 2m 4f 3 11-1 118 Racing Again March 23rd H'cap H'dle €2,200
Limerick 26/12/22 A.P. Kelly W.J. Burke HcpHdl 2m 4f 10 11-2 120 Mr. Binman (Mares) H'cap H'dle
Punchestown 19/11/22 Sam Ewing W.J. Burke Hdl 2m 2f 40yds 5 10-11 120 Frontline Security (Mares) H'dle (Listed) Listed €750
Thurles 03/11/22 D.J. O'Keeffe W.J. Burke HcpHdl 2m 4f 84yds 2 11-9 120 Ballagh (Mares) H'cap H'dle €2,900
Cork 17/04/22 C.G. O'Dwyer W.J. Burke HcpHdl 2m 3f p.u. 10-4 121 BARONERACING.COM H'cap H'dle (Grade B) Grade B
Clonmel 03/03/22 P.T. Enright W.J. Burke BegCh 2m 4f p.u. 11-7 Irish Stallion Farms EBF(Mares)Beg. S'ch
Gowran-Park 19/02/22 D.J. O'Keeffe W.J. Burke HcpHdl 2m 4f 40yds p.u. 11-12 121 Tote Jackpot Is Back H'cap H'dle
Gowran-Park 27/01/22 Derek McGrath W.J. Burke HcpHdl 2m 4f 85yds 3 11-10 120 Adare Manor Opportunity H'cap H'dle €1,550
Cork 08/01/22 D.J. O'Keeffe W.J. Burke HcpHdl 2m 4f 1 10-9 113 Racing Again March 24th H'cap H'dle €13,500
Punchestown 05/12/21 B. Browne W.J. Burke HcpHdl 2m 3f 80yds 13 11-9 115 The Old House, Kill H'cap H'dle (Div 2)
Thurles 04/11/21 D.J. O'Keeffe W.J. Burke HcpHdl 2m 4f 9 11-7 116 Ballagh (Mares) H'cap H'dle
Wexford 02/06/21 D.J. O'Keeffe W.J. Burke NovCh 2m 4f 3 10-13 Good Enuf To Eat Banqueting Novice S'ch €1,250
Ballinrobe 24/05/21 R.M. Power W.J. Burke HcpHdl 2m 2f 50yds 3 11-6 117 Monroes John Monroe Memorial (M) Hcp Hdl €2,100
Tipperary 20/05/21 R.M. Power W.J. Burke HcpHdl 2m 4f 90yds 12 11-4 117 Junction H'cap H'dle
Punchestown 01/05/21 D.J. O'Keeffe W.J. Burke HcpHdl 2m 4f 6 11-6 118 Colm Quinn BMW Group (Mares) H'cap H'dle €400
Cork 25/03/21 D.J. O'Keeffe W.J. Burke HcpHdl 3m 6 11-4 118 Mallow H'cap H'dle €320
Navan 06/03/21 D.J. O'Keeffe W.J. Burke HcpHdl 2m 4f 1 11-6 112 Athboy H'cap H'dle €6,600
Gowran-Park 28/01/21 Derek McGrath W.J. Burke HcpHdl 2m 4f 85yds 3 11-4 112 Adare Manor Opportunity H'cap H'dle €1,650
Limerick 26/12/20 D.J. O'Keeffe W.J. Burke HcpHdl 2m 4f p.u. 11-1 112 O'Kelly Brothers (Mares) H'cap H'dle
Cork 22/11/20 D.J. O'Keeffe W.J. Burke HcpHdl 2m 4f 2 10-7 109 Kevin McManus Bookmaker H'cap H'dle €3,600