| Opcode | Instruction | Description |
|---|---|---|
| NP 0F 37 (EAX=6) | GETSEC[PARAMETERS] | Report the SMX parameters. The parameters index is input in EBX with the result returned in EAX, EBX, and ECX. |
The GETSEC[PARAMETERS] instruction returns specific parameter information for SMX features supported by the processor. Parameter information is returned in EAX, EBX, and ECX, with the input parameter selected using EBX.
Software retrieves parameter information by searching with an input index for EBX starting at 0, and then reading the returned results in EAX, EBX, and ECX. EAX[4:0] is designated to return a parameter type field indicating if a parameter is available and what type it is. If EAX[4:0] is returned with 0, this designates a null parameter and indicates no more parameters are available.
Table 6-7 defines the parameter types supported in current and future implementations.
| Parameter Type EAX[4:0] | Parameter Description | EAX[31:5] | EBX[31:0] | ECX[31:0] |
|---|---|---|---|---|
| 0 | NULL | Reserved (0 returned) | Reserved (unmodified) | Reserved (unmodified) |
| 1 | Supported AC module versions | Reserved (0 returned) | Version comparison mask | Version numbers supported |
| 2 | Max size of authenticated code execution area | Multiply by 32 for size in bytes | Reserved (unmodified) | Reserved (unmodified) |
| 3 | External memory types supported during AC mode | Memory type bit mask | Reserved (unmodified) | Reserved (unmodified) |
| 4 | Selective SENTER functionality control | EAX[14:8] correspond to available SENTER function disable controls | Reserved (unmodified) | Reserved (unmodified) |
| 5 | TXT extensions support | TXT Feature Extensions Flags (see Table 6-8) | Reserved | Reserved |
| 6-31 | Undefined | Reserved (unmodified) | Reserved (unmodified) | Reserved (unmodified) |
| Bit | Definition | Description |
|---|---|---|
| 5 | Processor based S-CRTM support | Returns 1 if this processor implements a processor-rooted S-CRTM capability and 0 if not (SCRTM is rooted in BIOS). This flag cannot be used to infer whether the chipset supports TXT or whether the processor support SMX. |
| 6 | Machine Check Handling | Returns 1 if it machine check status registers can be preserved through ENTERACCS and SENTER. If this bit is 1, the caller of ENTERACCS and SENTER is not required to clear machine check error status bits before invoking these GETSEC leaves. If this bit returns 0, the caller of ENTERACCS and SENTER must clear all machine check error status bits before invoking these GETSEC leaves. |
| 31:7 | Reserved | Reserved for future use. Will return 0. |
Supported AC module versions (as defined by the AC module HeaderVersion field) can be determined for a particular SMX capable processor by the type 1 parameter. Using EBX to index through the available parameters reported by GETSEC[PARAMETERS] for each unique parameter set returned for type 1, software can determine the complete list of AC module version(s) supported.
For each parameter set, EBX returns the comparison mask and ECX returns the available HeaderVersion field values supported, after AND'ing the target HeaderVersion with the comparison mask. Software can then determine if a particular AC module version is supported by following the pseudo-code search routine given below:
parameter_search_index= 0 do { EBX= parameter_search_index++ EAX= 6 GETSEC if (EAX[4:0] = 1) { if ((version_query & EBX) = ECX) { version_is_supported= 1 break } }
} while (EAX[4:0] ≠ 0)
If only AC modules with a HeaderVersion of 0 are supported by the processor, then only one parameter set of type 1 will be returned, as follows: EAX = 00000001H,
EBX = FFFFFFFFH and ECX = 00000000H.
The maximum capacity for an authenticated code execution area supported by the processor is reported with the parameter type of 2. The maximum supported size in bytes is determined by multiplying the returned size in EAX[31:5] by 32. Thus, for a maximum supported authenticated RAM size of 32KBytes, EAX returns with 00008002H.
Supportable memory types for memory mapped outside of the authenticated code execution area are reported with the parameter type of 3. While is active, as initiated by the GETSEC functions SENTER and ENTERACCS and terminated by EXITAC, there are restrictions on what memory types are allowed for the rest of system memory. It is the responsibility of the system software to initialize the memory type range register (MTRR) MSRs and/or the page attribute table (PAT) to only map memory types consistent with the reporting of this parameter. The reporting of supportable memory types of external memory is indicated using a bit map returned in EAX[31:8]. These bit positions correspond to the memory type encodings defined for the MTRR MSR and PAT programming. See Table 6-9.
The parameter type of 4 is used for enumerating the availability of selective GETSEC[SENTER] function disable controls. If a 1 is reported in bits 14:8 of the returned parameter EAX, then this indicates a disable control capa-
bility exists with SENTER for a particular function. The enumerated field in bits 14:8 corresponds to use of the EDX input parameter bits 6:0 for SENTER. If an enumerated field bit is set to 1, then the corresponding EDX input parameter bit of EDX may be set to 1 to disable that designated function. If the enumerated field bit is 0 or this parameter is not reported, then no disable capability exists with the corresponding EDX input parameter for SENTER, and EDX bit(s) must be cleared to 0 to enable execution of SENTER. If no selective disable capability for SENTER exists as enumerated, then the corresponding bits in the IA32_FEATURE_CONTROL MSR bits 14:8 must also be programmed to 1 if the SENTER global enable bit 15 of the MSR is set. This is required to enable future extensibility of SENTER selective disable capability with respect to potentially separate software initialization of the MSR.
| EAX Bit Position | Parameter Description |
|---|---|
| 8 | Uncacheable (UC) |
| 9 | Write Combining (WC) |
| 11:10 | Reserved |
| 12 | Write-through (WT) |
| 13 | Write-protected (WP) |
| 14 | Write-back (WB) |
| 31:15 | Reserved |
If the GETSEC[PARAMETERS] leaf or specific parameter is not present for a given SMX capable processor, then default parameter values should be assumed. These are defined in Table 6-10.
| Parameter Type EAX[4:0] | Default Setting | Parameter Description |
|---|---|---|
| 1 | 0.0 only | Supported AC module versions. |
| 2 | 32 KBytes | Authenticated code execution area size. |
| 3 | UC only | External memory types supported during AC execution mode. |
| 4 | None | Available SENTER selective disable controls. |
(* example of a processor supporting only a 0.0 HeaderVersion, 32K ACRAM size, memory types UC and WC *) IF (CR4.SMXE=0) THEN #UD; ELSE IF (in VMX non-root operation) THEN VM Exit (reason=”GETSEC instruction”); ELSE IF (GETSEC leaf unsupported) THEN #UD; (* example of a processor supporting a 0.0 HeaderVersion *) IF (EBX=0) THEN EAX← 00000001h; EBX← FFFFFFFFh; ECX← 00000000h; ELSE IF (EBX=1) (* example of a processor supporting a 32K ACRAM size *) THEN EAX← 00008002h; ESE IF (EBX= 2) (* example of a processor supporting external memory types of UC and WC *) THEN EAX← 00000303h; ESE IF (EBX= other value(s) less than unsupported index value) (* EAX value varies. Consult Table 6-7 and Table 6-8*) ELSE (* unsupported index*) EAX ̈ 00000000h; END;
None.
LOCK Causes #UD.
REP* Cause #UD (includes REPNE/REPNZ and REP/REPE/REPZ).
Operand size Causes #UD.
NP 66/F2/F3 prefixes are not allowed.
Segmentoverrides Ignored.
Address size Ignored.
REX Ignored.
| #UD | If CR4.SMXE = 0. |
| If GETSEC[PARAMETERS] is not reported as supported by GETSEC[CAPABILITIES]. |
| #UD | If CR4.SMXE = 0. |
| If GETSEC[PARAMETERS] is not reported as supported by GETSEC[CAPABILITIES]. |
| #UD | If CR4.SMXE = 0. |
| If GETSEC[PARAMETERS] is not reported as supported by GETSEC[CAPABILITIES]. |
All protected mode exceptions apply.
All protected mode exceptions apply.
Reason (GETSEC) IF in VMX non-root operation.


| Bec on the ferry around Sydney Harbour, with the Bridge and the Opera House in the background |
| Me on the same ferry |
| Me and Brad on Bondi Beach - look I'm blatantly a tourist! |
| Elvis is Alive! Praise be! And he surfs on Bondi! |
| The coolest estate agency in Australia |


{% block h1 %}HMRC Header{% endblock %}
The HMRC header is an variant of the GOV.UK header.
Header design
The HMRC logo is included for services where there is a user need to reassure users that they are using an HMRC service. For example, when they are making a payment and need to be sure that the money is going to the right government department.
More user research is needed to prove if the HMRC logo reassures users.
Header examples
Header with cookie
This is essentially just the GOV.UK header but it's included here for completeness.
Header signed out
Should be used for services when there is a need to identify the service as an HMRC service.
This version of the header should contain:
- the GOV.UK header
- a phase banner unless the service is live
- HMRC logo
- Welsh toggle
Header signed in
Should be used for services when there is a need to identify the service as an HMRC service and when users can have a signed in state.
This version of the header should contain:
- the GOV.UK header
- a sign out link
- a phase banner unless the service is live
- HMRC logo
- Last logged in status
- Welsh toggle


| Module | AuthenticatedSystem |
| In: |
lib/authenticated_system.rb
|
Inclusion hook to make current_user and logged_in? available as ActionView helper methods.
# File lib/authenticated_system.rb, line 97 97: def self.included(base) 98: base.send :helper_method, :current_user, :logged_in?, :authorized? if base.respond_to? :helper_method 99: end
Redirect as appropriate when an access request fails.
The default action is to redirect to the login screen.
Override this method in your controllers if you want to have special behavior in case the user is not authorized to access the requested action. For example, a popup window might simply close itself.
# File lib/authenticated_system.rb, line 64 64: def access_denied 65: respond_to do |format| 66: format.html do 67: store_location 68: redirect_to new_session_path 69: end 70: # format.any doesn't work in rails version < http://dev.rubyonrails.org/changeset/8987 71: # Add any other API formats here. Some browsers send Accept: */* and 72: # trigger the 'format.any' block incorrectly. 73: format.any(:json, :xml) do 74: request_http_basic_authentication 'Web Password' 75: end 76: end 77: end
Check if the user is authorized
Override this method in your controllers if you want to restrict access to only a few actions or if you want to check if the user has the correct rights.
Example:
# only allow nonbobs def authorized? current_user.login != "bob" end
# File lib/authenticated_system.rb, line 34 34: def authorized?(action = action_name, resource = nil) 35: logged_in? 36: end
Accesses the current user from the session. Future calls avoid the database because nil is not equal to false.
# File lib/authenticated_system.rb, line 11 11: def current_user 12: @current_user ||= (login_from_session || login_from_basic_auth || login_from_cookie) unless @current_user == false 13: end
Store the given user id in the session.
# File lib/authenticated_system.rb, line 16 16: def current_user=(new_user) 17: session[:user_id] = new_user ? new_user.id : nil 18: @current_user = new_user || false 19: end
Refresh the cookie auth token if it exists, create it otherwise
# File lib/authenticated_system.rb, line 168 168: def handle_remember_cookie!(new_cookie_flag) 169: return unless @current_user 170: case 171: when valid_remember_cookie? then @current_user.refresh_token # keeping same expiry date 172: when new_cookie_flag then @current_user.remember_me 173: else @current_user.forget_me 174: end 175: send_remember_cookie! 176: end
# File lib/authenticated_system.rb, line 178 178: def kill_remember_cookie! 179: cookies.delete :auth_token 180: end
Returns true or false if the user is logged in. Preloads @current_user with the user model if they‘re logged in.
# File lib/authenticated_system.rb, line 5 5: def logged_in? 6: !!current_user 7: end
Called from current_user. Now, attempt to login by basic authentication information.
# File lib/authenticated_system.rb, line 111 111: def login_from_basic_auth 112: authenticate_with_http_basic do |login, password| 113: self.current_user = User.authenticate(login, password) 114: end 115: end
Called from current_user. Finaly, attempt to login by an expiring token in the cookie. for the paranoid: we should be storing user_token = hash(cookie_token, request IP)
# File lib/authenticated_system.rb, line 123 123: def login_from_cookie 124: user = cookies[:auth_token] && User.find_by_remember_token(cookies[:auth_token]) 125: if user && user.remember_token? 126: self.current_user = user 127: handle_remember_cookie! false # freshen cookie token (keeping date) 128: self.current_user 129: end 130: end
Called from current_user. First attempt to login by the user id stored in the session.
# File lib/authenticated_system.rb, line 106 106: def login_from_session 107: self.current_user = User.find_by_id(session[:user_id]) if session[:user_id] 108: end
Filter method to enforce a login requirement.
To require logins for all actions, use this in your controllers:
before_filter :login_required
To require logins for specific actions, use this in your controllers:
before_filter :login_required, :only => [ :edit, :update ]
To skip this in a subclassed controller:
skip_before_filter :login_required
# File lib/authenticated_system.rb, line 52 52: def login_required 53: authorized? || access_denied 54: end
This is ususally what you want; resetting the session willy-nilly wreaks havoc with forgery protection, and is only strictly necessary on login. However, **all session state variables should be unset here**.
# File lib/authenticated_system.rb, line 135 135: def logout_keeping_session! 136: # Kill server-side auth cookie 137: @current_user.forget_me if @current_user.is_a? User 138: @current_user = false # not logged in, and don't do it for me 139: kill_remember_cookie! # Kill client-side auth cookie 140: session[:user_id] = nil # keeps the session but kill our variable 141: # explicitly kill any other session variables you set 142: end
The session should only be reset at the tail end of a form POST — otherwise the request forgery protection fails. It‘s only really necessary when you cross quarantine (logged-out to logged-in).
# File lib/authenticated_system.rb, line 147 147: def logout_killing_session! 148: logout_keeping_session! 149: reset_session 150: end
Redirect to the URI stored by the most recent store_location call or to the passed default. Set an appropriately modified
after_filter :store_location, :only => [:index, :new, :show, :edit]
for any controller you want to be bounce-backable.
# File lib/authenticated_system.rb, line 90 90: def redirect_back_or_default(default) 91: redirect_to(session[:return_to] || default) 92: session[:return_to] = nil 93: end
# File lib/authenticated_system.rb, line 182 182: def send_remember_cookie! 183: cookies[:auth_token] = { 184: :value => @current_user.remember_token, 185: :expires => @current_user.remember_token_expires_at } 186: end
Store the URI of the current request in the session.
We can return to this location by calling redirect_back_or_default.
# File lib/authenticated_system.rb, line 82 82: def store_location 83: session[:return_to] = request.request_uri 84: end
Cookies shouldn‘t be allowed to persist past their freshness date, and they should be changed at each login
# File lib/authenticated_system.rb, line 161 161: def valid_remember_cookie? 162: return nil unless @current_user 163: (@current_user.remember_token?) && 164: (cookies[:auth_token] == @current_user.remember_token) 165: end


Salary Calculator
Name:
Type:
Intern
Associate
Manager
Executive
Director
Level:
0-5yrs
6-10yrs
11-15yrs
16-Above
Overtime:
Calculate
Clear
Data
Output
Name:
Type:
Basic Salary:
Tax:
Net Salary:


Click the button to display the lowest value, highest value and average.
The maximum number is:
The lowest number is:
The average number is:


[§489-7] No limitation on causes of action. Nothing in this chapter shall be construed to limit any cause of action based upon any unfair discriminatory practices for which a remedy is available under state or federal law. [L 1986, c 292, pt of §1]


Extensions The following extensions are available globally. NSColor Extension for NSColor to support colorset files. Authors Jean-David Gadina See more Declaration Swift public extension NSColor (c) 2019 DigiDNA - www.imazing.com Generated by jazzy ♪♫ v0.11.1, a Realm project.


|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |
| Packages that use org.gridlab.gat.resources | |
|---|---|
| org.gridlab.gat | This package contains classes and interfaces which are used throughout the GAT application API. |
| org.gridlab.gat.resources | This package contains the classes and interfaces which are used for using resources, be they hardware or software resources. |
| Classes in org.gridlab.gat.resources used by org.gridlab.gat | |
|---|---|
| ResourceBroker
An instance of this class is used to submit Job s or to reserve
Resource s. |
| Classes in org.gridlab.gat.resources used by org.gridlab.gat.resources | |
|---|---|
| AbstractJobDescription
Abstract job description. |
|
| CoScheduleJobDescription
An instance of this class describes an coschedule job to be run. |
|
| HardwareResource
An instance of this interface is an abstract representation of a physical hardware resource which is Monitorable . |
|
| HardwareResourceDescription
An instance of this class is a description of a hardware resource, a physical entity, which a may be required by a hardware or software component. |
|
| JavaSoftwareDescription
An instance of this class is a description of a piece of java software (component) which is to be submitted as a job. |
|
| Job
An instance of this class represents a job. |
|
| Job.JobState
An instance of this enumeration indicates the state of a Job . |
|
| JobDescription
An instance of this class describes a job to be run. |
|
| OrderedCoScheduleJobDescription.JobLink
|
|
| Reservation
An instance implementing this interface represents a reservation for Resource s. |
|
| Resource
Resource is a base interface which is realized by any class which wishes to indicate it represents a node or component; currently both a HardwareResource and a SoftwareResource realize this
interface. |
|
| ResourceDescription
The ResourceDescription interface forms the base for the
SoftwareResourceDescription s and HardwareResourceDescription s
classes; these are used to specify and find resources which may then be used,
for example, to submit a Job to. |
|
| SoftwareDescription
An instance of this class is a description of a piece of software (component) which is to be submitted as a job. |
|
| WrapperJobDescription.ScheduledType
An instance of this enumeration indicates the scheduled type of the WrapperJobDescription . |
|
| WrapperJobDescription.WrappedJobInfo
This object contains all the information necessary to describe a wrapped Job . |
|
| WrapperSoftwareDescription
An instance of this class is a description of a piece of java software (component) which is to be submitted as a wrapper job. |
|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |


Obsolete Members for QFileDialog
The following members of class QFileDialog are obsolete. They are provided to keep old source code working. We strongly advise against using them in new code.
Properties
(obsolete)
confirmOverwrite : bool(obsolete)
nameFilterDetailsVisible : bool(obsolete)
readOnly : bool(obsolete)
resolveSymlinks : bool
- 1 property inherited from QWidget
Property Documentation
confirmOverwrite : bool
This property holds whether the filedialog should ask before accepting a selected file, when the accept mode is AcceptSave
Use setOption(DontConfirmOverwrite, !enabled) or !testOption(DontConfirmOverwrite) instead.
Access functions:
| bool | confirmOverwrite() const |
| void | setConfirmOverwrite(bool enabled) |
nameFilterDetailsVisible : bool
This property holds whether the filter details is shown or not.
When this property is true
(the default), the filter details are shown in the combo box. When the property is set to false, these are hidden.
Use setOption(HideNameFilterDetails, !enabled) or !testOption(HideNameFilterDetails).
This property was introduced in Qt 4.4.
Access functions:
| bool | isNameFilterDetailsVisible() const |
| void | setNameFilterDetailsVisible(bool enabled) |
readOnly : bool
This property holds whether the filedialog is read-only
If this property is set to false, the file dialog will allow renaming, and deleting of files and directories and creating directories.
Use setOption(ReadOnly, enabled) or testOption(ReadOnly) instead.
Access functions:
| bool | isReadOnly() const |
| void | setReadOnly(bool enabled) |
resolveSymlinks : bool
This property holds whether the filedialog should resolve shortcuts
If this property is set to true, the file dialog will resolve shortcuts or symbolic links.
Use setOption(DontResolveSymlinks, !enabled) or !testOption(DontResolveSymlinks).
Access functions:
| bool | resolveSymlinks() const |
| void | setResolveSymlinks(bool enabled) |


Do you think, 'I am more righteous than God?'
3 For you say, 'What use is it to me that I am righteous?
What good is it to me now, more than if I had sinned?'
4 I will answer you,
both you and your friends.
5 Look up at the sky, and see it;
see the sky, which is higher than you.
6 If you have sinned, what harm do you do to God?
If your transgressions pile up high, what do you do to him?
7 If you are righteous, what can you give to him?
What will he receive from your hand?
8 Your wickedness may hurt a man, as you are a man,
and your righteousness might benefit another son of man.
9 Because of many acts of oppression, people cry out;
they call for help from the arms of mighty men.
10 But no one says, 'Where is God my Maker,
who gives songs in the night,
11 who teaches us more than he teaches the beasts of the earth,
and who makes us wiser than the birds of the sky?'
12 There they cry out, but God gives no answer
because of the pride of evil men.
13 God will certainly not hear a foolish cry;
the Almighty will pay no attention to it.
14 How much less will he answer you if you say that you do not see him,
that your case is before him, and that you are waiting for him!
15 How much less will he answer you if you say that he never punishes anyone in anger,
and that he is not very concerned about people's pride.
16 So Job opens his mouth only to speak foolishness;
he piles up words without knowledge."


 Then $(AB)C=A(BC)$.
Concepts
Coming soon
Hypothesis
Coming soon
Results
Coming soon
Proof
Coming soon


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.hivemind.util.EventListenerList
public class EventListenerList
Convienience class for tracking a list of event listeners. Works efficiently (using a copy-on-write approach) to iterating through the listeners in the list even when the list of listeners may be modified.
EventListenerList is thread-safe.
| Constructor Summary | |
|---|---|
EventListenerList()
|
| Method Summary | |
|---|---|
void |
addListener(java.lang.Object listener)
Adds a new listener to the list of listeners. |
java.util.Iterator |
getListeners()
Returns an Iterator used to find all the listeners previously added. |
void |
removeListener(java.lang.Object listener)
Removes a listener from the list. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public EventListenerList()
| Method Detail |
|---|
public java.util.Iterator getListeners()
remove()
on the Iterator.
Invoking this method takes a "snapshot" of the current list of listeners.
You may invoke addListener(Object)
or removeListener(Object)
,
but that won't affect the sequence of listeners returned by the Iterator.
public void addListener(java.lang.Object listener)
public void removeListener(java.lang.Object listener)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


new Component()
NOTE:
If overriding
If overriding
componentWillUnmount
or componentWillUpdate
, you must call the
appropriate super method - super.componentWillUnmount()
or
super.componentWillUpdate(nextProps, nextState)
, respectively.
- Source:
Example
import { Component } from 'ern-navigation'
...
export default MainScreenComponent extends Component {
static displayName = 'Main Screen'
static navigationOptions = {
title: 'My Application',
buttons: [{
icon: Image.resolveAssetSource(exitIcon).uri,
id: 'exit',
location: 'right',
accessibilityLabel: 'Exit this app'
}]
}
onNavButtonPress (buttonId) {
switch (buttonId) {
case 'exit':
this.finish()
break
default:
console.warn(`Screen '${MainScreenComponent.getRegisteredRoute()}' received unmapped button id '${buttonId}'`)
break
}
}
...
}
Extends
- React.Component
Methods
(private, static) _getLocalizedNavigationBar(jsonPayload) → {NavigationBar}
Get a localized version of the navigation bar for this route.
Parameters:
| Name | Type | Description |
|---|---|---|
jsonPayload |
Object | The JSON payload for the current route. |
- Source:
Returns:
A NavigationBar object with the IDs of buttons updated to
pertain to the current route.
- Type
- NavigationBar
(private, static) _getNavigationBar(jsonPayload) → {NavigationBar}
Get the navigation bar for the given route.
Parameters:
| Name | Type | Description |
|---|---|---|
jsonPayload |
Object | The JSON payload for the current route. |
- Source:
Returns:
A NavigationBar object for the given route.
- Type
- NavigationBar
(private, static) _handleNavButtonPress(buttonId)
Make a call to
onNavButtonPress(buttonId)
(if available) whenever a button is
pressed in the navigation bar. This is called automatically whenever an event
is fired by the OnNavButtonClickEventListener.
If a subclassed instance contains the onNavButtonPress
method, that will be
called, otherwise the class's static method will be called.
Parameters:
| Name | Type | Description |
|---|---|---|
buttonId |
string | The ID of the Button that was pressed. |
- Source:
(private, static) _localizeNavigationBar(routeName, navigationBar) → {NavigationBar}
Get a localized version of the navigation bar for the given route.
Parameters:
| Name | Type | Description |
|---|---|---|
routeName |
string | The name of the current route. |
navigationBar |
NavigationBar | The NavigationBar object to localize. |
- Source:
Returns:
A NavigationBar object with the IDs of buttons updated to
pertain to the given route.
- Type
- NavigationBar
(private, static) _shouldDispatchButtonPressEvent(buttonId)
Determine whether to dispatch an
onNavButtonPress
event for a given buttonId.
Parameters:
| Name | Type | Description |
|---|---|---|
buttonId |
string | The ID of the Button. |
- Source:
(private, static) _unlocalizeButtonId(buttonId)
Get an unlocalized version of a button.
Parameters:
| Name | Type | Description |
|---|---|---|
buttonId |
string | The ID of the Button to unlocalize. |
- Source:
Example
// returns 'ButtonIdentifier'
NavigationBar._unlocalizeButtonId('RegisteredRoute.ButtonIdenfifier')
(static) getAppNavigator() → {AppNavigator}
Get the AppNavigator for this component.
- Source:
Returns:
The AppNavigator for this component.
- Type
- AppNavigator
(abstract, static) getDynamicTitle(jsonPayload)
Calculate the title for the current route based on the JSON payload.
Must be overriden in subclasses.
Parameters:
| Name | Type | Description |
|---|---|---|
jsonPayload |
Object | The JSON payload for the current route. |
- Source:
(static) getRegisteredRoute() → {string}
Get the registered route for this component.
- Source:
Returns:
A string containing the registered route for this component.
- Type
- string
(abstract, static) onNavButtonPress(buttonId)
Handle button press events.
Must be overriden in subclasses.
Parameters:
| Name | Type | Description |
|---|---|---|
buttonId |
string | The ID of the button which was pressed. |
- Source:
(static) setAppNavigator(appNavigator)
Set the AppNavigator for this component.
Parameters:
| Name | Type | Description |
|---|---|---|
appNavigator |
AppNavigator | The AppNavigator for this component. |
- Source:
(static) setRegisteredRoute(route)
Set the registered route for this component.
Parameters:
| Name | Type | Description |
|---|---|---|
route |
string | The registered route for this component. |
- Source:
(async) back() → {Promise}
Go back one screen.
- Source:
Returns:
A
Promise
which will resolve or reject upon attempting to
go back one screen.
- Type
- Promise
(async) backTo(screenName) → {Promise}
Go back to a specified screen.
Parameters:
| Name | Type | Description |
|---|---|---|
screenName |
string | The name of the screen to navigate to; these names should be defined in the initial AppNavigator setup. |
- Source:
Returns:
A
Promise
which will resolve or reject upon attempting to
go back to the specified screen.
- Type
- Promise
(async) finish(payloadopt) → {Promise}
Finish this flow.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
payload |
Object |
<optional> |
(optional) The JSON payload to send to the native activity or view controller that launched the flow. |
- Source:
Returns:
A
Promise
which will resolve or reject upon attempting to
finish the current flow.
- Type
- Promise
(async) navigate(route) → {Promise}
Navigate to a given route.
Parameters:
| Name | Type | Description |
|---|---|---|
route |
Object | The route object that details where to navigate next. |
- Source:
Returns:
A
Promise
which will resolve or reject upon attempting to
navigate to the given route.
- Type
- Promise
(async) navigateInternal(screenName, jsonPayloadopt) → {Promise}
Navigate to an internal screen.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
screenName |
string | The name of the screen to navigate to; these names should be defined in the initial AppNavigator setup. | |
jsonPayload |
Object |
<optional> |
(optional) The JSON payload with props to send to the new screen. |
- Source:
Returns:
A
Promise
which will resolve or reject upon attempting to
navigate to the new screen.
- Type
- Promise
(async) resetNavigationBar() → {Promise}
Reset the navigation bar for the current screen to its defaults.
- Source:
Returns:
A
Promise
which will resolve or reject upon attempting to
reset the navigation bar.
- Type
- Promise
(async) updateNavigationBar(navigationBar) → {Promise}
Update the navigation bar for the current screen.
Parameters:
| Name | Type | Description |
|---|---|---|
navigationBar |
NavigationBar | The NavigationBar object. |
- Source:
Returns:
A
Promise
which will resolve or reject upon attempting to
update the navigation bar.
- Type
- Promise


Message from<EMAIL_ADDRESS>Hey buddy!
Fascinating article and so relevant to the new era of human-machine networks. Relevant to the study group on "listening" to which I belong.
Cheers.


GCCountryPickerDelegate
public protocol GCCountryPickerDelegate
The delegate of a GCCountryPickerViewController object must adopt the GCCountryPickerDelegate protocol.
-
Tells the delegate that the user cancelled the pick operation.
Your delegate’s implementation of this method should dismiss the country picker.
Declaration
Swift
func countryPickerDidCancel(_ countryPicker: GCCountryPickerViewController)
Parameters
countryPicker
The controller object managing the country picker interface.
-
Tells the delegate that the user picked a country.
Your delegate’s implementation of this method should pass the country on to any custom code that needs it, and then it should dismiss the picker view.
Declaration
Swift
func countryPicker(_ countryPicker: GCCountryPickerViewController, didSelectCountry country: GCCountry)
Parameters
countryPicker
The controller object managing the country picker interface.
country
The country selected by the user.


A user program can talk to the keyboard controller on the motherboard. The keyboard controller can again talk to the keyboard.
When a key is pressed the keyboard sends the corresponding keyboard scancode to the keyboard controller, and the keyboard controller translates that and interrupts the CPU, allowing the CPU to read the result.
More detailed: when a key is pressed, the keyboard sends a start bit (low), followed by 8 data bits for the keyboard scancode of the key (least significant first), followed by an odd parity bit, followed by a stop bit (high). The keyboard controller reads the data and checks the parity. If incorrect, retransmission is requested. If incorrect again a parity error is reported. If the time between request to send and start of transmission is greater than 15 ms, or if the eleven bits are not received within 2ms, a timeout is reported. In both cases (parity error or timeout), the data byte is set to 0xff.
The keyboard controller has three 8-bit registers involved in communication with the CPU: its input buffer, that can be written by the CPU by writing port 0x60 or port 0x64; its output buffer, that can be read by the CPU by reading from port 0x60; and the status register, that can be read by the CPU by reading from port 0x64.
If the CPU writes to port 0x64, the byte is interpreted as a command byte. If the CPU writes to port 0x60, the byte is interpreted as a data byte.
The keyboard controller has two 8-bit I/O ports involved in communication with the keyboard: the input port P1 (receiving input from the keyboard) and the output port P2 (for sending output to the keyboard).
The keyboard controller has an 8-bit status register. It can be inspected by the CPU by reading port 0x64.
(Typically, it has the value 0x14: keyboard not locked, self-test completed.)
| PARE | TIM | AUXB | KEYL | C/D | SYSF | INPB | OUTB |
0: OK. 1: Parity error with last byte.
0: OK. 1: Timeout. On PS/2 systems: General timeout. On AT systems: Timeout on transmission from keyboard to keyboard controller. Possibly parity error (in which case both bits 6 and 7 are set).
Bit 5: Auxiliary output buffer full
On PS/2 systems: Bit 0 tells whether a read from port 0x60 will be valid. If it is valid, this bit 5 tells what data will be read from port 0x60. 0: Keyboard data. 1: Mouse data.On AT systems: 0: OK. 1: Timeout on transmission from keyboard controller to keyboard. This may indicate that no keyboard is present.
0: Locked. 1: Not locked.
0: Last write to input buffer was data (written via port 0x60). 1: Last write to input buffer was a command (written via port 0x64). (This bit is also referred to as Address Line A2.)
Set to 0 after power on reset. Set to 1 after successful completion of the keyboard controller self-test (Basic Assurance Test, BAT). Can also be set by command (see below).
0: Input buffer empty, can be written. 1: Input buffer full, don't write yet.
0: Output buffer empty, don't read yet. 1: Output buffer full, can be read. (In the PS/2 situation bit 5 tells whether the available data is from keyboard or mouse.) This bit is cleared when port 0x60 is read.
The keyboard controller is provided with some RAM, for example 32 bytes, that can be accessed by the CPU. The most important part of this RAM is byte 0, the Controller Command Byte (CCB). It can be read/written by writing 0x20/0x60 to port 0x64 and then reading/writing a data byte from/to port 0x60.
This byte has the following layout.
| 0 | XLATE | ME | KE | IGNLK | SYSF | MIE | KIE |
Always 0.
0: No translation. 1: Translate keyboard scancodes, using the translation table given above. MCA type 2 controllers cannot set this bit to 1. In this case scan code conversion is set using keyboard command 0xf0 to port 0x60.
On an EISA or PS/2 system: 0: Enable mouse. 1: Disable mouse by driving the clock line low. On an ISA system: "PC Mode": 0: use 11-bit codes, check parity and do scan conversion. 1: use 8086 codes, don't check parity and don't do scan conversion.
0: Enable keyboard. 1: Disable keyboard by driving the clock line low.
For PS/2: Unused, always 0. For AT: 0: No action. 1: Force bit 4 of the status register to 1, "not locked". This is used for keyboard testing after power on. Maybe only on older motherboards.
This bit is shown in bit 2 of the status register. A "cold reboot" is one with this bit set to zero. A "warm reboot" is one with this bit set to one (BAT already completed). This will influence the tests and initializations done by the POST.
On an ISA system: unused, always 0. On an EISA or PS/2 system: 0: Do not use mouse interrupts. 1: Send interrupt request IRQ12 when the mouse output buffer is full.
Bit 0: Keyboard interrupt enable
0: Do not use keyboard interrupts. 1: Send interrupt request IRQ1 when the keyboard output buffer is full.When no interrupts are used, the CPU has to poll bits 0 (and 5) of the status register.
The CPU can command the keyboard controller by writing port 0x64. Useful, generally available, keyboard commands are:
| 20 | Read keyboard controller command byte |
| 60 | Write keyboard controller command byte |
| aa | Self test |
| ab | Interface test |
| ad | Disable keyboard |
| ae | Enable keyboard |
| c0 | Read input port |
| d0 | Read output port |
| d1 | Write output port |
| e0 | Read test inputs |
| fe | System reset |
Useful, generally available, mouse commands are:
| a7 | Disable mouse port |
| a8 | Enable mouse port |
| a9 | Test mouse port |
| d4 | Write to mouse |
Obscure, probably obsolete, commands:
| 00-1f | Read keyboard controller RAM |
| 20-3f | Read keyboard controller RAM |
| 40-5f | Write keyboard controller RAM |
| 60-7f | Write keyboard controller RAM |
| 90-93 | Synaptics multiplexer prefix |
| 90-9f | Write Port13-Port10 |
| a0 | Read copyright |
| a1 | Read firmware version |
| a2 | Switch speed |
| a3 | Switch speed |
| a4 | Check if password installed |
| a5 | Load password |
| a6 | Check password |
| ac | Diagnostic dump |
| af | Read keyboard version |
| b0-b5 | Reset keyboard controller line |
| b8-bd | Set keyboard controller line |
| c1 | Continuous input port poll, low |
| c2 | Continuous input port poll, high |
| c8 | Unblock lines P22 and P23 |
| c9 | Block lines P22 and P23 |
| ca | Read keyboard controller mode |
| cb | Write keyboard controller mode |
| d2 | Write keyboard output buffer |
| d3 | Write mouse output buffer |
| dd | Disable A20 address line |
| df | Enable A20 address line |
| f0-ff | Pulse output bit |
Command 0x00-0x1f: Read keyboard controller RAM
(AMIBIOS only) Aliases for 0x20-0x3f.
Command 0x20-0x3f: Read keyboard controller RAM
The last six bits of the command specify the RAM address to read. The read data is placed into the output buffer, and can be read by reading port 0x60. On MCA systems, type 1 controllers can access all 32 locations; type 2 controllers can only access locations 0, 0x13-0x17, 0x1d, 0x1f.Location 0 is the Command byte, see above.
Location 0x13 (on MCA) is nonzero when a password is enabled.
Location 0x14 (on MCA) is nonzero when the password was matched.
Locations 0x16-0x17 (on MCA) give two make codes to be discarded during password matching.
Command 0x40-0x5f: Write keyboard controller RAM
(AMIBIOS only) Aliases for 0x40-0x5f.
Command 0x60-0x7f: Write keyboard controller RAM
Command 0x90-0x93: Synaptics routing prefixes
Prefix a PS/2 mouse command with one of these to talk to one of at most four multiplexed devices. See also the multiplexing handshake below.Unfortunately, VIA also uses this command:
Command 0x90-0x9f: Write Port13-Port10
(VIA VT82C42) Write low nibble to Port13-Port10.
On some keyboard controllers: an ASCIZ copyright string (possibly just NUL) is made available for reading via port 0x60. On other systems: no effect, the command is ignored.
Command 0xa1: Read controller firmware version
On some keyboard controllers: a single ASCII byte is made available for reading via port 0x60. On other systems: no effect, the command is ignored.
(On ISA/EISA systems with AMI BIOS) Reset keyboard controller lines P22 and P23 low. These lines can be used for speed switching via the keyboard controller. When done, the keyboard controller sends one garbage byte to the system.
(On ISA/EISA systems with AMI BIOS) Set keyboard controller lines P22 and P23 high. These lines can be used for speed switching via the keyboard controller. When done, the keyboard controller sends one garbage byte to the system.(Compaq BIOS: Enable system speed control.)
Command 0xa4: Check if password installed
On MCA systems: Return 0xf1 (via port 0x60) when no password is installed, return 0xfa when a password has been installed. Some systems without password facility always return 0xf1.(On ISA/EISA systems with AMI BIOS) Write Clock = Low.
(Compaq BIOS: toggle speed.)
On MCA systems: Load a password by writing a NUL-terminated string to port 0x60. The string is in scancode format.(On ISA/EISA systems with AMI BIOS) Write Clock = High.
(Compaq BIOS: special read of P2, with bits 4 and 5 replaced: Bit 5: 0: 9-bit keyboard, 1: 11-bit keyboard. Bit 4: 0: outp-buff-full interrupt disabled, 1: enabled.)
On MCA systems: When a password is installed: Check password by matching keystrokes with the stored password. Enable keyboard upon successful match.(On ISA/EISA systems with AMI BIOS) Read Clock. 0: Low. 1: High.
Command 0xa7: Disable mouse port
On MCA systems: disable the mouse (auxiliary device) by setting its clock line low, and set bit 5 of the Command byte. Now P23 = 1.(On ISA/EISA systems with AMI BIOS) Write Cache Bad.
Command 0xa8: Enable mouse port
On MCA systems: enable the mouse (auxiliary device), clear bit 5 of the Command byte. Now P23 = 0.(On ISA/EISA systems with AMI BIOS) Write Cache Good.
On MCA and other systems: test the serialálink between keyboard controller and mouse.
Perform self-test. Return 0x55 if OK, 0xfc if NOK.
Test the serial link between keyboard controller and keyboard. The result can be read from port 0x60. 0: OK. 1: Keyboard clock line stuck low. 2: Keyboard clock line stuck high. 3: Keyboard data line stuck low. 4: Keyboard data line stuck high. 0xff: General error.
(On some systems) Read from port 0x60 sixteen bytes of keyboard controller RAM, and the output and input ports and the controller's program status word.
Command 0xad: Disable keyboard
Disable the keyboard clock line and set bit 4 of the Command byte. Any keyboard command enables the keyboard again.
Enable the keyboard clock line and clear bit 4 of the Command byte.
 Commands 0xb8-0xbd set the corresponding keyboard controller line high. The lines are P10, P11, P12, P13, P22 and P23, respectively. (In the case of the lines P10, P11, P22, P23 this is on ISA/EISA systems only.) When done, the keyboard controller sends one garbage byte to the system.VIA BIOS: Commands 0xb0-0xb7 write 0 to lines P10, P11, P12, P13, P22, P23, P14, P15. Commands 0xb8-0xbf write 1 to lines P10, P11, P12, P13, P22, P23, P14, P15.
Read the input port (P1), and make the resulting byte available to be read from port 0x60.
Command 0xc1: Continuous input port poll, low
(MCA systems with type 1 controller only) Continuously copy bits 3-0 of the input port to be read from bits 7-4 of port 0x64, until another keyboard controller command is received.
Command 0xc2: Continuous input port poll, high
(MCA systems with type 1 controller only) Continuously copy bits 7-4 of the input port to be read from bits 7-4 of port 0x64, until another keyboard controller command is received.
Command 0xc8: Unblock keyboard controller lines P22 and P23
(On ISA/EISA systems with AMI BIOS) After this command, the system can make lines P22 and P23 low/high using command 0xd1.
Command 0xc9: Block keyboard controller lines P22 and P23
(On ISA/EISA systems with AMI BIOS) After this command, the system cannot make lines P22 and P23 low/high using command 0xd1.
Command 0xca: Read keyboard controller mode
(AMI BIOS, VIA) Read keyboard controller mode to bit 0 of port 0x60. 0: ISA (AT) interface. 1: PS/2 (MCA)interface.
Command 0xcb: Write keyboard controller mode
(AMI BIOS) Write keyboard controller mode to bit 0 of port 0x60. 0: ISA (AT) interface. 1: PS/2 (MCA)interface. (First read the mode using command 0xca, then modify only the last bit, then write the mode using this command.)
Command 0xd0: Read output port
Read the output port (P2) and place the result in the output buffer. Use only when output buffer is empty.
Command 0xd1: Write output port
Write the output port (P2). Note that writing a 0 in bit 0 will cause a hardware reset.(Compaq: the system speed bits are not set. Use commands 0xa1-0xa6 for that.)
Command 0xd2: Write keyboard output buffer
(MCA) Write the keyboard controllers output buffer with the byte next written to port 0x60, and act as if this was keyboard data. (In particular, raise IRQ1 when bit 0 of the Command byte says so.)
Command 0xd3: Write mouse output buffer
(MCA) Write the keyboard controllers output buffer with the byte next written to port 0x60, and act as if this was mouse data. (In particular, raise IRQ12 when bit 1 of the Command byte says so.)Not all systems support this.
Synaptics multiplexing On the other hand, Synaptics (see ps2-mux.PDF) uses this command as a handshake between driver and controller: if the driver gives this command three times, with data bytes 0xf0, 0x56, 0xa4 respectively, and reads 0xf0, 0x56, but not 0xa4 back from the mouse output buffer, then the driver knows that the controller supports Synaptics AUX port multiplexing, and the controller knows that it does not have to do the usual data faking and goes into multiplexed mode. The third byte read is the version of the Synaptics standard.
There is a corresponding deactivation sequence, namely 0xf0, 0x56, 0xa5. (And again the last byte is changed to the version number of the standard supported.) This latter sequence works both in multiplexed mode and in legacy mode and can thus be used to determine whether this feature is present without activating it.
See also the multiplexer commands 0x90-0x93.
For some laptops it has been reported that bit 3 of every third mouse byte is forced to 1 (as it would be with the standard 3-byte mouse packets). This may turn 0xf0, 0x56, 0xa4 into 0xf0, 0x56, 0xac and cause misdetection of Synaptics multiplexing (for version 10.12).
(MCA) The byte next written to port 0x60 is transmitted to the mouse.
Command 0xdd: Disable A20 address line
(HP Vectra)
Command 0xdf: Enable A20 address line
(HP Vectra)
Command 0xe0: Read test inputs
This command makes the status of the Test inputs T0 and T1 available to be read via port 0x60 in bits 0 and 1, respectively. Use only when the output port is empty.
Command 0xf0-0xff: Pulse output bit
Bits 3-0 of the output port P2 of the keyboard controller may be pulsed low for approximately 6 Áseconds. Bits 3-0 of this command specify the output port bits to be pulsed. 0: Bit should be pulsed. 1: Bit should not be modified. The only useful version of this command is Command 0xfe. (For MCA, replace 3-0 by 1-0 in the above.)
Pulse bit 0 of the output port P2 of the keyboard controller. This will reset the CPU.
This has the following layout.
| bit 7 | Keyboard lock | 0: locked, 1: not locked |
| bit 6 | Display | 0: CGA, 1: MDA |
| bit 5 | Manufacturing jumper | 0: installed, 1: not installed |
| with jumper the BIOS runs an infinite diagnostic loop | ||
| bit 4 | RAM on motherboard | 0: 512 KB, 1: 256 KB |
| bit 3 | Unused in ISA, EISA, PS/2 systems | |
| Can be configured for clock switching | ||
| bit 2 | Unused in ISA, EISA, PS/2 systems | |
| Can be configured for clock switching | ||
| Keyboard power | PS/2 MCA: 0: keyboard power normal, 1: no power | |
| bit 1 | Mouse data in | Unused in ISA |
| bit 0 | Keyboard data in | Unused in ISA |
Clearly only bits 1-0 are input bits. Of the above, the original IBM AT used bits 7-4, while PS/2 MCA systems use only bits 2-0.
Where in the above lines P10, P11, etc are used, these refer to the pins corresponding to bit 0, bit 1, etc of port P1.
This has the following layout.
| bit 7 | Keyboard data | data to keyboard |
| bit 6 | Keyboard clock | |
| bit 5 | IRQ12 | 0: IRQ12 not active, 1: active |
| bit 4 | IRQ1 | 0: IRQ1 not active, 1: active |
| bit 3 | Mouse clock | Unused in ISA |
| bit 2 | Mouse data | Unused in ISA. Data to mouse |
| bit 1 | A20 | 0: A20 line is forced 0, 1: A20 enabled |
| bit 0 | Reset | 0: reset CPU, 1: normal |
Where in the above lines P20, P21, etc are used, these refer to the pins corresponding to bit 0, bit 1, etc of port P2.
bit 0
Keyboard clock (input).
bit 1
(AT) Keyboard data (input). (PS/2) Mouse clock (input).


CONTACT US
FAQs
RULES
GOODIES
ABOUT US
GOODIES
Hactoberfest Tshirts
High Tier Prizes
Cool Stickers for your PC
GET FREE GOODIES


Fight was like 'something from Wild West', Perth Sheriff Court hears
Violent scenes erupted in Blairgowrie bar
by Perthshire Advertiser, https://www.dailyrecord.co.uk/authors/perthshire-advertiser/Violent scenes which erupted in a Blairgowrie bar were likened to “something from a Wild West saloon” by Sheriff Lindsay Foulis yesterday.
Fifty-three-year-old William Jeffrey, described as the “catalyst” for the trouble, was fined a total of £1300 - and banned from the Crown Bar in the town’s Wellmeadow, for two years.
He admitted causing uproar in the premises on July 13 this year by engaging in a number of fights, struggling with members of the public and then picking up a chair and swinging it over his shoulder.
As a result, it struck two patrons - Niamh Hunter and Louise Bloor - on the head and body.
Part of the charge which alleged that he threw a tumbler was deleted.
Jeffrey, of Manor Gardens, Blairgowrie, also punched another customer, Andrew Whittock, on the head during the incident which erupted at about 11pm.
The court was told the initial disturbance involved Mr Whittock, the accused and his son.
But other members of the public quickly became involved as they tried to “separate” those involved.
“The police were contacted but the disturbance continued,” explained depute fiscal Lisa Marshall.
“It moved from the bar area along the corridor and into the gents’ toilet.”
The trouble seemed to calm down, but the accused became “agitated” again and picked up the chair.
Numerous people were “pushing and shoving each other” in the course of the fracas and it then spilled out into Welton Road before the accused was put in the back of a police van.
Solicitor MIke Tavendale said the accused had been at a barbecue for his son’s birthday that afternoon and had then gone to the pub.
He suspected his drink might have been “spiked” as the incident was out of character and he had never been in trouble before.
After the initial assault, a number of Mr Whittock’s friends “piled in” and the accused “got a bit of a kicking.”
Neither of the women needed medical attention after being struck by the chair.
The accused will pay the fine within three months.


Alex Albon "still seems unable to make any inroads into the 'A' race"
by Louis ShawAlex Albon has really impressed since joining Red Bull Racing. He has consistently scored points and was set to make it onto the podium at the Brazilian Grand Prix until he was hit by Lewis Hamilton.
Former F1 driver Jolyon Palmer believes that Albon has performed better than Pierre Gasly but thinks he is still a way off the top drivers.
"Albon has undoubtedly been stronger in the Red Bull than Gasly and would have been on the podium in Brazil had it not been for Hamilton's overzealous passing attempt into Bico de Pato on the penultimate lap. But his qualifying deficit to Verstappen is 0.42secs - more than twice that of Ricciardo," Palmer said in his BBC Sport column.
"Albon has been impressive in race conditions, to an extent. His race-craft has been particularly strong since he joined Red Bull, often charging from the back of the grid after a penalty to finish on the back of the main race, and he has made some sumptuous overtakes - including around the outside of Ferrari's Sebastian Vettel in Brazil.
"But at the moment he still seems unable to make any inroads into the 'A' race. While Verstappen took pole position and was heading to victory in Brazil, Albon qualified sixth and was heading for a finish there until Valtteri Bottas' Mercedes engine expired and mixed up the race."
Albon will hope to continue to improve as a driver and break into the "A" race with more development and time in a top seat next season.


"Lethal Weapon" Packs Lots of Fire Power by Homer Yen (c) 1998
Just how inseparable is the team of Sgt. Martin Riggs (Mel Gibson) and Sgt. Roger Murtaugh (Danny Glover)? Let's just say that when one partner asks the other partner to strip to his boxer shorts and then further asks him to run out into the middle of the road, flapping his arms while feverishly cackling like a chicken just to create a distraction, his partner actually does it!
The familiar Lethal Weapon family is back, including Rene Russo, who is now the expectant mother of Riggs' child and Joe Pesci as the soprana-like, foul-mouthed former accountant who has decided to become a private eye. New to the team is Chris Rock, also a fast-talking, up and coming detective. Trouble seems to follow the two veteran detectives where ever they go, and in this film, that is no exception. Even when they are just taking a leisurely boat ride, they somehow manage to collide with a freighter ship. We here some ominous music, which clues us that a confrontation is about to happen. Gunfire ensues, and when it's all over, the detectives want to learn more about this freighter by questioning a Chinatown crime lord.
Although they don't know what they're looking for, their inquisitiveness causes the bad guys to take some action. And there's plenty of action here for two movies. Led by fighting sensation Jet Li, whose martial arts skill is nothing less than impressive, he does what he can to make sure that no one finds out what they are up to. Li is ruthless in his approach, will kill anyone just to make a point, and develops enormous disdain for the two detectives.
There are terrific car chases, explosions and gunshot galore.  But even too many explosions can get boring. To counter that, we are treated to several amazingly choreographed fight sequences with Jet Li. Luckily, he'd rather fight hand-to-hand instead of firing off guns. Meanwhile, when the detectives aren't reloading their guns or running from fireballs, they're engaged in sophomoric banter and silly conversations that provide a nice diversion from the hail of bullets. Everybody gets in on the shtick. Russo screams during her delivery, the crime lord has a few funny bits when he's being interrogated while being given laughing gas, and Pesci and Rock are very funny as they go at it discussing the drawbacks of having cellular phones. Gibson and Glover are always in sync and the film moves at a brisk pace to get to the final and terrific mano a mano. Score one for the Old Guard.
Grade: B
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


All users:
| Name info | Address | Other Info |
|---|---|---|
|
{{u.name}} Username is {{u.username}} |
{{u.address.street}}, {{u.address.suite}} {{u.address.city}}, {{u.address.zipcode}} Phone {{u.phone}} Email {{u.email}} Website {{u.website}} |
Company is {{u.company.name}}
|
Lizards are a widespread group of squamate reptiles, with over 6,000 species,[1] ranging across all continents except Antarctica, as well as most oceanic island chains. The group is paraphyletic as it excludes the snakes and Amphisbaenia which are also squamates. Lizards range in size from chameleons and geckos a few centimeters long to the 3 meter long Komodo dragon.
Most lizards are quadrupedal, running with a strong side-to-side motion. Others are legless, and have long snake-like bodies. Some such as the forest-dwelling Draco lizards are able to glide. They are often territorial, the males fighting off other males and signalling, often with brightly colours, to attract mates and to intimidate rivals. Lizards are mainly carnivorous, often being sit-and-wait predators; many smaller species eat insects, while the Komodo eats mammals as big as water buffalo.


tasks_helper.rb
Hipposoft 2008
Support functions for views related to Task objects. See controllers/tasks_controller.rb for more.
04-Jan-2008 (ADH): Created.
Return list actions appropriate for the given task.
# File app/helpers/tasks_helper.rb, line 74 def taskhelp_actions( task ) if ( @current_user.admin? or ( task.active and @current_user.manager? ) ) actions = [ 'edit' ] actions.push( 'delete' ) if ( @current_user.admin? ) else actions = [] end actions.push( 'show' ) return actions end
As #taskhelp_billable_class, but for active/inactive tasks.
# File app/helpers/tasks_helper.rb, line 110 def taskhelp_active_class( task_or_boolean ) task_or_boolean = task_or_boolean.active if ( task_or_boolean.is_a?( Task ) ) return ( task_or_boolean ? "task_active" : "task_inactive" ) end
As #taskhelp_billable_help, but for active/inactive tasks.
# File app/helpers/tasks_helper.rb, line 117 def taskhelp_active_help return ( "Names of active or inactive tasks are shown as follows: " << "'active', " << "'inactive'." ).html_safe() end
Return an HTML class name appropriate for a billable or not billable task according to the given task or, if given a boolean, the value of that boolean where 'true' means 'billable'
Note that an additional class name may be included for active/inactive tasks (but not when a boolean is given, obviously!).
# File app/helpers/tasks_helper.rb, line 93 def taskhelp_billable_class( task_or_boolean ) task_or_boolean = task_or_boolean.billable if ( task_or_boolean.is_a?( Task ) ) return ( task_or_boolean ? "task_billable" : "task_not_billable" ) end
Return an HTML fragment giving help on billable versus non-billable tasks.
# File app/helpers/tasks_helper.rb, line 100 def taskhelp_billable_help return ( "Names of billable or non-billable tasks are shown as follows: " << "'billable', " << "'not billable'." ).html_safe() end
Return a name of a given task's associated customer, for use in list views.
# File app/helpers/tasks_helper.rb, line 61 def taskhelp_customer( task ) return '-'.html_safe() if ( task.project.nil? or task.project.customer.nil? ) return apphelp_augmented_link( task.project.customer ) end
Create a degrading task selector using either a YUI tree or a SELECT list, but not both. The latter has high database load. The former has greater client requirements.
The use cases for task selectors in Track Record are so varied that very specific cases are handled with special-case code and HTML output may include extra text to help the user for certain edge conditions, such as a lack of any available tasks (in a timesheet editor, this may be because all tasks are already added to the timesheet; for a user's choice of the default list of tasks to show in timesheets, this may be because the user has no permission to view any tasks; when configuring the tasks which a restricted user is able to see, this may be because no active tasks exist).
As a result, pass the reason for calling in the first parameter and an options list in the second.
Supported reasons are symbols and listsed in the 'case' statement in the code below. Each is preceeded by comprehensive comments describing the mandatory and (if any) optional key/value pairs which should go into the options hash. Please consult these comments for more information.
The following global options are also supported (none are mandatory):
Key Value ===================================================================== :line_prefix A string to insert at the start of each line of output - usually spaces, used if worried about the indentation of the overall view HTML.
# File app/helpers/tasks_helper.rb, line 351 def taskhelp_degrading_selector( reason, options ) output = '' form = options.delete( :form ) user = options.delete( :user ) case reason # Generate a selector used to add tasks to a given timesheet. Includes a # task selector and "add" button which submits to the given form with # name "add_row". The timesheet and form are specified in the options: # # Key Value # ===================================================================== # :form Prevailing outer form, e.g. the value of "f" in a view # which has enclosed the call in "form_for :foo do | f |". # # Leads to "task_ids" being invoked on the model associated # with the form to determine which items, if any, must be # initially selected for lists in the non-JS page version. # # :timesheet Instance of the timesheet being edited - used to find out # which tasks are already included in the timesheet and # thus which, if any, should be offered in the selector. # # NOTE: An empty string is returned if all tasks are already included in # the timesheet. # when :timesheet_editor tasks = timesheethelp_tasks_for_addition( options[ :timesheet ] ) unless ( tasks.empty? ) if ( session[ :javascript ].nil? ) Task.sort_by_augmented_title( tasks ) output << apphelp_collection_select( form, :task_ids, tasks, :id, :augmented_title ) output << '
' output << form.submit( 'Add', { :name => 'add_row' } ) else output << taskhelp_tree_selector( form, { :included_tasks => tasks, :change_text => 'Choose tasks...', :suffix_html => " then #{ form.submit( 'add them', { :name => 'add_row' } ) }\n" } ) end end # Generate a selector used to add tasks to a given report. The report and # form are specified in the following options: # # Key Value # ===================================================================== # :form Prevailing outer form, e.g. the value of "f" in a view # which has enclosed the call in "form_for :foo do | f |". # # Leads to "task_ids" being invoked on the model associated # with the form to determine which items, if any, must be # initially selected for lists in the non-JS page version. # # :report Instance of the report being created - used to find out # which tasks are already included in the report (for form # resubmissions, e.g. from validation failure). # # :inactive If 'true', the selector is generated for inactive tasks # only. If omitted or 'false', only active tasks are shown. # # :name A name to use instead of "task_ids" in the form submission # - optional, required if you want multiple selectors in the # same form. # # NOTE: All edge case conditions (no tasks, etc.) are handled internally # with relevant messages included in the HTML output for individual # selectors, but the caller ought to check that at least *some* tasks can # be chosen before presenting the user with a report generator form. # when :report_generator report = options[ :report ] active = ( options[ :inactive ] != true ) field = active ? :active_task_ids : :inactive_task_ids if ( session[ :javascript ].nil? ) tasks = active ? Task.active() : Task.inactive() count = tasks.length else tasks = active ? report.active_tasks : report.inactive_tasks count = @current_user.all_permitted_tasks.count end if ( count.zero? ) hint = active ? :active : :inactive output << "No #{ hint } tasks are available." else if ( session[ :javascript ].nil? ) Task.sort_by_augmented_title( tasks ) output << apphelp_collection_select( form, field, tasks, :id, :augmented_title ) else output << taskhelp_tree_selector( form, { :selected_tasks => tasks, :params_name => field, :inactive => ! active } ) end end # Generate a selector which controls the default task list shown in # new timesheets. # # Key Value # ===================================================================== # :user Instance of User model for the user for whom default timesheet # options are being changed. # # :form Prevailing outer form, e.g. the value of "f" in a view # which has enclosed the call in "form_for :foo do | f |". # Typically this is used by a User configuration view, though, # where a nested set of fields are being built via something # like "fields_for :control_panel do | cp |". In such a case, # use "cp" for the ":form" option's value. # # This leads to "task_ids" being invoked on the model associated # with the form to determine which items in the selection list, # if any, must be initially selected in the non-JS page version. # # NOTE: All edge case conditions (no tasks, etc.) are handled internally # with relevant messages included in the HTML output. # when :user_default_task_list if ( user.active_permitted_tasks.count.zero? ) # Warn that the user has no permission to see any tasks at all. output << "This account does not have permission to view\n" output << "any active tasks.\n" output << "\n\n" output << "
\n" # If the currently logged in user is unrestricted, tell them how to # rectify the above problem. Otherwise, tell them to talk to their # system administrator. if ( @current_user.restricted? ) output << " Please contact your system administrator for help.\n" else output << " To enable this section, please assign tasks to\n" output << " the user account with the security settings above\n" output << " and save your changes. Then edit the user account\n" output << " again to see the new permitted task list.\n" end output << "
" else if ( session[ :javascript ].nil? ) tasks = user.active_permitted_tasks Task.sort_by_augmented_title( tasks ) output << apphelp_collection_select( form, :task_ids, tasks, :id, :augmented_title ) else output << taskhelp_tree_selector( form, { :restricted_by => ( user.restricted? ) ? user : nil, :selected_tasks => user.control_panel.tasks } ) end end # Generate a selector which controls the list of tasks the user is # permitted to see. Mandatory options: # # Key Value # ===================================================================== # :user Instance of User model for the user to whom task viewing # permission is being granted or revoked. # # :form Prevailing outer form, e.g. the value of "f" in a view # which has enclosed the call in "form_for :foo do | f |". # # This leads to "task_ids" being invoked on the model associated # with the form to determine which items in the selection list, # if any, must be initially selected in the non-JS page version. # # NOTE: All edge case conditions (no tasks, etc.) are handled internally # with relevant messages included in the HTML output. # when :user_permitted_task_list return '' if ( @current_user.restricted? ) # Privileged users only! if ( Task.active.count.zero? ) output << "There are no tasks currently defined. Please\n" output << "#{ link_to( 'create at least one', new_task_path() ) }." else if ( session[ :javascript ].nil? ) tasks = Task.active() Task.sort_by_augmented_title( tasks ) output << apphelp_collection_select( form, :task_ids, tasks, :id, :augmented_title ) else # Don't use "user.[foo_]permitted_tasks" here as we *want* an empty # list for privileged accounts where no tasks have been set up. output << taskhelp_tree_selector( form, { :selected_tasks => user.tasks } ) end unless ( user.restricted? ) output << "\n\n" output << "
\n" output << " This list is only enforced for users with a\n" output << " 'normal' account type. It is included here\n" output << " in case you are intending to change the account\n" output << " type and want to assign tasks at the same time.\n" output << "
" end end end # All done. Indent or otherwise add a prefix to each line of output if # so required by the options and return the overall result. line_prefix = options.delete( :line_prefix ) output.gsub!( /^/, line_prefix ) unless ( output.empty? || line_prefix.nil? ) return output.html_safe() end
Return a formatted duration for the given task, for use in list views.
# File app/helpers/tasks_helper.rb, line 68 def taskhelp_duration( task ) return apphelp_string_hours( task.duration.to_s, '0', '?' ) end
Return HTML showing the number of hours overrun on a task, or a label indicating no overrun. Pass the number of hours and the expected task duration.
# File app/helpers/tasks_helper.rb, line 44 def taskhelp_overrun( hours, duration ) if ( hours > duration and duration != 0 ) return apphelp_hours( hours - duration ) else return 'None'.html_safe() end end
Return a name of a given task's associated project, for use in list views.
# File app/helpers/tasks_helper.rb, line 54 def taskhelp_project( task ) return '-'.html_safe() if ( task.project.nil? ) return apphelp_augmented_link( task.project ) end
Return HTML suitable for an edit form, providing a grouped list of projects that can be assigned to the task. The list is grouped by customer in default customer sort order, along with a 'None' entry for unassigned projects. Pass the task object being edited.
# File app/helpers/tasks_helper.rb, line 18 def taskhelp_project_selector( task ) return apphelp_project_selector( 'task_project_id', 'task[project_id]', task.project_id, true ) end
Return HTML showing the remaining hours on a task, or a label indicating overrun. Pass the number of hours and the expected task duration.
# File app/helpers/tasks_helper.rb, line 31 def taskhelp_remaining( hours, duration ) if ( hours > duration and duration != 0 ) return 'Overrunning'.html_safe() else return apphelp_hours( 0 ) if ( duration == 0 ) return apphelp_hours( duration - hours ) end end
Generate a YUI tree task selector. Pass a form builder object in the first parameter (e.g. “bar” in “form_for @foo do | bar |”). The “object_name” field is used to generate a unique ID and name for a hidden element which carries IDs of selected YUI tree nodes, in the form “name[]” - as used by non-JS SELECT lists elsewhere. In the form submission processing code, you must handle the use of special IDs in the YUI tree (“P” prefix for Projects, “C” prefix for Customers, no prefix for tasks).
In the next parameter optionally pass an options hash with keys and values as shown below; any omitted key/value pair results in the described default value being used instead.
Key Meaning ========================================================================= :inactive If 'true', only inactive tasks, customers and projects are shown in the selector. By default, only active items will be shown. :restricted_by The task/project/customer list for currently logged in users who are restricted is always restricted by that user's permitted task list no matter what you set here. If the current user is privileged, though, then passing in a User object results in restriction by that user's permitted task list. By default there is no restriction so for privileged currently logged in users, all tasks would be shown. :included_tasks If you know up-front a full list of tasks to show, then pass them in here. Only items in the included list will be shown. IDs get passed to the XHR handler, among other things. This is NOT a security feature - see ":restricted_by" for that. :selected_tasks An array of tasks to be initially selected in the tree. May be empty. By default no tasks are selected. Ideally the list should include no tasks that the current user or 'restricted_by' key would hide, but if it does, they simply won't be shown or selected and only the task IDs will appear in HTML output. :suffix_html Beneath the text area gadget listing selected tasks is a "Change..." link which pops up the Leightbox overlay containing the YUI tree. If you want any extra HTML inserted directly after the "" of this link but before the (hidden) DIV enclosing the tree, use this option to include it. To keep things tidy, ensure that the string is terminated by a newline ("\n") character. :change_text Speaking of the "Change..." link - alter its text with this option, or omit for the default "Change..." string. :params_name Name to use in params instead of "task_ids", so that instead of reading "params[form.object_name][:task_ids]" in the controller handling the form submission, you read the params entry corresponding to the given name.
See also “#taskhelp_degrading_selector” for JS/non-JS degrading code.
Note that projects with no customer, or tasks with no project will not be shown in the tree; “unassigned” projects and customers are really just an administrative convenience during times when things might be in the process of being reassigned, or right at the start when someone is setting up new tasks, projects and customers, not necessarily starting with the customer definition first.
# File app/helpers/tasks_helper.rb, line 190 def taskhelp_tree_selector( form, options = {} ) inactive = options.delete( :inactive ) restricted_by = options.delete( :restricted_by ) included_tasks = options.delete( :included_tasks ) selected_tasks = options.delete( :selected_tasks ) || [] suffix_html = options.delete( :suffix_html ) || '' change_text = options.delete( :change_text ) || 'Change...' params_name = options.delete( :params_name ) || :task_ids # Callers may generate trees restricted by the current user, but if that # user is themselves privileged their restricted task list will be empty # (because they can see anything). The simplest way to deal with this is # to clear the restricted user field in such cases. restricted_by = nil unless ( restricted_by.nil? || restricted_by.restricted? ) # Based on the restricted task list - or otherwise - try to get at the root # customer array as easily as possible, trying to avoid pulling all tasks # out of the database. This is a bit painful either way, but usually a # restricted user will have a relatively small set of tasks assigned to # them so doing the array processing in Ruby isn't too big a deal. if ( @current_user.restricted? ) permitted_tasks = @current_user.active_permitted_tasks() else permitted_tasks = restricted_by.active_permitted_tasks() unless ( restricted_by.nil? ) end unless ( included_tasks.nil? ) if ( permitted_tasks.nil? ) permitted_tasks = included_tasks else permitted_tasks &= included_tasks end end if ( permitted_tasks.nil? ) root_customers = Customer.all else root_projects = permitted_tasks.map { | task | task.project }.uniq root_customers = root_projects.map { | project | project.try( :customer ) }.uniq end # Reject items with no active / inactive tasks. method = inactive ? :inactive : :active root_customers.reject! do | customer | customer.nil? || customer.tasks.send( method ).count.zero? end # Sort the root list by default order. Related associations are sorted # according to declarations made in the model code. Customer.apply_default_sort_order( root_customers ) # Now take the selected task list and do something similar to get at the # selected project and customer IDs so we can build a complete list of the # node IDs to be initially expanded and checked in the YUI tree. The # customer list is sorted so that when the YUI tree starts expanding nodes, # it does it in display order from top to bottom - this looks better than # an arbitrary expansion order. selected_projects = selected_tasks.map { | task | task.project }.uniq selected_customers = selected_projects.map { | project | project.customer }.uniq Customer.apply_default_sort_order( selected_customers ) selected_task_ids = selected_tasks.map { | item | item.id } selected_project_ids = selected_projects.map { | item | "P#{ item.id }" } selected_customer_ids = selected_customers.map { | item | "C#{ item.id }" } selected_ids = selected_customer_ids + selected_project_ids + selected_task_ids # Turn an included task list into IDs too, if present included_ids = ( included_tasks || [] ).map { | item | item.id } # Generate the root node data and extra XHR parameters to pass to the tree # controller in 'tree_controller.rb'. roots = root_customers.map do | customer | { :label => customer.title, :isLeaf => false, :id => "C#{ customer.id }" } end data_for_xhr_call = [] data_for_xhr_call << 'inactive' if ( inactive ) data_for_xhr_call << "restrict,#{ restricted_by.id }" unless ( restricted_by.nil? ) data_for_xhr_call << "include,#{ included_ids.join( '_' ) }" unless ( included_ids.empty? ) # Create and (implicitly) return the HTML. id = "#{ form.object_name }_#{ params_name }" name = "#{ form.object_name }[#{ params_name }][]" tree = yui_tree( :multiple => true, :target_form_field_id => id, :target_name_field_id => "#{ id }_text", :name_field_separator => "\n", # Yes, a literal newline character :name_include_parents => ' » ', :name_leaf_nodes_only => true, :form_leaf_nodes_only => true, :expand => selected_ids, :highlight => selected_ids, :propagate_up => true, :propagate_down => true, :root_collection => roots, :data_for_xhr_call => data_for_xhr_call.join( ',' ), :div_id => 'yui_tree_container_' << id ).gsub( /^/, ' ' ) html = <<HTML <textarea disabled="disabled" rows="5" cols="60" class="tree_selector_text" id="#{ id }_text">Task data loading...</textarea>
 #{ change_text } #{ suffix_html }
 Close #{ taskhelp_billable_help }

 #{ hidden_field_tag( id, selected_task_ids.join( ',' ), { :name => name } ) } #{ tree } Close
 HTML return html.html_safe() end


Good News
Thank you!
Now, start reading some Good
Google News
Do you like Good News?
Please leave a
5 star rating!


Software Developer Engineer
Pisa, ITJunior Constultant in NTT Data Italia
Junior Constultant in NTT Data Italia
A 6-months internship in Zerynth as Data Scientist for MSc Thesis Project.
A 8-months internship as a computer science junior consultant, taken simultaneous to MSc courses.


--- layout: page title: Teaching subtitle: Apple of my eye subjects are; desc: Apple of my eye subjects are; permalink: /teaching/ ---
Following are the Subjects which I teach at UG level;
Here I teach on analysis of indeterminate structures (15CV42)
Here I teach design of Steel structures based on limit state method (IS800:2007)


Kia Rio 3
Its the best iconomical car for family
An exploration into the truck's polarising design
Renault Clio
How to Keep Going When You Don’t Know What’s Next
The future can be scary, but there are ways to deal with that fear.
Honda Civic 1999
old school still worth it
For the passion of korean cars
BMW 520
luxury car
For the lovers of german beasts
Mercedes CLK
because you live only once
the passiont of luxury life
Toyota Camry
ONLY for the professionals individuals
Best Programers Ride it !.
Susuki
on budget car
simplicity is the key
H100
for high load missions
your failure brings you back to me


---
layout: page-fullwidth
show_meta: false
title: "NeuroTechX Student Clubs Competition 2018"
header: no
permalink: "/competition-2018/"
---
Here are the winners of the 2018 NeuroTechX Student Club Competition.
- Open Challenge 1st place: MENTAL, McGill University
- Open Challenge 2nd place: MINT, UBC
- Fixed Challenge 1st place: PolyCortex, Polytechnique Montreal
- Facebook Like Contest: PolyCortex, Polytechnique Montreal
- Participation Prize #1 (Emotiv EPOC+): NeurotechUofT, UofT
- Participation Prize #2 (Puzzlebox): MACtion Potential, McMaster
Links to their amazing projects
All projects: http://bit.ly/NTXSC18
Thanks to our awesome jury for taking their time to evaluate the projects and give valuable feedback to the students! Dr. Emily Mugler, Dr. Chris Crawford, Dr. Camille Jeunet, Morgan Hough, Dr. Alexandre Barachant and Dr.
Christoph Guger.
Thanks also to our sponsors without whom this initiative wouldn't be possible. Muse, OpenBCI, NeuroSky, Puzzlebox, Neurable, Mindset, Looxid Labs,EMOTIV, True Impact, Imeka, Cognixion & Myndlift.

The NeuroTechX SC Online Competition has two components: a fixed challenge and an open challenge.
All team must submit a 10-min video including a presentation and a demonstration of the project, for both challenges. All team must also provide a public GitHub repository, including the project components and a comprehensive description with all the steps to reproduce it. The deadline for submitting a project to any of the two challenges is Sunday, March 18th, 2018 at 23:59. All projects must be reproducible and open-source.
Participation rules
- The team must be composed of at least three (3) undergraduate students from the same university (or campus). Make sure you can use your university name.
- The team must have a web page with a team name & administrators (point of contact).
Open challenge
The open challenge aims at increasing the overall creativity of neurotech students. All projects related to neurotechnologies are allowed. Specific rules are listed hereafter:
- The project has to be related to neurotechnology, but there is no restriction on the type of project, it could be an art project, a game, a medical solution, etc.
Here is a non-exhaustive list of neuro-tech-related fields:
- Your body is the input: EEG, ECG, EMG, EOG, GSR, temperature, blood pressure, etc.
- Cognitive neuroscience
- Computational neuroscience
- Neuroimaging
- etc.
- A prototype is mandatory.
- A proposal of the project should be submitted and approved at least 2 month prior.
- While re-doing existing projects is valuable, something ‘novel’ is expected. #NeuroInnovation
Replicating existing technologies is allowed and will not be undervalued.
A EEG dataset is suggested for software and EEG-oriented project but not mandatory.
Fixed challenge
The fixed challenge aims at increasing the general knowledge of neurotech students by challenging them to build a fully home-made acquisition pipeline for EEG signals, including the following five stages (stages 2 and 3 can be switched depending on stage 1), with variable constraints from year to year.
Each stage has specific objectives (italic items is required):
- Acquisition
- Develop an home-made acquisition board, with at least 1 channel
- Total cost of board must not exceed 1000 USD (excluding R&D)
- Signal processing
- Focus on signal of interest (EEG) and remove artifacts and noise
- Data transmission
- Data must be acquired with a speed of at least 200 Hz
- Transmitted to a distant computer wirelessly or not
- Real-time visualization
- Real-time visualization of signal in the time and frequency domains, for each acquisition channel
- An “alpha mode” must enable the easy characterization of the alpha band power, following a open/close paradigm
- Data recording
- Data must be stored on a computer with appropriate data format for latter use
2018 constraints
- Acquisition of EEG signal is recommended (pipeline could be presented with EMG or ECG).
- Acquisition chips such as ADS1299 are accepted.
- PCB are highly recommended (not mandatory).
- Open-source libraries for data transmission and visualization are allowed, full package such as OpenVibe are not allowed.
Link to 2018 competition rules


Zendesk
I was interning over at Zendesk this summer and got a pretty cool project. These things
are three samples from the massive Emoji library, which was developped by some Japanese people in the 80's. I added support for them into Zendesk. Check out the Press Release.


git-rerere - Reuse recorded resolution of conflicted merges
git rerere [clear|forget <pathspec>|diff|remaining|status|gc]
In a workflow employing relatively long lived topic branches, the developer sometimes needs to resolve the same conflicts over and over again until the topic branches are done (either merged to the "release" branch, or sent out and accepted upstream).
This command assists the developer in this process by recording conflicted automerge results and corresponding hand resolve results on the initial manual merge, and applying previously recorded hand resolutions to their corresponding automerge results.
Note
You need to set the configuration variable rerere.enabled in order to enable this command.
Normally, git rerere is run without arguments or user-intervention. However, it has several commands that allow it to interact with its working state.
clear
Reset the metadata used by rerere if a merge resolution is to be aborted. Calling git am [--skip|--abort] or git rebase [--skip|--abort] will automatically invoke this command.
forget <pathspec>
Reset the conflict resolutions which rerere has recorded for the current conflict in <pathspec>.
diff
Display diffs for the current state of the resolution. It is useful for tracking what has changed while the user is resolving conflicts. Additional arguments are passed directly to the system diff command installed in PATH.
status
Print paths with conflicts whose merge resolution rerere will record.
remaining
Print paths with conflicts that have not been autoresolved by rerere. This includes paths whose resolutions cannot be tracked by rerere, such as conflicting submodules.
gc
Prune records of conflicted merges that occurred a long time ago. By default, unresolved conflicts older than 15 days and resolved conflicts older than 60 days are pruned. These defaults are controlled via the gc.rerereunresolved and gc.rerereresolved configuration variables respectively.
When your topic branch modifies an overlapping area that your master branch (or upstream) touched since your topic branch forked from it, you may want to test it with the latest master, even before your topic branch is ready to be pushed upstream:
o---*---o topic / o---o---o---*---o---o master
For such a test, you need to merge master and topic somehow. One way to do it is to pull master into the topic branch:
$ git checkout topic $ git merge master o---*---o---+ topic / / o---o---o---*---o---o master
The commits marked with * touch the same area in the same file; you need to resolve the conflicts when creating the commit marked with +. Then you can test the result to make sure your work-in-progress still works with what is in the latest master.
After this test merge, there are two ways to continue your work on the topic. The easiest is to build on top of the test merge commit +, and when your work in the topic branch is finally ready, pull the topic branch into master, and/or ask the upstream to pull from you. By that time, however, the master or the upstream might have been advanced since the test merge +, in which case the final commit graph would look like this:
$ git checkout topic $ git merge master $ ... work on both topic and master branches $ git checkout master $ git merge topic o---*---o---+---o---o topic / / e o---o---o---*---o---o---o---o---+ master
When your topic branch is long-lived, however, your topic branch would end up having many such "Merge from master" commits on it, which would unnecessarily clutter the development history. Readers of the Linux kernel mailing list may remember that Linus complained about such too frequent test merges when a subsystem maintainer asked to pull from a branch full of "useless merges".
As an alternative, to keep the topic branch clean of test merges, you could blow away the test merge, and keep building on top of the tip before the test merge:
$ git checkout topic $ git merge master $ git reset --hard HEAD^ ;# rewind the test merge $ ... work on both topic and master branches $ git checkout master $ git merge topic o---*---o-------o---o topic / e o---o---o---*---o---o---o---o---+ master
This would leave only one merge commit when your topic branch is finally ready and merged into the master branch. This merge would require you to resolve the conflict, introduced by the commits marked with *. However, this conflict is often the same conflict you resolved when you created the test merge you blew away. git rerere helps you resolve this final conflicted merge using the information from your earlier hand resolve.
Running the git rerere command immediately after a conflicted automerge records the conflicted working tree files, with the usual conflict markers <<<<<<<, =======, and >>>>>>> in them. Later, after you are done resolving the conflicts, running git rerere again will record the resolved state of these files. Suppose you did this when you created the test merge of master into the topic branch.
Next time, after seeing the same conflicted automerge, running git rerere will perform a three-way merge between the earlier conflicted automerge, the earlier manual resolution, and the current conflicted automerge. If this three-way merge resolves cleanly, the result is written out to your working tree file, so you do not have to manually resolve it. Note that git rerere leaves the index file alone, so you still need to do the final sanity checks with git diff (or git diff -c) and git add when you are satisfied.
As a convenience measure, git merge automatically invokes git rerere upon exiting with a failed automerge and git rerere records the hand resolve when it is a new conflict, or reuses the earlier hand resolve when it is not. git commit also invokes git rerere when committing a merge result. What this means is that you do not have to do anything special yourself (besides enabling the rerere.enabled config variable).
In our example, when you do the test merge, the manual resolution is recorded, and it will be reused when you do the actual merge later with the updated master and topic branch, as long as the recorded resolution is still applicable.
The information git rerere records is also used when running git rebase. After blowing away the test merge and continuing development on the topic branch:
o---*---o-------o---o topic / o---o---o---*---o---o---o---o master $ git rebase master topic o---*---o-------o---o topic / o---o---o---*---o---o---o---o master
you could run git rebase master topic, to bring yourself up-to-date before your topic is ready to be sent upstream. This would result in falling back to a three-way merge, and it would conflict the same way as the test merge you resolved earlier. git rerere will be run by git rebase to help you resolve this conflict.
Part of the git(1) suite


Kimchi Soup with Tofu and Clams
Two flavor powerhouses—bright, spicy kimchi and savory, briny clams—create a soup fast enough to make on even the most hectic weeknight. Clams can be very salty or not at all, so wait until they have opened before adjusting the seasoning.


| DOSE: T+ 0:00 |
3 hits |
oral |
LSD |
(blotter / tab) |
| T+ 1:00 |
2 tablets |
oral |
MDMA |
|
I had taken acid one time before this and experienced very little results. The reason being is that i thought for sure this would be exactly like mushrooms. Where my mind is gone and my body feels as if it can go on for days. However i just recently dropped 3 hits of some decent acid bought from a friend to try and see if it would actually work.
I took it at around 6:00 pm outside with one of my friends. These doses take a lot longer to kick in than any other ones that we can aquire here so it was about 9:00 before i could really say that it hit me. Also i had taken 2 E pills at about 7 because i was trying to have them peak at around the same time.
So at around 9 my mdma was fully peaked. And i was very dissapointed in the acid because not much had really been going on. Then all of a sudden i got the feeling that something was different. This wasnt psilocybin, it was acid. I finally realized how acid worked. While tripping (extremely hard) i realized that acid only goes as far as I will let it go. Visuals arent just laid out in front of me, I have to actually try to make the drug work. And when I do, I can trip as hard and as long as I want. There is no limit when I'm on acid.
  And im am glad to say that i am enlightened now because of a little piece of paper that i dropped in my mouth.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


What Our Gym Is About
Plans
Only about 25% of the trail is good to ride. Drop in off a shallow rock slab and then whip through a few tight berms. When combined with Otero Upper, this trail is just crazy fast, flowy, amazingness. So be careful with your carbon frames! Most climbs are of the paved/fireroad variety, most descents are a mix of loose rock, fixed rock, and good dirt.
Pricing
For those that want to get tricksy, there are jumps littered throughout the trail as well. Continue pedaling up through the dark forest around small bands of shale-laden cliffs. This route is worth riding MANY times. One of the best rides in all of tahoe. A super fun freeride trail starting with the Pinkbike drop, an impressive 12' by 12' drop followed non stop features with lots of speed and perfect flow.
Personal Training
Better yet, don't do it unless other people are pretty confident in your fitness. Tree is elevated, so not rideable for most. This trail is now a designated one way from the Lee's Train/C$ intersection. Having gotten that out of the way, the Mana Road ride is absolutely beautiful and worth the ride. The exposed rock section near the bottom is a highlight of the trail giving the exposed granite slabs of Squamish a run for their money.
Age Requirements
Check yourself before you wreck yourself. This is a shuttle access downhill trail that is suitable for all ages and multiple different bike styles- although best suited for all mountain, dirtjumper or full on DH bikes. It has a number of blind LH corners so whistle or use a bell so you can alert anyone coming the opposite way. After a few bends in the trail you'll get through this section and then start hear the waterfalls in another giant valley that you'll ride above. Out here you will find the most legal features including log rides, jumps and rock rolls in South Tahoe including the new jumps, berms, rollers and hips TAMBA and SBTS built in 2014.


This is the main page of your Gallery
OrganTransplant 005
Organ Transplant
OrganTransplant1271x834
OrganTransplant 006
Under the Hood
OrganTransplant 001
Shameless Advertising


Computational Learning
vs Computational Reality
vs Computational Reality
The relationship between computer-science education
and computational trends in Github
and computational trends in Github
Flávio Pessoa―MS Data Visualization―2018


Man Power Platform
Welcome!
Sign in to your account
Name
Password
Create account!
account
Password
Name