Frequently Asked Questions
Why is this study being done in Kenya?
There is a need to assess and track the oceans comprehensively in Kenya by combining the best available social, economic, and environmental information. This can help chart a path forward to increase economic opportunities and human well being while sustainably managing these critical resources.
We will develop a repeatable, transparent method for measuring progress toward healthy oceans in Kenya. The ultimate goal is to enable our community to prioritize policy decisions that affect the sustainability of our ocean resources.
What are the timeline and spatial scale of this project?
To be updated
What year does this OHI assessment represent?
The assessment will be completed in [year to be completed]. It will represent the ocean health in this year using the best available information that will continue to be updated in the future. The most recent data available will be incorporated into the assessment for each goal, so years may vary depending on the data set. This first assessment will serve as our baseline for future assessments.
Will there be future assessments?
OHI assessments can be updated annually or on other management time frames with less effort than its initial development. This is because all analysis is done with open source collaborative software (R, RStudio, Git, GitHub) and can be updated with the most recent data. Kenya OHI assessments will continue as long as there is/or are ongoing interest and support from ocean management agencies and stakeholders.
Will the data layers be available?
Yes. All data layers will be available on this website when they are finalized. OHI assessments depend on data that are freely available and updated regularly so assessments can be repeated to track changes in ocean health.
What does each goal score mean?
Scores for each goal represent the present status for each goal measured against a set reference point (50% of the score) and the likely future status of the goal (50% of the score). Likely future status is assessed based on the status trend (status score over the last 5 years), resilience actions (policies, initiatives, habitat protection, enforcement, local stewardship, etc), and cumulative pressures (human impacts to ocean habitats, pollution, social pressures, economic indicators, etc).
How are each goal's reference points set?
Goals are developed with the best information available, often with the help of stakeholders and experts. Reference points are specific to each goal and can be temporal, spatial, established targets (management targets, policies or mandates, or established goal), or production function or established model (example: maximum sustainable yield equation). Goal reference points are set to use SMART principles that are Specific, Measurable, Ambitious, Realistic, and Time-bound.
What proportion of the index contains things that local management can change or influence?
Goal scores will respond to management targets through interactions with resilience layers. Some of the goals have management targets as set reference points and so those goals will directly change as we approach those targets.
How does the OHI relate to ongoing ocean management efforts?
Management strategies can be tested with the OHI to understand cross-sector impacts and benefits. The OHI is designed to provide context for management decisions and explore actions (in part through setting SMART reference points) that support sustainable ocean use. This assessment can be used to communicate how achieving these targets will support ocean health in Kenya.
How adaptive is OHI to adaptive management?
The OHI is very adaptable and can incorporate new management targets, policies, and new scientific research. This information is generally incorporated into pressure or resilience scores for each goal. For example, new research on the impacts of marine debris can be incorporated as a more precise pressure layer for clean water and tourism goals. If goal metrics and reference points are updated then the goal score not be comparable to prior assessments. However, previous assessments can be back-calculated using the updated methods to make them comparable to track progress. Updating goal metrics and reference points will be done in future assessments if there is consensus to do so and updating the goal will increase our understanding of sustainable ocean use and ocean health.
How can we have a large impact and create meaningful change using the OHI?
The OHI incorporates diverse stakeholders to create a coalition for ocean health. The index will work to incorporate management and local stewardship actions to incentivize actions across private partners, agencies, managers, and policymakers to increase sustainable ocean use and ultimately ocean health.


text:
- What fortify means?
- How do you spell claim?
- Is Rawe a Scrabble word?
- What does a faint scent mean?
- Is JAWE a Scrabble word?
- Is Lawe a Scrabble word?
- How do you spell faint or feint?
- What does fortify yourself mean?
- What does it mean to fortify food?
- How do you fortify something?
- What color is faint?
- What is the meaning of feint?
- Is Faint a Scrabble word?
- How do you use feint in a sentence?
- Is Tawe a word?
What fortify means?
: to make strong: such as.
a : to strengthen and secure (a place, such as a town) by forts or batteries a city fortified by high walls.
b : to give physical strength, courage, or endurance to fortified by a hearty meal..
How do you spell claim?
Correct spelling for the English word "claim" is [klˈe͡ɪm], [klˈeɪm], [k_l_ˈeɪ_m] (IPA phonetic alphabet).
Is Rawe a Scrabble word?
RAWE is not a valid scrabble word.
What does a faint scent mean?
: not clearly seen, heard, tasted, felt, etc. We heard a faint noise. a faint smell/odor/aroma.
Is JAWE a Scrabble word?
JAWE is not a valid scrabble word.
Is Lawe a Scrabble word?
No, lawe is not in the scrabble dictionary.
How do you spell faint or feint?
Summary: Faint or Feint?As a verb and a noun, the word faint refers to a loss of consciousness. However, it can also be used as an adjective meaning "weak" or "dizzy."The verb and noun versions of feint both refer to a deceptive attack or movement. As such, this term is used when describing a fight or battle.
What does fortify yourself mean?
to make strong; impart strength or vigor to: to fortify oneself with a good breakfast.
What does it mean to fortify food?
A food that has extra nutrients added to it or has nutrients added that are not normally there. Examples are milk with vitamin D added and salt with iodine added.
How do you fortify something?
fortifyfortify something (against somebody/something) to make a place more able to resist attack, especially by building high walls. … fortify somebody/yourself (against somebody/something) to make somebody/yourself feel stronger, braver, etc. … to make a feeling or an attitude stronger.More items…
What color is faint?
The definition of faint is something without strength such as a very quiet sound or a very light color. An example of faint is a very pale yellow painted on a wall.
What is the meaning of feint?
: something feigned specifically : a mock blow or attack on or toward one part in order to distract attention from the point one really intends to attack The boxer made a feint with his right, then followed with a left hook. feint. verb. feinted; feinting; feints.
Is Faint a Scrabble word?
FAINT is a valid scrabble word.
How do you use feint in a sentence?
Feint sentence examplesInvasion was but a feint, executed by an army too weak to do much harm. … Grant felt that this was a mere feint to screen some other move. … This game was not for the feint of heart. … This process is not for the feint of heart.More items…
Is Tawe a word?
No, tawe is not in the scrabble dictionary.

source: openbmb/Ultra-FineWeb


text:
Farmers call for extension of timeline to move their cattle
The Kwahu Afram plains Cattle Farmers Association (KAPCFA) is calling for a possible extension of a five-day ultimatum given by government for cattle farmers to move their cattle into the folder bank.
Speaking to The Ghana Report on the issue, General Secretary of the association, Besah Amevor stressed the need for more time to enable the farmers move their herd into the folder bank.
"The five-day ultimatum is too short, looking at the number of farmers that we have currently, we will not be able to beat the deadline, they should at least extend it to two months," he reiterated.
Mr. Amevor explained the association had presented a total of eighty-three (83) cattle for the pilot project of the folder bank but days later the whereabouts of the cattle could not traced by managers of the folder bank.
"The only explanation given by managers was that part of those 75 untraceable cattle are either dead or missing and some have been used in preparing of food to feed students in government's School feeding Program," he expressed worriedly.
Mr. Amevor Besah also raised concerns about a monthly charge of GH₵ 7 cedis taken from farmers as part of their contribution in maintaining the facility.
"Each farmer is made to pay GH 7 cedis per head so assuming a farmer has 500 cattle, and has to multiply the amount by the number of cattle each farmer he or she has. How can the farmer afford to pay such an amount," he lamented bitterly.
He indicated the current location sighted for the project can only cater for ten thousand cattle while the association has record of more than seventy thousand cattle.
He said, "This is going to cause overcrowding in the banks which would not help the health condition of the animals".
The General secretary is therefore calling for a possible extension of the five-day ultimatum and a dialogue between all stakeholders in finding a lasting and peaceful solution in respect of these cattle grazing and folder bank issues in the district.

source: m-a-p/FineFineWeb


text:
the seed co
Shipping calculated at checkout.
This popular, easy-to-grow annual is known as cilantro or Chinese parsley when grown for its distinctively flavored leaves. It's called coriander when grown for its aromatic, flavourful seeds. Plants grow 18-24" (45-60cm) tall. The leaves are used in salads, salsa, and numerous Mexican and Oriental dishes. The seeds are used to flavor pastries, beans, meats, and fish dishes.
15-18 Days to Sprout
65-70 Days to Maturity


text:
Comfortable solutions of the product line 'Softline' allow the user an efficient acquisition and evaluation of specific test data, for example from audio or video analyses.
In combination with the test software TestManager CE the PC controlled system of the product line 'Modline' offer powerful measuring and control units for all kinds of complex test systems.
The different USB hubs of MCD are absolute innovations and the world's first of their kind. Together with further control systems they belong to the product line 'Conline'.
The products of the 'Boardline' are especially for the test engineering developed boards for multiplexing and various kinds of signal processing. These boards are also used in the MCD test systems.
This self-developed device for audio and video measurements is a sign for the innovative strength of MCD Elektronik. It plays an increasing role in tests of infotainment systems.
All of the application areas for imaging can be solved with products of the product line 'Pixline', hardware components as well as software solutions for industrial imaging tasks.
Measurement Software – Comfortable software solutions from MCD allow the user an efficient acquisition and evaluation of specific test data.
Modular Measurement Systems – These MCD measuring systems controlled by a PC offer a powerful measuring- and control unit for complex test systems.
Control Systems - With these components by MCD, building up of complex systems will be essentially simplified and controlled.
Boards – Especially for the test engineering developed MCD boards for multiplexing and signal processing.
Audio-/Video-Measurement - PC supported MCD hardware components, which offer a reasonable alternative in comparison to separate equipments.
Imaging – Hardware components for all kinds of image processing.


text:
A Framework for Managing Systems Modes and Architecture －Ks Chart－
When we build a high complex system or a large-scale system, the engineering framework of the systems
engineering is known as an effective method. On the other hand, it yet has been hardly employed in the Japanese industry. It
had few department of engineering system subjects which taught this as one of these causes in the domestic university, and
the root cause thought that there was that the students whom there was not of the work experience understood this
engineering framework intuitively. According to this situation, we paid attention to six important concepts for the concurrent
engineering of the systems engineering and developed KS chart.
Keywords - Systems Engineering, Conceptual Mold, Consistency, View.


text:
It's not exactly a shock to learn that a lot of young people go online just to pass the time away or to have fun. A new study from Pew Internet has apparently confirmed that assumption. In a survey of 2,260 adults, 81 percent of the people who were between the ages of 18 to 29 said that they have gone online on occasion just to have some fun or pass the time. Indeed, 53 percent of the people in that same age bracket said that at the time of the survey, they had gone online just to have fun the previous day.
The survey results show that the older a person gets, the less likely they are to just go online to pass the time away. 66 percent of people aged 30-49 admitted to spending time on the Internet at some point for no particular reason. 50 percent of people aged 50-64 said that they surfed the Internet in that way but only 23 percent of people aged 65 or above said they used the Internet for no specific reason.
Pew Internet claims that these results are higher than when they asked the same questions to a survey group in 2009 and much higher than the survey results taken in the middle of the last decade.
So what does all of this really mean? The research group says this rise of "fun" Internet use has coincided with the rise of faster broadband connections, the increase of social networking and the use of more video on the Internet.
It added, "All of those factors are strongly associated with people who use the internet for fun: If they have broadband, if they are online video consumers, if they use social media of any kind – especially social networking sites – they are much more likely than others to go online to pass the time."

source: HuggingFaceFW/fineweb-edu


text:
Researching The History Of A Country House
A Guide to Sources & Their Use
Date of publication: 2010
The origins of this book date from the early 1990s when the author began to research the history of his own country house in the Kent Downs at Trimworth, near Canterbury. These early investigations led him to see how Trimworth could be used as a case study in a voyage of discovery which others could also enjoy. The book will be most relevant to the owners of country houses, providing a methodology for the less experienced to trace an exciting pathway of inquiry. It is based on an exploration of a wide range of maps and documentary sources available from local, regional and national archive centres. This fully illustrated guide encourages a systematic process of research into the fascinating and topical subject of house history and makes frequent reference to online sources.


Miitomo Instructions
Krang Mii Image by!SiC
QR Code for Krang by!SiC
Mii Plaza Name: Krang
Created by:!SiC
Supervillain from Dimension X in the Teenage Mutant Ninja Turtles universe.
Tags: evil, supervillain, teenage mutant ninja turtles, tmnt, villain
Categories: Toons
Created on the: Wii
Miitomo Instructions:
Start a new character from scratch and make these changes.
Headrow 1 column 2Type: 2nd row, 1st column
row 4 column 3Facial Structure: 2nd row, 6th column
row 1 column 2Skin Color: 1st row, 2nd column
Eyebrowseyebrow shape
row 2 column 4Color: 2nd row, 4th column
rotate clockwiseRotate: 6 clockwise
make biggerSize: 4 bigger
make widerHorizontal: 10 wider
move downVertical: 5 down
Eyeseye shape
row 2 column 1Color: 2nd row, 1st column
make smallerSize: 2 smaller
make widerHorizontal: 2 wider
move downVertical: 1 down
Nosenose shape
make smallerSize: 2 smaller
move upVertical: 4 up
Mouthmouth shape
make biggerSize: 2 bigger
move upVertical: 4 up
Mustacherow 2 column 2Type: 2nd row, 2nd column
make smallerSize: 4 smaller
move upVertical: 9 up
Facial Hair Colorrow 2 column 4Color: 2nd row, 4th column
Size (1st tab)heightHeight: 0%
weightWeight: 0%
Click "Next"
NicknameEnter NicknameKrang


You Are Here:
Configuring GPS Notification Alarm Thresholds
SecureSync allows you to configure Minor and Major alarm thresholds for the GNSS receiver. This is done by setting the minimum number of satellites the receiver can track for a set time before an alarm is triggered. If both conditions are met, i.e. the reception quality falls below the set number of satellites for the set amount of time, an alarm is triggered.
The alarm notification feature described below allows you to be notified of a potential reception issue BEFORE the GNSS reference becomes invalid. This may be useful e.g., to notify system operators of a deteriorating signal reception before SecureSync loses the GNSS reference.
Note that SecureSync itself has a pre-defined minimum number of satellites that must be tracked in order for GNSS to be considered a valid reference. The minimum number of satellites depends e.g., on your receiver mode, the GNSS signal reception in the area where your antenna is located, and the type of receiver in your unit. In Stationary mode, and for SAASM units, the minimum number of satellites is normally 4 (four). Hence, it would be prudent to set the Minor Alarm Threshold to 8, and the Major Alarm Threshold to 6.
Note: While GPS Notification Alarms can be used in Mobile GNSS receiver mode, it is not advisable.
To determine which GNSS receiver mode your SecureSync is using and how many satellites your SecureSync unit is currently receiving, navigate to INTERFACES > REFERENCES: GNSS 0. See also Reviewing the GNSS Reference Status.
To set the GPS Alarm Thresholds:
 1. Navigate to MANAGEMENT > OTHER: Notifications, and choose the GPS tab.
 2. At the bottom of the window, locate the ALARM THRESHOLD panel:
 3. In the Minimum Satellites fields enter the minimum number of satellites that must be available before the alarm is triggered. The alarm will be triggered when the number of satellites available is BELOW this number.
 4. In the Duration Below Threshold (s) fields, enter the time in seconds that the system must be below the threshold set in the Minimum Satellites field before an alarm is triggered. The alarm will be triggered when this time is reached.
 By default, this timeout value is set to 0 seconds: As soon as the receiver drops below the minimum number of satellites, the associated alarm is triggered. A delay of e.g., 5 seconds, however, would not trigger an alarm if the number of received satellites drops below the specified number for only 3 seconds.
You can configure this event to cause either a Minor alarm, or a Major alarm, or both.
To learn more about Minor and Major alarms, see Minor and Major Alarms.
Note that the GNSS receiver must initially be tracking more than the configured number of satellites in order for this alarm to be triggered (the alarm is triggered when the receiver falls below the number of Minimum Satellites you specified above).


text:
Poplar Tree was recognized as a 2020 National Blue Ribbon School!
Poplar Tree Elementary is incredibly proud of receiving this award, and know that this recognition is not the result of one or two individuals. This award is a result of outstanding teamwork. Our team consists of our fabulous staff who work hard and are committed to the students; our students who show perseverance when things are hard; and our parents who help support the learning at home. We firmly believe you can not achieve success in isolation and by working together great things happen for kids. So whether we are dealing with a Pandemic, technology issues, or a challenging math problem - we are all in this together and when we support each other great things happen!
Poplar Tree Elementary was one of the first schools in Fairfax County Public Schools (FCPS) to participate in the FCPSon program, assigning personal devices to all students and engaging instructional staff in professional development to help them weave technology into their classes. This technology—along with Project-Based Learning—resulted in a shift to a student-centered learning environment along with offering student leadership opportunities, such as the Paw Tech Squad, whose members support teachers and students with technology and even offer professional development. Teachers engage students in a balanced literacy framework for Language Arts, a workshop model for math, and a hands-on approach for science and social studies. Creative and critical thinking skills and problem-solving skills are encouraged by teachers across the curriculum. Learn more!
What are National Blue Ribbon Schools?
U.S. Secretary of Education Betsy DeVos today recognized 367 schools as National Blue Ribbon Schools for 2020. The recognition is based on a school's overall academic performance or progress in closing achievement gaps among student subgroups.
"Congratulations to this year's National Blue Ribbon School awardees," said Secretary DeVos. "It's a privilege to recognize the extraordinary work you do to meet students' needs and prepare them for successful careers and meaningful lives."
The coveted National Blue Ribbon Schools award affirms the hard work of educators, families, and communities in creating safe and welcoming schools where students master challenging and engaging content. Now in its 38th year, the National Blue Ribbon Schools Program has bestowed almost 10,000 awards to more than 9,000 schools, with some schools winning multiple awards. Schools are eligible for nomination after five years.
The Education Department recognizes all schools in one of two performance categories, based on all student scores, student subgroup scores and graduation rates:
- Exemplary High Performing Schools – These are among their state's highest performing schools as measured by state assessments or nationally normed tests.
- Exemplary Achievement Gap Closing Schools – These are among their state's highest performing in closing achievement gaps between a school's student groups and all students.
Up to 420 schools may be nominated each year. The U.S. Education Department invites National Blue Ribbon School nominations from the top education official in all states, the District of Columbia, Puerto Rico, the Virgin Islands, the Department of Defense Education Activity, and the Bureau of Indian Education. Private schools are nominated by the Council for American Private Education (CAPE).


text:
Guide to Historic Hamilton
History of Bitterroot and Hamilton Told
Copper Kings and women in goat-drawn carts are part of the Bitterroot valley's past that come to life in the Montana Historical Society Press's A Guide to Historic Hamilton.
The book, written by Chere Jiusto of the Society's State Historic Preservation Office, is the fourth in the Press's Montana Mainstreets series.
The book includes a lively text, maps, and historic photographs of the town founded in 1890 by Cooper King Marcus Daly, whose Anaconda Company sawmill and private Bitter Root Stock Farm dominated the community through the late nineteenth century.
Like all the Mainstreets guides, Guide to Historic Hamilton provides an easy-to-read and understandable introduction to the history of a unique Montana community through a look at its historic buildings
The legacy of Hamilton's rich history can be seen in the Georgian-style Colonial-revival mansion built by Daly's wife Margaret, which is among the most magnificent homes in Montana; the collegiate Gothic-style Rocky Mountain Laboratory, where scientists battled against Rocky Mountain spotted fever; and dozens of other historical buildings and homes.
Alongside stories of Hamilton's well-known citizens are stories of people like Martha Reinkeh, who lived in the 1880s in what is believed to be the oldest house still standing in the town today.
Known by locals as a cantankerous eccentric, Reinkeh traveled in a goat-drawn cart until her goat was shot after butting a businessman through a store window.
Doug Johnson, director of the Daly Mansion, brought the community together on the project and helped raise money to fund it. Russ Lawrence, charter member of the Daly Mansion Preservation Trust, wrote an afterword for the book that focuses on the future of the community.
The 74-page book includes 44 historic photographs, 11 maps, and other illustrations and sells for $9.95, as do the other books in the series. It is available in bookstores or can be ordered directly plus shipping and handling by calling toll-free _PHONE_.


text:
Computer » Input Output Devices
In laser printer which type of laser is used?
A laser printer is basically a photocopier. Charge is sprayed onto a semiconducting drum, and the semiconductor laser is used to selectively cause areas to conduct and thus lose their charge.
* The charge is then used to attract toner, which is then transferred to the paper. Finally, a fuser unit melts the toner onto the paper so it doesn't just blow away again.
* It doesn't take much light to activate the semiconductor. Lasers are used because they can be focused on a precise point, not for power.


C,A8:A="Green"))
=AVERAGE(FILTER(C8:C,A8:A="Grey"))
=AVERAGE(FILTER(C8:C,A8:A="Hazel"))
=AVERAGE(FILTER(C8:C,A8:A="Other"))
Fig 1 Sheet overview
Fig 2 Sheet Column Numbering/Year Function
Fig 3 Sheet Ey Colour Averaging Function
Custom Spreadsheet Functions
Google Spreadsheet functions list: _URL_
Cumulatively sum only numbers that belong to a certain username (string) in a separate column? I'd like to use arrayformula so cells autofill with data without dragging formula manually. E.g. running total for user A:
User Amount Running Total for A
A 1 1
B 2
A 4 5
A 3 8
B 5
A 2 10
If the data starts in row 2, then try:
=ArrayFormula(IF(A2:A="A",SUMIF(IF(A2:A="A",ROW(A2:A),ROWS(A:A)+1),"<="&ROW(A2:A),B2:B),))
Blue:
=ArrayFormula(IF(D2:D="Blue",SUMIF(IF(D2:D="Blue",ROW(D2:D),ROWS(E:E)+1),"<="&ROW(D2:D),E2:E),))
Brown:
=ArrayFormula(IF(D3:D="Brown",SUMIF(IF(D3:D="Brown",ROW(D3:D),ROWS(E:E)+1),"<="&ROW(D3:D),E3:E),))
Green:
=ArrayFormula(IF(D4:D="Green",SUMIF(IF(D4:D="Green",ROW(D4:D),ROWS(E:E)+1),"<="&ROW(D4:D),E4:E),))
_URL_
Brown:
=SUM(FILTER(E:E,D:D="Brown"))
Green:
=SUM(FILTER(E:E,D:D="Green"))
Charting Google Form Responses
Base-line Assessment Form, Orientation & Homework Quiz
_URL_
Prepare a Google Form to provide an on-line assessment and self-grading quiz.
The example quiz used the Google Sheet Add-On Flubaroo - A free tool that helps quickly grade multiple-choice and similar assignments:
 - Computes average assignment score.
 - Computes average score per question, and flags low-scoring questions.
 - Displays a grade distribution graph.
 - Option to email each student their grade, and an answer key.
 - Ability to send individualized feedback to each student.
More detail is available on how to set up a Flubaroo quiz
Google Form with Flubaroo Student Responses Fig. Google form with Student Response Sheet with Flubaroo Grades sheet
Transpose Rows & Columns
In LibreOffice Calc, there is a way to "rotate" a spreadsheet so that rows become columns and columns become rows.
 1. Select the cell range that you want to transpose.
 2. Choose Edit - Cut.
 3. Click the cell that is to be the top left cell in the result.
 4. Choose Edit - Paste Special.
 5. In the dialog, mark Paste all and Transpose.
 6. If you now click OK the columns and rows are transposed.

howtos/google/motion-charts.txt · Last modified: 01/02/2017/ 20:01 by 127.0.0.1


text:
New retrieval method makes studying cancer proteins easier
By Brian Wallheimer
July 6, 2010
A Purdue University researcher can better retrieve specific proteins needed to study how cancer cells form by using a newly developed technique and synthetic nanopolymer.
W. Andy Tao, an assistant professor of biochemistry, said these specific proteins, called phosphoproteins, can be mapped and analyzed so that we can find ways to inhibit the processes that lead to cancer. But first those few proteins must be fished out of a sea of thousands of others.
Tao developed and patented the polymer-based metal-ion affinity capture, or PolyMAC. The synthetic nanopolymer isolates proteins and peptides that have undergone a process called phosphorylation that is highly associated with cancer, and a patented technique allows Tao to retrieve those proteins. Obtaining the information on these proteins is important for studying how to inhibit the processes that lead to cancer.
"You really want to capture these particular proteins, but there are so many different types of proteins around them," said Tao, whose findings were published in the early online version of the journal Molecular & Cellular Proteomics. "The target proteins are a thousand times lower in amount than other proteins. They are difficult to study without the capturing step."
Normal cells grow, divide and eventually die. But cancer cells continue to grow and do not die. Tao said phosphorylation - in which a type of enzyme called a kinase attaches to and catalyzes a protein on a cell - is thought in many cases to be responsible for creating cancer cells.
Learn about research activity in your state


Feature to generate Config File in PSLab Android application
In this blog, I will explain the feature to generate "Config File" in PSLab Android Application
What is a Config File?
The main aim of this feature is to make PSLab board a self data logger, which would read user-defined configs from a config file stored on SD card connected to PSLab board and based on instrument, parameters and time interval stored in config file PSLab board would automatically log those values.
Now as the first step of this feature, an option is added to PSLab Android application, where user can create a config file. User can select an instrument, parameters associated with that instrument and time interval. With this feature, user can easily generate a config file which can later be used by PSLab board for logging.
User Interface
The option to generate a config file is given in the side navigation menu on the main screen.
(Figure 1: Generate Config file menu)
Once the user selects the "Generate Config File" option, the user will be directed to the following screen where user can create a config file with intended parameters
(Figure 2: Generate Config File UI)
As can be seen in the screenshot above the user can select instruments for which the config file needs to be created from a drop-down menu. User can specify the time interval, for which the data should be logged by the PSLab board. Based on the instrument selected by the user corresponding parameters will be shown at the bottom. User can select whichever parameters are required and click on "CREATE CONFIG FILE" button and a config file will be saved on device local storage.
A config file for Oscilloscope with 25-sec interval and CH1, CH2 and CH3 parameters would look something like below,
(Figure 3: Sample config File )
When a user clicks on Create Config File button, First we check whether the user has provided a time interval, if not a toast message appears to let the user know that time interval is missing. This is done using the following lines of code,
createConfigFileBtn.setOnClickListener(new View.OnClickListener() {
 public void onClick(View v) {
 interval = intervalEditText.getText().toString();
 if (interval.length() == 0) {
 Toast.makeText(CreateConfigActivity.this, getResources().getString(R.string.no_interval_message), Toast.LENGTH_SHORT).show();
Once the user sets the time interval and selects the parameters, the following lines of code generates a string array containing params selected by the user.
ArrayList selectedParamsList = new ArrayList<>();
for (int i = 0; i < paramsListContainer.getChildCount(); i ++) {
 CheckBox checkBox = (CheckBox) paramsListContainer.getChildAt(i);
 if (checkBox.isChecked()) {
After we have the list of selected parameters we call the following function to create the config file
private void createConfigFile(ArrayList params) {
 String instrumentName = instrumentsList.get(selectedItem);
 String fileName = "pslab_config.txt";
 String basepath = Environment.getExternalStorageDirectory().getAbsolutePath();
 File baseDirectory = new File(basepath + File.separator + CSVLogger.CSV_DIRECTORY);
 if (!baseDirectory.exists()) {
 try {
 } catch (Exception e) {
 File configFile = new File(basepath + File.separator + CSVLogger.CSV_DIRECTORY + File.separator + fileName);
 if (!configFile.exists()) {
 try {
 } catch (IOException e) {
 try {
 FileWriter writer = new FileWriter(configFile);
 writer.write("instrument: " + instrumentName + "\n");
 writer.write("interval: " + interval + " " + intervalUnit + "\n");
 String param = String.join(",", params);
 writer.write("params: " + param);
 CustomSnackBar.showSnackBar(rootView, getString(R.string.file_created_success_message), null, null, Snackbar.LENGTH_SHORT);
 } catch (IOException e) {
 CustomSnackBar.showSnackBar(rootView, getString(R.string.file_created_fail_message), null, null, Snackbar.LENGTH_SHORT);
In the first part of this function, we check whether there exists a PSLab directory in the local storage of the device, if not the directory is created. After that, we create a file named "pslab_config.txt". After that, we use FileWriter to write data to the file.
In a nutshell with this feature user can create config files easily. The following GIF demonstrated this functionality.
(Figure 4: GIF of the functionality)
Tags: PSLab, Android, GSoC 19, Config File, data logger
Continue Reading Feature to generate Config File in PSLab Android application
Gas sensor (MQ-135) support In PSLab Android application
Along with lots of sensors provided in the PSLab Android application, recently support for a new sensor – MQ-135 gas sensor has been added to the app. In this blog, I will discuss what is this gas sensor and how to use it with PSLab Android application
MQ-135 Gas sensor
The MQ-135 gas sensors are used in air quality control equipment and are suitable for detecting or measuring of NH3, NOx, Alcohol, Benzene, Smoke, CO2.
The Pin layout of MQ-135 sensor
(Figure 1: MQ-135 pin layout)
How to Connect MQ-135 to PSLab Board
The following diagram shows how a user can connect MQ-135 sensor to a PSLab Board.
(Figure 2: MQ-135 and PSLab connections)
As can be seen in the diagram above connect Voltage pin of MQ-135 sensor to one of the VDD pins on the PSLab board. Connect the Ground pin of MQ-135 sensor to one of GND pins on the PSLab board. And connect Analog Output pin to CH1 pin on the PSLab board. Once these connections are made user can connect PSLab board to their mobile phone and start reading data using Gas Sensor instrument in PSLab Android application
Gas Sensor Instrument in PSLab Android Application
To provide users an interface to read values collected by MQ-135 sensor connected to PSLAb board, a new instrument screen has been added to the PSLab Android application. The UI of the screen is shown below,
(Figure 3: Gas Sensor instrument UI)
As can be seen, the user is provided with a circular meter, a text box and a graph, all of which indicates the amount of different gases sensed by MQ-135 in PPM (parts per million) unit. The data is collected by very simple lines of codes. Since we are connecting Analog Output of MQ-135 to CH1 on PSLab board, we need to read the voltage at CH1 pin. Which would be in the range of 0 – input voltage (which is 3.3V in our case). To convert the voltage values to PPM, we map these output voltages to a range of 0 – 1024. This is done by following lines of code.
double volt = scienceLab.getVoltage("CH1", 1);
double ppmValue = (volt / 3.3) * 1024.0;
As provided in all the other instruments in PSLab Android application, Gas Sensor also has data logging and importing feature. User can record the data and store it as a CSV file and import previously recorded data into the PSLab application easily.
So in conclusion, now users can utilize and experiment with MQ-135 sensor effortlessly using PSLab Android application.
A working demo of this feature can be seen in the following video
Tags: PSLab, Android, GSoC 19, Sensors, Gas Sensor, MQ-135
Continue Reading Gas sensor (MQ-135) support In PSLab Android application
Two flavors of PSLab Android App to support Google Maps (in Play Store flavor) and Open Street maps (in Fdroid flavor)
What are the flavors of an App? And why are they needed in PSLab Android App?
While working on the PSLab Android Project, I ran into the need to create different variants of the app with different dependencies. In this blog, I have tried to explain the process of creating various flavors of the app in the easiest way possible.
Android Allows Developers to create different variants of the same app with the same code base but having some functionalities different across the variants. These functionalities may include some special/pro features, some different dependencies, etc. Such variants are called flavors of the App. Most common flavors are Paid and Free version of the app.
In the PSLab Android Application, we needed to generate flavors, when we required to use Google Maps in the App. The app is also published on the Fdroid, which doesn't allow dependencies of Google Maps. Hence 2 flavors of the app have been created,
 1. Play Store Flavor (With Google Maps)
 2. F-Droid Flavor (With Open Street Maps)
Declaring Flavors in the build.gradle File
In order to create flavors of the app, first, we need to declare flavors in the Gradle file. In PSLab Android app we are creating 2 flavors, which are declared in the build.gradle file as under
flavorDimensions 'default'
productFlavors {
 fdroid {
 dimension = 'default'
 playstore {
 dimension = 'default'
flavorDimensions is used to package flavors if there are many flavors for an App. Since we have only two flavors fdroid and playstore, hence we are using single dimension default for both the flavors. Once this has been added to the build.gradle file we need to sync the gradle.
After the Sync is complete, if we open


text:
Coloured wax model of a female, half skeletal, half living and dressed in regency clothing, England, _PHONE_
This lady is dressed in Regency clothing typical of the first half of the 1800s. She is skilfully created out of wax. She is half woman, half skeleton. The statue may have been made for one of three reasons: a darkly comic novelty, a 'memento mori' (a reminder of death), or a teaching aid. She is paired with a separate male statue (A78827). These two examples of regency waxwork were exhibited in Montreal, Canada at the International and Universal Exposition in 1967.
Related Themes and Topics
There are 535 related objects. View all related objects
Glossary: anatomical figure
Highly detailed models of the full human figure for artists, teachers and medical practitioners.
A branch of medical science concerned with the structure of living organisms.


Software Development and QA Tips
Dev and QA Tips What are the Advantage of Swagger in API?
What are the Advantage of Swagger in API?
Swagger API | By Vakul Gotra | March 15, 2021
What are the Advantage of Swagger in API?
Swagger provides a unique and convenient platform to document, test, and write API structures. Take a look at its benefits:
 1. The documentation of APIs is necessary as you have to let the API consumers know about the endpoints being used. This includes the input and output of an API method and should also include what challenge the particular API will solve. Swagger provides a method to automate the documentation, which means Swagger picks up the methods with GET, PUT, POST, DELETE attributes and prepares the documentation by itself. Further, if any changes are implemented, then the Swagger documentation is automatically updated.
 2. Testing is always crucial; on both the development and QA levels. Swagger provides a UI integrated page where all the API methods are listed and enables the user to test any method that is required from the UI.
 3. Swagger does the documentation in a conventional way (OpenAPI) which means it is in a machine-readable language. If a user starts the documentation first, Swagger will write the structure of the API automatically based on the written documentation. The API logic relies on the developer and business requirements but the structure will be written by Swagger itself.
 4. The user does not need a separate applications to test APIs. Just configure Swagger once in the project and access it through a URL to test the APIs.
These are the major benefits users will see once they start using Swagger. Swagger provides immense support for a wide range of platforms, languages, and domains.


text:
Common Factors That Influence Guitar Tuition
Learning to play an instrument is a common goal of people at various stages of life. The actual instrument one is interested in learning is often based on their sound preferences and the popularity surrounding the music that is able to be played upon learning. Anyone that is interested in this process should know the common factors that influence guitar tuition.
Learning the guitar is one of the most common focuses of people that are involved in musical talent development. Taking private lessons or classes is common when trying to make sure talents and skills are developed in the quickest and most proficient manner possible. Paying for these lessons and courses can be more difficult than many people realize.
Potential learners in most cities are offered a significant number of professionals to consider when making this kind of choice. Filtering through all that is necessary for this process is much more difficult than many people realize. Learning what influences tuition rates is often helpful in narrowing down the options.
The reputation of the instructor is one of the most common factors that influence pricing. The most talented reputable professionals are usually able to command a higher rate for their lessons which is much the same to other competitive industries. Reading as much background as possible is usually helpful in narrowing down the most to the least reputable.
Course format can also play a significant role in basic rates that are charged. Professionals offering online lessons are usually able to charge a much lower rate than through standard options. Finding internet based courses is often helpful in keeping the learning process more affordable..
Session or program duration are also significant factors when courses are priced out to consumers. Professionals that offer all levels of development and long sessions to their clients are usually known to charge more. Individual sessions are often priced for smaller time frames and for each lesson that is participated in.
Private guitar tuition in the Eastern Suburbs at _URL_


text:
latest research in neuroscience into the workings of the creative brain, individuals learn how to access and harness their unique creative skills.
The Rescuers: Creative Thinking Rescue Strategies
Creativity can occur in any company on a haphazard basis. But how can leaders promote creative thinking as a way to solve problems better, faster and more cost effectively?
THIS KEYNOTE focuses on the key rescue strategies and works through them to show participants how they can use these strategies to develop their creative thinking skills. It reveals a model for developing DESIGN THINKING, IDEATION & CREATIVE THINKING that directly addresses the key creative thinking blockers, and works towards creating a positive organizational culture that supports creative thinking and innovation. The practical and immediately applicable approach provides a valuable structure for promoting creative thinking on an ongoing basis.
Rescue approaches include: 1. Enquiry: Opening up thinking, 2. Exploration: Imagining options, 3. Solution: Making connections, 4. Application: Testing for implementation
At the end of this keynote participants will have learnt a practical model for developing a human centric design thinking approach, creative thinking and will have had practice in using it.


Repository HTTP API
The HTTP interface provides an easy way to implement the API for accessing repository objects. However, the HTTP interface can't be embedded the way the web services and Visualize.js APIs can be in non-Jaspersoft applications. Rather, the HTTP interface is used primarily as shortcuts or entry points to commonly used features or content. Typically, the HTTP interface is accessed programmatically by generating the URL that returns HTML that displays either the desired object (in the case of report execution and repository URLs) or the content of repository objects (such as report output in the form of content resources).
As shown in the following examples, the major entry points are:
flow.html
dashboard/**
olap/**
fileview/**
The examples in this section are generalized to describe both the community and commercial editions of JasperReports Server. For simplicity, this section refers to the deployment context generically. For example:
http://<host>:<port>/<context>/flow.html?_flowId=searchFlow&folderUri=/public/Samples/Reports
With the default deployments, the <context> refers to:
jasperserver-pro in the commercial editions
jasperserver in the community project
General Parameters
The following parameters can be used for any URL that points to a JasperReports Server web page. The parameters are specified as standard HTTP GET parameters (that is, they're in the form name=value and are separated by ampersands (&)). For dashboard URLs in JasperReports Server 6.0 and 6.0.1, general parameters must be placed before the # sign.
If the server is hosted by Tomcat 8.5.x and higher, you need to encode all pipe symbols (|, encoded as %7C) in the parameter to make the parameter URL-safe. For example, the format for a user in an organization would be j_username=userID%7CorgID.
userlocale – specifies the locale of the user. It can be added to the startup URI, as in this example:
http://localhost:8080/jasperserver-pro/login.html?userLocale=en_US
j_username and j_password – pass the credentials to authenticate a user with the server. The user name must correspond to a valid user, and j_password must be the user password (in clear text).
If you use a commercial edition and host more than one organization, the organization ID or alias must be passed along with the user ID as part of the j_username parameter. The format for a user in an organization is j_username=userID|orgID.
If the credential parameters are not present, no authenticated server session exists, and the server is not configured to use automatic authentication (such as single sign-on), the server prompts the user for a user name and a password then redirects the user to the requested page. These authentication parameters let the user skip the login page and directly access a specific page.
theme – specifies a theme to use for the JasperReports Server interface. Once a theme has been set, it remains the default until the user log outs, the session ends, or another theme is set.
decoratedecorate=no removes the page headers, footers, and borders from the requested page. Page titles are not removed. Default is decorate=yes.
sessionDecoratorsessionDecorator=no removes the page headers, footers, and borders from the JasperReports Server user interface for the entire user session. Once sessionDecorator has been set (yes or no), the setting remains the default until the user log outs, the session ends, or sessionDecorator is called again. As with decorate, page titles are not removed.
You can also remove decorations using a custom theme. See Using Themes to Remove Branding for more information.
_opt – turns optimization on and off for the current page. You can use _opt=no to view a page without optimizing it when developing and testing JavaScript customizations. _opt is not recommended for production systems. See Customizing JavaScript Files for more information about JavaScript optimization.
Executing ReportUnits
The following sections provide examples and details about URLs that execute reports.
Simple Report Execution
The HTTP interface can execute and export reports within the JasperReports Server web application.
The following example calls a report with no parameters and exports to the default format (HTML):
The URL is:
http://<host>:<port>/<context>/flow.html?_flowId=viewReportFlow&
reportUnit=/public/Samples/Reports/SalesByMonthReport
This is the simplest possible report execution URL. The following section explains more advanced options.
Passing ReportUnit Execution Parameters
Reports support the following types of parameters:
General parameters supported by all URLs, such as theme or userLocale.
Reserved report parameters such as output or reportLocale.
Input control parameters, described in Input Control Parameters for Reports and Dashboards.
The following example executes the same report as the previous section, but also passes 7 as an input control parameter and exports to PDF instead of HTML:
http://<host>:<port>/<context>/flow.html?_flowId=viewReportFlow
&reportUnit=/public/Samples/Reports/SalesByMonthReport&startMonth=7&output=pdf
Note the URL parameters:
&startMonth=7 indicates that the value 7 should be passed to the input control called startMonth. The report returns data starting in July.
&output=pdf indicates that the output should be generated in PDF format.
If the report parameter supports multiple values, you can specify them using the ampersand (&); for example:
http://<host>:<port>/<context>/flow.html?_flowId=viewReportFlow&reportUnit=
/reports/SalesbyState&country=US&country=Canada&output=pdf
The report execution parameters can either be reserved parameters the server uses to determine general attributes of the report execution, or arbitrary parameters that correspond to the report's input controls/parameters. The parameters are specified as standard HTTP GET parameters (in name=value form and separated by ampersands (&)).
Reserved Report Parameters
The following reserved report parameters are recognized by JasperReports Server:
reportUnit – specifies the URI of the report unit in the repository.
output (optional) – specifies the output format. Values for this parameter are keys for the report exporters configured in the server. By default, the server recognizes the following output types: pdf for PDF, xls for Excel (Paginated), xlsNoPag for Excel, xlsx for XLSX (Paginated), xlsxNoPag for XLSX, rtf for RTF, csv for CSV and swf for the Flash report viewer. When this parameter is not specified, the default format is HTML displayed in the report viewer.
reportLocale – specifies the locale where the report should be executed. A locale is passed as code consisting of a lower-case two letter ISO-639 language code, followed by optional upper-case two letter ISO-3166 country code and a locale variant, separated by underscore (the format is identical to the standard Java locale programmatic names).
pageIndex (optional) – specifies the initial page to be displayed when launching the target report. The page index is 1-based. If a negative page index or a page index greater than the number of pages in the report is used, the report opens at the first page. This parameter is effective only for HTML output.
anchor (optional) – specifies the name of an anchor from the target report at which the report should open. If an anchor with the specified name is not found in the report, the first page of the report is shown. The parameter is effective only when pageIndex is not specified and when the output is HTML.
Executing Dashboards
As of JasperReports Server 6.0, dashboards don't use the flow.html entry point used by Spring Web Flow. Instead, they use an updated dashboard entry point.
If you're working with legacy dashboards created in versions before 6.0, dashboards work similar to reports.
The following example opens a dashboard for viewing:
http://<host>:<port>/<context>/dashboard/viewer.html#/public/Samples/Dashboards/1._Supermart_Dashboard
To open a dashboard for editing, call the Dashboard Designer:
http://<host>:<port>/<context>/dashboard/designer.html#/public/Samples/Dashboards/1._Supermart_Dashboard
The dashboard Resource URL must go after the hash sign (#). This syntax supports faster page refreshing. When you save a new or existing dashboard, only the URL segment after the hash sign is reloaded.
Passing Dashboard Execution Parameters
Dashboards support the following types of parameters:
General parameters supported by all URLs, such as theme or userLocale.
The reserved dashboard parameters viewAsDashboardFrame and dashboardResource
Input control parameters, described in Input Control Parameters for Reports and Dashboards.
As of JasperReports Server 6.1, you can use non-authentication parameters before


Rotations in 4-dimensional Euclidean Space - Geometry of 4D Rotations - Group Structure of SO(4)
Group Structure of SO(4)
SO(4) is a noncommutative compact 6-parameter Lie group.
Each plane through the rotation centre O is the axis-plane of a commutative subgroup isomorphic to SO(2). All these subgroups are mutually conjugate in SO(4).
Each pair of completely orthogonal planes through O is the pair of invariant planes of a commutative subgroup of SO(4) isomorphic to SO(2) × SO(2).
These groups are maximal tori of SO(4), which are all mutually conjugate in SO(4). See also Clifford torus.
All left-isoclinic rotations form a noncommutative subgroup S3L of SO(4) which is isomorphic to the multiplicative group S3 of unit quaternions. All right-isoclinic rotations likewise form a subgroup S3R of SO(4) isomorphic to S3. Both S3L and S3R are maximal subgroups of SO(4).
Each left-isoclinic rotation commutes with each right-isoclinic rotation. This implies that there exists a direct product S3L × S3R with normal subgroups S3L and S3R; both of the corresponding factor groups are isomorphic to the other factor of the direct product, i.e. isomorphic to S3.
Each 4D rotation R is in two ways the product of left- and right-isoclinic rotations RL and RR. RL and RR are together determined up to the central inversion, i.e. when both RL and RR are multiplied by the central inversion their product is R again.
This implies that S3L × S3R is the double cover of SO(4) and that S3L and S3R are normal subgroups of SO(4). The non-rotation I and the central inversion -I form a group C2 of order 2, which is the centre of SO(4) and of both S3L and S3R. The centre of a group is a normal subgroup of that group. The factor group of C2 in SO(4) is isomorphic to SO(3) × SO(3). The factor groups of C2 in S3L and S3R are isomorphic to SO(3). The factor groups of S3L and S3R in SO(4) are isomorphic to SO(3).
Read more about this topic: Rotations In 4-dimensional Euclidean Space, Geometry of 4D Rotations
Famous quotes containing the words group and/or structure:
 Once it was a boat, quite wooden
 and with no business, no salt water under it
 and in need of some paint. It was no more
 than a group of boards. But you hoisted her, rigged her.
 She's been elected.
 Anne Sexton (1928–1974)
 For the structure that we raise,
 Time is with materials filled;
 Our to-days and yesterdays
 Are the blocks with which we build.
 Henry Wadsworth Longfellow (1809–1882)


What documents may I sign?
The general rule for paralegals is as follows:
A paralegal may sign correspondence, including e-mail correspondence, so long as no legal advice is given and the paralegal's name, title, and either the firm name or the name of her supervising attorney are given.
A paralegal may sign correspondence from an attorney by permission so long as the paralegal's title is clearly indicated and the letter does not contain legal advice or agreements. If the letter contains legal advice or agreements, the attorney should sign or have another attorney sign by permission.
A paralegal is not allowed to sign legal agreements, pleadings or certificates of service.


text:
|Did this word (1921 canadian election) satisfy your request (mackenzie river)? Yes No|
|Sorry, no dictionaries indexed in the selected category contain the exact phrase 1921 canadian election.
Reverse dictionary results:
You can look up the words in the phrase individually using these links:
Not helpful? You might try using the wildcards * and? to find the word you're looking for. For example, use
You might also try a Google search or
|1921*||to search for words beginning with 1921, or|
|*tion||to search for words ending with tion|
Search completed in 0.131 seconds.


text:
|Images courtesy of Slavery Still Exists.|
High school Language Arts teacher, Shelley Wright, uses project-based learning in her classroom in Moose Jaw, Saskatchewan. After reading a fiction book about child slavery, her students were inspired to teach others about the issue of modern-day trafficking. As part of their work, they created images and videos -- as well as a social media campaign -- to inform and inspire others. You can see some of the images and photos here.
Students at Tualatin High School in Oregon were so shocked and motivated by a recent documentary about bullying in schools, that they launched an anti-bullying poster contest. The contest was part of an effort to reduce bullying in their own school community. You can see some of the posters here.
These two examples not only demonstrate the importance of integrating real-life learning into schooling, but highlight how powerful art and media can be as tools for positive change.
Like our blog? Please share it with others, comment, and/or subscribe to our RSS feed.


Toldain Talks
Because reading me sure beats working!
Saturday, March 27, 2010
EQ2 Used for Economic Research
I just ran across this piece describing economic research that Dmitri Williams and Edward Castronova are carrying out using datasets from EQ2 provided to them by Sony.
Don't worry, it's all anonymous. Williams refers to virtual worlds as the equivalent of rat mazes and petri dishes. The main advantage of a virtual world is clean data. Everything is there, to the last transaction, and on a fairly large scale. It can be argued that are many artificialities in a virtual economy, such as EVE or EQ2. That's why they make the analogy to a petri dish. There's lots of economic behavior going on, and it can be tracked with complete accuracy.
Williams and Castronova's article opens with a fascinating quote:
In The Treachery of Images (1928–9), René Magritte painted a picture of a pipe above the words: 'Ceci n'est pas une pipe' ('This is not a pipe'). In virtual worlds, there are no pipes either, yet users manage to use virtual objects and characters in a vast array of social transactions. When observers see a virtual sword on the computer screen, the paraphrase of Magritte's admonition – 'Ceci n'est pas une épée' ('This is not a sword') – surely comes to mind. However, is the sword only an image? Or does it become invested with some kind of socially constructed realness as a result of playing a role in human communication and exchange?
Which really reminds me of the phrase you hear in MMO's a lot: "It's just a game." They go on to describe their plan:
By examining transactions from a large commercial virtual world with hundreds of thousands of players, the current mapping test concerns whether the items and economic behaviors within a virtual world function in the same way that they would in the real world – where, it is noted, currency is also largely representational (a dollar is only a piece of paper, but is assumed to have a value in gold backed by the US treasury). Do the same behaviors that make a US dollar bill economically 'real' also make a virtual sword economically 'real'? Does economic behavior map from the real world into the virtual?
What may have started out as unreal, through our time and effort becomes real to us. Now the associations and emotions we have around it may well have a different slant: We are likely to be less risk averse, for instance. There's a less scholarly discussion of this on the EVE forums, addressing the question, "Is it just a game?"
One of my favorite quotes from that discussion, which isn't terribly EVE specific, and worth a read:
I used to bring this up to the goons now and then. They'd literally spend hundreds of hours planning and organizing ways to annoy people, and then when some random guy who only plays a couple hours a week complained they'd say "it's just a game".
Props to Sony for providing their data to economic and sociological research.
Labels:,,
Blogger Milia said...
I don't think much of these guys if they write the dollar is still on some sort of gold standard. Sheesh.
3:16 PM
Blogger Rita said...
_USER_ - Srsly. We're on a gold-pressed latinum standard now, aren't we?
11:28 PM
Blogger Toldain said...
Yeah, I saw that about the gold standard, too. It certainly made me scratch my head. I'm hoping they were knowingly stretching things just to make their point.
8:44 AM
Post a Comment
<< Home


Permalink for comment 343866
Member since:
Teach students skills not brand names.
The current aproach is to teach a brand name. Students don't learn computers and office programs, they learn Microsoft Windows and Microsoft Office. This is like teaching all the shop kids to use a hammer but only if it's a B&D #4 hammer with B&D #4 nails.
Students come out of school and sit infront of a machine that isn't Office and they have a panic attack; "but this isn't Word, how can it possible write words?"
Stick them infront of anything but WindowsXP desktop and they can't even figure out how to reach out and touch the bloody mouse.
Teach students how to use word processors not Word. They should use two or three at least during the yer they do word processing, spreadsheets and basic databases (this was Grade10 around here). If a file format can not be opened in multiple word processors; it's not accepted within the schools; sort of like all those government offices deciding that documents to and from constituents should be accessible on more than just Windows/Office crippled systems.
Reply Parent Score: 8


text:
Browsing Laboratorio de Neurociencia by Subject "Geometría"
Now showing items 1-2 of 2
Producing or reproducing reasoning? Socratic dialog is very effective, but only for a few (2017-03-23)Successful communication between a teacher and a student is at the core of pedagogy. A well known example of a pedagogical dialog is 'Meno', a socratic lesson of geometry in which a student learns (or 'discovers') how...


text:
Using effective recruitment to retain competitive advantage in full in PDF format taken from edition 10 of Business Case Studies.
As a result of reading the Case Study, students should be able to:
- explain the importance of employee recruitment procedures as a means of maintaining competitive advantage
- understand the purpose of a vision supported by values as a focus for corporate strategy
- appreciate the need for business organisations to develop their core competences.
Read the case study online here
Using effective recruitment to retain competitive advantage (PDF)
- Brand: Cummins
- Product Code: tt100-pdf-18-184-10
- Availability: In Stock


_TAG_, Uncategorized
from blacklistednews.com: A West Virginia state official told legislators on Wednesday that he "can guarantee" some residents are breathing in a cancer-causing substance due to the chemical spill that occurred earlier in January.
In a recent meeting with a state legislative committee on water resources, Scott Simonton of the West Virginia Environmental Quality Board said that his tests have detected formaldehyde in water samples contaminated by the recent Elk River chemical spill.
"I can guarantee that citizens in this valley are, at least in some instances, breathing formaldehyde," Simonton said, according to the Associated Press. "They're taking a hot shower. This stuff is breaking down into formaldehyde in the shower or in the water system, and they're inhaling it."
As Simonton noted, the chemical mixture that leaked into the Kanawha Valley's water supply – a combination of seven substances used to wash coal that's called "Crude MCHM" – is partly composed of methanol. When this chemical breaks down, it turns into formaldehyde, a carcinogen linked to diseases such as respiratory cancer.
_TAG_: July 30, 2021


by Diana Filer
 1. May 8th this year is the 73rd anniversary of VE Day: WWII victory in Europe.
 2. Mercury is the smallest planet in our solar system.
 3. A barn find is a classic car or motorcycle found in derelict condition, often in old run-down buildings such as barns.
 4. Agatha Christie's 'The Mousetrap' is in its 68th year of continuous performances in London.
 5. The world's youngest billionaire at the age of 24 is Perenna Kei Hoi-Ting of Hong Kong. Her estimated net worth is $1.3 billiion.


text:
The SPCK52X series uses capacitive technology to detect finger touch. Once the device is powered up, it calibrates to the environment in which it's located. This guide is intended for you to get the best performance from your system,
- Allow 1 minute for calibration after initial power up on SPCK52x unit.
Recommendations on how to best use the SPCK2x keypads
- To achieve the correct response from each button, we recommend when entering a code, only press one button per second.
- In between each press remove your finger at least 10 mm from the surface of the keypad before pressing the next button.
Other recommendations are to make sure that the surface of the keypad is kept clear of dust or grease.
Use a cloth and hot water only to remove any dirt. Do not use chemical cleaners or detergents.
- holding the whole hand over the buttons for a period on time
- holding a finger on one button for a prolonged period of time.
- hover a finger over a single button from a period of time, even 2 to 3 mm away from the button
- rapidly press the button, for example, press their 4,5,6,7,8-digit code in the space of < one second.
- Repeatedly keep pressing the same button fast.
- sliding your finger across the surface or 2 to 3 mm above the surface of the keypad to reach the next button.
All of these cases can cause a button or buttons not to react correctly by triggering the keypad to recalibrate the sensitivity of a button or buttons.
The unit by recalibration, now believes that holding a hand across the buttons is the normal or standby state and therefore they will not react to touch.
For the keypad to function correctly again, recalibration is required.
This is achieved by removing your hand away from the surface of the keypad (20mm min) for a minimum time of 10 seconds. Recommendation time 30 seconds.
For further information on the installation and use of the SPCK52x keypads, please click on the YouTube link provided.


Stellaris resource Console Command
Documentation and detailed help with working examples.
resource Command
Console command
This command adds the specified amount of a resource. The default is 5,000.
resource [Resource ID] [Amount]
Parameters
The ID of the resource you wish to add.
Amount
Number
The amount of the resource you wish to add. Use a negative number to remove resources.
Examples
Here are examples of how to use resource.
resource consumer_goods
This command will add 5,000 of Consumer Goods.
resource sr_dark_matter 1000
This command will add 1,000 of Dark Matter.
Looking for Stellaris console commands?
Search our complete list!
Quick Overview
This command allows you to increase the amount of a specific resource.
You need to specify the resource you want to add and the amount.
If you don't specify the amount, the game will add 5000 units by default.
For example, using resource energy 1000 will add 1000 units of energy to your storage.
In-Depth Description
The resource command in Stellaris is a cheat command allowing you to add a specified amount of any particular resource instantly to your game.
Resources in Stellaris are what you need to build and maintain your empire. Examples are energy, minerals, food, influence, and various strategic resources.
To use the command, you'll need to type something like resource energy 5000 into the console. This would add 5000 energy to your resources. You can substitute energy for any other type of resource.
It can allow you to rapidly expand your empire in ways that would otherwise take much longer play time to achieve. If you're short on a particular resource and need it quickly, this command can give you a significant boost.
How to Open the Command Console
In Stellaris, cheats are executed from the command console, a text box that you type commands into.
To open the command console press the ~(tilde) key, which is typically located under ESC (escape).
If your keyboard does not have that key, or pressing ~ does not work, try the following keys:
 - ~
 - SHIFT + 2
 - SHIFT + 3
 - ALT + 2 + 1
Type your command into the console, and then press ENTER .
Was this helpful?


text:
Interesting post over at In the Library with a Lead Pipe:
In Brief: Why do librarians struggle so much with instruction? Part of the problem is that we have so many facets to consider: pedagogy, campus culture, relationships with faculty, and effectiveness with students. Research on student and faculty perceptions of librarians combined with sociological and psychological research on the magnitude of impression effects prompted us to more thoroughly examine how perceptions of instruction librarians impact successful teaching and learning. In this article, we look at theories of impression formation, the historical feminization of librarianship, and suggestions for next steps that we should take in order to take charge of our image and our instruction.
Read the rest of the article over at the blog.


Visualize Raw data
import os.path as op
import mne
data_path = op.join(mne.datasets.sample.data_path(), 'MEG', 'sample')
raw = mne.io.read_raw_fif(op.join(data_path, 'sample_audvis_raw.fif'),
 add_eeg_ref=False)
raw.set_eeg_reference() # set EEG average reference
events = mne.read_events(op.join(data_path, 'sample_audvis_raw-eve.fif'))
Out:
Opening raw data file /home/ubuntu/mne_data/MNE-sample-data/MEG/sample/sample_audvis_raw.fif...
 Read a total of 3 projection items:
 PCA-v1 (1 x 102) idle
 PCA-v2 (1 x 102) idle
 PCA-v3 (1 x 102) idle
 Range : 25800 ... 192599 = 42.956 ... 320.670 secs
Ready.
Current compensation grade : 0
Adding average EEG reference projection.
1 projection items deactivated
The visualization module (mne.viz) contains all the plotting functions that work in combination with MNE data structures. Usually the easiest way to use them is to call a method of the data container. All of the plotting method names start with plot. If you're using Ipython console, you can just write raw.plot and ask the interpreter for suggestions with a tab key.
To visually inspect your raw data, you can use the python equivalent of mne_browse_raw.
raw.plot(block=True)
../_images/sphx_glr_plot_visualize_raw_001.png
The channels are color coded by channel type. Generally MEG channels are colored in different shades of blue, whereas EEG channels are black. The scrollbar on right side of the browser window also tells us that two of the channels are marked as bad. Bad channels are color coded gray. By clicking the lines or channel names on the left, you can mark or unmark a bad channel interactively. You can use +/- keys to adjust the scale (also = works for magnifying the data). Note that the initial scaling factors can be set with parameter scalings. If you don't know the scaling factor for channels, you can automatically set them by passing scalings='auto'. With pageup/pagedown and home/end keys you can adjust the amount of data viewed at once. To see all the interactive features, hit ? or click help in the lower left corner of the browser window.
The channels are sorted by channel type by default. You can use the order parameter of raw.plot to group the channels in a different way. order='selection' uses the same channel groups as MNE-C's mne_browse_raw (see Selection). The selections are defined in mne-python/mne/data/mne_analyze.sel and by modifying the channels there, you can define your own selection groups. Notice that this also affects the selections returned by mne.read_selection(). By default the selections only work for Neuromag data, but order='position' tries to mimic this behavior for any data with sensor positions available. The channels are grouped by sensor positions to 8 evenly sized regions. Notice that for this to work effectively, all the data channels in the channel array must be present. The order parameter can also be passed as an array of ints (picks) to plot the channels in the given order.
raw.plot(order='selection')
 - ../_images/sphx_glr_plot_visualize_raw_002.png
 - ../_images/sphx_glr_plot_visualize_raw_003.png
We read the events from a file and passed it as a parameter when calling the method. The events are plotted as vertical lines so you can see how they align with the raw data.
We can check where the channels reside with plot_sensors. Notice that this method (along with many other MNE plotting functions) is callable using any MNE data container where the channel information is available.
raw.plot_sensors(kind='3d', ch_type='mag', ch_groups='position')
../_images/sphx_glr_plot_visualize_raw_004.png
We used ch_groups='position' to color code the different regions. It uses the same algorithm for dividing the regions as order='position' of raw.plot. You can also pass a list of picks to color any channel group with different colors.
Now let's add some ssp projectors to the raw data. Here we read them from a file and plot them.
projs = mne.read_proj(op.join(data_path, 'sample_audvis_eog-proj.fif'))
raw.add_proj(projs)
raw.plot_projs_topomap()
../_images/sphx_glr_plot_visualize_raw_005.png
Out:
Read a total of 6 projection items:
 EOG-planar-998--0.200-0.200-PCA-01 (1 x 203) idle
 EOG-planar-998--0.200-0.200-PCA-02 (1 x 203) idle
 EOG-axial-998--0.200-0.200-PCA-01 (1 x 102) idle
 EOG-axial-998--0.200-0.200-PCA-02 (1 x 102) idle
 EOG-eeg-998--0.200-0.200-PCA-01 (1 x 59) idle
 EOG-eeg-998--0.200-0.200-PCA-02 (1 x 59) idle
6 projection items deactivated
The first three projectors that we see are the SSP vectors from empty room measurements to compensate for the noise. The fourth one is the average EEG reference. These are already applied to the data and can no longer be removed. The next six are the EOG projections that we added. Every data channel type has two projection vectors each. Let's try the raw browser again.
raw.plot()
../_images/sphx_glr_plot_visualize_raw_006.png
Now click the proj button at the lower right corner of the browser window. A selection dialog should appear, where you can toggle the projectors on and off. Notice that the first four are already applied to the data and toggling them does not change the data. However the newly added projectors modify the data to get rid of the EOG artifacts. Note that toggling the projectors here doesn't actually modify the data. This is purely for visually inspecting the effect. See mne.io.Raw.del_proj() to actually remove the projectors.
Raw container also lets us easily plot the power spectra over the raw data. See the API documentation for more info.
raw.plot_psd()
../_images/sphx_glr_plot_visualize_raw_007.png
Out:
Effective window size : 3.410 (s)
Effective window size : 3.410 (s)
Effective window size : 3.410 (s)
Plotting channel-wise power spectra is just as easy. The layout is inferred from the data by default when plotting topo plots. This works for most data, but it is also possible to define the layouts by hand. Here we select a layout with only magnetometer channels and plot it. Then we plot the channel wise spectra of first 30 seconds of the data.
layout = mne.channels.read_layout('Vectorview-mag')
layout.plot()
raw.plot_psd_topo(tmax=30., fmin=5., fmax=60., n_fft=1024, layout=layout)
 - ../_images/sphx_glr_plot_visualize_raw_008.png
 - ../_images/sphx_glr_plot_visualize_raw_009.png
Out:
Effective window size : 1.705 (s)
Total running time of the script: ( 0 minutes 17.105 seconds)
Generated by Sphinx-Gallery


text:
G&D CEO Roland Ollek contemplates if there is an acceptable alternative to uncompressed video systems in the air traffic control room.
Few workplaces have higher standards or more stringent regulations than the ATC control room. With human life at stake, it's no place to cut corners or make any kind of error. For the ATCOs who work there, it is a highly strenuous job requiring the highest levels of concentration with multi-tasking skills. Therefore perfect working conditions are an absolute necessity.
To work effectively, ATCOs need accurate information, e.g. if trajectories on a radar screen are crossing on different levels, displayed in different colours to indicate different parameters, this visual information needs to be crystal clear and absolutely reliable.
The work in the control room involves constantly staring at a computer screen which can be detrimental to health. First of all the heat and noise generated by the computers themselves can be stressful and a distraction. KVM systems can solve this issue by moving computers out of the control room whilst ensuring remote operation in real-time.
Another health aspect is the Computer Vision Syndrome (CVS) with its symptoms of headaches, blurred vision, neck pain and eye strain underlines the need for providing the highest levels of video quality. So if using a KVM system this maximum level of video quality has to be ensured.
An uncompressed ideal
KVM systems allow computers to be moved out of the ATC control room and into a dedicated technical centre whilst ensuring remote operation in real-time. With computers out of the control room, noise and heat follow along with the computer maintenance engineers. There's more safety too as KVM is custom-made for redundancy concepts.
There is a choice of systems available and the major difference lies in the video transmission. Some systems transmit the available information pixel-by-pixel and in real-time, this is called an uncompressed transmission. In use, these KVM systems operate between the computer and the workplace and act 'transparently', what comes in is what goes out. This is because uncompressed systems provide the high bandwidth necessary to forward the entire incoming video from the computer's graphics adaptor to the display.
The transmission is pixel-by-pixel perfect, transparent, uncompressed and absolutely lossless. However, the higher the video resolution, the more bandwidth is required so more demand is placed on the transmission system, making it more costly. Therefore the result is absolutely reliable and at the maximum quality. The ATCO does get to see every any single pixel that the computer system can provide.
The legal component
The highest video quality is also an essential for the majority of ANSPs that record ATC communications. If an issue should occur, this recorded material is used as a clarification of events. But for a true 'recording at the glass' the recorded quality has to correspond exactly with what the ATCO has seen, so it does not become questionable as evidence. When recording takes place remotely in the technical area but the video displayed at the CWP is transmitted via a KVM system, only uncompressed systems guarantee the reliability for referential integrity.
Is compression a viable choice?
Depending on the application and on the quality achieved, video compression has many advantages. First among these is lower bandwidth which in turn allows for lower spec (and cheaper) components and easier ways of further handling the signals, especially via matrix systems. Matrix systems allow complex switching of the signals.
Many computers and consoles are connected to a central matrix switch, which allows cross-wise access. This can be seen as kind of a bottleneck as the switch has to handle all the video and further signal streams at a time. But with the lower bandwidth of compressed video, such bottlenecks can be solved, whilst taking into account a slightly reduced video quality.
At G&D, along with our uncompressed KVM solutions, we've also developed systems using our own compression algorithm. Working with G&D High Dynamic Image Processing Level 3, these also provide a pixel perfect video result and are suitable for ATC use, too.
However, compressed or uncompressed, all of our systems are thoroughly tested and produced according to ISO 9001 standard, which is supported by decades of experience providing installations for the ATC sector. Yet for compressed systems we have to admit: what commonly is called visually lossless, the term itself already implies it, contains certain losses though.
Is it worth it?
The primary reason for choosing a compressed system over an uncompressed one is cost. The question is, should cost be a factor in the critical environment of the ATC control room? When human life is at risk not to mention the health and careers of those who work in such an environment, the slightest cut in quality, efficiency or standards becomes very difficult to justify.
There is a difference between compressed and uncompressed video. The risk may be minimal with compressed and for sure the financial costs are less but it only takes one mistake for a severe incident to occur. The cost of that could be incalculable in financial and human terms too. So if you really have no alternative and an uncompressed system is beyond your budget, make sure you go for the very best compressed system available.


text:
SATURNIA FROM MYTH TO HISTORY
Saturnia's origins have been lost in time, so much so that it's considered one of the oldest cities of the "Italica Villanoviana" period.
Archaeological finds, dating back to the Neolithic and Bronze Age periods, reveal the presence of activity even before the Etruscans. An example of this is the Bagno Santo (Sacred Bath), a holy place where ancient civilisations carried out religious rituals.
What is certain is that Saturnia already existed in the 7th century B.C., when the Etruscans controlled central Italy, but known as Aurinia. It fell in the hands of the Romans when, thanks to its strategic location near Pian di Palma necropolis, the river Albegna, and the thermal waters, they seized it and renamed it Saturnia.
The Roman Empire then build the Via Clodia, an important trade route connecting Via Cassia and Via Aurelia, to facilitate trade with the Etruscan colonies. Via Clodia passed through Saturnia, thereby enabling the town to develop and prosper until the arrival of the Goti and the Longobardi.
Throughout the Medieval era, Saturnia suffered atrocities at the hands of the Saraceni and the Senesi. Finally, in 1500, peace was restored when the Granducato di Toscana, of the Medici family, became governor until the town was annexed by Kingdom of Italy.
ARCHAEOLOGICAL AND ARCHITECTURAL REMAINS
Much evidence of Saturnia's history can be found amongst the various visible remains, namely: the Area Archeologica Urbana, the walls, the four wall entrances including the well-preserved Porta Romana, the Acquarum castle, and the Bagno Secco.
Saturnia's Roman walls have been restored and rebuilt by the Senesi population in the 16th century. The archaeological museumis home to a number of items dating back to Etruscan times, as well as from the Neolithic and Bronze ages.


_dir: directory where the tweaked Xcode projects will be saved
configs: list of string corresponding to the configurations that need to be
supported by the tweaked Xcode projects, must contains at least one
value.
'''
UpdateXcodeProject(
os.path.join(input_dir, proj_name),
os.path.join(output_dir, proj_name),
configs, root_dir)
CopyTreeIfChanged(os.path.join(input_dir, proj_name),
os.path.join(output_dir, proj_name))
def Main(args):
parser = argparse.ArgumentParser(
description='Convert GN Xcode projects for iOS.')
parser.add_argument(
'input',
help='directory containing [product|all] Xcode projects.')
parser.add_argument(
'output',
help='directory where to generate the iOS configuration.')
parser.add_argument(
'--add-config', dest='configurations', default=[], action='append',
help='configuration to add to the Xcode project')
parser.add_argument(
'--root', type=os.path.abspath, required=True,
help='root directory of the project')
parser.add_argument(
'--project-name', default='all.xcodeproj', dest='proj_name',
help='name of the Xcode project (default: %(default)s)')
args = parser.parse_args(args)
if not os.path.isdir(args.input):
sys.stderr.write('Input directory does not exists.\n')
return 1
if args.project_name not in os.listdir(args.input):
sys.stderr.write(
'Input directory does not contain the Xcode project.\n')
return 1
if not args.configurations:
sys.stderr.write('At least one configuration required, see --add-config.\n')
return 1
ConvertGnXcodeProject(
args.root,
args.proj_name,
args.input,
args.output,
args.configurations)
if __name__ == '__main__':
sys.exit(Main(sys.argv[1:]))


text:
Skill Builders Spanish 2 Workbook, Grades 6-12
Skill Builders are great tools for keeping children current during the school year or preparing them for the next grade level. A variety of fun and challenging activities provides students with practice and helps introduce basic skills to new learners. This full-color workbook contains appropriate passages and exercises for middle school Spanish language learners. Skill Builders combines entertaining and interactive activities with eye-catching graphics to make learning and reviewing fun and effective. The compact 6" x 9" size makes this book perfect for school, at home, or on the go. 80 perforated, reproducible pages with an answer key.
Grade Level: 6, 7, 8, 9, 10, 11, 12


text:
TABLE OF CONTENTS
A Guide to the Ike Moore Papers, _PHONE_
Author and historian Ike Moore was a state supervisor for the Historical Records Survey in San Antonio, Texas.
Two drafts of the biography, Life and Diary of Reading W. Black, and a letter composes the Ike Moore Papers, _PHONE_, documenting the history of the upper Nueces region and its development by Reading Wood Black, a pioneer settler, land developer, and entrepreneur. The papers describe the establishment of San Antonio and the Republic of Texas, along with political and social affairs, during the 19th century. Additionally, an 1866 copy of a letter to "Jennie" from Black concerns familial matters.
This collection is open for research use.
Ike Moore Papers, _PHONE_, Dolph Briscoe Center for American History, University of Texas at Austin.
Basic processing and cataloging of this collection was supported with funds from the National Historical Publications and Records Commission (NHPRC) for the Briscoe Center's "History Revealed: Bringing Collections to Light project," 2009-2011.


text:
What makes a good Mentor:
This is important because they give full attention
This is important because they get stuff done.
This is important because this also gets stuff done.
This is important so the meentee can learn.
This is important because they will always be available for the meetee.
This is important because they keep their meentee in a happy mood.
This is important because the meentee can learn clearly.
This is important because they care about each as a bond.
This is important so the meentee can go on in life.
This is important so people can hire the mentor.
- a wise and trusted counselor or teacher.
- an influential senior sponsor or supporter.
Mentor – Elisha:
· What Elijah meant to Elisha was a fond friendship
· They walked and talked to people about God
· When Elijah went up to heaven Elisha was able to carry out the rest of Elijah's deeds
· Elisha was taught by Elijah to serve Go
minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:"Times New Roman";


text:
Chaetodon auriga (Cross Stripe Butterfly) is a species of ray-finned fishes in the family butterflyfishes. They are native to Pacific Ocean and Indian Ocean. They are diurnal omnivores. Individuals can grow to 23 cm. They have sexual reproduction. They have parental care (female provides care). They rely on swimming to move around.
EOL has data for 40 attributes, including:


$templateName, $cacheName ); public function register( $name, $value ); public function update( $name, $value ); public function includeTemplate( $template, $templatePath ); public function cleanExpired(); }
The Template engine calls the following methods on the interface. Usually those methods are not called from the user application.
The remaining methods from the interface are called from the user application:
Typically the cache creation procedure is as follows. This procedure gives insight how the cache manager can be used:
 1. The user application calls the method: $t->process("my_template.ezt").
 2. The template "my_template.ezt" caches parts of the page.
 3. If a cache file exists for the requested template, the Template component calls CacheManager::isValid() to see whether the cache file is still correct. If it is then the cache contents can be returned. Otherwise a new cache file will be created and returned.
 4. When a cache file is going to be created, the CacheManager::startCaching() method is called. The Cache Manager is now informed that all following function calls in the application are used inside the cache.
 5. Application code returning data which may be modified in the future should be registered to the cache manager. This is done via the CacheManager::register() method.
 6. The CacheManager::includeTemplate() is called when another template is included.
 7. The CacheManager::stopCaching() is called when the cache file is created.
 8. The user application should call the CacheManager::update() method when a change in the database or application may affect any of the caches.
Keeping track of the values used in the caches is probably best stored in a database. Using the file system is also possible but makes things more complicated.
Database storage
The database is a good medium to keep track of all the generated caches. It can quickly mark lots of cache files as expired. The real removal of the cache files from the file system can then be done when the server load is low.
In which database tables the cache information is stored depends on the implementation of the cache manager. In our example we will use two tables: cache_files and cache_values. The table cache_files has at least the following fields:
Field
Type
Null
Key
Default
Extra
id
int(10) unsigned
NO
PRI
NULL
auto_increment
cache
varchar(255)
NO
MUL
expired
tinyint(4)
NO
0
The fields store:
The table cache_values has the following fields:
Field
Type
Null
Key
Default
Extra
cache_id
int(10) unsigned
NO
PRI
name
varchar(50)
NO
PRI
value
varchar(255)
NO
PRI
The fields store:
Another table can also store the cache keys that belong to the cache. The structure of this table is similar to the table cache_values.
Database fetch
Often a database result needs to be shown in a template. Two techniques are commonly used:
The first solution has arguably a better separation between application and layout code. The second solution has the main advantage that it is easier to optimize. In this section we will continue with the second form.
The following template code shows the user information of a single user. The template uses a custom function db_fetch that retrieves the user information as an object:
{use $userID} {cache_template keys $userID} {var $userObj = db_fetch(object="user", id=$userID)} Name: {$userObj->name}
 Name: {$userObj->address}
 Email:{$userObj->email}

The caching system creates a separate cache file for each userID. This cache file is valid, until information changes. If userID 1 changes its e-mail address, the Template engine will still use the old cache file. The solution for this problem is that the application informs the Template engine via the Cache Manager about this information update.
When the template is run for the first time, it calls the following methods in order:
 1. startCaching( $template, $templatePath, $cachePath, $cacheKeys ). The current template will be cached. The $cachePath should be stored in the cache_files database. The following code could be an implementation of the startCaching method:
 public function startCaching( $template, $templatePath, $cachePath, $cacheKeys ) { // Get the current database handler. $db = ezcDbInstance::get(); // Get the current cache ID, if it does exist. $q = $db->prepare( "SELECT id FROM cache_files WHERE cache = :cache" ); $q->bindValue( ":cache", $cachePath ); $q->execute(); // One result and make sure the query is terminated. $r = $q->fetchAll(); if ( sizeof( $r ) > 0 ) // Do we have any results? { $id = $r[0]["id"]; // Renew the cache_file. $s = $db->prepare( "UPDATE cache_files SET expired=0 WHERE id = :id" ); $s->bindValue( ":id", $id ); $s->execute(); } else { // Insert the new cache file $q = $db->prepare( "INSERT INTO cache_files VALUES( '', :cache, '', 0)" ); $q->bindValue( ":cache", $cachePath ); $q->execute(); $id = $db->lastInsertId(); } // Mark that the template is currently creating a cache. $this->isCaching = true; $this->template_id = $id; }
The code checks whether the cache file is already registered. If the cache file is available then it sets the expired status to 0. Otherwise it adds the cache to the table, with a new id and expired set to 0.
The cache_files table contains something like:
id
cache
expired
01
compiles/cache/user.ezt-9dsafa0
0
02
compiles/cache/user.ezt-84fdvj2
0
 1. register( $name, $value ). This function is called by the user application during cache creation. In our example the fetch function which returns the user object should call the register function.
 public static function fetch( $object, $id ) { $db = ezcDbInstance::get(); $s = $db->createSelectQuery(); $s->select( "*" )->from( $object )->where( $s->expr->eq( "id", $id ) ); $statement = $s->prepare(); $statement->execute(); $result = $statement->fetchAll(); // Inform the cache manager ezcTemplateConfiguration::getInstance()->cacheManager->register( $object, $result[0]["id"] ); }
An example implementation of the register method is as follows:
public function register( $name, $value ) { if ( $this->isCaching ) { $db = ezcDbInstance::get(); $s = $db->prepare( "REPLACE INTO cache_values VALUES ( :id, :name, :value )" ); $s->bindValue( ":id", $this->template_id ); $s->bindValue( ":name", $name ); $s->bindValue( ":value", $value ); $s->execute(); } }
After registration the cache_values table contains something like:
id
name
value
01
user
1
02
user
2
Via the cache_files table, we know that the user ID 1 is bound to the cache file 'compiles/cache/user.ezt-9dsafa0' and it is not expired.
 1. stopCaching(). The method is called when the caching is done. The only thing that needs to be done, is to set isCaching to false.
 public function stopCaching() { $this->isCaching = false; }
Right now, the cache file is created. The database contains the user IDs requested during the cache creation. Since the cache file is available, the Template engine will also call the isValid() method on the next request. If this method returns true then the values used in the cache are unaltered. Let's continue with the example and assume that the user application does change the data of one user.
 1. update( $name, $value ). The user application calls this method when a value changes that is possibly used inside the templates. The snippet below modifies the user name.
 public static function updateUser( $id ) { $db = ezcDbInstance::get(); $q = $


Skip to main content
Fig. 4 | BMC Medical Genomics
Fig. 4
From: Network-based drug sensitivity prediction
Fig. 4
Drug response prediction results of the neural network based models. Each dot represents one drug. The mean correlation coefficients between the predicted AUC and the true AUC scores of 50 repeats for each drug are plotted. Embed represents the network-based embedding method (Fig. 1) and GNN represents the graphical neural network model (Fig. 2)
Back to article page


text:
Some ideas for the future
- From: Jean Bréfort
- To: Gnumeric list
- Subject: Some ideas for the future
- Date: Thu, 16 Aug 2007 10:50:35 +0200
Some things I would like to see in gnumeric:
* new sheet types (graphs, macros, objects). IMHO, we should be able to
have a sheet with anything we can have at the moment as a sheet object.
* objects in cells. I'd like to extend the cells so that a cell can
contain an object.
* support for components. It would be nice to insert components (as
supported in goffice) as a sheet, as a sheet object and as a cell
content (this idea was suggested by another chemist who would like to
embed a molecule formula inside a cell). It would be possible also to
use the components in formulas, if we add an appropriate interface to
the component API. I'll give a new chemical example: suppose I have a
chemical formula in A1, in B1, I'd like to type
=object_property(A1,"mass") and get the molar mass of the molecule.
] [Thread Prev