---
layout: post
date: 2011-08-17
time: "09:00:00"
authors: ["Greg Wilson"]
title: Demos Reinforce Errors, and Confusion is Good
tags: ["Education"]
---
Mark Guzdial has posted a good summary of this year's ICER keynote by physics education guru Eric Mazur, in which he reported the results of several recent experiments. The most important for us are:
- Giving people a demo of something actually results in them understanding it less well, because they fit what they've seen into their preconceptions (which are then reinforced). Guzdial interprets this to mean that CS educators need to do more live coding.
- Students like teachers who clarify things, but students who are confused are actually more likely to learn and understand.
- Students' self-reported understanding of a topic has no relation to their actual understanding of it (which highlights once again the fact that self-assessment is useless).
There are obvious implications for this course...


var masterDetailTabletInterface: MasterDetailTabletInterface?
interface used for listening to when the view is clicked for navigation or display of detail view


You can use d-pre when you need to tell drapo that the content of that element is already preprocessed. When that attribute is present drapo will not process the element and his content
Syntax:


'G.I. JANE'
Starring: Demi Moore, Anne Bancroft, Viggo Mortensen Director: Ridley Scott
Synopsis: Test case Jordan O'neill (Demi Moore), eyes glaring beneath her military crew cut, must survive rigorous basic training for the US Navy Seals, an elite special forces division because if she makes it, the military might rewrite its guidelines restricting women in the armed forces.  The film consists mostly of training scenes of recruits doing grueling exercise and of course one obligatory ending scene where an emergency forces the recruits to use their skills in real life. Take a guess. Will Demi pass this macho training with flying colors and earn the respect of her seemingly cruel commander so that the credits can roll?
Opinion: Director Ridley Scott, who directed Sigourney Weaver in that Alien movie with the space marines definitely has a flair for creating strong female characters amidst gung ho military boys. If you can stomach watching 40 minutes of pushups and situps and a pre-fab action ending, you'll love this film. If not, you'll probably feel that it was still an okay film, Demi Moore does a great job acting, but they can lop off 20 minutes worth of exercise film no problem. The moral of this movie is: never give up.
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


21 Aug 2015
-
2 mins
GSoC-2015
·
SymEngine
Hey folks! Today my GSoC period has officially ended. It was one of the best experiences I have had in my life. The level of exposure that you get with Google Summer of Code is unmatched. The things I learnt, will always be with me. The people I met will never cease to inspire me. This is the best thing a sophomore can do in his/her summers.
...Read more
18 Aug 2015
-
6 mins
GSoC-2015
·
SymEngine
A symbolic manipulation library is indispensable for scientists and students.  With many efforts like these, Ruby might become the first choice for academicians given how easy it is to code your logic in Ruby.
The motivation for SymEngine itself was to develop it once and then extend it to other languages rather than doing the same thing all over again for a language that it is required in.
I have developed a few notebooks that demonstrate the use of the new SymEngine module in ruby. In the rest of the post, I would like to summarise what I did in the summer as part of Google Summer of Code 2015.
...Read more
15 Aug 2015
-
2 mins
GSoC-2015
·
SymEngine
Hello All! I can say this week was quite productive. Ondrej, my mentor, had suggested me to make a new timeline for the rest of the time, and now I know how useful that turned out to be!
...Read more
10 Aug 2015
-
1 min
GSoC-2015
·
SymEngine
Hey folks! Sorry for the delay. This week on 6th, I got free from the internship selections. Good News is that I got selected at Intuit for Summer 2016! Anyways I did wrap up the PR#487
...Read more
01 Aug 2015
-
2 mins
GSoC-2015
·
SymEngine
Hey there! This week I implemented the suggestions given after the first round of review for PR#487 and I tried to port the test cases in test_arit.py
to arit_spec.rb
. It was worth it! The unit tests that I had written for the individual classes were not enough and didn’t cover every situation where an error might occur.
...Read more


Calculator!
!
First Number Please for Addition:
Second Number Please for Addition:
Add!
First Number Please:
Second Number Please:
Subtract!
First Number Please:
Second Number Please:
Multiply!
First Number Please:
Second Number Please:
Divide!


data class NetworkHostAndPort
Tuple of host and port. Use NetworkHostAndPort.parse on untrusted data.
host
- a hostname or IP address. IPv6 addresses must not be enclosed in square brackets.
<init> |
Tuple of host and port. Use NetworkHostAndPort.parse on untrusted data. NetworkHostAndPort(host: String, port: Int) |
host |
a hostname or IP address. IPv6 addresses must not be enclosed in square brackets. val host: String |
port |
a valid port number. val port: Int |
toString |
fun toString(): String |
parse |
Parses a string of the form host:port into a NetworkHostAndPort. The host part may be a hostname or IP address. If it's an IPv6 address, it must be enclosed in square brackets. Note this does not parse the toString of a resolved java.net.InetSocketAddress, which is of a host/IP:port form. fun parse(str: String): NetworkHostAndPort |


VisDA Challenge
Aeroplane
Bicycle
Bus
Car
Horse
Knife
Motorcycle
Person
Plant
Skateboard
Train
Truck


{% extends "base.html" %} {% load is_object_id_equal from filters %} {% block title %} Save Search {% endblock %} {% block css_includes %} {% endblock %} {% comment %} The javascript section is large but it also involves using a lot of django tags throughout it. Since these tags cannot be used in external js files, I left all the javascript in the file rather than having half of it internal and half external. {% endcomment %} {% block javascript_includes %} {% endblock %} {% block content %}


Creates a new Context
instance.
Remove the onUserJoined event handler from the Context.
Remove the onUserLeft event handler from the Context
The onStarted event is raised after the Context is fully initialized and ready for your application logic to start executing.
The onStopped event is raised before the Context starts shutting down, which happens after the last user disconnects.
The onUserJoined event is raised after a new user has joined the Context.
The onUserLeft event is raised when the given user has left the Context. After the last user leaves, the Context will be shutdown (and a 'stopped' event will soon follow).
Exits this context.
Container for an application session. The Context contains all application state for a session of your application. This includes Actors, Users, Assets, and other state.


| Hovering And | Clicking | On Header's Cell | Will Trigger | Color Change |
|---|---|---|---|---|
| Clicking on any Cell | On This Row will cause |
-2,000.00EUR | Highlight of Whole Row | 01/26/17 |
| Clicking On Cell | Will cause | Highlight of cell | Last Name | 01/26/17 |
| Hovering On Any Cell | Will Change | Background | Of Certain | Cell |
| Hovering On Any Cell | And cells | Will Change | Background of Whole Row | 01/26/17 |


Entering the world of crypto might seem complicated and twisted at first, but as soon as you understand the basics, there is nothing to be afraid of. In this article, we will present you with the most important things you need to know about protecting your wallet through the safe storage of the most private information every crypto enthusiast has: the seed phrase and private keys.
A private key is a secret number that allows crypto to be spent.
Because the private key is the "ticket" that allows someone to spend coins, it is important that these are kept secure.
You’ll get to have your own private keys as soon as you create a cryptocurrency wallet. In addition to the wallet address (which is supposed to be disclosed to the public, but we’ll talk about that later), you’ll also get a combination of letters and numbers which is the private key itself. It plays the same role for your crypto wallet as the PIN does for your bank account, when you want to withdraw money from an ATM.
However, private keys are much longer and complex than any PIN to a debit/credit card for ensuring security. In a bank, you’ll actually need the card itself to proceed to the cashout, while an electronic wallet can be accessed from any digital device. For this reason, private keys are supposed to be as complex as possible to provide your funds with the highest level of security.
Here is an example of BTC private keys : 1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm.
Anyone who knows this combination will be able to access your wallet and make transactions. Don’t use the above example as private keys to your wallet, since it has already been shared with public.
Thus, private keys serve as a signature for the wallet, and to receive and send coins, you’ll also be provided with public address containing the history of transactions and accessible for anyone. As long as you keep your private keys in secret, nobody will be able to take control over your funds.
When creating a new wallet in Atomic, you will be given a 12 words mnemonic seed.
 Every word is tied to a number, so the phrase can be turned into a sequence of numbers which in turn generate private keys for the wallet.
In Atomic wallet, mnemonic seed is generated automatically: all 12 words of the seed are taken out from a 2048-word database which provides you with 2048^12=5e39 possible seed phrases and is unimaginable to hack.
Mnemonic seed (or seed phrase) is necessary to access your wallet and the data stored from a new device or in case the first gadget you used has been lost, or if you forgot your password to the previous wallet. Basically, you type your mnemonic seed on a new device and are able to recover the old wallet. One seed is able to recover all your addresses which is very convenient. However, it is both a useful backup to your storage and a potential risk of giving a full access to your assets if anybody gets ahold of your seed. For this very reason, it is important to be extra careful of where and how you store the recovery seed, because it is the only back-up for your non-custodial wallet!
To understand the connection between mnemonic seed and private keys, let’s refer to a metaphor of a tree. In this case, the seed is similar to the tree roots: it shouldn’t be visible to anyone, and it serves as the basis for all further information about your wallet. The seed phrase is able to generate private keys for every address you have, so you’ll be able to back up all your accounts with one seed.
Store private keys and seed offline to avoid the risk of hacking, information leakage or equipment fault. Stay aware of any devices around you that might be recording your actions, like a microphone or a camera.
Write down the seed phrase with all the words in the right order and spelled properly. It goes without saying that you shouldn’t rely on your memory as there is only one chance to write it down.
 Some people prefer to laminate their paper wallet to make it waterproof. However, remember to store your paper wallet in a safe place where other people wouldn’t find it, for example, in a vault.
Use hardware wallets (similar to a flash drive) designed specifically to keep private keys secure. Such wallets generate for you public and private keys.
If you don’t have any hard wallet at the moment of registration of your account, it is also possible to store private keys in a flash drive itself, but this option is safe as long as the drive stays in your hands.  Also, you can use a specific flash drive encrypting the data to enhance the level of security.
After saving the seed offline, you need to think of how to protect it. There might be many potential threats to a piece of paper, like water, fire or even sunlight, let alone the odds of throwing it away by mistake. For this reason, many users prefer to laminate their recovery seed to minimize the environmental influence. However, you have to make the lamination yourself which implies purchasing specific tools, but normally, they are quite cheap, and the process doesn’t take up a lot of time. As to where to keep it, you might like the idea of a vault or a safety deposit box in a bank.
When the phrase is physically protected from potential threats, there are still some rules as to how to avoid information leakage. In today’s digitalization and Internet of Everything, you should always stay aware of the risk of being recorded at the moment when you type or write down the phrase, so make sure there are no cameras or keyloggers: don’t expose your seed or key in any public place and enhance the device security by using only reliable browsers, updating the software and changing passwords every now and then.
The security of your private keys and mnemonic seed is crucial for the safety of your funds. While private keys are a signature to your wallet allowing to spend the coins, mnemonic seed helps to recover the old wallet or access it from a new device. To enhance their security, it is recommended to keep the keys and the seed offline, in a hardware or paper wallet, protect the storage device from any environmental influence, and not to take pictures or screenshots of the code to avoid possible hacking. Now that you know how to store your wallet’s keys and seed, isn’t it time to buy some crypto now?


InterfaceInfo¶
InterfaceInfo¶
-
class
InterfaceInfo
¶ Interface information objects contain interface information used to find, filter, and create devices on a specific interface on the host.
A list of interface information objects is retrieved and maintained in the system (Arena::ISystem). An interface information object provides a:
- IP and MAC addresses
- subnet mask
Interface information is acquired prior to device creation and used primarily to filter and find specific interface. A std::vector of Arena::InterfaceInfo objects is retrieved from the system (via Arena::ISystem::GetInterfaces).
The list of InterfaceInfos is returned as a std::vector in order to make use of STL filter and search tools. The following code snippet demonstrates searching for an interface with a specific Mac address:
// searching for a specific interface { GenICam::gcstring macToFind = "ab:cd:ef:aa:aa:aa"; std::vector<Arena::InterfaceInfo> intf = pSystem->GetInterfaces(); auto it = std::find_if(begin(intf), end(intf), [&macToFind](Arena::InterfaceInfo intf_temp) { return Intf_temp.MacAddressStr() == macToFind; }); }
IpAddress¶
-
uint32_t
Arena::InterfaceInfo
::
IpAddress
()¶ IpAddress gets the IP address of an interface on the host, returning it as its raw integer value.
- Return
- Type: uint32_t
- IP address of the interface as an integer
Both IpAddress and IpAddressStr represent the same IP address. Where IpAddress returns the value in its raw integer format, IpAddressStr returns it as a more human-readable string:
- IpAddress : 0xA9FE0101
- IpAddressStr : <IP_ADDRESS>
An interface may have its IP address, subnet mask, and MAC Address checked through the main node map (Arena::ISystem::GetTLInterfaceNodeMap, ‘GevInterfaceIPAddress’, ‘GevInterfaceSubnetMask’, ‘GevInterfaceMACAddress’)
- Warning
- Represents same information as Arena::InterfaceInfo::IpAddressStr
- See
IpAddressStr¶
-
GenICam::gcstring
Arena::InterfaceInfo
::
IpAddressStr
()¶ IpAddressStr gets the IP address of an interface on the host, returning it as a string.
- Return
- Type: GenICam::gcstring
- IP address of the interface as a string
Both IpAddress and IpAddressStr represent the same IP address. Where IpAddress returns the value in its raw integer format, IpAddressStr returns it as a more human-readable string:
- IpAddress : 0xA9FE0101
- IpAddressStr : <IP_ADDRESS>
- Warning
- Represents same information as Arena::InterfaceInfo::IpAddress
- See
SubnetMask¶
-
uint32_t
Arena::InterfaceInfo
::
SubnetMask
()¶ SubnetMask gets the subnet mask of an interface on the host, returning it as its raw integer value.
- Return
- Type: uint32_t
- Subnet mask of the interface as an integer
Both SubnetMask and SubnetMaskStr represent the same subnet mask. Where SubnetMask returns the value in its raw integer format, SubnetMaskStr returns it as a more human-readable string:
- SubnetMask : 0xFFFF0000
- SubnetMaskStr : <IP_ADDRESS>
An interface may have its IP address, subnet mask, and MAC Address checked through the main node map (Arena::ISystem::GetTLInterfaceNodeMap, ‘GevInterfaceIPAddress’, ‘GevInterfaceSubnetMask’, ‘GevInterfaceMACAddress’).
- Warning
- Represents same information as Arena::InterfaceInfo::SubnetMaskStr
- See
SubnetMaskStr¶
-
GenICam::gcstring
Arena::InterfaceInfo
::
SubnetMaskStr
()¶ SubnetMaskStr gets the subnet mask of an interface on the host, returning it as a string.
- Return
- Type: GenICam::gcstring
- Subnet mask of the device as a string
Both SubnetMask and SubnetMaskStr represent the same subnet mask. Where SubnetMask returns the value in its raw integer format, SubnetMaskStr returns it as a more human-readable string:
- SubnetMask : 0xFFFF0000
- SubnetMaskStr : <IP_ADDRESS>
- Warning
- Represents same information as Arena::InterfaceInfo::SubnetMask
- See
MacAddress¶
-
uint64_t
Arena::InterfaceInfo
::
MacAddress
()¶ MacAddress gets the MAC address of an interface on the host, returning it as its raw integer value.
- Return
- Type: uint64_t
- MAC address of the interface as an integer
Both MacAddress and MacAddressStr represent the same MAC address. Where MacAddress returns the value in its raw integer format, MacAddressStr returns it as a more human-readable string:
- MacAddress : 0x1C0FAF010101
- MacAddressStr : 1C:0F:AF:01:01:01
- Warning
- Represents same information as Arena::InterfaceInfo::MacAddressStr
- See
MacAddressStr¶
-
GenICam::gcstring
Arena::InterfaceInfo
::
MacAddressStr
()¶ MacAddressStr gets the MAC address of an interface on the host, returning it as a string.
- Return
- Type: GenICam::gcstring
- MAC address of the interface as a string
Both MacAddress and MacAddressStr represent the same MAC address. Where MacAddress returns the value in its raw integer format, MacAddressStr returns it as a more human-readable string:
- MacAddress : 0x1C0FAF010101
- MacAddressStr : 1C:0F:AF:01:01:01
- Warning
- Represents same information as Arena::InterfaceInfo::MacAddress
- See
InterfaceInfo¶
-
Arena::InterfaceInfo
::
InterfaceInfo
() An empty constructor
- Warning
- Does not sufficiently initialize InterfaceInfo
InterfaceInfo¶
-
Arena::InterfaceInfo
::
InterfaceInfo
() An empty constructor
- Warning
- Does not sufficiently initialize InterfaceInfo
~InterfaceInfo¶
-
Arena::InterfaceInfo
::
~InterfaceInfo
()¶ A destructor
Operator =¶
-
InterfaceInfo &
Arena::InterfaceInfo
::
operator=
(InterfaceInfo deviceInfo)¶ A copy assignment operator
- Return
- Type: InterfaceInfo&
- Copied device information object
- Parameters
deviceInfo
:- Type: InterfaceInfo
- Device information object to copy


Copyright (c) 2010-2019, Nelliel Project
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3) Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
Default filetype icons are taken from Soft Scraps icon pack made by Deleket/Hopstarter
Portable UTF-8 library created by Hamid Sarfraz.
phpDOMExtend library created by OtakuMegane.
SmallPHPGettext library created by OtakuMegane.


sqlREST Developer Guide |
To build sqlREST from source you need only Java SDK an the source from cvs at soureforge. The buildtool ant is provided with the sqlREST project. Just cd to the bin directory and choose the distribution target:
cd bin
build distribution
After these steps you will find an distribution inside the dist directory.
You are welcome to join the sqlREST team. There are lot of things to be done. The improvement of this documentation, writing samples or programing the server.


|
Public Member Functions |
| | XSECBinHTTPURIInputStream (const XERCES_CPP_NAMESPACE_QUALIFIER XMLUri &urlSource) |
| | ~XSECBinHTTPURIInputStream () |
| unsigned int | curPos () const |
| unsigned int | readBytes (XMLByte *const toFill, const unsigned int maxToRead) |
| | XSECBinHTTPURIInputStream (const XERCES_CPP_NAMESPACE_QUALIFIER XMLUri &urlSource) |
| | ~XSECBinHTTPURIInputStream () |
| unsigned int | curPos () const |
| unsigned int | readBytes (XMLByte *const toFill, const unsigned int maxToRead) |
Static Public Member Functions |
| static void | Cleanup () |
Static Protected Member Functions |
| static void | ExternalInitialize (void) |
| static hostent * | gethostbyname (const char *name) |
| static unsigned long | inet_addr (const char *cp) |
| static hostent * | gethostbyaddr (const char *addr, int len, int type) |
| static unsigned short | htons (unsigned short hostshort) |
| static unsigned short | socket (int af, int type, int protocol) |
| static int | connect (unsigned short s, const sockaddr *name, int namelen) |
| static int | send (unsigned short s, const char *buf, int len, int flags) |
| static int | recv (unsigned short s, char *buf, int len, int flags) |
| static int | shutdown (unsigned int s, int how) |
| static int | closesocket (unsigned int socket) |
Friends |
| class | XSECSOAPRequestorSimple |


The Linux capabilities for the container to be added to the default configuration provided by Docker. This parameter maps to CapAdd in the Create a container section of the Docker Remote API and the --cap-add option to docker run.
Valid values: "ALL" | "AUDIT_CONTROL" | "AUDIT_READ" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"
Tasks launched on AWS Fargate only support adding the SYS_PTRACE kernel capability.
See Container Definition Linux Parameters for more details about task kernel capabilities.


| Application Overview | Analyst Tools | Database Administration | Application Cross Reference | The Data Feed Class |
A standardized interface for loading security, portfolio, and related investment data into Vision is provided as part of the Portfolio Management Application Layer. DataFeed classes have been defined to translate data from sources external to Vision into Vision objects. All feeds correspond to regular, tabular structures that are loaded into Vision from external files and/or updated directly from other sources such as a spreadsheet range or a relational database.
A separate DataFeed is defined for each format of external data you wish to load into your Vision database. A data feed consists of one or more records that are separated by carriage-return/line-feed. Each record contains one or more fields, normally delimited by a tab character. In addition:
DataFeeds have been subdivided into a number of categories that represent different ways to map external data into Vision. These include:
| Master Feeds | create new entity instances and refresh key properties in entity instances. |
| EntityExtender Feeds | update sets of data used to supplement an existing entity, potentially over time, such as pricing data for Security. |
| Transaction Feeds | create, cross reference, and generate summary statistics for classes associated with two or more entities such as Holding. |
| Alias Feeds | establish multiple aliases for existing Entity instances. |
| XRef Feeds | establish alternative identifiers for existing Entity instances. |
| Membership Feeds | update and cross reference one-to-many relationships between two Entity instances such as Company and Industry over time. |
| RangeGroup Feeds | define and update numeric ranges and categorize Entity instances into the appropriate range group. |
| Support Feeds | define access names and rules for data items. |
| Schema Feeds | define new core classes, properties, and data feed classes. |
A number of data feeds have been pre-defined to support the Portfolio Management Application. These feeds are summarized below and are described in detail in individual fact sheets.
Master Feeds
These feeds are used to create new entity instances and refresh key properties in entity instances:
Entity Extender Feeds
These feeds are used to update sets of data used to supplement an existing entity and usually populate DataRecord classes such as PriceRecord and DivRecord.
Transaction Feeds
These feeds are used to create, cross reference, and generate summary statistics for classes associated with two or more entities such as Holding.
Alias Feeds
These feeds are used to establish multiple aliases for specific entity instances.
These feeds are used to load alternative identifiers.
Membership Feeds
These feeds are used to update and cross reference one-to-many relationships such as company-to-industry over time.
RangeGroup Feeds
These feeds are used to define and update numeric ranges and categorize entities into the appropriate range group.
Support Feeds
These feeds are used are used to name data item access paths and define rules for inclusion in various applications. the appropriate range group.
Schema Feeds
These feeds are used to define new core classes, data feed classes, and properties.
To successfully use the supplied Headstart Applications, your initial feeds should include security, portfolio, and company masters, holdings data, and supplemental data such as industry and sector masters. The recommended starter feeds are described in the document, Portfolio Management Application Startup. These feeds provide enough information to use most of the starter portfolio reports without modification.
A reject file is generated when a data feed record is not processed for any reason. The reject file is created in the working directory with the same file name as the data feed appended by .rejects. The first line of this file is the field order list used to process the feed followed by the records that were not processed by the feed. Comments at the end of the record indicate a rejection reason where possible. Once the reject reason has been resolved the reject file can be used as the data feed. The configuration file option rejectFileName can be used to customize the location and name of the reject file.
Vision data feeds provide a potent means for an analyst that wants to use the Vision browser applications on dynamically generated information. For example, an analyst may want to create a composite account on the fly that can be used as a benchmark for comparison with an existing portfolio. You can use the CompositeAccountMaster feed to define CompositeAccount instances and the CompositeAccountMembers feed to update the composition of CompositeAccounts over time. You can then run the Account Comparison or the Characteristics application from the browser to compare these newly created composites with other portfolios.
Your Vision installation comes with a custom menu named VUpload. If you have installed it, this choice will appear in the menu bar at the top of your Excel spreadsheet. If you do not see this choice, you will need to install the Add-In.
The VUpload component allows you to temporarily make private modifications to the database using the available data feed formats. You can use VUpload to modify existing data, create new instances, and define new structures including new data feed formats. Several data feeds are also available for controlling display aspects of the applications you view through your browser.
When you exit Excel, your changes to the database are not saved. You can save your changes as data feed files which can be saved permanently by the Vision Administrator using the tools described below. The Excel Add-Ins are described in detail in the document Vision Analyst Tools.
Your Vision database is designed to store portfolio, security, holding, and related information over time. Although you can load this data temporarily on an as needed basis using the techniques described above, you will most likely want to permanently commit data to the database on a regular basis so that the information can be shared by many users. The Vision Administrator Module provides a number of tools for coordinating updates to your Vision database and performing various database administration functions.
The Vision Administrator Module is described in detail in the document Vision Application Administration.
| Feed File name | Configuration File name |
| Holdings.txt | Holdings.cfg |
| Holdings.19981105.txt | Holdings.cfg |
| Holdings19990315 | Holdings19990315.cfg |
Configuration files contain one or more lines, where each line contains two fields: a configuration option and a value. The option and value are separated by either the tab character or vertical bar. The data item fields themselves are separated by a comma. For example, the default delimiter character for data feed files is either the tab or vertical bar. You can override this in the configuration file using:
delimiter ,
If this entry exists in your configuration file for the data feed, the data feed loader will assume that the fields in your feed are separated by commas.
Configuration files can also be used with loadFromFile and bulkLoadFromFile.
The current configuration file options are described below:
| Option | Description | Default |
|---|---|---|
| fieldOrderList | Sets the order of the field headings. | First line of file |
| headerLineNumber | Indicates row number containing header. | 1 |
| currency | Sets currency value. | none |
| rejectFileName | Sets name and location of reject file. | File name appended with .rejects in working directory |
| delimiter | Separates data columns. | tab or vertical bar |
| naTest | Format of NA values in the feed, multiple values can be supplied. | NA |
| naPatternTest | Uses regular expressions to determine NA value. | none |
| skipTop | Skips rows at the top of the feed file. | 0 |
| skipBottom | Skips rows at end of feed file. | 0 |
| skipChars | Eliminates specific characters from data being uploaded. | none |
| maxRecords | Limits the number of rows that the feed uploads. | All |
| autoExpire | Adds a 'default' value to a time series after last 'real' value, based on a supplied expiration period. | off |
| dateFormat | Indicates the format of the digits supplied in the 'date' field. | Variety of default formats as described in DataFeed Formats. |
| asofDate | Sets value for any date-sensitive data. | Date provided in data records or if none, current date. |
| asofDateLineNumber | Indicates the line in the data file that contains the as of date. | Date provided in data records or if none, current date. |
| adjustmentDate | Sets the default value of the adjustment date. | Date provided in data records or if none, current date. |
The following situations show where a configuration file is necessary and provide examples of how it is used.
symbol | name | country GM | GeneralMotors | US
fieldOrderList | id,name,country
fieldOrderList can also be used to eliminate columns of data from your feed. For example, if a file contains five columns of data and you only wish to use the first, second, and fourth columns, you could set up your configuration file to include only the items you want:
id | name | ticker | country | currency
fieldOrderList | id, name, , country
GM | GeneralMotors | US IBM | International Business Mach | US
fieldOrderList | id,name,country headerLineNumber | 0
id | name | currencyId MRK | Merck & Co Inc | NA GM | GeneralMotors | MHP | McGraw-Hill Companies Inc | CAD
currency | USDThis example will set USD as the currency for MRK and GM but CAD will remain the currency for MHP. In addition, currency can be used to set the currency value for all records in a feed where a currency field does not exist.
id | currencyId | sharesOut | latestMarketCapUS 45920010 | US | 9999 | 7595900 00036110 | US | 2400 | 4499000
naPatternTest | 9[59]9This example will load NA for sharesOut and latestMarketCapUS for security 45920010 but will load all of other values. WARNING: Practice extreme caution when using Regular Expressions - due to their nature it is easy for a regular expression to include more than intended as seen in the above example where it might not have been the intent for security 45920010's latestMarketCapUS value to be loaded as NA.
98/06/30 symbol | name | currency GM | GeneralMotors | USD
fieldOrderList | id,name,currency skipTop | 2
"id" | "name" | "currency" "GM" | "General Motors" | "US"
skipChars | "
EntityId | date | currencyId | pe abc | 06/30/99 | USD | 7.39 mno | 06/30/99 | USD | 4.56
autoExpire | 1 monthEnds | DateOffset
In the above example, FundMData values for all companies other than abc and mno whose most recent "real" data is 5/30/99 or earlier, will be updated with the default value NA for 6/30/99.
The second column in the configuration file indicates the expiration period and the third column indicates that the second column should be treated as a DateOffset. You can use any DateOffset as a value. The most likely values are:
1 monthEnds 3 monthEnds 12 monthEnds 1 businessDays
Note that 3 monthEnds is the same as 1 quarterEnds when you are dealing with calendar data. When you are dealing with fiscal data, 3 monthEnds puts you at the end of the next fiscal quarter whereas 1 quarterEnds puts you at the end of the next calendar quarter
If a file contains dates in any of the following alternative formats: MMYY, MMYYYY, MMDDYY, MMDDYYYY, or YYYYMM, you will need to use the dateFormat option. Note: this only applies to the field named 'date'. For example:
memberID | groupID | date 0036110 | 560 | 121994Sample Configuration:
dateFormat | MMYYYYThe format YYYYMMXX will convert the supplied date in YYYYMMDD format to end of month format. For example, if you use this configuration file option with a feed with date values of 20000805 and 20000825, both will load as 20000831.
memberID | groupID 0036110 560
asofDate | 19990430
19990430 memberID | groupID 0036110 | 560Sample Configuration:
asofDateLineNumber | 1 HeaderLineNumber | 2
entityId | date | currencyId | close | volume abc | 09/30/99 | USD | 37.39 | .59 mno | 09/30/99 | USD | 44.56 | .38
adjustmentDate | 19991231
| Copyright © 2000 Innovative Systems Techniques, Inc. | Updated December 15, 2000 |


The Boston area is full of great events for asipiring entreprenuers and technologists. Most are free for students.
Here are some I've attended, and may attend soon in the future.
Unless marked, events are in the Boston and Cambridge area.2013
October 26
October 1
September 17


|
Behold the following C program:
|
--- |
When we run this program, the first two lines of output are:
What are the remaining lines of output?
|
|
|
||
|
|
||
|
|
A goddess on the mountain top Is burning like a silver flame The summit of beauty and love And Venus is her name |
main() { IS is; Dllist d, tmp; int i; d = new_dllist(); i = 0; is = new_inputstruct(NULL); while (get_line(is) >= 0) { if (i % 2 == 0) { dll_append(d, new_jval_s(strdup(is->fields[0]))); } else { dll_prepend(d, new_jval_s(strdup(is->fields[is->NF-1]))); } i++; } dll_traverse(tmp, d) { printf("%s\n", tmp->val.s); } } |
main() { Queue q; Stack s; Jval v; IS is; int i; q = new_queue(); s = new_stack(); i = 0; is = new_inputstruct(NULL); while (get_line(is) >= 0) { if (i % 2 == 0) { queue_enqueue(q, new_jval_s(strdup(is->fields[0]))); } else { stack_push(s, new_jval_s(strdup(is->fields[0]))); } i++; } while (!queue_empty(q)) { v = queue_dequeue(q); printf("%s\n", v.s); } while (!stack_empty(s)) { v = stack_pop(s); printf("%s\n", v.s); } } |
main() { int i; IS is; char *x, *y; i = 0; is = new_inputstruct(NULL); while (get_line(is) >= 0) { x = strchr(is->text1, 'o'); if (x == NULL) x = is->text1; y = strchr(is->text1, 's'); if (y == NULL) y = is->text1; printf("%d\n", y - x); } } |
|
--- |
|


piePeripheralLabeler - tkpiechart pie peripheral style labeler class
The pie peripheral style labeler object is used as a slice label placer for a pie object and is passed to the pie constructor via its -labeler option (see the pie class manual).
The slice description text labels are arranged in 2 columns below the pie graphics, whereas the slice values are placed next to the slice and actually follow the slice as the pie is updated. Each description label text is placed to the right of a rectangle, the background color of which matches its corresponding slice. Each description label is actually a canvasLabel object.
There is no need to delete a piePeripheralLabeler object as it is automatically handled by the pie class.
Creates a piePeripheralLabeler object in the specified Tk canvas. The piePeripheralLabeler object identifier is returned (refered to as piePeripheralLabelerObject in this document).
Configures a piePeripheralLabeler object or returns all the options with their current values if no options are passed as parameters.
Returns an option value for the specified piePeripheralLabeler object.
The labeler has the following specific tag (see the canvas manual page ITEM IDS AND TAGS section for more information):
piePeripheralLabeler(piePeripheralLabelerObject)
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category tkpiechart of the Tklib Trackers. Please also report any ideas for enhancements you may have for either package and/or documentation.
Copyright © 1995-2004 Jean-Luc Fontaine <jfontain@free.fr>


Charlie's Angels (2000) Cameron Diaz, Drew Barrymore, Lucy Liu, Bill Murray, Sam Rockwell, Tim Curry, Kelly Lynch, Crispin Glover, Matt LeBlanc, LL Cool J, Tom Green, Luke Wilson, John Forsythe. Screenplay by Ryan Rowe, Ed Solomon, John August, based on the television series created by Ivan Goff, Ben Roberts. Directed by McG. 98 minutes. Rated PG-13, 3 stars (out of five stars)
Review by Ed Johnson-Ott, NUVO Newsweekly www.nuvo.com Archive reviews at http://us.imdb.com/ReviewsBy?Edward+Johnson-Ott To receive reviews by e-mail at no charge, send subscription requests to<EMAIL_ADDRESS>or e-mail<EMAIL_ADDRESS>with the word "subscribe" in the subject line.
At the press junket for "Charlie's Angels," director McG (pronounced McGee), a music video and commercial veteran, explained his approach towards his feature film debut.  "The goal was to take the comedy and turn it to 11, take the action and turn it to 11, take the sexiness and turn it to 11 and just max out this film…'"
Somebody get that boy some Ritalin.
McG achieved his goal. The big screen adaptation of the hit TV action series from the '70s certainly reflects the unbridled enthusiasm of his mission statement. From beginning to end, it cheerfully assaults the viewer with every imaginable cinematic gimmick, punctuated by snippets of no less than 39 pop songs. "Charlie's Angels" isn't just a high-octane version of the original. It's also a 98-minute music video, a slapstick comedy, a special effects showcase, a stunt spectacular, a James Bond knock-off, a chop-socky fight movie and a paean to the '60s "Batman" TV show's camp sensibilities.
In short, the film is a mess.  I left "Charlie's Angels" entertained, but exhausted.
The plot, such as it is, goes as follows. Natalie (Cameron Diaz), Dylan (Drew Barrymore) and Alex (Lucy Liu) are the latest batch of ex-cops working for the Townsend Detective Agency, where they receive their assignments by phone from the always-unseen Charlie (voiced by John Forsythe, the only returning member of the original cast). Aided by their faithful right-hand man, Bosley (Bill Murray), the Angels set out to retrieve kidnapped software genius Eric Knox (Sam Rockwell) and keep his cutting-edge voice-recognition technology from falling into evil hands. Along the way, they must deal with imperious a top-level Knox exec Vivian Wood (Kelly Lynch), corporate competitor Roger Corwin (Tim Curry, as smarmy as ever) and the Thin Man (Crispin Glover), an extremely dangerous goon with a hair fetish.
Of course, the storyline is just a contrivance to allow the women to do battle with bad guys while wearing various exotic costumes (two of the Angels dress up in drag and, as a man, Drew Barrymore is a dead ringer for James Spader). Incidentally, even though their enemies are heavily armed, the Angels do not carry guns, proving definitively that Charlie's last name is not Heston.
The film starts off with a bang-up James Bond style set piece, as the camera seamlessly glides through the clouds into a passing luxury airliner, where LL Cool J is dealing with a nut case. Abruptly, LL opens the emergency exit, throws the man out and leaps after him, leading into a skydiving sequence. The pair ends up in a speedboat, where we finally meet the Angels.
As with the TV series, each Angel, while smart as a whip and multitalented, can be summed up in one word. Drew Barrymore (who co-produces the film) is the sexy one, Cameron Diaz is the giddy one and Lucy Liu is the devilish one. The three actors are clearly having a wonderful time with their roles and each is afforded showcase moments. Liu gets to play dominatrix in an efficiency expert scene, Diaz shakes her small, but shapely booty to the tune of "Baby Got Back" in a comic bit on the set of "Soul Train," and Barrymore plays seductress with a limo driver in a revealing scene that makes it clear why David Letterman smiled so widely when she danced on his desk and flashed him.
A lot of "Charlie's Angels" works. The camaraderie between the women is winning, some of the stunts are spectacular and a fair percent of the jokes are actually funny (check out the slow-motion-hair-flipping instructions during a party scene). I particularly enjoyed the frequent use of rear screen projection, a clever nod to the cut rate filming techniques employed by the original series.
What doesn't work is most of Bill Murray's shtick, the less-than-graceful "Matrix" style wire work during the martial arts segments, McG's uneven, needlessly rapid editing style and his insistence on framing every shot as if it was the highlight of a music video. Flinging everything but the kitchen sink at the viewer may work in a three-minute MTV clip, but stretched over the length of a film, it grows old fast. Even in an amusing trifle like "Charlie's Angels," things like consistency of tone still matter. Next time, McG, try turning it down to 9 every once in a while.
© 2000 Ed Johnson-Ott
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


BY EDWIN JAHIEL
MUSIC OF THE HEART (1999) ***1/2. Directed by Wes Craven. Written by Pamela Gray, based on the life story of Roberta Guaspari and inspired by the documentary "Small Wonders." Photography, Peter Deming. Editing, Patrick Lussier. Production design, Bruce Miller. Music, Mason Daring. Produced by Marianne Maddalena,Walter Scheuer, Allan Miller and Susan Kaplan. Cast: Meryl Streep (Roberta Guaspari), Aidan Quinn (Brian Sinclair), Gloria Estefan (Isabel Vasquez), Angela Bassett (Janet Williams), Jane Leeves (Dorothea von Haeften), Cloris Leachman (Assunta Guaspari), Kieran Culkin (Teen-age Lexi), Charlie Hofheimer (Teen-age Nick), Josh Pais(Dennis Rausch) et al. A Miramax release 110 minutes. PG
Wonders will never cease, said Sophocles.(Not the ancient Greek but a friend who speaks in cliches). Wes Craven, a shockmeister( plus schlockmeister for some), the creator of Freddy Krueger (Nightmare on Elm Street), is synonymous with horror flicks such as Scream, The People Under the Stairs, Shocker, The Swamp Thing, The Hills Have Eyes, Vampire in Brooklyn, etc.
The 77-minute documentary Small Wonders, released in 1996, made by Allen and Lana Miller, and Oscar-nominated, dealt with East Harlem violin teacher Roberta Guaspari-Tzavaras, whose sheer dedication, persistence and missionary-like zeal succeeded in educating hundreds of kids in the face of lack of funds and equipment, elimination of music and arts programs in the city's budget, and personal difficulties.
Craven, a professorial-looking, classical music lover, now middle-aged, saw the documentary, was enthusiastic about making a theatrical feature of it, pursued his project with fervor. Overcoming raised eyebrows and several stumbling blocks, (Madonna was to be his star), he was at long last able to enlist Meryl Streep who had never seen any of his films, to come up with a first-rate writer, other good performers, an amazing array of children, and finally a movie that looks, sounds and plays beautifully.
The film caught me by surprise. Its previews don't do it justice. The title is sentimental, old-fashioned. (It was originally 50 Violins, which suggested a musical film, hence a probable loss of public). Every sign pointed to a feelgood, inspirational picture, of which too many are schlock without shock. But watching the finished product I realized that I, too, had fallen into the trap of preconceptions and generalizations about films with dedicated teachers. I had forgotten Mr.Holland's Opus; or the marvelous ancestor of them all, Goodbye Mr. Chips (1939); or the sweet-and-sour gem The Blackboard Jungle (1955), the British To Sir, with Love (1967), the less-known The Corn is Green (with Bette Davis, 1945) and others.
I suspect that my suspiciousness came from too many films made for teen tastes in the last two decades. They were school comedies --often funny for adults too --in which students did everything but study and their teachers were gamekeepers or ridiculous figures or ineffectual wall paper.
In any case, Music of the Heart is a first-class movie. I have not seen Small Wonders, so I cannot tell how faithfully MOTH develops it -- but I have the feeling that scriptwriter Pamela Gray and the director have stuck close to the documentary, with a few changes. (From a tiny picture I located the real Roberta is definitely a brunette). The feature is convincing throughout, with warmth and sentiment not exploited to the hilt.
In my audience no one wept audibly, but eighty-one percent of the viewers had moist eyes. (The margin of error is 3 %). My only criticism is that there is just a tiny bit of background given for Roberta. Her presence is alive and lively; her past is nebulous..
Roberta Guaspari, a mother of two boys, is ditched by her husband for one of the couple's close female friends.  I'll omit general developments as well as details so as not to undo the pleasures of discovery --except that the movie wraps up with a large group of Roberta's kids playing in Carnegie Hall along with such fiddle greats as Itzhak Perlman, Isaac Stern, Arnold Steinhardt and several others.
All the actors are exceptionally good. Angela Bassett, who shared top billing with Eddie Murphy is Wes Craven's Vampire in Brooklyn is, additionally, gorgeous at 41. Gloria Estefan whom I knew only as a singer, has a perfectly performed supporting role.
On the screen, Aidan Quinn has always had a most likable persona. He can also be differentiated from others, an exception today when too many faces are interchangeable and semi-anonymous. It was a good move not to make too big a deal of his relationship with Roberta, and to have Quinn vanish for a couple of big stretches. The same non-hammering of several supporting characters is also a clever decision. It allows concentration on Roberta, her pupils and her struggles -- time well spent and never dull.
And Merryl Streep? Now 50 yet entirely credible as a woman in her late 30s, she is a marvel. Let me mention an apocryphal story. In the 19th century, a famous Polish actress came to Paris. She was received like a queen. Appearing on the Opera's stage, she declaimed some things in Polish. The Who's Who audience did not know this language, but the lady was so great that she had them all moved to tears and applauding wildly. Later it was disclosed that the actress had recited the Polish alphabet, and La Marseillaise, the French National anthem. Streep could do the same.
For this movie she also learned to play the violin, from scratch (an apt expression in this case). Add this to her past feats, and you get not merely the Woman with a Thousand Faces, and Accents, but of a thousand capabilities too.
MOTH, on top of its other plusses, quietly yet firmly stands as a social triumph for race relations. The children, young and older, their parents, the overall milieu in Black and Hispanic Harlem, and so on, come in all sizes, flavors and ethnic backgrounds. Yet there are no sides formed, no racial conflicts, no mentions of prejudice.  But Roberta wins her over.
The commonplace element of drugs and violence is played way down too. There is no X-rated language. Not that the film has been bowdlerized. Roberta has ex-cons working on the dilapidated house she bought, but furious at their methods, incapacity, and drinking, she fires them all. A student simply tells of her dad hitting her mother. Otherwise, there are no goody-goody passages in this early contender for the next set of Oscars.
This is indeed a feelgood movie, but with natural, realistic feelgoodness. We can use this in these rather cynical movie-days.
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 while back I had posted a set of directions for installing EmonCMS in a FreeBSD jail under a home server software tool called NAS4Free. That server died and I found when I got new hardware, those directions no longer worked, as the various packages and ports under FreeBSD changed enough that the server was not functional when installed under those directions. I tried and tried but eventually gave up and pointed my EmonTX to the UK server.
Bill Thomson decided to pick up the challenge because his brain was bored and he quickly solved it. So, thanks to him we now have working directions for those seeking to run their own EmonCMS under a nice home server package. Here are the updated directions. All thanks go to Bill - I only edited the directions...
1. Install NAS4Free
This is done by creating a LiveCD that will boot a FreeBSD loader which gives you options to install it onto a disk or USB flash drive. I divided a small SSD into OS, swap and data, partitions, but you could easily do this with a single OS partition on a flash drive, and mount a separate data drive for Emoncms. Once NAS4Free is installed, reboot the server and log in via your web browser.
In the NAS4Free web management tool
Enable the SSH server. Be sure to check the option to allow login as root
Mount at least one drive to contain the FreeBSD jail and Emoncms software. I refer to this mounted drive as /mnt/{your storage drive name} in the directions that follow.
Install 'The Brig' NAS4Free extension to create and manage FreeBSD jails
Download The Brig from: http://forums.nas4free.org/viewtopic.php?f=79&t=1654&start=53
SSH to the NAS4Free server. Login as root with the WebGUI password
mkdir /mnt/{your storage drive name}/thebrig fetch https://sites.google.com/site/aganimkarmiel/home/free-time/file-sharing/ gunzip thebrig_install.sh.gz chmod 755 thebrig_install.sh sh thebrig_install.sh /mnt/{your storage drive name}/thebrig
Reboot the server
Initialize The Brig
Log into the NAS4Free WebGUI and click on the new Extensions menu to enter The Brig. The first time you go there, it will walk you through the setup. Download the FreeBSD base and lib32 tarballs. They are needed to install a full version of FreeBSD in the jail we are creating.
Create the jail
Click to create a new FreeBSD jail with the following options:
Jail number: 1 (Defaults to 1 for the first jail)
Jail Name: Your choice, but I called my emon
Jail Type: Full
Jail Interface: LAN
Jail IP address: choose an IP address for the jailed FreeBSD. I don't think allowing this to be set dynamically, i.e. DHCP, will work, as elsewhere in the directions, you'll need to enter this IP into various configuration files. The file server will have two IP addresses for one physical network connection. One will be for NAS4Free, the other, for the jailed FreeBSD running Emoncms. In my case, the jail address was <IP_ADDRESS>
Jail Start on boot: Check
mount devfs checked
Source from Archive: Check both the base and lib32 versions
Once complete, reboot, go back to this web page and verify that the jail is running.
2. Install AMP (Apache/MySQL/PHP) in the jail
SSH to the original NAS4Free server just like before
Once in, verify the status of the jail by typing 'jls' – you should see your jail listed with the IP address you gave it.
Enter the jailed FreeBSD with the following command: 'jexec x csh' (x is the jail number if you have more than one jail). All of the remaining commands are entered in the jailed FreeBSD.
Install package manager, git-lite, and the nano text editor – confirm all prompts
pkg pkg install git-lite pkg install nano
Install Apache 2.4
pkg install apache24
Add the following line to rc.conf to enable apache to start at boot time:
echo 'apache24_enable="YES"' >> /etc/rc.conf
Edit configuration file
nano /usr/local/etc/apache24/httpd.conf
Uncomment the LoadModule rewrite_module line
Change “none” to “all” in the AllowOverride line (<Directory "/usr/local/www/apache24/data"> section)
Add the next two lines to the <IfModule mime_module> section
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
Add the following two sections to the end of httpd.conf
<FilesMatch "\.php$"> sethandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> sethandler application/x-httpd-php-source </FilesMatch>
Install MySQL
pkg install mysql56-server echo 'mysql_enable="YES"' >> /etc/rc.conf /usr/local/etc/rc.d/mysql-server start
Secure your mysql database with this script: mysql_secure_installation
accept all suggested options
Create Emoncms database
mysql –u root –p (you’ll be prompted for the root password) create database emoncms; exit
Install remaining packages
pkg install mod_php56 php56-mysql php56-mysqli php56-curl php56-mcrypt php56-json php56-gettext php56-session php56-ctype php56-filter php56-hash rehash
Edit php.ini
nano /usr/local/etc/php.ini
Uncomment (or add) the line that reads:
date.timezone = "America/New_York" (put your timezone here)
For a list of supported timezones, see http://php.net/manual/en/timezones.php
Restart Apache
apachectl restart
Test PHP is working and attached to Apache
Create a test php file with the following command:
echo "<? phpinfo(); ?>" > /usr/local/www/apache24/data/test.php
Direct your browser to: {your jail IP address}/test.php
You should see a long list of all the PHP settings and extensions. If not, or if your web browser wants you to view a PHP file, then PHP and Apache are not linked.
3. Install Emoncms
cd /usr/local/www/apache24/data git clone https://github.com/emoncms/emoncms.git mkdir –m 0777 /usr/local/emoncmsdata mkdir –m 0777 /usr/local/emoncmsdata/phpfiwa mkdir –m 0777 /usr/local/emoncmsdata/phpfina mkdir –m 0777 /usr/local/emoncmsdata/phptimeseries mkdir –m 0777 /usr/local/emoncmsdata/phptimestore
Set emoncms database settings
cd /usr/local/www/apache24/data/emoncms cp default.settings.php settings.php nano /usr/local/www/apache24/data/emoncms/settings.php
enter the mysql username and root password
$username = "root";
$password = "*****";
$server = "localhost";
$database = "emoncms";
change directories to
/usr/local/emoncmsdata/phpfiwa/
/usr/local/emoncmsdata/phpfina/
/usr/local/emoncmsdata/phptimeseries/
Direct your browser to <IP_ADDRESS>/emoncms
The emoncms logon/register screen should be displayed
Re: Installing EmonCMS in a FreeBSD Jail under NAS4Free
Thanks for the "atta boy," Dan!
I enjoyed "workin' the problem," and learned a lot about FreeBSD in the process.
Good to hear you've got your system online again...
Bill


Try your RGB imagination
insert a number from 0 to 255
and watch what happens
go back to the
Color Game
R
G
B


Has been long known that a diet that includes at least a few servings of fresh fruit every day will help keep you healthy , fit and trim


Indicates if flat button should be displayed.
Boolean, default = false
Flat button is a small button in the top right corner when sidebar is not in the flat mode and on top when it is. If user clicks
on the flat button onFlat event will be generated.
You can define it during object creation:
or during run-time:


What is a JavaScript Object?
Badass W3Schools Javascript Objects Page
Basics on accessing properties and creating objects
Badass Explanation of Accessing Proeprties
An explanation of properties
Badass W3Schools Javascript Objects Page
Basics on accessing properties and creating objects
Badass Explanation of Accessing Proeprties
An explanation of properties
Arrays Intro
Tip: Easiest way to add items to an array - array[array.length] = "item"
You should use arrays when you want to have numbered indices as opposed to an object's text indices.
Great list of basic array methods
While Loops
For Loops
Looping Through Nested Objects
You should probably just focus on using For Loops instead of While.
Top Things Beginners Should Know About JavaScript - Quora
Some Tips From StackOverflow
Nice batch of articles


Take a look at the W4 form for this information which can be found here.
Take a look at the G4 form for this information which can be found here.


Tua Tagovailoa Was Reportedly “Screaming In Pain” After Hip Injury vs. Mississippi State
by Matt LombardiAlabama quarterback Tua Tagovailoa suffered what appeared to be a significant hip injury just before halftime of his team’s game against Mississippi State on Saturday afternoon. Apparently, Tagovailoa was in a great deal of pain.
Tagovailoa was dragged to the ground by two Bulldogs defenders and appeared to land awkwardly. ESPN’s Molly McGrath reports that the Alabama quarterback was “screaming in pain” on the ground after the injury.
Tagovailoa was carted off the field. The only word we have is that it’s some kind of hip injury.
Tagovailoa came into the game nursing an ankle injury he suffered against Tennessee back in October. He played against LSU after a “tightrope” surgery just two weeks prior.
Alabama led Mississippi State 35-7 at the time of the injury. Crimson Tide head coach Nick Saban told reporters at halftime that Tagovailoa got hurt on what was going to be his final series of the game anyway.
Alabama needs help to win the SEC West, but it still has a shot at the College Football Playoff. If Tagovailoa can’t play against Auburn in two weeks, the Crimson Tide could struggle.
We’ll update you as more information becomes available.


Namespace XRTK.Utilities.Gltf.Schema
Classes
GltfAccessor
https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/accessor.schema.json
GltfAccessorSparse
Sparse storage of attributes that deviate from their initialization value. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/accessor.sparse.schema.json
GltfAccessorSparseIndices
Indices of those attributes that deviate from their initialization value. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/accessor.sparse.indices.schema.json
GltfAccessorSparseValues
GltfAnimation
A keyframe animation. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/animation.schema.json
GltfAnimationChannel
Targets an animation's sampler at a node's property. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/animation.channel.schema.json
GltfAnimationChannelTarget
The index of the node and TRS property that an animation channel targets. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/animation.channel.target.schema.json
GltfAnimationSampler
Combines input and output accessors with an interpolation algorithm to define a keyframe graph (but not its target). https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/animation.sampler.schema.json
GltfAssetInfo
Metadata about the glTF asset. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/asset.schema.json
GltfBuffer
A buffer points to binary geometry, animation, or skins. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/buffer.schema.json
GltfBufferView
A view into a buffer generally representing a subset of the buffer. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/bufferView.schema.json
GltfCamera
A camera's projection.  Image can be referenced by URI or
bufferView
index. mimeType
is required in the latter case.
GltfMaterial
The material appearance of a primitive. https://github.com/KhronosGroup/glTF/tree/master/specification/2.0/schema
GltfMaterialCommonConstant
GltfMesh
A set of primitives to be rendered. A node can contain one or more meshes. A node's transform places the mesh in the scene. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/mesh.schema.json
GltfMeshPrimitive
Geometry to be rendered with the given material. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/mesh.primitive.schema.json
GltfMeshPrimitiveAttributes
Common mesh primitive attributes. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/mesh.primitive.schema.json
GltfNode
A node in the node hierarchy.
When the node contains skin
, all mesh.primitives
must contain JOINT
and WEIGHT
attributes. A node can have either a matrix
or any combination
of translation
/rotation
/scale
(TRS) properties.
TRS properties are converted to matrices and postmultiplied in
the T * R * S
order to compose the transformation matrix;
first the scale is applied to the vertices, then the rotation, and then
the translation. If none are provided, the transform is the Identity.
When a node is targeted for animation
(referenced by an animation.channel.target), only TRS properties may be present;
matrix
will not be present.
https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/node.schema.json
GltfNormalTextureInfo
GltfObject
GltfOcclusionTextureInfo
GltfPbrMetallicRoughness
A set of parameter values that are used to define the metallic-roughness material model from Physically-Based Rendering (PBR) methodology. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/material.pbrMetallicRoughness.schema.json
GltfProperty
GltfSampler
Texture sampler properties for filtering and wrapping modes. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/sampler.schema.json
GltfScene
The indices of each root node. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/scene.schema.json
GltfSkin
Joints and matrices defining a skin. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/skin.schema.json
GltfTexture
A texture and its sampler. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/texture.schema.json
GltfTextureInfo
https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/textureInfo.schema.json
Enums
GltfAccessorAttributeType
Specifies if the attribute is a scalar, vector, or matrix. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/accessor.schema.json
GltfAlphaMode
The alpha rendering mode of the material. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/material.schema.json
GltfAnimationChannelPath
The name of the node's TRS property to modify, or the weights of the Morph Target it instantiates. For the translation property, the values that are provided by the sampler are the translation along the x, y, and z axes. For the rotation property, the values are a quaternion in the order (x, y, z, w), where w is the scalar. For the scale property, the values are the scaling factors along the x, y, and z axes. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/animation.channel.target.schema.json
GltfBufferViewTarget
The target that the GPU buffer should be bound to. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/bufferView.schema.json
GltfCameraType
Specifies if the camera uses a perspective or orthographic projection. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/camera.schema.json
GltfComponentType
The datatype of components in the attribute. All valid values correspond to WebGL enums. The corresponding typed arrays are 'Int8Array', 'Uint8Array', 'Int16Array', 'Uint16Array', 'Uint32Array', and 'Float32Array', respectively. 5125 (UNSIGNED_INT) is only allowed when the accessor contains indices, i.e., the accessor is only referenced by 'primitive.indices'.
GltfDrawMode
The type of primitives to render. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/mesh.primitive.schema.json
GltfInterpolationType
Interpolation algorithm. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/animation.sampler.schema.json
GltfMagnificationFilterMode
Magnification filter mode. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/sampler.schema.json
GltfMinFilterMode
Minification filter mode. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/sampler.schema.json
GltfWrapMode
Texture wrap mode. https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/schema/sampler.schema.json


Coding is fun and addictive
This application gives the current weather and 5 days forecast for a city, state or country.
This app generates a random password based on the criterias selected by the user.
App to find hotels availability for a searched for a destination.(I was 1/3 contributors)


These files contain a CSS3/HTML5 scaffolding. The markup and styling contained within may be used as a bootstrap for a variety of web projects, ranging from simple, static websites to full-fledged web applications built with the framework of your choice.


Charles is a classically-trained coder and master of reducing problems to component parts in order to build overcomplicated automata which technically accomplish the intended task. He got into programming because he liked Infinifactory so much that he realized he might be able to take those skills elsewhere. A graduate of Reed College in Portland, OR he majored in Philosophy and Not Using His Degree.
In his free time, he plays and writes about Magic: The Gathering and hosts collaborative art-game parties.
| vacation-site | HTML, CSS, Bootstrap Site for a vacation destination, demonstrating Bootstrap formatting. | |
| week-in-review | HTML, CSS, Bootstrap Site summarizing a week's worth of code school work. | |
| wikipedia-home | HTML, CSS, Bootstrap A recreation of the Wikipedia frontpage coded from scratch. | |
| shelter-site | HTML, CSS A site for an animal shelter, used to demonstrate column-formatting and responsive design w/o Bootstrap. | |
| interior-decorator | HTML, CSS A site to demonstrate column formatting w/o Bootstrap. |
| resort | HTML, CSS Multi-page site for a resort, demonstrating various basic HTML and CSS concepts. | |
| boring-lecture | HTML, CSS A site about a lecture. Quite boring. | |
| blogging-site | HTML, CSS A mock-up blog site demonstrating usage of divs to create repeating content blocks. | |
| resume-site | HTML, CSS A rough draft for this site, created to demonstrate the usage of classes to style HTML. | |
| fav-band | A site for a favorite band, demonstrating rudimentary page formatting using CSS. |


parseTaskList Parses a task list file. inputFile a task list in Excel format. The file must contain a sheet named TASKS, which in turn may contain the following column headers (note, all rows starting with a non-empty cell are removed. The first row after that is considered the headers): ID the only required header. Each task must have a unique id (string or numeric). Tasks can span multiple rows, only the first row in each task should have an id DESCRIPTION description of the task IN allowed input(s) for the task. Metabolite names should be on the form "model.metName[model.comps]". Several inputs can be delimited by ";". If so, then the same bounds are used for all inputs. If that is not wanted, then use several rows for the task IN LB lower bound for the uptake of the metabolites in the row (opt, default 0 which corresponds to a minimal uptake of 0 units) IN UB upper bound for the uptake of the metabolites in the row (opt, default 1000 which corresponds to a maximal uptake of 1000 units) OUT allowed output(s) for the task (see IN) OUT LB lower bound for the production of the metabolites in the row (opt, default 0 which corresponds to a minimal production of 0 units) OUT UB upper bound for the production of the metabolites in the row (opt, default 1000 which corresponds to a maximal production of 1000 units) EQU equation to add. The equation should be on the form "0.4 A + 2 B <=> (or =>) C" and the metabolites should be on the form "model.metName[model.comps]" (opt) EQU LB lower bound for the equation (opt, default -1000 for reversible and 0 for irreversible) EQU UB upper bound for the equation (opt, default 1000) CHANGED RXN reaction ID for which to change the bounds for. Several IDs can be delimited by ";". If so, then the same bounds are used for all reactions. If that is not wanted, then use several rows for the task CHANGED LB lower bound for the reaction CHANGED UB upper bound for the reaction SHOULD FAIL true if the correct behavior of the model is to not have a feasible solution given the constraints (opt, default false) PRINT FLUX true if the function should print the corresponding flux distribution for a task. Can be useful for testing (opt, default false) taskStruct array of structures with the following fields id the id of the task description the description of the task shouldFail true if the task should fail printFluxes true if the fluxes should be printed comments string with comments inputs cell array with input metabolites (in the form metName[comps]) LBin array with lower bounds on inputs (default, 0) UBin array with upper bounds on inputs (default, 1000) outputs cell array with output metabolites (in the form metName[comps]) LBout array with lower bounds on outputs (default, 0) UBout array with upper bounds on outputs (default, 1000) equations cell array with equations (with mets in the form metName[comps]) LBequ array with lower bounds on equations (default, -1000 for reversible and 0 for irreversible) UBequ array with upper bounds on equations (default, 1000) changed cell array with reactions to change bounds for LBrxn array with lower bounds on changed reactions UBrxn array with upper bounds on changed reactions This function is used for defining a set of tasks for a model to perform. The tasks are defined by defining constraints on the model, and if the problem is feasible, then the task is considered successful. In general, each row can contain one constraint on uptakes, one constraint on outputs, one new equation, and one change of reaction bounds. If more bounds are needed to define the task, then several rows can be used for each task. To perform the task use checkTasks or fitTasks. NOTE: The general metabolites "ALLMETS" and "ALLMETSIN[comps]" can be used as inputs or outputs in the similar manner to normal metabolites. This is a convenient way to, for example, allow excretion of all metabolites to check whether it's the synthesis of some metabolite that is limiting or whether it's the degradation of some byproduct. One important difference is that only the upper bounds are used for these general metabolites. That is, you can only say that uptake or excretion is allowed, not that it is required. This is to avoid conflicts where the constraints for the general metabolites overwrite those of the real ones. Usage: taskStruct=parseTaskList(inputFile) Rasmus Agren, 2017-02-28
0001 function taskStruct=parseTaskList(inputFile) 0002 % parseTaskList 0003 % Parses a task list file. 0004 % 0005 % inputFile a task list in Excel format. The file must contain a 0006 % sheet named TASKS, which in turn may contain the 0007 % following column headers (note, all rows starting with 0008 % a non-empty cell are removed. The first row after that 0009 % is considered the headers): 0010 % ID 0011 % the only required header. Each task must have a 0012 % unique id (string or numeric). Tasks can span multiple 0013 % rows, only the first row in each task should have 0014 % an id 0015 % DESCRIPTION 0016 % description of the task 0017 % IN 0018 % allowed input(s) for the task. Metabolite names 0019 % should be on the form 0020 % "model.metName[model.comps]". Several inputs 0021 % can be delimited by ";". If so, then the same 0022 % bounds are used for all inputs. If that is not 0023 % wanted, then use several rows for the task 0024 % IN LB 0025 % lower bound for the uptake of the metabolites in 0026 % the row (opt, default 0 which corresponds to a 0027 % minimal uptake of 0 units) 0028 % IN UB 0029 % upper bound for the uptake of the metabolites in 0030 % the row (opt, default 1000 which corresponds to a 0031 % maximal uptake of 1000 units) 0032 % OUT 0033 % allowed output(s) for the task (see IN) 0034 % OUT LB 0035 % lower bound for the production of the metabolites in 0036 % the row (opt, default 0 which corresponds to a 0037 % minimal production of 0 units) 0038 % OUT UB 0039 % upper bound for the production of the metabolites in 0040 % the row (opt, default 1000 which corresponds to a 0041 % maximal production of 1000 units) 0042 % EQU 0043 % equation to add. The equation should be on the form 0044 % "0.4 A + 2 B <=> (or =>) C" and the metabolites 0045 % should be on the form 0046 % "model.metName[model.comps]" (opt) 0047 % EQU LB 0048 % lower bound for the equation (opt, default -1000 0049 % for reversible and 0 for irreversible) 0050 % EQU UB 0051 % upper bound for the equation (opt, default 1000) 0052 % CHANGED RXN 0053 % reaction ID for which to change the bounds for. 0054 % Several IDs can be delimited by ";". If so, 0055 % then the same bounds are used for all reactions. If 0056 % that is not wanted, then use several rows for the task 0057 % CHANGED LB 0058 % lower bound for the reaction 0059 % CHANGED UB 0060 % upper bound for the reaction 0061 % SHOULD FAIL 0062 % true if the correct behavior of the model is to 0063 % not have a feasible solution given the constraints 0064 % (opt, default false) 0065 % PRINT FLUX 0066 % true if the function should print the corresponding 0067 % flux distribution for a task. Can be useful for 0068 % testing (opt, default false) 0069 % 0070 % taskStruct array of structures with the following fields 0071 % id the id of the task 0072 % description the description of the task 0073 % shouldFail true if the task should fail 0074 % printFluxes true if the fluxes should be printed 0075 % comments string with comments 0076 % inputs cell array with input metabolites (in the form metName[comps]) 0077 % LBin array with lower bounds on inputs (default, 0) 0078 % UBin array with upper bounds on inputs (default, 1000) 0079 % outputs cell array with output metabolites (in the form metName[comps]) 0080 % LBout array with lower bounds on outputs (default, 0) 0081 % UBout array with upper bounds on outputs (default, 1000) 0082 % equations cell array with equations (with mets in the form metName[comps]) 0083 % LBequ array with lower bounds on equations (default, -1000 for 0084 % reversible and 0 for irreversible) 0085 % UBequ array with upper bounds on equations (default, 1000) 0086 % changed cell array with reactions to change bounds for 0087 % LBrxn array with lower bounds on changed reactions 0088 % UBrxn array with upper bounds on changed reactions 0089 % 0090 % This function is used for defining a set of tasks for a model to 0091 % perform. The tasks are defined by defining constraints on the model, 0092 % and if the problem is feasible, then the task is considered successful. 0093 % In general, each row can contain one constraint on uptakes, one 0094 % constraint on outputs, one new equation, and one change of reaction 0095 % bounds. If more bounds are needed to define the task, then several rows 0096 % can be used for each task. To perform the task use checkTasks or 0097 % fitTasks. 0098 % 0099 % NOTE: The general metabolites "ALLMETS" and "ALLMETSIN[comps]" 0100 % can be used as inputs or outputs in the similar manner to normal 0101 % metabolites. This is a convenient way to, for example, allow excretion of 0102 % all metabolites to check whether it's the synthesis of some metabolite 0103 % that is limiting or whether it's the degradation of some byproduct. One 0104 % important difference is that only the upper bounds are used for these general 0105 % metabolites. That is, you can only say that uptake or excretion is 0106 % allowed, not that it is required. This is to avoid conflicts where the 0107 % constraints for the general metabolites overwrite those of the real 0108 % ones. 0109 % 0110 % Usage: taskStruct=parseTaskList(inputFile) 0111 % 0112 % Rasmus Agren, 2017-02-28 0113 % 0114 0115 %Load the tasks file 0116 [raw,flag]=loadSheet(loadWorkbook(inputFile), 'TASKS'); 0117 if flag~=0 0118 EM=['Could not load sheet "TASKS" from ' inputFile]; 0119 dispEM(EM); 0120 end 0121 0122 %Remove all lines starting with "#" (or actually any character) and all 0123 %empty columns 0124 raw=cleanSheet(raw); 0125 0126 %Captions 0127 columns={'ID';'DESCRIPTION';'IN';'IN LB';'IN UB';'OUT';'OUT LB';'OUT UB';'EQU';'EQU LB';'EQU UB';'CHANGED RXN';'CHANGED LB';'CHANGED UB';'SHOULD FAIL';'PRINT FLUX';'COMMENTS'}; 0128 0129 %Match the columns 0130 [I, colI]=ismember(columns,raw(1,:)); 0131 0132 %Check that the ID field is present 0133 if I(1)==0 0134 EM='The TASKS sheet must have a column named ID'; 0135 dispEM(EM); 0136 end 0137 0138 %Add default bounds where needed 0139 for i=[4 5 7 8] 0140 I=cellfun(@isempty,raw(:,colI(i))); 0141 if i==5 || i==8 0142 raw(I,colI(i))={1000}; 0143 else 0144 raw(I,colI(i))={0}; 0145 end 0146 end 0147 0148 %Create an empty task structure 0149 eTask.id=''; 0150 eTask.description=''; 0151 eTask.shouldFail=false; 0152 eTask.printFluxes=false; 0153 eTask.comments=''; 0154 eTask.inputs={}; 0155 eTask.LBin=[]; 0156 eTask.UBin=[]; 0157 eTask.outputs={}; 0158 eTask.LBout=[]; 0159 eTask.UBout=[]; 0160 eTask.equations={}; 0161 eTask.LBequ=[]; 0162 eTask.UBequ=[]; 0163 eTask.changed={}; 0164 eTask.LBrxn=[]; 0165 eTask.UBrxn=[]; 0166 0167 %Main loop 0168 taskStruct=[]; 0169 task=eTask; 0170 if isnumeric(raw{2,colI(1)}) 0171 task.id=num2str(raw{2,colI(1)}); 0172 else 0173 task.id=raw{2,colI(1)}; 0174 end 0175 task.description=raw{2,colI(2)}; 0176 if ~isempty(raw{2,colI(15)}) 0177 task.shouldFail=true; 0178 end 0179 if ~isempty(raw{2,colI(16)}) 0180 task.printFluxes=true; 0181 end 0182 if ~isempty(raw{2,colI(17)}) 0183 task.comments=raw{2,colI(17)}; 0184 end 0185 0186 for i=2:size(raw,1) 0187 %Set the inputs 0188 if ischar(raw{i,colI(3)}) 0189 inputs=regexp(raw{i,colI(3)},';','split'); 0190 task.inputs=[task.inputs;inputs(:)]; 0191 task.LBin=[task.LBin;ones(numel(inputs),1)*raw{i,colI(4)}]; 0192 task.UBin=[task.UBin;ones(numel(inputs),1)*raw{i,colI(5)}]; 0193 end 0194 %Set the outputs 0195 if ischar(raw{i,colI(6)}) 0196 outputs=regexp(raw{i,colI(6)},';','split'); 0197 task.outputs=[task.outputs;outputs(:)]; 0198 task.LBout=[task.LBout;ones(numel(outputs),1)*raw{i,colI(7)}]; 0199 task.UBout=[task.UBout;ones(numel(outputs),1)*raw{i,colI(8)}]; 0200 end 0201 %Add new rxns 0202 if ischar(raw{i,colI(9)}) 0203 task.equations=[task.equations;raw{i,colI(9)}]; 0204 if ~isempty(raw{i,colI(10)}) 0205 task.LBequ=[task.LBequ;raw{i,colI(10)}]; 0206 else 0207 if any(strfind(raw{i,colI(9)},'<=>')) 0208 task.LBequ=[task.LBequ;-1000]; 0209 else 0210 task.LBequ=[task.LBequ;0]; 0211 end 0212 end 0213 if ~isempty(raw{i,colI(11)}) 0214 task.UBequ=[task.UBequ;raw{i,colI(11)}]; 0215 else 0216 task.UBequ=[task.UBequ;1000]; 0217 end 0218 end 0219 %Add changed bounds 0220 if ischar(raw{i,colI(12)}) 0221 changed=regexp(raw{i,colI(12)},';','split'); 0222 task.changed=[task.changed;changed(:)]; 0223 task.LBrxn=[task.LBrxn;ones(numel(changed),1)*raw{i,colI(13)}]; 0224 task.UBrxn=[task.UBrxn;ones(numel(changed),1)*raw{i,colI(14)}]; 0225 end 0226 0227 %Check if it should add more constraints 0228 if i<size(raw,1) 0229 if isempty(raw{i+1,colI(1)}) 0230 continue; 0231 end 0232 end 0233 0234 taskStruct=[taskStruct;task]; 0235 task=eTask; 0236 if i<size(raw,1) 0237 if isnumeric(raw{i+1,colI(1)}) 0238 task.id=num2str(raw{i+1,colI(1)}); 0239 else 0240 task.id=raw{i+1,colI(1)}; 0241 end 0242 task.description=raw{i+1,colI(2)}; 0243 if ~isempty(raw{i+1,colI(15)}) 0244 task.shouldFail=true; 0245 end 0246 if ~isempty(raw{i+1,colI(16)}) 0247 task.printFluxes=true; 0248 end 0249 if ~isempty(raw{i+1,colI(17)}) 0250 task.comments=raw{i+1,colI(17)}; 0251 end 0252 end 0253 end 0254 0255 %Should add more checks, such as unique IDs and missing headers 0256 0257 end