/**
* steamwebapi
*
* Unofficial Steam Node.js SDK for interfacing with Steam's Web API
*
* This is free and unencumbered software released into the public domain.
*
* Anyone is free to copy, modify, publish, use, compile, sell, or
* distribute this software, either in source code form or as a compiled
* binary, for any purpose, commercial or non-commercial, and by any
* means.
*
* In jurisdictions that recognize copyright laws, the author or authors
* of this software dedicate any and all copyright interest in the
* software to the public domain. We make this dedication for the benefit
* of the public at large and to the detriment of our heirs and
* successors. We intend this dedication to be an overt act of
* relinquishment in perpetuity of all present and future rights to this
* software under copyright law.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*
* For more information, please refer to <http://unlicense.org/>
*
* @author Kennedy Software Solutions Inc.
* @version 0.0.4
*/
/**********************************************************************************************************************
Includes & letiable declaration
**********************************************************************************************************************/
// Required modules
let XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;
// Helper modules
let config = require('./config');
let util = require('./util');
let endpoints = require('./endpoints');
// Instance variables
let responseFormat = 'json';
let apiKey;
/**
* Validate parameters
*
* Does light validation on the provided set of parameters to an API request
*
* @param parameters {object} The object containing the parameters for the request
* @returns {boolean} True if all parameters are valid, else false
*/
function parametersValid(parameters) {
// Iterate through all the provided parameters
for (let property in parameters) {
// Filter out prototype properties
if (parameters.hasOwnProperty(property)) {
// Each parameter must be a string
if (typeof property !== 'string') {
return false;
}
// Store the value of the property
let value = parameters[property];
switch (property.toLowerCase()) {
case 'count':
case 'maxlength':
case 'appid':
case 'appid_playing':
case 'gameid':
if (!util.isNumber(value) || value < 0) {
return false;
}
break;
case 'name':
if (!util.isArray(value)) {
return false;
}
break;
case 'steamids':
let steamids = value.split(',');
if (steamids.length > 100) {
return false;
} else {
// Iterate through all provided IDs
for (let id in steamids) {
// Filter prototype properties
if (steamids.hasOwnProperty(id)) {
if (!util.isNumber(id) || id.length !== 17) {
return false;
}
}
}
}
break;
case 'steamid':
if (!util.isNumber(value) || value.length !== 17) {
return false;
}
break;
case 'relationship':
if (config.VALID_RELATIONSHIPS.indexOf(value) < 0) {
return false;
}
break;
case 'appids_filter':
if (!util.isArray(value)) {
return false;
}
for (let appid in value) {
// Filter prototype properties
if (value.hasOwnProperty(appid)) {
if (!util.isNumber(appid) || appid < 0) {
return false;
}
}
}
// Special case handling to pass appids_filter as "input_json"
parameters['input_json'] = encodeURIComponent(JSON.stringify(value));
delete parameters[property];
break;
default:
break;
}
}
}
return true;
}
/**********************************************************************************************************************
API SDK module exports
**********************************************************************************************************************/
/**
* This module exports the API helper functions
* @module SteamWebAPI
*/
module.exports = {
/**
* Set response format
*
* Sets the default response format for responses from the Steam Web API
*
* @param newFormat {string} The new preferred response format
*/
setFormat: function(newFormat) {
// If it's valid then set it as the new default
if (config.VALID_RESPONSE_FORMATS.includes(newFormat)) {
responseFormat = newFormat;
}
},
/**
* Set API Key
*
* Sets the API key that will be used to validate the API requests
*
* @param newAPIKey {string} The new API key to use
* @returns {boolean} If this function successfully set the provided API key
*/
setAPIKey: function(newAPIKey) {
// Verify the inputted api key is valid
let isValidAPIKey = (typeof newAPIKey === 'string' && newAPIKey.length === 32);
// If it's valid then set it as the API Key
if (isValidAPIKey) {
apiKey = newAPIKey;
}
return isValidAPIKey;
},
/**
* Send API request
*
* Send the specified request to the Steam Web API and execute the callback upon success or failure
*
* @param method {string} The method name on the Steam Web API
* @param parameters {object} An object containing all the required parameters for the API request
* @param callback {function} The function to call upon success or failure
*/
send: function(method, parameters, callback) {
// Use XMLHttpRequest for sending requests to the API
let request = new XMLHttpRequest();
// Check if attempting to send valid request method to the API
if (!(endpoints.hasOwnProperty(method))) {
callback({'error': config.METHOD_NOT_EXIST})
return;
}
// Load the specification for the method
let requestSpecification = endpoints[method];
// Check if all required letiables have been provided
if (!(typeof parameters === 'object')) {
callback({'error': config.PARAMETERS_INVALID_FORMAT});
return;
}
let requirementsMet = true;
let urlParameters = '?';
// If the API method requires a key, check that it has been defined
if (requestSpecification.key === true) {
if (!(util.isDefined(apiKey))) {
callback({'error': config.API_KEY_NOT_SET});
return;
}
urlParameters += 'key=' + apiKey + '&';
}
// Call this validation before checking if meeting requirements for special case handling
// (i.e. appids_filter for GetOwnedGames must be formatted as JSON string and passed as "input_json")
if (!(parametersValid(parameters))) {
callback({'error': config.PARAMETERS_INVALID_VALUE});
}
// Iterate through all required letiables from the specification
for (let requiredParameter in requestSpecification.parameters) {
// Filter out prototype properties
if (requestSpecification.parameters.hasOwnProperty(requiredParameter)) {
// Check if the provided params have the required letiables
if (parameters.hasOwnProperty(requiredParameter)) {
requestSpecification[requiredParameter] = parameters[requiredParameter];
urlParameters += requiredParameter + '=' + parameters[requiredParameter] + '&';
} else {
// Check if this missing parameter is required
if (requestSpecification.parameters[requiredParameter] === true) {
callback({'error': config.PARAMETERS_MISSING});
return;
}
}
}
}
// Remove trailing & from url parameters string
urlParameters = urlParameters.substring(0, urlParameters.length - 1);
// Set request details
request.open('GET', config.STEAM_API_BASE_URL + requestSpecification.category + method + '/' +
requestSpecification.version + urlParameters, true);
// Handle request response
request.onreadystatechange = function () {
// Ignore incomplete requests
if (!(request.readyState === 4 && request.status === 200)) {
return;
}
try {
// Handle the different preferred response types
if (responseFormat === 'json') {
let jsonObj = JSON.parse(request.responseText);
callback(jsonObj);
} else if (responseFormat === 'xml') {
callback(request.responseXML);
} else {
callback(request.responseText);
}
} catch (error) {
callback({'error': error});
}
};
// Send the request
request.send();
},
/******************************************************************************************************************
SDK interfaces
******************************************************************************************************************/
// Pre-built interfaces for the send function for the supported API endpoints
/**
* Get news for an app ID
*
* GetNewsForApp returns the latest of a game specified by its appID
*
* @param appid {int} AppID of the game you want the news of
* @param count {int} How many news enties you want to get returned
* @param maxLength {int} Maximum length of each news entry
* @param callback {function} Function to handle the response
*/
getNewsForApp: function(appid, count, maxLength, callback) {
this.send('GetNewsForApp', {
'appid': appid,
'count': count,
'maxLength': maxLength
}, callback);
},
/**
* Get global achievement percentages for an app ID
*
* Returns on global achievements overview of a specific game in percentages
*
* @param gameid {int} AppID of the game you want the percentages of
* @param callback {function} Function to handle the response
*/
getGlobalAchievementPercentagesForApp: function(gameid, callback) {
this.send('GetGlobalAchievementPercentagesForApp', {
'gameid': gameid
}, callback);
},
/**
* Get global stats for game
*
* Get the global stats for the provided achievement names
*
* @param gameid {int} AppID of the game you want the stats of
* @param count {int} Length of the array of global stat names you will be passing
* @param name {array} Name of the achievement as defined in Steamworks
* @param callback {function} Function to handle the response
*/
getGlobalStatsForGame: function(gameid, count, name, callback) {
this.send('GetGlobalStatsForGame', {
'gameid': gameid,
'count': count,
'name': name
}, callback);
},
/**
* Get player summaries
*
* Returns basic profile information for a list of 64-bit Steam IDs
*
* @param steamids {string} Comma-delimited list of 64 bit Steam IDs to return profile information for. Up to
* 100 Steam IDs can be requested
* @param callback {function} Function to handle the response
*/
getPlayerSummaries: function(steamids, callback) {
this.send('GetPlayerSummaries', {
'steamids': steamids
}, callback);
},
/**
* Get friend list
*
* Returns the friend list of any Steam user, provided his Steam Community profile visibility is set to "Public"
*
* @param steamid {string} 64 bit Steam ID to return friend list for
* @param relationship {string} Relationship filter. Possibles values: all, friend
* @param callback {function} Function to handle the response
*/
getFriendList: function(steamid, relationship, callback) {
this.send('GetFriendList', {
'steamid': steamid,
'relationship': relationship
}, callback);
},
/**
* Get player achievements
*
* Returns a list of achievements for this user by app id
*
* @param steamid {string} 64 bit Steam ID to return friend list for
* @param appid {int} The ID for the game you're requesting
* @param callback {function} Function to handle the response
*/
getPlayerAchievements: function(steamid, appid, callback) {
this.send('GetPlayerAchievements', {
'steamid': steamid,
'appid': appid
}, callback);
},
/**
* Get user stats for game
*
* Returns a list of achievements for this user by app id
*
* @param steamid {string} 64 bit Steam ID to return friend list for
* @param appid {int} The ID for the game you're requesting
* @param callback {function} Function to handle the response
*/
getUserStatsForGame: function(steamid, appid, callback) {
this.send('GetUserStatsForGame', {
'steamid': steamid,
'appid': appid
}, callback);
},
/**
* Get owned games
*
* GetOwnedGames returns a list of games a player owns along with some playtime information, if the profile is
* publicly visible. Private, friends-only, and other privacy settings are not supported unless you are asking for
* your own personal details (ie the WebAPI key you are using is linked to the steamid you are requesting).
*
* @param steamid {string} The SteamID of the account
* @param include_appinfo {string} Include game name and logo information in the output. The
* default is to return appids only
* @param include_played_free_games {boolean} By default, free games like Team Fortress 2 are excluded (as
* technically everyone owns them). If include_played_free_games is
* set, they will be returned if the player has played them at some
* point. This is the same behavior as the games list on the Steam
* Community
* @param appids_filter {array} You can optionally filter the list to a set of appids. Note that
* these cannot be passed as a URL parameter, instead you must use
* the JSON format described in
* Steam_Web_API#Calling_Service_interfaces. The expected input is
* an array of integers (in JSON: "appids_filter: [ 440, 500, 550 ]
* " )
* @param callback {function} Function to handle the response
*/
getOwnedGames: function(steamid, include_appinfo, include_played_free_games, appids_filter, callback) {
let parameters = {
'steamid': steamid
};
// Optional parameters
if (util.isDefined(include_appinfo)) {
parameters.include_appinfo = include_appinfo;
}
if (util.isDefined(include_played_free_games) && util.isDefined(include_played_free_games.length) && include_played_free_games.length > 0) {
parameters.include_played_free_games = include_played_free_games;
}
if (util.isDefined(appids_filter)) {
parameters.appids_filter = appids_filter;
}
this.send('GetOwnedGames', parameters, callback);
},
/**
* Get recently played games
*
* GetRecentlyPlayedGames returns a list of games a player has played in the last two weeks, if the profile is
* publicly visible. Private, friends-only, and other privacy settings are not supported unless you are asking for
* your own personal details (ie the WebAPI key you are using is linked to the steamid you are requesting).
*
* @param steamid {string} The SteamID of the account
* @param count {int} Optionally limit to a certain number of games (the number of games a person has
* played in the last 2 weeks is typically very small)
* @param callback {function} Function to handle the response
*/
getRecentlyPlayedGames: function(steamid, count, callback) {
let parameters = {
'steamid': steamid
};
// Optional parameters
if (util.isDefined(count)) {
parameters.count = count;
}
this.send('GetRecentlyPlayedGames', parameters, callback);
},
/**
* Is playing shared game
*
* IsPlayingSharedGame returns the original owner's SteamID if a borrowing account is currently playing this game.
* If the game is not borrowed or the borrower currently doesn't play this game, the result is always 0.
*
* @param steamid {string} The SteamID of the account playing
* @param appid_playing {int} The AppID of the game currently playing
* @param callback {function} Function to handle the response
*/
isPlayingSharedGame: function(steamid, appid_playing, callback) {
this.send('GetUserStatsForGame', {
'steamid': steamid,
'appid_playing': appid_playing
}, callback);
}
};


Throughout my career working in Finance and Operations in the pharmaceutical, high performance material,
and textile industries I've always worked with my teams to bring new solutions to our work. More often
than not, that has meant leveraging the tools at our disposal, whether that be an office suite tool or
an ERP system component. Through the coding bootcamp at UNC-Chapel Hill, I'm adding exciting new development
tools to my arsenal.
Let's build something.


MaxMind GeoIP2 Python API¶
Description¶
This package provides an API for the GeoIP2 web services and databases. The API also works with MaxMind’s free GeoLite2 databases.
Installation¶
To install the geoip2
module, type:
$ pip install geoip2
If you are not able to use pip, you may also use easy_install from the source directory:
$ easy_install .
Database Reader Extension¶
If you wish to use the C extension for the database reader, you must first install the libmaxminddb C API. Please see the instructions distributed with it.
Usage¶
To use this API, you first create either a web service object with your
MaxMind user_id
and license_key
or a database reader object with the
path to your database file. After doing this, you may call the method
corresponding to request type (e.g., city
or country
), passing it the
IP address you want to look up.
If the request succeeds, the method call will return a model class for the end point you called. This model in turn contains multiple record classes, each of which represents part of the data returned by the web service.
If the request fails, the client class throws an exception.
Web Service Example¶
>>> import geoip2.webservice
>>>
>>> # This creates a Client object that can be reused across requests.
>>> # Replace "42" with your user ID and "license_key" with your license
>>> # key.
>>> client = geoip2.webservice.Client(42, 'license_key')
>>>
>>> # Replace "insights" with the method corresponding to the web service
>>> # that you are using, e.g., "country", "city".
>>> response = client.insights('<IP_ADDRESS>')
>>>
>>> response.country.iso_code
'US'
>>> response.country.name
'United States'
>>> response.country.names['zh-CN']
u'美国'
>>>
>>> response.subdivisions.most_specific.name
'Minnesota'
>>> response.subdivisions.most_specific.iso_code
'MN'
>>>
>>> response.city.name
'Minneapolis'
>>>
>>> response.postal.code
'55455'
>>>
>>> response.location.latitude
44.9733
>>> response.location.longitude
-93.2323
Web Service Client Exceptions¶
For details on the possible errors returned by the web service itself, see http://dev.maxmind.com/geoip/geoip2/web-services for the GeoIP2 Precision web service docs.
If the web service returns an explicit error document, this is thrown as a
AddressNotFoundError
, AuthenticationError
, InvalidRequestError
, or
OutOfQueriesError
as appropriate. These all subclass GeoIP2Error
.
If some other sort of error occurs, this is thrown as an HTTPError
. This
is thrown when some sort of unanticipated error occurs, such as the web
service returning a 500 or an invalid error document. If the web service
returns any status code besides 200, 4xx, or 5xx, this also becomes an
HTTPError
.
Finally, if the web service returns a 200 but the body is invalid, the client
throws a GeoIP2Error
.
Database Example¶
City Database¶
>>> import geoip2.database
>>>
>>> # This creates a Reader object. You should use the same object
>>> # across multiple requests as creation of it is expensive.
>>> reader = geoip2.database.Reader('/path/to/GeoLite2-City.mmdb')
>>>
>>> # Replace "city" with the method corresponding to the database
>>> # that you are using, e.g., "country".
>>> response = reader.city('<IP_ADDRESS>')
>>>
>>> response.country.iso_code
'US'
>>> response.country.name
'United States'
>>> response.country.names['zh-CN']
u'美国'
>>>
>>> response.subdivisions.most_specific.name
'Minnesota'
>>> response.subdivisions.most_specific.iso_code
'MN'
>>>
>>> response.city.name
'Minneapolis'
>>>
>>> response.postal.code
'55455'
>>>
>>> response.location.latitude
44.9733
>>> response.location.longitude
-93.2323
>>> reader.close()
Anonymous IP Database¶
>>> import geoip2.database
>>>
>>> # This creates a Reader object. You should use the same object
>>> # across multiple requests as creation of it is expensive.
>>> reader = geoip2.database.Reader('/path/to/GeoIP2-Anonymous-IP.mmdb')
>>>
>>> response = reader.anonymous_ip('<IP_ADDRESS>')
>>>
>>> response.is_anonymous
True
>>> response.is_anonymous_vpn
False
>>> response.is_hosting_provider
False
>>> response.is_public_proxy
False
>>> response.is_tor_exit_node
True
>>> response.ip_address
'<IP_ADDRESS>'
>>> reader.close()
Connection-Type Database¶
>>> import geoip2.database
>>>
>>> # This creates a Reader object. You should use the same object
>>> # across multiple requests as creation of it is expensive.
>>> reader = geoip2.database.Reader('/path/to/GeoIP2-Connection-Type.mmdb')
>>>
>>> response = reader.connection_type('<IP_ADDRESS>')
>>>
>>> response.connection_type
'Corporate'
>>> response.ip_address
'<IP_ADDRESS>'
>>> reader.close()
Domain Database¶
>>> import geoip2.database
>>>
>>> # This creates a Reader object. You should use the same object
>>> # across multiple requests as creation of it is expensive.
>>> reader = geoip2.database.Reader('/path/to/GeoIP2-Domain.mmdb')
>>>
>>> response = reader.domain('<IP_ADDRESS>')
>>>
>>> response.domain
'umn.edu'
>>> response.ip_address
'<IP_ADDRESS>'
>>> reader.close()
ISP Database¶
>>> import geoip2.database
>>>
>>> # This creates a Reader object. You should use the same object
>>> # across multiple requests as creation of it is expensive.
>>> reader = geoip2.database.Reader('/path/to/GeoIP2-ISP.mmdb')
>>>
>>> response = reader.isp('<IP_ADDRESS>')
>>>
>>> response.autonomous_system_number
1221
>>> response.autonomous_system_organization
'Telstra Pty Ltd'
>>> response.isp
'Telstra Internet'
>>> response.organization
'Telstra Internet'
>>> response.ip_address
'<IP_ADDRESS>'
>>> reader.close()
Database Reader Exceptions¶
If the database file does not exist or is not readable, a ValueError
will
be thrown. If the file is invalid or there is a bug in the reader, a
maxminddb.InvalidDatabaseError
will be thrown with a description of the
problem. If an IP address is not in the database, a AddressNotFoundError
exception will be thrown.
What data is returned?¶
While many of the models contain the same basic records, the attributes which can be populated vary between web service end points or databases. In addition, while a model may offer a particular piece of data, MaxMind does not always have every piece of data for any given IP address.
Because of these factors, it is possible for any request to return a record where some or all of the attributes are unpopulated.
The only piece of data which is always returned is the ip_address attribute
in the geoip2.records.Traits
record.
Integration with GeoNames¶
GeoNames offers web services and downloadable
databases with data on geographical features around the world, including
populated places. They offer both free and paid premium data. Each feature is
uniquely identified by a geoname_id
, which is an integer.
Many of the records returned by the GeoIP web services and databases include a
geoname_id
field. This is the ID of a geographical feature (city, region,
country, etc.) in the GeoNames database.
Some of the data that MaxMind provides is also sourced from GeoNames. We source things like place names, ISO codes, and other similar data from the GeoNames premium data set.
Reporting Data Problems¶
If the problem you find is that an IP address is incorrectly mapped, please submit your correction to MaxMind.
If you find some other sort of mistake, like an incorrect spelling, please check the GeoNames site first. Once you’ve searched for a place and found it on the GeoNames map view, there are a number of links you can use to correct data (“move”, “edit”, “alternate names”, etc.). Once the correction is part of the GeoNames data set, it will be automatically incorporated into future MaxMind releases.
If you are a paying MaxMind customer and you’re not sure where to submit a correction, please contact MaxMind support for help.
Requirements¶
This code requires Python 2.6+ or 3.3+. Older versions are not supported. This library has been tested with CPython and PyPy.
The Requests HTTP library is also required. See <http://python-requests.org> for details.
Versioning¶
The GeoIP2 Python API uses Semantic Versioning.
Support¶
Please report all issues with this code using the GitHub issue tracker
If you are having an issue with a MaxMind service that is not specific to the client API, please contact MaxMind support for assistance.
Modules¶
GeoIP2 Database Reader¶
-
class
geoip2.database.
Reader
(filename, locales=None, mode=0)¶ GeoIP2 database Reader object.
Instances of this class provide a reader for the GeoIP2 database format. IP addresses can be looked up using the
country
andcity
methods.The basic API for this class is the same for every database. First, you create a reader object, specifying a file name. You then call the method corresponding to the specific database, passing it the IP address you want to look up.
If the request succeeds, the method call will return a model class for the method you called. This model in turn contains multiple record classes, each of which represents part of the data returned by the database. If the database does not contain the requested information, the attributes on the record class will have a
None
value.If the address is not in the database, an
geoip2.errors.AddressNotFoundError
exception will be thrown. If the database is corrupt or invalid, amaxminddb.InvalidDatabaseError
will be thrown.-
anonymous_ip
(ip_address)¶ Get the AnonymousIP object for the IP address
Parameters: ip_address – IPv4 or IPv6 address as a string. Returns: geoip2.models.AnonymousIP
object
-
city
(ip_address)¶ Get the City object for the IP address
Parameters: ip_address – IPv4 or IPv6 address as a string. Returns: geoip2.models.City
object
-
close
()¶ Closes the GeoIP2 database
-
connection_type
(ip_address)¶ Get the ConnectionType object for the IP address
Parameters: ip_address – IPv4 or IPv6 address as a string. Returns: geoip2.models.ConnectionType
object
-
country
(ip_address)¶ Get the Country object for the IP address
Parameters: ip_address – IPv4 or IPv6 address as a string. Returns: geoip2.models.Country
object
-
domain
(ip_address)¶ Get the Domain object for the IP address
Parameters: ip_address – IPv4 or IPv6 address as a string. Returns: geoip2.models.Domain
object
-
isp
(ip_address)¶ Get the ISP object for the IP address
Parameters: ip_address – IPv4 or IPv6 address as a string. Returns: geoip2.models.ISP
object
-
metadata
()¶ The metadata for the open database
Returns: maxminddb.reader.Metadata
object
-
WebServices Client API¶
This class provides a client API for all the GeoIP2 Precision web service end points. The end points are Country, City, and Insights. Each end point returns a different set of data about an IP address, with Country returning the least data and Insights the most.
Each web service end point is represented by a different model class, and these model classes in turn contain multiple record classes. The record classes have attributes which contain data about the IP address.
If the web service does not return a particular piece of data for an IP address, the associated attribute is not populated.
The web service may not return any information for an entire record, in which case all of the attributes for that record class will be empty.
SSL¶
Requests to the GeoIP2 Precision web service are always made with SSL.
-
class
geoip2.webservice.
Client
(user_id, license_key, host='geoip.maxmind.com', locales=None, timeout=None)¶ Creates a new client object.
It accepts the following required arguments:
Parameters: - user_id – Your MaxMind User ID.
- license_key – Your MaxMind license key.
Go to https://www.maxmind.com/en/my_license_key to see your MaxMind User ID and license key.
The following keyword arguments are also accepted:
Parameters: - host – The hostname to make a request against. This defaults to “geoip.maxmind.com”. In most cases, you should not need to set this explicitly.
- locales –
This is list of locale codes. This argument will be passed on to record classes to use when their name properties are called. The default value is [‘en’].
The order of the locales is significant. When a record class has multiple names (country, city, etc.), its name property will return the name in the first locale that has one.
Note that the only locale which is always present in the GeoIP2 data is “en”. If you do not include this locale, the name property may end up returning None even when the record has an English name.
Currently, the valid locale codes are:
- de – German
- en – English names may still include accented characters if that is the accepted spelling in English. In other words, English does not mean ASCII.
- es – Spanish
- fr – French
- ja – Japanese
- pt-BR – Brazilian Portuguese
- ru – Russian
- zh-CN – Simplified Chinese.
-
city
(ip_address='me')¶ This method calls the GeoIP2 Precision City endpoint.
Parameters: ip_address – IPv4 or IPv6 address as a string. If no address is provided, the address that the web service is called from will be used. Returns: geoip2.models.City
object
-
country
(ip_address='me')¶ This method calls the GeoIP2 Country endpoint.
Parameters: ip_address – IPv4 or IPv6 address as a string. If no address is provided, the address that the web service is called from will be used. Returns: geoip2.models.Country
object
-
insights
(ip_address='me')¶ This method calls the GeoIP2 Precision: Insights endpoint.
Parameters: ip_address – IPv4 or IPv6 address as a string. If no address is provided, the address that the web service is called from will be used. Returns: geoip2.models.Insights
object
Models¶
These classes provide models for the data returned by the GeoIP2 web service and databases.
The only difference between the City and Insights model classes is which fields in each record may be populated. See http://dev.maxmind.com/geoip/geoip2/web-services for more details.
-
class
geoip2.models.
AnonymousIP
(raw)¶ Model class for the GeoIP2 Anonymous IP
This class provides the following attribute:
-
is_anonymous
¶ This is true if the IP address belongs to any sort of anonymous network.
Type: bool
-
is_anonymous_vpn
¶ This is true if the IP address belongs to an anonymous VPN system.
Type: bool
-
is_hosting_provider
¶ This is true if the IP address belongs to a hosting provider.
Type: bool
-
is_public_proxy
¶ This is true if the IP address belongs to a public proxy.
Type: bool
-
is_tor_exit_node
¶ This is true if the IP address is a Tor exit node.
Type: bool
-
ip_address
¶ The IP address used in the lookup.
Type: unicode
-
-
class
geoip2.models.
City
(raw_response, locales=None)¶ Model for the GeoIP2 Precision: City and the GeoIP2 City database .. attribute:: city
City object for the requested IP address.
type: geoip2.records.City
-
continent
¶ Continent object for the requested IP address.
Type: geoip2.records.Continent
-
country
¶ Country object for the requested IP address. This record represents the country where MaxMind believes the IP is located.
Type: geoip2.records.Country
-
location
¶ Location object for the requested IP address.
-
maxmind
¶ Information related to your MaxMind account.
Type: geoip2.records.MaxMind
-
registered_country
¶ The registered country object for the requested IP address. This record represents the country where the ISP has registered a given IP block in and may differ from the user’s country.
Type: geoip2.records.Country
-
represented_country
¶ Object for the country represented by the users of the IP address when that country is different than the country in
country
. For instance, the country represented by an overseas military base.Type: geoip2.records.RepresentedCountry
-
subdivisions
¶ Object (tuple) representing the subdivisions of the country to which the location of the requested IP address belongs.
Type: geoip2.records.Subdivisions
-
traits
¶ Object with the traits of the requested IP address.
Type: geoip2.records.Traits
-
-
class
geoip2.models.
ConnectionType
(raw)¶ Model class for the GeoIP2 Connection-Type
This class provides the following attribute:
-
connection_type
¶ The connection type may take the following values:
- Dialup
- Cable/DSL
- Corporate
- Cellular
Additional values may be added in the future.
Type: unicode
-
ip_address
¶ The IP address used in the lookup.
Type: unicode
-
-
class
geoip2.models.
Country
(raw_response, locales=None)¶ Model for the GeoIP2 Precision: Country and the GeoIP2 Country database
This class provides the following attributes:
-
continent
¶ Continent object for the requested IP address.
Type: geoip2.records.Continent
-
country
¶ Country object for the requested IP address. This record represents the country where MaxMind believes the IP is located.
Type: geoip2.records.Country
-
maxmind
¶ Information related to your MaxMind account.
Type: geoip2.records.MaxMind
-
registered_country
¶ The registered country object for the requested IP address. This record represents the country where the ISP has registered a given IP block in and may differ from the user’s country.
Type: geoip2.records.Country
-
represented_country
¶ Object for the country represented by the users of the IP address when that country is different than the country in
country
. For instance, the country represented by an overseas military base.Type: geoip2.records.RepresentedCountry
-
traits
¶ Object with the traits of the requested IP address.
Type: geoip2.records.Traits
-
-
class
geoip2.models.
Domain
(raw)¶ Model class for the GeoIP2 Domain
This class provides the following attribute:
-
domain
¶ The domain associated with the IP address.
Type: unicode
-
ip_address
¶ The IP address used in the lookup.
Type: unicode
-
-
class
geoip2.models.
ISP
(raw)¶ Model class for the GeoIP2 ISP
This class provides the following attribute:
-
autonomous_system_number
¶ The autonomous system number associated with the IP address.
Type: int
-
autonomous_system_organization
¶ The organization associated with the registered autonomous system number for the IP address.
Type: unicode
-
isp
¶ The name of the ISP associated with the IP address.
Type: unicode
-
organization
¶ The name of the organization associated with the IP address.
Type: unicode
-
ip_address
¶ The IP address used in the lookup.
Type: unicode
-
-
class
geoip2.models.
Insights
(raw_response, locales=None)¶ Model for the GeoIP2 Precision: Insights web service endpoint
-
city
¶ City object for the requested IP address.
Type: geoip2.records.City
-
continent
¶ Continent object for the requested IP address.
Type: geoip2.records.Continent
-
country
¶ Country object for the requested IP address. This record represents the country where MaxMind believes the IP is located.
Type: geoip2.records.Country
-
location
¶ Location object for the requested IP address.
-
maxmind
¶ Information related to your MaxMind account.
Type: geoip2.records.MaxMind
-
registered_country
¶ The registered country object for the requested IP address. This record represents the country where the ISP has registered a given IP block in and may differ from the user’s country.
Type: geoip2.records.Country
-
represented_country
¶ Object for the country represented by the users of the IP address when that country is different than the country in
country
. For instance, the country represented by an overseas military base.Type: geoip2.records.RepresentedCountry
-
subdivisions
¶ Object (tuple) representing the subdivisions of the country to which the location of the requested IP address belongs.
Type: geoip2.records.Subdivisions
-
traits
¶ Object with the traits of the requested IP address.
Type: geoip2.records.Traits
-
-
class
geoip2.models.
SimpleModel
¶ Provides basic methods for non-location models
Records¶
-
class
geoip2.records.
City
(locales=None, **kwargs)¶ Contains data for the city record associated with an IP address
This class contains the city-level data associated with an IP address.
This record is returned by
city
andinsights
.Attributes:
-
confidence
¶ A value from 0-100 indicating MaxMind’s confidence that the city is correct. This attribute is only available from the Insights end point.
Type: int
-
geoname_id
¶ The GeoName ID for the city.
Type: int
-
name
¶ The name of the city based on the locales list passed to the constructor.
Type: unicode
-
names
¶ A dictionary where the keys are locale codes and the values are names.
Type: dict
-
-
class
geoip2.records.
Continent
(locales=None, **kwargs)¶ Contains data for the continent record associated with an IP address
This class contains the continent-level data associated with an IP address.
Attributes:
-
code
¶ A two character continent code like “NA” (North America) or “OC” (Oceania).
Type: unicode
-
geoname_id
¶ The GeoName ID for the continent.
Type: int
-
name
¶ Returns the name of the continent based on the locales list passed to the constructor.
Type: unicode
-
names
¶ A dictionary where the keys are locale codes and the values are names.
Type: dict
-
-
class
geoip2.records.
Country
(locales=None, **kwargs)¶ Contains data for the country record associated with an IP address
This class contains the country-level data associated with an IP address.
Attributes:
-
confidence
¶ A value from 0-100 indicating MaxMind’s confidence that the country is correct. This attribute is only available from the Insights end point.
Type: int
-
geoname_id
¶ The GeoName ID for the country.
Type: int
-
iso_code
¶ The two-character ISO 3166-1 alpha code for the country.
Type: unicode
-
name
¶ The name of the country based on the locales list passed to the constructor.
Type: unicode
-
names
¶ A dictionary where the keys are locale codes and the values are names.
Type: dict
-
-
class
geoip2.records.
Location
(**kwargs)¶ Contains data for the location record associated with an IP address
This class contains the location data associated with an IP address.
This record is returned by city and insights.
Attributes:
-
average_income
¶ The average income in US dollars associated with the requested IP address This attribute is only available from the Insights end point.
Type: int
-
accuracy_radius
¶ The radius in kilometers around the specified location where the IP address is likely to be. This attribute is only available from the Insights end point.
Type: int
-
latitude
¶ The latitude of the location as a floating point number.
Type: float
-
longitude
¶ The longitude of the location as a floating point number.
Type: float
-
metro_code
¶ The metro code of the location if the location is in the US. MaxMind returns the same metro codes as the Google AdWords API.
Type: int -
population_density
¶
The estimated population per square kilometer associated with the IP address. This attribute is only available from the Insights end point.
Type: int -
-
time_zone
¶ The time zone associated with location, as specified by the IANA Time Zone Database, e.g., “America/New_York”.
Type: unicode
-
-
class
geoip2.records.
MaxMind
(**kwargs)¶ Contains data related to your MaxMind account
Attributes:
-
queries_remaining
¶ The number of remaining queries you have for the end point you are calling.
Type: int
-
-
class
geoip2.records.
PlaceRecord
(locales=None, **kwargs)¶ All records with
names
subclassPlaceRecord
-
name
¶ Dict with locale codes as keys and localized name as value
-
-
class
geoip2.records.
Postal
(**kwargs)¶ Contains data for the postal record associated with an IP address
This class contains the postal data associated with an IP address.
This attribute is returned by
city
andinsights
.Attributes:
-
code
¶ The postal code of the location. Postal codes are not available for all countries. In some countries, this will only contain part of the postal code.
Type: unicode
-
confidence
¶ A value from 0-100 indicating MaxMind’s confidence that the postal code is correct. This attribute is only available from the Insights end point.
Type: int
-
-
class
geoip2.records.
Record
(**kwargs)¶ All records are subclasses of the abstract class
Record
-
class
geoip2.records.
RepresentedCountry
(locales=None, **kwargs)¶ Contains data for the represented country associated with an IP address
This class contains the country-level data associated with an IP address for the IP’s represented country. The represented country is the country represented by something like a military base.
Attributes:
-
confidence
¶ A value from 0-100 indicating MaxMind’s confidence that the country is correct. This attribute is only available from the Insights end point.
Type: int
-
geoname_id
¶ The GeoName ID for the country.
Type: int
-
iso_code
¶ The two-character ISO 3166-1 alpha code for the country.
Type: unicode
-
name
¶ The name of the country based on the locales list passed to the constructor.
Type: unicode
-
names
¶ A dictionary where the keys are locale codes and the values are names.
Type: dict
-
type
¶ A string indicating the type of entity that is representing the country. Currently we only return
military
but this could expand to include other types in the future.Type: unicode
-
-
class
geoip2.records.
Subdivision
(locales=None, **kwargs)¶ Contains data for the subdivisions associated with an IP address
This class contains the subdivision data associated with an IP address.
This attribute is returned by
city
andinsights
.Attributes:
-
confidence
¶ This is a value from 0-100 indicating MaxMind’s confidence that the subdivision is correct. This attribute is only available from the Insights end point.
Type: int
-
geoname_id
¶ This is a GeoName ID for the subdivision.
Type: int
-
iso_code
¶ This is a string up to three characters long contain the subdivision portion of the ISO 3166-2 code.
Type: unicode
-
name
¶ The name of the subdivision based on the locales list passed to the constructor.
Type: unicode
-
names
¶ A dictionary where the keys are locale codes and the values are names
Type: dict
-
-
class
geoip2.records.
Subdivisions
(locales, *subdivisions)¶ A tuple-like collection of subdivisions associated with an IP address
This class contains the subdivisions of the country associated with the IP address from largest to smallest.
For instance, the response for Oxford in the United Kingdom would have England as the first element and Oxfordshire as the second element.
This attribute is returned by
city
andinsights
.-
most_specific
¶ The most specific (smallest) subdivision available.
If there are no
Subdivision
objects for the response, this returns an emptySubdivision
.Type: Subdivision
-
-
class
geoip2.records.
Traits
(**kwargs)¶ Contains data for the traits record associated with an IP address
This class contains the traits data associated with an IP address.
This class has the following attributes:
-
autonomous_system_number
¶ The autonomous system number associated with the IP address. This attribute is only available from the City and Insights web service end points.
Type: int
-
autonomous_system_organization
¶ The organization associated with the registered autonomous system number for the IP address. This attribute is only available from the City and Insights web service end points.
Type: unicode
-
domain
¶ The second level domain associated with the IP address. This will be something like “example.com” or “example.co.uk”, not “foo.example.com”. This attribute is only available from the City and Insights web service end points.
Type: unicode
-
ip_address
¶ The IP address that the data in the model is for. If you performed a “me” lookup against the web service, this will be the externally routable IP address for the system the code is running on. If the system is behind a NAT, this may differ from the IP address locally assigned to it.
Type: unicode
-
is_anonymous_proxy
¶ This is true if the IP is an anonymous proxy. See http://dev.maxmind.com/faq/geoip#anonproxy for further details.
Type: bool Deprecated since version 2.2.0: Use our our GeoIP2 Anonymous IP database instead.
-
is_satellite_provider
¶ This is true if the IP address is from a satellite provider that provides service to multiple countries.
Type: bool Deprecated since version 2.2.0: Use our our GeoIP2 Anonymous IP database instead.
-
isp
¶ The name of the ISP associated with the IP address. This attribute is only available from the City and Insights web service end points.
Type: unicode
-
organization
¶ The name of the organization associated with the IP address. This attribute is only available from the City and Insights web service end points.
Type: unicode
-
user_type
¶ The user type associated with the IP address. This can be one of the following values:
- business
- cafe
- cellular
- college
- content_delivery_network
- dialup
- government
- hosting
- library
- military
- residential
- router
- school
- search_engine_spider
- traveler
This attribute is only available from the Insights end point.
Type: unicode
-
Errors¶
-
exception
geoip2.errors.
AddressNotFoundError
¶ The address you were looking up was not found.
-
exception
geoip2.errors.
AuthenticationError
¶ There was a problem authenticating the request.
-
exception
geoip2.errors.
GeoIP2Error
¶ There was a generic error in GeoIP2.
This class represents a generic error. It extends
RuntimeError
and does not add any additional attributes.
-
exception
geoip2.errors.
HTTPError
(message, http_status=None, uri=None)¶ There was an error when making your HTTP request.
This class represents an HTTP transport error. It extends
GeoIP2Error
and adds attributes of its own.Variables: - http_status – The HTTP status code returned
- uri – The URI queried
-
exception
geoip2.errors.
InvalidRequestError
¶ The request was invalid.
-
exception
geoip2.errors.
OutOfQueriesError
¶ Your account is out of funds for the service queried.
Indices and tables¶
| copyright: |
|
|---|---|
| license: | Apache License, Version 2.0 |


Other Projects
{% include local-project.html
layout = "left"
title = "Optimisation Algorithms"
image = "optimisation-logo.png"
link = "https://github.com/aljrico/optimization-algorithms"
content = "This repository contains a small set of algorithms developed with the aim rapidly minimising pre-defined error functions."
%}
{% include local-project.html
layout = "left"
badge = "wip"
title = "ML on X-Rays"
image = "lungs-logo.png"
link = ""
content = "Web Application which interprets X-Ray results based on Machine Learning predictions."
%}


Monday — December 23, 2019 2019 was a huge year for quantum computing by Tristan Greene 3 hours ago 31
INSIGHTS Hackers steal $480,000 worth of NULS cryptocurrency from its dev team by David Canellis 4 hours ago 29
ProjectDue helps keep your business affairs straight -- and right now, it’s over 90% off TNW Deals 4 hours ago
Moonday Mornings: Alleged billion-dollar Bitcoin launderer extradited to France David Canellis 6 hours ago
2019's juiciest crypto drama: The saga of OneCoin’s $4B ‘cryptocurrency’ scam Yessi Bello Perez 7 hours ago
US Navy officers can't use TikTok on government-issued phones because it's a 'cybersecurity threat' Abhimanyu Ghoshal 8 hours ago
Most Popular The UAE is reportedly spying on millions of ToTok messenger users by Abhimanyu Ghoshal 3 days ago
LATEST US Navy officers can't use TikTok on government-issued phones because it's a 'cybersecurity threat'
Most Popular Uniqlo's new robots can pick up and pack t-shirts just like human workers by Abhimanyu Ghoshal 2 days ago
Most Popular Why your cat is lousy at chess yet way smarter than even the most advanced AI by The Conversation 22 hours ago
Most Popular Here’s how law enforcement catches cryptocurrency crimin als by Yessi Bello Perez 12 hours ago
Most Popular PSA: Amazon Fresh grocery deliveries are now free for US Pri me members by Abhimanyu Ghoshal 8 weeks ago
Most Popular We forced an actual designer to review our writers' DIY article images by Callum Booth 17 hours ago


You'll lose your record(s) after this action. We can't recover them once you delete.


Creation of Value
Millions of CAPTCHAs are solved by people every day. reCAPTCHA makes positive use of this human effort by channeling the time spent solving CAPTCHAs into digitizing text, annotating images, and building machine learning datasets. This in turn helps preserve books, improve maps, and solve hard AI problems.
reCAPTCHA improves our knowledge of the physical world by creating CAPTCHAs out of text visible on Street View imagery. As people verify the text in these CAPTCHAs, this information is used to make Google Maps more precise and complete. So if you're a Google Maps user, your experience (and everyone else's) will be even better.
reCAPTCHA helps solve hard problems in Artificial Intelligence. High quality human labelled images are compiled into datasets that can be used to train Machine Learning systems. Research communities benefit from such efforts that help build the next generation of groundbreaking Artificial Intelligence solutions.
reCAPTCHA digitizes books by turning words that cannot be read by computers into CAPTCHAs for people to solve. Word by word, a book is digitized and preserved online for people to find and read.


The ui-grid team is reasonably small, and this is a large project. We are always looking for contributors to assist to make this the default grid for all angularJS projects.
There are a number of ways you can contribute, all of which add value to the team:
We are a friendly project that welcomes new members, and we have tried to provide guides that allow both open source pros and first timers to open source to contribute to the project.
Refer to CONTRIBUTING.md, in the issue tracker and bug report sections.
In short, the issue tracker should be used for demonstrable problems in the code. You should tell us what version you're using, what the problem is that you have, what you expected to happen instead, and if possible provide a plunkr that demonstrates the problem.
The easiest way to get a plunkr is to start with one of the tutorials, click the "edit" button, and then adjust it in the plunkr to match the configuration in your code. Then click the save button, and copy and paste the url into your issue.
There is a lot more detail in CONTRIBUTING.md, read it and follow it.
As you get more familiar with ui-grid, you'll find that some things in the documentation aren't described as well as you think they could be, or you'll start to build knowledge that is enough to answer questions.
Register for gitter, and get a github account. Answer questions where you have the knowledge to do so, freeing up the core team to work on the more complex issues. Remember that you don't have to always be right, this is an open source project run by volunteers. So long as you have good intentions and your courteous, then your contributions will be valued. The only way to increase your knowledge is to start, and we all started in the same place.
If you want to contribute documentation updates, these are the easiest area of pull requests to submit. Take a look at the first timers guide, and do your first pull request. It's not as hard as it looks from the outside!!
If you're already a pro with open source, github and the development tools, dive straight in. Look at CONTRIBUTING.md and DEVELOPER.md, and get working!!
Key things to watch out for are:
If you're more of a first timer with open source, then look at First time guide. Some of it you'll already know, other bits may be new. Our aim with this guide is to collate as much as possible of the questions and answers that we've covered through gitter and other channels, and make that information accessible to new contributors.


We have an abstract papar accepted to the AMIA 2016, a leading conference in Medical Informatics:
X. Tan, X. An, N. Pairaudeau, and J. Huang, "Towards a formal account of the dynamics of knowledge and context in surgical rooms for the practice of surgical safety checklists" in AMIA 2016, American Medical Informatics Association Annual Symposium, Chichago, IL, USA, November 12-16, 2013, 2016.


tangle
Empowering everyone to capture and connect thoughts to create big ideas
We write our thoughts down all over the place.
Sometimes we don’t write them down at all.
They are not connected.
They are not revisited.
Valuable thoughts slip through the cracks.
Great ideas go unexplored.
It is time to make the most of your thoughts.
Capture and surface thoughts seamlessly – no files or folders to organize.
Explore your Tangle to discover how thoughts are connected.
Tangle with peers to create the internet of thoughts.
Join us on the journey of the lifelong brainstorm.


Sondland never told Pompeo he thought Trump linked Ukraine aid to probes: State Dept
WASHINGTON (Reuters) - U.S. Ambassador to the European Union Gordon Sondland, who testified on Wednesday in the House impeachment inquiry, never told Secretary of State Mike Pompeo he believed President Donald Trump was linking Ukraine aid to investigations of political opponents, a State Department spokeswoman said.
“Any suggestion to the contrary is flat out false,” spokeswoman Morgan Ortagus said in a statement.


Cosmetics entrepreneur Joy Revfa joins list of celebrities speaking out against online sexual harassment
by BY SYLVIA LOOIKUALA LUMPUR, Nov 8 — Cosmetics entrepreneur Joy Revfa has called on the authorities to help put a stop to sexual harassment via social media.
Joy, whose real name Siti Arifah Mohd Amin, revealed that she had been a victim, receiving pornographic images through her Instagram from fake accounts.
Speaking to Malay portal mStar, Joy said despite blocking several accounts, there appears to be no end with individuals continuing with the despicable act.
“Nearly everyday I get sexually harassed and receive messages and pornographic photos from individuals who use fake accounts.
“I have blocked several of them but the harassment continues.”
“It is tiring to keep on blocking accounts. For me, sexual harassment on social media is rampant,” she added.
The ex-wife of Nasyid singer Hafiz Hamidun shared a pornographic image she received on her Facebook account yesterday, venting out against such acts.
In the status, Joy said she wanted these cyber criminals to be arrested as they had gone overboard, and that worried about the safety of other women.
 They cannot be left to do whatever they want as I am worried they will start disturbing other people,” she shared.
Besides Joy, other celebrities who have spoken out about being sexually harassed include Baby Shima, Zizi Kirana, Azar Azmi and Wan Sharmila.


US hails $110 mn rice export agreement with S.Korea
by AFPSouth Korea has agreed to buy more than $100 million in annual US rice exports, US officials said Tuesday.
Under the agreement, South Korea will provide access for 132,304 tons of American-produced rice a year at an annual value of about $110 million, the US Trade Representative's office said in a statement.
"Exports are critical for the economic health of the US rice industry, with half our crop being exported every year," US Agriculture Secretary Sonny Perdue said in the statement.
Following negotiations, Seoul has adopted tariff-rate import quotas for about 400,000 tons of rice from the United States, Australia, China and Thailand.
According to the US Trade Representative's office, South Korea has allotted about a third of this to American growers, the highest volume of US access ever.
Under the World Trade Organization, South Korea had enjoyed special treatment for rice market access until this expired in 2014, when negotiations started.
The new agreement is to take effect in January.


| First name |
|
| Last name |
|
| User type |
|
|
|
|
| Address |
|
| Phone Number |
|
| Password |
|
| Confirm Password |
|
|
|


% include header.html %>
We’re here to help with any questions or comments. If you just want to say hi, that's cool too.
N.b.: Processing direct email can take longer.
Still, I want to email »


Apache Flink 1.11.4 Released
August 9, 2021 - Xiaoling HeThe Apache Flink community released the next bugfix version of the Apache Flink 1.11 series.
This release includes 78 fixes and minor improvements for Flink 1.11.4. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.11.4.
Updated Maven dependencies:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>1.11.4</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_2.11</artifactId>
<version>1.11.4</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients_2.11</artifactId>
<version>1.11.4</version>
</dependency>
You can find the binaries on the updated Downloads page.
Release Notes - Flink - Version 1.11.4
Sub-task
- [FLINK-21070] - Overloaded aggregate functions cause converter errors
- [FLINK-21486] - Add sanity check when switching from Rocks to Heap timers
Bug
- [FLINK-15262] - kafka connector doesn't read from beginning immediately when 'connector.startup-mode' = 'earliest-offset'
- [FLINK-16443] - Fix wrong fix for user-code CheckpointExceptions
- [FLINK-18438] - TaskManager start failed
- [FLINK-19369] - BlobClientTest.testGetFailsDuringStreamingForJobPermanentBlob hangs
- [FLINK-19436] - TPC-DS end-to-end test (Blink planner) failed during shutdown
- [FLINK-19771] - NullPointerException when accessing null array from postgres in JDBC Connector
- [FLINK-20288] - Correct documentation about savepoint self-contained
- [FLINK-20383] - DataSet allround end-to-end test fails with NullPointerException
- [FLINK-20626] - Canceling a job when it is failing will result in job hanging in CANCELING state
- [FLINK-20666] - Fix the deserialized Row losing the field_name information in PyFlink
- [FLINK-20675] - Asynchronous checkpoint failure would not fail the job anymore
- [FLINK-20680] - Fails to call var-arg function with no parameters
- [FLINK-20752] - FailureRateRestartBackoffTimeStrategy allows one less restart than configured
- [FLINK-20793] - Fix NamesTest due to code style refactor
- [FLINK-20803] - Version mismatch between spotless-maven-plugin and google-java-format plugin
- [FLINK-20832] - Deliver bootstrap resouces ourselves for website and documentation
- [FLINK-20841] - Fix compile error due to duplicated generated files
- [FLINK-20913] - Improve new HiveConf(jobConf, HiveConf.class)
- [FLINK-20989] - Functions in ExplodeFunctionUtil should handle null data to avoid NPE
- [FLINK-21008] - Residual HA related Kubernetes ConfigMaps and ZooKeeper nodes when cluster entrypoint received SIGTERM in shutdown
- [FLINK-21009] - Can not disable certain options in Elasticsearch 7 connector
- [FLINK-21013] - Blink planner does not ingest timestamp into StreamRecord
- [FLINK-21028] - Streaming application didn't stop properly
- [FLINK-21030] - Broken job restart for job with disjoint graph
- [FLINK-21071] - Snapshot branches running against flink-docker dev-master branch
- [FLINK-21132] - BoundedOneInput.endInput is called when taking synchronous savepoint
- [FLINK-21138] - KvStateServerHandler is not invoked with user code classloader
- [FLINK-21148] - YARNSessionFIFOSecuredITCase cannot connect to BlobServer
- [FLINK-21208] - pyarrow exception when using window with pandas udaf
- [FLINK-21213] - e2e test fail with 'As task is already not running, no longer decline checkpoint'
- [FLINK-21215] - Checkpoint was declined because one input stream is finished
- [FLINK-21216] - StreamPandasConversionTests Fails
- [FLINK-21274] - At per-job mode, during the exit of the JobManager process, if ioExecutor exits at the end, the System.exit() method will not be executed.
- [FLINK-21289] - Application mode ignores the pipeline.classpaths configuration
- [FLINK-21312] - SavepointITCase.testStopSavepointWithBoundedInputConcurrently is unstable
- [FLINK-21323] - Stop-with-savepoint is not supported by SourceOperatorStreamTask
- [FLINK-21453] - BoundedOneInput.endInput is NOT called when doing stop with savepoint WITH drain
- [FLINK-21497] - JobLeaderIdService completes leader future despite no leader being elected
- [FLINK-21550] - ZooKeeperHaServicesTest.testSimpleClose fail
- [FLINK-21606] - TaskManager connected to invalid JobManager leading to TaskSubmissionException
- [FLINK-21609] - SimpleRecoveryITCaseBase.testRestartMultipleTimes fails on azure
- [FLINK-21654] - YARNSessionCapacitySchedulerITCase.testStartYarnSessionClusterInQaTeamQueue fail because of NullPointerException
- [FLINK-21725] - DataTypeExtractor extracts wrong fields ordering for Tuple12
- [FLINK-21753] - Cycle references between memory manager and gc cleaner action
- [FLINK-21980] - ZooKeeperRunningJobsRegistry creates an empty znode
- [FLINK-21986] - taskmanager native memory not release timely after restart
- [FLINK-22081] - Entropy key not resolved if flink-s3-fs-hadoop is added as a plugin
- [FLINK-22109] - Misleading exception message if the number of arguments of a nested function is incorrect
- [FLINK-22184] - Rest client shutdown on failure runs in netty thread
- [FLINK-22424] - Writing to already released buffers potentially causing data corruption during job failover/cancellation
- [FLINK-22489] - subtask backpressure indicator shows value for entire job
- [FLINK-22597] - JobMaster cannot be restarted
- [FLINK-22815] - Disable unaligned checkpoints for broadcast partitioning
- [FLINK-22946] - Network buffer deadlock introduced by unaligned checkpoint
- [FLINK-23164] - JobMasterTest.testMultipleStartsWork unstable on azure
- [FLINK-23166] - ZipUtils doesn't handle properly for softlinks inside the zip file
Improvement
- [FLINK-9844] - PackagedProgram does not close URLClassLoader
- [FLINK-18182] - Upgrade AWS SDK in flink-connector-kinesis to include new region af-south-1
- [FLINK-19415] - Move Hive document to "Table & SQL Connectors" from "Table API & SQL"
- [FLINK-20651] - Use Spotless/google-java-format for code formatting/enforcement
- [FLINK-20770] - Incorrect description for config option kubernetes.rest-service.exposed.type
- [FLINK-20790] - Generated classes should not be put under src/ directory
- [FLINK-20792] - Allow shorthand invocation of spotless
- [FLINK-20805] - Blink runtime classes partially ignored by spotless
- [FLINK-20866] - Add how to list jobs in Yarn deployment documentation when HA enabled
- [FLINK-20906] - Update copyright year to 2021 for NOTICE files
- [FLINK-21020] - Bump Jackson to 2.10.5[.1] / 2.12.1
- [FLINK-21123] - Upgrade Beanutils 1.9.x to 1.9.4
- [FLINK-21164] - Jar handlers don't cleanup temporarily extracted jars
- [FLINK-21210] - ApplicationClusterEntryPoints should explicitly close PackagedProgram
- [FLINK-21411] - The components on which Flink depends may contain vulnerabilities. If yes, fix them.
- [FLINK-21735] - Harden JobMaster#updateTaskExecutionState()
- [FLINK-22142] - Remove console logging for Kafka connector for AZP runs
- [FLINK-22208] - Bump snappy-java to 1.1.5+
- [FLINK-22470] - The root cause of the exception encountered during compiling the job was not exposed to users in certain cases
- [FLINK-23312] - Use -Dfast for building e2e tests on AZP


Corporation Name: Synopsys, Inc. Shanghai Site. (Summer Internship)
Goal: HSPICE is one of the flagship products at Synopsys. This project in 2015 was to refactor parser codes for three input commands (.set_sample_time, .dout, and .store) in HSPICE from Fortran to C++. This work was awarded as one of the best internship projects at Synopsys, China in 2015. I was invited to be present the project on Synopsys R&D Demo Day. This project in 2014 was to gather feature information from the quality assurance (QA) system to accelerate the test procedure by providing problem-specific test cases in every regression test. [Slides 2015] [Slides 2014]
HSPICE top-level procedure for parser.
Photo taken with my mentor.
Corporation Name: TE Connectivity Ltd. (College-Industry Cooperation)
Advisor: Prof. Guoyong Shi & Prof. Qin Wang, Shanghai Jiao Tong University
Mentor: Mr. Taichu Dai & Mr. Hongye Xia, TE Connectivity Ltd.
Goal: Build a SPICE model for Polymer Positive Temperature Coefficient (PPTC) resistor considering current limit and time to trip variation with temperature for PSPICE simulation. [PDF]
Fundamental principle of PPTC.
Proposed behavior model for PPTC.
Course: Optimal Estimation and System Modeling (Master)
Lecturer: Prof. Xiaomin Wang
Goal: The Kalman filter and multisensor data fusion play a significant role in parameter estimation in engineering. This project was to develop a vivid and interactive Graphical User Interface (GUI) for engineers to observe the experimental results of Kalman filter and the effect of data fusion for multiple sensors. [PDF] (Chinese Version)
GUI for Kalman filter & data fusion.
Data fusion results.
Course: Circuit Design for Biomedical Implants (Master)
Lecturer: Prof. Guoxing Wang
Goal: Due to the straightforward mechanism, low power consumption, and fairly fast sampling rate, Successive Approximation Register (SAR) ADC has become one of the most popular ADC research topics in recent years. This project was to figure out the power consumption difference for three types of switching sequences in DAC: common voltage down switching sequence, common voltage back switching sequence, and common voltage fixed switching sequence. [PDF] (Chinese Version)
DAC structure for SAR ADC.
Power consumption comparison for different switching methods.
Course: Advanced Topics on Analog Mixed-Mode Signal Circuit Design (Bachelor)
Lecturer: Prof. Mohamad Sawan
Goal: Bio-medical electronics have made great progress in the past decade. Data converter plays an important role in the whole system, which stands for the bridge between analog and digital domain. In this work, a discrete-time sigma-delta modulator was presented with low power consumption and sufficient resolution in purpose of ECG signal sampling for pacemaker application. [PDF]
Bulk-driven OTA design.
Power spectral density (PSD) for the system.
Course: Computer Organization and Embedded System (Bachelor)
Lecturer: Prof. Jiang Jiang
Goal: Build a processor using MIPS instruction set with a 5-stage pipeline architecture in Verilog considering branch prediction. [PDF] (Chinese Version)
MIPS Architecture.
MIPS Instruction Set.


Troubleshooting¶
Document any troubleshooting steps for common issues related to the product or service described in the guide. Troubleshooting information typically describes an issue, its symptoms, the environment, and the possible causes, and provides suggestions for recovering. As such, a troubleshooting topic can contain almost any structure, from paragraphs, bullet lists, and numbered lists, to sections, tables, and figures.
If you have many troubleshooting tips, create separate sections with descriptive headings. You can also create separate child files under a parent “Troubleshooting” topic.
Following is an example introductory sentence:
If you encounter issues when working with <PRODUCT NAME>, use the information in this section to help you troubleshoot.
For an example of a troubleshooting topic that describes many issues, see Troubleshooting (example of several issues). For an example of a topic that describes only one issue, see and Troubleshooting (example of one issue).


Good Day, I wish to introduce myself to you. I am Peter Kok a top Sudanese Goverment official who opposed the war in Dalfour in my country Sudan.Due to my oppostion to the war, the goverment of my country has been persecuting me and my family.Consequently my wife,children and I managed to enter a red cross airplane that was evacuating foreigners and we are presently in Cape Town, South Africa. We wish to invest in properties in your country with your assistance and cooperation.If you are in a good position to help my family, please send an e-mail to the e-mail address below indicating your desire to help my family invest this funds in your country. best regards and hope to meet you soon. God bless, Peter Kok E-mail:as77agl@aley.net


Duration
15 minutes
Goals
The primary goal of this lab will be to populate the Table Views you created in the first exercise with data. We will work with both of the screens to show both of the mainstream techniques for supplying data to a Table View.
Required assets
There are some additional source and data files contained in the Exercise 2 folder as well as a completed version of the exercise if you'd like to compare your solution when you are finished. If you did not complete the first exercise, you can use the Completed project located in the Exercise 1 folder.
Challenge
You will be continuing from the prior exercise. Here are the high-level steps for this exercise. Use these to work through the lab and refer to the step-by-step instructions that follow for any additional guidance you need.
- Add the data which will drive the application. There is an EmailServer.cs source file and a words.txt data file which need to be added to your project. Place the data file into the Resources folder.
-
The EmailServer.cs class is a simple data generator that "fakes" an email server. It has an
Email
property which provides anIList<EmailItem>
that you will use to populate the Table View. EachEmailItem
has aSubject
property which we will use as the text. -
You will implement the data source in a
UITableViewSource
as well as in yourUITableViewController
class to try out both approaches. -
Implement the
RowsInSection
method to return the number of emails in the list. Code theGetCell
method to create aUITableViewCell
, populate theTextLabel
and return the created cell.
Steps
Below are the step-by-step instructions to implement the exercise.
Add the data to the application
There are two files in the Exercise 2 folder - EmailServer.cs and words.txt which need to be added to the project.
- Let's start with words.txt, this is just a data file with a variety of words in it used to generate email text. It needs to be placed into the Resources folder of our application. Right click on the Resources folder and select Add > Add Files.
- Navigate to the Exercise 2 folder and select words.txt. If you are using Visual Studio for Mac, select "Copy" when prompted; Visual Studio on Windows does the correct action by default.
- Make sure the added file has a Build Action of "Bundle Resource". In Visual Studio on Windows, check the Build Action for the file in the properties page. In Visual Studio for Mac, right-click the file (or click the gear next to it) and select Build Action from the menu.
- Add the EmailServer.cs file to the root of the project. The build action will be "Compile" (and should be set by default).
Using the UITableViewController to populate a TableView
In this part, we will use the EmailServer
and override methods in our UITableViewController
to provide data for the Table View. We'll start here because it's the initial view controller, later we'll switch to our code-behind version.
- Open the TableViewController.cs source file - this is the file we created from the designer in the first exercise. This should be the initial view controller if you did all the instructions from that first exercise. If not, make sure to set it to be the starting screen.
-
Notice that the view controller derives from
UITableViewController
- this will allow us to implement the data-source methods directly in this one class. -
Add a new
EmailServer
field to the class. Name itemailServer
. Initialize it with a new server object. -
Next, let's implement the
RowsInSection
method - this is a virtual method of theUITableViewController
class. It should return the number of emails available (emailServer.Email.Count
). -
Next, implement the
GetCell
method - again, this is just a virtual override. You will need to perform the following steps:-
Create a new
UITableViewCell
to represent the row visually. You can passCGRect.Empty
to the constructor as it will be sized automatically by the Table View. -
Find the proper
EmailItem
in theEmail
array - use the passedNSIndex
to get the correct row. -
Populate the
TextLabel.Text
using theSubject
from the email. - Return the created cell.
-
Create a new
- Run the application to see the results. If you don't see any data, make sure the proper screen is selected as the initial view controller.
Using UITableViewSource to populate a TableView
In this second part, we will use the same email list along with a custom UITableViewSource
to provide data for our Table View in code behind.
- Open the original View Controller where you created the Table View in code. In the completed lab, this is named ViewController.cs but it might have a different name in your project.
-
We need to create a new class that derives from
UITableViewSource
. You can place this class into its own file, or make it a nested class of the view controller where it is used - you will see this approach done quite often in sample code. Name the class "EmailServerDataSource". -
Inside your new class, instantiate a new
EmailServer
and implement theRowsInSection
andGetCell
method just as you did earlier. In fact, you can just copy/paste the implementation into this class, just make sure to add any missing namespaces such asFoundation
andCoreGraphics
. - Add a field to the View Controller to hold your data source.
-
In the
ViewDidLoad
override, create the data source and assign it to theTableView.Source
property, as well as your field. - Finally, before you run the app to test it, open the Main.storyboard and change the initial view controller back to the first screen (move the arrow from the currently selected screen to the other one).
-
Run the application and verify the results, you can change the
tableView.BackgroundColor
toUIColor.Yellow
(or some other color) just to make sure you are looking at the right screen - this color will be used to fill the empty spaces.
Summary
In this exercise, you have populated two UITableView
instances with data using the two most popular methods - UITableViewController
and UITableViewSource
.


Florida cops seek hit-and-run suspect who struck cyclist on video
by Stephen SoracePolice in Florida were searching for a suspected hit-and-run driver seen on video striking a cyclist, leaving him with broken bones, and driving away before police arrived at the scene earlier this month.
The cyclist was crossing the street on the Pinellas County Trail in St. Petersburg on Nov. 1, when a white Chrysler 200 sedan failed to stop and rammed the man, St. Pete police wrote on Facebook.
The cyclist suffered broken bones and other non-life threatening injuries.
HIT-AND-RUN DRIVER PLOWS INTO GROUP OF KIDS IN FRONT OF MASSACHUSETTS HOME, SPEEDS AWAY
“This wrist is just fractured, not bad, maybe a month or so to heal,” the man told Spectrum News.
The driver stopped to move the bike off the road but then drove away, police said. However, the man told the station that the driver also asked if he was OK before leaving.
“I said, 'Man, don't worry about it. I'm just lucky to be alive. Don't worry about it, it's going to be okay,'” he said.
Street video showed the cyclist riding through a stop sign and into a crosswalk. The crosswalk included yield signs but it was unclear whether they were flashing at the time of the crash, WWSB-TV reported.
The man continued pedaling, appearing to throw up his hands as none of the cars in either lane stopped. Another white sedan sped through the crosswalk and missed the man, but the Chrysler followed behind and made direct contact, sending him hurtling through the air.
CLICK HERE FOR THE FOX NEWS APP
Police and the injured man have asked for the driver to come forward.
It was unclear whether police were pursuing charges against the driver.


|
JNIPort for Dolphin Smalltalk |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
JNIPort |
Introduction(This page is just an introduction, the complete documentation for JNIPort is here.) JNIPort allows Java code to be invoked from Dolphin Smalltalk. It acts as a bridge between the world of Smalltalk objects and a JVM where Java code is executing. What's the point? Well, with JNIPort you can:
This version of JNIPort is known not to work with the recently released Dolphin 6. JNIPort is very roughly comparable to the facilities built into Dolphin for interacting with COM and Active-X objects. There are some big differences, though, mostly caused by the differences between the Java object model and COM. As with Dolphin's COM wrappers, you talk to a Java object via a Smalltalk object that acts as a proxy for it. You can call Java methods via the proxy using a lowish-level API where you have to tell the proxy what the method name is, what the argument types are, and so on. Alternatively you can use a higher-level of wrapper methods that are either statically generated (as by the Dolphin Active-X Wizard), or created dynamically. There are significant differences from the way that Dolphin wraps COM too. One is that Java has type-precise introspection (and no equivalent of VB!), so there's much less “guesswork” involved in generating wrapper methods. Another is that Java classes are represented explicitly by wrapper objects (called class statics), so each proxy for a Java instance has both a Smalltalk class and a reference to the (shared) class static. The Smalltalk class defines the wrapper methods for calling the Java object's methods, and accessing its fields. The class static is the single member of a different Smalltalk class that has methods for using the “static” methods and fields of the Java class. The class static also has methods corresponding to the Java class's constructors, so it acts as a factory for new instances. (That means that from the point of view of a JNIPort programmer, Java classes really are objects!) A DamperA few warnings before you start to expect too much:
DocumentationThe software is complex enough to need documentation. I suggest that you start by looking at the overview, which also includes a very simple example, and possibly this walkthrough of installing and configuring JNIPort. You might also like to look at some more complete examples. I cannot, in honesty, fail to recommend a look at the problems and limitations of JNIPort. The complete documentation is listed here. Packages
|
Copyright © Chris Uppal, 2003-2005
Java, JNI (probably), JVM (possibly), and God knows what else, are trademarks of Sun Microsystems, Inc.


| DOSE: |
|
insufflated |
2C-T-7 |
(powder / crystals) |
ive taken 2ct7, mainly nasaly (for reasons of economy) on a number of occasions and have noticed that the visuals dont completely go away.... what ive noticed the most is that when you are relaxed and aware the air seems to move, i wonder sometimes if your brain is storing this drug and what other effects it may have.
some people may consider this positive, others negative. to be honest i dont know what to make of it but bear it in mind when you decide to try some yourself.
i would not recomend snorting 2ct7 as it is not only painfull but dangerous. i always experience severe nausea and ive seen people go into delirium when they come up. i think it could be easy to suffocate on your own vomit with this stuff. I think that the manufacturers should start supplying this stuff in a form that cannot be snorted to minimise health risks.
[erowid note: 2CT7 is not sold for human consumption in the United States, although it has been sold in Europe in pills under the brand Blue Mystic.
If sold as a recreational psychoactive, 2C-T-7 would likely fall under both federal and state Analogue Acts, so selling it in any form designed to reduce risks of ingestion is more illegal in the United States than selling pure chemicals to be used in labs.]
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


| Class | Description |
|---|---|
| LossBinaryXENT |
Binary cross entropy loss function
https://en.wikipedia.org/wiki/Cross_entropy#Cross-entropy_error_function_and_logistic_regression
Labels are assumed to take values 0 or 1
|
| LossCosineProximity |
Created by susaneraly on 9/9/16.
|
| LossFMeasure |
F–measure loss function is a loss function design for training on imbalanced datasets.
|
| LossHinge |
Created by susaneraly on 8/15/16.
|
| LossKLD |
Kullback Leibler Divergence loss function
|
| LossL1 |
L1 loss function: i.e., sum of absolute errors, L = sum_i abs(predicted_i - actual_i)
See also
LossMAE for a mathematically similar loss function (MAE has division by N, where N is output size) |
| LossL2 |
L2 loss function: i.e., sum of squared errors, L = sum_i (actual_i - predicted)^2
The L2 loss function is the square of the L2 norm of the difference between actual and predicted.
|
| LossMAE |
Mean absolute error loss function: L = 1/N sum_i abs(predicted_i - actual_i)
See also
LossL1 for a mathematically similar loss function (LossL1 does not have division by N, where N is output size) |
| LossMAPE |
Created by susaneraly on 8/15/16.
|
| LossMCXENT |
Multi-Class Cross Entropy loss function:
L = sum_i actual_i * log( predicted_i ) Note that labels are represented by a one-hot distribution See LossSparseMCXENT for the equivalent but with labels as integers instead |
| LossMixtureDensity |
This is a cost function associated with a mixture-density network.
|
| LossMixtureDensity.Builder | |
| LossMixtureDensity.MixtureDensityComponents |
This class is a data holder for the mixture density
components for convenient manipulation.
|
| LossMSE |
Mean Squared Error loss function: L = 1/N sum_i (actual_i - predicted)^2
See also
LossL2 for a mathematically similar loss function (LossL2 does not have division by N, where N is output size) |
| LossMSLE |
Mean Squared Logarithmic Error loss function: L = 1/N sum_i (log(1+predicted_i) - log(1+actual_i))^2
|
| LossMultiLabel |
Multi-Label-Loss Function, maybe more commonly known as BPMLL
This Loss function requires that the Labels are given as a multi-hot encoded vector.
|
| LossNegativeLogLikelihood |
Negative log likelihood loss function
In practice, this is implemented as an alias for
LossMCXENT due to the mathematical equivalence |
| LossPoisson |
Created by susaneraly on 9/9/16.
|
| LossSparseMCXENT |
Sparse Multi-Class Cross Entropy loss function:
L = sum_i actual_i * log( predicted_i ) Note: this is the same loss function as LossMCXENT , the only difference being the format for the labels -
this loss function uses integer indices (zero indexed) for the loss array, whereas LossMCXENT uses the equivalent
one-hot representation |
| LossSquaredHinge |
Created by susaneraly on 9/9/16.
|
| LossWasserstein |
Wasserstein loss function, which calculates the Wasserstein distance, also known as earthmover's distance.
|
Copyright © 2020. All rights reserved.


Mock Mock Mock
Mocking-Libraries
Dependencies
I only want to test/run
this small part
Test Doubles
(We do only Mocks for now)
Tests are Confusing at some point
Your design influences your tests
Your tests influences your design
PHPUnit
PHPUnit
<?php
$mockFw = new PHPUnit_Framework_MockObject_Generator();
$math = $mockFw->createMock(MathInterface::class);
$math->expects(new PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce())
->method('sum')
->with(1, 1)
->willReturn(2);
$math->__phpunit_verify();
Prophecy
Prophecy
<?php
$mockFw = new Prophet();
$prophecy = $mockFw->prophesize(MathInterface::class);
$prophecy->sum(1, 1)
->willReturn(2)
->shouldBeCalledTimes(1);
$math = $prophecy->reveal();
Mockery
Mockery
<?php
$math = Mockery::mock(MathInterface::class);
$math->shouldReceive('sum')
->once()
->with(1, 1)
->andReturn(2);
Mockery::close();
vfsStream
vfsStream
<?php
baseDir = vfsStream::setup('dir');
mkdir(vfsStream::url('dir') . '/' . 'myDir');
bovigo/callmap
bovigo/callmap
<?php
$math = NewInstance::of(MathInterface::class)
->returns(['sum' => 2]);
// ...
verify($math, 'sum')->wasCalledOnce();
Phake
Phake
<?php
$math = Phake::mock(MathInterface::class);
Phake::when($math)->sum(1, 1)->thenReturn(2);
// ...
Phake::verify($math, Phake::times(1))->sum(1, 1);
PHP-Mock
<?php
$builder = new MockBuilder();
$builder->setNamespace(__NAMESPACE__)
->setName('time')
->setFunction(function () {
return 0;
}
);
$stub = $builder->build();
$stub->enable();
time();
AspectMock
AspectMock
<?php
$mathMock = Test::double(Math::class, ['sum' => 0]);
$math = new Math();
$testify->assertSame(0, $math->sum(1, 2));
$mathMock->verifyInvokedOnce('sum', [1, 2]);


In my case, I prefer cold weather because I'm from El Salvador the average weather is 25°C, and also we don't have a winter we only have two season summer season that always is over 28°C and our second season or cold weather are raining days, and that is like 3 or 4 months where the temperature can drop to 15°C that is a really cold day in El Salvador.
This image shows the temperature per month of the capital of El Salvador.
Well as you can see we are always sweating which is a big problem that generates a bad smell. Further, you always get dehydrated.
What I like about cold weather is that are easier to pass them than hot weather you only need to have a heated house and a big jacket, sweater or coat.
In my case, I prefer hot weather because I'm from Canada and it's a really cold place in which we only have 3 or 4 months of summer and the other months we have low temperature.
The cold generates psychological problems because you can not go out also the snow burn the skin and generates more problems than the hot weather.
Also, the hot weather gives you a vacation feeling that relaxes the people also you can go out when you want and visit the beach and you can visit your family, basically, the hot weather helps you to be more sociable.
In summation, all people do not like their country weather.


Popular Areas in sonic foundry mp3 plugin v2.0 crack
25 - new cracks - NewCracks.net
Sonic Foundry Sound Forge 5 build 117 FX Plugins Pack Crack :: 18 Kb Sonic Foundry Sound Forge 5 MP3 Plug-In v2.0 build 288 :: 2 Kb Sonic Foundry Sound .
http://www.newcracks.net/s25.html
Desafio - A maior lista de programas para mixagem e masterização ...
Steinberg Nuendo v2.0 CRACK . Sonic Foundry - MP3 Plugin v2.0 KEYGEN ONLY . Sonic Foundry - MainConcept MPEG 1.2 Plugin v1.0 - Keymaker Only .
http://forum.cifraclub.com.br/forum/9/188032/
VALPARAISO FREE DOWNLOADS
Offline Explorer Pro v2.0.728 cracked .EXE . Cool Edit Pro 2000 MP3 Plug-in V1.1. Download . Sonic Foundry Noise Reduction DirectX Plug-In V2.0 .
http://valparaisozac.webcindario.com/downloads.htm
bir sürü Serial :) - Hack - TurkHackTeam.net/org - Güvenlik & Hack ...
May 18, 2012 . Serial ve Crack Burada Programlar?n Patch ve Cracklar?n? Bulabilirsiniz . . CakeWalk Pyro MP3 CD Maker v1.5 Serial : CPWY1.50-009332 CakeWalk . Sonic Foundry Siren Jukebox v2.0 Serial : ZONETEAMROCKS(C)2001 . Sound Forge v4.5 / Disco 6 Xfx 1 Plug-In Pack Serial :<PHONE_NUMBER>-569558 .
http://www.turkhackteam.net/serial-ve-crack/695516-bir-suru-serial.html
Download Sonic Foundry ACID PRO v2.0 serial by RHA
Jan 11, 2011 . Download Sonic Foundry ACID PRO v2.0 serial by RHA at our cracksguru database. Find lots of other cracks, serial numbers, keygens here. . 76-RZLQ1Z- YEBPJQ-4ECDN3 ·· ·· ·· ·· MP3 Plug-In ·· ·· Serial .
http://www.cracksguru.com/data/Sonic_Foundry_ACID_PRO_v2.0_serial_by_RHA-bee12bd7de.html
6 - Serials & keys - unlocks the world - Serials.ws
Softwarenetz Logbook2.v2.03 :: 2012-09-28 :: 0. Softwarenetz . SoftX HTTP Debugger Pro v2.4 :: 2008-06-11 :: 0 SoftX HTTP . Sonic Foundry MP3 Plug-In 2.0 :: 2006-08-13 :: 10 . Sothink SWF Easy 6.6.546 + Crack :: 2012-11-23 :: 66 .
http://www.serials.ws/all/?l=s&pn=6


Price of Glory Rated [PG-13] Starring Jimmy Smits and John Seda; Paul Rodriguez and Ron Perlman Screenplay by Phil Berger Directed by Carlos Avila website: www.priceofglory.com
Price of Glory may try to look like another kind of Rocky, but it's a different kind of story -- as boxing movies never really are about "pure" boxing. This is a father-son story hip deep in broken dreams, miscommunication and sibling rivalry. At its center is Arturo Ortega (Jimmy Smits), once upon a time screwed by a manager and pummeled into a pulp by a better fighter than he. With his wife, Rita (Maria Del Mar), he is raising three young sons. Two will fight. One will go to college, or so Arturo plans. We all know what happens to the best laid plans . . ..
While the film moves through the Silver Gloves years quickly, the very idea of putting single digit kidlets in the ring is brutal and unappealing and downright unpleasant to sit through. But a boxer has got to learn somewhere and this film, written by former NY Times sports columnist Phil Berger, doesn't shy away from detailing the years of training necessary to lead to the point where a man can fight to be a champion. More important, these years establish the connections between parent and child, brother and brother, that will mark their adult lives.
Sonny (Jon Seda) is the eldest son. He has the power but not the ambition that his father wants to see. While he wants to be champion, he also wants a wife and an outside life. In short, he wants some control, which papa isn't ready to give. The middle son is Jimmy (Clifton Collins Jr.), who's fast and fights furiously but doesn't think his way through his bouts. He's incredibly jealous of the attention that Sonny gets -- and Sonny gets it because Arturo knows that Jimmy will never be a champion. With two substantial paychecks in the bank, Arturo tells Jimmy to hang it up. Problem is, Jimmy doesn't want to retire. The littlest kidlet is Johnny (Ernesto Hernandez), "destined" for college but possessing the spark that could make him the greatest champion of all. The money men see the future in Johnny and while Arturo negotiates with Nick Everson (Ron Perlman) across the years, an acrimony builds between the two men that will lead to disaster, in the form of Everson's right hand man Pepe (Paul Rodriguez).
All three sons will enter the ring. All three will fight in the same weight class. While your brain, if it's anything like mine, waits for the inevitable clash between brothers (whether it's in the ring or outside of it), said inevitable comes about in a surprising manner. That four strong character stories can play out without infringing on one another is a good thing. This flick is a good sit.
On average, a first run movie ticket will run you Eight Bucks. Were Cranky able to set his own price to Price of Glory, he would have paid...
$5.50
Price of Glory allows you the satisfaction of watching the "good guy" win (well, duh) but doesn't provide the same elation found at the ends of Rocky I and II. As a story of a family shredded by ambition and misfortune, that rebuilds itself and survives despite all that happens, it works very well.
Cranky Critic® is a Registered Trademark of, and Copyright © 2000 by, Chuck Schwartz. All Rights Reserved. Cranky on the web at www.crankycritic.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


--- # Feel free to add content and custom Front Matter to this file. # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults layout: home ---
by Sergiu Suciu
{{post.description}}


|
Bug-reproducer Assistant Python kernel
1.0
Código Python de kernel del Bug-reproducer Assistant
|
Classes | |
| class | CodeRegionEvents |
Public Member Functions | |
| def | __init__ |
| def | parseLine |
| def | enterCodeRegion |
| def | exitCodeRegion |
| def | getRegionName |
| def | clearRegionStuff |
| def | parseLine_ |
Public Attributes | |
| language_ | |
| line_ | |
| nextLine_ |
It processes code regions. It identifies them, calculates their name, and discovers when the code enters the region and when it exits the latter.
| def bug_reproducer_assistant::code_regions_parsing::CodeRegionIdentifier::__init__ | ( | self, | |
| language | |||
| ) |
| self | The CodeRegionIdentifier instance to construct. |
| language | The program's programming language. Constructor. |
Reimplemented in bug_reproducer_assistant::code_regions_parsing::ClassesIdentifier, bug_reproducer_assistant::code_regions_parsing::FunctionsIdentifier, bug_reproducer_assistant::code_regions_parsing::BugReproducerAssistantIdentifier, and bug_reproducer_assistant::code_regions_parsing::AnnotationsIdentifier.
| def bug_reproducer_assistant::code_regions_parsing::CodeRegionIdentifier::clearRegionStuff | ( | self | ) |
| self | The CodeRegionIdentifier instance. Clear the current region information, to be prepared to discover the next. |
Reimplemented in bug_reproducer_assistant::code_regions_parsing::ComplexRegionIdentifier.
| def bug_reproducer_assistant::code_regions_parsing::CodeRegionIdentifier::enterCodeRegion | ( | self | ) |
| self | The CodeRegionIdentifier instance. |
It tells whether or not this line enters in a code region.
Reimplemented in bug_reproducer_assistant::code_regions_parsing::ComplexRegionIdentifier, and bug_reproducer_assistant::code_regions_parsing::BetweenMacrosRegionIdentifier.
| def bug_reproducer_assistant::code_regions_parsing::CodeRegionIdentifier::exitCodeRegion | ( | self | ) |
| self | The CodeRegionIdentifier instance. |
It tells whether or not this line exits a code region.
Reimplemented in bug_reproducer_assistant::code_regions_parsing::ComplexRegionIdentifier, and bug_reproducer_assistant::code_regions_parsing::BetweenMacrosRegionIdentifier.
| def bug_reproducer_assistant::code_regions_parsing::CodeRegionIdentifier::getRegionName | ( | self | ) |
| self | The CodeRegionIdentifier instance. |
Return this region name.
Reimplemented in bug_reproducer_assistant::code_regions_parsing::ComplexRegionIdentifier.
| def bug_reproducer_assistant::code_regions_parsing::CodeRegionIdentifier::parseLine | ( | self, | |
| line, | |||
| nextLine | |||
| ) |
| self | The CodeRegionIdentifier instance. |
| line | The current source code line being processed. |
| nextLine | The next code line (in Python, this affects the current line parsing, because it may indicate a code region enter or exit). Parse a line ("spying" nextLine, if necessary). |
| def bug_reproducer_assistant::code_regions_parsing::CodeRegionIdentifier::parseLine_ | ( | self, | |
| line, | |||
| nextLine | |||
| ) |
| self | The CodeRegionIdentifier instance. |
| line | The current source code line being processed. |
| nextLine | The next code line (in Python, this affects the current line parsing, because it may indicate a code region enter or exit). Template method for the derivatives to implement line parsing. This parsing calculates the data for functions like "getRegionName()" to work properly. |
Reimplemented in bug_reproducer_assistant::code_regions_parsing::ComplexRegionIdentifier.


Elixr
Login
Managing health records is now easy
Elixr helps you to track & analyze all of your patients' records so you can focus on doing what matters most - providing high quality health care.
Hospital Login
Login


--- layout: page status: publish published: true title: Conservation Districts and Zones author: display_name: Rick Kelson login: rkelson email<EMAIL_ADDRESS>url: '' author_login: rkelson author_email<EMAIL_ADDRESS>wordpress_id: 2550 wordpress_url: http://gis.utah.gov/?page_id=2550 date: '2011-09-19 09:35:26 -0600' date_gmt: '2011-09-19 15:35:26 -0600' categories: [] tags: - sgid - Data - utah - gis - map - mapping - dataset - download - agrc - layer - shapefile - geodatabase - metadata - shp - gdb - kml - lyr - digital - geographic - information - database - state - statewide ---
Data Type: GIS Data Layer
Steward(s): AGRC & USDA-NRCS
Abstract:
This dataset contains GIS mapping data pertaining to the soil conservation district and zone boundaries created by the US Department of Agriculture, National Resource Conservation Service.
Data Content:
The following data is available for download:
Questions can be direction to AGRC<PHONE_NUMBER>) at AGRC.
Other links for this dataset:
Recent update summaries:
2000?
There are no constraints or warranties with regard to the use of this dataset. Users are encouraged to attribute content to: State of Utah,
The dataset is maintained by the AGRC in cooperation with US Department of Agriculture, National Resource Conservation Service.
Questions can be direction to AGRC<PHONE_NUMBER>) at AGRC.
Other links for this dataset:
Recent update summaries:
2000?


HFSharedMemoryByteSlice is a subclass of HFByteSlice that represents a portion of data from memory, e.g. typed or pasted in by the user. The term "shared" refers to the ability for mutiple HFSharedMemoryByteSlices to reference the same NSData; it does not mean that the data is in shared memory or shared between processes.
Instances of HFSharedMemoryByteSlice are immutable (like all instances of HFByteSlice). However, to support efficient typing, the backing data is an instance of NSMutableData that may be grown. A referenced range of the NSMutableData will never have its contents changed, but it may be allowed to grow larger, so that the data does not have to be copied merely to append a single byte. This is implemented by overriding the -byteSliceByAppendingSlice: method of HFByteSlice.


- This chart loads session data by sequence, most recent on right
- The BAR shape shows energy usage by session is labeled by color
- GREEN represents charge not in use by minutes and percentage. Label is left side.
- GREY represents charge in use by minutes and percentage. Label is left side.
- The line shape shows amount charged by sessions is labeled by blue color
- Tips
- When both bar and line shapes are zero, a session started and NO energy was charged and amount charged.
- When bar shapes are NOT zero and line is zero, a session started and engery was charged and amount was not charged.


Currencies
Click on a price for trends
USD
$
GBP
£
EUR
€
About
Bitcoin Tracker takes the current price of Bitcoin for the dollar, pound, and euro. It will also automatically update every minute.
If you want trends, click on the boxes to show a chart detailing the past trends of bitcoin.


val offset: Int
The start position of the sequence within the byte array.
offset - The start position of the sequence within the byte array.
offset


Gecode::REG::Exp Class Reference
List of all members.
Detailed Description
Implementation of the actual expression tree.
Definition at line 56 of file reg.cc.
Member Enumeration Documentation
Type of regular expression.
- Enumerator:
-
| ET_SYMBOL |
|
| ET_CONC |
|
| ET_OR |
|
| ET_STAR |
|
Definition at line 63 of file reg.cc.
Member Function Documentation
| void Gecode::REG::Exp::inc |
( |
void |
|
) |
[inline] |
| void Gecode::REG::Exp::dec |
( |
void |
|
) |
[inline] |
| unsigned int Gecode::REG::Exp::n_pos |
( |
void |
|
) |
const [inline] |
| std::ostream & Gecode::REG::Exp::print |
( |
std::ostream & |
os |
) |
const |
| void * Gecode::REG::Exp::operator new |
( |
size_t |
s |
) |
[inline, static] |
| void Gecode::REG::Exp::operator delete |
( |
void * |
|
) |
[inline, static] |
Member Data Documentation
The documentation for this class was generated from the following file:


EllieWare
RobotWare for SpaceClaim
What's new in 'RobotWare for SpaceClaim':
<IP_ADDRESS>
Features
- integrated Specification Manager in a SpaceClaim panel
- added favourites for most recently used Specifications
Bug Fixes
- none
<IP_ADDRESS>
Features
- 'FaceArea' sample RobotWare extension plugin
- user registry key for shared Specifications in a Workgroup folder
Bug Fixes
- various related to shared Specifications in a Workgroup
<IP_ADDRESS>
Features
- initial support for shared Specifications in a Workgroup
Bug Fixes
- missing help file for RobotWare extension plugins
- loading/saving of batch related parameters
<IP_ADDRESS>