The classes, properties, and operations implemented by VAccess are based on the C++ classes documented in Sample C++ Access to Vision, modified and updated to make them COM aware. The structured query operations implemented in VAccess by ExtractWS objects are built using the Vision Interface ExtractWS tool kit.
VAccess is supplied in both executable and source code form. This document describes the capabilities available in the standard executable version. If you have the need and the skills to do so, you are free to modify and recompile the source code to add custom capabilities; however, that is beyond the scope of this description.
To develop and run VAccess applications, you need two files -- VAccess.dll and VAccess.tlb. VAccess.dll contains the code that implements the VAccess COM objects; VAccess.tlb contains the type library that describes those objects. You can put these files in any directory you choose, but you must put both of them in the same directory.
Once you have copied these files to your computer, you must register their location with the Windows operating system. You do that using the regsvr32 command and the Run... choice on your system's Start menu. For example, if you put your VAccess files in the directory c:\Program Files\VAccess, enter:
regsvr32 c:\Program Files\VAccess\VAccess.dllat the Open: prompt of the Run... dialog box. You should see an informational message box saying:
DLLRegisterServer in c:\Program Files\VAccess\VAccess.dll succeeded.At this point, the VAccess COM classes are installed and ready for use. If you ever move the libraries you just registered, you must tell Windows of the move by re-running this registration procedure. If you ever remove the VAccess libraries, you should tell Windows that you've removed them by running the regsvr32 command:
regsvr32 /u c:\Program Files\VAccess\VAccess.dll
Not every COM object installed on your system is automatically listed and available in the interactive development environment of Visual Basic. There are simply too many COM objects, with most of them un-needed in a typical Visual Basic project anyway. The Project References... menu choice in the Visual Basic development environment lets you select the libraries you plan to use.
To tell Visual Basic that you need the objects VAccess provides, place a check next to 'VAccess 1.0 Type Library' in the dialog box displayed by the Project References... menu choice. Once you've done that, the classes defined by VAccess will be available as types you can use in your Visual Basic programs. Additionally, the classes, methods, properties, and constants declared and implemented by VAccess will be visible in the Visual Basic object browser and other interactive development support tools.
Making a Connection is actually a two step process -- creating a Connection object, and attaching that object to a Vision session. Making a Connection object is easy. Here is one way:
Dim myConnection As New ConnectionThis approach declares and initializes a Visual Basic object variable of type Connection. That Connection object is available to any Visual Basic code that can use the myConnection variable without getting a Visual Basic error.
There are other ways to create declare and create Connection objects. Here's a way that separates the variable declaration and object creation into separate steps:
Dim myConnection As ConnectionThe details, choices, and Visual Basic style is up to you; however, the strategy of declaring a single global variable of type New Connection is well suited to any application that just needs a single connection to Vision. For efficiency sake, however, it is not a good idea to add the New modifier to the declaration of a local variable of a subroutine or function. If you do, the overhead of creating and destroying the connection will be paid with each call to the subroutine or function.' ... some intervening code
Set myConnection = New Connection
Depending on what else you're doing with your Visual Basic program, it is possible that some other library or control may have defined a type named Connection. If that happens, you can always prefix the VAccess type name with the name of the VAccess library:
Dim myConnection As New VACCESSLib.Connectionor:
Dim myConnection As VACCESSLib.ConnectionIn the absence of conflicts, the choice is a matter of style. In the presence of conflicts, this is how you tell Visual Basic what you mean.' ... some intervening code
Set myConnection = New VACCESSLib.Connection
Just creating a Connection object by itself isn't enough to do something useful. You still need a Vision session to do the work. To obtain that session, you can use the Login method:
myConnection.Login Hostname, Username, Passwordto start a new, personal, Vision session or you can use the Connect method:
myConnection.Connect Hostname, Portto attach an existing, shared Vision session.
In these examples, Hostname, Username, and Password are strings and Port is an integer identifying the port at which an existing Vision server is listening for connections.
The Login method can also take an optional fourth Command argument. If supplied, this argument must be of type string. If you need to pass command line arguments to batchvision, such as an object space number, or administrative session flag, you must use this parameter. If you do need to use this parameter, it must include the name or path of the batchvision executable:
Dim bvCommand As String
bvCommand = "batchvision -U3"myConnection.Login Hostname, Username, Password, bvCommand
VAccess is written to support and use the standard error handling interfaces and features of COM. In particular, it supports the ISupportErrorInfo COM interface used to make detailed error information available to applications. What that means to you is that you should be prepared to capture and use this information. In Visual Basic, that means using the On Error statement.
There are a number of ways to use the On Error statement. The choice is largely a matter of style; however, the basics are the same. Using On Error, you have a chance to learn when errors occur and obtain more information about the errors that do occur. Here is one style, used to wrap the Login call illustrated in the previous section:
Sub DoLogin ()Because VAccess generates error information in response to invalid input, failed connections, and un-runnable requests, you should get into the habit of using an appropriate On Error style of error handling in any routines that you are not absolutely certain will work every time. If you don't, an error may cause your application to terminate when you least expect it.
On Error GoTo HandleErrormyConnection.Login Hostname, Username, Password
MsgBox "Logged into " & Hostname & " as user " & Username
Exit Sub
HandleError:
MsgBox "Error # " & Hex$(Err.Number) & " From " & Err.Source & ": " & Err.Description
End Sub
Dim balanceSheet As StringThe Submit method takes several optional arguments. Two of the most useful are Date and Currency. Using these optional parameters, the following expression asks for IBM's balance sheet as of December 31st, 1999, stated in Swiss Francs:
balanceSheet = myConnection.Submit ("Named Company IBM balanceSheet")
balanceSheet = myConnection.Submit ("Named Company IBM balanceSheet", "19991231", "CHF")If supplied, both Date and Currency should be strings. If Date is supplied, it should be a string suitable for use with Vision's asDate message. If Currency is supplied, it should be an alias for one of the currencies stored in your Vision data base.
Other variations on the Submit method exist. These include an Execute method that evaluates an expression, discarding the output, and an Include method that loads and evaluates a server resident file of Vision code.
The Submit method and its variants are all examples of unstructured queries. They take arbitrary Vision expressions as input and, if they return anything, simply return the output generated by the expressions they've evaluated. There are methods that make structured, data oriented, queries as well.
Dim ibmSales As DoubleAll of the Get... functions return a non zero value (i.e., True) if the data point you requested could be retrieved and converted to the type implied by the Get... function you called. All expect four arguments:If myConnection.GetDouble(ibmSales, "Company", "IBM", "sales") Then
MsgBox "IBM Sales = " & ibmSales
Else
MsgBox "IBM Sales Not Available."
End If
Dim ibmSales As DoubleAs with Submit, both Date and Currency should be strings. If Date is supplied, it should be a string suitable for use with Vision's asDate message. If Currency is supplied, it should be an alias for one of the currencies stored in your Vision data base.
If myConnection.GetDouble(ibmSales, "Company", "IBM", "sales", Currency:="CHF") Then
MsgBox "IBM Sales = " & ibmSales
Else
MsgBox "IBM Sales Not Available"
End If
Bulk queries are specified using instances of the VAccess ExtractWS class. The ExtractWS class is based on and built using the Interface ExtractWS Vision ToolKit. You obtain instances of the ExtractWS class by asking your Connection for them. You can also copy an existing ExtractWS instance, but, ultimately, you'll have to ask your Connection for the first one:
Dim myFirstExtractWS As ExtractWS
Set myFirstExtractWS = myConnection.NewExtractWS
You can create and use as many ExtractWS objects as you need.
The ExtractWS class provides you with a means for returning two-dimensional cross-sections of entity, item, and time varying data. The class provides you with a number of properties and methods for controlling what you retrieve. Here's an example that requests a array of entity by item data for a collection of securities:
With myFirstExtractWSThe preceeding code specifies a query. The following code runs it:
.SetOrientationToEI
.SetEntityTypeTo "Security"
.AddEntity "GM"
.AddEntity "IBM"
.AddEntity "HWP"
.AddEntity "MSFT"
.AddEntity "XON"
.AddTypedItem "name", ItemType_String
.AddTypedItem "price", ItemType_Real
.AddTypedItem "price@95", ItemType_Real
.AddTypedItem "company funDataA sales", ItemType_Real
End With
Dim myFirstDatumArray As DatumArrayThe Run method returns a DatumArray object that actually holds the array of data. You can ask a DatumArray for information about its dimensionality:
Set myFirstDatumArray = myFirstExtractWS.Run
Debug.Print myFirstDatumArray.DimensionCountOf course, given that ExtractWS objects can specify only two dimensional queries at the moment, the DimensionCount property will always return two.
You can also ask for the number of elements along each of axis of the DatumArray:
Debug.Print myFirstDatumArray.ElementCount(0)In this example, Debug.Print myFirstDatumArray.ElementCount(0) displays 5, the number of entities in the request while Debug.Print myFirstDatumArray.ElementCount(1) displays 4, the number of items.
Debug.Print myFirstDatumArray.ElementCount(1)
Asking about the number and order of the elements is interesting, and there is a little bit more to say about the topic, but what you really want is the array of data in a form you can use it. Depending on the capabilities of the environment and programming language you're using, you can choose to have the array of element values returned as the result of a function:
Dim myArray()or as the value of an argument to a subroutine:
myArray = myFirstDatumArray.AsVariantArray
Dim myArray()In Visual Basic 6.0, both approaches work. In other environments, only one of these approaches may work.
myFirstDatumArray.GetVariantArray myArray
With your array in hand, it is finally time for you to examine its elements. At this point, that little bit more to say about the number of elements in the array needs to be said. The arrays returned by these methods began life in a C++ program. Unfortunately, C++ and Visual Basic have different ideas about how the elements of an array are organized. As you probably noted above, the first, or row, dimension of this result represents the entities and the second, or column, dimension represents the items. The element counts reflect this -- myFirstDatumArray.ElementCount(0) = 5, the number of entities you specified, and myFirstDatumArray.ElementCount(1) = 4, the number of items you requested. If you are programming in C or C++, you could traverse the array using a loop of the form:
unsigned int rows = myFirstDatumArray.ElementCount(0);Visual Basic transposes this, reversing the interpretation of rows and columns. Consequently, using this array from Visual Basic requires that you reverse the order of the subscripts:
unsigned int cols = myFirstDatumArray.ElementCount(1);
unsigned int row, col;
for (row = 0; row < myFirstDatumArray.ElementCount(0); row++)
for (col = 0; col < myFirstDatumArray.ElementCount(1); col++)
DoSomethingWith (myFirstDatumArray[row,col]);
Dim myArrayValues()
myArrayValues = myDatumArray.AsVariantArrayDim row As Integer, col As Integer
For row = 0 To myDatumArray.ElementCount(0) - 1That said, the little bit more to say about element counts and ordering has been said.
For col = 0 To myDatumArray.ElementCount(1) - 1
Debug.Print row, col, myArrayValues(col, row)
Next col
Next row
So far, this example has illustrated how to obtain an array of Variant values. A Variant can hold a value of any type. Because this extract workspace returns an array containing both strings and numbers, accessing its result as an array of Variants is appropriate . If your extract workspace generates a homogeneous collection of values, you can be more specific in your choice of array access methods. For example, if your query was for a matrix of pricing data:
Dim myOtherExtractWS As ExtractWSyou could access your result directly as an array of Double values. Again, two array access forms are available, one that returns the array as the result of a function:
Set myOtherExtractWS = myConnection.NewExtractWSWith myOtherExtractWS
.SetOrientationToET
.SetEntityTypeTo "Security"
.SetTypedItemTo "price", ItemType_Real
.SetEntityListTo "GM, IBM, HWP, XON"
.AddDate "9612"
.AddDate "9611"
.AddDate "9610"
.AddDate "9609"
.AddDate "9608"
.AddDate "9607"
.AddDate "9606"
.AddDate "9605"
.AddDate "9604"
.AddDate "9603"
.AddDate "9602"
.AddDate "9601"
End With
Dim myArray() As Doubleand one that modifies a parameter to a subroutine:
myArray = myOtherExtractWS.Run.AsDoubleArray
Dim myArray() As DoubleBy now, you're probably assuming that versions of these routines exist that return integer and string arrays as well. You're right. The additional methods are AsLongArray, AsStringArray, GetLongArray, and GetStringArray.
myOtherExtractWS.Run.GetDoubleArray myArray
Besides illustrating how to retrieve homogeneous arrays, the preceeding example introduces an additional orientation (SetOrientationToET), another way to specify an entity list (SetEntityListTo), a way to build a date list (AddDate), and an opportunity to discuss more efficient ways to specify lists programmatically.
The query contained in myOtherExtractWS built its date list one element at a time. Given that the date list is just a repeated pattern of month end dates, Vision can do that just as easily. Here's how to make Vision do the work:
With myOtherExtractWSThe SetDateListExpressionTo method's single argument is a string containing a Vision expression. The only constraint on that Vision expression is that it must return a list of dates as its value.
.SetOrientationToET
.SetEntityTypeTo "Security"
.SetTypedItemTo "price", ItemType_Real
.SetEntityListTo "GM, IBM, HWP, XON"
.SetDateListExpressionTo "9612 to: 9601 by: 1 monthEnds. asDateList"
End With
While derving a list of dates dynamically is useful, dynamically deriving an entity list is even more useful and often necessary. While you can always write your COM client to compute and add a list of dates to your extract workspace, the same cannot be said for lists of entities. In some cases, such as the list of accounts holding a particular security, the list is already stored in the Vision database. In other cases, such as the list of companies passing a particular screen, the list must be derived using a Vision query. To illustrate, here's a query that asks for data about the accounts that currently hold Microsoft:
Dim myHoldingsQuery As ExtractWSThe list of entities actually returned using this extract workspace is specified in two parts. The first part specifies an entity. The SetEntityTypeTo "Security" and SetEntityTo "MSFT" statements in this example specify that entity. The second part of the specification supplies an expression that the entity will be asked to evaluate. That expression is expected to return a list of objects that will actually be asked to supply the data returned in the data array. The SetEntityListExpressionTo "holdings" statement specifies that expression in this example. The objects returned (in this case, a list of Holding objects) are then asked to supply the item data requested by the remainder of the extract workspace query.
Set myHoldingsQuery = myConnection.NewExtractWSWith myHoldingsQuery
.SetOrientationToEI
.SetEntityTypeTo "Security"
.SetEntityTo "MSFT"
.SetEntityListExpressionTo "holdings"
.AddTypedItem "account name", ItemType_String
.AddTypedItem "shares", ItemType_Real
.AddTypedItem "totalCost", ItemType_Real
.AddTypedItem "totalMarketValue", ItemType_Real
.SetRowLabelsOn
End With
Using some simple applications of Vision's conventions for organizing data, entity list expressions can also be used to specify general queries. For example, every entity class in Vision has a default instance. Every instance of a class responds to a masterList message that returns a list of the non-default, non-deleted, instances of that class. Here's how to use that information to build an extract workspace that screens and sorts the current universe of companies:
Dim myCompanyScreen As ExtractWSMost of the examples you've seen so far create new extract workspace objects. Extract workspace objects can also be reused. For example, you can build an extract workspace that contains a standard list of items and other settings, and re-run that workspace as often as you like, changing just the parameters you need to change. For example, here's a way to reuse the myHoldingsQuery extract workspace created above:
Set myCompanyScreen = myConnection.NewExtractWSWith myCompanyScreen
.SetOrientationToEI
.SetEntityTypeTo "Company"
.SetEntityTo "Default"
.SetEntityListExpressionTo "masterList select: [sales > 50000]. sortDown: [sales]"
.AddTypedItem "name", ItemType_String
.AddTypedItem "sales", ItemType_Real
End With
Dim msftHoldings as DatumArrayWhen you reuse an extract workspace, you do not incur the overhead of creating a new workspace. Further, only the settings you change are actually sent to Vision when you run the query.
Set msftHoldings = myHoldingsQuery.RunmyHoldingsQuery.SetEntityTo "IBM"
Dim ibmHoldings as DatumArray
Set ibmHoldings = myHoldingsQuery.Run
At this point, you should have a basic understanding of how to use extract workspaces to build and run structured data access queries. There are other extract workspace options and operations that should help you to build exactly the query you need.
Connection objects support two strategies for accessing Vision. The Login method uses the remote execution service to start a personal Vision session. The Connect method contacts an existing Vision server listening on a known port.
Both the Login and Connect methods can be called any number of times. If the Connection object is currently attached to a Vision session, that session will be disconnected and replaced by the session specified by the call. If the disconnected session was a private session, any work done in that session will be lost unless you have made provision to save it.
All connection objects allow you to execute Vision expressions, load server resident Vision include files, obtain the value of a data items and expressions for entities in your data base, and create objects that specify and retrieve arrays of data.
Sub Connect (Hostname As String, Port As Long)
A method that attaches this Connection to the existing, shared, Vision session running on server Hostname and listening for incoming connections at port Port. All errors encountered attaching to that session are reported using COM's exception generation mechanisms.
Sub Disconnect ()
A method that disconnects this Connection from its Vision session. If the session was started using the Login method, your work will be lost unless you have made provision to save it or keep the session alive by some other means.
Sub Execute (Expression As String, Optional Date [As String], Optional Currency [As String])
A method that executes a Vision Expression as of an optional Date and Currency. The output produced by Expression is discarded. If specified, Date and Currency must be strings. Date must use a date format recognized by Vision. Currency must be an alias for one of the currencies stored in your Vision database.
Property Get FormatSettings () As FormatSettings
A read-only property whose value is the FormatSettings object associated with this Connection.
Function GetDouble (
Result As Double,
EntityType As String,
Entity As String,
Item As String,
Optional Date [As String],
Optional Currency [As String],
) As Boolean
A function that retrieves a value of type Double for a single entity and item, as of an optional date and converted to an optional currency. If specified, Date and Currency must be strings. Date must use a date format recognized by Vision. Currency must be an alias for one of the currencies stored in your Vision database.This function returns True if the requested item was successfully retrieved and converted to a Double and False otherwise.
Function GetLong (
Result As Long,
EntityType As String,
Entity As String,
Item As String,
Optional Date [As String],
Optional Currency [As String],
) As Boolean
A function that retrieves a value of type Long for a single entity and item, as of an optional date and converted to an optional currency. If specified, Date and Currency must be strings. Date must use a date format recognized by Vision. Currency must be an alias for one of the currencies stored in your Vision database.This function returns True if the result was successfully retrieved and converted to a Long integer and False otherwise.
Function GetString (
Result As String,
EntityType As String,
Entity As String,
Item As String,
Optional Date [As String],
Optional Currency [As String],
) As Boolean
A function that retrieves a value of type String for a single entity and item, as of an optional date and converted to an optional currency. If specified, Date and Currency must be strings. Date must use a date format recognized by Vision. Currency must be an alias for one of the currencies stored in your Vision database.This function returns True if the result was successfully retrieved and False otherwise.
Function GetValue (
Result As Variant,
EntityType As String,
Entity As String,
Item As String,
Optional Date [As String],
Optional Currency [As String],
) As Boolean
A function that retrieves a value for a single entity and item, as of an optional date and converted to an optional currency. If specified, Date and Currency must be strings. Date must use a date format recognized by Vision. Currency must be an alias for one of the currencies stored in your Vision database.This function returns True if the result was successfully retrieved and False otherwise. The result will be returned using the most specific numeric type possible. In particular, if the value can be represented as a Long, it will be returned as a Long. If the value cannot be represented as a Long, but can be returned as a Double, it will be returned as a Double. If neither conversion is possible, the value will be returned as a String.
Sub Include (RemoteFileName As String)
A method that loads the Vision code contained in RemoteFileName into the attached Vision session. Note that RemoteFileName is the name of a file residing on the machine running your Vision session. That machine is not necessarily the machine running your COM application.
Property Get IsConnected () As Boolean
A read-only property whose value is True if this Connection is currently attached to a Vision session, and False otherwise.
Sub Login (
Hostname As String,
Username As String,
Password As String,
Optional Command [As String]
)
A method that attaches this Connection to a new, private Vision session running on Hostname. That session is started for the user identified by Username and Password using the remote execution service on Hostname. Command is optional. If specified, it must be a string that specifies the complete batchvision command needed to start the session, including, if necessary, the path name of the batchvision executable. Here's an example that starts an administrative batchvision session running in object space 3:batchvision -n /localvision/network/NDF -U3Any errors encountered attaching to the specified Vision session, including login errors caused by an invalid username or password, are reported using COM's exception generation mechanism.
Connect
Function NewExtractWS () As ExtractWS
A function that creates and returns a new extract workspace object.
Function Submit (
Expression As String,
Optional Date [As String],
Optional Currency [As String],
Optional ReplyBufferInitialSize [As Long],
Optional ReplyBufferSizeIncrement [As Long]
) As String
A function that executes a Vision Expression as of an optional Date and converted to an optional Currency. If specified, Date and Currency must be strings. If supplied, the Date string must use a date format recognized by Vision and Currency must be an alias for one of the currencies stored in your Vision database. The output generated by Expression is returned as the string value of this function.This method supports two optional arguments that may be useful when capturing large amounts of output. Except in rare cases, you can safely ignore these arguments, since the internal output algorithm is intelligent and adaptive. In some cases, however, if you know that your Vision expression will generate a large amount of output, ReplyBufferInitialSize and ReplyBufferSizeIncrement may make the process of capturing that output more efficient. ReplyBufferInitialSize sets the initial size of the output capture buffer; ReplyBufferSizeIncrement specifies the size by which that buffer grows whenever it is full. If you specify a value for either or both of these optional arguments, that value should be a positive integer.
Function AsDoubleArray () As Double ()
A function that returns the elements of a DatumArray as an array of doubles. Elements not representable as doubles are returned as the DoubleNaN value supplied by this DatumArray's FormatSettings object.
Function AsLongArray () As Long ()
A function that returns the elements of a DatumArray as an array of long integers. Elements not representable as long integers are returned as the LongNaN value of this DatumArray's FormatSettings object.
Function AsStringArray () As String ()
A function that returns the elements of a DatumArray as an array of strings.
Function AsVariantArray () As Variant ()
A function that returns the elements of a DatumArray as an array of variants.
Property Get DimensionCount () As Long
A read-only property whose value is the number of dimensions in this DatumArray. For DatumArray's created by ExtractWS::Run, the value of this property is always 2.
Property Get ElementCount (Dimension As Long) As Long
A read-only property whose value is the number of elements along the axis specified by Dimension (0 <= Dimension < DimensionCount).
Property Get FormatSettings () As FormatSettings
A read-only property whose value is the FormatSettings object associated with this DatumArray.
Sub GetDoubleArray (Result () As Double)
A method that returns the elements of a DatumArray as an array of doubles. Elements not representable as doubles are returned as the DoubleNaN value supplied by this DatumArray's FormatSettings object.
Sub GetLongArray (Result () As Long)
A method that returns the elements of a DatumArray as an array of long integers. Elements not representable as long integers are returned as the LongNaN value of this DatumArray's FormatSettings object.
Sub GetStringArray (Result () As String)
A method that returns the elements of a DatumArray as an array of strings.
Sub GetVariantArray (Result () As String)
A method that returns the elements of a DatumArray as an array of variants.
Dim myExtractWS As ExtractWS
Set myExtractWS = myConnection.NewExtractWS
With myExtractWS .setOrientationToEI () .setEntityTypeTo ("Security") .addEntity ("GM") .addEntity ("IBM") .addEntity ("HWP") .addEntity ("XON") .addItem ("name" , VDatumKind_String) .addItem ("price" , VDatumKind_Real) .addItem ("price@95", VDatumKind_Real) End WithWith the extract workspace parameters set, you use the Run method to create a DatumArray object holding your data:
Dim myResultArray As DatumArray Set myResultArray = myExtractWS.Run
Sub AddDate (Date As String)
A method that adds a date to a list of dates used to specify the time axis in time by entity or item queries. The date string you supply must be a suitable recipient for Vision's asDate message.There are three ways to specify the time axis of an extract workspace:
Only one of these three alteratives can be used at a time. The value of the DateListType property tells you which one is being used.
- using a list of dates built using this method,
- using a comma separated list of dates specified using either the DateListString property or SetDateListTo method,
- using a Vision expression specified using the DateListExpression property or SetDateListExpressionTo method.
Sub AddEntity (Entity As String)
A method that adds an entity to a list of entities used to specify the entity axis in entity by item or time queries. The entity string you supply must be an alias for one of the entities of type EntityType in your database.There are three ways to specify the entity axis of an extract workspace:
Only one of these three alteratives can be used at a time. The value of the EntityListType property tells you which one is being used.
- using a list of entities built using this method,
- using a comma separated list of entities specified using either the EntityListString property or SetEntityListTo method,
- using a Vision expression specified using the EntityListExpression property or SetEntityListExpressionTo method.
Sub AddItem (Item As String)
Sub AddTypedItem (Item As String, ItemType As ItemType)
Methods that add an item to the list of items used to specify the item axis in item by entity or time queries. The item string is a Vision expression augmented by the extra item specification syntax described here.An item can be added to the item list with an explicit data type using the AddTypedItem method. The values of items added with an explicit data type will be converted to that data type if possible. If the conversion cannot be performed, the value will be returned as NA. Four item types are supported:
The AddItem method adds untyped items to the list. AddItem is equivalent to calling the AddTypedItem method with an item type of ItemType_Unspecified.
- return the value as a double (ItemType_Real).
- return the value as an integer (ItemType_Integer).
- return the value as a string (ItemType_String).
- return the value using the most specific type possible (ItemType_Unspecified).
Sub ClearDateList ()
A method that clears the date list used to specify the time axis in time by entity or item queries.
Sub ClearEntityList ()
A method that clears the entity list used to specify the entity axis in entity by time or item queries.
Sub ClearItemList ()
A method that clears the item list used to specify the item axis in item by entity or time queries.
ColumnLabelsOn As Boolean
Sub SetColumnLabelsOn ()
Sub SetColumnLabelsOff ()
A boolean property and associated, alternative update methods that controls whether the first row of data matrices generated using this extract workspace contains column labels. Column labels can be useful when columns are generated dynamically by Vision. When enabled, an extra row containing the column descriptions is inserted before the first data row in data arrays returned by this ExtractWS.
Property Get Connection () As Connection
A read-only property whose value is the Connection that created this ExtractWS.
Function Copy () As ExtractWS
A method that makes a copy of this extract workspace and all of its settings.
Currency As String
Sub SetCurrencyTo (Currency As String)
A property and associated, alternative update method that specify the default currency used for all queries using this extract workspace. The string you supply must contain a naming dictionary alias for one of the currencies stored in your Vision database.
Date As String
Sub SetDateTo (Date As String)
A property and associated, alternative update method that supply the 'as-of' date for all queries using this extract workspace. The string you supply must be a suitable recipient for Vision's asDate message. For entity by item and item by entity extract workspaces, the value of this property determines the date for which the data is retrieved.
DateListExpression As String
Sub SetDateListExpressionTo (DateListExpression As String)
A property and associated, alternative update method that specify a Vision expression used to generate a dynamic list of dates for time by entity or item queries. The Vision expression you supply must return a Vision List of dates.
DateListString As String
Sub SetDateListTo (DateList As String)
A property and associated, alternative update method that allow you to supply a comma separated list of dates for entity or item by time queries. The dates you supply should be suitable recipients for Vision's asDate message.
Property Get DateListType As ExtractListType
A read-only property whose value is the kind of date list held in this extract workspace. Three kinds of date list are possible:
- a date list built one entity at a time using a sequence of calls to the AddDate method,
- a date list specified as a comma separated list of entity names (DateListString),
- a date list dynamically derived using a Vision expression (DateListExpression).
Delimiter As String
Sub SetDelimiterTo (Delimiter As String)
A property and associated, alternative update method that specifies the internal delimiter used to separate data values sent from Vision. In normal use, this property does not need to be changed.
Entity As String
Sub SetEntityTo (Entity As String)
A property and associated, alternative update method that specifies the single entity for which item by time and time by item data arrays matrices are retrieved. The entity named by this property is also asked to evaluate EntityListExpression for entity by item or time queries that use a dynamically generated entity list.
EntityListExpression As String
Sub SetEntityListExpressionTo (EntityListExpression As String)
A property and associated, alternative update method that specified the Vision expression used to generate a dynamic list of entities in entity by time or time queries. The expression will be evaluated by the entity identified by the Entity and EntityType properties of this workspace.
EntityListString As String
Sub SetEntityListTo (EntityList As String)
A property and associated, alternative update method that supplies a comma separated list of entity names for use in entity by item or time queries.
Property Get EntityListType () As ExtractListType
A read-only property whose value is the kind of entity list held in this extract workspace. Three kinds of entity list are possible:
- an entity list built one entity at a time using a sequence of calls to the AddEntity method,
- an entity list specified as a comma separated list of entity names (EntityListString),
- an entity list dynamically derived using a Vision expression (EntityListExpression).
EntityType As String
Sub SetEntityTypeTo (EntityType As String)
A property and associated, alternative update method that supply the Vision entity type used to locate the entities named by the Entity and EntityListString properties or added to an entity list by the AddEntity method.
Property Get FormatSettings () As FormatSettings
A read-only property whose value is the FormatSettings object associated with this ExtractWS.
Property Get IsConnected () As Boolean
A read-only boolean property whose value is True if this ExtractWS is currently attached to a Vision session.
Item As String
ItemType As ItemType
Sub SetItemTo (Item As String)
Sub SetTypedItemTo (Item As String, ItemType As ItemType)
A pair of properties and associated, alternative update methods that specify the single item retrieved by entity by time and time by entity extract workspaces.When you use the SetItemTo method or set the value of the Item property directly, you implicitly set the value of the ItemType property to ItemType_Unspecified. This causes values for this item to be returned using the most specific type possible (see the description of ItemType_Unspecified). If you want a different type conversion to apply, you should set the ItemType property after you have set the Item property or use SetTypedItemTo to set both in a single call.
Orientation As ExtractOrientation
Sub SetOrientationTo (Orientation As ExtractOrientation)
Sub SetOrientationToEI ()
Sub SetOrientationToET ()
Sub SetOrientationToIE ()
Sub SetOrientationToIT ()
Sub SetOrientationToTE ()
Sub SetOrientationToTI ()
A property and associated, alternative update methods that specifies the interpretation of the row, column, and scalar dimensions of this extract workspace.
RowLabelsOn As Boolean
Sub SetRowLabelsOn ()
Sub SetRowLabelsOff ()
A boolean property and associated, alternative update methods that controls whether the first column of data matrices generated using this extract workspace contains row labels. Row labels can be useful when rows are generated dynamically by Vision. When enabled, an extra column containing the row descriptions is inserted before the first data column in data arrays returned by this ExtractWS.
Function Run () As DatumArray
A method that retrieves the array of data specified by the current settings of this extract workspace.
ScalarLabelOn As Boolean
Sub SetScalarLabelOff ()
Sub SetScalarLabelOn ()
A boolean property and associated, alternative update methods that controls whether a description of the single entity, date, or item for which this extract workspace was run will be included in the first cell of the data array returned. If necessary, an extra row and column will be added to the data array to accommodate this descriptive cell. An extra row is not necessary if column labels are enabled. Similarly, an extra column is not needed if row labels are enabled.
The DoubleNaN and LongNaN values stored in a FormatSettings object are returned in place of data that cannot be converted as part of a request to return a value of type Double or Long (see the GetDoubleArray and GetLongArray methods and AsDoubleArray and AsLongArray properties of DatumArray and the GetDouble and GetLong methods of Connection). The default value of the DoubleNaN property is the IEEE quiet NAN (i.e., the same value returned by an uncomputable function like log(-1.0)). The default value of the LongNaN property is the smallest representable negative integer, -2147483648.
The Unicode preference setting, ReturningUnicode, is provided to deal with older applications that do not understand Unicode or understand it incompletely. Excel '97, for example, passes and expects Unicode in scalar strings but requires ANSI strings in some arrays. By default, all strings returned from VAccess properties and methods are Unicode.
FormatSettings objects inherit settings they don't explicitly override from their ParentSettings FormatSettings object. The inheritance parallels the overlying object's creation path. In particular, a DatumArray's FormatSettings object inherits from the FormatSettings object of the ExtractWS that returned it. The FormatSettings object of that ExtractWS inherits in turn from the FormatSettings of the Connection that created the ExtractWS, and, ultimately, from the GlobalSettings FormatSettings object associated with your use of the VAccess library itself.
For each settable FormatSettings option, their are two properties -- one that supplies the value of the setting and one that indicates whether a particular FormatSettings object defines the setting or just inherits it. For example:
myDatumArray.FormatSettings.DoubleNaNreturns a value, possibly inherited, that will be substituted for values that cannot be converted to a Double,
myDatumArray.FormatSettings.DoubleNaN = -2341.7overrides the DoubleNaN setting stored in the FormatSettings object associated with myDatumArray,
myDatumArray.FormatSettings.SetsDoubleNaNreturns True because myDatumArray's FormatSettings object just defined a DoubleNaN setting (it would return False if the setting was inherited), and:
myDatumArray.FormatSettings.SetsDoubleNaN = Falseinstructs the FormatSettings object associated with myDatumArray to discard the explicit value it has for DoubleNaN and inherit its DoubleNaN value from its parent instead.
It is not possible to give meaning to the statement:
myDatumArray.FormatSettings.SetsDoubleNaN = Truesince the FormatSettings object has no idea what value you would like it to use. Because FormatSettings objects will not invent values for you, even default ones, a statement such as this is quietly ignored.
DoubleNaN As Double
A property whose value is returned in place of unavailable or unrepresentable double item values. By default, this property's value is the IEEE quiet NaN (e.g.., log (-1))
Property Get GlobalSettings () As FormatSettings
A read-only property that returns the top-most FormatSettings object from which all FormatSettings objects inherit. The FormatSettings object returned by this property has no parent object.
LongNaN As Long
A property whose value is returned in place of unavailable or unrepresentable integer item values. By default, this property's value is the smallest possible integer (-2147483648).
Property Get ParentSettings () As FormatSettings
A read-only property that returns the FormatSettings object from which this FormatSettings object inherits values it does not set. This property's value is NULL in C and C++ and Nothing in Visual Basic for FormatSettings objects that have no parent.
ReturningUnicode As Boolean
A boolean property whose value, when True, indicates that strings are returned using 16-bit Unicode, and, when False, using 8-bit ANSI characters. This property is provided to accommodate some older COM clients that do not understand Unicode. By default, this property's value is True and should not be changed unless your COM client does not work correctly using the default value.
SetsDoubleNaN As Boolean
A boolean property whose value indicates whether DoubleNaN is set by this FormatSettings object. This property is partially writeable. Setting this property to False instructs this FormatSettings object to discard its local DoubleNaN value and begin inheriting DoubleNaN from its ParentSettings object. It is not possible to explicitly set this property to True; set DoubleNaN instead.
SetsLongNaN As Boolean
A boolean property whose value indicates whether LongNaN is set by this FormatSettings object. This property is partially writeable. Setting this property to False instructs this FormatSettings object to discard its local LongNaN value and begin inheriting LongNaN from its ParentSettings object. It is not possible to explicitly set this property to True; set LongNaN instead.
SetsReturningUnicode As Boolean
A boolean property whose value indicates whether ReturningUnicode is set by this FormatSettings object. This property is partially writeable. Setting this property to False instructs this FormatSettings object to discard its local ReturningUnicode value and begin inheritingLongNaN from its ParentSettings object. It is not possible to explicitly set this property to True; set ReturningUnicode instead.
| ExtractListType_Unspecified | The entity, date, or item list is undefined. |
| ExtractListType_Array | The entity, date, or item list is defined by a series of calls to AddEntity, AddDate, or AddItem, as appropriate. |
| ExtractListType_String | The entity, date, or item list is defined using a string of comma-separated values. |
| ExtractListType_Expression | The entity, date, or item list is defined dynamically using a Vision expresion. |
| ItemType_Unspecified | Return values using the most specific type possible. If a value is available and can be converted to an integer, return it as an integer. If a value is available, cannot be converted to an integer, and can be converted to a double, return it as a double. If a value is available and neither conversion is possible, return it as a string. |
| ItemType_Integer | Return values as integers or NA. |
| ItemType_Real | Return values as doubles or NA. |
| ItemType_String | Return values as strings. This conversion is useful for suppressing the implicit numeric conversion attempted in the absence of any type information (see ItemType_Unspecified). |


<config charset="charset_value" scriptlang="default_script_lang"> configuration body </config>
| Name | Required | Default | Description |
|---|---|---|---|
| charset | no | UTF-8 | Defines default charset used throughout configuration. Every processor that needs charset information uses this value if other not explicitly set. |
| scriptlang | no | beanshell | Defines default scripting engine used throughout configuration. Allowed values are beanshell, javascript and groovy. Default engine is used wherever not other is specified. script and template processors have ability to specify scripting engine within the same Web-Harvest configuration, that way giving possibility to even mix different scripting languages. |
<config charset="ISO-8859-1" scriptlang="groovy"> <file action="write" path="squares.txt"> <script return="${[1, 2, 3, 4, 5].collect(square)}"> <![CDATA[ square = { it * it } ]]> </script> </file> </config>
Here, file processor uses default encoding ISO-8859-1 and script processor uses default language groovy.


by shabaz farah
The Akan naming tradition originating from Akan people is based off deriving names from the day of the week they're born and gender. A tradition adopted by atleast 80% of the Ghanian population. The Akan people estimated to be around 20 million spread between Ghana and Ivory COast are beleived to have originated from Ancient Ghana. Akan culture can be seen in Neighbouring African societies and some Central African populations. They consider themselves to be one nation, with art that is wide-ranging and reknown.
Now Akan or not, you're presented with the opportunity to check what your Akan name would be. Use my calculator to find out what your Akan name is.
Please enter your numerical birth dates


|
Figure 1
|
Diagram of processes included in the model. Dashed arrows in ... |
|
Figure 2
|
Tons of annual production change by year (relative to year o ... |
|
Figure 3
|
Mt per year global production change in 2010 for the indicat ... |
|
Figure 4
|
Annual production changes (kt/year, top; %, bottom) in 2010 ... |
|
Figure 5
|
National level present‐day crop production changes in respon ... |
|
Figure 6
|
National level present‐day crop yield changes in response to ... |


SemioticElement
is a constituent of the meaning.Sign
s are the SemioticElement
that represent the symbols used in the communication.Sign
from two String
s.Sign
from a single String
.Phase
of the argumentation.String
Concept
s from an ContrastSet
Concept
s from an ContrastSet
Concept
and a Concept
from the ContrastSet
of a different Agent
.


Dog Social Network
Home
Profile
Frends
Profile of Doge
Name:
Jack
Birthday:
Today
Occupation:
Dog
Area of occupation:
Home


Time Selector Task
The time selector task displays an Options tab containing a combo box. The choices in the combobox are:
- Specify time - an input field prompting for a time appears
- Current hour
- Previous hour
- Next hour
- Current minute
- Next minute
- Previous minute
- N minutes ago - an input field prompts for an integer
- N minutes from now - an input field prompts for an integer
- N hours ago - an input field prompts for an integer
- N hours from now - an input field prompts for an integer
When a selection made and values are specified in any dependent controls the following macro variables are created and set as follows:
- time - the time specified or a function that calculates the value of the selection, formatted as HH:MM:SS
- time_rel - a code that represents the selection made
- time_label - the common name of the selection
An example of the code generated by this task when "Current time" is selected:
%global time;
%global time_rel;
%global time_label;
%let time = %sysfunc(time(), time8.0);
%let time_label = Current time;
%let time_rel = t0m;
The macro variable values set by this example code are as follows if it is 11:27:27 AM.
GLOBAL TIME 11:27:27
GLOBAL TIME_LABEL Current time
GLOBAL TIME_REL t0m


Parsed service.
The generated code for the SDK API wrapper.
Workaround for OpenAPI generation to build one and only one API for all tags. Modify spec to contain only one 'default' tag.
OpenAPI JSON document.
The modified document.
Convert Swagger documents to OpenAPI documents. If an OpenAPI document is passed it is not modified.
OpenAPI version 2 (Swagger) or 3 document to be converted to version 3.
A promise of an OpenAPI version 3 document.
Convert an OpenAPI document to ensure smooth parsing and generation thereafter. Documents are expected to be formatted as JSON, OpenAPI version 3 and only have one "default" tag.
File content of the original spec.
Path of the directory to write to.
Name of the file to write
Content to be written to the file. A copyright statement will be added to this.
Whether or not existing files should be overwritten.
Options to configure generation.
Get the operation for the given method and merge path parameters with operation parameters.
Path Item to get the operation from.
HTTP method to get the operation for.
The sanitized original operation.
Get the mapped TypeScript type for the given original OpenApi type.
Original OpenApi type, to get a mapping for.
The mapped TypeScript type.
The index file contents.
Type guard to check whether an object is of type OpenAPIV3.ArraySchemaObject
.
Object to check.
True if the object is a array schema object, false otherwise.
Type guard to check whether an object is of type OpenAPIV3.ReferenceObject
.
Object to check.
True if the object is a reference object, false otherwise.
Methods supported by OpenApi and SAP Cloud SDK.
Collect and parse all operations of an OpenAPIV3.Document
.
The OpenApi document to parse.
List of crossreferences that can occur in the document.
A flat list of parsed operations.
Parse a JSON or YAML file and return it as JSON.
Path to the file
JSON representation of the given file.
Parse parameters of an operation.
The original operation definition.
List of cross references that can occur in the document.
A list of parsed parameters.
Parse the request body.
Original request body to parse.
List of cross references that can occur in the document.
The parsed request body.
Parse the type name of a reference object.
Reference object to get the type name from.
Parsed type name.
Check whether the given object is a reference object and resolve if necessary. This operates only on the current level and does not resolve the object recursively.
Object to resolve if necessary.
References to resolve by.
A resolved object.
SAP Cloud SDK OpenAPI Client Generator (Beta)
Generate custom JavaScript/TypeScript clients for services with OpenAPI specifications. This generator is based on the OpenAPI Tools generator for OpenAPI and adds some additional code for convenience to better integrate with the SAP Cloud SDK.
Prerequisites
The official OpenAPI generator is Java based, therefore you need to have a Java runtime installed to use the SAP Cloud SDK OpenAPI generator.
Installation
Usage (CLI)
generate-openapi-client autocomplete [SHELL]
generate-openapi-client help [COMMAND]
generate-openapi-client autocomplete [SHELL]
display autocomplete installation instructions
USAGE $ generate-openapi-client autocomplete [SHELL] ARGUMENTS SHELL shell type OPTIONS -r, --refresh-cache Refresh cache (ignores displaying instructions) EXAMPLES $ generate-openapi-client autocomplete $ generate-openapi-client autocomplete bash $ generate-openapi-client autocomplete zsh $ generate-openapi-client autocomplete --refresh-cache
See code: @oclif/plugin-autocomplete
generate-openapi-client help [COMMAND]
display help for generate-openapi-client
USAGE $ generate-openapi-client help [COMMAND] ARGUMENTS COMMAND command to show help for OPTIONS --all see all commands in CLI
See code: @oclif/plugin-help
Usage (programatically)
import { generate } from '@sap-cloud-sdk/openapi-generator'; // initialize generator options based on what you want to do // note that inputDir and outputDir are mandatory const options: GeneratorOptions = { inputDir: 'path/to/inputDir', outputDir: 'path/to/outputDir' }; // generates the files and writes them to the outputDir await generate(options);
Documentation
Getting started guide API documentation
Helpful Links


You will find the list of manufacturers associated with this item below. You can also add a new manufacturer at any time.


Popcorn
Put 1/4 cup of water in the bottom pan.
1. Press the popcorn button on Microwave controlls.
(The Display should say "Automatic pop")
2. Press Start!
BACK


| PX-911 General Information
-
| Synonyms: |
Dialkyl phthalate linear (C9-C11); 1,2-Benzenedicarboxylic acid, di-C9-11-branched and linear alkyl esters |
| CAS Registry No.: |
68515-43-5 |
| Chemical Category: |
Phthalates |
| Moisture Content, wt. %: |
0.1 (max) |
Usage and Performance Characteristics
-
| Manufacturer: |
Aristech Chemical Corp. (Sunoco, Inc.) |
| Outstanding Properties: |
Heat & light stability, low volatility, good efficiency |
| Used for Polymeric Materials: |
PVC, PVC copolymer resins |
| Used for Products: |
Wire & cable, automotive application |
Physical Properties
-
| Specific Gravity: |
0.958 (25°C) |
| Aggregate State at 25°C: |
Liquid |
Chemical Properties
-
| Acidity (acetic acid), wt. %: |
<0.01 |
Optical Properties
-
| Color, Platinum-Cobalt Scale: |
<50 |
| Refractive Index: |
1.483 (n25D) |
Hazard-Related Data
-
| OSHA Hazard Class: |
Considered a hazardous substance |
| UN Risk Phrases: |
22,33,36/38,45(2),58,62 |
| UN Safety Phrases: |
27,35,53,401 |
| Flash Point Temperature, °C: |
227 |
| HMIS Personal protection: |
Safety glasses, chemical resistant gloves, lab. coat |
Animal Toxicity
-
| Guinea Pig Dermal, LD50, mg/kg: |
10,000 |
| Mouse Oral, LD50, mg/kg: |
1,500 |
| Rabbit Dermal, LD50, mg/kg: |
25,000 |
| Rat Oral, LD50, mg/kg: |
30,000 |
Plasticizers Database (2nd Electronic Edition) Copyright © 2004 by ChemTec Publishing |


Schwartz Media publishes intelligent news and current affairs that breaks the 24-hour news cycle. We offer a nuanced examination of Australia and the world, focused on fresh insight and literary expression. Our audience reads to know, not just to agree. We invest in long-form journalism where the issues demand it, providing writing of a quality that makes difficult topics clear. Schwartz Media publishes Australia’s most respected writers across The Saturday Paper, The Monthly magazine and the daily podcast 7am, alongside our sister publications, Quarterly Essay and Australian Foreign Affairs.
more viewJournalism
Our journalists create in-depth, independent, original public interest reporting, focusing on storytelling and insight.
Journalism
Our journalists create in-depth, independent, original public interest reporting, focusing on storytelling and insight.
Journalism
Our journalists create in-depth, independent, original public interest reporting, focusing on storytelling and insight.
Journalism
Our journalists create in-depth, independent, original public interest reporting, focusing on storytelling and insight.


አ ደ ሰ አ በ አ
Hello
Who I am
Interests
Projects
Projects on Progress
Inspired by
Hello! My name is Adonay, it is nice to meet you.
Sign in with facebook
add
add
add
Who I am
Interests
Projects
Projects On Progress
Inspired by


THE HISTORY OF VIDEO GAMES
Introduction to The History of Video Games
Once upon a time there did exist a world without video games. Like so many things distinctly human, electronic games were born out of a combination of innovation, necessity and curiosity. Early tinkerers made electronic amusements, cheap, crude entertainment that would transform in time to something potent and alive. This would not just happen by electronic wizardry, but by the endeavors of artists, designers, and entrepreneurs, whose initial goal to entertain also came to challenge, captivate, and enlighten millions of people around the world. The men and women who created this industry allowed their own experiences and the world around them to inform their creations. This is the history of video games.
Image Source: http://wallpapercave.com/video-games-wallpapers


| 009:117 Khan | : |
Allah has forgiven the Prophet (SAW), the Muhajirun (Muslim emigrants who left their homes and came to Al-Madinah) and the Ansar (Muslims of Al-Madinah) who followed him (Muhammad SAW) in the time of distress (Tabuk expedition, etc.), after the hearts of a party of them had nearly deviated (from the Right Path), but He accepted their repentance. Certainly, He is unto them full of Kindness, Most Merciful. |
| 009:117 Maulana | : |
Certainly Allah has turned in mercy to the Prophet and the Emigrants and the Helpers who followed him in the hour of hardship, after the hearts of a part of them were about to deviate; then He turned to them in mercy. Surely to them He is Compassionate, Merciful; |
| 009:117 Pickthal | : |
Allah hath turned in mercy to the Prophet, and to the Muhajirin and the Ansar who followed him in the hour of hardship. After the hearts of a party of them had almost swerved aside, then turned He unto them in mercy. Lo! He is Full of Pity, Merciful for them. |
| 009:117 Rashad | : |
GOD has redeemed the prophet, and the immigrants (Muhajireen) and the supporters who hosted them and gave them refuge (Ansar), who followed him during the difficult times. That is when the hearts of some of them almost wavered. But He has redeemed them, for He is Compassionate towards them, Most Merciful. |
| 009:117 Sarwar | : |
God pardoned the Prophet, the Emigrants, the Helpers, and those who followed them, when the hearts of some of them almost deviated (from the truth) in their hour of difficulty. God forgave them because of His Compassion and Mercy. |
| 009:117 Shakir | : |
Certainly Allah has turned (mercifully) to the Prophet and those who fled (their homes) and the helpers who followed him in the hour of straitness after the hearts of a part of them were about to deviate, then He turned to them (mercifully); surely to them He is Compassionate, Merciful. |
| 009:117 Sherali | : |
ALLAH has certainly turned with mercy to the Prophet and to the Emigrants and the Helpers who followed him in the hour of distress after the hearts of a party of them had almost swerved from duty. HE again turned to them with mercy. Surely, HE is to them Compassionate, Merciful. |
| 009:117 Yusufali | : |
Allah turned with favour to the Prophet, the Muhajirs, and the Ansar,- who followed him in a time of distress, after that the hearts of a part of them had nearly swerved (from duty); but He turned to them (also): for He is unto them Most Kind, Most Merciful. |
Concepts/Themes Covered: أركان الإسلام > التوحيد > توحيد الله تعالي > صفات الله تعالى > الرؤوف Pillars of Islam> Islamic> Oneness of Allah> His Glory's Characteristics> The Full of Kindness أركان الإسلام > (محمد (صلى الله عليه وسلم > هجرته ومنزلة المهاجرين Pillars of Islam> The Blessed Muhammad(PBUH)> His Immigration and the Immigrants Rank الجهاد > الهجرة > ثواب المهاجرين Jihad> The Immigration> The Immigrants' Reward الجهاد > الهجرة > هجرة الأنصار Jihad> The Immigration> Al-Ansar Immigration العمل > الدعوة إلى العمل Action(Work)> The Call for Action
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


Officer Caught on Camera Tackling Black Teen with Quadruple Amputation
by VladTVAn Arizona sheriff's deputy is under fire after being caught on camera tackling and pinning down a 15-year-old black boy who is a quadruple amputee during a disturbance complaint at a Tuscon-area group home. The disturbing video captures the teen screaming and struggling as the officer assaults him. The teen was arrested after the incident but charges were dropped. Reports say the officer is currently under investigation.
Source: twitter.com


username:
{{author.username}}
Name:
About The Author:
{{author.bio}}
Blog Description:
{{author.desp}}
Blog Title:
Link:
Github:
Image:


abstract fun currentStatus(): Observable<Pair<K, LoadStatus<V>>>
Emits the current status of all present content
The Empty status will be skipped altogether. If this store has nothing, it will return an empty observable.
The emitted values will be the ones that exist as of the time of subscription in no particular order.
This observable is bounded and will not onError
signal.


WEEK 5 - Data Wrangling is Underway - Understanding S3¶
Happy Holidays¶
looking forward to 2021
thanks for particpating in these cloud activities - this effort is important
Topics covered today - Major Theme - Data in S3¶
Silo Busting
IT Security in the Cloud - strategy/impacts
Pangeo and mini-pangeo when to use
Logan demonstrates - viewing buckets via the AWS Console
Logan’s notebook for examining a COG/nonCOG - xarray
Logan’s methods for scaling/resampling vs. windowing/clipping
Tony - adventures in portal scraping for rapv2 and BITv3 - range-land herbs
Tony - presents notebook of the week - Pandas and Violin Graphs
No silos; No Silos; NO SILOS!¶
lets work together
“many hands make light work”
Good communication with CHS - Eric Driscoll Larson’s team
Thanks Neal
EROS cloud pilot projects are very important toward shaping science
EROS is a WORLD CLASS DATA CENTER - we need to exert our influence
PANGEO, CHS Custom Pilots, CHS Science Data Lake, ESRI Integration
AI/ML
Steffi Kagone - talk about the model we just ran over the weekend
The pontential for using Docker to scale in the cloud
Visualization effort - and outside synergies - Gabe, Darin
Sharing data between Science elements - Terry Sohl, Ward Sanford - Wes Zell - Greg Rouze
how it would be nice to have ESRI tools in the cloud with direct access for s3 bucket data/data lakes
In the Cloud Queue
VegDyn - Trenton, Dinesh
LandFire - Anyone in class from Landfire? - Neal invited as a consultant.
LCMAP
WaterSmart
Logan to train Steffi’s team on VDI meets FileZilla and the cloud EC2 - ssh key managment etc.
Barter system for skill exchange - new staffing models needed to address the pace of change in technology
Understanding COGs and NonCOGs¶
data sizes and overviews
A word about Data Compression¶
Below is a summary of the compression ratios of each method in the worst case:
10-meter Sentinel-2 bands,
internal tiling and overviews.
| method | Compression Ration | Reason to use |
|---|---|---|
| LZW | 1.16:1 | Quick to run and easy to adopt |
| DEFLATE | 1.38:1 | A slower but better performing alternative to LZW |
| ZSTD | 1.45:1 | Promising, CPU intensive but not mature |
Table. Summary of the results of the different compression algorithms
In the cloud you can test all compression techniques¶
and change your mind - its fast and cheap to reprocess to other formats
zarr is an interesting technology as well
Email from my OpenDataCube Tasmanian Friend - Alex Leith¶
Aussie lessons learned will likely influence LCMAP
Hey Tony
And hey Jeff [Briden] and Jon [Morton] of {LCMAP FAME}
Happy to talk about how we do ODC work in the cloud, including doing continental-scale data processing work.
We have some neat new examples using AWS tools like their Simple Queue Service along with Kubernetes to run a whole of Africa pixel quality analysis (so just visiting Sentinel-2’s SCL band, over all pixels over Africa) and we’re able to process that on 5 large EC2 instances in ~20 minutes, which is fun! Costs us $20 USD.
Our land cover folks are doing something similar in Australia with LCCS, and I could bring them along. They're science users, and are happy working with Python and the ODC
along with Kubernetes and job queues to run through that analysis, including iterating quite fast. I’m not sure about the costings of that, but it’s been really successful this year!
So yes, happy to talk some time in the new year. Might need to be late Jan when we’re all back on board!
Cheers,
IT Security and Compliance Part II¶
Logan and Tony - “WE GOT THIS!”¶
IT Security is way easier in the cloud¶
Paul Exter Email
SSM Agent and auto Updates
AmazonSSMManagedInstanceCore IAM Policy attached to ec2 instances
lower server footprint and vulnerability attack surface
reduce user numbers in my Landsat mini-pangeos
migrate users to big pangeo; teach cookbook examples in the Big Pangeo
migrate eco users to the eco VPC mini-pangeo
add encryption where i have to - or decomission less important services
IAM - things you will never, ever, need to know - Whew!¶
but if you do there’s an app for that - I mean a Jupyter Notebook for that!
aws iam list-attached-role-policies –role-name lsds-developer-ec2
Jupyter notebooks simplify every complex concept :-)
Kelcy - where do you author notebooks?¶
Answer: pangeo.cr.usgs.gov
PANGEO manged service - is nice because IT Security is someone elses problem
Where is your S3 bucket?
You are working on a STAC Collection 2 Example - Right?
IT Security Goal¶
Improve IT Security Compliance - with minor impacts to creativity, scaling and science
Keep our eyes on the mission - not the distractions.
The Oregon Pronunciation Conundrum - perhaps we should move to us-east-1¶
because that is in Virginia
I found out the 53% of the folks use the fake-pronunciation for Oregon
I am glad I am in the 12% who actually get it right. :-)
I am thinking about starting a Facebook campaign
organ trail?
or-AGAIN
My friend once told me “You must be the most pedantic person in the entire world.”
“Third most, actually.” – :-)
Logan Data Wrangling, S3 and early validation notebooks¶
Logan demonstrates - viewing buckets via the AWS Console
Logan’s notebook for examining a COG/nonCOG - xarray
Logan’s methods for scaling/resampling vs. windowing/clipping
S3 buckets view from the AWS Console
Quick Sanity Check of NED Data
in0 –> in1 (COGs) Model Ready Data Perhaps
s3://eco-w1/in0/rapv2
; etc ….
Wrangle rapv2 and mrlc_zip¶
next week we will use the cloud to create COGs from these in parallel - via docker orchestration
https://github.com/tonybutzer/logan/blob/main/00-notebooks/00-portal-scraping/00-MRLC-Notebooks/00-data-scraping-grab-zips.ipynb
Featured Notebook in Big Pangeo pangeo.chs.usgs.gov¶
I have an account in pangeo.chs.usgs.gov
this is a nice capability for basic jupyter notebook training
Steve Labahn got a Pangeo account at the click of a button
This is a managed service and there are benefits - since many items are taken care of.
I think you can request a bucket to go with your user ???
You can definitely play with notebooks here
Superheros Notebook¶
http://<IP_ADDRESS>/user/harmony/notebooks/opt/harmony-notebooks/00-pandas/00-demos/02-plotly-express/super_heros_pandas_plotly_espress_demo.ipynb


R/Log.R
Object which stores the text output of the train
or predict
step of an Experiment.
R6::R6Class object.
l = Log$new(log = NULL)
log
:: data.table::data.table()
Table with at least the columns "class" (allowed values are "output", "warning", and "error")
and "msg" (character()
).
A third column "context" is optional, and currently only used for printing.
warnings
:: character(1)
Vector of all messages of class "warning".
errors
:: character(1)
Vector of all messages of class "error".
has_condition(cl)
character(1)
-> logical(1)
Returns TRUE
if at least one message with condition cl
has been recorded.
# Create a simple experiment and extract the train log: task = mlr_tasks$get("sonar") learner = mlr_learners$get("classif.debug", param_vals = list(message_train = TRUE, error_train = TRUE)) learner$fallback = mlr_learners$get("classif.featureless") e = Experiment$new(task, learner) e$train(ctrl = list(encapsulate_train = "evaluate"))#> INFO [mlr3] Training learner 'classif.debug' on task 'sonar' ...#> <Experiment> [trained]: #> + Task: sonar #> + Learner: classif.debug #> + Model: [featureless] #> - Predictions: [missing] #> - Performance: [missing] #> #> Public: clone(), ctrl, data, has_errors, hash, learner, log(), model, #> performance, predict(), prediction, score(), seeds, state, task, #> test_set, timings, train_set, train(), validation_set#> <Log> with 2 messages: #> [OUT] train: Message from classif.debug->train() #> [ERR] train: Error from classif.debug->train()l$has_condition("error")#> [1] TRUE


MEMBERSHIP APPLICATION
LIVER TRANSPLANT ANAESTHESIA AND CRITICAL CARE SOCIETY OF INDIA
Application Information
Prefix :
Name :
Dateof Birth :
Gender :
Male
Female
Nationality:
Current Employement
Current Employer :
Employer Address :
Other Details :
Full Time
Part Time
Previous Employement Related to Liver Transplantation
Add Employement
Employement 1
Employement 2
Employement 3
Educational Details
Add Qulification
Qulification 1
Qulification 2
Qulification 3
Communication Address
Communication Details :
Professional Details
Medical Council Number :
Speciality :
References
Add References
Signatures
I hereby state the above details regarding my personal and professional details are true to the best of my knowledge
Signature of Applicant :
Date :
Office Use
Date Recieved :
Fees Recieved :
Date :
Details :
Accepted :
Yes
No
LITRACSI No :
Name:
Signature:
*Not required for 'Founding Full Members'
Email to :
Submit
Copyright ©2019.
Liver Transplant Anaesthesia and Critical Care Society of India.
All rights reserved.


Trendline Deviation
Renormalize
Finite Differences
Cumulative
Cut Axis
Fold Axis
Filter Categories
Zoom in on Range
Transform
Take a screenshot with space and circle a graph feature before proceeding.
Proceed
Screenshot
×


{% extends "index.html" %} {% block body %}
Normal Mode Wizard (NMWiz) is a VMD plugin designed for visual comparative analysis of normal mode data, i.e. modes may come from principal component, essential dynamics, normal mode analysis or may be any vector describing a molecular motion.
NMWiz, designed as a GUI for ProDy, can be used to
NMWiz is distributed with VMD since v1.9.1. For more information, check out the tutorial.
Reference
Bakan A, Meireles LM, Bahar I
ProDy: Protein Dynamics Inferred from Theory and Experiments
2011 Bioinformatics 27(11):1575-1577
Bakan A, Dutta A, Mao W, Liu Y, Chennubhotla C, Lezon TR, Bahar I
Evol and ProDy for Bridging Protein Sequence Evolution and Structural Dynamics
2014 Bioinformatics 30(18):2681-2683


#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author: Jialiang Shi
from sonarqube.config import (
API_RULES_SEARCH_ENDPOINT,
API_RULES_CREATE_ENDPOINT,
API_RULES_UPDATE_ENDPOINT,
API_RULES_DELETE_ENDPOINT,
API_RULES_SHOW_ENDPOINT,
API_RULES_TAGS_ENDPOINT,
API_RULES_REPOSITORIES_ENDPOINT
)
[docs]class SonarQubeRules:
OPTIONS_SEARCH = ['activation', 'qprofile', 'languages', 'active_severities', 'asc', 'available_since', 'cwe', 'f',
'facets', 'include_external', 'inheritance', 'is_template', 'owaspTop10', 'q', 'repositories',
'rule_key', 's', 'sansTop25', 'severities', 'sonarsourceSecurity', 'statuses', 'tags',
'template_key', 'issue_types']
OPTIONS_UPDATE = ['name', 'description', 'markdown_note', 'remediation_fn_base_effort', 'remediation_fn_type',
'remediation_fy_gap_multiplier', 'severity', 'status', 'tags']
def __init__(self, sonarqube):
self.sonarqube = sonarqube
[docs] def search_rules(self, **kwargs):
"""
Search for a collection of relevant rules matching a specified query.
optional parameters:
* activation: Filter rules that are activated or deactivated on the selected Quality profile. Ignored if the parameter 'qprofile' is not set.
* qprofile: Quality profile key to filter on. Used only if the parameter 'activation' is set.
* languages: Comma-separated list of languages
* active_severities: Comma-separated list of activation severities,
i.e the severity of rules in Quality profiles. Possible values are for:
* INFO
* MINOR
* MAJOR
* CRITICAL
* BLOCKER
* asc: Ascending sort.Possible values are for: true, false, yes, no. default value is true
* available_since: Filters rules added since date. Format is yyyy-MM-dd
* cwe: Comma-separated list of CWE identifiers. Use 'unknown' to select rules not associated to any CWE.
* f: Comma-separated list of the fields to be returned in response. All the fields are returned by default,
except actives.Since 5.5, following fields have been deprecated :
* "defaultDebtRemFn" becomes "defaultRemFn"
* "debtRemFn" becomes "remFn"
* "effortToFixDescription" becomes "gapDescription"
* "debtOverloaded" becomes "remFnOverloaded"
Possible values are for:
* actives
* createdAt
* debtOverloaded
* debtRemFn
* defaultDebtRemFn
* defaultRemFn
* effortToFixDescription
* gapDescription
* htmlDesc
* htmlNote
* internalKey
* isExternal
* isTemplate
* lang
* langName
* mdDesc
* mdNote
* name
* noteLogin
* params
* remFn
* remFnOverloaded
* repo
* scope
* severity
* status
* sysTags
* tags
* templateKey
* updatedAt
* facets: Comma-separated list of the facets to be computed. No facet is computed by default.
Possible values are for:
* languages
* repositories
* tags
* severities
* active_severities
* statuses
* types
* true
* cwe
* owaspTop10
* sansTop25
* sonarsourceSecurity
* include_external: Include external engine rules in the results.
Possible values are for: true, false, yes, no. default value is false.
* inheritance: Comma-separated list of values of inheritance for a rule within a quality profile.
Used only if the parameter 'activation' is set. Possible values are for:
* NONE
* INHERITED
* OVERRIDES
* is_template: Filter template rules.Possible values are for: true, false, yes, no.
* owaspTop10: Comma-separated list of OWASP Top 10 lowercase categories.
* q: UTF-8 search query
* repositories: Comma-separated list of repositories
* rule_key: Key of rule to search for
* s: Sort field. Possible values are for:
* name
* updatedAt
* createdAt
* key
* sansTop25: Comma-separated list of SANS Top 25 categories. Possible values are for:
* insecure-interaction
* risky-resource
* porous-defenses
* severities: Comma-separated list of default severities.
Not the same than severity of rules in Quality profiles.Possible values are for:
* INFO
* MINOR
* MAJOR
* CRITICAL
* BLOCKER
* sonarsourceSecurity: Comma-separated list of SonarSource security categories.
Use 'others' to select rules not associated with any category. Possible values are for:
* sql-injection
* command-injection
* path-traversal-injection
* ldap-injection
* xpath-injection
* rce
* dos
* ssrf
* csrf
* xss
* log-injection
* http-response-splitting
* open-redirect
* xxe
* object-injection
* weak-cryptography
* auth
* insecure-conf
* file-manipulation
* others
* statuses: Comma-separated list of status codes. Possible values are for:
* BETA
* DEPRECATED
* READY
* REMOVED
* tags: Comma-separated list of tags. Returned rules match any of the tags (OR operator).
Possible values are for: security,java8
* template_key: Key of the template rule to filter on. Used to search for the custom rules based
on this template.
* issue_types: Comma-separated list of types. Returned rules match any of the tags (OR operator).such as;
* CODE_SMELL
* BUG
* VULNERABILITY
* SECURITY_HOTSPOT
:return:
"""
params = {}
if kwargs:
self.sonarqube.copy_dict(params, kwargs, self.OPTIONS_SEARCH)
# Page counters
page_num = 1
page_size = 1
n_rules = 2
# Cycle through rules
while page_num * page_size < n_rules:
# Update paging information for calculation
res = self.sonarqube.make_call('get', API_RULES_SEARCH_ENDPOINT, **params).json()
page_num = res['p']
page_size = res['ps']
n_rules = res['total']
# Update page number (next) in queryset
params['p'] = page_num + 1
# Yield rules
for rule in res['rules']:
yield rule
[docs] def create_rule(self, key, name, description, template_key, severity, status=None, rule_type=None, **params):
"""
Create a a custom rule.
:param key: Key of the custom rule
:param name: Rule name
:param description: Rule description
:param template_key: Key of the template rule in order to create a custom rule (mandatory for custom rule)
:param severity: Rule severity.
Possible values are for:
* INFO
* MINOR
* MAJOR
* CRITICAL
* BLOCKER
:param status: Rule status.
Possible values are for:
* BETA
* DEPRECATED
* READY
* REMOVED
:param rule_type: Rule type.
Possible values are for:
* CODE_SMELL
* BUG
* VULNERABILITY
* SECURITY_HOTSPOT
:return: request response
"""
# Build data to post
data = {
'custom_key': key,
'name': name,
'markdown_description': description,
"template_key": template_key,
"severity": severity.upper()
}
if status:
data.update({"status": status.upper()})
if rule_type:
data.update({"type": rule_type.upper()})
params = ';'.join('{}={}'.format(k, v) for k, v in sorted(params.items()) if v)
if params:
data.update({"params": params})
self.sonarqube.make_call('post', API_RULES_CREATE_ENDPOINT, **data)
[docs] def update_rule(self, key, **kwargs):
"""
Update an existing rule.
:param key: Key of the rule to update
optional parameters:
* name: Rule name (mandatory for custom rule)
* description: Rule description (mandatory for custom rule and manual rule)
* markdown_note: Optional note in markdown format. Use empty value to remove current note.
Note is not changed if the parameter is not set.
* params: Parameters as semi-colon list of =, for example 'params=key1=v1;key2=v2'
(Only when updating a custom rule)
* remediation_fn_base_effort: Base effort of the remediation function of the rule
* remediation_fn_type: Type of the remediation function of the rule
* remediation_fy_gap_multiplier: Gap multiplier of the remediation function of the rule
* severity: Rule severity (Only when updating a custom rule).Possible values are for:
* INFO
* MINOR
* MAJOR
* CRITICAL
* BLOCKER
* status: Rule status (Only when updating a custom rule). Possible values are for:
* BETA
* DEPRECATED
* READY
* REMOVED
* tags: Optional comma-separated list of tags to set. Use blank value to remove current tags.
Tags are not changed if the parameter is not set.
:return:
"""
data = {'key': key}
if kwargs:
self.sonarqube.copy_dict(data, kwargs, self.OPTIONS_UPDATE)
self.sonarqube.make_call('post', API_RULES_UPDATE_ENDPOINT, **data)
[docs] def delete_rule(self, rule_key):
"""
Delete custom rule.
:param rule_key:
:return:
"""
params = {
'key': rule_key
}
self.sonarqube.make_call('post', API_RULES_DELETE_ENDPOINT, **params)
[docs] def get_rule(self, rule_key, actives="false"):
"""
Get detailed information about a rule.
:param rule_key: Rule key
:param actives: Show rule's activations for all profiles ("active rules"). Possible values are for: true, false, yes, no
default value is fasle.
:return:
"""
params = {'key': rule_key, 'actives': actives}
res = self.sonarqube.make_call('get', API_RULES_SHOW_ENDPOINT, **params)
return res.json()
[docs] def get_rule_repositories(self, language=None, q=None):
"""
List available rule repositories
:param language: A language key; if provided, only repositories for the given language will be returned
:param q: A pattern to match repository keys/names against
:return:
"""
params = {}
if language:
params.update({"language": language})
if q:
params.update({"q": q})
resp = self.sonarqube.make_call('get', API_RULES_REPOSITORIES_ENDPOINT, **params)
response = resp.json()
return response['repositories']


Giraffe.Contrib.FastCollectionView
This example details how to use
Giraffe.Contrib
to implement a view for a collection of fruits with the Contrib.FastCollectionView,
a class that efficiently renders a collection with a single view.
The goal of this class is to render a collection as efficiently as possible. It
has yet to be optimized much, but when re-rendering the entire collection on a
'sort'
or 'reset'
event it is very fast.
Here's a jsPerf with more.
Live Example
Here is the final result.
The fruits are rendered inside a shared instance of FruitsView
, which inherits
directly from Giraffe.View
. A number of actions can be performed via buttons:
clone
creates a duplicate of the fruitdelete
remove the fruit from the collectionsort
toggles ascending/descending sortreset
resets the collection to its original state
var Fruit = Giraffe.Model.extend({
defaults: {
name: null,
color: null
}
});
var Fruits = Giraffe.Collection.extend({
model: Fruit,
comparator: 'name'
});
Fruits.prototype.toggleSort = function() {
var comparator = this.comparator;
// Reverse string order isn't as simple as prefixing with '-'. See
// http://stackoverflow.com/a/5639070. Collection.reverse() is not a
// good idea as the collection would not sort properly on add/remove.
if (typeof comparator === 'string') {
comparator = function(fruit) {
return String.fromCharCode.apply(String, _.map(fruit.get("name").split(""),
function(c) {
return 0xffff - c.charCodeAt();
}
));
}
} else {
comparator = 'name';
}
this.comparator = comparator;
this.sort();
};
var FruitsView = Giraffe.Contrib.FastCollectionView.extend({
// The view's regular template
template: '#fruits-template',
// Options specific to the `FastCollectionView`
modelTemplate: '#fruit-template', // required - used to get the html per model
modelEl: '#fruits-list', // optional - el to insert result of `modelTemplate`
// `modelSerialize` and `modelTemplateStrategy` options not shown
onDelete: function(e) {
var model = this.findModelByEl(e.target); // `FastCollectionView` method
// `dispose` is a Giraffe method which also removes it from the collection
model.dispose();
// or
// this.collection.remove(model);
// or
// this.removeOne(model); // `FastCollectionView` method
},
onClone: function(e) {
var model = this.findModelByEl(e.target);
var newModel = model.clone();
this.collection.add(newModel);
// or
// this.addOne(newModel); // `FastCollectionView` method
}
});
var savoryFruits = [{
name: 'Orange',
color: '#FF7F00'
}, {
name: 'Pink Grapefruit',
color: '#C5363A'
}, {
name: 'Apple',
color: '#0F0'
}, {
name: 'Banana',
color: '#FF0'
}, ];
var fruits = new Fruits(savoryFruits);
var fruitsView = new FruitsView({
collection: fruits
});
var MainView = Giraffe.View.extend({
template: '#main-template',
onClickReset: function() {
fruitsView.collection.reset(savoryFruits);
},
onClickSort: function() {
fruitsView.collection.toggleSort();
},
afterRender: function() {
this.attach(fruitsView);
}
});
var mainView = new MainView();
mainView.attachTo('body');
<!DOCTYPE html>

<link rel='stylesheet' type='text/css' href='../css/reset.css' />
<link rel='stylesheet' type='text/css' href='fastcollectionview0-style.css' />

h1 {
font-size: 36px;
}
h2 {
font-size: 24px;
}
.fruit {
position: relative;
padding: 10px;
margin: 10px;
}
hr {
border: 0;
height: 0;
border-top: 1px dashed #ccc;
}
Collection and Model
First define the model and collection representing the fruits. The advantage
of using Giraffe.Model is the addition of a few methods such as
Model#dispose
which is used later. This is not that different from using
Backbone.Model.
var Fruit = Giraffe.Model.extend({
defaults: {
name: null,
color: null
}
});
var Fruits = Giraffe.Collection.extend({
model: Fruit,
comparator: 'name'
});
Collection View
Giraffe.Contrib
contains a FastCollectionView
class that syncs a template
per model in its collection
by reacting to add/remove/sort/reset events.
var FruitsView = Giraffe.Contrib.FastCollectionView.extend({
// The view's regular template
template: '#fruits-template',
// Options specific to the `FastCollectionView`
modelTemplate: '#fruit-template', // required - used to get the html per model
modelEl: '#fruits-list', // optional - el to insert result of `modelTemplate`
// `modelSerialize` and `modelTemplateStrategy` options not shown
onDelete: function(e) {
var model = this.findModelByEl(e.target); // `FastCollectionView` method
// `dispose` is a Giraffe method which also removes it from the collection
model.dispose();
// or
// this.collection.remove(model);
// or
// this.removeOne(model); // `FastCollectionView` method
},
onClone: function(e) {
var model = this.findModelByEl(e.target);
var newModel = model.clone();
this.collection.add(newModel);
// or
// this.addOne(newModel); // `FastCollectionView` method
}
});
The FastCollectionView
property modelEl
designates where to insert the
models' html. It defaults to view.$el
. It is important to not put any other
elements inside modelEl
, as Giraffe makes this assumption to be able to
enable its automated features without creating views. As specified in
FruitsView
, '#fruits-list'
contains the fruits. Here's the template that
creates this modelEl
:

FastCollectionView
is destructive
to its modelEl
when the collection is fully re-rendered, which currently
occurs on render
and the 'reset'
and 'sort'
events.
The template rendered per model, modelTemplate
, '#fruit-template'
in this
example, is the only required option of the FastCollectionView
.
Let's add delete and clone buttons to let users visually modify the collection.

Now create some tasty fruits and create the collection to assign to FruitsView
.
var savoryFruits = [
{name: 'Orange', color: '#FF7F00'},
{name: 'Pink Grapefruit', color: '#C5363A'},
{name: 'Apple', color: '#0F0'},
{name: 'Banana', color: '#FF0'},
];
var fruits = new Fruits(savoryFruits);
var fruitsView = new FruitsView({
collection: fruits
});
Resetting and Sorting
Let's also give the user the ability to reset
and sort
fruits at
any time. The buttons need to be outside of the collection view otherwise
they would be disposed when the view resets its children.
Create a main view to contain the button just to keep things tidy and easy one-way click binding.

var MainView = Giraffe.View.extend({
template: '#main-template',
onClickReset: function() {
fruitsView.collection.reset(savoryFruits);
},
onClickSort: function() {
fruitsView.collection.toggleSort();
},
afterRender: function() {
this.attach(fruitsView);
}
});
var mainView = new MainView();
mainView.attachTo('body');
FastCollectionView
should be especially fast when re-rendering the entire
collection as on 'reset'
and 'sort'
events, because it concatenates all of
the html for each model into one string. However this may not always be the
optimal behavior. This class is a work in progress and smarter
rendering is something to look into.
Here's a jsPerf with more.
We need to source the Backbone.Giraffe.Contrib
library which defines
Giraffe.Contrib.FastCollectionView
.
Backbone.Giraffe.Contrib
,
short for contributions.


Tian du Toit Developer Boy
Technical Blog
Cultural Blog
Projects
Welcome to my website! Join me as I begin this new adventure into the world of development, I will be updating the blogs regularly as I continue to learn.
Get in touch at tiandutoit.nz@gmail.com


Last edit: APR 13, 3:21AM
Home
Contact
Sign Up
Login
Key points of acQuisor OBD
Analysis of 2600+ Diagnostic Trouble codes
View vehicle sensor data and log it with any connection hazzle
Simulate actual vehicle driving data with simulator
Plot realtime vehicle data on UI
Registration for new user
SUBMIT


import {ColorBrewer} from 'gisplay-es6-webpack/src/Gisplay/Helpers/ColorBrewer.js'
ColorBrewer
This class will contain all ColorBrewer color schemes and methods to query said color schemes. These queries can be: by their type(Diverging, Qualitative and Sequential), name(Spectral, RdYlGn, etc etc) and number of classes(3,4...).
Static Method Summary
| Static Public Methods | ||
| public static |
This is just an alias for the method getColorSchemesByName(name). |
|
| public static |
byNameAndNumber(name: string, numberOfClasses: number): Array<RGB> For the given color scheme name and number of classes returns the RGB colors associated with them. |
|
| public static |
Returns all ColorSchemes that contain the number of class given as input. |
|
| public static |
getAllColorSchemesByNumberOfClasses(numberOfClasses: number): Object Returns an object of color schemes with only those the objects for the specified number of classes. |
|
| public static |
getAllColorSchemesByNumberOfClassesAsArray(numberOfClasses: number): Array<Object> this method was deprecated. Use byNumber(n) or getAllColorSchemesByNumberOfClasses(n) instead.
|
|
| public static |
getChangeMapDefaults(dataNature: string , numClasses: number ): Array<number> Returns the default color for Change Maps taking in consideration the given number of classes and nature of data currently being used. |
|
| public static |
getChorochromaticDefaults(dataNature: string , numClasses: number ): Array<number> Returns the default color for Chorocromatic Maps taking in consideration the given number of classes and nature of data currently being used. |
|
| public static |
getChoroplethDefaults(dataNature: string , numClasses: number ): Array<number> Returns the default color for Choropleth Maps taking in consideration the given number of classes and nature of data currently being used. |
|
| public static |
Returns the ColorBrewer object of type of color schemes. |
|
| public static |
getColorScheme(type: string, name: string, numOfClasses: number): Array<RGB> Returns an array with numOfClasses elements that are the colors for the given type of color scheme and it's name. |
|
| public static |
getColorSchemesByName(name: string): Object Return an object with multiple color schemes for each number of classes associated with the color scheme given as input. |
|
| public static |
Given the color scheme name and the number of classes returns an Array of colors associated with the given name and number of classes. |
|
| public static |
Given the color scheme name and the number of classes returns an Array of colors associated with the given name and number of classes. |
|
| public static |
getDefautls(mapName: *, numClasses: *, dataNature: *): * ######################## DEFAULTS ####################################### |
|
| public static |
Returns all the ColorBrewer diverging color schemes. |
|
| public static |
getDotMapDefaults(dataNature: string , numClasses: number ): Array<number> Returns the default color for Dot Maps taking in consideration the given number of classes and nature of data currently being used. |
|
| public static |
getProportionalSymbolsDefaults(dataNature: string , numClasses: number ): Array<number> Returns the default color for Proportional Symbols Maps taking in consideration the given number of classes and nature of data currently being used. |
|
| public static |
Returns all the ColorBrewer qualitative color schemes. |
|
| public static |
Returns all the ColorBrewer the sequential color schemes. |
Static Public Methods
public static byName(name: string): Object source
This is just an alias for the method getColorSchemesByName(name).
Params:
| Name | Type | Attribute | Description |
| name | string |
Return:
| Object | an object with multiple color schemes for each number of classes associated with the color scheme given as input. |
public static byNameAndNumber(name: string, numberOfClasses: number): Array<RGB> source
For the given color scheme name and number of classes returns the RGB colors associated with them.
public static byNumber(numberOfClasses: number): Object source
Returns all ColorSchemes that contain the number of class given as input.
Params:
| Name | Type | Attribute | Description |
| numberOfClasses | number | number of classes to search for. |
public static getAllColorSchemesByNumberOfClasses(numberOfClasses: number): Object source
Returns an object of color schemes with only those the objects for the specified number of classes.
Params:
| Name | Type | Attribute | Description |
| numberOfClasses | number |
Return:
| Object | an object of color schemes with only those the objects for the specified number of classes. |
public static getAllColorSchemesByNumberOfClassesAsArray(numberOfClasses: number): Array<Object> source
Params:
| Name | Type | Attribute | Description |
| numberOfClasses | number |
public static getChangeMapDefaults(dataNature: string , numClasses: number ): Array<number> source
Returns the default color for Change Maps taking in consideration the given number of classes and nature of data currently being used.
Params:
| Name | Type | Attribute | Description |
| dataNature | string | The type of data. |
|
| numClasses | number | The number of classes. |
Return:
| Array<number> | the default color for the given number of classes and nature of data currently being used. |
public static getChorochromaticDefaults(dataNature: string , numClasses: number ): Array<number> source
Returns the default color for Chorocromatic Maps taking in consideration the given number of classes and nature of data currently being used.
Params:
| Name | Type | Attribute | Description |
| dataNature | string | The type of data. |
|
| numClasses | number | The number of classes. |
Return:
| Array<number> | the default color for the given number of classes and nature of data currently being used. |
public static getChoroplethDefaults(dataNature: string , numClasses: number ): Array<number> source
Returns the default color for Choropleth Maps taking in consideration the given number of classes and nature of data currently being used.
Params:
| Name | Type | Attribute | Description |
| dataNature | string | The type of data. |
|
| numClasses | number | The number of classes. |
Return:
| Array<number> | the default color for the given number of classes and nature of data currently being used. |
public static getColorBrewerVariable(): Object source
Returns the ColorBrewer object of type of color schemes.
public static getColorScheme(type: string, name: string, numOfClasses: number): Array<RGB> source
Returns an array with numOfClasses elements that are the colors for the given type of color scheme and it's name.
public static getColorSchemesByName(name: string): Object source
Return an object with multiple color schemes for each number of classes associated with the color scheme given as input.
Params:
| Name | Type | Attribute | Description |
| name | string |
Return:
| Object | an object with multiple color schemes for each number of classes associated with the color scheme given as input. |
public static getColors(name: string, numberOfClasses: number): Array<Array<number>> source
Given the color scheme name and the number of classes returns an Array of colors associated with the given name and number of classes.
public static getColorsHex(name: string, numberOfClasses: number): Array<Array<string>> source
Given the color scheme name and the number of classes returns an Array of colors associated with the given name and number of classes.
public static getDefautls(mapName: *, numClasses: *, dataNature: *): * source
######################## DEFAULTS #######################################
Params:
| Name | Type | Attribute | Description |
| mapName | * | ||
| numClasses | * | ||
| dataNature | * |
Return:
| * |
public static getDivergingColorSchemes(): Object source
Returns all the ColorBrewer diverging color schemes.
public static getDotMapDefaults(dataNature: string , numClasses: number ): Array<number> source
Returns the default color for Dot Maps taking in consideration the given number of classes and nature of data currently being used.
Params:
| Name | Type | Attribute | Description |
| dataNature | string | The type of data. |
|
| numClasses | number | The number of classes. |
Return:
| Array<number> | the default color for the given number of classes and nature of data currently being used. |
public static getProportionalSymbolsDefaults(dataNature: string , numClasses: number ): Array<number> source
Returns the default color for Proportional Symbols Maps taking in consideration the given number of classes and nature of data currently being used.
Params:
| Name | Type | Attribute | Description |
| dataNature | string | The type of data. |
|
| numClasses | number | The number of classes. |
Return:
| Array<number> | the default color for the given number of classes and nature of data currently being used. |


CrimPapers
Articles published on 22 February 2018
On 22 February 2018, 16 new articles were published in 14 journals.
Convergence Dynamics of Robbery Rates in Mexico by Gustavo Fondevila, Ricardo Massa
“Staying Out That Public Housing”: Examining the Role of Security Measures in Public Housing Design
Carceral Moderation and the Janus Face of International Pressure: A Long View of Greece’s Engagement With the European Convention of Human Rights
The Relationship Between Fear of Crime and Risk Perception Across Europe by Eva Krulichová
Extending Situational Action Theory to White-Collar Crime by Jessica M. Craig
Foreign National Prisoners in Flanders (belgium): Motivations and Barriers to Participation in Prison Programmes
Book Review: Control and Protect: Collaboration, Carceral Protection, and Domestic Sex Trafficking in the United States by Patricia A. Dooley
Personality Functioning and Psychopathic Traits in Child Molesters and Violent Offenders
The Dangers of Co-Witness Familiarity: Investigating the Effects of Co-Witness Relationships on Blame Conformity
Letter From the Editor
The Psychological Impact of Solitary: A Longitudinal Comparison of General Population and Long-Term Administratively Segregated Male Inmates by Carly D. Chadick, Ashley B. Batastini, Samuel J. Levulis, Robert D. Morgan
Within-Subjects Verbal Lie Detection Measures: A Comparison Between Total Detail and Proportion of Complications by Aldert Vrij, Sharon Leal, Louise Jupe, Adam Harvey
Policing Extreme Political Protest: A Historical Evaluation of Police Prejudice
Book Review: the Neighborhood Has Its Own Rules by John Leverso
The Strategic Logic of Women in Jihadi Organizations by Hamoon Khelghat-Doost
Note: although this article was published on 19 January 2018, the publisher only added it to the journal RSS feed on 22 February 2018, which is why it is shown in the list of articles for that date.
The Strategy of Exclusion in American Counterterrorism by Michael Newell
Note: although this article was published on 30 January 2018, the publisher only added it to the journal RSS feed on 22 February 2018, which is why it is shown in the list of articles for that date.