| XMEGA Application Note | |||||
#include "avr_compiler.h"
Go to the source code of this file.
Defines | |
| #define | RTC32_GetCompareFlag() ( RTC32.INTFLAGS & RTC32_COMPIF_bm ) |
| This macro returns the status of the RTC compare flag. | |
| #define | RTC32_GetCompareValue() ( RTC32.COMP ) |
| This macro returns the current RTC compare value. | |
| #define | RTC32_GetOverflowFlag() ( RTC32.INTFLAGS & RTC32_OVFIF_bm ) |
| This macro returns the status of the RTC overflow flag. | |
| #define | RTC32_GetPeriod() ( RTC32.PER ) |
| This macro returns the current RTC period value. | |
| #define | RTC32_SetCompareValue(_cmpVal) ( RTC32.COMP = (_cmpVal) ) |
| This macro sets a new RTC compare value. | |
| #define | RTC32_SyncBusy() ( RTC32.SYNCCTRL & RTC32_SYNCBUSY_bm ) |
| This macro returns the RTC32 CNT/CTRL write synchronization flag. | |
| #define | RTC32_SyncCnt() ( RTC32.SYNCCTRL |= RTC32_SYNCCNT_bm ) |
| This macro initiates read synchronization of the RTC32 CNT register. | |
| #define | RTC32_SyncCntBusy() ( RTC32.SYNCCTRL & RTC32_SYNCCNT_bm ) |
| This macro returns the RTC32 CNT read synchronization flag. | |
| #define | RTC32_ToscBusy() !( VBAT.STATUS & VBAT_XOSCRDY_bm ) |
| This macro returns the XOSC/TOSC ready flag. | |
Functions | |
| uint32_t | RTC32_GetCount (void) |
| This function returns the current RTC count value. | |
| void | RTC32_Initialize (uint32_t period, uint32_t count, uint32_t compareValue) |
| This function initializes the RTC with period, initial count and compare value. | |
| void | RTC32_Reset (void) |
| This function resets the battery backup module and disables the RTC. | |
| void | RTC32_SetAlarm (uint32_t alarmTimeout) |
| This function sets a timeout alarm. | |
| void | RTC32_SetCompareIntLevel (RTC32_COMPINTLVL_t intLevel) |
| This function sets the RTC compare interrupt level. | |
| void | RTC32_SetCount (uint32_t count) |
| This function sets a new RTC count value. | |
| void | RTC32_SetIntLevels (RTC32_OVFINTLVL_t ovfIntLevel, RTC32_COMPINTLVL_t compIntLevel) |
| This function sets both compare and overflow interrupt levels in one go. | |
| void | RTC32_SetOverflowIntLevel (RTC32_OVFINTLVL_t intLevel) |
| This function sets the RTC overflow interrupt level. | |
| void | RTC32_SetPeriod (uint32_t period) |
| This function sets a new RTC period. | |
| void | RTC32_ToscEnable (bool use1khz) |
| This function starts the 32 kHz crystal oscillator with 1 or 1024 Hz clock output. |
This file contains the function prototypes and enumerator definitions for various configuration parameters for the XMEGA 32-bit RTC driver.
Copyright (c) 2008, Atmel Corporation All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. The name of ATMEL may not be used to endorse or promote products derived from this software without specific prior written permission.

Definition in file rtc32_driver.h.
| #define RTC32_GetCompareFlag | ( | ) | ( RTC32.INTFLAGS & RTC32_COMPIF_bm ) |
This macro returns the status of the RTC compare flag.
Definition at line 93 of file rtc32_driver.h.
| #define RTC32_GetCompareValue | ( | ) | ( RTC32.COMP ) |
This macro returns the current RTC compare value.
This is the compare value of the RTC, which will be compared to the count sequence. The compare value must be less than or equal to PER.
Definition at line 119 of file rtc32_driver.h.
| #define RTC32_GetOverflowFlag | ( | ) | ( RTC32.INTFLAGS & RTC32_OVFIF_bm ) |
This macro returns the status of the RTC overflow flag.
Definition at line 87 of file rtc32_driver.h.
| #define RTC32_GetPeriod | ( | ) | ( RTC32.PER ) |
This macro returns the current RTC period value.
This is the period value of the RTC, which is the top of the count sequence.
Definition at line 101 of file rtc32_driver.h.
| #define RTC32_SetCompareValue | ( | _cmpVal | ) | ( RTC32.COMP = (_cmpVal) ) |
This macro sets a new RTC compare value.
This is the compare value of the RTC, which will be compared to the count sequence. The compare value must be less than the RTC period.
| _cmpVal | The new compare value. |
Definition at line 110 of file rtc32_driver.h.
| #define RTC32_SyncBusy | ( | ) | ( RTC32.SYNCCTRL & RTC32_SYNCBUSY_bm ) |
This macro returns the RTC32 CNT/CTRL write synchronization flag.
Definition at line 62 of file rtc32_driver.h.
Referenced by RTC32_Initialize(), RTC32_Reset(), RTC32_SetCount(), and RTC32_SetPeriod().
| #define RTC32_SyncCnt | ( | ) | ( RTC32.SYNCCTRL |= RTC32_SYNCCNT_bm ) |
This macro initiates read synchronization of the RTC32 CNT register.
Initiates synchronization of CNT register from RTC to system clock domain.
Definition at line 74 of file rtc32_driver.h.
Referenced by RTC32_GetCount(), and RTC32_SetAlarm().
| #define RTC32_SyncCntBusy | ( | ) | ( RTC32.SYNCCTRL & RTC32_SYNCCNT_bm ) |
This macro returns the RTC32 CNT read synchronization flag.
Definition at line 81 of file rtc32_driver.h.
Referenced by RTC32_GetCount(), and RTC32_SetAlarm().
| #define RTC32_ToscBusy | ( | ) | !( VBAT.STATUS & VBAT_XOSCRDY_bm ) |
This macro returns the XOSC/TOSC ready flag.
Definition at line 68 of file rtc32_driver.h.
Referenced by RTC32_ToscEnable().
| uint32_t RTC32_GetCount | ( | void | ) |
This function returns the current RTC count value.
This function synchronizes the RTC32 module's CNT value to the system clock domain, then returns its value.
Definition at line 221 of file rtc32_driver.c.
References RTC32_SyncCnt, and RTC32_SyncCntBusy.
00222 { 00223 /* Synchronize the RTC module's CNT value to the system clock domain. */ 00224 RTC32_SyncCnt(); 00225 do { } while ( RTC32_SyncCntBusy() ); 00226 00227 return RTC32.CNT; 00228 }
| void RTC32_Initialize | ( | uint32_t | period, | |
| uint32_t | count, | |||
| uint32_t | compareValue | |||
| ) |
This function initializes the RTC with period, initial count and compare value.
All the synchronized registers are written at the same time to save time.
| period | RTC period. Topvalue = Period - 1. | |
| count | Initial RTC count. | |
| compareValue | Compare value. |
Definition at line 106 of file rtc32_driver.c.
References RTC32_SyncBusy.
Referenced by main().
00109 { 00110 /* Disable the RTC32 module before writing to it. Wait for synch. */ 00111 RTC32.CTRL &= ~RTC32_ENABLE_bm; 00112 do { } while ( RTC32_SyncBusy() ); 00113 00114 /* Write PER, COMP and CNT. */ 00115 RTC32.PER = period - 1; 00116 RTC32.COMP = compareValue; 00117 RTC32.CNT = count; 00118 00119 /* Re-enable the RTC32 module, synchronize before returning. */ 00120 RTC32.CTRL |= RTC32_ENABLE_bm; 00121 do { } while ( RTC32_SyncBusy() ); 00122 }
| void RTC32_Reset | ( | void | ) |
This function resets the battery backup module and disables the RTC.
Definition at line 63 of file rtc32_driver.c.
References ENTER_CRITICAL_REGION, LEAVE_CRITICAL_REGION, and RTC32_SyncBusy.
Referenced by main().
00064 { 00065 /* Enable R/W access to the battery backup module. */ 00066 VBAT.CTRL = VBAT_ACCEN_bm; 00067 00068 /* Reset the module. (Reset bit is protected by CCP.) */ 00069 ENTER_CRITICAL_REGION(); 00070 CCP = 0xD8; 00071 VBAT.CTRL = VBAT_RESET_bm; 00072 LEAVE_CRITICAL_REGION(); 00073 00074 /* The RTC32 module may be enabled after reset. Disable it now. */ 00075 RTC32.CTRL &= ~RTC32_ENABLE_bm; 00076 do { } while ( RTC32_SyncBusy() ); 00077 }
| void RTC32_SetAlarm | ( | uint32_t | alarmTimeout | ) |
This function sets a timeout alarm.
This function sets a timeout alarm by adding the timeout to the current count value. If the resulting alarm value is larger than the RTC period value, it will wrap around. An RTC compare interrupt will be triggered¨ after the specified timeout.
The timeout must be less than the timer period. The timeout should not be set too low, as the timeout may be missed, depending on CPU speed.
| alarmTimeout | Timeout time in RTC clock cycles (scaled). |
Definition at line 175 of file rtc32_driver.c.
References RTC32_SyncCnt, and RTC32_SyncCntBusy.
00176 { 00177 uint32_t compareValue; 00178 00179 /* Synchronize CNT from RTC to system clock domain. */ 00180 RTC32_SyncCnt(); 00181 do { } while ( RTC32_SyncCntBusy() ); 00182 00183 /* Calculate compare time. */ 00184 compareValue = RTC32.CNT + alarmTimeout; 00185 00186 /* Wrap on period. */ 00187 if (compareValue > RTC32.PER){ 00188 compareValue -= RTC32.PER; 00189 } 00190 00191 /* Add the timeout value to get the absolute time of the alarm. */ 00192 RTC32.COMP = compareValue; 00193 }
| void RTC32_SetCompareIntLevel | ( | RTC32_COMPINTLVL_t | intLevel | ) |
This function sets the RTC compare interrupt level.
| intLevel | The compare interrupt level. |
Definition at line 139 of file rtc32_driver.c.
Referenced by ISR(), and main().
| void RTC32_SetCount | ( | uint32_t | count | ) |
This function sets a new RTC count value.
This function waits for the RTC32 module to finish synchronizing the CNT and CTRL registers before writing the new count.
The function does not return until the CNT register has synchronized from the system to RTC clock domain.
| count | The new RTC count value. |
Definition at line 204 of file rtc32_driver.c.
References RTC32_SyncBusy.
00205 { 00206 /* Make sure that CNT is not currently synchronizing, or write will fail. */ 00207 do { } while ( RTC32_SyncBusy() ); 00208 00209 /* Write new count value and wait for synchronization before returning. */ 00210 RTC32.CNT = count; 00211 do { } while ( RTC32_SyncBusy() ); 00212 }
| void RTC32_SetIntLevels | ( | RTC32_OVFINTLVL_t | ovfIntLevel, | |
| RTC32_COMPINTLVL_t | compIntLevel | |||
| ) |
This function sets both compare and overflow interrupt levels in one go.
| ovfIntLevel | The overflow interrupt level. | |
| compIntLevel | The compare interrupt level. |
Definition at line 151 of file rtc32_driver.c.
00153 { 00154 RTC32.INTCTRL = ( RTC32.INTCTRL & 00155 ~( RTC32_COMPINTLVL_gm | RTC32_OVFINTLVL_gm ) ) | 00156 ovfIntLevel | 00157 compIntLevel; 00158 }
| void RTC32_SetOverflowIntLevel | ( | RTC32_OVFINTLVL_t | intLevel | ) |
This function sets the RTC overflow interrupt level.
| intLevel | The overflow interrupt level. |
Definition at line 129 of file rtc32_driver.c.
| void RTC32_SetPeriod | ( | uint32_t | period | ) |
This function sets a new RTC period.
This function disables the RTC32 module, writes the new period to its PER register, then re-enables the module.
| period | The new RTC period. |
Definition at line 237 of file rtc32_driver.c.
References RTC32_SyncBusy.
00238 { 00239 /* Disable the RTC32 module before writing to it. Wait for synch. */ 00240 RTC32.CTRL &= ~RTC32_ENABLE_bm; 00241 do { } while ( RTC32_SyncBusy() ); 00242 00243 RTC32.PER = period; 00244 00245 /* Enable the RTC32 module. Wait for synch. */ 00246 RTC32.CTRL |= RTC32_ENABLE_bm; 00247 do { } while ( RTC32_SyncBusy() ); 00248 }
| void RTC32_ToscEnable | ( | bool | use1khz | ) |
This function starts the 32 kHz crystal oscillator with 1 or 1024 Hz clock output.
| use1khz | Boolean for selecting 1 kHz or 1 Hz RTC clock rate. |
Definition at line 84 of file rtc32_driver.c.
References RTC32_ToscBusy.
Referenced by main().
00085 { 00086 /* Enable 32 kHz XTAL oscillator, with 1 kHz or 1 Hz output. */ 00087 if (use1khz) 00088 VBAT.CTRL |= ( VBAT_XOSCEN_bm | VBAT_XOSCSEL_bm ); 00089 else 00090 VBAT.CTRL |= ( VBAT_XOSCEN_bm ); 00091 00092 /* Wait for oscillator to stabilize before returning. */ 00093 do { } while ( RTC32_ToscBusy() ); 00094 }
| Generated on Mon Nov 9 13:44:33 2009 for XMEGA power consumption evaluation code by 1.5.9 |


Enabling Firefox automation is straightforward:
- Make sure a recent version of
Firefox
suitable to your platform is installed locally. For Linux and Mac OS,
firefox
or
firefox-bin
is expected to be found in the $PATH
environment variable. The order of
paths in $PATH
determines the precedence in being selected as the target executable for
automation. For Windows, Firefox is expected to be installed in either
%ProgramFiles%\Mozilla Firefox
or%ProgramFiles(x86)%\Mozilla Firefox
.
- Set
nexial.browser
to firefox
.
- Begin scripting...
Enabling Chrome automation requires the following steps:
- Make sure a recent version of
Chrome suitable to
your platform is installed locally. Linux installation differs based on distro - check distribution vendor
website or Google for more details. Be sure that
google-chrome
can be found in
$PATH
environment variable. For Mac, Google Chrome
is expected to be installed
either in the standard /Applications/Google Chrome.app
or in the home directory of the current
user (give precedence).
- Set
nexial.browser
to chrome
.
- Begin scripting...
Mobile Device Emulation
It is possible to emulate mobile devices during automation via the Chrome webdriver (i.e.
nexial.browser
as
chrome
).
There are 2 ways of enabling mobile device emulation:
- via the
nexial.browser.emulation.deviceName
data variable
- via the
nexial.browser.emulation.userAgent
data variable.
The first approach is simpler. Simply specify a mobile device name that is supported by the Chrome browser to
enable such emulation. For example,
The second approach offers finer controls. Along with the "User Agent" string to match the target mobile device,
one can also specify the width (via
nexial.browser.emulation.width
data variable), the height
(
nexial.browser.emulation.height
data variable), the pixel ratio (via the
nexial.browser.emulation.pixelRatio
data variable) and touch activation (via the
nexial.browser.emulation.touch
data variable). For example,
Note that
nexial.browser.emulation.pixelRatio
defaults to
3.0
and
nexial.browser.emulation.touch
defaults to
true
.
For a list of supported mobile devices and their respective "user-agent" string, visit the following link:
Chrome's Emulated Devices JSON
For more information about mobile device emulation, visit ChromeDriver's
Mobile Emulation page. While it is cost-effective to use the emulation capability of ChromeDriver, it is
noteworthy that there are
known issues and limitations of using ChromeDriver's mobile
emulation.
Note that uring device emulation, the screen capturing might cause a sudden "grow-and-shrink" behavior as shown
below:
Emulators cannot accurately reflect the real devices in terms of hardware and OS-specific nuances. For more
accurate testing, consider using
BrowserStack
or
CrossBrowserTesting
services (both commercial) instead.
Chrome Embedded Framework, or CEF for short, is
an open-source
framework for embedding chrome browser (technically chromium) in a desktop application. The ability to do
so opens up a wide range of possibilities in application development.
To enable CEF automation, follow these steps:
- Make sure the Chrome-embedded application (AUT) is properly installed. In most cases, one should find a
libcef.dll
or libcef.so
in the same location as the CEF-enabled application.
- Set
nexial.browser
to
chrome.embedded
.
- Set
nexial.browser.embedded.appLocation
to the full path of the application executable program.
- Begin scripting...
Electron is an open-source framework to create desktop applications using JavaScript. It combines the use
of Node.js runtime as the backend and Chromium as the frontend engine to create a compelling, cross-platform
desktop GUI framework that powers popular applications such as Atom, Microsoft team, Microsoft Visual Studio
Code, WhatsApp, Slack and Cycligent.
To enable Electron application automation, follow these steps:
- Make sure the target Electron application is properly installed.
- Set
nexial.browser
to
electron
.
- Set
nexial.browser.electron.appLocation
to the full path of the executable program. For MacOS,
the executable is usually found under $APPLICATION/Contents/MacOS/
.
- Begin scripting...
Enabling Safari automation requires the following steps:
- Make sure a recent version of
Safari is installed locally. Only MacOS is supported for safari automation at this time.
- Set
nexial.browser
to safari
.
- Begin scripting...
Enabling IE automation requires the following steps:
- Make sure a recent version of
Internet Explorer suitable to your platform is installed locally. Only Windows 7 and above is
supported at this time.
- Set
nexial.browser
to ie
.
- Be sure to read through and follow the recommendations listed in
Web Automation On IE.
- Begin scripting...
Enabling Edge automation requires the following steps:
- Make sure a recent version of Microsoft Edge Browser
suitable to your platform is installed locally. Only Windows 10 is supported at this time.
- Set
nexial.browser
to edge
.
- Be sure to read through and follow the recommendations listed in
Improving IE Automation (these recommendations apply to
Edge as well!).
- Begin scripting...
Enabling Chromium Based Edge automation requires the following steps:
- Make sure a recent version of Microsoft Edge Chromium Browser
suitable to your platform is installed locally. Only Windows is supported at this time. To find out browser
version locally, please go through How to check Edge
version
- Set
nexial.browser
to
edgechrome
.
- Be sure to read through and follow the recommendations listed in
Improving IE Automation (these recommendations apply to
Edge as well!).
- Begin scripting...
BrowserStack is a popular
cloud, web and mobile testing platform that enables developers to test their websites and mobile applications
across on-demand browsers, operating systems, and real mobile devices. This is a paid service.
To enable BrowserStack integration, be sure to read up on the
BrowserStack Integration page.
excerpts from
CrossBrowserTesting.com:
... Browser testing is a method of quality assurance for web applications across multiple browsers. ...
It’s implemented to ensure a website’s functionality and design and includes testing a range of
devices and operating systems being used in the market and customer base.
CrossBrowserTesting
is a popular cloud, web and mobile testing platform that enables developers to test their websites and mobile
applications across on-demand browsers, operating systems, and real mobile devices. And, much like BrowserStack,
this is also a paid service.
To enable CrossBrowserTesting integration, be sure to read up on the
CrossBrowserTesting Integration page.


pip_services3_commons.validate package¶
Submodules¶
- pip_services3_commons.validate.AndRule module
- pip_services3_commons.validate.ArraySchema module
- pip_services3_commons.validate.AtLeastOneExistRule module
- pip_services3_commons.validate.ExcludedRule module
- pip_services3_commons.validate.FilterParamsSchema module
- pip_services3_commons.validate.IValidationRule module
- pip_services3_commons.validate.IncludedRule module
- pip_services3_commons.validate.MapSchema module
- pip_services3_commons.validate.NotRule module
- pip_services3_commons.validate.ObjectComparator module
- pip_services3_commons.validate.ObjectSchema module
- pip_services3_commons.validate.OnlyOneExistRule module
- pip_services3_commons.validate.OrRule module
- pip_services3_commons.validate.PagingParamsSchema module
- pip_services3_commons.validate.PropertiesComparisonRule module
- pip_services3_commons.validate.PropertySchema module
- pip_services3_commons.validate.Schema module
- pip_services3_commons.validate.ValidationException module
- pip_services3_commons.validate.ValidationResult module
- pip_services3_commons.validate.ValidationResultType module
- pip_services3_commons.validate.ValueComparisonRule module
Module contents¶
pip_services3_commons.validate.__init__¶
Validation frameworks exist in various languages, but since this is one of the underlying functions that is incorporated into (various) other packages, we decided to implement it in a portable format, for identical implementation across languages.
| copyright: | Conceptual Vision Consulting LLC 2018-2019, see AUTHORS for more details. |
|---|---|
| license: | MIT, see LICENSE for more details. |
-
class
pip_services3_commons.validate.
ValidationResultType
¶ Bases:
object
Types of validation results generated by validation schemas.
-
Error
= 2¶
-
Information
= 0¶
-
Warning
= 1¶
-
-
class
pip_services3_commons.validate.
ValidationResult
(path=None, type=None, code=None, message=None, expected=None, actual=None)¶ Bases:
object
Result generated by schema validation
-
actual
= None¶
-
code
= None¶
-
expected
= None¶
-
message
= None¶
-
path
= None¶
-
type
= None¶
-
-
exception
pip_services3_commons.validate.
ValidationException
(correlation_id, results)¶ Bases:
pip_services3_commons.errors.BadRequestException.BadRequestException
Errors in schema validation.
Validation errors are usually generated based in [[ValidationResult]]. If using strict mode, warnings will also raise validation exceptions.
-
static
compose_message
(results)¶ Composes human readable error message based on validation results.
Parameters: results – a list of validation results. Returns: a composed error message.
-
static
throw_exception_if_needed
(correlation_id, results, strict)¶ Throws ValidationException based on errors in validation results. If validation results have no errors, than no exception is thrown.
Parameters: - correlation_id – (optional) transaction id to trace execution through call chain.
- results – list of validation results that may contain errors
- strict – true to treat warnings as errors.
-
static
-
class
pip_services3_commons.validate.
IValidationRule
¶ Bases:
object
Interface for validation rules. Validation rule can validate one or multiple values against complex rules like: value is in range, one property is less than another property, enforce enumerated values and more.
This interface allows to implement custom rules.
-
validate
(path, schema, value, results)¶ Validates a given value against this rule.
Parameters: - path – a dot notation path to the value.
- schema – a schema this rule is called from
- value – a value to be validated.
- results – a list with validation results to add new results.
-
-
class
pip_services3_commons.validate.
AndRule
(*rules)¶ Bases:
pip_services3_commons.validate.IValidationRule.IValidationRule
Validation rule to combine rules with AND logical operation. When all rules returns no errors, than this rule also returns no errors. When one of the rules return errors, than the rules returns all errors.
- Example:
schema = Schema().with_rule(AndRule(ValueComparisonRule(“GTE”, 1), ValueComparisonRule(“LTE”, 10)))
schema.validate(0) // Result: 0 must be greater or equal to 1 schema.validate(5) // Result: no error schema.validate(20) // Result: 20 must be letter or equal 10
-
validate
(path, schema, value, results)¶ Validates a given value against this rule.
Parameters: - path – a dot notation path to the value.
- schema – a schema this rule is called from
- value – a value to be validated.
- results – a list with validation results to add new results.
-
class
pip_services3_commons.validate.
OrRule
(*rules)¶ Bases:
pip_services3_commons.validate.IValidationRule.IValidationRule
Validation rule to combine rules with OR logical operation. When one of rules returns no errors, than this rule also returns no errors. When all rules return errors, than the rule returns all errors.
- Example:
schema = Schema().with_rule(OrRule(ValueComparisonRule(“LT”, 1), ValueComparisonRule(“GT”, 10)))
schema.validate(0) // Result: no error schema.validate(5) // Result: 5 must be less than 1 or 5 must be more than 10 schema.validate(20) // Result: no error
-
validate
(path, schema, value, results)¶ Validates a given value against this rule.
Parameters: - path – a dot notation path to the value.
- schema – a schema this rule is called from
- value – a value to be validated.
- results – a list with validation results to add new results.
-
class
pip_services3_commons.validate.
NotRule
(rule)¶ Bases:
pip_services3_commons.validate.IValidationRule.IValidationRule
Validation rule negate another rule. When embedded rule returns no errors, than this rule return an error. When embedded rule return errors, than the rule returns no errors.
- Example:
schema = Schema().with_rule(NotRule(ValueComparisonRule(“EQ”, 1)))
schema.validate(1) // Result: error schema.validate(5) // Result: no error
-
validate
(path, schema, value, results)¶ Validates a given value against this rule.
Parameters: - path – a dot notation path to the value.
- schema – a schema this rule is called from
- value – a value to be validated.
- results – a list with validation results to add new results.
-
class
pip_services3_commons.validate.
ObjectComparator
¶ Bases:
object
Helper class to perform comparison operations over arbitrary values.
- Example:
- ObjectComparator.compare(2, “GT”, 1) // Result: true ObjectComparator.areEqual(“A”, “B”) // Result: false
-
static
are_equal
(value1, value2)¶ Checks if two values are equal. The operation can be performed over values of any type.
Parameters: - value1 – the first value to compare
- value2 – the second value to compare
Returns: true if values are equal and false otherwise
-
static
are_not_equal
(value1, value2)¶ Checks if two values are NOT equal. The operation can be performed over values of any type.
Parameters: - value1 – the first value to compare
- value2 – the second value to compare
Returns: true if values are NOT equal and false otherwise
-
static
compare
(value1, operation, value2)¶ Perform comparison operation over two arguments. The operation can be performed over values of any type.
Parameters: - value1 – the first argument to compare
- operation – the comparison operation: “==” (“=”, “EQ”), “!= ” (“<>”, “NE”); “<”/”>” (“LT”/”GT”), “<=”/”>=” (“LE”/”GE”); “LIKE”.
- value2 – the second argument to compare
Returns: result of the comparison operation
-
static
less
(value1, value2)¶ Checks if first value is less than the second one. The operation can be performed over numbers or strings.
Parameters: - value1 – the first value to compare
- value2 – the second value to compare
Returns: true if the first value is less than second and false otherwise.
-
static
match
(value1, value2)¶ Checks if string matches a regular expression
Parameters: - value1 – a string value to match
- value2 – a regular expression string
Returns: true if the value matches regular expression and false otherwise.
-
static
more
(value1, value2)¶ Checks if first value is greater than the second one. The operation can be performed over numbers or strings.
Parameters: - value1 – the first value to compare
- value2 – the second value to compare
Returns: true if the first value is greater than second and false otherwise.
-
class
pip_services3_commons.validate.
ValueComparisonRule
(operation, value)¶ Bases:
pip_services3_commons.validate.IValidationRule.IValidationRule
Validation rule that compares value to a constant.
- Example:
schema = Schema().with_rule(ValueComparisonRule(“EQ”, 1))
schema.validate(1) // Result: no errors schema.validate(2) // Result: 2 is not equal to 1
-
validate
(path, schema, value, results)¶ Validates a given value against this rule.
Parameters: - path – a dot notation path to the value.
- schema – a schema this rule is called from
- value – a value to be validated.
- results – a list with validation results to add new results.
-
class
pip_services3_commons.validate.
PropertiesComparisonRule
(property1, operation, property2)¶ Bases:
pip_services3_commons.validate.IValidationRule.IValidationRule
Validation rule that compares two object properties.
- Example:
schema = ObjectSchema().with_rule(PropertyComparisonRule(“field1”, “NE”, “field2”))
schema.validate({ field1: 1, field2: 2 }) // Result: no errors schema.validate({ field1: 1, field2: 1 }) // Result: field1 shall not be equal to field2 schema.validate({}) // Result: no errors
-
validate
(path, schema, value, results)¶ Validates a given value against this rule.
Parameters: - path – a dot notation path to the value.
- schema – a schema this rule is called from
- value – a value to be validated.
- results – a list with validation results to add new results.
-
class
pip_services3_commons.validate.
OnlyOneExistRule
(*properties)¶ Bases:
pip_services3_commons.validate.IValidationRule.IValidationRule
Validation rule that check that at exactly one of the object properties is not null.
- Example:
schema = Schema().with_rule(OnlyOneExistsRule(“field1”, “field2”))
schema.validate({ field1: 1, field2: “A” }) // Result: only one of properties field1, field2 must exist schema.validate({ field1: 1 }) // Result: no errors schema.validate({ }) // Result: only one of properties field1, field2 must exist
-
validate
(path, schema, value, results)¶ Validates a given value against this rule.
Parameters: - path – a dot notation path to the value.
- schema – a schema this rule is called from
- value – a value to be validated.
- results – a list with validation results to add new results.
-
class
pip_services3_commons.validate.
ExcludedRule
(*values)¶ Bases:
pip_services3_commons.validate.IValidationRule.IValidationRule
Validation rule to check that value is excluded from the list of constants.
- Example:
schema = Schema().with_rule(ExcludedRule(1, 2, 3))
schema.validate(2) // Result: 2 must not be one of 1, 2, 3 schema.validate(10) // Result: no errors
-
validate
(path, schema, value, results)¶ Validates a given value against this rule.
Parameters: - path – a dot notation path to the value.
- schema – a schema this rule is called from
- value – a value to be validated.
- results – a list with validation results to add new results.
-
class
pip_services3_commons.validate.
IncludedRule
(*values)¶ Bases:
pip_services3_commons.validate.IValidationRule.IValidationRule
Validation rule to check that value is included into the list of constants.
- Example:
schema = new Schema().with_rule(IncludedRule(1, 2, 3))
schema.validate(2) // Result: no errors schema.validate(10) // Result: 10 must be one of 1, 2, 3
-
validate
(path, schema, value, results)¶ Validates a given value against this rule.
Parameters: - path – a dot notation path to the value.
- schema – a schema this rule is called from
- value – a value to be validated.
- results – a list with validation results to add new results.
-
class
pip_services3_commons.validate.
Schema
(required=False, rules=None)¶ Bases:
object
Basic schema that validates values against a set of validation rules.
This schema is used as a basis for specific schemas to validate objects, project properties, arrays and maps.
-
make_optional
()¶ Makes validated values optional. Validation for null values will be skipped.
This method returns reference to this exception to implement Builder pattern to chain additional calls.
Returns: this validation schema
-
make_required
()¶ Makes validated values always required (non-null). For null values the schema will raise errors.
This method returns reference to this exception to implement Builder pattern to chain additional calls.
Returns: this validation schema
-
required
= None¶
-
rules
= None¶
-
validate
(value)¶ Validates the given value and results validation results.
Parameters: value – a value to be validated. Returns: a list with validation results.
-
validate_and_throw_exception
(correlation_id, value, strict=False)¶ Validates the given value and throws a [[ValidationException]] if errors were found.
Parameters: - correlation_id – (optional) transaction id to trace execution through call chain.
- value – a value to be validated.
- strict – true to treat warnings as errors.
-
with_rule
(rule)¶ Adds validation rule to this schema.
This method returns reference to this exception to implement Builder pattern to chain additional calls.
Parameters: rule – a validation rule to be added. Returns: this validation schema.
-
-
class
pip_services3_commons.validate.
PropertySchema
(name=None, value_type=None)¶ Bases:
pip_services3_commons.validate.Schema.Schema
Schema to validate object properties
- Example:
schema = ObjectSchema().with_property(PropertySchema(“id”, TypeCode.String))
schema.validate({ id: “1”, name: “ABC” }) // Result: no errors schema.validate({ name: “ABC” }) // Result: no errors schema.validate({ id: 1, name: “ABC” }) // Result: id type mismatch
-
name
= None¶
-
value_type
= None¶
-
class
pip_services3_commons.validate.
ObjectSchema
¶ Bases:
pip_services3_commons.validate.Schema.Schema
Schema to validate user defined objects.
- Example:
- schema = ObjectSchema(false)
- .with_optional_property(“id”, TypeCode.String) .with_required_property(“name”, TypeCode.String)
schema.validate({ id: “1”, name: “ABC” }) // Result: no errors schema.validate({ name: “ABC” }) // Result: no errors schema.validate({ id: 1, name: “ABC” }) // Result: id type mismatch schema.validate({ id: 1, _name: “ABC” }) // Result: name is missing, unexpected _name schema.validate(“ABC”) // Result: type mismatch
-
allow_undefined
(value)¶ Sets flag to allow undefined properties
This method returns reference to this exception to implement Builder pattern to chain additional calls.
Parameters: value – true to allow undefined properties and false to disallow. Returns: this validation schema.
-
is_allow_undefined
= None¶
-
properties
= None¶
-
with_optional_property
(name, typ, *rules)¶ Adds a validation schema for an optional object property.
Parameters: - name – a property name.
- typ – (optional) a property schema or type.
- rules – (optional) a list of property validation rules.
Returns: the validation schema
-
with_property
(schema)¶ Adds a validation schema for an object property.
This method returns reference to this exception to implement Builder pattern to chain additional calls.
Parameters: schema – a property validation schema to be added. Returns: this validation schema.
-
with_required_property
(name, typ, *rules)¶ Adds a validation schema for a required object property.
Parameters: - name – a property name.
- typ – (optional) a property schema or type.
- rules – (optional) a list of property validation rules.
Returns: the validation schema
-
class
pip_services3_commons.validate.
ArraySchema
(value_type)¶ Bases:
pip_services3_commons.validate.Schema.Schema
Schema to validate arrays.
- Example:
schema = ArraySchema(TypeCode.String)
schema.validate([“A”, “B”, “C”]) // Result: no errors schema.validate([1, 2, 3]) // Result: element type mismatch schema.validate(“A”) // Result: type mismatch
-
value_type
= None¶
-
class
pip_services3_commons.validate.
MapSchema
(key_type=None, value_type=None)¶ Bases:
pip_services3_commons.validate.Schema.Schema
Schema to validate maps.
- Example:
- schema = MapSchema(TypeCode.String, TypeCode.Integer) schema.validate({ “key1”: “A”, “key2”: “B” }) // Result: no errors schema.validate({ “key1”: 1, “key2”: 2 }) // Result: element type mismatch schema.validate([ 1, 2, 3 ]) // Result: type mismatch
-
key_type
= None¶
-
value_type
= None¶
-
class
pip_services3_commons.validate.
FilterParamsSchema
¶ Bases:
pip_services3_commons.validate.MapSchema.MapSchema
Schema to validate [[FilterParams]].
-
class
pip_services3_commons.validate.
PagingParamsSchema
¶ Bases:
pip_services3_commons.validate.ObjectSchema.ObjectSchema
Schema to validate [[PagingParams]].


Hi
Welcome to the Pax Shiro Faces Quickstart sample application. This page represents the home page of any web application.
Visit your
If you want to access the user-only
To show some taglibs, here are the roles you have and don't have. Log out and log back in under different user accounts to see different roles.


{% comment %} Trade Agreement (TA) Text Template for trade scenario TWUK_MEM: For countries with a UK memorandum of understanding, but no GSP (Generalised Scheme of Preferences) access. {% endcomment %}
The UK has a memorandum of understanding with {{ country_name }}.
Where applicable, tariff preferences are available. If the conditions for preferential access are not met, the Most Favoured Nation (MFN) rate applies.


BJP nominates Murlidhar Mohol for Pune mayor’s post
Mohol will be filing his nomination papers for the post on Monday. The election process would be held on November 22 as the term of present mayor Mukta Tilak is getting over on November 21.
by Express News ServiceBJP leader Murlidhar Mohol is all set to be the next mayor of Pune Municipal Corporation (PMC) as the party has decided to field him for the post.
Mohol will be filing his nomination papers for the post on Monday. The election process would be held on November 22 as the term of present mayor Mukta Tilak is getting over on November 21.
The BJP has a majority in the PMC so it is certain for its nominated candidate to be elected for the post of mayor.
Mohol is a senior BJP leader who was aspirant to contest the recently concluded assembly elections from Kothrud seat but Maharashtra BJP chief Chandrakant Patil contested and was elected on the seat. Mohol played an important role in campaigning for Patil in the assembly elections.


The Printer Working Group maintains an open standards development environment and welcomes the participation of all who are interested in printing and imaging technologies, standards, and solutions. All that is required to participate is to be polite and agree to abide by the terms of the PWG Policy on Intellectual Property and Confidentiality, which roughly amounts to "anything you share in a PWG meeting, on the PWG FTP server, or on the PWG mailing lists can be included in a PWG standard or informational document."
You can participate in person or virtually via phone and/or email. Join the PWG mailing lists to ask questions, contribute, or learn when the next meeting is scheduled for a particular workgroup. You do not need to be a member to subscribe to a PWG mailing list. All members and interested parties are strongly encouraged to join the "pwg-announce" mailing list to receive notification of upcoming PWG Face to Face meetings.
New work starts with a white paper:
Extensions and new work for an existing workgroup can be proposed on the corresponding mailing list and discussed during a conference call or face-to-face meeting. New work outside the scope of an existing workgroup can be brought to the attention of the PWG Chair, who can direct you to an existing workgroup or schedule a "Birds of a Feather" (BOF) session at a PWG face-to-face meeting to discuss your proposal.
Many PWG standards offer a registry for attributes (aka elements and properties), operations, and values that third parties define for their particular usage. Send such registrations to the corresponding workgroup mailing list.


For information about the steps involved in stopping, starting, or restoring an application (and to get context information about the messages described below), see the GEOS Programming chapter.
Many of the following messages need
AppAttachFlags
to tell them how the process is attaching:
typedef WordFlags AppAttachFlags; #define AAF_RESTORING_FROM_STATE 0x8000 #define AAF_STATE_FILE_PASSED 0x4000 #define AAF_DATA_FILE_PASSED 0x2000 #define AAF_RESTORING_FROM_QUIT 0x1000
AppLaunchBlock
, presumably passed as an argument in the message also. If this flag is set, AAF_RESTORING_FROM_STATE will also be set.
AppLaunchBlock
contains the name of a data file that should be opened.void MSG_GEN_PROCESS_RESTORE_FROM_STATE( AppAttachFlags attachFlags, MemHandle launchBlock, MemHandle extraState);
This message is sent by the User Interface when an application is being loaded from a state file. This is sent to the process itself from
MSG_META_ATTACH
, whenever the application is being invoked as in
MSG_GEN_PROCESS_RESTORE_FROM_STATE
mode. Data passed is the same as that in
MSG_META_ATTACH
. The default handler fetches the application mode message, either
MSG_GEN_PROCESS_OPEN_APPLICATION
or
MSG_GEN_PROCESS_OPEN_ENGINE
, as saved in the application object, and sends that message to the process.
Note that the blocks passed need not be freed, as this is done by the caller upon return.
Source: Default
GenProcessClass
handler for
MSG_META_ATTACH.
Destination: Self.
Interception: Intercepted generally only so that application can retrieve previously saved data out of the state block passed.
Parameters: attachFlags Flags with information about the state and data files.
AppLaunchBlock
, or zero if none. This block contains the name of any document file passed into the application on invocation.
MSG_GEN_PROCESS_CLOSE_APPLICATION
or
MSG_GEN_PROCESS_CLOSE_ENGINE
, in some previous
MSG_META_DETACH
. Process objects often use this extra block to save global variables to state files.Return: Nothing.
void MSG_GEN_PROCESS_OPEN_APPLICATION( AppAttachFlags attachFlags, MemHandle launchBlock, MemHandle extraState);
This message is sent by the User Interface when an application is being loaded from its resource blocks. Applications will often intercept this message to set up certain things before being put on-screen. This is the handler in which, for example, you would register for certain notifications such as the quick-transfer notification.
This is sent to the process itself from
MSG_META_ATTACH
, whenever the application is being restored to application mode (as opposed to engine mode), or whenever it is being invoked as in application mode. Data passed is the same as that in
MSG_META_ATTACH
. The default handler sets the GenApplication object GS_USABLE, and brings the UI up on screen.
This message may be intercepted to open up any data file passed, before the UI for the application is actually set GS_USABLE. Note that the blocks passed need not be freed, as this is done by the caller upon return.
If you intercept this message and need to send MSG_META_QUIT from within the handler, make sure to either send the quit after calling the superclass, or send the quit via MSG_META_FLUSH_INPUT_QUEUE. (If this is not done, the system will think that an IACP connection is open, aborting the quit.)
Source:
GenProcessClass
default handler for
MSG_META_ATTACH
only.
Destination: Same object.
Interception: Frequently intercepted by an application's own process class to find out when an application is first coming alive in the system. You must pass this message on to the superclass, or the application will never come up. Be aware that the entire UI tree for the application is the equivalent of not usable (~GS_USABLE) before the superclass is called, and is usable and up on screen visually after it is called. Thus, it is best to do non-UI related things, and changing of generic attributes and hints before calling the superclass. You must wait until after calling the superclass to perform any operations which require that objects be fully usable (e.g. bringing up a dialog box). Make sure that if you send MSG_META_QUIT from within your handler that you follow the guidelines mentioned above.
Parameters: attachFlags State information about the state and data files.
AppLaunchBlock
, or zero if none. This block contains the name of any document file passed into the application on invocation.
MSG_GEN_PROCESS_CLOSE_APPLICATION
or
MSG_GEN_PROCESS_CLOSE_ENGINE
, in some previous
MSG_META_DETACH
.Return: Nothing.
MemHandle MSG_GEN_PROCESS_CLOSE_APPLICATION();
This message is sent by the User Interface whenever the application is being shut down (during a detach) and it had been launched in application (as opposed to engine) mode.
Source:
GenProcessClass
default handler for
MSG_META_DETACH
only
Destination: Self
Interception: Convenient place for code that needs to be executed before application exits, for non-engine mode cases. Superclass must be called.
Parameters: None.
Return: Handle of block to save (or NULL for none). Process objects often save global variables to a state file in an extra block. This is the handle of that block.
void MSG_GEN_PROCESS_OPEN_ENGINE( AppAttachFlags attachFlags, MemHandle launchBlock);
This is sent to the process itself from
MSG_META_ATTACH
, whenever the application is being restored to engine mode, or whenever it is being invoked as in engine mode. Data passed is the same as that in
MSG_META_ATTACH
. There is no default handler.
This message may be intercepted to open up any data file passed, before any engine commands are delivered to the process. Note that the blocks passed need not be freed, as this is done by the caller upon return.
Source:
GenProcessClass
default handler for
MSG_META_ATTACH
only.
Destination: Self.
Interception: Generally unnecessary, though can be intercepted if notification of going into this mode is necessary.
Parameters: attachFlags State of state and data files.
AppLaunchBlock
, or NULL if none. This block contains the name of any document file passed into the application on invocation.Return: Nothing.
void MSG_GEN_PROCESS_CLOSE_ENGINE();
This message is sent by the User Interface whenever the application is being shut down (during a detach) and it had been launched in "engine" mode.
Source:
GenProcessClass
default handler for
MSG_META_DETACH
only.
Destination: Self.
Interception: Convenient place for code that needs to be executed before the application exits, for engine mode cases. Superclass must be called.
MemHandle MSG_GEN_PROCESS_CLOSE_CUSTOM();
This message is sent by the User Interface whenever the application is being shut down (during a detach) and it had been launched in some custom mode (not application or engine) that
GenProcessClass
doesn't know about.
Source: Subclass of
GenProcessClass
.
Destination: Self.
Interception: Convenient place for code that needs to be executed before the application exits, for custom mode cases. Superclass must be called.
Parameters: None.
Return: Handle of block to save (or NULL for none).
MemHandle MSG_GEN_PROCESS_ATTACH_TO_STATE_FILE( AppAttachFlags attachFlags, MemHandle launchBlock);
This message is sent by the User Interface whenever the application is being attached to a state file. This message is sent when either restoring from state or detaching. May be subclassed to provide forced state behavior.
Source:
GenProcessClass
default handler for
MSG_META_ATTACH
.
Destination: Self.
Interception: May be intercepted to force use of a particular state file (by changing the name of the state file to use before calling superclass).
Parameters: attachFlags
AppAttachMode
(matches that in
AppLaunchBlock
).
AppLaunchBlock
.Return: Handle of extra block of state data (zero for none).
word MSG_GEN_PROCESS_CREATE_NEW_STATE_FILE( MemHandle appInstanceReference);
This replaces
MSG_GEN_PROCESS_ATTACHED_TO_PASSED_STATE_FILE
if no state file had been specified in that message. This message's default handler will create a new state file and attach it normally. Can be subclassed to provide forced state file usage (e.g. use a different naming scheme).
Source:
GenProcessClass
default handler for MSG_META_DETACH, if not quitting.
Destination: Self.
Interception: May be intercepted to change name of state file to create.
Parameters: appInstanceReference
Block handle to block of structure
AppInstanceReference
.
Return: VM file handle (NULL if you want no state file).
void MSG_GEN_PROCESS_DETACH_FROM_STATE_FILE( MemHandle extraState, word appStates);
This message is sent by the User Interface when the application is detaching or quitting (may or may not be attached to a state file) and the detach is nearly complete.
Source:
GenProcessClass
default handler for
MSG_META_DETACH
, if not quitting.
Destination: Self.
Interception: Not generally done. Default behavior is what you want.
Parameters: extraState Block handle of extra block to be saved (as returned from
MSG_GEN_PROCESS_CLOSE_APPLICATION
,
MSG_GEN_PROCESS_CLOSE_ENGINE
or
MSG_GEN_PROCESS_CLOSE_CUSTOM
). If the block is not transferred to the state file), it must be freed (if non-zero) by the handler for this message.
ApplicationStates
record with information about the application state.Return: Nothing.
void MSG_GEN_PROCESS_INSTALL_TOKEN();
This message is sent by the desktop to a process to get that process to install its token and moniker lists into the token database.
Source: Generally whatever geode launched this application in engine mode (e.g. GeoManager).
Destination:
GenProcessClass
object of any geode launched in engine mode.
Interception: May be intercepted to install additional tokens. Default behavior installs only application icon.
Parameters: None.
Return: Nothing.
optr MSG_GEN_PROCESS_GET_PARENT_FIELD();
This message is sent by process-libraries (such as the Spool Object Library) to find out which field object is its parent. This message will return the field of the first client of the library.
Source: Unrestricted.
Destination:
GenProcessClass
object.
Interception: Not necessary, as default behavior implements utility.
Parameters: Nothing.
Return: Parent field.
void MSG_GEN_PROCESS_SEND_TO_APP_GCN_LIST(@stack word sendFlags, EventHandle event, MemHandle block, word manufListType, ManufacturerID manufID);
This message sends the specified event to all the objects registered with the passed GCN list. This message should be subclassed by UI Controller objects.
The handler here merely sends the request on to GenApplication using
MSG_META_GCN_LIST_SEND
. Controllers should use this message, however, over direct communication with the application object, to ensure orderly updating of the list status event. One such failure case which is fixed is two target text objects, one run by the process thread in a view, the other a GenText run by the UI thread. If the GenText has the target and the user clicks quickly on view then GenText, the GenText may process both messages about the target being lost and gained before the process text object receives its gained and lost pair. If both objects sent
MSG_META_GCN_LIST_SEND
directly to the GenApplication object, the GenText's status would be wiped out by the subsequent reporting by the process text object. This problem is avoided by having both process and UI objects call here to pass status update info. This works because target changes start out ordered in the UI thread, and that order is passed on to the process thread in either of the two cases.
Source: Any object wishing to update an application GCN list. Don't use queue-order altering message flags such as MF_PLACE_IN_FRONT when sending this message. As a convention must be established for the flag MF_FORCE_QUEUE in order to ensure orderly results, the convention in use is this: Don't pass it.
A typical call should use only the MF_STACK, MF_FIXUP_DS, and/or MF_FIXUP_ES flags, if needed.
Destination:
GenProcessClass
(application process) only.
Interception: Should not generally be intercepted, as
GenProcessClass
provides correct behavior. If intercepted and not sent onto superclass, event passed must be destroyed and data block reference count decremented, to avoid leaving obsolete data on the heap.
Parameters: sendFlags Flags to pass on to
GCNListSend()
.
MemInitRefCount()
and be incremented for any new usage with
MemIncRefCount()
. Methods in which they are passed are considered such a new usage, and must have
MetaClass
handlers which call
MemDerefCount()
. Current messages supported are
MSG_META_NOTIFY_WITH_DATA_BLOCK
and
MSG_NOTIFY_FILE_CHANGE
.
GCNStandardListType
or any other word which acts as a GCN list ID.


Thu Nov 8, 2007
In a congressional hearing held on Tuesday November 6 as part of a lawsuit against Yahoo, CEO Jerry Yang and vice-president Michael Callahan were chastised for their involvement in the arrest and imprisonment of a Chinese journalist. Yahoo is currently on trial for aiding and abetting in the torture of Chinese dissidents.
In 2005, Chinese journalist Shi Tao was convicted by his government for divulging “state secrets”. Shi Tao had forwarded an email from the Communist Party warning the media not to observe the 15th anniversary of the Tiananmen Square massacre in 2004. Yahoo provided information to the government which helped identify Shi Tao as a dissident. He was sentenced to 10 years imprisonment.
In 2006, Michael Callahan, Yahoo’s executive vice-president and general counsel told the congressional panel that he did not know why the Chinese government wanted Shi Tao. In the November 6 hearing, it was revealed that this testimony was false—Yahoo officials had in fact received a document outlining the nature of the investigation.
At the hearing, house foreign affairs committee chairman Tom Lantos delivered a statement where he said that “Yahoo claims that this is just one big misunderstanding. Let me be clear — this was no misunderstanding. This was inexcusably negligent behaviour at best and deliberately deceptive behaviour at worst.”
Either Yahoo has some major internal communication problems or they’re so desperate for a piece of the Chinese Internet market that they’re willing to jump into bed with an oppressive Communist government no matter what the cost. I really hope for their sake that it’s the former.


Definition at line 22 of file map.h.
|
|
uint8_t | version |
| | Version of the trail map.
|
| |
|
uint8_t | ident |
| | Trail Map identifier.
|
| |
|
char | name [MAP_NAME_MAX] |
| | Name of the trail map.
|
| |
|
char | desc [MAP_DESC_MAX] |
| | Description of the trail map.
|
| |
|
uint32_t | npoints |
| | Number of points in the file.
|
| |


Hebrew Cantillation Braille encoding proposal
-Danny Sadinoff
Goal: to give Hebrew Braille readers access to the text of the TanaCH with cantillation marks. The main challenge here is brevity, since there exist braille readers with as few as 19 symbols, so unification is pursued where possible.
Taking my lead from Hebrew Braille, final vs medial forms are unified.
The encoder currently has one main option:
- Dagesh mode, describing which letters take a dagesh. Since there are standard combined forms for only four of the letters with a dagesh/mapiq, By default, Dagesh hazak is not enabled, but all of ה, בגדכפ"ת take a dagesh/mapiq. Note that the Braille Dagesh is pre-fixed. The two other modes are ALL for all dageshes represented and HEH_BCFT for just ה, בכפת.
Source code (Github)


Your Info
| Name | ASDFASDF |
| Advisor | ASDFASDF |
| Credits | ASDFASDF |
| GPA | ASDFASDF |
| Major | ASDFASDF |
| Plan | ASDFASDF |
| Prepared | ASDFASDF |
| Standing | ASDFASDF |
| Name | ASDFASDF |
| Advisor | ASDFASDF |
| Credits | ASDFASDF |
| GPA | ASDFASDF |
| Major | ASDFASDF |
| Plan | ASDFASDF |
| Prepared | ASDFASDF |
| Standing | ASDFASDF |


FornaxStemmer..::..Stem Method
Overload List
| Name | Description | |
|---|---|---|
| Stem(String) | ||
| Stem(array<Char>[]()[][]) |
Stem a word contained in a array<char>[]()[][]. Returns true if the stemming process
resulted in a word different from the input. You can retrieve the
result with ResultLength/ResultBuffer or ToString()()()().
|
|
| Stem(array<Char>[]()[][], Int32, Int32) |
Stem a word contained in a portion of a array<char>[]()[][] array. Returns
true if the stemming process resulted in a word different from
the input. You can retrieve the result with
ResultLength/ResultBuffer or ToString()()()().
|
|
| Stem(array<Char>[]()[][], Int32) |
Stem a word contained in a leading portion of a array<char>[]()[][] array.
Returns true if the stemming process resulted in a word different
from the input. You can retrieve the result with
ResultLength/ResultBuffer or ToString()()()().
|
|
| Stem()()()() |
Stem the word placed into the Stemmer buffer through calls to Add(Char).
Returns true if the stemming process resulted in a word different
from the input. You can retrieve the result with
ResultLength/ResultBuffer or ToString()()()().
|
|
| Stem(Int32) |
Stems the specified i0.
|


Psalms 81:15
The haters of the LORD should have submitted themselves unto him: but their time should have endured for ever.


Dear Apache Shiro Community,
The Shiro team is pleased to announce the release of Apache Shiro version 1.2.1. This is the first bug fix point release after 1.2.0.
This release includes 11 bug fixes since the 1.2.0 release and is available for Download now.
All binaries (.jars) are available in Maven Central already. Please note that the Apache mirrors are still updating to reflect the source distribution, but some mirrors may not be updated yet. If a mirror download link does not work, please try another or wait another 12 to 24 hours.
For more information on Shiro 1.2, please read the "What's new in Apache Shiro 1.2?" article or the previous 1.2 release announcement.
Enjoy!
The Apache Shiro Team


Week 10 Test study guide
- Slack
- file system
- editor
- git
- markdown
- basic html structure
- basic css
- html5
- hyper links
- url encoding
- css colors
- css relative/absolute lengths
- css display/box model
- dev tools
- two column layout
- typography
- css gradients
- html lists
- adding media
- html forms
- html tables
- BEM
- css Z-index
- responsive web design
- css transforms
- css transitions
- css animations
- polyfills
- css flexbox
- css grid
- referencing js
- js data types
- js operators
- js conditionals
- js loops
- js functions
- js Math
- js string/array methods
- js testing
- coding style
- js objects
- js this
- js DOM Manipulation/Events
- js User Input
- js validation
- js timing
- js ajax
- json
- Node Modules
- js Promises
- Node User Input
- Node Events
- Node fs
- Node http
- Node url
- JS Cookies
- MySQL
- MySQL Tables
- MySQL Data
- MySQL Constraints
- Node MySQL
- REST
- authentication
- config file


Search
Home
Profile
Community
Log In
Sign Up
Log Out
Log In
Email address
We'll never share your email with anyone else.
Password
Sign Up
Username
Email address
We'll never share your email with anyone else.
Password
Confirm Password
Finished
Pending
Favourites
Account
#
Name
Rating
#
Name
Rating
#
Name
Rating
Account
Total entries
Follows
Followers
#
Name
#
Name


Having been vegan for over two years now, one of the hardest things to find are faux leather shoes. Now I know what you’re thinking – but don’t you sacrifice quality when shopping faux leather? This is the idea that led two brothers to create the vegan shoe brand Vyom London.
Vyom London started with a goal to create long-lasting, sustainable, and stylish shoes for everyday use. Many faux leathers are made of PVC which contains toxins that are very harmful to the environment. You usually find shoes made of this material in the fast fashion industry at stores like H&M and Zara as it is inexpensive compared to genuine leather. Vyom London uses a much more sustainable material known as Polyurthane which is highly durable for all weather conditions and provides a very realistic imitation to real leather.
Vyom London prides themselves in the quality of craftsmanship put into their products. Each shoe is constructed in the UK by hand using the finest Goodyear Welted process to ensure they last a long time. In an industry where faux leather is viewed as cheap, Vyom London is clearly proving them wrong.
Versatility is something I find important when it comes to clothing purchases. The Tassel Loafer from their Timeless City Collection is the perfect addition to my wardrobe as I am able to wear them for any occasion. Dressed up or dressed down, it’s safe to say these will be a part of the rotation for a long time to come.
Vyom London has set a new standard for the fashion industry. I believe animal-free fashion is the way of the future as so many designers are already moving towards faux furs. Sustainability is becoming more important and people are starting to realize the negative impacts of using leather. Vyom London is fashion as nature intended.


Non-for profit association determined to connect the data scientist and machine learning community of Australia.
For Professionals
Keeping up with the state of the art in the field. The organization will organize talks, courses and workshops by industry leaders (including academics) so that you as a member gets exposed to current research and innovative applications of latest tools and techniques. There are also opportunities for professional growth by participating in our research projects, content development and being a mentor.
For Students
An ever-evolving field, if you want to enter now would be the time to do it. With expert level talks and panels, ongoing internal projects, and quality content - the opportunities for learning are endless. Networking with industry leaders and opportunities to be a mentee are also available - so what are you waiting for?
For Businesses
Connecting with the community, you have opportunities for scouting talent, be on the edge of innovation, and learn from experts what consumers, professionals and enterprises want.
Our Community
DSAi is a community for Data Scientists, Machine Learning Engineers, Software professionals, SMEs and enthusiasts seeking to gain and share knowledge, grow their network and collaborate on projects.
Through a range of activities like meetups, workshops, study groups and publications, DSAi aims at helping professionals understand industry trends, employment scenarios and stay on top of the latest research.


EXAMPLES OF MY WORK:
About Me
I started taking pictures at a very very young age but didn't get in to portrait photography until my sophomore year in high school when I started off taking a few senior photos of my friends. Before that, I was mainly a conceptual photographer and just took pictures of myself. Today, I have started my own photography business and begun my own blog. I have worked with numerous clients which recently include Old Navy and People.com.


DONNIE BRASCO A film review by Michael Redman Copyright 1997 Michael Redman
***1/2 (Out of ****)
In the late seventies, the FBI was determined to bring down the mob and sent one of their own into the middle of it, underground with little support. Living with the crime bosses for six years, agent Joe Pistone (code named "Donnie Brasco" and played by Johnny Depp) forms an unexpected deep friendship with his mentor Lefty (Al Pacino).
Lefty is the opposite of the romantic vision of organized crime that we have seen often on the big screen. His personal problems (cancer, a junkie son) weigh heavy on his mind as does the fact that he is stuck in a middle level mafioso job passed by for promotion. He's devoted his life to his job and the family and knows that his career is going nowhere. In many ways he is no different than any other aging work-a-day stiff understanding that he is at a dead end. Of course, for Mafia employees, "dead"end has an entirely different meaning.
It is no shock that Al Pacino is grand in his untypical downbeat gangster role. And it has become apparent that it should no longer be any surprise that Johnny Depp turns in a fine performance. Refusing to be typecast in the pretty-boy role that was his in the throw-away television series that was his public launching, Depp has given skilled exhibitions in a wide variety of parts. Moving beyond the hip boy, here he is a bit older and a bit wiser.
[This appeared in the 3/20/97 "Bloomington Voice", Bloomington Indiana. Michael Redman can be reached at<EMAIL_ADDRESS>]
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Scene
7 6
th
Transformation Scene
Music at opening of scene--characteristic march--(99)
Grand Procession of Fairies, Sprites, Amphibea + Gnomes, bearing in their arms
and upon their heads salvers, Shells and quaint vases, filled with gold and
various colored jewels--they march from L to R and exit. when scene breaks away to
Fairy brings on Greppo + Carline
Greppo + Carline
Song introduced
Duett My Heart Goes Pit a Pat
Introduced Scene


{% extends "base.html" %} {% block head_block %} {% endblock %} {% block content %}
{{entry|excerpt_more:""}}
read more
Sorry, but you are looking for something that isn't here.


This inspection reports exceptions that are declared in a method's signature but never thrown by the method itself.
Only final, private or static methods are analyzed. For other methods, global code analysis is required.
For batch inspections, this can be achieved using Declaration Redundancy | Redundant throws clause.


bootstrap-input-spinner
sm
lg
sm
lg
spinner-grow
sm
lg
textarea
sm
sm + rows='1'
lg
lg + rows='1'
select (can be broken, use form-select instead)
sm
lg
select multiple (can be broken, use form-select instead)
sm
lg
select size="1" (can be broken, use form-select instead)
sm
lg
select size="1" multiple (can be broken, use form-select instead)
sm
lg
select size="2" (can be broken, use form-select instead)
sm
lg
form-control-plaintext
sm
lg


The oil Module
OiL is provided as a Lua module that can be required by the following command (for further information about Lua modules, see the Lua's manual):
require "oil"
The application must first load this module to use OiL. It provides a set of helper functions that are used to create brokers, control multithreading and other miscellaneous helper operations that provides features of the underlying operating system, as described below:
Fields
oil.tasks
- Internal coroutine scheduler used by OiL.
Functions
oil.init
([config])
- Initialize a broker.
oil.main
(function)
- Function executes the main function of the application.
oil.newthread
(function, ...)
- Creates and starts the execution of a new the thread.
oil.pcall
(function, ...)
- Function that must be used to perform protected calls in applications.
oil.readfrom
(filename)
- Read the contents of a file.
oil.sleep
(delay)
- Suspends the execution of the current thread for some time.
oil.time
()
- Get the current system time.
oil.writeto
(filename, text)
- Writes a text into file.
Definitions
oil.tasks
Internal coroutine scheduler used by OiL.
This field holds a reference to the object that implement the API described in loop.thread.Scheduler.
Usage:
oil.tasks:register(coroutine.create(function() return broker:run() end)) oil.tasks:run()
oil.main
(func)
Executes the main function of the application.
The application's main function is executed in a new thread if the current assembly provides thread support.
This may only return when the application terminates.
Parameters:
func |
function | Application's main function. |
Usage:
oil.main(function() oil.init():run() end)
oil.newthread
(func, ...)
Creates and starts the execution of a new the thread.
Creates a new thread to execute the function func
with the extra parameters provided.
This function imediately starts the execution of the new thread and the original thread is only resumed again acordingly to the the scheduler's internal policy.
This function can only be invocated from others threads, including the one executing the application's main function (see main
).
Parameters:
func |
function | Function that the new thread will execute. | |
... |
any | Additional parameters passed to the func function. |
Usage:
oil.newthread(broker.run, broker) -- runs in another thread
See also: oil.main
oil.sleep
(time)
Suspends the execution of the current thread for some time.
Parameters:
time |
number | Delay in seconds that the execution must be resumed. |
Usage:
oil.sleep(5.5)
oil.time
()
Get the current system time.
Return values:
timestamp |
number | Number of seconds since a fixed point in the past. |
Usage:
local start = oil.time(); oil.sleep(3); print("I slept for", oil.time() - start)
oil.pcall
(func, ...)
Function that must be used to perform protected calls in applications.
It is a "coroutine-safe" version of the pcall
function of the Lua standard library.
Parameters:
func |
function | Function to be executed in protected mode. | |
... |
any | Additional parameters passed to protected function. |
Return values:
success |
boolean | true if function execution did not raised any errors or false otherwise. |
|
... |
any | Values returned by the function or an the error raised by the function. |
oil.writeto
(filepath, text)
Writes a text into file.
Utility function for writing stringfied IORs into a file.
Parameters:
filepath |
string | Path of the file that should be create with the text provided. | |
text |
string | Text that shall be written into the file. |
Return values:
success |
file handler | If the file was properly created with the provided content then the closed file handler is returned or nil is returned if some error was found. |
|
error |
string | [occasional] | Error message returned by function 'io.open' of Lua IO library if the file could not be opened for write. |
Usage:
oil.readfrom
(filepath)
Read the contents of a file.
Utility function for reading stringfied IORs from a file.
Parameters:
success |
file handler | Path of the file to be read. |
Return values:
contents |
string | Contents of the file read or nil if some error was found. |
|
error |
string | [occasional] | Error message returned by function 'io.open' of Lua IO library if the file could not be opened for read. |
oil.init
([config])
Initialize a broker.
Initialize an ORB instance with the provided configurations.
The actual configuration options varies accordingly to the ORB flavor.
For more information about broker initialization, see section Initializing Brokers.
If the parameter config
is not provide, the same ORB is returned, which is initialized with default configurations.
To create other ORBs with the default configurations, use an empty table as parameter config
.
Parameters
config |
table | [optional] | Configuration used to initialize the ORB. |
Return values
broker |
table | ORB instance properly initialized. |
Usage:
oil.init{ host = "middleware.inf.puc-rio.br" } oil.init{ host = "<IP_ADDRESS>", port = 8080 } print("ORB post:", oil.init().port)


Table of Contents
This section describes how to load and initialize the JDBC driver in your programs.
Any source that uses JDBC needs to import the java.sql
package, using:
import java.sql.*;
You should not import the org.postgresql
package unless you are not using standard
PostgreSQL™ extensions to the JDBC API.


DESCRIPTION
Erector is a Builder-like view framework, inspired by Markaby but overcoming some of its flaws. In Erector all views are objects, not template files, which allows the full power of object-oriented programming (inheritance, modular decomposition, encapsulation) in views. See the rdoc for the Erector::Widget class to learn how to make your own widgets, and visit the project site at erector.rubyforge.org for more documentation.
No, seriously, we’ve got hella docs at erector.rubyforge.org — go check it out.
SYNOPSIS
require 'erector' class Hello < Erector::Widget def content html do head do title "Hello" end body do text "Hello, " b @target, :class => 'big' text "!" end end end end Hello.new(:target => 'world').to_html => "<title>Hello</title>Hello, world!" include Erector::Mixin erector { div "love", :class => "big" } => "
love
"
REQUIREMENTS
The gem depends on rake and treetop, although this is just for using the command-line tool, so deployed applications won’t need these. The Rails-dependent code is now separated so you can use Erector cleanly in a non-Rails app.
INSTALL
To install as a gem:
sudo gem install erector
Then add “require ‘erector’” to any files which need erector.
To install as a Rails plugin:
Copy the erector source to vendor/plugins/erector in your Rails directory.
When installing this way, erector is automatically available to your Rails code (no require directive is needed).
TESTS
Three spec rake tasks are provided: spec:core (core functionality), spec:erect (the erector command line tool), and spec:rails (rails integration).
‘rake spec’ will run the complete set of specs.
CREDITS:
Core Team:
Alex Chaffee
Brian Takita
Special Thanks To:
Abby (Chaffee’s muse & Best friend)
Jim Kingdon
Jeff Dean
John Firebaugh
Nathan Sobo
Nick Kallen
Alon Salant
Andy Peterson
LICENSE:
(The MIT License)
Copyright © 2007-2010 Pivotal Labs and the Erector Project
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Don't forget to read the User Guide and FAQ and API


#
Usage with TypeScriptWhat You'll Learn
- Standard patterns for setting up a Redux app with TypeScript
- Techniques for correctly typing portions of Redux logic
Prerequisites
- Understanding of TypeScript syntax and terms
- Familiarity with TypeScript concepts like generics and utility types
- Knowledge of React Hooks
#
OverviewTypeScript is a typed superset of JavaScript that provides compile-time checking of source code. When used with Redux, TypeScript can help provide:
- Type safety for reducers, state and action creators, and UI components
- Easy refactoring of typed code
- A superior developer experience in a team environment
We strongly recommend using TypeScript in Redux applications. However, like all tools, TypeScript has tradeoffs. It adds complexity in terms of writing additional code, understanding TS syntax, and building the application. At the same time, it provides value by catching errors earlier in development, enabling safer and more efficient refactoring, and acting as documentation for existing source code.
We believe that pragmatic use of TypeScript provides more than enough value and benefit to justify the added overhead, especially in larger codebases, but you should take time to evaluate the tradeoffs and decide whether it's worth using TS in your own application.
There are multiple possible approaches to type checking Redux code. This page shows our standard recommended patterns for using Redux and TypeScript together, and is not an exhaustive guide. Following these patterns should result in a good TS usage experience, with the best tradeoffs between type safety and amount of type declarations you have to add to your codebase.
#
Standard Redux Toolkit Project Setup with TypeScriptWe assume that a typical Redux project is using Redux Toolkit and React Redux together.
Redux Toolkit (RTK) is the standard approach for writing modern Redux logic. RTK is already written in TypeScript, and its API is designed to provide a good experience for TypeScript usage.
React Redux
has its type definitions in a separate
@types/react-redux
typedefs package
on NPM. In addition to typing the library functions,
the types also export some helpers to make it easier
to write typesafe interfaces between your Redux store
and your React components.
As of React Redux v7.2.3, the
react-redux
package has a dependency on
@types/react-redux
, so the type
definitions will be automatically installed with the
library. Otherwise, you'll need to manually
install them yourself (typically
npm install @types/react-redux
).
The Redux+TS template for Create-React-App comes with a working example of these patterns already configured.
#
Define Root State and Dispatch Types
Using
configureStore
should not need any additional typings. You will,
however, want to extract the
RootState
type and the
Dispatch
type so that they can be
referenced as needed. Inferring these types from the
store itself means that they correctly update as you
add more state slices or modify middleware settings.
Since those are types, it's safe to export them
directly from your store setup file such as
app/store.ts
and import them directly
into other files.
#
Define Typed Hooks
While it's possible to import the
RootState
and
AppDispatch
types into each component,
it's better to
create pre-typed versions of the
useDispatch
and
useSelector
hooks for usage in your
application. This is important for a couple reasons:
-
For
useSelector
, it saves you the need to type(state: RootState)
every time -
For
useDispatch
, the defaultDispatch
type does not know about thunks or other middleware. In order to correctly dispatch thunks, you need to use the specific customizedAppDispatch
type from the store that includes the thunk middleware types, and use that withuseDispatch
. Adding a pre-typeduseDispatch
hook keeps you from forgetting to importAppDispatch
where it's needed.
Since these are actual variables, not types, it's
important to define them in a separate file such as
app/hooks.ts
, not the store setup file.
This allows you to import them into any component file
that needs to use the hooks, and avoids potential
circular import dependency issues.
#
Application Usage#
Define Slice State and Action Types
Each slice file should define a type for its initial
state value, so that createSlice
can
correctly infer the type of state
in each
case reducer.
All generated actions should be defined using the
PayloadAction<T>
type from Redux
Toolkit, which takes the type of the
action.payload
field as its generic
argument.
You can safely import the RootState
type
from the store file here. It's a circular import,
but the TypeScript compiler can correctly handle that
for types. This may be needed for use cases like
writing selector functions.
The generated action creators will be correctly typed
to accept a payload
argument based on the
PayloadAction<T>
type you provided
for the reducer. For example,
incrementByAmount
requires a
number
as its argument.
In some cases,
TypeScript may unnecessarily tighten the type of
the initial state. If that happens, you can work around it by casting
the initial state using as
, instead of
declaring the type of the variable:
#
Use Typed Hooks in ComponentsIn component files, import the pre-typed hooks instead of the standard hooks from React Redux.
#
Typing Additional Redux Logic#
Type Checking Reducers
Reducers
are pure functions that receive the current
state
and incoming action
as
arguments, and return a new state.
If you are using Redux Toolkit's
createSlice
, you should rarely need to
specifically type a reducer separately. If you do
actually write a standalone reducer, it's
typically sufficient to declare the type of the
initialState
value, and type the
action
as AnyAction
:
However, the Redux core does export a
Reducer<State, Action>
type you can
use as well.
#
Type Checking Middleware
Middleware
are an extension mechanism for the Redux store.
Middleware are composed into a pipeline that wrap the
store's dispatch
method, and have
access to the store's dispatch
and
getState
methods.
The Redux core exports a Middleware
type
that can be used to correctly type a middleware
function:
A custom middleware should use the
Middleware
type, and pass the generic
args for S
(state) and
D
(dispatch) if needed:
The dispatch generic should likely only be needed if you are dispatching additional thunks within the middleware.
#
Type Checking Redux Thunks
Redux Thunk
is the standard middleware for writing sync and async
logic that interacts with the Redux store. A thunk
function receives dispatch
and
getState
as its parameters. Redux Thunk
has a built in ThunkAction
type which we
can use to define types for those arguments:
You will typically want to provide the
R
(return type) and
S
(state) generic arguments.
Unfortunately, TS does not allow only providing
some generic arguments, so the usual values
for the other arguments are unknown
for
E
and AnyAction
for
A
:
To reduce repetition, you might want to define a
reusable AppThunk
type once, in your
store file, and then use that type whenever you write
a thunk:
Note that this assumes that there is no meaningful
return value from the thunk. If your thunk returns a
promise and you want to
use the returned promise after dispatching the
thunk, you'd want to use this as
AppThunk<Promise<SomeReturnType>>
.
caution
Don't forget that
the default useDispatch
hook does
not know about thunks, and so dispatching a thunk will cause a type
error. Be sure to
use an updated form of Dispatch
in
your components that recognizes thunks as an
acceptable type to dispatch.
#
Usage with React ReduxWhile React Redux is a separate library from Redux itself, it is commonly used with React.
For a complete guide on how to correctly use React Redux with TypeScript, see the "Static Typing" page in the React Redux docs. This section will highlight the standard patterns.
As mentioned above, React Redux doesn't ship with
its own type definitions. If you are using TypeScript
you should install the
@types/react-redux
type definitions
from npm.
useSelector
hook#
Typing the
Declare the type of the state
parameter
in the selector function, and the return type of
useSelector
will be inferred to match the
return type of the selector:
This can also be done inline as well:
However, prefer creating a pre-typed
useSelector
hook with the correct type of
state
built-in instead.
useDispatch
hook#
Typing the
By default, the return value of
useDispatch
is the standard
Dispatch
type defined by the Redux core
types, so no declarations are needed:
However, prefer creating a pre-typed
useAppDispatch
hook with the correct type
of Dispatch
built-in instead.
connect
higher order
component#
Typing the
If you are still using connect
, you
should use the
ConnectedProps<T>
type exported by
@types/react-redux^7.1.2
to infer the
types of the props from
connect
automatically. This requires
splitting the
connect(mapState, mapDispatch)(MyComponent)
call into two parts:
#
Usage with Redux Toolkit
The
Standard Redux Toolkit Project Setup with
TypeScript
section already covered the normal usage patterns for
configureStore
and
createSlice
, and the
Redux Toolkit "Usage with TypeScript"
page
covers all of the RTK APIs in detail.
Here are some additional typing patterns you will commonly see when using RTK.
configureStore
#
Typing
configureStore
infers the type of the
state value from the provided root reducer function,
so no specific type declarations should be needed.
If you want to add additional middleware to the store,
be sure to use the specialized
.concat()
and
.prepend()
methods included in the array
returned by getDefaultMiddleware()
, as
those will correctly preserve the types of the
middleware you're adding. (Using plain JS array
spreads often loses those types.)
#
Matching Actions
RTK-generated action creators have a
match
method that acts as a
type predicate. Calling
someActionCreator.match(action)
will do a
string comparison against the
action.type
string, and if used as a
condition, narrow the type of action
down
to be the correct TS type:
This is particularly useful when checking for action
types in Redux middleware, such as custom middleware,
redux-observable
, and RxJS's
filter
method.
createSlice
#
Typing #
Defining Separate Case Reducers
If you have too many case reducers and defining them
inline would be messy, or you want to reuse case
reducers across slices, you can also define them
outside the createSlice
call and type
them as CaseReducer
:
extraReducers
#
Typing
If you are adding an extraReducers
field
in createSlice
, be sure to use the
"builder callback" form, as the "plain
object" form cannot infer action types correctly.
Passing an RTK-generated action creator to
builder.addCase()
will correctly infer
the type of the action
:
prepare
Callbacks#
Typing
If you want to add a meta
or
error
property to your action, or
customize the payload
of your action, you
have to use the prepare
notation for
defining the case reducer. Using this notation with
TypeScript looks like:
#
Fixing Circular Types in Exported SlicesFinally, on rare occasions you might need to export the slice reducer with a specific type in order to break a circular type dependency problem. This might look like:
createAsyncThunk
#
Typing
For basic usage, the only type you need to provide for
createAsyncThunk
is the type of the
single argument for your payload creation callback.
You should also ensure that the return value of the
callback is typed correctly:
If you need to modify the types of the
thunkApi
parameter, such as supplying the
type of the state
returned by
getState()
, you must supply the first two
generic arguments for return type and payload
argument, plus whicher "thunkApi argument
fields" are relevant in an object:
createEntityAdapter
#
Typing
Typing createEntityAdapter
only requires
you to specify the entity type as the single generic
argument. This typically looks like:
#
Additional Recommendations#
Use the React Redux Hooks API
We recommend using the React Redux hooks API as the
default approach. The hooks API is much simpler to use with
TypeScript, as useSelector
is a simple
hook that takes a selector function, and the return
type is easily inferred from the type of the
state
argument.
While connect
still works fine, and
can be typed, it's much more difficult
to type correctly.
#
Avoid Action Type UnionsWe specifically recommend against trying to create unions of action types, as it provides no real benefit and actually misleads the compiler in some ways. See RTK maintainer Lenz Weber's post Do Not Create Union Types with Redux Action Types for an explanation of why this is a problem.
In addition, if you're using
createSlice
, you already know that all
actions defined by that slice are being handled
correctly.
#
ResourcesFor further information, see these additional resources:
-
Redux library documentation:
- React Redux docs: Static Typing: Examples of how to use the React Redux APIs with TypeScript
- Redux Toolkit docs: Usage with TypeScript: Examples of how to use the Redux Toolkit APIs with TypeScript
-
React + Redux + TypeScript guides:
- React+TypeScript Cheatsheet: a comprehensive guide to using React with TypeScript
-
React + Redux in TypeScript Guide: extensive information on patterns for using
React and Redux with TypeScript
- Note: while this guide has some useful info, many of the patterns it shows go against our recommended practices shown in this page, such as using action type unions. We link this out of completeness
- Other articles:


HOME
TEAM
CONTACT
HELP
LOGIN
PROVIDER
PATIENT
GET IN TOUCH!
CONTACT US
CUSTOMER SUPPORT
PROVIDER SUPPORT
×


### Preparation
How would you rank me (47) for a car with 160 km/h top speed?
Manually cluster areas of different customer types on the upper part of the handout
Make sure you draw with pressure
Generalisation, not perfect reproduction is the objective
Turn the page and redraw the lines you printed through from the first page
Get an estimate of the misclassified samples on both diagrams
What do you think, is this result worse?
What would you have done differently if you had been given this information before (that it is all about generalisation)?
Train
Test
Not ideal, especially in the middle where everything mixes
Train
Test
Not so bad - we humans are good at clustering in 2-d
if age < 25:
if speed > 180:
return red
else:
return yellow
if age > 75:
return red
if km_per_year > 50:
return red
if km_per_year > 35:
return yellow
return green
approx. 43% correct predictions
approx. 43% correct predictions (guessing would be 33%)
Improve score starting from existing code
Why I like the term artificial intelligence: I think it's good to have an umbrella term for the field that encompasses a range of techniques – ML, knowledge rep, planning, heuristic search, goal formation, behavior modeling, etc. – and it's the one we have.
We have to deal with a classification problem
We have 300 data sets, this is small
A simple classic
For a case to predict
approx. 98% accuracy on train data, but only 65% on test data
only approx. 81% accuracy on train data, but also 75% on test data
Notice the smooth boundaries
Another simple classic
Generated by Decision Tree ML
Simplified decision tree
approx. 98% accuracy on train data, but only 61% on test data
Intuition: How would you make the decision boundaries more smooth
max_depth=3,
min_samples_leaf=20,
min_samples_split=20
How will this perform?
Underfitting
only approx. 65% accuracy on train data, and only 59% on test data
Get rid of overfitting, but avoid underfitting as much as possible
Do your work in on Jupyter Notebook 3-sklearn-decision-trees
clf = DecisionTreeClassifier(max_depth=6,
min_samples_leaf=10,
min_samples_split=10)
only approx. 77% accuracy on train data, but also 68% on test data
Sweet Spot, notice the similarity to our hand crafted tree?
Gini impurity is a measure of how often a randomly chosen element from the set would be incorrectly labeled if it was randomly labeled according to the distribution of labels in the subset.
The smaller the impurity, the purer (=better) is the node, 0 is perfect
https://en.wikipedia.org/wiki/Decision_tree_learning#Gini_impurity


I'm a merchant dispatched by the Lord in order to sell Seeds from the Manor and purchase Special Products.
The seeds I'm selling can be sowed only in the Manor. But the Special Products can be sold in any castle. When selling to another castle, I will sell to another Manor on your behalf for a small fee.
The buying and selling of seeds for Special Products begin each day at 8 pm. Prepare in advance by referring to the Manor information begins to be displayed from 4:30 am, and come back at 8 pm. If you don't hurry, items can be sold out. Huh Huh
If you also have Special Products, sell them to me. The Lord will be glad.
If you perhaps don't know what the Manor or Special Product is, ask me anytime -- I will explain them to you in detail.
Purchase the Seed.
Settle Special Products.
View the Manor information.
View the basic Seed information.
Purchase a harvester.
Ask about the current territory status.
Listen to the explanation.


|
1. Plot should be square of rectangular in shape. Square
would be best. If it is rectangle then the ratio of length to
breadth should be 1:2 and not more than that.
2. The ground level should be higher in South & West
rather than North and East.
3. Plots facing North or East are better than those facing
South or West.
4. A canal, a lake, river, nallah, a big well or pond
should be in north or east only.
5. Heavy construction or mountains should be in west or
south of the plot.
6. There should not be any big tree in north or east of
the plot.
7. There should not be any pit or well in south or
west direction.
8. All four corners should be at 90 degree (set
Square). If only north east is extended i.e. if it is less than
90 degree, it will do.
9. All rain water should flow from south to north and west
to east.
10. South west should be highest & north east should be
lowest in level.
11. If all the corners are not at 90 degree then we
should correct it before starting the construction.
12. If the dead end of a road is coming in our plot then it
should be taken care of because some are good & some are bad.
This is called vidhee soola.
13. Their should not be any hills or mountains in east or
north side of your plot.
14. At the time of purchasing the adjacent plot purchase
only in east, north or north-east plots. Never purchase adjacent
plot in south or west or accept if even if offered for
free.
|


Toggle navigation
MOH Data Service Layer
DSL
DSL Home
DSL Analytics
Drill Dashboard
Indicator
Service Delivery
PMTCT Positivity Infants
PMTCT MF Rate
PMTCT Positivity at ANC
PMTCT ARV Prophylaxis Rate (Infant)
PMTCT Prophylaxis Ratio - Interrupted HAART
Proportion of tested for HIV TB patient
HIV+ test rate - PMTCT -ANC
HIV+ test rate - VCT
HIV+ test rate - DTC inpatients
HIV+ test rate - DTC outpatients
Malaria positivity rate (MEW)
HIV+ test rate - TB patients
Male 55-64 yrs tested HIV+ (Tested for HIV) (PTB-)
HIV+ test rate - PMTCT-Maternity
Proportion of TB patient HIV+ who are on CPT
Smear Positive Pulmonary TB
Still Birth Rate
UHC
TB curative Rate
Health Infrastructure
Facilities By type
Facilities By owner
Facilities by KEPH Level
Facilities by regulatory bodies
Facilities by Status
Human Workforce
Cadre distribution
Health Products
Essential Medicines and Medical Supplies
Commodity Orders
Commodity Deliveries
Consumption
Balances
HIV+ test rate - PMTCT -ANC
Organisation Unit - National
Level
National
County
Sub County
Ward
Facility
National
Period-monthly
Period Type
Monthly
Yearly
-- year --
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
-- From: --
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
-- To: --
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
Filter
Exit compare mode
Build Compare Graph
Human resource(Cadre)
Commodity
Issue
Loading


Crystal 0.30.1 has been released!
This release comes with some regression fixes and support for recent version of dependencies that were causing some headaches. No new features were added.
There are 12 commits since 0.30.0 by 6 contributors.
Let’s review some highlights in this release. But don’t miss the rest of the release changelog.
Compiler
LLVM
For Crystal 0.30.0 we tried to upgrade to LLVM 6.0.1 for our official darwin packages. Those packages use a custom build of LLVM. On those builds we include assertions via LLVM_ENABLE_ASSERTIONS=ON
, as a way to double-check we are using LLVM properly.
In this case, instead of finding a wrong use of LLVM, we found a bug/unhandled case in LLVM. After we reported it a fix was proposed but either way we needed to take some actions before that fix landed.
A repackaging of 0.30.0-2 for darwin was done using LLVM 3.9.1. A workaround to avoid the LLVM bug was done in #8063.
The 0.30.1 darwin package is using LLVM 6.0.1.
There are other outstanding issues regarding debug metadata in release mode that have been unsolved for a long time, but since almost nobody runs LLVM with assertions, those are unnoticed. Assertions are good sometimes (take 1).
Abstract method check
The abstract method check introduced in 0.30.0 got some improvements to consider the methods defined across the whole hierarchy of types. Read more at #8035.
Standard library
Concurrency
libevent 2.1.11 was released shortly after Crystal 0.30.0. There is a new constraint enforced by it that got in conflict with how fibers were resumed by our runtime. Read more at #8058. Bonus point: it seems that we have a slight performance improvement with that change. Assertions are good sometimes (take 2).
Networking
One of the recent optimizations caused headers to arrive with an unexpected case for some use-cases. This was fixed in #8061.
Meanwhile, a socket leaking after failed SSL connect was fixed in #8025.
Next steps
Please update your Crystal and report any issues. We will keep moving forward regarding 0.31.
Once again, check your code with --warnings=all
. This will help in the migration of your codebase and will probably push some feedback about that tool.
Stay tuned!


As a community, there are some rules we need to follow.
All our members need to agree to the Code of Conduct:
- I shall be respectful of others
- I shall be open to collaboration and foster a collaborative environment
- I shall not harass, be offensive, or cause any discomfort to others
- I shall not commit any act of plagiarism
- I shall not commit or be party to any unlawful or unethical act
- I agree to be removed from the community if I violate any of the code of conduct or engage in bad behavior
In the end it is up to us, the HATS moderators, to define bad behavior. If you are engaging in bad behavior (e.g. sexually harassing others, posting offensive content or to discriminate against a gender), you may be given a warning that your behavior is not acceptable or be removed from the community.
Report any violations to<EMAIL_ADDRESS>or https://goo.gl/forms/28exDfR76rgCsnjR2


PT. Faasri Utama Sakti ( est : 1985 ) is an innovative technology company which utilizes our relationships and appropriate technologies to build continuous value for our clients and partners. Our business model and approach present a refreshing change to traditional approaches of technology based relationships. We offers a mix of business skills and technology for you to stay ahead of competition and technology changes with delivery capabilities to generate value from your investments, go beyond just offering a cost advantage. We work to meet your expectations of quality, cost efficiency, flexibility and process innovation in your IT enablement for you to be able to meet your client expectations. We operate in a variety of related disciplines including :
IT SERVICES
SEAT MANAGEMENT
BUSINESS SOFTWARE DEVELOPMENT
WEBSITE BUILDER
TIER 4 READY DATA CENTRE AND COULD COMPUTING SERVICES


Thank You for
Selecting LTL Space with Cargo Chief, Please complete Your Information
<You Only Need to
do this Once>
Cargo
Chief Best Quote: 201,101; April 15, 2012, 14:25 PST, 4 hour bidding
window
For: ABC Strawberry Growers,<PHONE_NUMBER><EMAIL_ADDRESS>What: Safeway PO SW234-098, Strawberries, 3 Pallets, each L
48 W 40
H 48 inches,
Not Stackable, Total weight 3,000 #,
Class 50
Origin:
Gilroy, CA, 95020, Business with Dock or Forklift
Destination:
Menasha, WI, 54952, Business with Dock or Forklift;
Appointment Required, ~2,238 Miles
Carrier Selected: Smith & Brown, a 4 star carrier,
5 day transit time estimated, tracking
available, price to haul this load:
$1,450, 40% Savings


--- layout: page title: Careers permalink: /careers/ menus: [team.html] headerimage: "/images/header/team_header.png" ---
Come work with us at SIMLab! We offer a supportive work environment with awesome co-workers and many other perks.
Come work with us at SIMLab! We offer a supportive work environment with awesome co-workers and many other perks.
We’ve currently got a small staff of 6, with 2 in Nairobi, 3 in DC, and 1 in Brooklyn. We offer flexible work arrangements, with the possibility of working remotely, flex hours, and ability to work from home if you’d like. We’ve got office space in the OpenGovHub in Washington, DC—a co-working space that fosters creativity and collaboration, offers an endless supply of coffee, and has office perks like a gym, bike storage, etc. In Nairobi, we're in the iHub building in Kilimani.
On top of competitive salaries, we offer employees health and dental insurance, support the purchase of your own preferred laptop, provide 20 days of paid vacation plus a generous amount of time off for the winter holidays, and foster professional development. We're looking for highly-motivated, passionate individuals who can grow and learn along with us.
{% for page in site.pages%}Don't see the job you want? Send us a CV and a letter telling us why we desperately need you to jobs@simlab.org