text:
Objective: This study extends previous research by exploring the association between mood states (i.e., positive and negative affect) and fixation in practicing anesthetists using a realistic medical simulation. Background: The impact of practitioner emotional states on fixation is a neglected area of research. Emerging evidence is demonstrating the role of positive affect in facilitating problem solving and innovation, with demonstrated implications for practitioner fixation. Method: Twelve practicing anesthetists (4 females; Mage= 39 years; SD = 6.71) were involved in a medical simulation. Prior to the simulation, practitioners rated the frequency they had experienced various positive and negative emotions in the previous three days. During the simulation, the patient deteriorated rapidly, and anesthetists were observed for their degree of fixation. After the simulation, practitioners indicated the frequency of these same emotions during the simulation. Results: Nonparametric correlations were used to explore the independent relationships between positive and negative affect and the behavioral measures. Only positive affect impacted the likelihood of fixation. Anesthetists who reported more frequent recent positive affect in the three days prior to the simulation and during the simulation tended to be less fixated as judged by independent raters, identified a decline in patient oxygen saturation more quickly, and more rapidly implemented the necessary intervention (surgical cricothyroidotomy). Conclusion: These findings have some real-world implications for positive affect in patient safety. Application: This research has broad implications for professions where fixation may impair practice. This research suggests that professional training should teach practitioners to identify their emotions and understand the role of these emotions in fixation.
- anesthesiology and perioperative care
- patient safety
- skilled performance


text:
Flood Drain - Wicker Memorial Park, North Township, Highland, IN
Wicker Memorial Park in Highland, Indiana, had been experiencing problems with flooding created by the lack of an adequate storm water outfall. Township Staff had to setup and monitor a storm water pump during wet weather which resulted in additional staff hours on nights and weekends to tend to the pumps.
North Township brought in NIES Engineering, Inc., to develop a cost effective way to drain the park. Existing culverts that had been plugged were rehabilitated by installing smaller diameter PVC pipe through the culverts and installing duck-bill check valves to prevent water from flooding back into the park. Additionally a structure was installed in the northern most pond to regulate the water elevation in the pond and in the other connected ponds.
The installation of the culvert liners and check valves has greatly reduced the man hours dedicated to setting up and monitoring the stormwater pumps. The pond control structure maintains a constant water level in the golf course ponds making them more appealing and less work to maintain.
- Cost Effective Solution
- Reduced Over Time Costs
- Improved Drainage

source: m-a-p/FineFineWeb


text:
Indian and Himalayan Art
Pilgrimage to the Jain Temples at Shatrunjaya, near Palitana, GujaratMade in Rajasthan, Kota Region, India, Asia
Artist/maker unknown, India
Opaque watercolor and gold on paper
Currently not on view
1972-258-3Purchased with the Edgar Viguers Seeler Fund, the Marie Josephine Rozet Fund, and the Gertrude Schemm Binder Fund, 1972
Pilgrimage—particularly to places associated with the lives of jinas (enlightened beings)—is a crucial part of Jain worship. This wonderfully detailed painting depicts various aspects of a pilgrimage. Large groups, including both lay worshipers and white-robed monks and nuns, travel together through the landscape to visit a large temple of the twenty-third jina-Parshvanatha—who is the central figure of the three images. Parshvanatha is identifiable by the cobra hoods above his head and the snake below him. To his left and right are the sixteenth jina, Shantinatha (shown with an antelope below), and the first jina, Rishabhanatha (with a bull below). The images have been garlanded, and in front of the shrine lay worshipers celebrate the jinas with dance and music.
Many smaller temples dot the landscape, a number of them enshrining the footprints of jinas and other enlightened beings. The concentration of shrines indicates that this painting represents one of the main pilgrimage sites of Jainism, although the lack of an inscription makes exact identification impossible. Along the lower margin marches a festive procession, with those on the right focusing on a monk-teacher (acharya) whose importance is emphasized by the umbrella-like standard held above his head.

source: HuggingFaceFW/fineweb-edu


Documentation Contribution Guide
Good documentation is crucial for any kind of software. This is especially true for sophisticated software systems such as distributed data processing engines like Apache Hop. The Apache Hop community aims to provide concise, precise, and complete documentation and welcomes any contribution to improve Apache Hop's documentation.
Our documentation is not yet fully implemented
ideas and contributions are very welcome, come discuss with us on our chat.
Types of documentation
Apache Hop has multiple types of documentation, each type is directed to a different audience and covers other use cases. We are maintaining a user manual which contains basic and more advanced instructions on how to use and set up Hop.
User manual
The goal for the user manual is to give a general feeling to how the application works, which transforms and actions are available and a guide on how to use them. A default template is used to explain how transforms and actions work, an Archetype is included in the repository to use as a template.
Technical documentation
Technical documentation contains best practices and general guidelines on how to use Hop in several environments and use cases.
API documentation
This is code documentation and only needed when you want to explore the internals of Hop or contribute code.
Obtain the documentation sources
Depending on the type of documentation the Apache Hop documentation is maintained in the separate git repository as the code base.
User manual and Technical documentation
The easiest way to contribute documentation is to fork Hop's repository on GitHub into your own GitHub account by clicking on the fork button at the top right. If you have no GitHub account, you can create one for free.
Next, clone your fork to your local machine.
git clone/hop-doc.git
The user manual documentation is located in the hop-user-manual/ subdirectory. The technical documentation is located in the hop-technical-documentation/ subdirectory.
API documentation
To contribute to the API and code documentation create a fork of Hop's code repository.
git clone/hop.git
The API documentation is located in the docs/ subdirectory
Before you start start working on the documentation…
… please make sure there exists a Jira issue that corresponds to your contribution. We require all documentation changes to refer to a Jira issue, except for trivial fixes such as typos.
Update or extend the documentation
The Hop documentation is written in Asciidoc. Asciidoc is a lightweight markup language which can be translated to HTML.
In order to update or extend the documentation you have to modify the Asciidoc (.adoc) files. For more information on Asciidoc check out this website.
Still working on a way to validate the user manual and technical documentation in a stand alone mode see HOP-30
Please feel free to ask any questions you have on the developer chat channel.
Documentation translations
We are planning on providing all documentation in multiple languages. We are looking for contributors that want to work with us and make this possible! If you are interested to maintain a translation language feel free to contact us on our chat.
Submit your contribution
Apache Hop accepts documentation contributions through the GitHub as Pull Requests. Pull requests are a simple way of offering a patch by providing a pointer to a code branch that contains the changes.
To prepare and submit a pull request follow these steps.
Commit your changes to your local git repository. The commit message should point to the corresponding Jira issue by starting with [HOP-XXXX].
Push your committed contribution to your fork of the Hop repository at GitHub.
git push origin myBranch
Go to the website of your repository fork (/hop-doc) and use the "Create Pull Request" button to start creating a pull request. Make sure that the base fork is hop master and the head fork selects the branch with your changes. Give the pull request a meaningful description and submit it.
It is also possible to attach a patch to a Jira issue.


Coaching and mentoring
Through our previous work providing tailored facilitation and consultancy, we have often been asked to deliver coaching and mentoring for key individuals within an organisation. For example, current and previous projects include:
 1. External supervision for a Director managing major contract recommissioning and board development.
 2. Mentoring a senior manager to lead the development of an Equality, Diversity and Inclusion Strategy for a national organisation supporting people with lived experience of domestic abuse.
 3. Coaching a CEO to manage a process of change following internal conflict and consequent risks to delivery and governance compliance.
 4. Mentoring a small group of trustees to plan and implement a transformation of their board to lead their organisation our of a period of declining incomes and inadequate governance controls.
Through the VCSE Academy we are now working to develop this as a specific learning and support offer and to utilise the qualified coaches in our team.
If key people or parts of your organisation would like to discuss a coaching or mentoring project, please get in touch.


text:
From: Hartwick Pines State Park
Hartwick Pines Maple Syrup Time
Learn about the history of maple sugar making in North America on Saturday, March 23, 2013 from 10am to 4pm, as you help tap a maple tree and observe the boil-down process which converts maple sap into maple syrup. Of course, the day would not be complete without sampling this tasty Michigan product. Children can participate in a variety of fun and educational hands-on activities during Maple Syrup Day at Hartwick Pines. Among their unique experiences, they will construct a paper version of a mokuk, a birchbark container used by native peoples to transport maple syrup. This event is free of charge, although a Michigan state parks Recreation Passport is required for park entry. Phone for more details at _PHONE_.


text:
Several new studies demonstrate the difficulty of defining what constitutes the "atom" of a federal program, but a recent Washington Post article begins to uncover why it is so elusive, much like finding sub-atomic particles in physics.
Defining Federal Programs Isn't Simple
There is more than one way to define what constitutes a federal "program," and it is not unlike trying to define molecules, atoms, and sub-atomic particles.
Several years ago, Congress asked the Government Accountability Office (GAO) to prepare an annual series of reports on the extent of duplication and overlap among federal programs. GAO has dutifully complied and it has delivered reports over the past three years that it believes covers the waterfront. In its latest testimony, GAO says there are 83 areas where it identified duplicative, fragmented, or overlapping programs. But GAO's definition of what constitutes a "program" leaves the definition in the eyes of the beholder:
Generally, an organized set of activities directed toward a common purpose or goal that an agency undertakes or proposes to carry out its responsibilities. Because the term has many uses in practice, it does not have a well-defined, standard meaning in the legislative process. It is used to describe an agency's mission, functions, activities, services, projects, and processes.
Quantum physics seems to have a similar challenge: the observer's efforts to measure or define atomic activity actually interacts with the activity and is referred to as the Observer Effect. In the federal government, the Observers are various stakeholders and they define "programs" in the context of inputs (mainly appropriations), outputs, targeted recipients, geography, or other factors, as GAO describes.
Back in 2002, the Office of Management and Budget undertook an initiative to assess the performance of major federal programs. To do this, they created the Program Assessment Rating Tool (PART), but they had to also define what constituted a "program" in order to do the rating. This turned out to have been somewhat controversial, but in the end, they identified more than 1,000 programs across the government.
In 2010, Congress mandated OMB to develop an inventory of federal programs. The first step was defining what constitutes a "program," which OMB did. It used GAO's definition. OMB's guidance said that developing a list would take time and would occur in several phases. The first phase of that list was due to be published on the OMB Performance.gov website by May 31, 2013. It was. In it, agencies self-identified about 1,600 programs.
The Molecular Level of Programs
The agencies' contributions to the OMB inventory reflected the guidance and varied widely across agencies:
- The Department of Agriculture identified 59 programs by mission area and agency, and defined them by appropriation accounts.
- The Department of Commerce identified 70 programs that mirror its budget structure.
- The Department of Energy characterized its programs as "GPRA Units" and organized them by each Office in the department.
- The Department of Homeland Security identified 53 programs and organized them according to products, services, and outcomes it produces.
- The Department of the Interior provided the greatest level of detail, identifying about 200 programs, organized by its budget structure and the bureaus responsible for delivering the programs.
- The Small Business Administration identified 32 programs, organized around its program recipients and outcomes.
In each case, the agencies defined "programs" in a context that they perceived were most identifiable by, and relevant to, their stakeholders and their employees – the Observer Effect in practice! And in many of these cases, the programs reflect the complexity of molecules, not individual atoms.
The Atomic Level of Programs
Some federal programs are defined specifically in law, and oftentimes exist because of specific interests by members of Congress, even if there are multiple programs addressing the same concern. For example, GAO recently identified at least three federal programs that inspected catfish for food safety purposes and recommended repealing the program in Agriculture since similar programs existed in Commerce and the Food and Drug Administration. This was not a level of detail reflected in any of the three agencies' program inventories – hence my referring to programs such as these as being at the "atomic level." The Office of Catfish Inspection Programs in the Department of Agriculture has been targeted for elimination in the President's budget.
Similarly, OMB has prepared a list of nearly 200 programs to be cut or consolidated. Of these, 88 were identified as "lower priority" programs, in response to requirements in the GPRA Modernization Act. But these programs are at a much lower level – the atomic level -- than those that appear in the program inventory, and this list of "low priority programs" was also prepared in response to the GPRA Modernization Act.
The Sub-Atomic Level of Programs
The tension between providing equal treatment under the law and wanting to help constituents in the face of a one-size-fits-all definition that does not match reality on the ground is oftentimes the source of what seems to be a bewildering set of seemingly overlapping programs. This is the "sub-atomic" level of why it is difficult to define what constitutes a program.
This is best described via a recent, perceptive article in the Washington Post by David Farenthold about how the federal government has 15 different definitions of "rural." He describes how one of these definitions dates back to 1936, but most are more recent and are defined in law. By detailing such definitions in law, agencies must create separate programs, since they cannot use the same definition across programs. So, as Farenthold notes, there is a different definition of "rural" for grants for rural housing, food aid, and education. Depending on which definition is used, "rural" could mean a community with anywhere from 2,500 to 50,000 people. This would mean that anywhere from 59 million to 190 million Americans live in a rural area, depending on the definition used.
He gives concrete examples of how the definitions are revised in response to specific, on-the-ground cases where a generalized definition would not work. For example, one non-profit food bank in rural California, run by Kevin Sanchez "wanted a grant for a refrigerated truck to deliver food to people in outlying areas of the county. But there was a problem: At the end of the workday, Sanchez planned to park the truck at the food bank's office in the county seat, Woodland — population 56,000.... By this grant program's definitions, the truck couldn't be considered a rural project." He was advised to re-locate the truck outside city limits, but Sanchez said that would guarantee that it would get stolen. In the end, Sanchez didn't apply for the grant.
These kinds quirks in programs occur over and over again in different policy areas – which are oftentimes reflected in varying definitions of metro areas, poverty, what constitutes being "employed," etc. Each of these definitions affects programs and the dollars being allocated to people and places. And it is this "sub-atomic" level that makes it so difficult to define what constitutes a program and why they seem to duplicate and overlap each other.
Image via Milos Dizajn/Shutterstock.com

source: openbmb/Ultra-FineWeb


text:
(THE EFFECT OF TEMPERATURE ON THE RATE OF A REACTION)
The purpose of this demonstration is to show the effect of temperature upon the rate of a reaction.
This demonstration is appropriate for a general or first-year college-prep course. The rate of formation of CO2 (g) from the reaction of Alka-Seltzer tablets with water at different temperatures is easily observed by comparing the rates of inflation of balloons attached to the flasks in which the reactions are carried out.
Approximately 10 minutes.
*See Modifications / Substitutions
Safety goggles must be worn by those doing the demonstration.
In place of Erlenmeyer flasks, 10-12 oz. soda bottles may be used.
- Alka-Seltzer tablets
- tap water - hot, room temperature, and cold
- balloons (previously blown up to stretch them)
- 125-mL Erlenmeyer flasks*
- chemical scoops, spatulas or spoons
Solutions may be flushed down the drain with water.
Bicarbonate and hydrogen ions, produced when Alka-Seltzer dissolves in water, react according to the following equation:
- Ask students to help with the demonstration; it will require at least one student per flask.
- Fill one flask about half way with hot tap water. Add an equal volume of room temperature tap water to the second flask and an equal volume of cold tap water to the third.
- Practice putting the balloon over the mouth of the flask.
- Break three Alka-Seltzer tablets into comparable size pieces.
- Add one broken tablet to each flask.
- Immediately put a balloon over the mouth of each flask.
- Note the rate of balloon inflation.
- Compare the sizes of the inflated balloons when the reactions are finished to demonstrate that only the rate of reaction is affected, not the final amount of product.
HCO3-(aq) + H+(aq) ----> H2O (l) + CO2 (g)
Increasing the temperature increases the rate of reaction because at the higher temperature, a greater percentage of ions in the sample have energy greater than the required activation energy for the reaction. The observed rate of inflation of the balloons, which is shown to be related to the temperature at which the reaction takes place, is a measure of the rate of formation of carbon dioxide gas.
Check balloons before doing the demonstration to be sure that they will inflate with the pressure generated.
Smoot, Robert, Chemistry: A Modern Course, Merrill Publishing Co., Columbus, OH, 1983. This work desribes a similar demonstration.
Submitted by Patti Ruff, Bill Vitori, Irene Walsh, Doug Wilbur, and Joe Don Wilkins
Woodrow Wilson Leadership Program in Chemistry
The Woodrow Wilson National Fellowship Foundation
CN 5281, Princeton NJ 08543-5281


CSS Critic
A lightweight framework for regression testing of Cascading Style Sheets
View the Project on GitHub cburgmer/csscritic
CSS Critic is here to fill the gap in your test tooling.
Watch the screencast and learn how to write your first test:
You can see it in action testing the TodoMVC application.
The CSS Critic Examples project collects example applications integrating the UI test suite.
How it works
CSS Critic checks your current layout constantly against a reference image you have provided in the past. If your layout breaks (or simply changes - CSS Critic can't tell) your tests fail.
Get started:
 1. Create a RegressionRunner.html similar to the one under example/ and put it with your code that is to be tested.
 2. Register your page under test via:
 3. Open the RegressionRunner.html in Firefox for the first time and save the resulting image as future reference.
 4. Re-run the RegressionRunner.html and see your test passing. Congratulations.
What do I do if my test fails?
 1. Have a look at the diff image and visually check what has changed.
 2. If the change is an unwanted one fix your CSS,
 3. If deliberate generate a new reference image.
The test suite in action for the TodoMVC applicationThe test suite in action for the TodoMVC application.
Maintained by _USER_. Copyright (c) 2012 ThoughtWorks, Inc.
Licensed under MIT.


text:
Chauvin Arnoux CA 6471 Earth and Resistivity Tester
The CA 6471 is a ergonomic, comprehensive and accurate tester offering direct access to all the measurements on the front panel by means of a rotary switch.
CA 6471 Earth and Resistivity Tester offers:
- Selective earth measurement
- Soil resistivity measurement
- Earth coupling measurement
- Continuity measurement
(Takes measurement in parallel without disconnecting the earth and without rods)
Chauvin Arnoux CA 6471 is reliable
The CA 6471 guarantees the reliability of measurements carried out by:
- Traditional stake-based methods
- Self-diagnosis when each measurement starts, so that any faults liable to affect the measurements (bad connections or presence of disturbance signals) are indicated
- Extensive measurement ranges: 0.001 Ω to 100 kΩ
- Adjustment of the measurement frequency between 41 Hz and 512 Hz (3P and 4P measurements)
Chauvin Arnoux CA 6471 is advanced
The CA 6471 is equipped with advanced expert calculation functions:
- For earth coupling measurements, simply perform the 3 successive measurements required and the tester then calculates the coupling coefficient automatically
- For soil resistivity measurements, simply program the distances used for the measurement and the instrument automatically calculates r using the Wenner or Schlumberger methods.
CA 6471 Key Features:
- Multi-function testers
- 3-pole and 4-pole measurements
- Selective 4-pole measurements, 2 clamps
- Resistivity (Wenner + Schlumberger methods)
- Earth coupling
- Continuity and resistance
- Measurements possible even with highly resistive soils
- Improved measurement quality due to high rejection of disturbance voltages
- Excellent accuracy and resolution
- A USB communication output can be used to export the data onto a PC in order to process them with the Ground Tester Transfer software
Earth Measurement with 3P
The 3P method is the traditional method using rods to measure the resistance of an existing earth connection.
The CA 6471 can also be used to measure the resistances of the auxiliary rods RS and RH, as well as any disturbance voltages.
Suitable for all types of measurement environments, even the most difficult, this method guarantees measurement of auxiliary-rod resistances up to 100 kΩ and disturbance voltages of 60 Vpeak.
4P and Selective 4P Earth Measurement
The 4P measurement method is particularly suitable for measuring very low earth resistances. If there are several resistances connected in parallel, it is possible to use the instrument with a clamp-on ammeter to carry out selective measurements, in order to avoid the effect of the parallel earth connections. This "selective 4P" measurement method saves considerable time because it is no longer necessary to disconnect the earth resistance before measuring it.
The 4P measurement method is more accurate and can be used to measure low earth resistances. The results obtained with this measurement method are ideal for the requirements of energy distributors!
Earth Loop Measurement with 2 Clamps
In the event of a system with parallel earth connections, 2 clamp-on ammeters can be used with the CA 6471 to provide accurate earth resistance measurements.
The principle of this method involves placing 2 clamps around the earth conductor tested and connecting each of them to the instrument. One clamp injects a known signal (32 V / 1,367 Hz) while the other clamp measures the current flowing in the loop.
This method saves considerable time when earth testing because it is no longer necessary to set up auxiliary rods or disconnect the earth connections, which is often time consuming.
Measurement of Earth Coupling Soil Resistivity Measurement
To estimate the reciprocal influence of 2 normally unrelated earth resistances, you must calculate the coupling coefficient, which should be as low as possible. The operator takes 3 successive measurements (2 classic earth measurements using the classic 3P – R1 & R2 method, and 1 earth measurement using the 2P – R1-2 method. The instrument then automatically calculates the coupling resistance: Rc = (R1+R2–R1-2)/2.
Soil Resistivity Measurement
When it is possible to choose the position of the earth connection, resistivity measurements can be used to check the soil and determine where the earth resistance will be lowest (optimisation of building costs).
The CA 6471 automatically calculate soil resistivity using the Wenner or Schlumberger methods as soon as the distances between the rods have been entered.
The resistances of the rods RE, RES, RS and RH can also be measured.
What comes with the CA 6471?
- CA 6471 Earth and Resisitivity Tester
- 2 x C182 clamps with safety leads
- External mains charger
- Data export software
- USB lead
- Operating manual (in 5 languages)
- Simplified operating manual (in 5 languages)
- Identification labels (in 5 languages)
- Carry case
- Certificate of conformity


text:
Below are new features in NVDA 2018.1, released March, 2018. This is a part in NVDA's documentation.
Highlights of this release include support for charts in Microsoft word and PowerPoint, support for new braille displays including Eurobraille and the Optelec protocol converter, improved support for Hims and Optelec braille displays, performance improvements for Mozilla Firefox 58 and higher, and much more.
- It is now possible to interact with charts in Microsoft Word and Microsoft PowerPoint, similar to the existing support for charts in Microsoft Excel.
- In Microsoft Word: When in browse mode, cursor to an embedded chart and press enter to interact with it.
- In Microsoft PowerPoint when editing a slide: tab to a chart object, and press enter or space to interact with the chart.
- To stop interacting with a chart, press escape.
- New language: Kyrgyz.
- Added support for VitalSource Bookshelf.
- Added support for the Optelec protocol converter, a device that allows one to use Braille Voyager and Satellite displays using the ALVA BC6 communication protocol.
- It is now possible to use braille input with an ALVA 640 Comfort braille display.
- NVDA's braille input functionality can be used with these as well as other BC6 displays with firmware 3.0.0 and above.
- Early support for Google Sheets with Braille mode enabled.
- Support for Eurobraille Esys, Esytime and Iris braille displays.
- The HIMS Braille Sense/Braille EDGE/Smart Beetle and Hims Sync Braille display drivers have been replaced by one driver. The new driver will automatically be activated for former syncBraille driver users.
- Some keys, notably scroll keys, have been reassigned to follow the conventions used by Hims products. Consult the user guide for more details.
- When typing with the on-screen keyboard via touch interaction, by default you now need to double tap each key the same way you would activate any other control.
- To use the existing "touch typing" mode where simply lifting your finger off the key is enough to activate it, Enable this option in the new Touch Interaction settings dialog found in the Preferences menu.
- It is no longer necessary to explicitly tether braille to focus or review, as this will happen automatically by default.
- Note that automatic tethering to review will only occur when using a review cursor or object navigation command. Scrolling will not activate this new behavior.
- Browseable messages such as showing current formatting when pressing NVDA+f twice quickly no longer fails when NVDA is installed on a path with non-ASCII characters.
- Focus is now once again restored correctly when returning to Spotify from another application.
- In Windows 10 Fall Creaters Update, NVDA no longer fails to update when Controlled Folder Access is enabled from Windows Defender Security Center.
- Detection of scroll keys on Hims Smart Beetle displays is no longer unreliable.
- A slight performance improvement when rendering large amounts of content in Mozilla Firefox 58 and later.
- In Microsoft Outlook, reading emails containing tables no longer causes errors.
- Braille display gestures that emulate system keyboard key modifiers can now also be combined with other emulated system keyboard keys if one or more of the involved gestures are model specific.
- In Mozilla Firefox, browse mode now works correctly in pop-ups created by extensions such as LastPass and bitwarden.
- NVDA no longer sometimes freezes on every focus change if Firefox or Chrome have stopped responding such as due to a freeze or crash.
- In twitter clients such as Chicken Nugget, NVDA will no longer ignore the last 20 characters of 280 character tweets when reading them.
- NVDA now uses the correct language when announcing symbols when text is selected.
- In recent versions of Office 365, it is again possible to navigate Excel charts using the arrow keys.
- In speech and braille output, control states will now always be reported in the same order, regardless whether they are positive or negative.
- In apps such as Windows 10 Mail, NVDA will no longer fail to announce deleted characters when pressing backspace.
- All keys on the Hims Braille Sense Polaris displays are now working as expected.
- NVDA no longer fails to start on Windows 7 complaining about an internal api-ms dll, when a particular version of the Visual Studio 2017 redistributables have been installed by another application.


text:
Quantification of Sound Quality for Engine in Stationary and Run-Up Conditions 1999-01-1815
To consider the acoustic quality in car design, a scientific methodology is developed in order to give an objective notation. To obtain a good correlation between the subjective and objective judgments, the first point is the choice of recording points that represent the signature of each sound sources that the human ear detects in space. Then, the information about the sound quality is extracted from signals with the computation of different appropriate parameters like "shock balance" and "roughness". From these metrics, a notation system similar to a neural network gives a single note. At last, the processing of parameter is different for engine in stationary or run-up conditions.


text:
A Case Study of the Influence of Family on First-Generation College Students' Educational Aspirations Post High School
Acker-Ball, Shawna Lynn
MetadataShow full item record
The purpose of this study is to examine how factors in the home environment (hereby referred to as habitus) (Bourdieu, 1977) impact the educational aspirations of first-generation college students who are participants in an academic achievement program designed to meet the needs of first-generation and underrepresented students (Ronald E. McNair Post-Baccalaureate Achievement Program). This study examined family characteristics such as educational and cultural practices, academic awareness, social class position and parental expectations to determine if they have an impact on student aspirations. The primary research question to guide this study is, "What is the influence of family on first-generation college students' educational aspirations post high school?" This study sought to determine how families that were from traditionally underrepresented populations (low SES, ethnic minorities, single parent home, etc.) in post-secondary education were able to influence the aspirations of their children to attendcollege. Put differently, the study sought to understand the amount of exposure that each student had to the collegiate experience, the arts, financial information, and other cultural and social events. This study focused on what happened in the homes of the participants that provided the requisite skills, attitudes and behaviors that would serve as a source of motivation to aspire to college.


condition modifications can be applied by string-manipulation of the condition-array.
Example simplified SQL logic
Db::easy('user.*',['delete_date'=>'!']) SELECT * FROM user WHERE delete_date IS NOT NULL
Db::easy('user.*',['delete_date'=>'']) or db::easy('user.*',['^delete_date']) SELECT * FROM user WHERE delete_date IS NULL
Db::easy('user.*',['age'=>'>30']) SELECT * FROM user WHERE age > 30
Db::easy('user.*',['id'=>'$123s..']) SELECT * FROM user WHERE id = UNHEX(123s..) (convert hex to binary)
Db::easy('user.*',['delete_date'=>'.']) SELECT * FROM user WHERE delete_date = NOW()
But what if the value passed to an operandi starts with a modifier? You can prepend the modifier '=' (equal) to prevent operandi from triggering! e.g.:
Db::ask('password',['password'=>'='.password_hash('123456', PASSWORD_DEFAULT)])
Value modifiers (selectandi)
Common value-modifications can be applied by string-manipulation of the select-statement. These modifiers should be used with the "as-declaration"
Example simplified SQL logic
Db::easy('#user.insert_date:inserted') SELECT UNIX_TIMESTAMP(user.insert_date)*1000 as inserted FROM user
Db::easy('user.* $user.id:id') SELECT *, HEX(id) as id FROM user
But what if the value passed to a selectandi starts with a modifier? You can prepend the modifier '=' (equal) to prevent operandi from triggering! We do not provide an example as this can only happen if your column names would start with a character in violation with a secure filter_character setup.
Db-easy markup
Let's face it: most of the time our queries are rather simple. Whenever we need more complex queries, there will always come the point of realizing that pure SQL would be easier to read than endlessly encapsulated arrays. This is where using Db::ask's "any"-actions come into play.
Db::easy does not target these scenarios, but rather specializes in the ever-day retrieval of a particular set of data. The selected columns are written in one single string.
Selecting multiple columns from a table
Multiple columns of one table are separated by a space:
// SELECT first_name, last_name FROM user
Db::easy('user.first_name user.last_name');
Simple joins
Joins are generated based on the order of the occurrence in the string from left to right, respecting the first used table as the "master". Easy can only perform JOINS if the recommended db structure is used. This means that foreign keys must be in the format "master"_id.
// SELECT
// user.first_name,
// user.last_name,
// user_email.email,
// user_password.confirm_date
// FROM user
// JOIN user_email ON user_email.user_id = user.id
// JOIN user_password ON user_password.user_id = user.id
Db::easy('user.first_name user.last_name user_email.email user_password.confirm_date');
Heads up
The general approach of the db-app has been applied for years. While the difference to common wrappers for mysqli of pdo seems rather big, developers are usually surprised of the low learning-curve and possibilities for faster development it offers.
Deprecation
The Db::data-function is considered unsafe without proper escaping and throws a deprecation-notice since 0.0.3
You can't perform that action at this time.


text:
Purpose: Our goal was to use functional MRI (fMRI) to measure brain activation in response to imagination of odors in humans.
Method: fMR brain scans were obtained in 21 normal subjects (9 men, 12 women) using multislice FLASH MRI in response to imagination of odors of banana and peppermint and to the actual smells of the corresponding odors of amyl acetate and menthone, respectively, in three coronal sections selected from anterior to posterior temporal brain regions. Similar studies were obtained in two patients with hyposmia using FLASH MRI and in one patient with hyposmia using echo planar imaging, both before and after theophylline treatment, which returned smell function to or toward normal in each patient. Activation images were derived using correlation analysis, and ratios of areas of brain activated to total brain areas were calculated.
Results: Activation was present in each section in all normal subjects and in each patient after imagination of each vapor. In normal subjects, brain activation in response to imagination of odors was significantly less than that in response to the actual smell of these odors, and activation following imagination of banana odor was significantly greater in men than in women, as was previously reported for the actual smell of the odor of amyl acetate. However, in relative terms, albeit at an absolute lower brain activation level, the ratio of brain activation by imagination of banana to activation by actual amyl acetate odor was about twice as high in women as in men. Before treatment, in patients with hyposmia, brain activation in response to odor imagination was greater than after presentation of the actual odor itself. After treatment, in patients with hyposmia in whom smell acuity returned to or toward normal, brain activation in response to odor imagination was not significantly different quantitatively from that before treatment; however, brain activation in response to the actual odor was significantly greater than that in response to imagination of the corresponding odor. Brain regions activated by both odor imagination and actual corresponding odor were similar and consistent with regions previously described as responding to odors.
Conclusion: These studies indicate that (a) odors can be imagined and similar brain regions are activated by both imagined and corresponding actual odors; (b) imagination of odors elicits quantitatively less brain activation than do actual smells of corresponding odors in normal subjects; (c) absolute brain activation in men by odor imagination is greater than in women for some odors, but on a relative basis, the ratio for odor imagination to actual smell in women is twice that in men; (d) odor imagination, once the odor has been experienced, is present, recallable, and capable of inducing a relatively constant degree of brain activation even in the absence of the ability to recognize an actual corresponding odor.


A Model to Estimate L-Strut Strength With an Emphasis on Thickness
 loading Checking for direct PDF access through Ovid
Abstract
Importance
To perform and teach septorhinoplasty, one must have a principled understanding of the mechanics of the nasal septum. The thickness of the L-strut and how it changes septal strength have not been adequately quantified, yet calculating septal strength based on changes to thickness and size is vital in maintaining lasting nasal strength and integrity.
Objective
To establish standards for the nasal septal cartilage thickness, dorsal and caudal septum length, and Young's modulus. To provide a basis for quantitative, operative decision making, a mathematical model of L-strut strength is presented based on changes in thickness and width.
Design, Setting, and Participants
Nasal septal cartilages from 30 fresh cadavers were used to measure thickness at clinically relevant points and length of dorsal and caudal L-strut arms. The Young modulus was directly measured using a force gauge. Statistical analyses were performed to compare thicknesses in anatomically relevant areas. Using a cantilevered beam construct, the spring constant of the L-strut dorsal and caudal arms were estimated individually with width and thickness as variables.
Main Outcomes and Measures
Thickness, dorsal and caudal length, and the Young modulus of nasal septal cartilage. Spring constants of dorsal and caudal L-strut arms with different combinations of thickness and width.
Results
The mean (SD) age at death of the 30 cadavers was 79.2 (13.6) years (range 50-97 years). Of these, 17 (57%) were male, and 13 (43%) were female. The mean (SD) nasal septal cartilage thickness in the 30 cadavers was 1.45 (0.54) mm. Mean (SD) thickness of points along the 2-mm L-strut line was 1.49 (0.56) mm and was significantly thicker than points along the 5-mm L-strut line (mean [SD] thickness, 1.29 [0.52] mm) but significantly thinner than points along the 15-mm L-strut line (mean [SD] thickness, 1.68 [0.53]). Mean (SD) thicknesses of the posterior dorsal and caudal cartilage points were 1.52 (0.45) mm and 1.71 (0.69) mm and were significantly thicker than the anterior dorsal and caudal points (mean [SD] thickness, 1.28 [0.42] mm and 1.31 [0.44] mm, respectively). Mean (SD) dorsal and caudal L-strut arm lengths were 21.9 (3.7) mm and 20.9 (3.5) mm, respectively. The mean (SD) Young modulus was 2.03 (1.3) MPa. A model was generated demonstrating the thickness required to maintain a desired strength at a given dorsal or caudal arm width.
Conclusions and Relevance
Although thickness was not uniform throughout the nasal septum, there is a predictable pattern. Thickness of the L-strut contributes more to septal strength than does L-strut width. The model generated in this study can be used in planning, performing, or teaching the applied mechanics of septorhinoplasty.
Level of Evidence
NA.
Related Topics
 loading Loading Related Articles


History of Scientific Women
Main achievements: Author of the books: "Dispute of the Procession of the Equinoxes", "Dispute of Longitude and Stars" and "The Explanation of a Lunar Eclipse".
Wang Zhenyi was a famous female scientist from the Qing dynasty. She breached the feudal customs of the time which hindered women's rights and arduously worked to educate herself in subjects such as astronomy, mathematics, geography, and medicine. She was a very strong and intelligent woman well known for her contributions in astronomy, mathematics, and poetry. She was an acclaimed scholar, "An extraordinary woman of 18th century China."
Zhenyi's ancestral home is in Anhui province, but her grandfather's family moved to Jiangning or present-day Nanjing. Wang Zhenyi was very fond of reading when she was a child and was very clever. Her family consists of her grandfather, grandmother and her father. Her grandfather Wang Zhefu, was a former governor of Fengchen county and Xuanhua District. He had broad and profound intellect with a deep love for reading and had a collection of over seventy-five bookshelves. Her father Wang Xichen failed the imperial examination and instead studied medical science and recorded his findings in a four-volume collection called Yifang yanchao (Collection of Medical Prescriptions). Her grandmother is named neé Dong. Her grandfather was her first teacher in astronomy, her grandmother was her teacher of poetry, and her father taught her medicine, geography, and mathematics. Wang Zhefu, her grandfather, died in 1782 and the family traveled to Jiling (close to the Great Wall) for his funeral. They stayed in the region for five years, which is where Zhenyi gained extensive knowledge from reading her grandfather's collection of books as well as learning equestrian skills, archery, and martial arts from the wife of a Mongolian general named Aa.
At the age of sixteen, Wang Zhenyi traveled south of the Yangtze river with her father, until she moved back to the capital. She was able to see places like Shaanxi, Hubei, and Guangdong, broadening her horizons and enriching her experiences. When she was eighteen, she made friends with female scholars in Jiangning through her poetry and began focusing on her studies in astronomy and mathematics, most of which were self-taught. At age twenty-five she married Zhan Mei from Xuan cheng in Anhui province. After her marriage, she became better known for her poetry and knowledge in mathematics and astronomy that she once taught some male students. Wang Zhenyi died at age twenty-nine and had no children.
Although she only lived to be twenty-nine, Wang Zhenyi was very accomplished in the academic world. She excelled in astronomy and mathematics. One of her contributions was being able to describe her views of celestial phenomena in her article, "Dispute of the Procession of the Equinoxes." She was able to explain and simply prove how equinoxes move and then how to calculate their movement. She wrote many other articles such as "Dispute of Longitude and Stars" as well as "The Explanation of a Lunar Eclipse." She commented on the number of stars, revolving direction of the sun, the moon, and the planets Venus, Jupiter, Mars, Mercury, and Saturn as well as describing the relationship between lunar and solar eclipses. Not only did she study the research of other astronomers, but she was able to find her own original research. One of her experiments to study a lunar eclipse included placing a round table in a garden pavilion, to be a globe; she hung a crystal lamp on a cord from the ceiling beams, to be the sun. Then on one side of the table she had a round mirror as the moon. She moved these three objects as if they were the sun, earth, and moon according to astronomical principles. Her findings and observations were very accurate and recorded in her article, "The Explanation of a Solar Eclipse."
In the realm of mathematics, Zhenyi had mastered trigonometry and knew the Pythagorean theorem. She wrote an article called "The Explanation of the Pythagorean Theorem and Trigonometry," where she described a triangle and the relationship between the shorter leg of a right triangle, the long leg, and the triangle's hypotenuse all correctly. She admired the mathematician Mei Wending (_PHONE_ A.D.). He was famous in the early Qing dynasty, who wrote the book Principles of Calculation. Wang Zhenyi became a master of this book and even rewrote it with simpler language and made it available to others under the title The Musts of Calculation. She was even able to simplify multiplication and division to make learning mathematics easier for beginners. She was very dedicated in her study of mathematics and even wrote a book called The Simple Principles of Calculation when she was twenty-four. Her studies were difficult and she once said, "There were times that I had to put down my pen and sighed. But I love the subject, I do not give up."
Source : Wikipedia


Message XbpWindow():xbeM_MbClick Foundation
Middle mouse button click.
:mbClick := {| aPos, uNIL, self |... }
:mbClick ( ) --> self
 is an array containing two elements { nX, nY } that specify the current position of the mouse pointer. By default the coordinates are relative to the lower left corner of the parent.
This method returns the object executing the method (self).
The xbeM_MbClick event is generated when the Xbase Part is clicked with the middle mouse button (the button is pressed and immediately released). If the key is held down too long, the xbeM_MbUp event is generated instead of xbeM_MbClick. The xbeM_MbUp event indicates that the mouse button was released. contains the current position of the mouse pointer and corresponds to the first message parameter of the function AppEvent().


text:
If you've always wanted to learn how to compost, why not head over to the working composting farm that has sprouted up on the south side of Governors Island to give it a try? A partnership between Earth Matter NY and Governors Island Preservation and Educational Corporation, the facility offers children and adults a chance to learn the ins and outs of composting from start to finish on the miniature farm. Experts are on site giving composting demonstrations and there's even a small petting zoo with a variety of friendly chickens, goats, and baby rabbits.
The Earth Matter Kids composting farm spans 35 by 100 feet and is loccated near the southern shore of Governors Island behind Nolan Park. Inside, you can learn how to compost your own food in your kitchen, or work on larger scale community projects you can start in your own neighborhood. Open on Fridays, Saturdays and Sundays from 11am to 5pm, the farm is an outdoor classroom for all ages to learn just how beneficial composting is.
Visitors to the farm can even bring their own food to compost, or take home a sample of the "Black Gold" composted fertilizer to put into their own gardens. Aside from compost and worms, the farm also has two adorable and friendly goats teetering around, who love to be petted nearly as much as they enjoy munching on compost. The resident flock of chickens includes varieties out of the ordinary, some with decorative plumage fancier than the traditional barnyard bird.
As if Governors Island didn't have enough to do, the Earth Matter Compost farm gives city kids a chance to get their hands dirty, while learning green practices that can benefit their family's urban gardens.
Images ©Lori Zimmer for Inhabitat
Check out more images on our Flickr stream!


Alan K. Stebbens > Term-Query-2.0 > Term::Query
Annotate this POD
New 1
Open 0
View/Report Bugs
Term::Query - Table-driven query routine.
use Term::Query
qw( query query_table query_table_set_defaults query_table_process );
$result = query $prompt, $flags, [ $optional_args ];
$ok = query_table \_USER_;
query_table_set_defaults \_USER_;
$ok = query_table_process \_USER_, \&flagsub, \&querysub;
Given $prompt and $flags, and possibly additional arguments, depending upon the characters in $flags, query issues a prompt to STDOUT and solicits input from STDIN. The input is validated against a set of test criteria as configured by the characters in $flags; if any of the tests fail, an error message is noted, and the query is reattempted.
When STDIN is not a tty (not interactive), prompts are not issued, and errors cause a return rather than attempting to obtain more input. This non-interactive behaviour can be disabled by setting the variable $Foce_Interactive as below:
 $Term::Query::Force_Interactive = 1;
When $Force_Interactive is a non-null, non-zero value, query will issue prompts, error messages, and ask for additional input even when the input is not interactive.
The query_table subroutine performs multiple queries, by invoking query, setting associated variables with the results of each query. Prompts, flags, and other arguments for each query are given in an array, called a query table, which is passed to the query_table subroutine by reference.
The query_table_set_defaults subroutine causes any variables named in the given query table array to be assigned their corresponding default values, if any. This is a non-interactive subroutine.
A general interface to processing a query table is available with the query_table_process subroutine. It accepts a query table array, and two subroutine references, a &flagsub and a &querysub. The &flagsub is invoked on each each flag character given in the $flags argument of the query table (see below). The &querysub is invoked for each query in the query table.
The query_table and query_table_set_defaults subroutines both use query_table_process to perform their functions.
Query Table
The format of the query table array passed to query_table, query_table_set_defaults, and query_table_process subroutines is:
 _USER_ = ( $prompt1, $flags1, [ $arglist1,... ],
 $prompt2, $flags2, [ $arglist2,... ],
 $promptN, $flagsN, [ $arglistN,... ] );
In English, there are three items per query: a prompt string, a flags string, and an array of arguments. Note that the syntax used above uses [... ] to denote a Perl 5 anonymous array, not an optional set of arguments. Of course, if there are no arguments for a particular query, the corresponding anonymous array can be the null string or zero.
The query table design is such that a query table can be created with a set of variables, their defaults, value constraints, and help strings, and it can be used to both initialize the variables' values and to interactively set their new values. The query_table_set_defaults subroutine performs the former, while query_table does the latter.
Flag Characters
With typical usage, given $prompt and $flags, query prints $prompt and then waits for input from the user. The handling of the response depends upon the flag characters given in the $flags string.
The flag characters indicate the type of input, how to process it, acceptable values, etc. Some flags simply indicate the type or processing of the input, and do not require additional arguments. Other flags require that subsequent arguments to the query subroutine be given. The arguments must be given in the same order as their corresponding flag characters.
The ordering of the flags in the $flags argument is important -- it determines the ordering of the tests. For example, if both the a and m flags are given as "am", then this indicates that an after subroutine call should be performed first, followed by a regular expression match test.
All tests are applied in the order given in the $flags until a particular test fails. When a test fails, an error message is generated and the input is reattempted, except in the case of the I flag.
Flag Characters Without Arguments
The input must be an integer.
The input must be a number, real or integer.
The input is a "yes" or "no", with a default answer of "yes".
The input is a "yes" or "no", with a default answer of "no".
Some input is required; an empty response will be refused. This option is only meaningful when there is no default input (see the d flag character below).
Strip and squeeze the input. Leading and trailing blanks are eliminated, and embedded whitespace is "squeezed" to single blank characters. This flag is implied by the k and K flags.
Do not treat input of? as a request for help. This disables automatic help, unless implemented with the after (a flag) subroutine.
Flag Characters With Arguments
The following flag characters indicate the presence of an argument to query. The arguments must occur in the same order as their corresponding flag characters. For example, if both the V and h flags are given as "Vh", then the first argument must be the variable name, and the next the help string, in that order.
a \&after
The next argument is the after subroutine, to be invoked after the input has been solicited. This feature provides for an "open ended" input validation, completely at the control of the user of the Query module. The after subroutine is invoked in this manner:
 &$after( \$input );
If the after sub returns an undef, then query processing stops with an immediate undef return value.
If the after sub returns a null or zero value, then the input is rejected and resolicted. No error messages are displayed except the "Please try again." message.
Since the after sub has the reference to the $input variable, it is free to change the value of input indirectly; ie:
 $$input = $some_new_value;
b \&before
The next argument is the before subroutine, to be invoked before any input is attempted. If the before sub returns a non-null, non-zero value, the current query will be attempted. If a null or zero value is returned, the current query will be abandoned, with a null return.
This feature, used in a query table, allows for selective queries to be programmed by using before subs on the optional queries. For example, using the following anonymous sub as the b flag argument:
 sub { $> == 0; }
will cause the corresponding query to only be issued for the root user.
The ordering of the b flag in the $flags argument is unimportant, since, by definition, this test is always performed before attempting any input.
d $default
The next argument is the default input. This string is used instead of an empty response from the user. The default value can be a scalar value, a reference to a scalar value, or a reference to a subroutine, which will be invoked for its result only if a default value is needed (no input is given).
h $help_string
The next argument is the help string, which is printed in response to an input of "?". In order to enter a? as actual text, it must be prefixed with a backslash: "\".
k \_USER_
The next argument is a reference to an array of allowable keywords. The input is matched against the array elements in a case-insensitive manner, with unambiguous abbreviations allowed. This flag implies the s flag.
The matching can be made case-sensitive by setting the following variable prior to the invocation of query:
 $Query::Case_sensitive = 1;
By default, this variable is null.
K \_USER_
The next argument is a reference to an array of disallowed keywords In this case, for the input to be unacceptable, it must match exactly, case-insensitive, one of the array elements. This flag implies the s flag.
The k option is useful for soliciting new, unique keywords to a growing list. Adding new fields to a database, for example.
The matching can be made case-sensitive by setting the $Query::Case_sensitive variable (see above).
l $maxlen
The next argument specifies the maximum length of the input.
m $regular_expression
The next argument specifies a regular expression pattern against which the input will be matched.
I $reference
The next argument is the input: either a simple scalar value, or a reference to a value, such as a SCALAR variable reference (eg: \$somevar), or a CODE reference (eg: sub {..}). In any case, the resulting value is used as input instead of reading from STDIN.
If the input returned by the reference does not match other constraints, additional input is not attempted. An error message is noted, and an undef return is taken.
This option is handy for applications which have already acquired the input, and wish to use the validation features of query.
It is also useful to embed a query definition in a query table which does not actually perform a query, but instead does a variable assignment dynamically, using the I reference value.
J $reference
The next argument is the input reference, as with the I flag, except that if the input fails any of the constraints, additional input is solicited from the input. In other words, the J flag sets a one-time only input reference. Think of it as jumping into


text:
Definition of Rootworm
1. Noun. A worm that tunnels through the roots of young plants. ¹
¹ Source: wiktionary.com
Definition of Rootworm
1. a beetle whose larvae feed on the roots of crop plants [n -S]
Click the following link to bring up a new window with an automated collection of images related to the term: Rootworm Images
Lexicographical Neighbors of Rootworm
Literary usage of Rootworm
Below you will find example usage of this term as found in modern and/or classical literature:
1. Pathogens of Maize Seeds: Bibliographyby Andrew Kalinski by Andrew Kalinski (1994)
"Mating behavioral studies of corn rootworm beetles are underway.... Additional studies examined the interactions of rootworm insecticides with post..."
2. Legumes in Crop Rotations--Bibliography, January 1990-December 1993 by Mary V. Gold (1994)
"The incidence of corn rootworm larval damage in corn after soybeans was greatest in the central, northeastern, and eastern regions of Illinois, where annual..."
3. Conservation Tillage by Jane P. Gates (1994)
"Corn rootworm infestations were applied at 0, 1650, 3300, or 6600 viable eggs m-1.... 4.1 Mg ha-1 with no rootworm eggs; 4.3 vs. 3.1 with 1650 eggs m-1;..."
4. Productive Soils: The Fundamentals of Successful Soil Management and by Wilbert Walter Weir (1920)
"Corn rootworm.—Corn growers in the Southern states, particularly, suffer much damage from the corn rootworm or "budworm." In some seasons it is difficult to..."
5. The Corn Crops: A Discussion of Maize, Kafirs, and Sorghums as Grown in the by Edward Gerrard Montgomery (1913)
"There are two insects that are most troublesome where continuous corn culture is practiced — the corn rootworm and the root-louse. Corn rootworm There are..."
6. IPM and Biological Control of Plant Pests: Field Crops: Bibliography January by DIANE Publishing Company (1995)
"... Feeding and toxic effects of floral sesquiterpene lactones, diterpenes, and phenolics from sunflower (Helianthus annuus L.) on western corn rootworm...."
7. Farm Friends and Farm Foes: A Text-book of Agricultural Science by Clarence Moores Weed (1910)
"Consequently this Corn rootworm has been a blessing in disguise,... The discovery of the life history of the Northern Corn rootworm and the pointing out of..."


text:
There's a second issue I want to talk about in this post: A major problem which remains for kdev-python is the documentation data, that is, the way the program gets information about external libraries, for example functions and classes in those libraries. I'd love to have some help here -- if you want to help improve kdev-python, this is a great point to start! There is no knowledge required about kdev-python's code base, or even C++ (all that is to do here can be done in python). Read more below in case you're interested.
Another note: kdev-python now has its own component on bugs.kde.org. Please report any issues you might encounter there!
Code completion featuresBesides the increase in maintainability, a number of features have been added or improved in code completion.
Multi-level calltipsThe primary reason for the rewrite was that I wanted to support multi-level function calltips, which just wasn't easily possible with the old code. That feature works now:
Named-parameter completionAnother improvement in function call completion is support for the "named parameters" feature: If you have a function which defines parameters with default values, you can specify their name followed by =, and then their value. This is now supported by kdev-python:
|Named parameter autocompletion|
|Named parameters are only suggested if all non-default ones have already been specified|
|Minimal completion widget for named parameters|
The art of doing nothingThere's many cases where an IDE just cannot offer useful (semantic) auto-completion, for example if you need to pick a name for a variable, class, or parameter. kdev-python now has more sensible rules for not offering semantic code-completion if it doesn't make sense (the widget you see is the default kate text completion widget, which you could disable seperately, but which actually makes sense):
|No semantic completion if you need to name a parameter|
|No semantic completion if you need to name a variable|
Iterator completionThere's now proper support for auto-completing a variable in a generator statement:
|Generator variable auto-completion|
Another new feature here is that if the last word is "in", kdev-python will sort variables you can iterate over first in the list (note the green background colour):
|Sorting variables by usefulness|
Import completionThis is not quite finished, it needs a bit of polishing (it currently completes stuff python does not allow, and does weird things like adding parentheses if you import a function), but it's definitely better than it was before:
|Code completion when importing single declarations from a module|
Shebang line completionA ridiculously trivial but neverthereless useful feature is completion for the Coding and Shebang lines:
|Code completion for the "Coding" line|
Call for help: Documentation dataNote: I will use the word "documentation" in the following sense here: it means not only the docstring or help text, but also basic information like "which classes are there in this library", "which methods does this class have", "which parameters does that function take", and "which type of object does that function return" -- in other words, all important information about a library's public API. This information is necessary for various things, most importantly semantic highlighting and code completion.
Description of the problemIn C++, providing documentation for libraries (like Qt), is... well, not easy, but it's at least obvious how to do it: You parse the header file the user code "_TAG_"s, and that will tell you everything you need to know (well, given that your analysis code is intelligent enough to fully understand the file's contents, which kdevelop's C++ code is). In Python, the situation is much more difficult:
- The first type of problem are libraries which are written in python, but heavily rely on fancy python magic to set themselves up (for example, modify __builtins__, or iterate over lists of functions to do something with them); it will probably never be possible to determine the correct outcome of those setup scripts without actually executing them. Modules which currently suffer from this are, for example, os and parts of django (especially the ORM, but that will need some special-case handling in any case, which I have yet to think about) -- kdev-python is not intelligent enough to understand what those do internally.
- Even worse are libraries which are written in pure C. By default, kdev-python cannot do anything about those.
The current solution is simple: Files similar to the header files C/C++ has are shipped with kdev-python in case the information kdev-python can extract from the files that are shipped with the library is not sufficient. An example where this works really well can be seen in the QtGui / QtCore modules; the documentation for those is provided in kdev-python/documentation_files/PyQt4/QtGui.py. Victor Varvariuc wrote a script which generates those files from the Qt documentation a while ago, and it works great.
So, where's the problem, then? The problem is, PyQt is well-documented in a systematic way, and other libraries aren't. Look at the python standard library, for example: There's no machine-readable documentation available which would even list classes and functions; function return types are, if at all, only documented in prosa text (yes, of course, strictly speaking, a function in python has no return type; but in most cases the type a function will return is actually fixed, and in those cases it would be useful to know it). The situation is similar for other important projects like numpy.
What needs to be done to improve the current situationThe following pieces of information are at least required in order to support a library in a remotely useful way:
- All classes and functions, and their members must be listed.
- For functions, at least the names of the parameters must be included, the types are nice but not so important.
- For functions a proper return type is very important (if you do i = button->icon(), and then want to access the properties of i, and icon() doesn't have a return type, no completion or highlighting can be done -- basically, even single functions with wrong return type can break highlighting and completion of large parts of a program's code).
- Constants and their types must be listed.
Some effort has been made in the past to support various libraries (for numpy there's something that parses the online docs and converts that to such header files), but the overall situation is rather miserable. The worst thing is probably that not even the standard library is supported properly.
ConclusionFirst of all, I don't really know a good solution for this whole problem. If you have an idea, or know how other IDEs solve that problem, please tell me! I think eclipse uses pydoc or so and collects the information when you configure the interpreter, but the result is not good enough that I'd want to copy their behaviour.
There's two important packages I have in mind for which the issue could probably be solved well in the "header files" way described above: the whole python standard library (os, sys, random, math,...), and numpy. If you're interested in helping, please contact me, for example in IRC in _TAG_ on irc.freenode.net. Or just write an email.


text:
Micro Journal Club: E. coli competence
kuehn at MENDEL.BERKELEY.EDU
Mon Sep 12 20:30:22 EST 1994
Dear Fellow Netters:
I think we are ready to begin the first "coordinated" discussion of a
journal article Thurs. Sept. 15th.
An interesting and very short paper has come up (with thanks to contributor
Tom Schneider) regarding the cycle of E. coli competence. Considering that
transformation of DNA into E. coli is important for most cloning projects
in many labs, it seemed an appropriate article of general interest. In
addition to the obvious technical advance, it also brings up the question
of the biochemical basis for competence and how it is related to the cell
Title:"The optimization of preparations of competent cells for
transformation of E. coli"
Authors: X. Tang, H.-O. Li, M. Zhang, H. Gao, A. Fujita, O. Sakatsume, T.
Ohta and K. Yokoyama
Reference: Nucleic Acids Research (1994) V.22, N.14, pp. 2857-2858.
Summary: (Due to the brevity of the paper, there is no abstract, so I will
attempt to summarize the results here.) The authors showed that the degree
of competence of several commonly used strains of E. coli changed during
their growth cycle. The authors noted that normally protocols advise
densities of 1 x 10^8 cells/ml (OD600=0.3-0.4) for optimal preparation of
competent cells using the calcium chloride method. However, the authors
demonstrated that E. coli cultures experience 2 peaks of competence: one
at the known OD=0.3-0.4 (5 x 10^7-1 x 10^8 cells/ml) and one at
OD=0.94-0.95 (4 x 10^8 cells/ml). In addition, they showed that the second
peak gave twice the tranformation efficiency. Thus, they forsee two
benefits: 1) a greater amount of competent cells can be prepared which 2)
take up DNA at higher efficiency. This method can be used for both RecA+
and recAstrains.
There are both basic and more complex questions to consider: What are the
factors that are involved in making E. coli competent for DNA uptake? How
might the cell cycle effect the competence of E. coli? Is competence
associated with cell division?
Comments and discussion of any related topics (ie, competence in other
types of bacteria..) by any and all bionetters are encouraged.
JC disclaimer: If the author(s) of the paper are listening, please forgive
and correct any errors made during the presentation or discussion of the
contents of the article.
More information about the Microbio


text:
Jim from California is trying to organize his kid's home chores list. He was trying to mark the current weekday's chores with conditional formatting and a cell that contained =NOW(). In Episode 1269, Bill shows us a method to solve this problem.
Mr. Excel - Kid's Home Chores List Welcome back to the Mr. Excel netcast. I'm Bill Jelen. I got a great question today from Jim. Jim's in California, although he's a Cleveland Indians fan. Jim was trying to organize what looked like household chores. He had days of the week and the task and he wanted to see if there was some way using equal now to highlight the chores for today. Okay, so today is Tuesday. It's when I'm recording this and also when you're watching it. And so we want to see if we can write a formula that will identify all of the Tuesday dates. Now Jim actually had real live dates under column A. I just have tasks Monday, Tuesday, Wednesdays. So for Jim, we're going to have to use not now, equal now, open parenthesis, close parenthesis, but equal today. The difference, both will return today's date but now changes every minute or every second to show the current time. And so, it would never be exactly equal. But in this method, we could actually use either now or today, either one would work. So we're going to go to Home, conditional formatting and create a new rule. Now if you're in Excel 2003, you'll got to format, conditional formatting, and then change that first drop down from cell values is to formula is. In this case, we're going to say use formula to describe which cells to format. And look at this, I see that A2 is the correct cell that has to be the one that we'll write the formula for. Then we'll apply it to all cells. And what we're going to do is we're going to say equal the task of today, open parenthesis and closed parenthesis, and then in quotes "DDDD". That's going to spell out the day of the week, the weekday. And so we have that text. We want to see if that's equal to $B2. Now that's really important, the dollar sign before the B. That says even for columns – actually no, equal, dollar sign, A2. Even for columns B and C, I always want to look back to column A. That the fact that we have no dollar sign before the 2 and the active cell is 2 so we're always going to look in the current row, column A of the current row, and see if that's equal to the text over there in A2. How we format it, I don't care. You can use whatever you want. Jim actually had – to be completely honest with you, it's a pretty hideous format but we'll replicate what he had with the yellow bold italic on top of a red format. Click okay and we got everything on Tuesday is highlighted. Now tomorrow, when we open this up, everything on Wednesday will be highlighted. So again, the trick there is to write a formula that will check to see if the text of today, that's going to return the weekday is equal to that value out there in A2. Now, we had real dates out there in A2 then we would use the text of A2 with the same format. If we just had a three-letter abbreviations, you can actually get away with just DDD so that will be MON. There are lots of different ways to tweak this to make it match your data.


text:
Secret DNR report details warming dangers in SC
COLUMBIA — South Carolina's wildlife agency gathered a team of scientists more than a year ago to study what could happen if temperatures in the state continue to warm, but have never released their report.
A draft of the committee's findings determined that if temperatures rise in the South by 9 degrees as projected by some over the next 70 years, South Carolina would see more beach flooding and invasion of non-native species such as piranha and Asian swamp eels, according to a draft of the report obtained by The State of Columbia.
One scientist involved in the initial work on the report for the Department of Natural Resources said there were political concerns whether readers of the report would accept that global warming was happening and was a danger.
"There were concerns about the political nature of it," Barry Beasley said.
But the new DNR director said the report needs more work before it is released. The agency also is busy with other environmental matters such as port expansion and a massive gold mine planned for Lancaster County, DNR Director Alvin Taylor said.
The group had 18 members, including seven PhDs, a climatologist and at least five other agency biologists.
"Scientists in all divisions of the DNR are concerned over the potential impacts of climate change on natural resources," the draft report says. "DNR recognizes climate change as a real phenomenon, grounded in numerous scientific studies, and DNR recognizes that thoughtful and careful planning is needed in order to protect the natural resources of the Palmetto State.


Studies on the inhibitions bioactive compounds from sargassaceae myriocystum to water treatment and purification
E. Sathish Kumar
Department of Zoology, Presidency College, Chennai- 600 005
R. Usha
Department of Zoology, Presidency College, Chennai- 600 005
Heavy metals pollution of drinking water has become one of the most serious problems due to their sever toxicities to human body. In this study, the adsorption of heavy metals from contaminated water using sargassaceae myriocystum and its activated carbon was investigated.Further, sargassaceae myriocystum was pre-treated with sulfuric acid, calcium chloride and magnesium chloride and tested for its ability to remove various heavy metals from contaminated water. sargassaceae myriocystum gave better uptake of chromium compared with calcium and magnesium treatments. The impact of different parameters such as initial metal ions concentration, contact time, adsorbent dose and pH on the removal were evaluatedsargassaceae myriocystumwith activated carbon was found to be the highest efficient column capable to remove 100% of heavy metals from drinking water samples. Thus, this column is considered as an efficient and cheap biotechnology for removing the heavy metals in drinking water treatment plants. Freundlich and Langmuir adsorption isotherm models were used to describe the biosorption of heavy metals by sargassaceae myriocystum.
March 16, 2021


text:
In Financial Data Quality Management Enterprise Edition (FDMEE) automated batch loads time out.
There are two most likely causes of this issue:
- Batch timeout setting not defined or insufficient in system and/or application settings in the FDMEE application
- Stuck thread timeout setting needs increasing in the ErpIntegrator0 managed server (weblogic)
To increase the batch timeout setting in the FDMEE application:
- Navigate to Data Management from EPM workspace.
- From the Setup tab, and then under Configure, select System Settings.
- In System Settings, from Profile Type, select Other.
- Define a timeout value for the "Batch timeout in minutes" setting.
To increase the Stuck Thread timeout settting in the ErpIntegrator0 managed server in weblogic:
- Navigate to weblogic admin console.
- Under domain structure, expand Environment and choose servers.
- Choose ErpIntegrator0 from the servers list.
- Under configuration, choose tuning.
- Choose Lock & Edit to modify the setting value.
- Increase the Stuck Thread Max time value. The value is in seconds. By default it will be 600 seconds (5 minutes).
- Choose activate configuration so that the settings take effect.
- Restart FDMEE service.
Hope this helps.


add share buttons
Types Of Loaders You Need To Know
Loaders are heavy construction equipment that are mainly used in construction companies to load different materials into other machineries such as trucks and haulers. Also, they help in lifting different types of other weights like soil, construction debris, asphalt, wood, raw minerals, recycled materials, and rocks. There are many companies that provide loader on offer in Ontario.
Types of Loaders
There are three main types of loaders commonly used in construction sites in Ontario; wheel loaders, skid loaders, and backhoe loaders. Each of the three has different features and uses. It is hence of great importance to understand all the three types of so as to be able to select the most appropriate one for your desired application.
1. Wheel loader
This is generally front end heavy loading equipment. The basic operation of this machine is digging up materials from the ground and dragging them to the dumping site. Different wheel loaders have varied buckets of sizes and stipulated operating weights.
2. Skid loader
The skid loader is also known as the skid steer loader. This is heavy lifting equipment that is normally fitted with lifting arms and other attachments for different types of construction applications.
3. Backhoe loader
The last of the three types is the backhoe loader. This is another popular engineering vehicle that is commonly used in construction sites in the industry. It is basically in the form of a tractor fitted with two loading buckets.
All three types of loaders are favorable for specific circumstances and weights. It is therefore important for constructors to use the most appropriate loaders for their intended purposes.


text:
Chalk Brushes for Illustrator Inspired by Early 20th Century Drygoods Stores.
Drygoods refers to dry food and other miscellaneous household goods. The term was often used during the late 19th and early 20th century.
The DryGoods – Chalk Brushes for Illustrator Pack is a throwback to these stores.
Included in this set:
- 23 chalk brushes including heaps of different strokes -Converted from real source material using our Five Step Conversion Method -Includes standard chalk, fine point, wide edges (great for filling areas), and more
- Presented on an attractive sample sheet (this sheet looks so good you'll want to print it and put it on your wall)
- Versions saved for CS4, CS5, CS6 and CC
Due to the ever-changing assortment of goods chalkboard signs and A-frame signs were used to advertise the days specials.
The DryGoods set equips you with 23 chalk Illustrator brushes. These brushes were created by using a variety of different chalks. Each with different amounts of wear and tear (for maximum diversity in your work.
Finally, we scanned them in at 600 PPI, post processed the scans in Photoshop, used premium auto trace software to convert to vector, and then minimized as many points as possible.
The result is a set of chalk brushes that look extremely real. Even though they're vector (as you can see from the examples) they look just like real chalk!
Note: These chalk brushes were made using our 5-Step-Vectorization Method. The result is extremely realistic chalk brushes, so real, they're hard to tell from the real thing!
Software compatibility: Adobe Illustrator CS4 and newer.
This product was originally featured in The Complete Vintage Designer's Kit (1000s of Best Selling Items)
The Smart Choice For Designers
Huge savings when you buy two or more marketplace items
Our downloads don't expire, download what you need when you need it
At no extra cost covering commercial & products for resale
click for details
Contact our friendly Customer Support Team at any time for help or advice


TITLE) cannot be read. Datacannot be writtento the source programtitlefile (TITLE) or control file (CONTROL). An error occurred during file access.
5. ERROR MESSAGE LIST
5.3 C : l/O MODULE EDITING
5.3.1 Error Message C:E-3021 C: E-3022 C: E-3023 C: E-3024 C: E-3025 C: E-3026 C: E-3027 C: E-3026 C: E-3030 FILE READ ERROR. HIT ANY KEY FILE WRITE ERROR. HIT ANY KEY INPUT DATA INVALID APPOINTED APPOINTED APPOINTED APPOINTED GROUP NOT EXIST BASE NOT EXIST SLOT NOT EXIST ID CODE NOT EXIST Contents The source program I/O module file (IOMODULE) cannot be read. Data cannot be written to the source program I/O module file (IOMODULE) or control file (CONTROL). Input data is invalid. Press F3 [HELP] to confirm the input procedure. The specified group does not exist. Press F3 [HELP] to confirm the input value range. The specified base does not exist. Press F3 [HELP] to confirm the input value range. The specified slot does not exist. Press F3 [HELP] toconfirm the input value range. The specified module does not exist. Press F3 [HELP] to confirm the module names that can be specified.
INPUT KEY NOT USED ADDRESS APPOINT ILLEGAL The specified module cannot be used at this address. Check whether the output module is specified at address X and whether the input module is specified at address Y. The specified group, base, and slot have already been assigned modules. Specify different group, base, and slot numbers. The specified channel does not exist. Press F3 [HELP] to confirm which channels can be specified. For I/O Unit-B (xxx:power-on/off information), a slot other than slot 0 cannot be specified. Specify slot 0.
C: E-3032
THE SAME GROUP,BASE AND SLOT ARE ALREADY SPECIFIED. INVALID CHANNEL NO. APPOINT INVALID DATA, EXCEPT O, IS SPECIFIED AT THE SLOT OF XXX AS l/O UNIT B. Warning Message THE SAME GROUP,BASE AND SLOT ARE ALREADY SPECIFIED. INVALID DATA, EXCEPT O, IS SPECIFIED AT THE BASE OF I/O UNIT B. BOTH I/O UNIT-A AND UNIT-B ARE SPECIFIED IN THE SAME GROUP.
C: E-3033 C: E-3034
5.3.2 Number C:W4020
Contents The specified group, base, and slot have already been assigned modules. Check whether the same numbers can be assigned for the group, base, and slot. For the I/O Unit-B module, a base other than base 0 cannot be specified. Specify base 0. I/O Unit-A and I/O Unit-B cannot be assigned to the same group. Specify different groups.
C:W4021
C:W4022
-257-
-8SZ-
03 W
ss3tmv 39vw1 ma a31 (01 ssmaav 35ww1 lla A~U (6 ssmaav a31 (8 ss3k4aav ~3n (L :sseJppe t%y~o(lol eql Aweds (800~ JO pesn s! (wed JO)eMdO swwds W!W) 13NVd kiOlVU3dO (9
JW~W u! Es S! (S3A) 1 uWM ss3Haav
HOW3 13NVd kl3lVkl3dO allvANI wa UldNl al1vANl 3114 3114
tzoc-3:a czoc-3:a zzoc-3:a izoc-3:a ozoc-310 JequnN
3niv~ (lOHlN03) aI!4lJW~ JO (VuVklVdSAS) al!l JW -weJed ureisk uJeJ6oJd 03Jnose~ioiue~yM eq iouum eiea (VuvtrvdsAs) w JwmJ~ .peeJ eq louue~ uwsAs UeJEbJd a3Jnos wi ~3y ANV 11~ ~Olj~3 A~W ANV IIH wow3 ebsse~
31l~M av3ti
muwJo3
9Nllla3
td313WWWd
InHlSAS
ps
1sn39vss3vu
klow3
5. ERROR MESSAGE LIST
5.5 E : LADDER/STEP SEQUENCE EDITING
5.51 Number
E:F-2100 E:F-2101 E:F-2102
Fatal error
Message CANNOT READ * FILE. CANNOT WRITE * FILE. CANNOT SEEK * FILE. Contents
5.5.2 Number
E:E-3100 E:E-3101 E:E3102 E:E-3103 E:E-3104 E:E-3105 E:E-3106 E:E-3107 E:E-3108 E:E-3109 E:E-3110 E:E-3111 E:E3112 E:E-3113 E:E-3114 E:E-3115 E:E-3116 E:E-3117 E:E-3118
I
Error (at editing ladder diagram)
Message INPUT INVALID Contents
1ADDRESS BIT NOTHING 1RELAY OR COIL NOTHING 1HORIZONTAL LINE ILLEGAL 1VERTICAL LINE ILLEGAL 1ILLEGAL FUNCTION NO.
FUNCTION LINE ILLEGAL PARAMETER NOTHING LADDER ILLEGAL ERROR NET FOUND RELAY OR COIL FORBIT
I I I I I
1PLEASE COMPLETE NET
ILLEGAL NETS CLEAED ADDRESS BIT NOTHING FUNCTION NOT FOUND
1LADDER BROKEN 1ADDRESS BYTE NOTHING
STACK REGISTER OVER(8BIT) ERR PLEASE KEY IN SUB NO.
E:E-3119 E:E-3120 E:E-3121 E:E-3122 E:E-3123 E:E-3124 E:E-3125 E:E-3126
1PLEASE KEY IN FUN NO.
SYMBOUCOMMENT LARGE DATA TOO
1SAME SYMBOL DATA EXIST
SOURCE PROGRAM OF DIFFERENT FILE FORMAT ILLEGAL SUBPROGRAM NAME TOO DEEP NESTING OF SUBPROGRAM SAME SUB-PROGRAM EXISTS NAME
I
A Format-B program was found to exist when renaming a Format-A program. An invalid subprogram name was input.
THE ZOOM NESTING CONDITION WILL BE CANCELLED, IF YOU SELECT TO ZOOM I********. SOURCE PROGRAM OF ANOTHER FORMAT EXISTS A Format-B program, having the same name as that specified for the Copy/Move to file function, was found to exist during Format-A program editing.
E:E-3127
5. ERROR MESSAGE LIST
Number
E:E-3128 E:E-3129 E:E-3130 E:E-3131 E:E-3132
Messacle ILLEGAL SYMBOL PROGRAM OPEN ERROR PROGRAM NOT EXIST NOT EXIST APPOINT DATA SIZE PROGRAM NOT READ
Contents
A value that cannot be used as a symbol was input during symbol editing.
E:E-3133 E:E-3134-7 E:E-3135 E:E-3136 E:E-3137 E:E-3138 E:E-3139
1PROGRAM NOT WRITE
DIRECTORY NOT EXIST
1 LADDER DATA NOT EXIST 1PROGRAM IS OPENED
PROGRAM NAMES LIMIT OVER CAN NOT RENAME LATMP 1 PROGRAM NOT EXIST An attempt was made to perform renaming after editing LATMP with the File function.
5.53 Number
E:E3200 E:E-3201 E: E-3202 E:E3203 E:E-3204 E:E-3205 E:E-3206 E:E-3207 E:E-3208
Error (at editing step sequence) Message
ILLEGAL SOURCE CODE. BUFFER SIZE OVER. NUMBER OF NEST BRANCH TOO
Contents
A read error occurred when reading the specified intermediate code file. An intermediate code exceeds the Edit buffer size. The maximum allowable number of branch nests has been exceeded. The maximum allowable number of branches has been exceeded. The maximum allowable numberof element tables has been exceeded. The step, transition, branch, or line is not continuous. The start sideof the select branch does not agree with its end side. The start side of the parallel branch does not agree with its end side. The sequence In the select branch is other than transition to step to transition. Or, the sequence in the parallel branch is other than step to transition to step. The step line contains an element other than initial step, step, block step, jump (dummy step), and serial move (vertical line). The transition line contains an element other than initial step, step, block step, and jump (dummy step). Insertion is not possible at the specified location. Or, if inserted, the maximum coordinate value is exceeded. A soft key that cannot be changed was specified when changing an element. A horizontal line was specified in place of the closing code of the branch. The label pointed to by JUMP does not exist. The intermediate code cannot be created because it has not been completely checked.
BIG.
NUMBER OF BRANCH TOO BIG. SIZE OF TABLE BUFFER TOO BIG. UNCONNECTED STEP SEQUENCE DIAGRAM. SELECTED BRANCH ERROR. PARALLEL BRANCH ERROR. SYNTAX ERROR.
E:E-3209
STEP LINE SYNTAX ERROR.
E:E-3210 E:E-3211 E:E-3212 E:E-3213 E:E-3214 E


text:
Out of stock
Bells must be kept in every home – it is a well-known fact. With their shimmering, they protect the home from evil spirits, as well as preserve peace, health and kindness in the household. Each bell makes a unique sound, dependent on the size, shape & thickness of the bell.
The bells are freely to hang, for example, into a tree. If it is windy or birds hopping around on the branch, then they tinkles. Each bell is unique and slightly different in color due to it being handmade.
The height of the bells are ca. 6.5cm, the diameter is ca. 7cm x 5.5cm


[squeak-dev] Re: Generators in Smalltalk??
Ralph Boland rpboland at gmail.com
Wed Feb 10 20:04:28 UTC 2010
(Warning, long post)
I do not understand all the commotion over generators.
If a Collection class cannot do what you want, use a Stream.
Take a read only Stream and subclass from it a class called GenMyData.
Inside GenMyData write code that generates the data you
need on the fly and feeds it to the user upon request using
the ReadStream interface.
Perhaps there should be an Abstract class "Generator" that
is a subclass of Stream to provide some generic generator functionality.
What exactly do Python generators provide that my proposal does not?
And is not my interface cleaner?
And more adaptable?
We could generalize this idea to that of a Pipe. A Pipe would be
a generalization (subclass) of a ReadWriteStream. A Pipe can accept
data using the WriteStream interface. The Pipe
can then process the data in some way and then feed the result
to the user upon request using the ReadStream interface.
A pipe is more complicated than a generator because it needs to
be able to block. If data is being fed into it but not being taken out
then eventually it may fill up. Similarly, if data is being removed
from it, then it may run out of data and again need to block.
Blocking may mean a process blocks or it may mean sending a message
to another pipe to send or accept data. I have not worked out the details.
Given how useful pipes are in Linux, I think a Generic Pipe class
would be VERY useful. Of particular use would be operators such
as '<<', '||', '>>', and tee. These operators would provide functionality
similar to what Linux does with pipes.
The '<<' operator would pass the argument (a ReadStream, Generator,
or Pipe) to the receiver which would use it as if it were a ReadStream.
The '>>' operator would pass the argument (a WriteStream or Pipe)
to the receiver which would use it as if it were a WriteStream.
I guess we need another concept here, the reverse of a generator, which accepts
data like a WriteStream, does some processing with the data, and keeps
the result.
Let's call this an Absorber.
The '||' operator (assuming that receiver is a ReadStream, Generator,
or Pipe) requires that the argument to be a WriteStream, Absorber, or Pipe.
The result of the operation is an Absorber, a Generator, or a Pipe depending
upon the classes of the receiver and operand.
If the receiver is a Generator (or ReadStream)
and the argument is an Absorber (or WriteSteam)
then the actual calculation is triggered and the result is an Absorber
(or WriteStream) which holds the final result of the computation.
Actually, whenever the first argument is a Generator (or ReadStream), the
computation could be triggered but it would eventually block if the second
argument is a Pipe.
The Tee class is a generalization (subclass) of class Pipe. it is
instanciated with a
collection argument where the elements of the collection are WriteStreams,
Absorbers, Pipes, or Tees. The Tee class will forward the results of its
computation to each of the elements of the collection.
I suppose there could be the reverse of a Tee, ReverseTee,
which accepts input from any of a collection of ReadStreams, Pipes, or
ReadStreams, Generators, and Pipes have a method tee: aCollection
which creates a Tee instance and connects it to the receiver.
I am sure there are numerous objects that make sense as Generators, Absorbers
and Pipes. For example Random number generators should be Generators.
Wow! Wasn't that insightful!
e.g. An instances of class Prime could be a Generator from which prime numbers
can be fetched. It would store the first 10,000 primes, say,
and generate further primes requested on demand.
e.g. Class PrimeFactors could be instanciated with a number which the instance
factors. The instance would be a Generator from which can be fetched
the factors of the initial number in sorted order.
e.g. An instance of Class Sum could be an Absorber that stores the sum of the
objects (numbers, vectors, matrices, etc.) fed to it.
e.g. An instance of Class TextToLines could be a Pipe which acts like a
WriteSteam of text and a ReadStream of lines of text.
That is, it is fed text one character at a time and
the same text can be fetched from it one line at a time.
Is that is confusing? I think some terminology needs to be standardized
here so we know what we are talking about.
I have always wanted to implement Pipes in Smalltalk but have never found the
time. I think it could be a fun project and VERY useful.
Exercise: Write code in Smalltalk to copy a file to another file assuming the
first file exists and is readable and the second file can be created
and written.
That is, ignore any error possibilities.
Then do the same exercise using a pipe. (Don't implement the '||' operator,
we only want to look at the code to see which is simpler.
You could create an infinite loop by linking a sequence of pipes into a loop.
Is this always a bug?
How would the computation be triggered in this case?
Is the hierarchy all wrong?
Should Absorber and Generator be subclasses of Pipe (i.e. pipes with
some functionality removed?) and ReadStreams and WriteStreams be
subclasses of Generator and Absorber respectively. This is reopening
the controversy of what is the best hierarchy for stream only worse. :-(
Pragmatically speaking, I think Absorbers, Generators, and Pipes, should
have a separate hierarchy than Streams but, of course, share interface.
So whatayaall think?
Frankly I think the biggest problem is that pipes would be altogether too
convenient; they would encourage writing code that is easy to write but
have too high an overhead because of the need to deal with blocking.
That is, pipes require good judgment, or that performance not be an issue.
If your code is too slow and some pipes you are using is the problem then
rewrite that code, perhaps avoiding the pipes.
While I do not have the time to do this project on my own
I could probably spare some time to help out if a group
could form to do this. Besides I am sure other could add much insight.
Note that this project involves more than creating the Abstract classes
Generator, Absorber and Pipe. These three classes would be the
head of Class hierarchies just like Stream is.
I don't know what the subclasses would be though.
Pipe might have a subclass BufferedPipe.
Also, I hasten to point out that many classes would simply implement the
Pipe, Generator, or Absorber interface and not actually be subclasses
of either of these classes.
Interesting question: Are there classes in Squeak that implement the
ReadStream, WriteStream, or ReadWriteStream interfaces now but are not
a subclasses of these classes?
If not, should there be?
That is, are there classes in Squeak that should implement these interfaces?
In the Java world, Pipe, Generator, and Absorber would be Interfaces.
I don't like Java much but Interfaces I liked.
Regards, to those of you still here.
Ralph Boland
Had a wife and kids in Florida, Jack (Nicklaus)
Went out for a "ride" but I couldn't get back
As a ten timer being hunted down
When the wife found out who I was knowing (biblically speaking)
I hit a hydrant and I just kept going (till I hit a tree).
More information about the Squeak-dev mailing list


Taubman College
Course List
Term Winter 2011
Class ARCH 585
Class Title Advanced Building Technology
Description "The objective of this course is to explore state-of-the-art building and environmental technologies. Recent advancements in building technology promoting intelligence and automation are reviewed and explorations of a new generation of buildings and building technologies are pursued. The main topics of the course are: 1. Direction of technological advancements. 2. Building automation and intelligent building technologies. 3. Advanced lighting, daylighting, heating, ventilating, and air-conditioning systems. 4. Prototype buildings of the future. "
Prereq graduate standing or permission of instructor
Crosslist none
Required No
Elective No
Selective Yes
Meets T 8:30-11:30am 2222 A&AB
Credits 3
Faculty Jong-Jin Kim
Syllabus not available