| Application Overview | Data Issues | Application Classes | Company Messages | Security Messages | Application Cross Reference |
The instances of the class Company represent the individual corporate entities for which you track information. Information maintained for a company typically includes country, industry, sales, and earnings. The instances of the class Security represent the individual securities issued by a company or equivalent entity such as the government. A variety of security types exist including cash, common and preferred stocks, convertible and non-convertible bonds, and put and call options. Data maintained for a security typically includes price, dividend and shares/amount outstanding information. Portfolios hold specific amounts of one or more securities.
The following subset of the class hierarchy displays the classes directly related to Company and Security:
Object | Entity | | | |-- Company | | | |-- Security | | | |-- Classification | | | |-- Country | | | |-- Industry | | | |-- Sector | | | |-- SecurityType | | | |-- AssetCategory | DataRecord | |-- DivRecord | |-- PriceRecord
The naming dictionaries Named Company and Named Security are the primary dictionaries for accessing individual company and security instances. For example:
Named Company IBMaccesses the company representing the corporate entity IBM and:
Named Security IBMaccesses the security representing the common stock IBM.
All company and security instances will have at least one identifier. Unique identifiers are stored as aliases in the Named Company and Named Security dictionaries. By default, the value of the code property is used as the first alias created. Additional aliases are usually created for security and company access. For domestic securities, the cusip and ticker are normally defined as aliases. For international securities, the sedol is normally defined as an alias. Any alias that is added for a security is automatically added as an alias for its associated company as well.
To display all the aliases associated with a specific entity you can display the list of strings stored in the aliases property. For example, to see the aliases defined for the company IBM use:
Named Company IBM aliases do: [ printNL ] ;More information about company and security identification schemes is available in the document Portfolio Management Application Issues.
Securities and companies respond to all Entity and Object messages such as code, name, and baseCurrency. The message displayInfo has been redefined to display the code, ticker, and name for Security and Company. The message profile has also been redefined for these classes to display additional information. For example:
Named Company IBM displayInfo ;displays a summary line of information about the company IBM and:
Named Security IBM profile ;displays key information about the security IBM.
The message masterList can be used to return the list of non-default companies or securities. For example, to display the code and name for each Company instance, use:
Company masterList do: [ code print: 10 ; name printNL ; ] ;To display the number of Security instances, use:
Security masterList count
The security IBM Common Stock is a Vision object whose properties include pricing, dividend, and split information. This object is distinct from the company IBM whose properties include sales, earnings, and industry information. Although Company and Security are distinct classes in the Vision hierarchy, there is obviously a close relationship between related instances of the two classes since most securities are associated with a specific company and companies issue one or more securities.
When you refer to the price earnings ratio for a security, you are really asking for the current price of the security divided by the earnings per share for the corporate entity that issued the security. The property company is defined at Security to return the value of the company associated with the security. The actual object representing the company is returned. For example, the Vision expression:
Named Security IBM companyreturns the object representing the company IBM and the expression:
Named Security IBM company = Named Company IBMyields the result TRUE. Note that several securities may have the same value for company since more than one security can be issued by a single company entity. By default, the value of company for a security is the default company instance. Automated and manual rules can be used to link a security to its "real" company instance.
When you refer to the price earnings ratio for a company, you are really asking for the current price of the company's primary security divided by the earnings per share for the company. The property primarySecurity is defined at Company to return the value of the security defined as the primary security for the company. The actual object representing the security is returned. For example, the Vision expression:
Named Company IBM primarySecurityreturns the object representing IBM's common stock security and the expression:
Named Company IBM primarySecurity = Named Security IBMyields the result TRUE. Note that only one security can be assigned as the primarySecurity for a company. By default, the value of primarySecurity for a company is the default security instance. Automated and manual rules can be used to link a company to its "real" primary security instance.
The peRatio method could therefore be defined for Security and Company as follows:
Security defineMethod: [ | peRatio | price / company eps ] ; Company defineMethod: [ | peRatio | primarySecurity price / eps ] ;where eps would need to be defined as a Company message that returns the company's earnings per share.
The property securityList is defined at Company to return the list of securities associated with a company. To look at the securities associated with a company, use:
Named Company IBM securityList do: [ displayInfo ] ;
The following messages return basic Company information:
| Message | Return Class | Description |
|---|---|---|
| baseCurrency | Currency | default currency for storing and accessing monetary data for the company |
| code | String | primary identifier |
| country | Country | primary country of operations |
| creationDate | Date | date instance was created |
| cusip | String | cusip associated with primary security |
| fiscalYearEnd | Integer | month of fiscal year end (1-12) |
| id | String | ticker if defined, code otherwise |
| industry | Industry | primary industry |
| isMemberOf: | Boolean | is company in supplied universe or classification? |
| isin | String | isin associated with primary security |
| name | String | company name |
| primarySecurity | Security | primary security issued by company |
| sector | Sector | sector associated with industry |
| securityList | List | list of securities issued by company |
| sedol | String | sedol associated with primary security |
| ticker | String | ticker associated with primary security |
| universes | List | list of universes containing company |
| valor | String | valor associated with primary security |
Messages such as industry and primarySecurity return an object of another entity class. You can therefore navigate to that object and request any of its information. For example, the expression:
Named Company GM primarySecurity namereturns the name of GM's primary security and the expression:
Named Company GM industry showMessagesdisplays the messages defined for the Industry class.
Company instances return instances of the classes Country, Industry, and Sector via the messages country, industry, and sector. These classes are described below.
For general descriptions of all the Company messages, see the document Vision Application Messages: Company. A number of messages have been defined to address company identification and the relationship between a company and the securities issued by it. These messages are described in more detail in the document Portfolio Management Application Issues.
The following messages return basic Security information:
| Message | Return Class | Description |
|---|---|---|
| adjustmentFactor | Number | cumulative adjustment factor |
| baseCurrency | Currency | default currency for storing and accessing monetary data for the security |
| canCusip | String | canadian cusip id |
| company | Company | issuing company |
| code | String | primary identifier |
| creationDate | Date | date instance was created |
| cusip | String | cusip id |
| dividend | Number | latest cash dividend (relative to ^date) |
| dividends | TimeSeries | time series of all dividends |
| getDivsFrom:to: | Number | total cash dividends in period |
| getPriceRecord | PriceRecord | latest price record (relative to ^date) |
| id | String | ticker if defined, otherwise code |
| isMemberOf: | Boolean | is security in supplied universe or classification? |
| isin | String | isin id |
| name | String | security name |
| price | Number | latest closing price (relative to ^date) |
| priceChangeFrom:to: | Number | percent change in price |
| prices | TimeSeries | time series of all prices |
| rawSplitFactor | Number | raw split factor |
| sedol | String | sedol id |
| sharesOut | Number | latest shares outstanding (relative to ^date) |
| ticker | String | ticker symbol id |
| totalReturnFrom:to: | Number | total return for period |
| type | SecurityType | security type |
| universes | List | list of universes containing security |
| valor | String | valor id |
| volume | Number | latest trading volume (relative to ^date) |
Messages such as securityType and company return an object of another entity class. You can therefore navigate to that object and request any of its information. For example, the expression:
Named Security GM company namereturns the name of GM's company and the expression:
Named Security GM type showMessagesdisplays the messages defined for the SecurityType class.
Security instances return instances of the classes SecurityType and AssetCategory via the message type and the expression type assetCategory described below. Messages that access pricing and dividend information such as price and dividend interact with the PriceRecord and DivRecord, classes, also described below . Messages that are used to support split adjustment are also described later in this document.
A number of messages are defined at Security to return related Account and Holding information. These messages are described in the document Vision Application Classes: The Account Classes.
For general descriptions of all the Security messages, see the document Vision Application Messages: Security. A number of messages have been defined to address security identification and the relationship between a Security and its issuing company. These messages are described in more detail in the document Portfolio Management Application Issues.
The instances of the class PriceRecord contain a single date's pricing information for a specific Security instance. The time series property pricingSeries is used to manage the relationship between Security instances and their PriceRecord instances over time. The instances of the class DivRecord contains total cash dividends paid by a security for a single date. The time series property dividendSeries is used to manage the relationship between Security instances and their DivRecord instances over time.
The messages price and volume are defined at Security to return the most recent closing price and trading volume for the security as of the current evaluation date (i.e., ^date). The price and volume are adjusted for any splits that have happened since the data was stored. The price is returned in the security's baseCurrency by default. For example:
Named Security GM pricereturns GM's latest price value in GM's base currency,
Named Security GM :price asOf: 9702 . or 9702 evaluate: [ Named Security GM price ]returns the latest price as of Feb 28, 1997 in GM's base currency, and
"CAN" asCurrency evaluate: [ Named Security GM price ]returns GM's latest price in Canadian dollars. The expression:
Named Security GM volumereturns GM's latest trading volume and the expressions:
Named Security GM :volume asOf: 9702 . or 9702 evaluate: [ Named Security GM volume ]returns the latest volume as of Feb 28, 1997.
All values are split-adjusted through the current date.
The following messages are defined for the class PriceRecord:
| Message | Return Class | Description |
|---|---|---|
| _ask | Number | actual ask value provided |
| _bid | Number | actual bid value provided |
| _high | Number | actual high value provided |
| _low | Number | actual low value provided |
| _open | Number | actual open value provided |
| _price | Number | actual closing price value provided |
| _volume | Number | actual trading volume value provided |
| adjustmentDate | Date | date pricing data adjusted through |
| adjustmentFactor | Number | split adjustment factor |
| ask | Number | split/currency adjusted ask |
| baseCurrency | Currency | currency pricing data stored in |
| bid | Number | split/currency adjusted bid |
| currencyFactor | Number | currency adjustment relative to recordDate |
| high | Number | split/currency adjusted high |
| low | Number | split/currency adjusted low |
| open | Number | split/currency adjusted open |
| price | Number | split/currency adjusted closing |
| recordDate | Date | date of price record |
| security | Number | underlying security |
| volume | Number | split adjusted trading volume |
To access a full price record as of a specific date, use the message getPriceRecord. For example, the expression:
Named Security GM getPriceRecord do: [ price print ; _price printNL ] ;displays the latest adjusted and unadjusted closing prices. The expressions:
Named Security GM :getPriceRecord asOf: 9709 . do: [ price print ; _price printNL ] ; and 9709 evaluate: [ Named Security GM getPriceRecord do: [ price print ; _price printNL ] ; ] ;both display the latest adjusted and unadjusted closing prices as of September 30, 1997.
The message prices returns a TimeSeries of all PriceRecord instances associated with a Security. For example, to display the adjusted and unadjusted prices and volumes for all points in GM's time series, you could use:
Named Security GM prices do: [ ^date print: 12 ; #-- date in time series recordDate print: 12 ; #-- date in record - should match price print ; #-- adjusted value _price print ; #-- unadjusted value volume print ; #-- adjusted value _volume print ; #-- unadjusted value currencyFactor print ; #-- should be 1 newLine print ; ] ;Note that the prices message returns an actual time series object so you need not prepend the ":" to the message name.
For general descriptions of all the PriceRecord messages, see the document Vision Application Messages: DataRecord. Special issues involved with managing the storage of pricing data are described in the document Portfolio Management Application Issues.
The message dividend is defined at Security to return the most recent cash dividend for the security as of the current evaluation date (i.e., ^date). The dividend is adjusted for any splits that have happened since the data was stored and is returned in the security's baseCurrency by default. For example:
Named Security GM dividendreturns GM's latest dividend value in GM's base currency,
Named Security GM :dividend asOf: 9702 . or 9702 evaluate: [ Named Security GM dividend ]returns the latest dividend as of Feb 28, 1997 in GM's base currency, and
"CAN" asCurrency evaluate: [ Named Security GM dividend ]returns GM's latest dividend in Canadian dollars.
All values are split-adjusted through the current date.
The following messages are defined for the class DivRecord:
| Message | Return Class | Description |
|---|---|---|
| _div | Number | actual cash dividend value provided (same as recordValue) |
| adjustmentDate | Date | date dividend adjusted through |
| adjustmentFactor | Number | split adjustment factor |
| baseCurrency | Currency | currency dividend data stored in |
| currencyFactor | Number | currency adjustment relative to recordDate |
| div | Number | split/currency adjusted dividend |
| paymentDate | Date | payment date of dividend |
| recordDate | Date | ex-date of dividend record |
| security | Number | underlying security |
The message dividends returns a TimeSeries of all DivRecord instances associated with a Security. For example, to display the adjusted and unadjusted dividend values for each of GM's dividends, you could use:
Named Security GM dividends do: [ ^date print: 12 ; #-- date in time series recordDate print: 12 ; #-- date in record - should match div print ; #-- adjusted value _div print ; #-- unadjusted value currencyFactor print ; #-- should be 1 newLine print ; ] ;Note that the dividends message returns an actual time series object so you need not prepend the ":" to the message name.
For general descriptions of all the PriceRecord messages, see the document Vision Application Messages: DataRecord. Special issues involved with managing the storage of pricing data are described in the document Portfolio Management Application Issues.
To adjust per share data it is necessary to know what splits have occurred between the date the data is known to be adjusted through (adjustment date) and the current date. To accomplish this, Vision tracks splits for each security in a time series called rawSplitFactor. The actual factors are stored in this time series as of their ex-date. For example, if a 2-for-1 split in GM Corporation occurred on January 15, 1995, the value 2 would be stored in GM's rawSplitFactor as of this date. Vision tracks a second time series called adjustmentFactor that represents the running product of these raw factors. This variable has an initial value of 1. Each time a split occurs, a new point representing the product of the new raw factor and the last adjustment factor is stored in the adjustment factor as of the ex-date.
In general, methods have been created that automatically return adjusted values by default. For example, the message _price is defined to return a PriceRecord's unadjusted price (i.e., the original value) and the message price is defined to return a PriceRecord's price adjusted for any splits.
The split adjustment process is described in detail in the document Portfolio Management Application Issues.
The Interface class ExternalFeedManager has been created to provide a uniform way to create and update any entity-related information. DataFeed subclasses are defined to translate one or more rows of information into the appropriate structures in your Vision database. Data can be supplied from a file, a spreadsheet, a relational database, or any other table-based source. You can also supply data directly as a string, using the tab character to delimit columns and the carriage return to delimit rows.
Several DataFeed classes have been defined to load data for Company, Security, and related classes:
| DataFeed | Description |
|---|---|
| CompanyMaster | creates Company instances and refreshes basic properties |
| SecurityMaster | creates Security instances and refreshes basic properties |
| PriceFeed | updates pricing data for Security instances |
| DivFeed | updates dividend data for Security instances |
| SplitsFeed | updates stock split data for Security instances |
| SecurityAliases | establishes aliases for Security instances |
| CountryMaster | creates Country instances and refreshes basic properties |
| IndustryMaster | creates Industry instances and refreshes basic properties |
| SectorMaster | creates Sector instances and refreshes basic properties |
| SecurityTypeMaster | creates SecurityType instances and refreshes basic properties |
| AssetCatMaster | creates AssetCategory instances and refreshes basic properties |
| CompanyToCountry | updates the company-country relationship |
| CompanyToIndustry | updates the company-industry relationship over time |
| IndustryToSector | updates the industry-sector relationship |
The CompanyMaster data feed class can be used to create and refresh Company instances. The following tab-delimited feed could be used to create Company instances and refresh basic information:
Interface ExternalFeedManager upload: "CompanyMaster" using: #-- make sure this is tab-delimited "Id Name fiscalYearEnd 00036110 AAR CORP 5 00079410 ACC CORP 12 00095710 ABM INDUSTRIES 10 " ;The following tab-delimited string could be used to create and refresh Security instances:
Interface ExternalFeedManager upload: "SecurityMaster" using: #-- make sure this is tab-delimited "entityId name companyId cusip ticker currencyId type 00036110 AAR COM 00036110 00036100 AIR USD 1 00079410 ACC COM 00079410 00079410 ACCC USD 1 00095710 ABM IND 00095710 00095710 AMB USD 1 " ;The following tab-delimited string could be used to update prices:
Interface ExternalFeedManager upload: "PriceFeed" using: #-- make sure this is tab-delimited "entityId date currencyId close volume 12345610 19971117 USD 88.000 0.28 12345610 19971118 USD 87.500 0.15 12345610 19971119 USD 42.000 0.63 98765410 19971117 CAD 30.500 0.32 98765410 19971118 CAD 30.400 0.05 98765410 19971119 CAD 29.900 0.07 " ;
Instances of the Country class correspond to individual countries such as United States, Canada, and Great Britain. The Portfolio Management Application Layer pre-defines a number of countries using the 2-character ISO standard identifiers and names. To display the code and name for each defined country use:
Country masterList sortUp: [ name ] . do: [ code print: 15 ; name printNL ] ;
For general descriptions of all the Country messages see the document Vision Application Messages: Classification.
The CountryMaster data feed class can be used to create and refresh Country instances. The following tab-delimited feed could be used to create Country instances and refresh basic information:
Interface ExternalFeedManager upload: "CountryMaster" using: #-- make sure this is tab-delimited "EntityId Name Currency AT Austria ATS AU Australia AUD CA Canada CAD CH Switzerland CHF US United States USD " ;
The fixed property country is used to assign a Country instance to a Company. To display the number of companies in each country, use:
Company masterList groupedBy: [ country ] . #- group into countries sortUp: [ code ] . #- sort by country code do: [ code print: 10 ; #- country code name print: 25 ; #- country name groupList count printNL ; #- number of company instances ] ;To display the first 100 non-US companies by country, use:
Company masterList select: [ country isUS not ] . #- non-US companies first: 100 . #- restrict to 100 companies groupedBy: [ country ] . #- group into countries sortUp: [ code ] . #- sort by country code do: [ #- for each country do the following: code print: 10 ; #- print country code name print: 25 ; #- print country name groupList count printNL ; #- print number of companies in subset groupList #- for each company in country subset do: [ #- do the following: code print: 10 ; #- print company code name printNL ; #- print company name ] ; #- end of groupList for country ] ;You can reassign a country explicitly using:
Named Company IBM :country <- Named Country US ;
You can also use the CompanyMaster data feed class to initialize and reassign country values:
Interface ExternalFeedManager upload: "CompanyMaster" using: #-- make sure this is tab-delimited "EntityId country 00036110 US 00194110 CA 461669 CH 000445 GB 002826 GB 003175 GB " ;
The property memberList has been defined at Country to store the list of Company instances associated with each Country instance. You can manually update the member cross reference using:
#-- clear current memberships Country masterList do: [ :memberList <- defaultInstance memberList ] ; #-- update lists using current companies Company masterList groupedBy: [ country ] . do: [ :memberList <- groupList ] ;Alternatively, you can use the CompanyToCountry data feed which automatically updates the country property at Company and cross references the memberList property at Country:
Interface ExternalFeedManager upload: "CompanyToCountry" using: #-- make sure this is tab-delimited "memberId groupId 00036110 US 00194110 CA 461669 CH 000445 GB 002826 GB 003175 GB " ;If you assign the countries using this feed, the expression:
Named Country GB memberList do: [ displayInfo ] ;displays all the companies with a country value of Great Britain.
Note that you should use this feed instead of the CompanyMaster if you want to cross reference the companies in the memberList property. The memberList property is automatically updated when you use the CompanyToCountry feed. If you assign values to the country property at Company manually or using the CompanyMaster feed, these companies will not be reflected in the country's memberList.
Instances of the Industry class correspond to user-defined industry classifications such as Beverages, Automotive, and Software. Instances of the class Sector correspond to user-defined sectors such as Consumer Durables and Technology. Sectors consist of one or more industries.
To access a specific industry use:
Named Industry at: "110" . name printNL ;To display the code and name for currently defined industries use:
Industry masterList sortUp: [ name ] . do: [ code print: 15 ; name printNL ] ;
To access a specific sector use:
Named Sector at: "TECH" . name printNL ;To display the code and name for currently defined sectors use:
Sector masterList sortUp: [ name ] . do: [ code print: 15 ; name printNL ] ;
The property sector is defined for the class Industry and is used to store the Sector instance associated with the industry. To display the current list of industries grouped into their sectors use:
Industry masterList groupedBy: [ sector ] . #- group into sectors sortUp: [ code ] . #- sort by sector code do: [ #- for each sector do: displayInfo ; #- display sector code/name groupList #- for each industry in sector do: [ #- do the following: " " print: 5 ; #- indent 5 spaces displayInfo ; #- display industry code/name ] ; #- end of industries in sector ] ; #- end of sector
The time series property industry is used to track a company's Industry over time. For example, to view the latest industry for a company use:
Named Company GM industry name printNL ;To view the industry as of a different date use:
95 evaluate: [ Named Company GM industry name printNL ] or Named Company GM :industry asOf: 95 . name printNL ;To look at industry history use:
Named Company GM :industry #- leading : retrieves the time series do: [ ^date print: 15 ; #- date of entry code print: 10 ; #- industry code on date name printNL ; #- industry name on date ] ;
The message sector is defined at Company to return the sector associated with the company's industry. For example, to view the sector associated with the current industry for a company use:
Named Company GM sector name printNL ;To view the sector as of a different date use:
95 evaluate: [ Named Company GM sector name printNL ] or Named Company GM :sector asOf: 95 . name printNL ;
The prior expressions are identical to:
Named Company GM industry sector name printNL ; 95 evaluate: [ Named Company GM industry sector name printNL ] and Named Company GM :industry asOf: 95 . sector name printNL ;
To display the first 100 companies by sector, by industry, use:
Company masterList first: 100 . #- restrict to 100 companies groupedBy: [ sector ] . #- group into sectors do: [ code print: 10 ; #- sector code name printNL ; #- sector name groupList #- for companies in sector groupedBy: [industry ] . #- group into industry do: [ #- and do the following: code print: 10 ; #- industry code name printNL ; #- industry name groupList #- for companies in industry do: [ #- do the following: displayInfo ; #- display company information ] ; #- end of companies in industry ] ; #- end of industries in sector newLine print ; #- skip a line after each sector ] ;
For general descriptions of all the Industry and Sector messages, see the document Vision Application Messages: Classification. Instances of Classification subclasses such as Industry are often managed as a hierarchy. For example, Industry 123 may refer to "Book Publishing", Industry 120 may refer to "General Publishing", and Industry 100 may refer to "General Media". For a general discussion of classification hierarchies, see the document Vision Class: Classification.
The IndustryMaster data feed class can be used to create and refresh Industry instances. The following tab-delimited feed could be used to create Industry instances and refresh basic information:
Interface ExternalFeedManager upload: "IndustryMaster" using: #-- make sure this is tab-delimited "EntityId Name 110 Beverages 120 Cosmetics 130 Grocery Products 140 Apparel 150 Other Consumer Non-durables " ;
The SectorMaster data feed class can be used to create and refresh Sector instances. The following tab-delimited feed could be used to create Sector instances and refresh basic information:
Interface ExternalFeedManager upload: "SectorMaster" using: #-- make sure this is tab-delimited "EntityId Name NOND Consumer non-durables DURB Consumer durables SERV Consumer services RETL Retail trade TECH Technology " ;
The property memberList has been defined at Sector to store the list of Industry instances associated with each Sector instance. You can manually update the member cross reference using:
#-- clear current memberships Sector masterList do: [ :memberList <- defaultInstance memberList ] ; #-- update lists using current companies Industry masterList groupedBy: [ sector ] . do: [ :memberList <- groupList ] ;Alternatively, you can use the IndustryToSector data feed which automatically updates the sector property at Industry and cross references the memberList property at Sector:
Interface ExternalFeedManager upload: "IndustryToSector" using: #-- make sure this is tab-delimited "groupId memberId NOND 110 NOND 120 NOND 130 DURB 210 DURB 220 DURB 230 " ;If you assign the sectors using this feed, the expression:
Named Sector TECH memberList do: [ displayInfo ] ;displays all the industries with a sector value of Technology.
Note that you should use this feed if you want to cross reference the industries in the memberList property defined at Sector. If you assign values to the sector property at Industry manually or using the IndustryMaster feed, these industries will not be reflected in the sector's memberList.
The time series property memberList is used to track the list of Company instances in an industry over time. Any time the industry is reassigned for a company, the memberList for the prior industry and the new industry must be updated. At any point in time, a company will belong to one industry. At any point in time, an industry will have zero or more companies associated with it.
To view an industry's members as of a specific date use:
#-- latest Named Industry at: "540" . #- get industry 540 memberList #- get latest member list (companies) do: [ #- for each member do: code print: 10 ; #- print company code name printNL ; #- print company name ] ; #-- as of last month ^today - 1 monthEnds evaluate: [ Named Industry at: "540" . #- get industry 540 memberList #- get eom member list (companies) do: [ #- for each member do: code print: 10 ; #- print company code name printNL ; #- print company name ] ; ] ; #-- all periods Named Industry at: "540" . :memberList #- leading : returns time series of lists do: [ ^date print ; #- for each date membership changed count printNL ; #- print number of members ^self do: [ displayInfo ] ; #- and display them one per line ] ;
The displayMemberHistory report shows changes in the industry membership over time. For example:
Named Industry at: "540" . displayMemberHistory ;
If you want to utilize the company-industry membership cross reference, you should use CompanyToIndustry data feed to update the industry property at Company. This feed automatically updates the industry property and cross references the memberList property at Industry by date:
Interface ExternalFeedManager upload: "CompanyToIndustry" using: #-- make sure this is tab-delimited "memberId groupId date 00036110 560 Default 00036110 120<PHONE_NUMBER>9410 740 Default 00079410 120<PHONE_NUMBER>9410 Default<PHONE_NUMBER>3T10 140 Default " ;
The message comanyList is defined at Sector to return the list of companies associated with any of the industries in the sector's memberList. This message assumes that the Industry and Sector memberList properties have been appropriately updated.
Instances of the SecurityType class correspond to different types of security such as Cash, Common Stock, and Mortgage-Back. Instances of the class AssetCategory correspond to general categories for asset classification. The Portfolio Management Application Layer pre-defines the asset categories: Equity, Fixed, Cash, and Other. Each SecurityType instance is assigned to an AssetCategory via the assetCategory property.
To display the currently defined security types, grouped into asset category use:
SecurityType masterList groupedBy: [ assetCategory ] . do: [ "===> AssetCategory: " print ; code printNL ; groupList do: [ displayInfo ] ; ] ;
The unitCalc property is defined at the SecurityType class to store a multiplier used to adjust units held in market value calculations. The value is 1.00 by default.
For general descriptions of the SecurityType and AssetCategory messages see the document Vision Application Messages: Classification.
The SecurityTypeMaster data feed class can be used to create and refresh SecurityType instances. The following tab-delimited feed could be used to create SecurityType instances and refresh basic information:
Interface ExternalFeedManager upload: "SecurityTypeMaster" using: #-- make sure this is tab-delimited "Id Name UnitCalc AssetCategory 0 Cash & Equiv 1.00 Cash 1 Common Stock 1.00 Equity 2 Corporate Bond 10.00 Fixed 3 Gvt Bond 10.00 Fixed 4 Option 100.00 Other " ;
The AssetCatMaster data feed class can be used to create and refresh AssetCategory instances. The following tab-delimited feed could be used to create AssetCategory instances and refresh basic information:
Interface ExternalFeedManager upload: "AssetCatMaster" using: #-- make sure this is tab-delimited "EntityId Name Equity Equity Fixed Fixed Income Cash Cash & Equivalents Other Other Assets " ;
The fixed property type is used to assign a SecurityType instance to a Security. To display the number of securities in each security type, use:
Security masterList groupedBy: [ type ] . #- group into security types do: [ code print: 10 ; #- security type code name print: 25 ; #- security type name groupList count printNL ; #- number of security instances ] ;
You can reassign a security type explicitly using:
Named Security IBM :type <- Named SecurityType US ;You can also use the SecurityMaster data feed class to initialize and reassign security type values:
Interface ExternalFeedManager upload: "SecurityMaster" using: #-- make sure this is tab-delimited "EntityId type 00036110 1 00194110 1 123456AB 2 456789BC 2 CashUS 0 " ;
| Copyright © 2000 Innovative Systems Techniques, Inc. | Updated December 15, 2000 |


new Thread().stop();
.
By default it doesn't report deprecated code when it's impossible or hard to avoid it, e.g.
the following code won't be reported:
abstract class A { @Deprecated abstract void m(); } class B extends A { @Override void m() { //doSmth; } }
Use the checkboxes below to enable this inspection inside deprecated members, overrides of abstract deprecated methods, non-static import statements, methods of deprecated classes or same top level classes.


Google Cloud Platform¶
Google Cloud Platform (GCP), offered by Google, is a suite of cloud computing services that runs on the same infrastructure that Google uses internally for its end-user products, such as Google Search and YouTube. Alongside a set of management tools, it provides a series of modular cloud services including computing, data storage, data analytics, and machine learning. Within cloudmesh, we develop services that support some of these products.
Google Compute Engine¶
Google Compute Engine delivers virtual machines running in Google’s innovative data centers and worldwide fiber network. Compute Engine’s tooling and workflow support enable scaling from single instances to global, load-balanced cloud computing. Compute Engine’s VMs boot quickly, come with high-performance persistent and local disk options, and deliver consistent performance. Our virtual servers are available in many configurations, including predefined sizes, and options to create Custom Machine Types optimized for your specific needs. Flexible pricing and automatic sustained use discounts make Compute Engine the leader in price/performance.
Next, we provide a step-by-step guide on how to create a Google account and service account through the Google webpage.
Prerequisites¶
We assume you have the cloudmesh google provider installed. This can be done with
$ pip install cloudmesh-google
For developers, the best way to install it is to use
cloudmesh-installer
.
$ mkdir cm
$ cd cm
$ pip install cloudmesh-installer
$ cloudmesh-installer get google
Creating the Google Account¶
If you do not have a google cloud account a new google account can be created using the following link:
Activation Google Cloud Service¶
Google allows you to apply for a free account and offers you $300 in credits to use google cloud. After creating a new account apply for a free trail and $300 credit at:
For students or education account, apply at:
Please choose the one that is most appropriate for you. For the educational account you may need a verification from your school or an email that is registered as an educational institution.
Setting up Google Cloud Account¶
Next, you will need to create a project and a service account. All service calls from cloudmesh require a project id to create VM, Disks, Volumes, etc.
We recommend that you simply use the project name cloudmesh
.
To authenticate the google cloud API from cloudmesh you also need to enable the required API and create a service account and then download the service account key.
Steps to setup project and service account:
Step |
Description |
Screenshot |
|---|---|---|
1 |
||
2 |
Next Enable API |
|
3 |
For E.g.
|
|
4 |
||
5 |
Download the service
account key file to
~/.cloudmesh/security folder with name
google.json . |
After the key is downloaded, make sure you keep the ~/.cloudmesh
directory secure.
We will use the downloaded JSON file to register google cloud with cloudmesh and enable cloudmesh to invoke google cloud API by updating the YAML entry in the file
$ ~/.cloudmesh/cloudmesh.yaml
Next register a google cloud account with cloudmesh.
Registering Google Cloud to Cloudmesh¶
Use the following command to register google cloud
with cloudmesh. This command will update the
cloudmesh.yaml
file for respective service.
Register Google Compute¶
$ cms register update --kind=google --service=compute --filename=~/.cloudmesh/security/google.json
Register Google Storage¶
$ cms register update --kind=google --service=Storage --filename=~/.cloudmesh/security/google.json bucket=cloudmesh-bucket
Note: The cloudmesh-bucket will be used as the default storage bucket.
Register Google Volume¶
$ cms register update --service=volume --kind=google --filename=~/.cloudmesh/security/google.json zone=us-west-a sizeGb=100 label=google
Verify Setup¶
Check the setup by running the following command
$ cms set cloud=google
$ cms vm list --refresh
The above command should list the VMs from your google cloud compute service.
You are all set with Google Cloud account setup.
Links¶
Google Cloud Storage¶
Google Cloud Storage provides varity of storage products which are simple, reliable, and secure solutions for your media, analytics, and application data.
The following are avalaible as google cloud storage products:
Object or blob storage Storage Type: Cloud Storage
Block storage Storage Type: Persistent Disk
Archival storage Storage Type: Cloud Storage
File storage Storage Type: Cloud Filestore
Mobile application Storage Type: Cloud Storage for Firebase
Data transfer Storage Type: Data Transfer Services
Collaboration Storage Type: Drive enterprise
You can refer google storage documentation for more details on google cloud storage documentation. Cloudmesh currently supports object/blob storage. Users can follow instructions to configure the google could platform described as part of this document.


Introduced in Excel 9 (2000) this is a FRT record. It stores extra information for Query Tables and Pivot Tables.
Record Data
|
Offset |
Name |
Size |
Contents |
|
4 |
rt |
2 |
Record type; this matches the BIFF rt in the first two bytes of the record; =0802h |
|
6 |
grbitFrt |
2 |
FRT flags; must be zero |
|
8 |
fSx |
2 |
=0 if the record is for a Query Table =1 if the record is for a Pivot Table |
|
10 |
grbit |
2 |
General options; see following table |
|
12 |
dwQsiFuture |
4 |
Feature-specific options; see following table |
|
16 |
VerSxLastUpdated |
1 |
Version of Excel that last refreshed the Pivot Table – only used in the Pivot Table case otherwise must be zero; =0 if Excel 2000 =1 if Excel XP =2 if Excel 2003 |
|
17 |
VerSxUpdateableMin |
1 |
Version of Excel that last refreshed the Pivot Table (see values for VerSxLastUpdated ) – only used in the Pivot Table case otherwise must be zero |
|
18 |
obCchName |
1 |
Offset in bytes from beginning of FRT to beginning of cchName |
|
19 |
bVerRtqsisxtag |
1 |
Version of Excel that first created the PivotTable or Query Table |
|
20 |
stName |
var |
name of the Pivot Table or Query Table (full Unicode string ) |
The grbit field contains the following general option flags:
|
Bits |
Mask |
Name |
Contents |
|
0 |
0001h |
fEnableRefresh |
0= the table can be refreshed if the setting
in the SXDB
record
or in the QSI record is enabled |
|
1 |
0002h |
fInvalid |
This overrides the setting in the SXDB
record (which should be 0 when QSISXTAG exists) |
|
2 |
0004h |
fTensorEx |
XL9: 1= This is an OLAP PivotTable report; expect a SXVIEWEX record to follow |
|
15-3 |
FFF8h |
(Reserved) |
Reserved; must be zero |
If the record is for a Query Table, the dwQsiFuture field contains the following feature-specific option flags:
|
Bits |
Mask |
Name |
Contents |
|
0 |
0001h |
fPreserveFormat |
1= Keep formatting that has been applied by the user |
|
1 |
0002h |
fAutoFit |
1= Auto Fit the columns after refresh |
|
15-2 |
FFFCh |
(Reserved) |
Reserved; must be zero |
If the record is for a Pivot Table, the dwQsiFuture field contains the following feature-specific option flags:
|
Bits |
Mask |
Name |
Contents |
|
0 |
0001h |
fNoStencil |
1= Do not draw large drop zones for PivotTable report if it has no data fields |
|
1 |
0002h |
fHideTotAnnotation |
XL9: 1= Suppress the asterisk for the total in an OLAP PivotTable |
|
2 |
0004h |
(Reserved) |
|
|
3 |
0008h |
fIncludeEmptyRw |
XL10: 1= Retrieve and show empty rows from the OLAP data source in the Pivot Table view |
|
4 |
0010h |
fIncludeEmptyCol |
XL11: 1= Retrieve and show empty columns from the OLAP data source in the Pivot Table view |
|
15-5 |
FFFCh |
(Reserved) |
|


Production
Research
Education
People
Site Map
Welcome and Overview
Contact Page
Site Map
Production
Production Overview
Research
Research Overview
Education
Education Overview
Maker-space and Cart Lab Policy (inactive)
Cart Lab Education Series
Design Challenge
Curriculum
Geography 170: Our Digital Globe
Geography 370: Introduction to Cartography
Geography 572: Graphic Design in Cartography
Geography 575: Interactive Cartography and Geovisualization
Geography 970: Seminar in Cartography
Mapchat
Map Chat / Blog (inactive)
People
People Overview
Tanya Buckingham
Robert Roth


flibs/ftnunit(n) 1.2 "flibs"
flibs/ftnunit - Unit testing
TABLE OF CONTENTS
SYNOPSIS
DESCRIPTION
OUTPUT
ROUTINES
CUSTOMISATION
GENERATING TESTS FROM A TABLE
TODO
RELATED WORK
COPYRIGHT
| runtests.bat |
| runtests.sh |
| runtests.tcl |
| ftnunitgui.tcl |
| call runtests( testproc ) |
| call runtests_init |
| call runtests_final( stop ) |
| call test( proc, text, ignore ) |
| call assert_true( cond, text ) |
| call assert_false( cond, text ) |
| call assert_equal( value1, value2, text ) |
| call assert_comparable( value1, value2, margin, text ) |
| call assert_inbetween( value, vmin, vmax, text ) |
| call assert_files_comparable( filename1, filename2, margin, text ) |
| exists = ftnunit_file_exists( filename ) |
| call ftnunit_get_lun( lun ) |
| call ftnunit_remove_file( filename ) |
| call ftnunit_make_empty_file( filename ) |
| cmd call ftnunit_hook_test_start( text ) |
| cmd call ftnunit_hook_test_stop( text ) |
| call ftnunit_hook_test_failure( text, assert_text, failure_text ) |
| call ftnunit_hook_test_complete |
|
JUnit is a well-known facility for defining and running unit
tests in Java programs. The ftnunit framework was inspired by
that facility. It is not as good-looking as JUnit, by no means:
-
It has a simple graphical user-interface that does not group the tests.
-
As Fortran does not allow introspection, the test routines can not
be detected automatically, instead as a programmer you need to set up a
high-level routine yourself that collects all the unit tests.
-
A runtime error, like division by zero, may lead to a termination of
the program. There is no (portable) way to catch these. Instead, the
framework relies on a batch file or shell script to repeatedly start the
program until all tests are run.
Despite these limitations, ftnunit can be a great help:
-
The Tcl program gentabletest.tcl generates a complete test program based
on a simple input file (see GENERATING TESTS FROM A TABLE).
-
The code to test the various components (subroutines, functions, tasks
consisting of several program units) can be combined with the program
itself, without interfering with the ordinary code.
This is achieved by defining a single routine (test_all, say) that runs
all the unit tests and that is called via the provided routine
runtests:
| |
program myprog
...
!
! The routine runtests will check if unit tests are requested
! If not, it will return immediately. This way we make sure
! the unit tests remain part of the program.
!
! The routine test_all runs all unit tests
! (see the dataproc_testing module)
!
call runtests( test_all )
!
! Ordinary processing
!
...
end program
|
The routine runtests checks if there is a file "ftnunit.run". If there is
such a file, it will run the given subroutine. Otherwise it will return
and the rest of the program is executed.
-
Because the test code is incorporated in the program itself, it is less
likely that they evolve independently: changes in the argument lists of
the subroutines and functions may lead to compile errors in the test
code.
-
There is no need to set up a whole new program for testing portions of
the program.
The source file "test_ftnunit.f90" illustrates how to use the ftnunit
framework:
-
The main program calls the routine "runtests" and passes it the argument
"test_all", a routine defined in a module called "dataproc_testing".
-
The routine "test_all" consists of nothing but calls to the generic
routine "test":
| |
subroutine test_all
call test( test_no_file, "Read non-existent file" )
call test( test_empty_file, "Read an empty file" )
call test( test_invalid_file, "Read an invalid file" )
call test( test_ordinary_file, "Read an ordinary file" )
end subroutine test_all
|
-
The module includes a source file "ftnunit_test.f90". This is a remnant
of a previous version. Please ignore this.
-
The generic routine "test" checks whether a particular unit
test needs to be run (via the test number) and then runs the subroutine
that was passed as one of its arguments. One such routine looks like
this:
| |
subroutine test_no_file
integer :: nodata
real :: vmean, vmin, vmax
call ftnunit_remove_file( 'no_such_file' )
call write_name( 'no_such_file' )
call open_files
call process_data( nodata, vmean, vmax, vmin )
call assert_true( nodata == 0, "No data read" )
end subroutine test_no_file
|
The assertion is used to check that the result is as expected.
-
The program contains some deliberate errors and the resulting
log file looks like this:
| |
Test: Read non-existent file
Test: Read an empty file
Test: Read an invalid file
forrtl: severe (59): list-directed I/O syntax error, unit 11, file c:\arjen\flibs\tests\ftnunit\invalid_file
Image PC Routine Line Source
test_ftnunit.exe 004151B9 Unknown Unknown Unknown
test_ftnunit.exe 00415017 Unknown Unknown Unknown
test_ftnunit.exe 004141F4 Unknown Unknown Unknown
test_ftnunit.exe 00414629 Unknown Unknown Unknown
test_ftnunit.exe 00409C05 Unknown Unknown Unknown
test_ftnunit.exe 004095FB Unknown Unknown Unknown
test_ftnunit.exe 0040144B Unknown Unknown Unknown
test_ftnunit.exe 00401FE9 Unknown Unknown Unknown
test_ftnunit.exe 00401A2C Unknown Unknown Unknown
test_ftnunit.exe 00401BB3 Unknown Unknown Unknown
test_ftnunit.exe 0040294A Unknown Unknown Unknown
test_ftnunit.exe 0040232E Unknown Unknown Unknown
test_ftnunit.exe 0044A1E9 Unknown Unknown Unknown
test_ftnunit.exe 00433519 Unknown Unknown Unknown
kernel32.dll 7C816D4F Unknown Unknown Unknown
Incrementally linked image--PC correlation disabled.
Test: Read an ordinary file
Number of failed assertions: 0
Number of runs needed to complete the tests: 3
|
The program is run via one of the following files:
- runtests.bat
-
A batch file for use under MS Windows
- runtests.sh
-
A Bourne shell script for use under UNIX/Linux or similar systems, like
Cygwin or Mingw.
- runtests.tcl
-
A Tcl program that presents a simple graphical user-interface
- ftnunitgui.tcl
-
A Tcl-based graphical user-interface that allows you to run tests one at a time
When you run a program in test mode via the batch file/shell script,
it produces two output files:
-
runtests.log contains all the output that was written to the screen.
-
ftnunit.html is an HTML file with a summary of the tests and a colour
encoding to indicate the test cases that succeeded or failed.
The module ftnunit contains the following subroutines and functions:
- call runtests( testproc )
-
Routine to start the unit tests. It checks if the file "ftnunit.run"
exists. If so, it will call the subroutine testproc that was
passed. Otherwise it will simply return, so that the ordinary program
execution may continue.
If the subroutine testproc returns, the program stops, unless you have
called the subroutine runtests_init before runtests.
- subroutine testproc
-
Subroutine that calls the individual test routines. It takes no
arguments. It wil generally exist of a series of calls to the
routine test - see below.
- call runtests_init
-
Routine to initialise the ftnunit system, so that you call runtests
more than once. To complete the tests, call runtests_final, as
this will print the final statistics and stop the program.
- call runtests_final( stop )
-
Routine to finalise the ftnunit system: it will print the final statistics
and stop the program, but only if the file "ftnunit.run" is present.
- logical, optional, intent(in) stop
-
If present and set to true, the routine will not stop the program.
Instead it returns and the program continues working.
- call test( proc, text, ignore )
-
Routine to run the individual unit test routine (emph proc). It decides
if the test has not run yet and if so, the test routine is called.
Otherwise it is skipped.
test takes care of all administrative details.
- subroutine proc
-
Subroutine that implements an individual unit test. It takes no
arguments. Within each such subroutine the complete unit test is run.
- character(len=*), intent(in) text
-
Text describing the particular unit test. It is printed in the log
file.
- logical, optional, intent(in) ignore
-
If present and set to true, the test routine will not be actually run.
Instead it is shown as "ignored". This feature is useful if the code to
be tested is not yet ready for testing.
file.
- call assert_true( cond, text )
-
Routine to check that a condition is true. If not, a message is printed
in the log file and the number of failures is increased.
- logical cond
-
The condition to be checked
- character(len=*), intent(in) text
-
Text describing the condition
- call assert_false( cond, text )
-
Routine to check that a condition is false. If not, a message is
printed in the log file and the number of failures is increased.
- logical cond
-
The condition to be checked
- character(len=*), intent(in) text
-
Text describing the condition
- call assert_equal( value1, value2, text )
-
Routine to check that two logicals, two strings, or two integers are equal
or if two one-dimensional integer, logical or string arrays are equal. If not, a message is
printed, along with the values that were different.
- <type> value1
-
The first integer/logical/string value
- <type> value2
-
The second integer/logical/string value
- character(len=*), intent(in) text
-
Text describing the condition
Or:
- integer [, dimension(:)] value1
-
The first integer value or array
- integer [, dimension(:)] value2
-
The second integer value or array
- character(len=*), intent(in) text
-
Text describing the condition
- call assert_comparable( value1, value2, margin, text )
-
Routine to check that two reals are almost equal or if two one-dimensional
real arrays (single or double precision) are almost equal. If not, a message
is printed, along with the values that were different.
The margin is taken as a relative tolerance. Two values are
considered almost equal if:
| | abs( v1 - v2 ) < margin * (abs(v1)+abs(v2)) / 2 |
- real [, dimension(:)] value1
-
The first real value or array
- real [, dimension(:)] value2
-
The second real value or array
- character(len=*), intent(in) text
-
Text describing the condition
- call assert_inbetween( value, vmin, vmax, text )
-
Routine to check that a (single or double precision) real value lies between
two given bounds. This establishes an absolute range for the values, rather than
a relative.
- real value
-
The real value to be tested
- real vmin
-
The minimum value that is allowed
- real vmax
-
The maximum value that is allowed
- call assert_files_comparable( filename1, filename2, margin, text )
-
Routine to check that two files are equal or almost equal. The files are scanned
line by line and item by item. If an item can be interpreted as a number, then
the comparison is done using a margin, otherwise the corresponding items are
considered strings and should be exactly equal.
A report is produced of all differing lines.
The margin is taken as a relative tolerance. Two numerical values are
considered almost equal if:
| |
abs( v1 - v2 ) < margin * (abs(v1)+abs(v2)) / 2 |
- character(len=*) filename1
-
The name of the first file to read
- character(len=*) filename2
-
The name of the second file to read
- character(len=*), intent(in) text
-
Text describing the condition
- exists = ftnunit_file_exists( filename )
-
Logical function to check that a particular file exists
- character(len=*), intent(in) filename
-
Name of the file to be checked
- call ftnunit_get_lun( lun )
-
Subroutine to get a free LU-number
- integer, intent(out) lun
-
Next free LU-number
- call ftnunit_remove_file( filename )
-
Subroutine to remove (delete) a file
- character(len=*), intent(in) filename
-
Name of the file to be removed
- call ftnunit_make_empty_file( filename )
-
Subroutine to make a new, empty file
- character(len=*), intent(in) filename
-
Name of the file to be created
The module ftnunit_hooks can be used to customise the output
of ftnunit to a certain extent. It provides four routines
that you can easily adapt to your needs:
- cmd call ftnunit_hook_test_start( text )
-
]
Routine to signal the start of a test.
- string text
-
The descriptive text passed to the routine test.
- cmd call ftnunit_hook_test_stop( text )
-
]
Routine to signal the end of a test.
- string text
-
The descriptive text passed to the routine test.
- call ftnunit_hook_test_failure( text, assert_text, failure_text )
-
Routine to signal that an assertion has failed (and therefore the test).
- string text
-
The descriptive text passed to the routine test.
- string assert_text
-
Text describing the assertion
- string failure_text
-
The text describing the reason of the failure
- call ftnunit_hook_test_complete
-
Routine called after the tests have been run (for instance to start and
Internet browser to view the HTML report).
Note that the default implementation consists of empty routine.
As an example of customisation, under Windows, you could start the
default Internet browser showing the HTML file like this:
subroutine ftnunit_hook_test_complete
call system( "ftnunit.html" )
end subroutine ftnunit_hook_test_complete
provided an association for files with extension "html" exists.
The Tcl program "gentabletest.tcl" reads the test specifications from an
input file and generates a complete Fortran program. The ideas from
Bil Kleb's "Toward Scientific Numerical Modeling"
ftp://ftp.rta.nato.int/PubFullText/RTO/MP/RTO-MP-AVT-147/RTO-MP-AVT-147-P-17-Kleb.pdf
were used for the set-up.
To do: provide a detailed description. For the moment: see example.tbl, including below.
| |
! Example of generating test code via a table
! -------------------------------------------
! The routine to be tested determines the minimum oxygen concentration
! in a river, based on the Streeter-Phelps model:
!
! dBOD/dt = -k * BOD
!
! dO2/dt = -k * BOD + ka * (O2sat-O2) / H
!
! where
! BOD - biological oxygen demand (mg O2/l)
! O2 - oxygen concentration (mg O2/l)
! O2sat - saturation concentration of oxygen (mg O2/l)
! k - decay rate of BOD (1/day)
! ka - reareation rate of oxygen (m/day)
! H - depth of the river
!
! We need boundary (initial) conditions for BOD and oxygen and
! the equations describe the concentrations of BOD and oxygen in a
! packet of water as it flows along the river.
!
! Note:
! It is a very simple model, it is not meant as a realistic
! representation.
!
! The routine simply continues the solution until a minimum is found.
! The results are: oxymin and time
!
!
! The keyword DECLARATIONS introduces the declarations we need for the
! complete generated code
!
DECLARATIONS
use streeter_phelps
real :: bod, oxy
real :: k, ka, h, oxysat, dt, oxymin, time
!
! The keyword CODE introduces the code fragment required to run the
! routine or routines. The results and possible checking of error
! conditions are separated.
!
CODE
call compute_min_oxygen( bod, oxy, k, ka, h, oxysat, dt, oxymin, time )
!
! The keyword RESULT indicates which arguments/variables hold the
! interesting results. Specify one name per line (you can not currently
! use array elements) and the allowed margin (taken as absolute, if
! followed by "%" as a percentage)
!
RESULT
oxymin 0.001 ! Minimum oxygen concentration
time 0.01% ! Time the minimum is reached
!
! The keyword ERROR is used for a code fragment that checks if the
! routine has correctly found an error in the input (that is, some
! parameter value is out of range). The code is invoked when any of
! result variables in a table entry has the keyword ERROR instead of
! a proper value.
! Use the subroutine "error" to indicate the correctly reported error
! condition.
!
ERROR
if ( time == -999.0 ) then
call error
endif
!
! The keyword RANGES specifies that the variables are to be taken
! from a uniform or a normal distribution. The generated program will
! simply select values at random and run the code with them. The report
! consists of the detailed output as well as a summary.
!
RANGES
oxy 10.0 2.0 Uniform ! Name of the variable, the mean and the margin (uniform)
! Normal: mean and standard deviation followed by Normal
! Note: all parameters must be given!
!
! The keyword TABLE indicates the beginning of a table of input data and
! expected values. The first (non-comment) line contains the names of
! the variables as used in the code fragments and all others are the
! values expected.
!
! There are two special values:
! ? - indicating an unknown value for result variables and a "do not
! care" value for input variables
! It is useful to generate a table that does contain the (computed)
! results (see the file table.out) or to indicate situations
! where one or more input variables are out of range and this
! should lead to an error
! ERROR - indicating that the entry should cause the routine to be
! tested to flag an error condition.
!
TABLE
dt oxy bod oxysat h k ka oxymin time
0.1 10 1 10 10 0.1 1.0 10.0 2.0
1.0 10 1 10 10 0.1 1.0 ? ?
!
! This case is unacceptable: time step must be positive
0.0 ? ? ? ? ? ? ? ERROR
1.0 0. 10 10 10 0.1 1.0 ? ?
|
The following things are still left to do:
-
Proper inclusion of the routine prolog and epilog
-
Extension of the set of assertion routines
There are at least two similar initiatives with regard to a unit testing
framework for Fortran:
(Note: To avoid confusion, I have renamed my original module "funit" to
ftnunit)
Copyright © 2009 Arjen Markus <arjenmarkus@sourceforge.net>


Candy danish chupa chups soufflé jelly. Cupcake macaroon cupcake pastry cake tiramisu tiramisu gingerbread oat cake. Sugar plum marshmallow jelly-o. Jelly-o halvah icing jujubes bear claw caramels sweet muffin tart. Pastry chocolate cake chocolate sugar plum jelly-o gummies cake icing sweet roll.


Toggle navigation
Ledger
ata
Refiner
DASHBOARD
OVERVIEW
BLOCKS
TRANSACTIONS
HISTORY
ADVANCED QUERY
Chaincode
Document Schemas
SELECTIONS
CONDITIONS
AS
×
=
>=
>
<
<=
!=
LIKE
×
Reset
Search
×
Advance Query Details
Block Number
Tx Number
Tx Hash
Chaincode Name
Tx Type
Create MSP
Endorser MSP
Doc Key
Doc Content
Is Delete
Create Time


val canceledAt: Long
Populated when status is canceled, this is the time at which the PaymentIntent was canceled. Measured in seconds since the Unix epoch. If unavailable, will return 0.
status
canceled


| # |
タイトル |
アーティスト |
時間 |
サイズ |
| 01 |
The Robots |
Kraftwerk |
06:09 |
33.43 MB |
| 02 |
Hey Boy Hey Girl |
The Chemical Brothers |
04:48 |
31.22 MB |
| 03 |
Silver Screen (Shower Scene) |
Felix Da Housecat |
04:41 |
30.93 MB |
| 04 |
Go |
Moby |
06:30 |
43.69 MB |
| 05 |
Da Funk |
Daft Punk |
03:47 |
25.12 MB |
| 06 |
Play The Game |
Kenny Hawkes & Louise Carver |
03:59 |
28.12 MB |
| 07 |
Sing It Back |
Moloko |
04:37 |
31.81 MB |
| 08 |
Good Life |
Inner City |
03:46 |
26.93 MB |
| 09 |
La La Land |
Green Velvet |
03:21 |
21.37 MB |
| 10 |
No Good (Start The Dance) |
The Prodigy |
06:16 |
46.84 MB |
| 11 |
Open Sesame |
Leila K |
03:24 |
25.31 MB |
| 12 |
Where's Your Head At |
Basement Jaxx |
04:42 |
32.88 MB |
| 13 |
Superstylin' |
Groove Armada |
06:00 |
37.18 MB |
| 14 |
The Man With The Red Face |
Laurent Garnier |
09:08 |
60.52 MB |
| 15 |
Clubbed To Death (Kurayamino Mix) |
Rob D |
07:26 |
43.45 MB |
| 01 |
Release The Pressure |
Leftfield |
07:37 |
43.80 MB |
| 02 |
Strings Of Life |
Rhythim Is Rhythim |
07:17 |
48.48 MB |
| 03 |
The Tape |
Frank De Wulf |
04:03 |
27.36 MB |
| 04 |
Your Love |
Frankie Knuckles Feat. Jamie Principle |
06:43 |
45.93 MB |
| 05 |
Lovelee Dae |
Blaze |
03:32 |
23.76 MB |
| 06 |
Rock To The Beat |
Reese & Santonio |
04:09 |
29.51 MB |
| 07 |
Take Me Baby |
Jimi Tenor |
03:35 |
22.80 MB |
| 08 |
Age Of Love (Jam & Spoon Watch Out For Stella Mix) |
Age Of Love |
05:23 |
36.08 MB |
| 09 |
Jesus Loves The Acid |
Ecstasy Club |
06:11 |
40.14 MB |
| 10 |
Emerge |
Fischerspooner |
04:45 |
27.53 MB |
| 11 |
Moskow Diskow |
Telex |
04:57 |
33.61 MB |
| 12 |
Born Slippy |
Underworld |
03:43 |
26.47 MB |
| 13 |
La Rock 01 |
Vitalic |
05:25 |
36.74 MB |
| 14 |
Windowlicker |
Aphex Twin |
06:06 |
40.36 MB |
| 01 |
Unfinished Sympathy |
Massive Attack |
05:10 |
34.16 MB |
| 02 |
Little Fluffy Clouds |
The Orb |
04:02 |
24.00 MB |
| 03 |
Rose Rouge |
St Germain |
06:55 |
46.78 MB |
| 04 |
Killer |
Adamski |
05:30 |
34.82 MB |
| 05 |
I Feel Love |
Donna Summer |
08:06 |
49.60 MB |
| 06 |
Acid Phase |
Emmanuel Top |
05:01 |
33.61 MB |
| 07 |
Higher State Of Consciousness |
Wink |
06:43 |
44.45 MB |
| 08 |
Fashion Party |
The Neon Judgement |
05:13 |
34.81 MB |
| 09 |
Sleeper In Metropolis |
Anne Clark |
04:03 |
27.47 MB |
| 10 |
French Kiss |
Lil' Louis |
04:52 |
32.46 MB |
| 11 |
Anasthasia |
T99 |
04:34 |
31.40 MB |
| 12 |
Stakker Humanoid |
Humanoid |
04:54 |
35.26 MB |
| 13 |
The Vamp |
Outlander |
05:06 |
36.76 MB |
| 14 |
Papua New Guinea |
The Future Sound Of London |
04:59 |
31.58 MB |
| 01 |
Blue Monday |
New Order |
07:22 |
47.60 MB |
| 02 |
Groove Is In The Heart |
Deee-Lite |
03:52 |
24.43 MB |
| 03 |
Right Here, Right Now |
Fatboy Slim |
05:54 |
36.13 MB |
| 04 |
Rhythm Is A Dancer |
Snap! |
03:41 |
26.74 MB |
| 05 |
Body Language |
M.A.N.D.Y. Vs. Booka Shade |
07:16 |
43.41 MB |
| 06 |
Voodoo Ray |
A Guy Called Gerald |
04:24 |
31.32 MB |
| 07 |
Sunglasses At Night |
Tiga & Zyntherius |
08:21 |
53.94 MB |
| 08 |
Ibiza |
Amnesia |
05:32 |
36.23 MB |
| 09 |
Kernkraft 400 |
Zombie Nation |
03:26 |
20.61 MB |
| 10 |
The Box |
Orbital |
05:55 |
36.57 MB |
| 11 |
Smack My Bitch Up |
The Prodigy |
05:43 |
39.17 MB |
| 12 |
Rez |
Underworld |
09:56 |
71.77 MB |
| 13 |
The Bells |
Jeff Mills |
04:47 |
30.09 MB |
| 01 |
The Model |
Kraftwerk |
03:38 |
24.93 MB |
| 02 |
The Chase |
Giorgio Moroder |
04:17 |
29.14 MB |
| 03 |
Positive Education |
Slam |
08:34 |
59.97 MB |
| 04 |
You Don't Know Me |
Armand Van Helden |
03:49 |
27.51 MB |
| 05 |
Pump Up The Jam |
Technotronic |
05:13 |
36.62 MB |
| 06 |
Shed My Skin (Pete Heller's Stylus Vocal Mix) |
D*Note |
08:02 |
53.90 MB |
| 07 |
Din Daa Daa |
George Kranz |
06:20 |
45.27 MB |
| 08 |
This Is Acid |
Maurice |
04:36 |
30.90 MB |
| 09 |
The Prophet |
CJ Bolland |
08:39 |
53.29 MB |
| 10 |
Vicious Game |
David Carretta |
06:24 |
37.12 MB |
| 11 |
LFO (The Leeds Warehouse Mix) |
LFO |
05:17 |
33.83 MB |
| 12 |
Timeless Altitude |
Secret Cinema |
06:12 |
41.86 MB |
| 13 |
Sound Of The Big Babou |
Laurent Garnier |
07:19 |
52.44 MB |
| 01 |
Headhunter |
Front 242 |
05:00 |
35.21 MB |
| 02 |
Energy Flash |
Joey Beltram |
05:49 |
41.64 MB |
| 03 |
The House Of God (Italian Mix) |
DHS |
03:43 |
25.11 MB |
| 04 |
You Can't Hide From Your Bud |
DJ Sneak |
05:04 |
26.91 MB |
| 05 |
Sweet Harmony |
Liquid |
03:31 |
24.07 MB |
| 06 |
Inner City Life |
Goldie |
04:07 |
26.44 MB |
| 07 |
Universal Nation |
Push |
10:14 |
61.60 MB |
| 08 |
Southside |
Dave Clarke |
04:32 |
33.09 MB |
| 09 |
Push Push (M.A.N.D.Y.'s Pusher Remix) |
Rockers Hi-Fi |
06:49 |
40.35 MB |
| 10 |
Baby Wants To Ride |
Frankie Knuckles Feat. Jamie Principle |
05:54 |
38.08 MB |
| 11 |
Quadrophonia |
Quadrophonia |
03:18 |
22.18 MB |
| 12 |
Bonzai Channel One |
Thunderball |
04:12 |
29.05 MB |
| 13 |
Acid Eiffel |
Choice |
13:33 |
93.88 MB |
| 01 |
You Gonna Want Me |
Tiga |
03:56 |
27.57 MB |
| 02 |
Show Me Love (Stone's Club Mix) |
Robin S. |
06:56 |
47.28 MB |
| 03 |
Theme From Discotheque |
Samantha Fu |
04:46 |
29.22 MB |
| 04 |
Feeling So Real |
Moby |
04:31 |
33.07 MB |
| 05 |
Insomnia (Monster Mix) |
Faithless |
08:19 |
58.47 MB |
| 06 |
Mary Go Wild! |
Grooveyard |
04:50 |
34.83 MB |
| 07 |
Dominator |
Human Resource |
04:55 |
39.25 MB |
| 08 |
Super Sharp Shooter |
The Ganja Kru |
04:19 |
26.94 MB |
| 09 |
Dirty Cash (Money Talks) (12 Inch Sold Out Mix) |
Adventures Of Stevie V. |
07:18 |
51.94 MB |
| 10 |
Flash |
Green Velvet |
07:11 |
46.11 MB |
| 11 |
Bostich |
Yello |
04:32 |
32.64 MB |
| 12 |
TV Treated |
The Neon Judgement |
06:28 |
43.81 MB |
| 13 |
Love Story |
Layo & Bushwacka! |
05:51 |
38.41 MB |
| 14 |
Pacific 202 |
808 State |
05:33 |
39.36 MB |
| 01 |
Pull Up To The Bumper |
Grace Jones |
04:40 |
33.23 MB |
| 02 |
Can You Feel It |
Todd Terry Presents CLS |
04:42 |
27.46 MB |
| 03 |
God Made Me Phunky |
The MD X-Spress |
06:13 |
40.18 MB |
| 04 |
Heartbeats (Rex The Dog Remix) |
The Knife |
05:59 |
37.34 MB |
| 05 |
No Shuffle |
Front 242 |
03:46 |
25.86 MB |
| 06 |
Atomic Slide |
Fierce Ruling Diva |
04:02 |
27.57 MB |
| 07 |
20Hz |
Capricorn |
06:43 |
44.98 MB |
| 08 |
LK |
DJ Marky & XRS Feat. Stamina MC |
05:23 |
36.50 MB |
| 09 |
Out Of Space |
The Prodigy |
04:58 |
34.91 MB |
| 10 |
The Sound Of C |
Confetti's |
03:33 |
23.89 MB |
| 11 |
Flat Beat |
Mr. Oizo |
05:22 |
31.90 MB |
| 12 |
Don't Stop... Planet Rock |
Afrika Bambaataa & The Soulsonic Force |
06:22 |
42.33 MB |
| 13 |
Spastik |
Plastikman |
09:07 |
61.35 MB |
| 14 |
Frequency |
Altern 8 |
05:29 |
29.72 MB |
| 01 |
Zdarlight |
Digitalism |
05:18 |
34.30 MB |
| 02 |
Don't You Want Me |
Felix |
03:08 |
22.13 MB |
| 03 |
Acid Story |
Dr. Phibes |
04:32 |
28.03 MB |
| 04 |
Supernature |
Cerrone |
08:07 |
58.74 MB |
| 05 |
Lovely Flight |
Didier Sinclair |
06:29 |
42.96 MB |
| 06 |
Brown Paper Bag |
Roni Size / Reprazent |
03:50 |
25.56 MB |
| 07 |
Amphetamine |
Drax Ltd. II |
03:33 |
25.60 MB |
| 08 |
Silence (Original Fade Sanctuary Remix) |
Delerium Feat. Sarah McLachlan |
11:06 |
69.49 MB |
| 09 |
Clear |
Cybotron |
04:53 |
32.96 MB |
| 10 |
Yo Yo Get Funky |
Fast Eddie |
05:06 |
38.48 MB |
| 11 |
My Red Hot Car |
Squarepusher |
04:32 |
29.57 MB |
| 12 |
Euroshima (Wardance) |
Snowy Red |
04:14 |
30.85 MB |
| 13 |
Dark & Long (Dark Train) |
Underworld |
10:52 |
74.50 MB |
| 01 |
God Is A DJ |
Faithless |
06:51 |
46.11 MB |
| 02 |
Big Fun |
Inner City |
03:17 |
18.60 MB |
| 03 |
Housewife |
Daan |
06:09 |
40.42 MB |
| 04 |
Moan (Trentemøller Remix) |
Trentemøller Feat. Ane Trolle |
03:28 |
21.67 MB |
| 05 |
Feel What You Want |
Kristine W |
04:11 |
26.55 MB |
| 06 |
Crispy Bacon |
Laurent Garnier |
05:41 |
35.72 MB |
| 07 |
King Of The Beats |
Aphrodite |
06:48 |
43.58 MB |
| 08 |
NY Lipps |
Soulwax |
03:42 |
28.24 MB |
| 09 |
Knobbers |
Crookers |
03:46 |
28.82 MB |
| 10 |
Take A Walk (Dima Neo-Romantic Remix) |
Bolz Bolz |
04:10 |
26.65 MB |
| 11 |
You Make Me Feel (Mighty Real) |
Sylvester |
06:14 |
47.82 MB |
| 12 |
Morumbi |
Tocadisco |
05:41 |
39.84 MB |
| 13 |
The First Rebirth |
Jones & Stephenson |
06:03 |
41.85 MB |
| 01 |
Sky And Sand |
Paul Kalkbrenner & Fritz Kalkbrenner |
03:51 |
17.37 MB |
| 02 |
Lifetimes |
Slam Feat. Tyrone Palmer |
08:10 |
55.51 MB |
| 03 |
Witch Doktor |
Armand Van Helden |
03:23 |
21.22 MB |
| 04 |
Original Nuttah |
UK Apachi With Shy FX |
03:59 |
24.06 MB |
| 05 |
Where Were You When The Lights Went Out? |
Freaks |
03:58 |
26.18 MB |
| 06 |
Love Can't Turn Around |
Farley "Jackmaster" Funk & Jesse Saunders |
05:39 |
41.95 MB |
| 07 |
Prix Choc |
Etienne De Crécy |
08:40 |
63.39 MB |
| 08 |
Disco Volante (Sébastien Léger Remix) |
Ida Engberg |
03:42 |
23.08 MB |
| 09 |
Café Del Mar (Three 'N One Remix) |
Energy 52 |
08:43 |
55.75 MB |
| 10 |
Raven |
Proxy |
05:23 |
30.79 MB |
| 11 |
Voodoo People (Pendulum Remix) |
The Prodigy |
05:06 |
37.85 MB |
| 12 |
Our Darkness |
Anne Clark |
05:19 |
35.37 MB |
| 13 |
Wisdom To The Wise |
Dave Clarke |
06:08 |
38.81 MB |
| 14 |
Les Djinns (Trentemøller Remix) |
Djuma Soundsystem |
06:16 |
32.71 MB |
| 01 |
Gypsy Woman (La Da Dee La Da Da) |
Crystal Waters |
07:29 |
45.46 MB |
| 02 |
D.A.N.C.E. |
Justice |
04:03 |
31.45 MB |
| 03 |
The Basement Track |
High Contrast |
06:47 |
44.97 MB |
| 04 |
Pullover |
Speedy J |
03:57 |
25.13 MB |
| 05 |
Bonkers |
Dizzee Rascal & Armand Van Helden |
02:55 |
21.81 MB |
| 06 |
Traffic |
Tiësto |
05:24 |
36.79 MB |
| 07 |
Frank Sinatra |
Miss Kittin & The Hacker |
03:52 |
22.33 MB |
| 08 |
Domino |
Oxia |
06:33 |
47.74 MB |
| 09 |
Blackwater |
Octave One Feat. Ann Saunderson |
07:24 |
50.86 MB |
| 10 |
I Feel For You |
Bob Sinclar |
03:13 |
25.59 MB |
| 11 |
Warp 1.9 |
The Bloody Beetroots Feat. Steve Aoki |
03:18 |
23.43 MB |
| 12 |
Kiss My Trance |
The Subs |
06:43 |
42.69 MB |
| 13 |
Three O' Three |
Public Energy |
05:02 |
32.93 MB |
| 14 |
Back Home |
Anthony Rother |
07:26 |
45.51 MB |
| 01 |
Jaguar |
DJ Rolando Aka The Aztec Mystic |
06:35 |
43.36 MB |
| 02 |
Synrise |
Goose |
05:31 |
36.45 MB |
| 03 |
Firestarter |
The Prodigy |
03:45 |
26.74 MB |
| 04 |
Heads Will Roll (A-Trak Remix) |
Yeah Yeah Yeahs |
03:22 |
22.74 MB |
| 05 |
Salva Mea |
Faithless |
11:48 |
80.66 MB |
| 06 |
Plastic Dreams |
Jaydee |
03:05 |
21.85 MB |
| 07 |
Kids (Soulwax Mix) |
MGMT |
05:27 |
43.54 MB |
| 08 |
Come Alive |
Netsky |
04:08 |
32.95 MB |
| 09 |
Move Your Body |
Marshall Jefferson |
04:15 |
27.50 MB |
| 10 |
Open Your Eyes |
At The Villa People |
07:18 |
52.75 MB |
| 11 |
Rechoque |
Shameboy |
04:19 |
28.69 MB |
| 12 |
Pon De Floor |
Major Lazer Feat. Afrojack & Vybz Kartel |
03:33 |
22.92 MB |
| 13 |
Hey Hey |
Dennis Ferrer |
03:30 |
23.38 MB |
| 14 |
Mentasm |
Second Phase |
04:23 |
31.50 MB |
| 15 |
Hymn (European Mix) |
Moby |
05:18 |
36.37 MB |
| 01 |
Levels |
Avicii |
03:17 |
24.13 MB |
| 02 |
Sinnerman (Felix Da Housecat's Heavenly House Mix) |
Nina Simone |
04:34 |
27.06 MB |
| 03 |
In White Rooms |
Booka Shade |
06:34 |
40.19 MB |
| 04 |
Afro Left |
Leftfield |
07:32 |
47.24 MB |
| 05 |
Rock The Funky Beat |
Natural Born Chillers |
03:42 |
24.35 MB |
| 06 |
The Funk Phenomena |
Armand Van Helden |
03:48 |
23.05 MB |
| 07 |
Washing Up (Tiga Remix) |
Tomas Andersson |
05:31 |
36.02 MB |
| 08 |
Greece 2000 |
Three Drives On A Vinyl |
03:55 |
29.13 MB |
| 09 |
World Of Deep |
E-Dancer |
05:27 |
36.34 MB |
| 10 |
Oh! (A-Trak Remix) |
Boys Noize |
04:25 |
30.44 MB |
| 11 |
Sunday Shoutin' |
Johnny Corporate |
03:06 |
20.54 MB |
| 12 |
Let's Start The Dance |
Hamilton Bohannon |
04:43 |
35.87 MB |
| 13 |
What Else Is There? (Trentemøller Remix) |
Röyksopp |
06:57 |
43.03 MB |
| 14 |
Poney Part I |
Vitalic |
05:22 |
35.02 MB |
| 15 |
Everyday (Netsky Remix) |
Rusko |
04:07 |
31.70 MB |
| 16 |
Swimming Places |
Julien Jabre |
06:29 |
47.89 MB |
| 01 |
Swedish Designer Drugs |
Daan |
04:35 |
32.17 MB |
| 02 |
Red Alert |
Basement Jaxx |
04:18 |
28.90 MB |
| 03 |
Italian Fireflies |
Black Strobe |
04:00 |
26.58 MB |
| 04 |
Camargue |
CJ Bolland |
06:17 |
42.37 MB |
| 05 |
Music Is The Answer (Dancin' & Prancin') |
Danny Tenaglia Feat. Celeda |
09:08 |
58.82 MB |
| 06 |
Coloured City |
Laurent Garnier |
06:08 |
39.99 MB |
| 07 |
Los Niños Del Parque |
Liaisons Dangereuses |
05:01 |
32.66 MB |
| 08 |
Satisfaction |
Benny Benassi Presents The Biz |
04:07 |
26.69 MB |
| 09 |
Incident |
Joris Voorn |
06:12 |
42.56 MB |
| 10 |
Fast Track |
Etienne De Crécy |
07:31 |
51.74 MB |
| 11 |
Freak |
LFO |
05:02 |
34.12 MB |
| 12 |
Blood Sugar |
Pendulum |
05:13 |
39.15 MB |
| 13 |
Follow Me! |
Jam & Spoon |
12:26 |
92.03 MB |


Regression subset selection, including exhaustive search.
| Version: | 3.0 |
| Suggests: | biglm |
| Published: | 2017-01-10 |
| Author: | Thomas Lumley based on Fortran code by Alan Miller |
| Maintainer: | Thomas Lumley <t.lumley at auckland.ac.nz> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | yes |
| Materials: | README NEWS |
| In views: | ChemPhys, SocialSciences |
| CRAN checks: | leaps results |
| Reference manual: | leaps.pdf |
| Package source: | leaps_3.0.tar.gz |
| Windows binaries: | r-devel: leaps_3.0.zip, r-release: leaps_3.0.zip, r-oldrel: leaps_3.0.zip |
| OS X binaries: | r-release: leaps_3.0.tgz, r-oldrel: leaps_3.0.tgz |
| Old sources: | leaps archive |
| Reverse depends: | ALSM, BACprior, BCEE, bestglm, BMA, DEMOVA, FitAR, Kpart, MAR1, pampe, R330, reams, regclass, speff2trial |
| Reverse imports: | cNORM, ERSA, FactoMineR, FitAR, HH, lessR, meifly, mixlm, mplot, TSA |
| Reverse suggests: | car, ChemometricsWithR, DAAG, ElemStatLearn, fscaret, gamclass, glmulti, Rcmdr, RcmdrPlugin.NMBU, SenSrivastava, Sleuth2, Sleuth3, STPGA |
| Reverse enhances: | biglm, biglmm |
Please use the canonical form https://CRAN.R-project.org/package=leaps to link to this page.


{% extends 'base.html' %} {% block main %}
Shop your favourite Video-Games collection
Be up to the mark
Be gorgeous all the time
Shop your favourite branded accessory


Really interesting page
You will not many fascinating details as we explore the depth of this article and fully appreciate every faint trace of respectable knowledge in this otherwise, simple and vague text.
Really interesting page
You will not many fascinating details as we explore the depth of this article and fully appreciate every faint trace of respectable knowledge in this otherwise, simple and vague text.


The goal of wfutemplates
is to codify some commonly used templates at WFU and make report generation easier while adhering to a common visual identity. This package is largely inspired by the memor
package with slowly evolving tweaks.
This package has a lot of the Wake Forest University logos.
Additionally, there are some WFU color pallettes that are now available to be used with ggplot2
.
library(wfutemplates)
library(ggplot2)
ggplot(iris, aes(Sepal.Length,Sepal.Width, color = Species))+
geom_point()+
scale_color_wake()
You can also add a watermark.
Additionally, this package also has a project template that builds the scaffolfing for a course website. The theme is inspired by Steven V. Miller and modified to fit the Wake Forest colour scheme. An early implementation of this project template can be seen here. To get the site up and running just modify the _site.yml
file with your personal information
name: "Introduction to R"
output_dir: "docs"
navbar:
title: "Data Analysis in R"
right:
- text: "Syllabus"
icon: fa-handshake
href: syllabus.html
- text: "Lectures"
icon: fa-book
href: lectures.html
- text: "Exercises"
icon: fa-paper-plane
href: exercises.html
- text: "Resources"
icon: fa-hand-paper
href: resources.html
- text: "Home"
icon: fa-folder
href: https://michaeldewittjr.com
base_url: https://github.com/medewitt/introduction_to_r/
output:
html_document:
theme: cosmo
highlight: textmate
css: style.css
df_print: paged
toc: true
toc_float: yes
bibliography: library.bib
biblio-style: apalike
include:
after_body: footer.html
in_header: GA.html
instructor: "Michael DeWitt"
address1: "Office of Institutional Research"
address2: "309 Reynolda Hall"
address3: "Winston- Salem, NC, 27106"
github: "medewitt"
email: "dewittme.wfu.edu"
GA: "GA Code"
You can install the released version of wfutemplates from github with:
Please note that the ‘wfutemplates’ project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.


{% extends 'basics/base.html' %} {% load filter %} {% block content %}
If you leave this group, you will not be able to become a member unless you are invited again!
Would you like to rethink your decision?
Organisation:
{{group.name}}
Homepage:
Email:
{{group.email}}
{% else %} {% endif %}Phone Number:
{{group.phone}}
{% else %} {% endif %}Description:
Description:
{{group.description | linebreaks }}
Location of Head Office:
Location of Head Office:
{{ user.email }}
{{ groups.name }}


Jóvenes en Acción (Youth in Action) brings Mexican high school students on a four-week exchange program to the United States, where they focus on civic education, community service, and youth leadership development. During this time, the program also explores how local communities can address problems related to violence, substance abuse, gangs, bullying, or social disengagement.
From public schools all over Mexico, young people are selected in teams of three to five to work on a project within the larger theme of "culture of lawfulness."
To learn more, press the right arrow key on your keyboard.
Internet Explorer is not supported at this time. Please view this presentation in a different browser.
During their four-week exchange in the United States, the Jóvenes stay with host families across the country, where they get an immersive look at American culture. During their stay at the SIT campus in Brattleboro, Vermont, participants engage in a range of activities – from workshops in leadership and service, to interactive training and supplementary English classes. After the four weeks come to a close, the students return to Mexico, where they apply the knowledge and skills they have acquired in the U.S. by planning and carrying out service projects in their home communities.
Judith Ballestros Villascan, Delia Jimenez Ahumada, Amelia Guerrero Perez, and Kassandra Lorena Escalente Diaz are part of the "Make it Happen" group, which focuses on youth leadership and empowerment. From Puebla, Mexico, the four young women have used the training they received during the Jóvenes en Acción program to encourage other student-led groups at their high school. One of the main problems they identified within their community was a lack of engagement from their peers: students have a lot of time on their hands, the “Make it Happen” group said, which can lead students to drinking, drugs, and delinquency.
The "Make it Happen" effect is felt throughout Judith, Delia, Amelia, and Kassandra’s Puebla high school campus. Not only do they carry out their own youth empowerment and leadership training, but they also train and encourage others to start their own campus initiative. On Wednesday afternoons, the four young women support an English conversation club, which was founded by students who attended the “Make it Happen” meetings earlier in the school year. A few months down the line, the English conversation club was formed and, with guidance from “Make it Happen,” now plans its own curriculum and runs its own meetings. Students play vocabulary games and practice their public speaking skills with great enthusiasm.
The 2014 Jóvenes en Acción group gathered in Mexico City from April 16-18 for a reunion conference, held at the Hilton Santa Fe. Since last summer, the Jóvenes students have been actively involved in a service project, each group targeting social issues such as dating violence, school dropouts, drug abuse, and bullying. Over the weekend in April, the high school students met together one last time, to share in their achievements and reflect on their growth over the past year.
Jóvenes en Acción is the result of public-private partnerships. Funders include the Mexican Secretariat of Public Education (Secretaría de Educación Pública), the U.S. Department of State, the U.S. Embassy in Mexico, and private donors like Cisco, Microsoft, Kimberly-Clark, and several Mexican banks.
"Your country is a better place because you are in it," Kirstin French, the World Learning coordinator for the program, told the Jóvenes en Acción group in one of the closing activities. The youth leaders expressed their pride in the success of the individual programs they have implemented in their communities, the personal growth they achieved, and the friends they have gained for life.
The grant to administer Jóvenes en Acción is awarded competitively each year. World Learning has run the program since 2011, in which time we have trained 396 Mexican youth — 247 of them women — from 16 Mexican states.
Follow us on social media:


Just building a company, reading articles about how companies work obviously interest me. They have interested me before actually. So here is an article on InformationWeek entitled Google Revealed: The IT Strategy That Makes It Work that is really interesting.
Google’s programmers are 50% to 100% more productive than their peers at other Web companies, a result of the custom libraries Google developed to support programming of massively parallel systems, Arnold says. He estimates the company’s competitors have to spend four times as much to keep up.
That is the first thing I absolutely see as true. If you have a focus on IT then you will need to make your developers perform well. The thing is that this is not a linear equation. Sometimes developers have to do things that make you slower to make your faster. Our developers just worked on a MVC framework for JavaScript. Just putting JavaScript in the Views of cakePhp would have made us faster in the short run, but in the long run, the new solution is a lot better and already paying off now.
To wring every ounce of performance from its hardware, Google writes custom software–lots of it. Major innovations include MapReduce, a programming model to simplify processing and create large data sets; BigTable, a system for storing and managing massive amounts of data; Sawzall, an interpreted programming language for analyzing large data sets in a distributed computing environment; Google File System, a distributed file system for data-intensive applications; and Google Workqueue, a system that groups queries and schedules them for distributed processing.
Lots of innovation here. The problem is that we are both reading a writing a lot and that’s a different thing that a large read only system. I am not even sure if AdWords runs on the same system or if they need more of a standard database approach there. They probably still figured it out :) Google also has its own Web server that uses a CGI interface for linking in databases, which seems to be faster for them. Makes me think again about lighttpd which looks very promising.
Google also built its own CRM, which I can fully understand based on the CRMs that are out there, but are using Oracle Financials for the financial backend, which again I understand with that kind of stuff being a lot more standard without Google being able to do much about it.
Next interesting things is that Google uses a matrix like management structure with everyone reporting to different people at the same time, which in general is complicated and probably works a lot better for developers than sales people, but which can be made more manageable with technology. Above that, Google engineers switch projects every three months, which again needs a different management system. This is also one of the reasons they make sure that they hire interesting and intelligent people, because they have to get into new products fast.
Lots of small, short-lived projects mean traditional project management software based on task lists isn’t right for Google. For one thing, techies aren’t very good at cataloging how they spend their hours. What they are good at, it turns out, is writing up a few short sentences or snippets about what they do each day. Those get compiled in a database along with periodic updates from project leaders about a team’s deliverables. The project system tags the input by topic and routes to the appropriate people. "This is not hard AI," Merrill says. Still, who else manages workers like this?
I really like that approach because task management isn’t perfect. As soon as your developers understand where you are going and what you are doing and what needs to get done, then the good ones pretty much know themselves what to do. With our agile approach we are at least going as far as not telling everyone what they need to do but just having task lists per sprint and everyone takes what they want to to, being responsibly for achieving sprint goals as a team. The employee review system is actually very 360 degrees, a lot more than with other companies but something you need for their matrix system.
Google employees use Linux, Mac OS, and Windows on desktop computers, depending on their needs and desires. Many use homegrown programs such as Google Desktop, Google Earth, the acquired Writely word processor, and the recently launched Google Spreadsheets. In general, if an employee wants certain software, he or she can request it through the company intranet without jumping through a lot of hoops for approval.
100% agreed. Don’t make somebody use something when they want to use something else. You just loose performance. We now have 2 windows laptops, to mac laptops and one ubuntu laptop here. Who am I to complain. I just need to make sure the internal system work with each of those systems. As the quasi CIO of Google says:
"Most people in my job try to control. ‘Here are the three things you can buy.’" Merrill explains. "I try to control as a little as I possibly can but make it easy to work within parameters that I know how to work with."
And again agreed: The right approach, as Merrill sees it: Talk a lot; use data, not intuition; automate wherever you can. Ok, the intuition part is relative, mainly because since my last MBA course on Creativity, Innovation and Change, I am now 100% sure that intuition coupled with experience means that your full brain capability can make a lot faster and better decisions if you don’t try to put everything in hard numbers.
Then this bit on how they hire:
At Google, however, examples abound, such as the way the company decides on new employees. "No one can hire anyone here," Merrill insists. "Hiring decisions are made by public groups. We all hire everyone."
Again agreed, with that idea actually having come to my mind throughNerd Herding by Cal Evans.
<!– technorati tags start –>
Technorati Tags: Agile, Cal Evans, Developers, Google, Nerd Herding
<!– technorati tags end –>


Plan a trip to the Emerald Isle!
Learn about the intriguing Irish culture and history.
Make sure you check out these top places!
Enjoy!


{% extends "barriers/edit/base.html" %} {% load static %} {% load render_bundle from webpack_loader %} {% block page_title %} {{ block.super }} - Action plan owner{% endblock %} {% block page_content %} {% include 'partials/heading.html' with text='Action plan owner' %}
| Name | Action |
|---|---|
| {{ barrier.action_plan.owner_full_name }} | Remove owner |


--- layout: post title: no title date: '2011-07-26T16:15:44+02:00' tags: - kitchen - bread tumblr_url: http://dotmr.tumblr.com/post/8097404495 ---


There are often times when you might need to use text in your Three.js application. Here's are some options you may consider when you wish to add Text.
Using HTML could simply be the easiest and fastest manner to add text. This is commonly used for descriptive overlays in three.js examples.
You can add content to a

Description

and use css markup to position absolutely at a position above all others with a z-index especially if you are running three.js full screen.
#info {
position: absolute;
top: 10px;
width: 100%;
text-align: center;
z-index: 100;
display:block;
}
Use this method if you wish to draw text easily on a plane in your three.js scene. This technique can be seen utilized in the Civilian Casualties in Afghanistan visualization.
Use this method if you prefer working with your 3d applications and importing the models to three.js
Use this method if you prefer to work purely in three.js or create procedural and dynamic 3d text geometries. However, font data files http://typeface.neocracy.org/fonts.html in the typeface.js format needs to be loaded.
A Text Geometry can then be created with new THREE.TextGeometry( text, parameters );
For examples, see https://github.com/mrdoob/three.js/blob/master/examples/webgl_geometry_text.html, https://github.com/mrdoob/three.js/blob/master/examples/canvas_geometry_text.html and https://github.com/mrdoob/three.js/blob/master/examples/webgl_shadowmap.html
If Typeface is down, or you want to use a font that is not there, there's a tutorial with a python script for blender that allows you to export text to Three.js's JSON format: http://www.jaanga.com/2012/03/blender-to-threejs-create-3d-text-with.html


MIFUNE (Mifunes Sidste Sang)(director/writer: Søren Kragh-Jacobsen; screenwriter: Anders Thomas Jensen; cinematographer: Anthony Dod Mantle; editor: Valdis Oskarsdottir; cast: Anders W. Berthelsen (Kresten), Iben Hjejle (Liva), Jesper Asholt (Rud), Sofie Grabol (Claire), Emil Tarding (Bjarke), Anders Hove (Gerner), Paprika Steen (Pernille), 1999-Denmark)
Reviewed by Dennis Schwartz
This is an authentic "Dogma 95" film, as before the film opens, that assurance comes with a signed guaranteed shown on the screen that it was made according to the rules stipulated by the Danish directors who founded this school of sparse filmmaking -- Lars von Trier and Thomas Vinterberg. The hand-held camera was obvious throughout the film as were the film's lack of special effects, supposedly giving the viewer a chance to discover on their own any beauty worth finding in the film, rather than to be hit over the head with it. Whether adhering to their "Vow of Chastity," of filming only on location and only with natural light, and all the other rules followed, made this a better film, is doubtful. Like all dogmas, they eventually wear out whatever usefulness they might have had in the first place.
Soren Kragh-Jacobsen's "Mifune" is Dogma's third approved project, after Vinterberg's "Celebration" and Von Trier's "Idiots."It is the weakest of the three, but still, it has some punch in a conventional way due to the film's technical clarity. It is a playfully weird telling of a familiar romantic comedy situation, much like a Hollywood formula film. It has a lot of dead spots where it tried comedy and a lot of predictability as far as its romantic situation, but it also had a certain intrinsic beauty about it that kept it afloat and made it seem better than its story was.
It is, nevertheless, a surprisingly conventional work, which makes me wonder about all the fuss this Dogma 95 group go through to give the impression that they are radical filmmakers. A rather trite choice of subject matter for a group that I would have thought to be more politically motivated. What worked well in this film, was that the actors had personality that flashed on the screen, and that there were some breathtaking nature shots of the golden sun going down and of the rich colors of the Danish backwater fields.
The film opens with Kresten (Anders W. Berthelsen) marrying a rich girl, Claire (Sofie Grabol), whose father owns the firm he works in. When the father toasts the couple and wishes them all the best, and Kresten says this marriage will last forever, based on film history, when the star of the film is sitting on top of the world and it seems nothing can go wrong, his fall is inevitable. This film doesn't go against that observation.
Back in their bedroom, we see the couple f*cking and Claire, by her loud screams as she straddles Kresten, seems to be having one of the greatest f*cks ever. The next morning Kresten receives a call on the cell phone he always carries around with him, from Gerner (Anders Hove), a neighbor of his father's, telling him that his father just died. Claire says he didn't tell her he had a father or a brother, and that he was brought up on a farm as a peasant. He tells her he will be back in Coperhagen in a few days, he'll just bury his father and sell some items in the house, as he takes the family BMW and he goes back by himself to bury his father. Now I would have bet anyone in the theater and have given them 10-1 odds, that was the last of the marriage, that's how obvious this plot was.
Kresten returns to his peasant roots in the deteriorating farm he lived in with his cretin brother, his dispirited father who had given up on life, and the memories of his mother who hung herself when he was a youngster. To remedy this untenable situation, since his brother is not mentally capable of taking care of himself and he doesn't want to place him in a mental asylum, he hires a housekeeper, Liva (Iben Hjejle). The housekeeper is real attractive, but she has a secret, just like Kresten. Her secret is that she is a prostitute, not only is she a prostitute, but she fits the movie cliche of the prostitute with the heart of gold. She tells herself she is only a prostitute to support her boarding school brother Bjarke (Emil Tarding), in the hopes he can have a better life than she has.
She has recently received threatening calls from a psychopath, who says he is going to get her. Unduly frightened, as the psychopath gets her number everytime she changes it, she decides to flee from her residing whorehouse and replies to Kresten's ad for a housekeeper.
At this desolate farm, she is cautiously attracted to Kresten and gently handles the strangeness of Rud (Jesper Asholt) with a simple understanding smile. He is the mentally impaired brother, the source of all the comedy that the film proposes to have, who tells her there are aliens around here. Her smile is the pure one, while Claire also smiles, but her's is a selfish one.
To make a long story short, Claire comes barging in at night to the farm, discovers all the lies Kresten told her about being an orphan, and is horrified at what she sees, and thereby decides he is a peasant psychopath. She takes back the BMW, tells him he no longer works for the firm, and he will receive the divorce papers to sign in the morning.
The screw ups, Kresten and Liva, are a perfect match for each other, but a number of misunderstandings must come before them before they can cement their relationship.
The moral of the story is that you can't run away from who you are and true love wins out over a status-symbol marriage. The film got its title, when Kresten dressed up, ever since their childhood, as the Japanese movie star Toshiro Mifune and playfully teased his brother that the seventh samurai warrior lived hidden in the cellar of the house. This Dogma 95 film left me unmoved, though its story was pleasant and well-crafted. It just felt too much like an art-house film designed to please its audience rather than to be provocative.
REVIEWED ON 5/24/2000 GRADE: C+
Dennis Schwartz: "Ozus' World Movie Reviews"
http://www.sover.net/~ozus
<EMAIL_ADDRESS>© ALL RIGHTS RESERVED DENNIS SCHWARTZ
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


A crossed random effects model with 5 levels of crossing |
|
Model descriptionAn example of a model with two crossed random effects is:
y
=
ui + vj + e,
where u and v are the random effects.
Crossed random effects causes problems in many software packages, particularly when there are many levels of crossings.
In ADMB-RE there is no limit to the number of crossed levels you can have (but there is of course an upper
limit to total number of random effects element you can put in).
The current model is a logistic regression with 5 crossed random effects (with 10 levels within each):
u1i1 + u2i2 + u2i2 + u3i3 + u4i4 +
u5i5 ,
There are about 5,000 observations (0's or 1's) for randomly selected combinations of i1,...,i5.
ResultsIt takes about 4 minutes to fit the model. |