Explanation of the Asset Configuration Parameters
The asset configuration parameters affect [test connectivity] and some other actions of the application. Below are the explanation and usage of all these parameters. The parameters related to test connectivity action are Server URL, Verify server certificate, Client ID, and Client Secret.
-
Server URL: The URL used to connect with the Cofense Triage server. Example: https://platform.cofensetriage.com
-
Verify server certificate: Validate server certificate.
-
Client ID: Client ID.
-
Client Secret: Client Secret.
-
Data to be ingested: The type of data that is to be ingested. The following are the valid values:
- reports
- threat_indicators
-
Threat indicator type: The type of threat indicators to retrieve. The default value is "All" which retrieves all types of threat indicators. The following are the valid values that the parameter can take:
- All
- Header
- Hostname
- URL
- MD5
- SHA256
-
Threat indicator level: The level of the threat indicators to retrieve. The default value is "All" which retrieves all levels of threat indicators. The following are the valid values that the parameter can take:
- All
- Malicious
- Suspicious
- Benign
-
Report location: The location of the reports to retrieve. The default value is "All" which retrieves reports from all the locations. The following are the valid values that the parameter can take:
- All
- Inbox
- Reconnaissance
- Processed
-
Match priority: The highest priority of a rule matching the reported email.
-
Category ID: The category ID of the report.
-
Tags: This parameter allows filtering the reports based on the list of comma-separated tags. If the tag value contains a comma, enclose it in double-quotes, for example: tag1,"test,tag",tag2. If a comma-separated list is provided, reports matching any of the tags from the provided list will be retrieved.
-
Categorization tags: This parameter allows filtering the reports based on the list of comma-separated categorization tags. If a comma-separated list is provided, reports matching any of the tags from the provided list will be retrieved.
-
Ingest subfields: Whether or not to ingest the subfields of the selected data. If this parameter is set to true, the data and all the resources related to the data that are present in the relationships will be ingested.
-
Category ID to severity mapping: The mapping in JSON format between the category ID of the report and the Phantom container severity. If no value is provided, then the default mapping will be used and, if the category ID isn't present in the default mapping the severity will be set to "Low". If a value is provided, the combination of the provided value and the default mapping will be used to decide the severity. The default mapping is: {"High": ["4"], "Medium": ["3"], "Low": ["1", "2", "5"]}. Example value for the parameter is: {"High": ["8", "9"], "Medium": ["7"], "Low": ["6"]}
-
Cef mapping: This parameter is a JSON dictionary represented as a serialized JSON string. Each key in the dictionary is a potential key name in an artifact that is to be renamed to the value. For example, if the cef_mapping is {"website":"requestURL"} your artifact will have requestURL cef field in place of website cef field. This parameter will be taken into consideration only during ingestion.
-
Start date: The initial start date and time of the ingestion. This parameter retrieves the data that was updated on or after the provided date. It will be taken into consideration during the poll now and the first run of scheduled/interval polling.
-
Sort: This parameter allows sorting the data based on the 'updated_at' date. The default value is "oldest_first" which sorts the results in the oldest first order. The following are the valid values that the parameter can take:
- oldest_first
- latest_first
-
Update state after: This parameter saves the context after ingestion of every provided number of containers. This parameter is only used for scheduled/interval polling and only if the sort parameter value is "oldest_first".
-
Max results: Maximum number of results to ingest. If not provided all the data will be ingested.
Explanation of the Actions' Parameters
Test Connectivity (Action Workflow Details)
- This action will test the connectivity of the Phantom server to the Cofense Triage instance by making an initial API call using the provided asset configuration parameters. This action can be used to generate a new token.
- The action validates the provided asset configuration parameters. Based on the API call response, the appropriate success and failure message will be displayed when the action gets executed.
Get reports
- Action Parameter: Location
- This parameter allows filtering the reports based on the location. The following are the valid values that the parameter can take:
- All
- Inbox
- Reconnaissance
- Processed
- Action Parameter: From address
- This parameter allows filtering the reports based on the sender's email address of the reported email.
- Action Parameter: Reporter's email
- This parameter allows filtering the reports based on the reporter's email address of the reported email.
- Action Parameter: Subject
- This parameter allows filtering the reports with the subject containing a specific string. All the reports containing the provided value in the subject will be retrieved.
- Action Parameter: Match priority
- This parameter allows filtering the reports based on the highest priority of a rule matching the reported email.
- Action Parameter: Category ID
- This parameter allows filtering the reports based on the category ID of the report.
- Action Parameter: Start date
- This parameter allows filtering the reports updated on or after the provided date.
- Action Parameter: End date
- This parameter allows filtering the reports updated before the provided date.
- Action Parameter: Tags
- This parameter allows filtering the reports based on the list of comma-separated tags. If the tag value contains a comma, enclose it in double-quotes, for example: tag1,"test,tag",tag2. If a comma-separated list is provided, reports matching any of the tags from the provided list will be retrieved.
- Action Parameter: Categorization tags
- This parameter allows filtering the reports based on the list of comma-separated categorization tags. If a comma-separated list is provided, reports matching any of the tags from the provided list will be retrieved.
- Action Parameter: Sort
- This parameter allows sorting the reports based on the 'updated_at' date of the report. By default, it will sort in the oldest first order. The following are the valid values that the parameter can take:
- oldest_first
- latest_first
- Action Parameter: Ingest report
- This parameter allows the ingestion of the report into the container.
- Action Parameter: Ingest subfields
- This parameter allows the ingestion of the fields relating to the report into the container. If this parameter is set to true, the report and all the resources related to the report that are present in the relationships together will get ingested into the container.
- Action Parameter: Label
- This parameter allows the ingestion of data into the container(s) with the provided label. The label must be valid or the action will fail. Required if 'ingest_report' or 'ingest_subfields' is set. This parameter will be taken into consideration only during ingestion.
- Action Parameter: Tenant
- This parameter allows the creation of container(s) for the provided tenant ID or tenant name. The tenant must be valid or the action will fail. Required if 'ingest_report' or 'ingest_subfields' is set. This parameter will be taken into consideration only during ingestion.
- Action Parameter: Cef mapping
- This parameter is a JSON dictionary represented as a serialized JSON string. Each key in the dictionary is a potential key name in an artifact that is to be renamed to the value. For example, if the cef_mapping is {"website":"requestURL"} your artifact will have requestURL cef field in place of website cef field. This parameter will be taken into consideration only during ingestion.
- Action Parameter: Max results
- Maximum number of results to return. If not provided all the data will be retrieved.
- Note - If no value is provided in any parameter, then all the records will be retrieved.
- Example:
- List all the reports present in Inbox containing “demo” word in the subject and having match priority equals 5 and is sent by<EMAIL_ADDRESS>- Location = Inbox
- Subject = Demo
- Match Priority = 5
- From Address =<EMAIL_ADDRESS>- List all the reports updated between 2020-09-23T08:31:58Z and 2020-09-29T09:00:00Z and sort them in oldest_first order.
- Start date = 2020-09-23T08:31:58Z
- End date = 2020-09-29T09:00:00Z
- Sort = oldest_first
- List the reports in the latest_first order.
Get report
- Action Parameter: Report ID
- The ID of the report to be retrieved.
- Action Parameter: Ingest report
- This parameter allows the ingestion of the report into the container.
- Action Parameter: Ingest subfields
- This parameter allows the ingestion of the fields relating to the report into the container. If this parameter is set to true, the report and all the resources related to the report that are present in the relationships together will get ingested into the container.
- Action Parameter: Label
- This parameter allows the ingestion of data into the container(s) with the provided label. The label must be valid or the action will fail. Required if 'ingest_report' or 'ingest_subfields' is set. This parameter will be taken into consideration only during ingestion.
- Action Parameter: Tenant
- This parameter allows the creation of container(s) for the provided tenant ID or tenant name. The tenant must be valid or the action will fail. Required if 'ingest_report' or 'ingest_subfields' is set. This parameter will be taken into consideration only during ingestion.
- Action Parameter: Cef mapping
- This parameter is a JSON dictionary represented as a serialized JSON string. Each key in the dictionary is a potential key name in an artifact that is to be renamed to the value. For example, if the cef_mapping is {"website":"requestURL"} your artifact will have requestURL cef field in place of website cef field. This parameter will be taken into consideration only during ingestion.
- Example:
- Fetch the report with ID equals 15.
Categorize report
- Action Parameter: Report ID
- This parameter is the ID of the report which the user wants to categorize.
- Action Parameter: Category ID
- This parameter is the ID of the category into which the user wants to categorize the report. Category ID is
either known by Cofense Triage users or it can be fetched from the output of Get categories action.
- Action Parameter: Category Name
- This parameter is the name of the category into which the user wants to categorize the report. This
parameter can be provided if the category ID is not known by Cofense Triage users.
- Action Parameter: Response ID
- This parameter is the ID of the response.
- Action Parameter: Categorization Tags
- This parameter allows the user to provide multiple tags to be given to the report while categorizing it.
It accepts a comma-separated list of tags.
- Note - If both category ID and category name are provided, then category ID will be given a higher priority.
- Example:
- Categorize the report having Report ID 5, with given category ID 1, and add categorization tag ‘test’.
- Report ID = 5
- Category ID = 1
- Categorization tags = test
- Categorize the report having Report ID 10, with given category ID 2 and add categorization tag ‘test tag’, also send a response using response template ID 2.
- Report ID = 10
- Category ID = 2
- Categorization tags = test tag
- Response ID = 2
Get reporters
- Action Parameter: VIP
- This parameter allows searching for the VIP reporters. If the value of the parameter is false, then all the reporters will be retrieved.
- Action Parameter: Reputation score
- This parameter allows searching for reporters having the provided reputation score. It allows a comma-separated list. If a comma-separated list is provided, then the reporters with any of the specified scores will be retrieved.
- Action Parameter: Email
- This parameter allows searching for the reporter with a specific email.
- Action Parameter: Sort
- This parameter allows sorting the reporters based on the ID. By default, it will sort in the oldest first order. The following are the valid values that the parameter can take:
- oldest_first
- latest_first
- Action Parameter: Max results
- Maximum number of results to return. If not provided, all the data will be retrieved.
- Note - If no value is provided in any parameter, then all the records will be retrieved.
- Example:
- List the latest 15 VIP reporters with a reputation score equals 15.
- VIP = true
- Reputation Score = 15
- Max results = 15
- Sort = latest_first
- Fetch the reporter with the email address<EMAIL_ADDRESS>Get reporter
- Action Parameter: Reporter ID
- This parameter is the ID of the reporter to fetch.
- Example:
- Fetch the reporter with the Reporter ID equals 10.
Get URLs
- Action Parameter: Risk score
- This parameter is the risk score of the URL.
- Action Parameter: Risk score operator
- This parameter is the operator to work with the risk score parameter. The default value is 'eq'.For example: if the risk score = 5 and the risk score operator = 'lt', then all the URLs having a risk score less than 5 will be retrieved. The following are the valid values that the parameter can take:
- eq
- not_eq
- lt
- lteq
- gt
- gteq
- Action Parameter: URL Value
- This parameter is the value of the URL to search for.
- Action Parameter: Start date
- This parameter allows filtering the URLs updated on or after the provided date.
- Action Parameter: End date
- This parameter allows filtering the URLs updated before the provided date.
- Action Parameter: Sort
- This parameter allows sorting the URLs based on the 'updated_at' date of the URL. By default, it will sort in the oldest first order. The following are the valid values that the parameter can take:
- oldest_first
- latest_first
- Action Parameter: Max results
- Maximum number of results to return. If not provided, all the data will be retrieved.
- Note - If no value is provided in any parameter, then all the records will be retrieved.
- Example:
- List all the URLs having a risk score equals 5 in the latest first order.
- Risk score ID = 5
- Risk score operator = eq
- Sort = latest_first
- List the URL having value equals 'https://testurl.com'.
- URL value = https://testurl.com
- List oldest 5 URLs that are updated between 2020-09-23T08:31:58Z and 2020-09-29T09:00:00Z.
- Start date = 2020-09-23T08:31:58Z
- End date = 2020-09-29T09:00:00Z
- Sort = oldest_first
- Max results = 5
Get url
- Action Parameter: URL ID
- This parameter is the ID of the URL to fetch.
- Example:
- Fetch the URL with URL ID equals 5.
Create response
- Action Parameter: Name
- This parameter specifies a short display name of the response sent to individuals when a report is categorized.
- Action Parameter: Description
- This parameter specifies the expanded name or description of the response.
- Action Parameter: Subject
- This parameter specifies the subject of the response. It supports template variables.
- Action Parameter: Body
- This parameter specifies the body of the email. It supports template variables.
- Action Parameter: To reporter
- This parameter specifies whether to add the reporter to the response recipient list (true) or not (false).
The default is true. Either 'to_reporter' or 'to_other', or both, must be enabled.
- Action Parameter: To other
- This parameter specifies whether to add the addresses specified in 'to_other_address' to the response recipient
list (true) or not (false). The default is false. If true, specify one or more values in 'to_other_address'.
Either to_reporter or 'to_other', or both, must be enabled.
- Action Parameter: To other address
- This parameter is a comma-separated list of email addresses to send the response to. Works with 'to_other'.
- Action Parameter: Attach original
- This parameter specifies whether to attach the original email to the response (true) or not (false).
- Action Parameter: CC address
- This parameter is a comma-separated list of email addresses to CC the response to.
- Action Parameter: BCC address
- This parameter is a comma-separated list of email addresses to BCC the response to.
- Template variables: The user can insert variables into the subject and body of the response while creating it. When the response is sent as a result of categorizing a report, Cofense Triage replaces the variables with information from that report. The following are the template variables
- [SUBJECT]: Replaced with the subject of the reported email.
- [REPORT_DATE]: Replaced with the date the email was reported.
- Example:
- Create a response with name: "Example Response", Description: "This is an example response", Subject: "Email '[SUBJECT]' reported [REPORT_DATE] is SAFE", and Body = "The email '[SUBJECT]' that you reported on [REPORT_DATE] is safe".
- Name = Example Response
- Description = This is an example response
- Subject = Email '[SUBJECT]' reported [REPORT_DATE] is SAFE
- Body = The email '[SUBJECT]' that you reported on [REPORT_DATE] is safe
- Create a response with name: "Example Response", Subject: "Email '[SUBJECT]' reported [REPORT_DATE] is SAFE", and Body = "The email '[SUBJECT]' that you reported on [REPORT_DATE] is safe". The response should be sent to the reporter and not others.
- Name = Example Response
- To reporter = true
- To other = false
- Subject = Email '[SUBJECT]' reported [REPORT_DATE] is SAFE
- Body = The email '[SUBJECT]' that you reported on [REPORT_DATE] is safe
Note: This action is supported for Cofense Triage with version older than 1.23.
Get responses
- Action Parameter: Max results
- This parameter allows the user to limit the number of results. It expects a numeric value as an input.
- Example:
Note: This action is supported for Cofense Triage with version older than 1.23.
Create threat indicator
- Action Parameter: Level
- This parameter is the level of threat indicator. The following are the valid values that the parameter can take:
- Malicious
- Suspicious
- Benign
- Action Parameter: Type
- This parameter is the type of threat indicator. The following are the valid values that the parameter can take:
- Header
- Hostname
- URL
- MD5
- SHA256
- Action Parameter: Value
- This parameter is the value of the threat indicator. If the value of the parameter 'type' is 'Header', then the value of this parameter should be in the form {header_key}:{header_value}.
- Action Parameter: Source
- This parameter is the source of the threat indicator. The default value of this parameter is "Splunk_Phantom-UI"
- Example:
- Create a malicious threat indicator with type: URL and value: 'https://testurl.com'.
- Level = Malicious
- Type = URL
- Value = 'https://testurl.com'
- Create a Suspicious threat indicator, source: 'Splunk_Phantom-UI', type: Header and value<EMAIL_ADDRESS>- Level = Suspicious
- Type = Header
- Value =<EMAIL_ADDRESS>- Source = Splunk_Phantom-UI
Get categories
- Action Parameter: Name
- This parameter allows the user to fetch the categories with the name containing a specific string.
- Action Parameter: Malicious
- This parameter allows the user to fetch the categories based on whether the category is used to classify malicious reports or not. If the value is false, then all the categories will be fetched.
- Action Parameter: Max results
- Maximum number of results to return. If not provided, all the data will be retrieved.
- Note - If no value is provided in any parameter, then all the records will be retrieved.
- Example:
- List the categories containing ‘threat’ in the name and are malicious.
- Name = Threat
- Malicious = true
- List 50 categories.
Get threat indicators
- Action Parameter: Level
- This parameter allows filtering based on the level of threat indicator. The following are the valid values that the parameter can take:
- All
- Malicious
- Suspicious
- Benign
- Action Parameter: Type
- This parameter allows filtering based on the type of threat indicator. The following are the valid values that the parameter can take:
- All
- Header
- Hostname
- URL
- MD5
- SHA256
- Action Parameter: Source
- This parameter allows filtering based on the source of the threat. If not provided,
threat indicators from all the sources will be fetched.
- Action Parameter: Value
- This parameter allows filtering based on the actual value of the threat indicator.
- Action Parameter: Start date
- This parameter allows the user to fetch the threat indicators updated on or after
the provided date.
- Action Parameter: End date
- This parameter allows the user to fetch the threat indicators updated before the
provided date.
- Action Parameter: Sort
- This parameter allows sorting the result data set based on the 'updated_at' date of the threat indicator. By default, it will sort in the oldest first order. The following are the valid values that the parameter can take:
- oldest_first
- latest_first
- Action Parameter: Ingest threat indicator
- This parameter allows ingestion of the threat indicator(s) into the container(s).
- Action Parameter: Ingest subfields
- This parameter allows the ingestion of the fields relating to the threat indicator into the container. If this parameter is set to true, the threat indicator and all the resources related to the threat indicator that are present in the relationships together will get ingested.
- Action Parameter: Label
- This parameter allows the ingestion of data into the container(s) with the provided label. The label must be valid or the action will fail. Required if 'ingest_threat_indicator' or 'ingest_subfields' is set. This parameter will be taken into consideration only during ingestion.
- Action Parameter: Tenant
- This parameter allows the creation of container(s) for the provided tenant ID or tenant name. The tenant must be valid or the action will fail. Required if 'ingest_threat_indicator' or 'ingest_subfields' is set. This parameter will be taken into consideration only during ingestion.
- Action Parameter: Cef mapping
- This parameter is a JSON dictionary represented as a serialized JSON string. Each key in the dictionary is a potential key name in an artifact that is to be renamed to the value. For example, if the cef_mapping is {"website":"requestURL"} your artifact will have requestURL cef field in place of website cef field. This parameter will be taken into consideration only during ingestion.
- Action Parameter: Max results
- Maximum number of results to return. If not provided all the data will be retrieved.
- Note - If no value is provided in any parameter then all the records will be retrieved.
- Example:
- List all the Malicious threat indicators that are URLs and are reported from the Triage-UI source.
- Level = Malicious
- Type = URL
- Source = Triage-UI
- List all the threat indicators updated between 2020-09-23T08:31:58Z and 2020-09-29T09:00:00Z and sort them in oldest_first order.
- Start date = 2020-09-23T08:31:58Z
- End date = 2020-09-29T09:00:00Z
- Sort = oldest_first
- List 50 threat indicators in the latest first order.
- Max results = 50
- Sort = latest_first
Get email
- Action Parameter: Report ID
- This parameter is the ID of the report.
- Action Parameter: Download method
- This parameter allows the user to download the email as an artifact or as a vaulted file.
- Action Parameter: Create vaulted file artifact
- If storing the file as a vaulted file, this parameter allows the user to create an artifact referencing that file.
- Example:
- Download email for report ID equals 10.
- Report ID = 10
- Download method = vaulted file
Get Comments
- Action Parameter: Body format
- This parameter allows filtering the comments based on the body format. The following are the valid values that the parameter can take:
- Action Parameter: Tags
- This parameter allows filtering the comments based on the list of comma-separated tags. If the tag value contains a comma, enclose it in double-quotes, for example: tag1,"test,tag",tag2. If a comma-separated list is provided, comments matching any of the tags from the provided list will be retrieved.
- Action Parameter: Start date
- This parameter allows filtering the comments updated on or after the provided date.
- Action Parameter: End date
- This parameter allows filtering the comments updated before the provided date.
- Action Parameter: Sort
- This parameter allows sorting the comments based on the 'updated_at' date of the comment. By default, it will sort in the oldest first order. The following are the valid values that the parameter can take:
- oldest_first
- latest_first
- Action Parameter: Max results
- Maximum number of results to return. If not provided, all the data will be retrieved.
- Note - If no value is provided in any parameter, then all the records will be retrieved.
- Example:
- List the latest 20 comments having 'text' body format with a tag 'test'.
- Body format = text
- Tags = test
- Sort = latest_first
- Max results = 20
- List all the comments updated between 2020-09-23T08:31:58Z and 2020-09-29T09:00:00Z and sort them in oldest_first order.
- Start date = 2020-09-23T08:31:58Z
- End date = 2020-09-29T09:00:00Z
- Sort = oldest_first
- List the comments in the latest_first order.
Get comment
- Action Parameter: Comment ID
- This parameter is the ID of the comment to fetch.
- Example:
- Fetch the comment with comment ID equals 5.
Get rule
- Action Parameter: Rule ID
- This parameter is the ID of the rule to fetch.
- Action Parameter: Ingest report
- This parameter allows ingestion of reports related to the rule.
- Action Parameter: Ingest subfields
- This parameter allows the ingestion of the fields relating to the report into the container. If this parameter is set to true, the report and all the resources related to the report that are present in the relationships together will get ingested into the container.
- Action Parameter: Label
- This parameter allows the ingestion of data into the container(s) with the provided label. The label must be valid or the action will fail. Required if 'ingest_report' or 'ingest_subfields' is set. This parameter will be taken into consideration only during ingestion.
- Action Parameter: Tenant
- This parameter allows the creation of container(s) for the provided tenant ID or tenant name. The tenant must be valid or the action will fail. Required if 'ingest_report' or 'ingest_subfields' is set. This parameter will be taken into consideration only during ingestion.
- Action Parameter: Cef mapping
- This parameter is a JSON dictionary represented as a serialized JSON string. Each key in the dictionary is a potential key name in an artifact that is to be renamed to the value. For example, if the cef_mapping is {"website":"requestURL"} your artifact will have requestURL cef field in place of website cef field. This parameter will be taken into consideration only during ingestion.
- Example:
- Fetch the rule with rule ID equals 5 and ingest the reports related to the rule.
- Rule ID = 5
- Ingest reports = True
- Label = events
- Tenant = Default
Get rules
- Action Parameter: Name
- This parameter allows filtering the rules with rule name containing a specific string. All the rules containing the provided value in the name will be retrieved.
- Action Parameter: Description
- This parameter allows filtering the rules with rule description containing a specific string. All the rules containing the provided value in the description will be retrieved.
- Action Parameter: Priority
- This parameter allows filtering the rules based on the priority.
- Action Parameter: Tags
- This parameter allows filtering the rules based on the list of comma-separated tags. If the tag value contains a comma, enclose it in double-quotes, for example: tag1,"test,tag",tag2. If a comma-separated list is provided, rules matching any of the tags from the provided list will be retrieved.
- Action Parameter: Scope
- This parameter allows filtering the rules based on the scope.
- Action Parameter: Author name
- This parameter allows filtering the rules with author name containing a specific string. All the rules containing the provided value in the author's name will be retrieved.
- Action Parameter: Rule context
- This parameter allows filtering the rules based on the context. The following are the valid values that the parameter can take:
- All
- Internal safe
- Unwanted
- Threat hunting
- Phishing tactic
- Cleanup
- Unknown
- Action Parameter: Active
- This parameter allows filtering the rules based on the status. If the value of the parameter is false, then all the rules will be retrieved.
- Action Parameter: Reports count
- This parameter allows filtering the rules based on the number of reports the rule matched.
- Action Parameter: Reports count operator
- This parameter is the operator to work with the reports count parameter. The default value is 'eq'. For example: if the reports count = 5 and the reports count operator = 'lt', then all the rules having a report count less than 5 will be retrieved. The following are the valid values that the parameter can take:
- eq
- not_eq
- lt
- lteq
- gt
- gteq
- Action Parameter: Start date
- This parameter allows filtering the rules updated on or after the provided date.
- Action Parameter: End date
- This parameter allows filtering the rules updated before the provided date.
- Action Parameter: Sort
- This parameter allows sorting the rules based on the 'updated_at' date. By default, it will sort in the oldest first order. The following are the valid values that the parameter can take:
- oldest_first
- latest_first
- Action Parameter: Max results
- Maximum number of results to return. If not provided all the data will be retrieved.
- Note - If no value is provided in any parameter, then all the records will be retrieved.
- Example:
- Fetch the active rules created by 'author1' with name equals 'test' having tag equals 'test' and priority equals 1.
- Name = test
- Priority = 1
- Author name = author1
- Active = True
- Tags = test
- List all the rules updated between 2020-09-23T08:31:58Z and 2020-09-29T09:00:00Z and sort them in oldest_first order.
- Start date = 2020-09-23T08:31:58Z
- End date = 2020-09-29T09:00:00Z
- Sort = oldest_first
- Fetch 20 rules with report count equals 5.
- Reports count = 5
- Reports count operator = eq
- Max results = 20
Get integration submissions
- Action Parameter: Type
- This parameter is the type of integration submission.
- Action Parameter: Value
- This parameter is the value of integration submission.
- Example:
- List integration submissions of type MD5 with value equals f033362ca459dcab56aa6b2274751d13.
- Type = MD5
- Value = f033362ca459dcab56aa6b2274751d13
- List integration submissions of type URL with value equals http://test.com.
- Type = URL
- Value = http://test.com
On Poll
What is On Poll
- It will ingest data from the external system into the phantom server in the form of containers and artifacts. There are two approaches to polling which are mentioned below.
- POLL NOW (Manual polling)
-
It will fetch the data every time as per the corresponding asset configuration parameters. It doesn’t store the last run context of the fetched data. The corresponding asset configuration parameters for the POLL NOW are ingestion_type, threat_indicator_type, threat_indicator_level, report_location, match_priority, category_id, tags, categorization_tags, ingest_subfields, category_id_to_severity, cef_mapping, start_date, sort and max_results.
- Scheduled/Interval Polling
- Scheduled Polling: The ingestion action can be triggered at every specified timestamp interval.
- Interval Polling: The ingestion action can be triggered at every time range interval.
- It will fetch the data every time as per the corresponding asset configuration parameters based on the stored context from the previous ingestion run. It stores the last run context of the fetched data. It starts fetching data based on the combination of the values of stored context for the previous ingestion run and the corresponding asset configuration parameters. The corresponding asset configuration parameters for the scheduled/interval are ingestion_type, threat_indicator_type, threat_indicator_level, report_location, match_priority, category_id, tags, categorization_tags, ingest_subfields, category_id_to_severity, cef_mapping, start_date, sort, update_state_after and max_results.
Containers and Artifacts creation
-
We have configured two types of data ingestion which you can select from the asset configuration parameters. Below are the two types
- reports: It will ingest only the reports.
- threat_indicators: It will ingest only the threat indicators.
- Container
-
A container is a composite object that consists of one or more artifacts that can be automated. Containers are the top-level data structure that Playbooks operate on. Every container has a common header, and beneath that, the ability to store arbitrary less structured JSON.
- Artifacts
-
Artifacts are objects that are associated with a Container and serve as corroboration or evidence related to the Container.
- Each report or threat indicator will be ingested as an artifact in a separate container. Each subfield related to the report or the threat indicator will get ingested into the container of that report or threat indicator as a separate artifact if the 'ingest_subfields' parameter is true. Below is the explanation based on the type of data for that.
- reports
For this type, one container will be created for each report.
- Container 1:- Subject of the report
- This container will be used to store fetched report data in the form of artifacts.
- threat indicators
For this type, one container will be created for each threat indicator.
- Container 1:- Threat Indicator ID - ID
- This container will be used to store fetched threat indicator data in the form of artifacts.
Stored Context
-
It is the concept of storing the context of the previous ingestion run. This concept will be used in the scheduled/interval polling. It will use the state file to store the last run context. This state file will be created for the created asset for the application on the phantom platform.
- State file location:
- For non-NRI Instances: /opt/phantom/local_data/app_states/7129d563-a28d-4afc-8081-f909dce54293
- For NRI Instances: /home/phanru/phantomcyber/local_data/app_states/7129d563-a28d-4afc-8081-f909dce54293
- The default format of state file: {"app_version": "1.0.0"}
- Example:
- Ingest the Malicious threat indicators that are URLs and are updated on or after 2020-09-23T08:31:58Z.
- Ingestion type = threat_indicators
- Threat Indicator Level = Malicious
- Threat Indicator Type = URL
- Start date = 2020-09-23T08:31:58Z
- Ingest the reports present in Inbox having match priority equals 5 and are updated on or after 2020-09-23T08:31:58Z.
- Ingestion type = reports
- Report Location = Inbox
- Match Priority = 5
- Start date = 2020-09-23T08:31:58Z


Ireland's Euro 2020 play-off likely to be played at 22,500-capacity stadium in Bratislava
The FAI say they have opened talks with their Slovakian counterparts about ticket allocation for the game.
by Ben BlakeIRELAND LOOK SET to play their Euro 2020 play-off semi-final at the Tehelne Pole stadium in Bratislava.
Mick McCarthy’s men must defeat Slovakia on 26 March before facing the winner of Northern Ireland and Bosnia-Herzegovina away five days later for a place at next summer’s finals.
Slovakia played their home matches at the 19,200-capacity Anton Malatinsky Stadium in Trnava during this campaign, but the FAI has revealed that the Tehelne Pole stadium in Bratislava, which holds 22,500, is most likely to host the Boys in Green.
The Slovakian FA must confirm the venue by 20 December.
“Slovakia have intimated the game will take place in Bratislava but they have some final checks to make on the ground there before they can confirm it as the venue,” said an FAI spokesman.
“We have also opened talks with them on the allocation of tickets and will update our fans as soon as we can. We are guaranteed 5% of the tickets but we are negotiating for more.
“Tickets will be allocated to supporters based on away attendance records from the last two campaigns. We will announce the application process as soon as we know our allocation.”
McCarthy and a team of officials from the FAI travelled to Nyon in Switzerland for this morning’s draw, where the Ireland manager met Slovakian boss Pavel Hapal.
“The only game that matters to us now is Slovakia,” said McCarthy, who insists he is not looking beyond the first obstacle.
If we win the first game against Slovakia then I will fancy our chances anywhere else. We will have our analysis done on all three teams but our focus is on Slovakia first and getting ready for them in the New Year.
“We know what we have to do, we have to go there and win the game. Home advantage is just that but if we play as well as we did against Denmark then I will settle for that. We set the bar high on Monday night and that is the standard we will have to play at to win two games.”


{!extends base.html !} {!block title!}{%set page 'downloads'%}Jangod, the release packaged versions{!endblock!} {!block content!}
Binaries:


--- layout: post title: "Visual Studio 2010 Extension Required" comments: true ---
I have just installed a new extension to Visual Studio 2010 using the Extension manager and then realised I’d have to do the same at home. Seems very laborious doesn’t it!! Why isn’t there a way to be able to get an output of the installations you have installed and their download links (maybe in an xml type format) that I could then export and store in dropbox.
Format could have the following information:
Do we ever think something like this will be developed? Is anyone interested in a product like this – lets try and get it implemented! Its only the same functionality they have when you can export bookmarks and ftp locations from other tools.
EDIT: There is currently the ability to have a personal Nuget repository so this 'extension repository' would be great for sharing in a team as well!


Computing
Medicine
Programming
Biologist
NASA mathematician
Astronomer
Chemist
Chemist
Every person has £1000 to donate across the teams. You can either choose your favourite team and donate your entire budget to them, or you can split it up between your favourites. Make sure to take a look at everybody's project before deciding.
Or go to twitter and donate @ThinkITHursley with the hashtag #vote<teamname> and the amount you want to donate:
If you don't want to use your own account or don't own a Twitter account, we have one you can use!
To view current scores click this link. Whichever team was offered the most donations at the end of the day will win our special ThinkIT prize.


Find the Weather
{% if weather %}
{{ weather.region}}
{{ weather.daytime}}
{{ weather.temp}}° C
{{ weather.status}}
{% endif%}


Now that we have a formidable battery of verbs at our command, let's continue writing programs in J. The data definitions are repeated here for convenience:
empno[nemp] (in J, just empno) - employee number for each member of the staff. The number of employees is nemp.
payrate[nemp] - number of dollars per hour the employee is paid
billrate[nemp] - number of dollars per hour the customer is billed for the services of this employee
clientlist[nclients] - every client has a number; this is the list of all of them. The number of clients is nclients.
emp_client[nemp] - number of the client this employee is billed to
hoursworked[nemp][31] - for each employee, and for each day of the month, the number of hours worked
Problem 4: Find the amount to bill a given client. C code:
// cno is number of client we are looking up
// result is amount to bill
int billclient(int cno)
{
int i, j, temp, total;
total = 0;
for(i = 0;i<nemp;++i) {
if(emp_client[i]==cno) {
for(j = 0, temp = 0;j<31;++j)temp += hoursworked[i][j];
total += billrate[i] * temp;
}
return(total);
}
The function is implemented in C by looping over the employees and picking the ones that are working for the specified client. In J we deal with entire arrays rather than with elements one at a time, and the general plan is:
get the mask of employees billed to the requested client;
select the hoursworked records for the applicable employees;
for(each employee) // 1
for(each day) accumulate total hours; // 2
for(each employee)multiply hours by billing rate;
for(each employee)get total billing;
This example is the first one in which an argument is passed into the J verb. Within the verb the right argument is referred to as y and the left argument (if the verb is a dyad) is referred to as x . As usual in C we might use fewer big loops, but in J we stick to small loops. The mask of employees billed to the client is given by emp_client = y which is a mask with 1 for the selected employees, 0 for the others (remember that = is a test for equality, not an assignment). We can select the hoursworked items for the specified client by (emp_client = y) # hoursworked; then the sum for each day will be a sum within each 1-cell, resulting in a list of hours for each selected employee. The line +/"1 (emp_client = y) # hoursworked performs the functions of loops 1 and 2 in the pseudocode: loop 1 within each cell and loop 2 in the implied loop over the cells. Then, it is a simple matter to select the billing rates for the employees, multiply each billing rate by the number of hours worked, and take the total over all employees billed to the customer. The solution (using a temporary variable to hold the mask) is
billclient =: monad define
mask =. emp_client = y
+/ (mask # billrate) * +/"1 mask # hoursworked
)
Problem 5: For each day, find the worker who billed the most hours (don't worry about a tie for first place--just pick any one worker from the top billers for each day). C code:
// result: drudges[] is empno of worker with most hours each day
void dailydrudge(int drudges[31])
{
int i, j, highhours;
for(i = 0;i<31;++i) {
highhours = -1;
for(j = 0;j<nemp;++j)
if(hoursworked[j][i]>highhours) {
drudges[i] = empno[j];
highhours = hoursworked[j][i];
}
}
}
}
We note that the inner loop, which records the employee number of any employee who worked more than the previous high, does not correspond to any of our J verbs. So, we break this loop into operations that do correspond to J verbs:
for(each day)find the maximum number of hours worked; // 1
for(each day)find the index of the employee who worked that much; // 2
for(each day)translate the index to an employee number; // 3
Loop 1 is simply >./ hoursworked . Loop 2 calls for dyad i. to perform the search, but there is a little problem: each search must go through a column of hoursworked, giving the hours worked by each employee on that day, but the column is not an item of hoursworked; each item is a row, giving hours worked on each day by one employee. The solution is to transpose hoursworked (by |: hoursworked), making the items correspond to days rather than employees. Then we match up the resulting1-cells with the 0-cells of the maximum found by loop 1 and find the index of each maximum, using i."1 0 or the equivalent i."_1 . Loop 3 is a simple application of dyad { . The final code is
dailydrudge =: monad define
((|: hoursworked) i."_1 >./ hoursworked) { empno
)
Problem 6: Order the employees by the amount of profit produced. This is a bagatelle for J and we won't even bother with C code. We have a verb that returns the profit for each employee, so we call it and use the result as the keys for sorting the employee numbers into descending order. Note that a verb must be given an argument when it is executed; we use 0 as a convenient value. The final J code is
producers=: monad : 'empno \: empprofit 0'
which makes use of the verb we defined earlier:
empprofit =: monad define
(billrate - payrate) * +/"1 hoursworked
)
Problem 7 is similar: Order the clients by the amount of profit produced. It requires more ingenuity, and the C code would be more than I want to show, so let's try to write in J directly. We start with the list of clients clientlist, the list that tells which client each employee worked for emp_client, and the profit per employee given by empprofit 0 . For each client, we need to find the employees that worked for the client and add up the profit they brought in. For this kind of problem we want an array with employees for one axis and clients for the other, with a 1 in the positions where the employee is assigned; then we can do array * empprofit 0 and do some suitable summing of the result. Let's work out what array must look like. Since dyad * has rank 0, array * empprofit 0 is going to replicate 0-cells of the shorter-frame argument (empprofit 0) which means that a single profit value is going to multiply an entire 1-cell of array . So we see that the leading axis of array must be clients and the second axis must be employees; each item will have the client mask for one employee. The way to create that is by clientlist ="1 0 emp_client which will compare the entire client list against each 0-cell of emp_client and form the results into an array. Then, (clientlist ="1 0 emp_client) * empprofit 0 will have one item per employee, each item having the amount billed to each client; we sum these items to produce a list with the profit from each client, and use that to order the client numbers. Solution:
custbyprofit =: monad define
clientlist \: +/ (clientlist="1 0 emp_client) * empprofit 0
)
For our final problem in the payroll department, consider how to calculate withholding tax on each employee's earnings. The tax rate within tax brackets will be assumed to be the same for all employees. C code for this would look like:
// result: withholding for each employee in shekels[]
int renderuntocaesar(float shekels[])
{
// tax-bracket table: start of each bracket, ending with high value
float bktmin[4] = {0,10000,20000,1e9};
// tax-bracket table: rate in each bracket
float bktrate[3] = {0.05,0.10,0.20};
int earns[nemp];
int i, j;
empearnings(earns); // get earnings for each employee
for(i = 0;i<nemp;++i) {
shekels[i]= 0.0;
for(j = 0;j<sizeof(bktrate)/sizeof(bktrate[0]);++j) {
if(earns[i] > bktmin[j]) {
float bktval = bktmin[j+1];
if(earns[i] < bktval)bktval = earns[i];
shekels[i] += bktval * bktrate[j];
}
}
}
}
In J, we will sum over the tax brackets and we must create a suitable array for the summation. The items in this array will be the amounts earned in each tax bracket. Corresponding to the two if statements we will use conditional verbs to discard amounts earned outside the tax bracket. The conditionals will operate on each row, so they will have rank 1, and they will look something like 0 >. (bracket_top <. earned) - bracket_bottom which will give the amount earned in the bracket, set to 0 if the earnings are below the bracket and to the size of the bracket if above. We will create bracket_top by shifting the brackets left and filling with infinity (this corresponds to the bktmin[j+1] reference in the C code). We could create earned by replicating the earnings for each employee to form a 1-cell for each bracket--the code for this would be (#bktmin)$"0 empearnings ''--but it's not necessary to create that array explicitly: we just use the implicit looping to cause each cell of empearnings '' to be replicated during the comparison with bracket_top. Making all these substitutions, noting that all the operations have rank 1, and summing at the end over the items within each 1-cell, we get the final code:
renderuntocaesar =: monad define
bktmin =. 0 10000 20000
bktrate =. 0.05 0.10 0.20
t=. ((1 |.!._ bktmin) <."1 0 empearnings '') -"1 bktmin
+/"1 bktrate *"1 (0) >. t
)
We used the temporary variable t so our sentences would fit on the page.
Let's write a program to count the lines and words in a file. This is a simple task, and in C it might look like:
// f points to filename
// result is words,lines
int[2] wc(char *f)
{
FILE fid;
int ct[2]; /* # words, # lines */
char c;
fid = fopen(f);
while(EOF != (c = fgetc(fid)) {
if(c == ' ')++ct[0];
if(c == LF)++ct[1];
}
return (ct);
}
Rather than loop for each character, in J we process files by reading the whole file into a list of characters and then operating on the list. The monad ReadFile (defined in the script jforc.ijs) has infinite rank; it takes a filename y and yields as result the contents of the file, as a list of characters. Once the file is a list, it is trivial to compare each character against space and linefeed, yielding for each a list of 1s at each position filled by the character; then summing the list gives the number of each character. J code to do this is:
NB. y is string filename, result is (#words),(#lines)
wc =: monad define
+/"1 (' ',LF) ="0 1 ReadFile y
)
Suppose our user complains that wc needs improvement: specifically, it should also return the number of characters in the file, should not count multiple consecutive whitespace characters (including TAB) as separate words, and should treat the trailing LF as a word delimiter as well as a line delimiter. In C, we would respond by adding a few more tests and flags, but in J we realize that a major change to the program's function calls for a thorough rethinking.
To ignore multiple whitespace characters we need to define what an ignored whitespace is, without using flags and loops. This part of the problem often calls for creative thought; here we realize that a whitespace character is to be ignored if the previous character is whitespace. That's easy, then: we just calculate a Boolean vector, 1 if the character is whitespace, and then use shift and Boolean AND to ignore multiple whitespace. The code to do this is worth looking at; it is
sw
=. (-. _1 |. w) *. w =. f e. ' ',TAB,LF
where f is the contents of the file. Note that we assign a value to w just before we right-shift w . This is legal in J: sentences are processed right-to-left, and the interpreter has not seen the reference to w at the time w is assigned. A similar statement in C, for example x = w + (w = 4); , would be undefined. Of course, even though it's legal in J, some would cavil--we will eventually learn ways to do this without defining a variable at all--but I leave it to you to decide how far you will detour to avoid jaywalking. Once sw has been calculated, the rest of the program is trivial. The final result is:
NB.Version 2. Discard multiple whitespace,
NB.and return (#chars),(#words),(#lines)
wc2 =: monad define
f =. ReadFile y
sw =. (-. _1 |. w) *. w =. f e. ' ',TAB,LF
(#f),(+/sw),(+/ LF = f)
)


Authority to interact with HMRC on your behalf
The DAS Alpha Client Mock software application is requesting to do the following:
- @scopeDescription
It will be able to do the above for 10 hours from when you grant authority.
You can remove this authority at any time.


WordPress-Specific Features
All of these features can be toggled on or off in the keel_developer_options()
function in functions.php
. Most are off by default.
Image Galleries
Create beautiful, mosaic image galleries using the [[gallery]]
shortcode, or the built-in gallery feature in the WordPress editor. Theme users can disable this capability under Media
> Photo Galleries
in the Dashboard.
Heros
Underneath the content section is a Page Hero
section. Add your hero content there. In addition to text, you can also add an image or video.
To apply a background image to the hero, use the Featured Image
section in the sidebar. If text is hard to read on the background image, check the box to add a Background Image Overlay
.
Custom Logos
From the WordPress Dashboard, visit Appearance
> Customize
, and select Logo
. Click Select Image
, and upload your preferred logo image. Click Save & Publish
at the top of the page when you’re done.
Button Links
Add bold calls to action in your content with the [button]
shortcode:
[[button link="#create-a-button-link" label="Click Me"]]
To make a button extra large, also include the size
attribute with the value large
:
[[button link="#create-a-button-link" label="Large Click Me" size="large"]]
Inline SVGs
Keel adds Media Library support for SVGs. While SVGs can be used as the src
of an <img>
tag, Keel also includes the [[svg]]
shortcode if you'd prefer to inline your SVGs.
An id
or url
attribute must be passed in. You can also add classes to the SVG with the class
attribute.
[[svg url="http://harbor.gomakethings.com/some-image.svg" class="icon icon-large"]]
Custom Layouts
A special meta box on pages lets you customize the width of the page.
default
is the narrow, content-focused page width (40em
). wide
sets the page content to the same width as the header and footer (80em
).
diy
removes all padding from the body content and gives you complete control. This is useful when you want to include full-bleed content sections.
You can also hide the page h1
header by checking the Hide Page Header
checkbox.
Disable Comments
From the Dashboard, visit Posts
> Post Options
, and click Disable comments on all blog posts
. Click Save
at the bottom of the page when you’re done.
Blog Post Calls-to-Action
From the Dashboard, visit Posts
> Post Options
, and add your content. Click Save
at the bottom of the page when you’re done.
Theme Support
Provide your theme users with in-theme support information. This adds a page under Appearance
> Theme Support
in the Dashboard. Add your content in the keel-theme-support.php
template under Includes
> keel-options.php
.
Helper Methods
There are a numerous helper functions in the functions.php
file. There are too many to list and document here, but they’re all documented using the PHPDoc format.


The Old Crow & The Young Crow
[169]
THERE was an old crow teaching a young crow one day, and he said to him, "Now my son," says he, "listen to the advice I'm going to give you. If you see a person coming near you and stooping, mind yourself, and be on your keeping; he's stooping for a stone to throw at you."
"But tell me," says the young crow, "what should I do if he had a stone already down in his pocket?"
"Musha, go 'long out of that," says the old crow, "you've learned enough; the devil another learning I'm able to give you."


AStandard modern room for 2-3 people.
Family friendly,
A dining room with a well stacked library
Karen, Hill park Rd
An appointed Single luxury bedroom
At a stone's throw from the airport.
In built air conditioning and free WIFI
Location Utawala, Airport park Rd
A 5 room bungalow
An in-built 24/7 alarm
Location Kileleshwa, Hill park Rd
A 4 room family house
free WIFI
2 parking spaces
An in-built air conditioning system
Location ReceCourse, Lenana Rd
A 6 room home
Spacious corridor
A parking space
A backyard Energy efficient garden
Location Karen, Hill park Rd
A modern-vintage house in sub-urban Thii Ndigwa,Kiambu
An olympic-size swimming pool
An in-built 24/7 alarm system
Location Utawala, Airport park Rd
A spacious, Fully Furnished 2+ bedroom home
Family Friendly with Stunning View of Nyali beach
Location Nyali Rd, Nyali, Mombasa
A double-standard room.
cozy & fully-Furnished guest house
Terrace for morning coffee in the sun
Location ReceCourse, Lenana Rd
A 4 bedroom vintage house
En-suite bathroom
A fully-equipped kitchen
A 24/7 alarm system
Location Karen, Hill park Rd
A spacious, fully-furnished modern home.
A great view of the Maasai Mara game reserve
A spacious open corridor for evening tea with a great view of the setting sun.
Location Maasai Mara rd, Tsavo
A 4 bedroom modern modern house
A library with a wide collection of different genres.
A free WIFI
A view of Karura forest canopybr
Location Kileleshwa, Hill park Rd
A single, exclusive room;
In-built air-conditioning system
A free WIFI
Location ReceCourse, Lenana Rd


Mike Dean and the Ref Radar
It was a tough day at the office last week for Mike Dean. The match was Manchester United vs West Ham and after 15 minutes he dismissed Feghouli for a foul tackle. The tempo of the game changed. West Ham were on the back foot and eventually conceded two goals to Man Utd. Undeniably the red card had a big effect on the outcome of the game. It has since been rescinded, showing that the FA agree with fans that perhaps it should not have been a red card.
There has also been a tweet circulating that Mike Dean in his last 7 Tottenham games has sent off three opposition players. On first reading this raises some eyebrows. Is this just a statistical oddity or is there something deeper in the numbers? A prime opportunity to explore our RefRadar of Mike Dean and see how he compares to the other Premier League referees.
Lets look at the season so far (2016/17) in isolation.
So as we can see here, Mike Dean does like penalising the away team more than the home team for both fouls and yellow cards. Obviously these two stats are going to be correlated. But it is still interesting to see how he is fairly close to the average amount for penalising the home team, but for the away team he is frequently giving fouls and yellow cards out.
Mike Dean has officiated the 5th most amount of games in the league. So let’s look at the 3 other referees who have had more games.
Most notably, three out of four of the most active referees this season are the ones giving the most yellow cards to the away teams whereas they are middle of the pack for the home yellow cards. A similar trend is seen for the away fouls, but like previous, these two variables are going to be highly correlated. The stand out statistic though is Mike Deans average away red cards. He is a clearly the most likely to send off a player of the away team out of this selection of referees. In fact the three other referees haven’t sent anyone off from the away team yet this season! But something to keep in mind is that this is a really small sample size. The season is about half way through so there is still plenty of time for the other referees to catch up on the red cards.
So in conclusion, whatever match Mike Dean is appointed to next, the away team should keep in my mind a red card is never far away. But perhaps the FA are going to have a word with Mike Dean and he will have an easy couple of games to bring his average down. The RefRadar here has been useful to look at how active the officials have been compared to their peers. Lets see what the next round of football brings!


About Me
I am currently a second-year Master's student in Mechanical Engineering (Mechatronics track) at Stanford University. My work is centered around computer vision (low-level and deep learning), mechatronics and control and I am extremely interested in autonomous driving. Prior to joining Stanford, I graduated from Shanghai Jiao Tong University with highest honor. My resume can be downloaded [here].
Education
-
September 2012 - June 2016
Shanghai Jiao Tong University
Mechanical Engineering - Bachelor of Science (BS) summa cum laude
Shanghai - China
- Cumulative GPA: 90.39/100 (Rank: 1/184)
- Undergraduate thesis with Prof. Hong Shen in Experimental and Numerical Investigation of Laser Polishing.
- Chiang Chen Overseas Graduate Fellowship Awardee (10 nationwide per year)
Work Experience
-
June 2017 - September 2017
Autonomous Driving R&D Intern
Momenta.ai - Beijing - China
- Developed GTA V-based autonomous driving simulation platform in C++ for data collection and algorithm test.
- Wrote scripts in Python to clean raw data and generate ground-truth labels for training deep learning models.
- Trained and tested deep neural networks to predict car pose classification, wheel landing points and pillar locations.
- Calibrated game camera based on 2D and 3D correspondences extracted from GTA V.
-
September 2017 - Present
Course Assistant
Stanford University - Stanford, CA - USA
- Worked with Prof. Gordon Wetzstein on revising course materials of EE267: Virtual Reality.
Projects
-
Greedy Layerwise CNN Training for Weakly Supervised Object Localization
Z. Wang,C. Zhang
- Used global average pooling layer to preserve model’s localization ability and applied greedily layerwise training to improve its ability of extracting image features.
- Achieved 7% higher precision in classification and 20% better localization than benchmark.
-
OpenCV Lane Line Detection for Self-driving Cars
- Developed software pipeline to detect lane lines in images and videos for self-driving cars using OpenCV.
- Applied Gaussian smoothing to suppress noise and spurious gradients, ran Canny edge detector and Hough transform to obtain steady and continuous lane lines
-
End-to-end Scene Restoration and Object Removal
H. Li,C. Zhang
, C. Zhu
- Designed and proposed end-to-end pipeline for removing unwanted tourists in scenery pictures and videos
- Implemented person detector using pre-trained HOG in OpenCV with linear SVM to perform pedestrian detection on images and wrote scripts to generate mask for inpainting
-
Smart Fit
C. Zhang
, J. He, J.W. Suh, S. Juthacharoenwong
- Designed, built and tested Android-based fitting room assistance system with features of clothes identification, item request, personalized recommendations.
- Developed Android app with Google Firebase as backend interfacing with Arduino via Bluetooth and RFID.
-
Siege Tank Robot
J. He,C. Zhang
, Z. Shang, T. Lee
- Designed, built and tested an autonomous racing robot that navigates through a landscape with sensor system.
- Implemented hierarchal state machines and PID control with robust embedded code using event-driven framework, state charts, interrupts and SPI communication protocol
-
The Island: A First-person Tower Defense Game on Mobile VR
C. Zhang
, Q. Yu
- Developed first-person tower defense game for mobile VR for Google Cardboard using Unity and Google VR SDK.
- Built 3D terrain and designed main features, such as game logic, special effects, enemy AI, audio and animation.
- Implemented game features using Unity API in C# with teammate and deployed game on iOS devices.


"x" "1" "AOKI,H OGAWA,Y YUKAWA,C NAKAMURA,M AND NAKAZAWA,H, LACK OFMUTAGENICITY OF A RED FOOD COLOUR IMPURITY(1-CARBOXYL-5,7-DIBROMO-6-HYDROXY-2,3,4-TRICHLOROXANTHONE) IN PHLOXINE B, FOODADD. CONTAM. 19(4):350 __ -356, 2003"


Select two New Mexico institutions at which you want to attend the SCCORE Program (this should be the institution to which you think you will transfer one day):
Please answer the following. Please note that your essay responses will be scored and weigh in on the SCCORE selection process, so please develop your responses thoughtfully and carefully.
*Application will not be accepted unless you submit a copy of a current unofficial transcript.
Allowed file type: pdf; Max File Size: 5MB
*please download, sign the Medical Emergency Care Authorization Form and scan, upload the form below.


{% extends "base.html" %} {% block heading %}{{ block.super }} - Books - Import Books{% endblock %} {% block content %}
Select a set of folders from your Dropbox.
Booksonas will import .mobi, .epub, and .pdf files from all the folders you selected, and all the folders in those folders. back to book list {% endblock %}


{% extends "layout_bsa.html" %} {% block page_title %} Help paying for NHS Costs prototype {% endblock %} {% block content %} Back Apply for help with NHS costs { if thirdparty } Does {firstname} have any other money? { else } Do you have any other money? For example cash Do you have any other money? Yes no How much money do you have? How much money do you have? Enter the total amount {% endblock %}
Apply for help with NHS costs
For example cash


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 4
This spruced-up version of a classic prawn cocktail would make a delicious Christmas starter.
Steam the crayfish for 4-5 minutes, or until pink. Remove from the pan, set aside to cool and peel. (Keep four crayfish whole for the garnish.)
For the cocktail sauce, whisk the eggs, white wine vinegar and mustard into a food processor until pale and creamy. With the motor running, pour in the oil in a steady stream, until the mixture thickens into a mayonnaise.
Spoon the mayonnaise into a bowl, then stir in the tomato ketchup, Worcestershire sauce, Tabasco, brandy and lemon juice until well combined. Season with salt and freshly ground black pepper. Stir in the crayfish tails.
For the melba toast, grill both sides of the bread until golden-brown, then cut the toast slices in half horizontally. Grill the soft inner sides until golden-brown, then cut the toast slices into quarters diagonally.
To serve, arrange the lettuce leaves into the bottom of a glass and top with the crayfish cocktail.
Dust with cayenne pepper and garnish with the reserved crayfish. Serve the melba toast alongside.


By using this site, you agree to have anonymized data collected on your use of the site. For details or to
opt out, click hereWe use this to help us understand how we are doing on getting the word out, and what browsers we should be
testing against to make sure the site works for all our users.


The main user object, although built up under a typical 'Devise-style' framework, this will primarily be used to validate and interact with the user in the Telegram interface. It will be prepared out-of-the-box for any web-based 'signing up' or profile management that may be needed in the future.
Namespace
- CLASS User


Toyota Raize: Company rules out Hyundai Venue rival for Australia
Cute subcompact crossover SUV revealed, but it’s not destined for Toyota Australia dealers
by Mike Costello- shares
The Toyota Raize is a cut-price micro SUV developed by subsidiary Daihatsu, which appears to be focused on the Japanese market - for now.
Its 3995mm length makes the Raize shorter than a Mazda 2, though it has a higher riding position, and a capacious 369L boot that measures 1m wide and 865mm deep. It’s also a little shorter than the smallest SUVs in Australia, including the Venue and Suzuki Vitara.
It’s based on a derivative of the Toyota New Global Architecture (TNGA) that also underpins cars such as the Yaris, Corolla and C-HR. But since the project was led by Daihatsu, this iteration of the platform is called DNGA.
The interior design comprises a driver-focused fascia with a 9.0-inch touchscreen fitted with Apple CarPlay connection, plus a TFT digital instrument display with various modes to choose from. The seats and transmission tunnel are also finished in funky patterns, though it’s clearly built to a price with hard plastics.
Driver-assist equipment options include an auto parking pilot, active cruise control, autonomous emergency braking that detects pedestrians and cars in cities, and an Erroneous Start Prevention Function that cuts power if you inadvertently hit the throttle too hard in a car park instead of the brake.
The drivetrain is a 72kW/140Nm turbocharged three-cylinder, mated with a CVT and either front- or on-demand all-wheel drive (AWD) configurations. Not much power, but it also weighs as little as 980kg, so there’s not much car to lug around. Claimed fuel use is as low a 5.4L/100km on the Japanese combined test cycle.
Australia:
Toyota Australia confirmed it has no current plans to offer the Raize here, to sit below the C-HR and alongside the new-generation Yaris set to arrive in 2020. Suzuki and Hyundai can breathe easier.
1
45
nextprevious
Toyota Raize: Company rules out Hyundai Venue rival for Australia


{% load i18n %}
once upon a midnight dreary, while i porn surfed, weak and weary, over many a strange and spurious site of 'hot chicks galore'. While i clicked my fav'rite bookmark, Suddenly there came a warning, And my heart was filled with mourning, Mourning for my dear amour. 'Tis not possible!, I pleaded, But my browser, so conceited, Remained blank, I then repeated, Just a blank and nothing more. With a scream, I was defeated, For my cookies were deleted, So i begged, no longer seated, Give me back my free hardcore! Then, in answer to my query, Through the net I loved so dearly, Came its answer, dark and dreary: Quoth the server, 500


Help for
xxProduct
Index
xxBill of Materials
Grid Configuration
For more information visit
Openbravo documentation
xxProduct
xxThe Product Window defines
xxProduct
xxThe Product Tab defines
[
xxxx
]
xxProduct
xxBill of Materials
xxThe Bill of Materials tab defines thos
Grid Configuration
System Grid Configuration
xxProduct
FieldName
FieldGridProperties


iMaptools - Tiger YYYY
iMaptools.com
- Bringing mapping and location based tools to our clients.
Permalink


{% extends "base_foundation.html" %} {% block og_title %}Meeting minutes: {{ meeting }}{% endblock %} {% block og_description %}Meeting minutes for {{ meeting }}{% endblock %} {% block content %} {% load foundation %}
The meeting was led by {{ meeting.leader.account.get_full_name }}.
Board members in attendance were:
Also in attendance were:
{{ meeting.treasurer_balance|currency }}
{% if meeting.treasurer_report %}


Last updated: March 18, 2021
This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your information when You use the Service and tells You about Your privacy rights and how the law protects You. We use Your Personal data to provide and improve the Service. By using the Service, You agree to the collection and use of information in accordance with this Privacy Policy. This Privacy Policy has been created with the help of the Privacy Policy Generator.
The words of which the initial letter is capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.
For the purposes of this Privacy Policy:
Account means a unique account created for You to access our Service or parts of our Service.
Company (referred to as either "the Company", "We", "Us" or "Our" in this Agreement) refers to Grassion, Old station square, Cuttack road, Bhubaneswar, Odisha.
Cookies are small files that are placed on Your computer, mobile device or any other device by a website, containing the details of Your browsing history on that website among its many uses.
Country refers to: Orissa, India
Device means any device that can access the Service such as a computer, a cellphone or a digital tablet.
Personal Data is any information that relates to an identified or identifiable individual. Service refers to the Website.
Service Providermeans any natural or legal person who processes the data on behalf of the Company. It refers to third-party companies or individuals employed by the Company to facilitate the Service, to provide the Service on behalf of the Company, to perform services related to the Service or to assist the Company in analyzing how the Service is used.
Third-party Social Media Servicerefers to any website or any social network website through which a User can log in or create an account to use the Service.
Usage Data refers to data collected automatically, either generated by the use of the Service or from the Service infrastructure itself (for example, the duration of a page visit).
Websiterefers to Grassion, accessible from http://www.grassion.com
You means the individual accessing or using the Service, or the company, or other legal entity on behalf of which such individual is accessing or using the Service, as applicable.
While using Our Services, We may ask you to provide Us with certain personally identifiable information that can be used to contact or identify You. Personally identifiable information may include, but is not limited to:
Usage Datais collected automatically when using the service.
Usage Data may include information such as Your Device’s Internet Protocal address (e.g. IP address), browser type, browser version, the pages of our Service that You visit, the time and of Your visit, the time spent on those pages, unique device identifires and other diagnostic data.
When You access the Service by or through a mobile device, We may collect certain information automatically, including, but ot limited to, the type of mobile device You use, Your mobile device unique ID, the IP address of Your mobile device, Your mobile operating system, the type of mobile Internet browser You use, unique device identifires and other dignostic data.
We may also collect information that Your browser sends whenever You visit our Services or when you access the Service by or through a mobile device.
The Company allows You to create an account and log in to use the Service through the following Third-Party Socia Media Services:
If You decide to register through or otherwise grant us access to a Third-Party Social Media Service, We may collect Personal data that s already associated with your Third-Party Social Media Service’s account, such as Your name, Your email address, Your activites or Your conatct list associated with that account.
You may also have the option of sharing additional information with the Company through Your Third-Party Social Media Service’s sccount. If You chosse to provide such information and Personal Data, during registartion or otherwise, You are giving the Company permission to use, share, and store ot in a manner consistent woth this Privacy Policy.
We use Cookies and similar tracking technologies to track the activity on Our Service and store certain information. Tracking technologies used are beacons, tags, and scripts to collect and track information and to improve and analyze Our Service. The technologies We use may include:
Cookies can be “Persistent or “Session” Cookies. Persistent Cookies remain on Your personal computer or mobile device when You go offline, while Session Cookies are deleted as soon as You close Your web browser. Learn more cookies: What Are Cookies?
We use both Session and Persistent Cookies for the purposes set out below:
Type: Session Cookies
Administered by: Us
Purpose: These Cookies are essential to provide You with services available through the Website and to enable You to use some of its features. They help to authenticate users and prevent fraudulent use of user accounts. Without these Cookies, the services that You have asked for cannot be provided, and We only use these Cookies to provide You with those services.
Type: Presistent Cookies
Administered by: Us
Purpose: These Cookies identify if users have accecpted the use of cookies on the Website.
Type: Presistent Cookies
Administered by: Us
Purpose: These Cookies are allows us to remeber choices You make when You use the Website, suh as remembering your login details or language perference. The purpose of these Cookies is to provide You with a more personal experience and to avoid You having to re-enter your preferences every time You use the website.
For more information about the cookies we use and your choices regarding cookies, please visit our Cookies Policy or the Cookies section of our Privacy Policy.
The Company may use Personal Data for the following purposes:
We may share Your personal information in the following situations:
The Company will retain Your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use Your Personal Data to the extent necessary to comply with our legal obligations (for example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.
The Company will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period of time, except when this data is used to strengthen the security or to improve the functionality of Our Service, or We are legally obligated to retain this data for longer time periods.
Your information, including Personal Data, is processed at the Company's operating offices and in any other places where the parties involved in the processing are located. It means that this information may be transferred to — and maintained on — computers located outside of Your state, province, country or other governmental jurisdiction where the data protection laws may differ than those from Your jurisdiction.
Your consent to this Privacy Policy followed by Your submission of such information represents Your agreement to that transfer.
The Company will take all steps reasonably necessary to ensure that Your data is treated securely and in accordance with this Privacy Policy and no transfer of Your Personal Data will take place to an organization or a country unless there are adequate controls in place including the security of Your data and other personal information.
If the Company is involved in a merger, acquisition or asset sale, Your Personal Data may be transferred. We will provide notice before Your Personal Data is transferred and becomes subject to a different Privacy Policy.
Law enforcementUnder certain circumstances, the Company may be required to disclose Your Personal Data if required to do so by law or in response to valid requests by public authorities (e.g. a court or a government agency).
Other legal requirementsThe Company may disclose Your Personal Data in the good faith belief that such action is necessary to:
The security of Your Personal Data is important to Us, but remember that no method of transmission over the Internet, or method of electronic storage is 100% secure. While We strive to use commercially acceptable means to protect Your Personal Data, We cannot guarantee its absolute security.
Our Service does not address anyone under the age of 13. We do not knowingly collect personally identifiable information from anyone under the age of 13.  If We become aware that We have collected Personal Data from anyone under the age of 13 without verification of parental consent, We take steps to remove that information from Our servers.
If We need to rely on consent as a legal basis for processing Your information and Your country requires consent from a parent, We may require Your parent's consent before We collect and use that information.
Our Service may contain links to other websites that are not operated by Us. If You click on a third party link, You will be directed to that third party's site. We strongly advise You to review the Privacy Policy of every site You visit. We have no control over and assume no responsibility for the content, privacy policies or practices of any third party sites or services.
Our Service may contain links to other websites that are not operated by Us. If You click on a third party link, You will be directed to that third party's site. We strongly advise You to review the Privacy Policy of every site You visit. We have no control over and assume no responsibility for the content, privacy policies or practices of any third party sites or services.
We may update Our Privacy Policy from time to time. We will notify You of any changes by posting the new Privacy Policy on this page.
We will let You know via email and/or a prominent notice on Our Service, prior to the change becoming effective and update the "Last updated" date at the top of this Privacy Policy. You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.
If you have any questions about this Privacy Policy, You can contact us:
By email: info@grassion.com


FCC was formed after the merger of two companies in 1992, Construcciones y Contratas, founded in 1944, and Fomento de Obras y Construcciones, year 1900.
It is one of the largest construction companies in Spain and Europe, based on the fact that the most powerful companies in Spain are dedicated to this sector and more than 75% of capitalization of the Spanish selective companies are construction companies, energy and banks.
It is mainly dedicated to the construction of industrial infrastructures, the production of cement and equipment in cities as well as renewable energies. This has a lot to do with Acciona and Abengoa, however the percentage is much lower in its portfolio of projects and does not have as much presence in the countries where these two operate.
In December 2014, FCC would be forced to make a capital increase to clean up its balance sheet, an occasion that took advantage of businessman Carlos Slim , one of the richest men on the planet (the richest before the last technology bubble in the USA) to get hold of most of the shares and have control over FCC.
In fact, the shares are currently formed by the same and by Esther Koplowitz, the highest shareholder previously.
Here I present the data of fundamentals that I think are most important:
| ### | 2015 | 2016 | 2017 | 2018 | 2019 |
|---|---|---|---|---|---|
| Deuda/ Caja empresa | Total debt (M) | - | - | - | - | - |
| Beneficio/valor acción | |||||
| Capitalization(M) | 1.824 | 2.850 | 3.267 | 4.432 | 4.481 |
| EBDITA (M) | - | 834 | 815 | 861 | 904 |
| PER | - | 54 | 50 | 21 | 18 |
| Net Profit(M) | - | -165 | 118 | 252 | 262 |
| Dividendo | 27.6777 | ||||
| Profitability per share |
If we look at the table we see how the capitalization of the company has increased fivefold since the acquisition of the company by Carlos Slim. In the first months after changing ownership the share price was stable and shares were being bought by the owners, as it was expected that the value would not change without profitability until there was new news.
However since then due to the few actions that are in play by funds, agencies and minority with any small movement of these the value began to move up to reach the almost € 13 that are worth today.
The long-term chart shows the evolution of recent years where after the fall after the crisis of 2014 would come a new fall would come a second fall in mid-2015. I myself invested that year around € 6 coming out at € 7. Although it seems that it was very clear that it was going to fall, it was very difficult to predict when it was going to stop . Since it was showing exhaustion salesman and did not reach the final support around 4.5 - 5 € if not the minimum was at € 5.6. From then on rumors of the OPA would begin to come and the price would start to fluctuate. Until the announcement became official. It is not at all brazen to think about this value that from the middle of the 2014 downturn, Slim's funds would be collecting all the paper that other funds and retailers were releasing. Especially from the announcement of the capital increase to achieve large capital gains in the future.
The fact is that as of August 2016, the FCC price would start to move and there would be three attempts to raise the price with the support of most of the shares, at € 7.5. Having approached the € 10 on the second attempt, a revaluation of almost 50%. But these risers were given to avoid the entry of opportunists and trying to get rid of them. The third would break the resistance of € 10 and has recently reached € 13. From September 2017 to September 2018 it would suffer a rise of almost 80% . Being a value of the IBEX35 supposes a disproportionate rise, and partly it has to do much with the plays of the Mexican magnate. Moving not many shares has managed to be in these prices that is a bit virtual anyway because it is overvalued, because if you get rid of only 10% of the shares in a short period of time, the price could go back to € 7 easily .
Analyzing the stock in the short term we see how the resistance is currently slightly above € 13.5 and from there the resistance will go directly to € 16. The behavior of the company is quite good, improving year by year, although for me this company is overvalued. To have in portfolio would not be a bad idea knowing that this almost entirely is in the hands of Slim with what there can be a debacle for an international event, but among other Spanish construction companies that I am analyzing I lean more for ACS or Acciona. Specifically in the short term more by ACS .
© 2016 - All Rights Reserved - Diseñada por Sergio López Martínez
El sitio se mantiene gracias a la publicidad, por favor Desactiva Adblock para seguir navegando
He desactivado Adblock


?Egg
ers:
Flora
Indiae
occid.
exs.
Nr.
Sto.
Domingo
y/**?*'
y—~:
1887.
UNITED
STATES
NATIONAL
HERBARIUM
Olyra
latifolia
L.
et
T
R
Sšderstršm
&
F
O.
Zuloaga.
Aug.
1983
1604243
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Technology
Critic’s notebook deep dives into jutice from Shakespeare Finch.
But I must explain to you how all this mistaken idea of denouncing sure and praising pain was born and I will give you a complete account.
Few Have Lost Races but All Republicans Have Lost Sub Special Elections.
But I must explain to you how all this mistaken idea of denouncing sure and praising pain was born and I will give you a complete account.
Few Have Lost Races but All Republicans Have Lost Sub Special Elections.
But I must explain to you how all this mistaken idea of denouncing sure and praising pain was born and I will give you a complete account.
Few Have Lost Races but All Republicans Have Lost Sub Special Elections.
But I must explain to you how all this mistaken idea of denouncing sure and praising pain was born and I will give you a complete account.
Few Have Lost Races but All Republicans Have Lost Sub Special Elections.
But I must explain to you how all this mistaken idea of denouncing sure and praising pain was born and I will give you a complete account.
Few Have Lost Races but All Republicans Have Lost Sub Special Elections.
But I must explain to you how all this mistaken idea of denouncing sure and praising pain was born and I will give you a complete account.
Few Have Lost Races but All Republicans Have Lost Sub Special Elections.
But I must explain to you how all this mistaken idea of denouncing sure and praising pain was born and I will give you a complete account.
Few Have Lost Races but All Republicans Have Lost Sub Special Elections.
But I must explain to you how all this mistaken idea of denouncing sure and praising pain was born and I will give you a complete account.
Few Have Lost Races but All Republicans Have Lost Sub Special Elections.
But I must explain to you how all this mistaken idea of denouncing sure and praising pain was born and I will give you a complete account.
Few Have Lost Races but All Republicans Have Lost Sub Special Elections.
But I must explain to you how all this mistaken idea of denouncing sure and praising pain was born and I will give you a complete account.


{% load staticfiles %}
Feedback
Help us Improve
Your Feedback matters a lot
{% csrf_token %}
User_name:
email:
Services:
Very Good
Good
Satisfactory
Bad
Guide:
Very Good
Good
Satisfactory
Bad
Querys:


A book with two different stories — you read one side, then flip the book over and read the other one. The technical name for this type of book is tête-bêche; it is sometimes improperly called dos-à-dos, which properly refers to an even stranger book style that has two spines.
Examples:
open/close all folders
Anime & Manga
- In-universe example: In Naruto, Sai has an art book featuring pictures of himself and his brother on their respective journeys through life, each tale chronicled from opposite ends of the book. The picture in the middle is not completed.
Comic Books
- The last issue of the anthology FantaSci, published by Apple Comics, was labeled "An Apple Turnover", with one story on each side, and a centerfold picture of an Eldritch Abomination that looked equally horrible either way up.
Films — Animation
- One of the tie-in picture books for Frozen (2013) worked this way: one side, Anna's Act of Love, told the story from her first-person point-of-view, while the second, Elsa's Icy Magic, did the same from her sister's POV.
Films — Live-Action
- After Borat came out, a double-sided book was released, supposedly written by the titular character. One side was titled "Touristic Guidings to Minor Nation of U.S. and A." and the other side was "Touristic Guidings to Glorious Nation of Kazakhstan". They were both, of course, riddled with broken English and glaring factual errors, as per the usual for Borat.
Literature
- One of the Ghostwriter books (and possibly more) was this: Each side of the book told the story from a different character's viewpoint.
- Mr And Mrs Smith, though the upside-down version only had the initial chapter in which they meet from alternating points of view.
- Ace Books used the format in their Ace Doubles series from the late 1950s through to the early 1970s. Most of the Ace Doubles comprised one book by an established author and one by a relative unknown, in an attempt to boost the unknowns' recognition. It's also worth noting that because of the Doubles' fixed page lengths (usually between 256 and 320 pages) novels often had to be abridged to fit.
- This is also the format of the large-format Monty Python's Life of Brian / Montypythonscrapbook.
- A book published just before the last Harry Potter novel offered the evidence for and against Severus Snape, with each half listing the arguments for one side.
- Only Revolutions by Mark Z. Danielewski.
- One of the Star Trek: Deep Space Nine relaunch books, called Fearful Symmetry. The dualism implied was covering both one woman (Iliana Ghemor) who was surgically altered and sent into deep cover as another woman (Kira Nerys), and their mirror-universe counterparts.
- Brian Froud's Bad Fairies/Good Fairies. The critter in the middle could look like either, depending on which way up the picture is.
- Double Feature: Attack of the Soul-Sucking Brain Zombies/Bride of the Soul-Sucking Brain Zombies, one of the sequels to Geography Club (about the members of a high school gay-straight alliance) by Brent Hartinger, did this.
- The Pirates! In an adventure with scientists and " " Ahab.
- The Incredible Journey to the Center of the Atom by Trevor Day and Nicholas Harris is a popular science book which - depending on whether it is read forward or backward - takes the reader on a trip from the vastness of the galaxy to the individual nucleons, or vice versa; and provides either scientific commentary, or poetic musings, depending on the way.
- There was a tell-all book published about 12 years ago about legendary basketball coach Bob Knight, made in the upside-down way. One side was titled "What a Knight!" and praised his coaching prowess and talked up his skills on the court when he was in his prime. The other side was titled "Knightmares" and generally dealt with Knight's Training from Hell as applied to his players, and his General Ripper relationship with the media.
- There's an old Companion Library edition of Arabian Nights and Aesop's Fables that was published back in 1963 by Grosset & Dunlap.
- The Sesame Street book I'm My Mommy I'm My Daddy was published in 1975. In the center of the book is a two-page spread showing an aerial view of the family's living room.
- This was also used in 1975 for a series of joke books compiled by Larry Wilde — for example, one volume had "The Official Polish Joke Book" on one side and "The Official Italian Joke Book" on the other.
- Beatrice and Virgil by Yann Martel looks like one of these, and the author character in the book writes an unsuccessful version of one, but if you start reading at the back, you'll come across the tail end of a list and probably start at the real beginning.
- Escape From War by James Riordan, a WWII history children's book: one side told the story of Frank, a boy growing up in wartime Britain, and the other told the story of Hannah, a Jewish girl who escapes Nazi Germany. The stories intersect at the end, where the Jewish girl gives a talk in front of the boy's classroom.
- Tor Books' double-sided book series: #9 is The Ugly Little Boy and The Widget, The Wadget And Boff.
- Viz Media's physical release of The Homestuck Epilogues.
- Ace Books double novel series has D-110; No World Of Their Own by Poul Anderson on the front and The 1,000 Year Plan by Isaac Asimov (the first novel of The Foundation Trilogy) on the back.
Music
- Rare double tracked records contain two pieces of music on the same side accessible depending on where you placed the needle. Specific examples can be found on the Hidden Track page.
Print Media
- Manga anthology magazine Yen Plus works like this, but slightly different from the usual; manhwa and OEL manga (which read left to right) are on one side, manga (reading right to left) on the other.
- Bugs Bunny & Co., a German mag in the 90s printing comics based on Looney Tunes and its Spin Offs, did this in its twilight years.
- Many, many equipment manuals with English on one side and Spanish or French on the other.
Tabletop Games
- Traveller Classic's "Double Adventures" were like this. Each book had two mini-adventures, printed upside down to each other.
- Several Dark Sun adventures for Dungeons & Dragons used this format: DS1 Freedom, DSQ1 Road to Urik, DSQ2 Arcane Shadows, DSQ3 Asticlian Gambit and DSE1 Dragon's Crown.
- The Call of Cthulhu double adventure The Vanishing Conjurer/The Statue of the Sorcerer, by Chaosium and Games Workshop.
- The third edition of In Nomine Satanis / Magna Veritas had In Nomine Satanis on one side of the book, Magna Veritas on the other.
Theatre
- Yin and Yang, a short play about Erast Fandorin, is like this. Each side of the book contains exactly the same criminal case with only a few key differences that lead up to a largely different conclusions.
Video Games
- The Strategy Guide for Ghostbusters: The Video Game. One side is the "Realistic" version for PlayStation 3, Xbox 360 and PC, and the other is the "Stylistic" version for Wii and PlayStation 2.
- Other cross-platform-but-different-for-each games have done the same thing; this includes Star Wars: The Force Unleashed and Indiana Jones and the Staff of Kings.
Western Animation
- Adventure Time: The Enchiridion & Marcy's Super Secret Scrapbook!!!: One half of this book is the Enchiridion featured in the show, the other is Marceline's childhood diary.


Watch Coldplay perform new track ‘Everyday Life’ on SNL
The band also played new single 'Orphans'
Coldplay gave viewers a debut performance of ‘Everyday Life’, the title track from their new album, on Saturday Night Live last night (November 2).
Last month, the band confirmed that they’ll release the double album on November 22 – split into two halves called ‘Sunrise’ and ‘Sunset’ respectively. The first two tracks to arrive from the album were ‘Orphans’ and ‘Arabesque’.
The band played ‘Orphans’ last night, as well as the brand new ballad. Watch the videos for both performances below.
Unlike previous appearances on SNL, the band did not take part in any skits last night, although Chris Martin and co. have already demonstrated their comedy prowess this week. On Friday (November 1) the band released a parody press conference video to mark the announcement that they will launch new album ‘Everyday Life’ with two performances in Jordan.
Sharing that they will preview the new album by performing it at two shows in Amman on November 22, the news was accompanied by a hilarious press conference featuring Portlandia stars Fred Armisen and Carrie Brownstein.
Asked a series of awkward questions, including “Why still continue with Coldplay?” and “I was wondering if you were familiar with the old quote: ‘When the songs are dire call the gospel choir’?” there’s even a moment when Armisen switches places with Chris Martin and does an overstated impression of the frontman.