text:
The Oxford Martin Programme on Transboundary Resource Management came to a close not long ago and as such there is an opportunity to reflect on what we mean by this concept and how increasingly relevant it is during these geopolitically volatile times. Two of the programme's directors explain more.
How does transboundary resource management work? Well, the first thing to understand is that it can involve various resources. Two resources we focused on in this particular project were water and energy. But one can also think about traded goods, food, minerals, manufactured information even. In the natural resources realm, there has been a bit of a congregation around the so-called nexus of interactions between food, energy, climate, water and the environment. It is this kind of space that we've been studying from a resources perspective. These shared resources in some instances will span national boundaries, and this challenges sovereignty and traditional ways of thinking about how we govern these resources. You then need to think about new ways of management to deal with such transboundary problems.
However, cooperation doesn't always come naturally in these cases, largely because of national sovereignty considerations, and what flows from this. This is also part of what we set out to explore – that cooperation over the management of resources could be of benefit across the board to all parties. Questions over resources obviously become more contested when they are scarce, and tensions can arise as a result of this. On the flipside, current thinking about transboundary energy has for the most part been stimulated by technological innovation. Increasing use of renewable energy supplies, which are inherently variable, means that there are greater benefits of interconnecting power systems across borders in order to balance supply and demand. Solar panels can be particularly cheap, especially in parts of the world with a lot of sunshine, so there are growing opportunities to trade electricity in order to balance supply and demand.
Water is another example where we have been able to arrive at deals, albeit in places where you would expect such agreements to happen in the first place. For example, transboundary rivers within the European Union are already governed by appropriate arrangements, but you would expect this to happen given these states are part of the same bloc. It is a similar scenario for the USA and Canada. Although negotiations between the USA and Mexico over the Colorado River have been more problematic, both countries have still managed to get somewhere.
So, what obstacles threaten transboundary resource agreements? Conflict is certainly one where all forms of cooperation can break down. There can be instances where continued cooperation is dependent upon investment, and that can bring a halt to projects if political tensions deter investors. There are also situations where countries have tried to do things on their own and are not cooperating with their neighbours. In other words, these transboundary resource issues often get entangled with other national security and diplomatic tensions.
However, challenges can also arise from the simple deployment of established technology. For example, if we take the work we have been doing with countries in the Nile River Basin – particularly Egypt, Sudan and Ethiopia – dams built in the region to help generate hydro-powered electricity have had cross-border repercussions for a very long time. Such challenges have arisen regularly and often not been successfully managed. There are transboundary river basins all over the world, and the relationships between countries that sit across these basins can be as tense as their Nile counterparts. Examples of these include the Ganges boundary between India and Bangladesh and the series of transboundary rivers that flow out of China and into their neighbouring countries.
Getting to a stage where we could develop a programme with the Oxford Martin School on transboundary resource management was the culmination of decades of research work. Even before Jim did his PhD, he was working on flood risk analysis – this was as long as 35 years ago. He eventually ended up running big programs conducting infrastructure systems analysis. During that time, a set of coincidences led to him to cross paths with Richard and the other researchers on the Oxford Martin programme. Michael Gilmont, for example, who had been hired by Jim and was working on another Oxford Martin School project, was already interested in the Jordan River Basin. Richard himself had a background working on international organizations and conflict management, looking at issues such as preventive diplomacy, peacekeeping, peacebuilding largely in the context of the engagement of multilateral organizations. He joined the programme after Jim and his colleagues had already conceived the main thrust of the research, because there was a recognition that political, international relations and diplomatic dimensions needed to be considered.
Our work on transboundary resource management with the Oxford Martin School involved quantitative analysis of water and energy in Israel, Palestine, Jordan and the Nile Basin. However, we were already well-versed in carrying out such research. In principle, the most challenging part of this project – which is probably a predictable lesson – was how challenging it was to get data, which in itself was highly politicised. We spent a long time in dialogue with partners of all the countries and getting people around the table.
The project began with a workshop here in Oxford and two more in Cyprus. Organising those was a lot of work alone, and then when we convened we had to work through the technicalities of obtaining the data as well as the surrounding issues and tensions. The process was just as important as the outputs and it would have been impossible to obtain some of the data without the trust of our participants. This says a lot about what we were able to achieve as a University and as a School – we were a party that didn't have any particular interests and this facilitated critical communication among our stakeholders.
Although our programme conducted research, our focus – particularly in the latter stages – was much more upon how this basis of information sharing, communication and collaboration could be taken forward in the context of specific projects. Also, how the kind of forum that we had created in relation to transboundary issues could be developed. Any gains from transboundary cooperation may have been environmental in terms of contributing to sustainability or mitigating some of the climate change-related risks, but there were also gains from cooperation as well as economic gains. So, we do have this firm conclusion that it is possible to work in areas where challenges cross boundaries and where there is potential for environment, environmental, economic, and other gains; and that all of the above can be achieved through cooperation and in partnership with local stakeholders.
From a research perspective, there are still plenty of unanswered questions. For example, we looked a lot at the quantity of water but didn't get into any depth in relation to quality. We discussed agriculture, but didn't have any particular agricultural expertise. So, there are plenty of future research avenues as well as researching the overall process and diplomatic context. Wildlife conservation, however, was something that occurred to us as an area where states would benefit from greater cooperation and a similar model to that adopted by our programme could be applied to meet those challenges.
This opinion piece reflects the views of the author, and does not necessarily reflect the position of the Oxford Martin School or the University of Oxford. Any errors or omissions are those of the author.


text:
Learn something new every day More Info... by email
Also known as c-commerce, collaborative commerce is a business strategy that calls for looking at the process of supply chain management in a new way. Instead of seeing the elements of the chain as independent entities that have no more than a tenuous connection with one another, each organization involved in the supply chain views itself as being directly involved with all the other organizations. In order to fully implement this different approach, the partners involved in the chain make use of electronic or e-commerce to develop new and more efficient ways of communication and interacting with one another. As a result, each partner benefits in terms of managing costs, lower rates of errors along the chain, and in general a more efficient process that begins with the manufacturer and ends with the customer.
In a collaborative commerce environment, one of the first steps in improving communication is to utilize a standard business language. This approach makes it much easier to minimize the chance for miscommunication somewhere along the supply chain. For example, it is not unusual for various partners in a supply chain to use slightly different names for various components. By standardizing the name of the component all the way through the chain, there is much less opportunity for anyone along the way to misinterpret which product is required to fill an order.
Collaborative commerce also utilizes the establishment of the use of interactive communication technology that makes it possible for each partner in the chain to see the entire history of an order. Thanks to Internet technology in particular, it is possible to provide limited access to networks and programs used by each partner. In the event there is a question regarding the current status of an order making its way through the supply chain, it is relatively easy for any of the partners to access this virtual pipeline. Once logged into the collaborative commerce chain, they can determine the real-time state of the order, and thus be able to have a good idea of when the order will reach the next stage of fulfillment.
The management options provided by collaborative commerce are geared for use in a world where international commerce is increasingly the standard in just about every industry. When structured to best effect, the communication line established by this process easily crosses over boundaries of culture and location, allowing the flow of information to proceed with the highest degree of efficiency. Ultimately, this efficiency translates into fewer errors, lower costs, and order delivery that allows all businesses involved in the chain to enjoy higher profits and productivity.

source: HuggingFaceFW/fineweb-edu


+33 4 79 34 92 15
 Article 0
 A motor pump is a surface pump coupled to a petrol or diesel engine for total autonomy. Flow, pressure, delivery head, HMT and granular passage are its main characteristics. Used to pump pond, flood or swimming pool water, it is also used for watering.
 Important features
 - Petrol or diesel engine
 - Flow and pressure
 - Total head
 - Delivery height
 - Nature of the water to be pumped
 - Self-priming or manual priming
 - Autonomy in number of hours of use
 The main criteria for choosing a motor pump
 A motor pump is chosen according to several criteria:
 - the nature of the water pumped either very charged (≥ 20 mm), charged (impurities ≤ 20 mm), clear (impurities ≤ 5 mm);
 - the delivery head either the height in meters (m) between the motor pump and the point where the water is pumped;
 - suction depth measured in meters (m), maximum 8 m;
 - the flow expressed in liters / minute (l / min) or cubic meters / hour (m3/ h);
 - autonomy in hours of use ;
 - the motorization according to the frequency of use, either with a 2-stroke petrol engine for occasional use and low pumping requirements, with a 4-stroke petrol engine for occasional to frequent use, with a diesel engine for intensive use;
 - pressure if the motor pump operates devices requiring a defined inlet pressure (B);
 - the length of the discharge pipe between the motor pump and the point where the water is pumped (measured in meters) to estimate the pressure drops (1 m = 1 B = 10 mCE)
 Depending on the use and the information given by the manufacturers, you may be required to calculate total head (HMT) by cumulating the delivery head (m), the desired pressure at the discharge point (convert 1 B for 10 m) and the pressure losses (m).
 What is a thermal motor pump
 Detailed view of a motor pump
 Definition and operation
 A motor pump pump water at point A to discharge it at point B, it works with a combustion engine.
 The operating principle of a motor pump is relatively simple: a heat engine drives a hydraulic pump with wheel, turbine, or blades, creating a vacuum at the suction and an overpressure at the discharge. The heat engine can be diesel, gasoline, 2 or 4 stroke. Depending on the motor pump, the water is sucked at a given depth (max. 8 m) to be pushed back to a given height and all under pressure.
 Portable et autonomous the heat pump is the pumping solution most versatile and the easiest to use. In short, it is a surface pump coupled to a generator. Its installation can be fixed but it is very rare.
 There are few wear parts, maintenance is simple, And the lifetime of the assembly is generally high if the motor pump is correctly used and maintained.
 Pumps are commonly started with a launcher.
 Note: pumping more than 8 meters deep is carried out with a submerged pump.
 Granulometry: the nature of the water to be pumped
 The grain size, or granular passage, determines the maximum diameter of debris and suspended matter (MES) that can be pumped by the pump. The granular passage of the pumps is not standardized, the intake values oscillate up to 5 mm in the same class from one manufacturer to another (always check the accepted value).
 Clear waters
 Clear water corresponds to swimming pool water, river water (withdrawal under authorization) or well water. Clear water motor pumps offer a very low granular passage <5 mm. Beyond that, the aspirated MES clogs the pump body.
 Loaded or flood water
 Sewage, flood water, pond or pond water are likely to be loaded with various suspended matter for this reason, any motor pump used for lifting this type of water offers an accepted particle size of 10 to 20 mm.
 Highly charged waters
 Highly charged waters present debris greater than 20 mm. This water corresponds to mud, flood water or any loaded water (paper, wipes etc.). Their granular passage is greater than 20 mm. To facilitate the passage of MES, certain motor pumps are equipped witha macerating wheel responsible for crushing debris to facilitate their passage.
 Aggressive waters
 Aggressive waters are represented by sea water, non-explosive petroleum products, etc… These very specific uses require stronger pump bodies and materials provided for this purpose. Likewise, the temperature of the pumped liquid can be the subject of a selection criterion. Check the permissible temperatures in ° C of the motor pump.
 Motor pump: petrol or diesel engine
 Petrol motor pump
 Gasoline engines are recommended for occasional use, they are quieter than their diesel counterpart and are mainly represented by 4-stroke engines. Maintenance is equivalent to any other engine and is limited to check the oil level, the air filter et the candle. Starting is also easier, even after a prolonged shutdown.
 In terms of cost, the petrol engine is less expensive than the diesel engine and remains lighter To manipulate. Motor pumps with smaller displacements are available with 2-stroke engines, they operate with a mixture (petrol + oil in the same tank).
 Diesel motor pump
 Diesel engines are recommended for intensive use and regular. They generally equip motor pumps with strong powers (especially those used in fire defense) and are much more noisy. Their maintenance is more rigorous as is their start-up - large motor pumps have a electric starter.
 A diesel pump is more expensive than petrol, maintenance is more regulatedand more pointed: starter, glow plugs, filters, oil level, injectors. Diesel generators are often mounted on a chassis fitted with wheels to facilitate handling.
 Impact of engine displacement on performance
 The displacement of an engine is measured in cubic centimeters (cc or cm3), she is relating to the volume of the cylinder combustion chamber (depending on the distance between the top and bottom dead center of the piston and the cylinder bore) and partly determines the power of the engine, itself sized according to the desired pumping characteristics. Prefer a pump with a larger displacement for equal pumping characteristics because at identical performance, its speed is lower which preserves the engine.
 Flow, pressure, HMT: the key characteristics of a motor pump
 Flow: m3/ h or liters / min
 The flow rate is the characteristic that determines the volume of water pumped and discharged by the pump over a period. Expressed in cubic meters per hour (m3/ h) or in liters per minute (l / min), it is chosen according to the volume of water to be pumped and the time available.
 Note that 6 m3/ h is equal to 100 l / min and the flow rate varies according to the suction depth and the height of the discharge point.
 Indeed, for the same pipe diameter and for the same pump, the greater the difference in height, the less flow you have. Conversely, the closer your suction and discharge points are in terms of height, the higher the flow will be.
 The pressure defines the force of the water at the discharge. It relates to the flow rate, to the section of the pipe and is measured in B (bars). Does not affect if the motor pump is only used for water drainage, the pressure is decisive if the motor pump is connected to devices requiring a precise inlet pressure (sprinkler system). Many manufacturers report the total head (HMT) measured in meters (m). Note for correspondence that a bar equals 10 mCE. If this is the case for the pump you are looking for, you will need to calculate the HMT. Also, the pressure goes hand in hand with the flow, it is one of the laws of hydraulics : for the same flow rate, the pressure varies according to the section of the discharge pipe.
 Example: a pump with a working pressure (at the pump outlet) of 2,5 B or 25 mWC gives, if the discharge is at the same height as the pump, 2,5 B of outlet pressure. Yes the discharge is 10 m above the pump, only 1,5 B in outlet pressure will be available.
 Total manometric head: HMT
 Total head summarizes a pumping situation. That is to say, it is calculated en cumulant suction height (HA) between the water point and the pump, the delivery head (HR) between the motor pump and the discharge point, the required outlet pressure in bars (B) and pressure losses summarized by the length of the discharge pipe and fittings (10 m = 1 B or add 10%).
 Example of pumping situation
 - HA: 3 m (the bottom of a swimming pool for example with the pump placed on the ground)
 - HR: 2 m (which separates the motor pump from a sewer-type evacuation network)
 - Pressure required: 2 bars (i.e. 20 mCE)


text:
Maritime Trade Evolutions and Port City Developments in Asia
Historically, almost all goods transported worldwide have been carried by sea with the current estimate stands at approximately 90 percent by volume and 70 percent by worth. Maritime industry is an important economic sector as it has a direct impact on the prosperity of a region and/or city. This chapter presents a review on maritime trade evolution in Asia from the thirteenth centuries to the post-World War II, followed by an examination on the contemporary development of some major Asia ports. From the extant port literature, a list of factors affecting port competition and development is identified and reviewed. The chapter concludes with brief discussions on fruits for thought, future trend, challenges and opportunities facing the Asia maritime trade industry.

source: openbmb/Ultra-FineWeb


Banks need Boundaries! Banken in die Schranken!
Banks need Boundaries!
Anyone with less than 300,000 euros is on the losing side of our current monetary system.
Some successful companies have huge stockpiles of cash, but most are now so far into debt, that when you shop for goods and services, about a quarter of what you pay accounts for hidden interest payments. This money is funnelled to the top tenth of the population as workless income. You need over 300,000 euros before you receive more interest than you pay.
Summary: anyone with under 300,000 is losing out!
This alone increases the poverty gap. Every year, this cleft between rich and poor widens, with more and more money in the hands of a shrinking minority, versus growing debt bearing down on the many. This mechanism inherent to the system is criticised by many renowned money theorists and/or initiators of alternative regional currencies. It is time for politics to hear their wake-up call, instead of following advice from the banking lobby. There's no point in trying to keep a failed system on life-support through massive taxation. This system was dead on arrival. And when it's too late, we all lose – even the rich!
adapted from
( is running a version of the banks-need-boundaries "franchise" in Austria as a genuine "Volksbegehren" within the traditional political system. - mk)
Further reading:
Is interest the problem?
And from our blog: What is workless income?
Pin It


text:
Five Things You Might Not Know About Public Employees
Our brief new report on state and local workers includes some basic facts worth keeping in mind in the heated current debate over public employees.
1. Education is by far the largest category of state and local government employment. Nearly 7 million teachers, aides, and support staff work in the nation's public elementary and secondary schools, more than twice as many as in the next largest job category (protective services, which includes police officers, fire fighters, and correctional officers).
2. Outside of education, the public workforce has shrunk as a share of the population over the last three decades. Counting education, the number of state and local workers has grown modestly relative to the overall population, from about 59 per 1,000 in 1980 to 62 per 1,000 in 2010.
3. Public-sector workers earn less than their private-sector counterparts. The typical middle-wage worker earns about 4 percent less in the public sector than the private sector. Low-wage state and local workers, by contrast, receive a small wage premium (see graph).
4. Public-sector workers also earn less than their private-sector counterparts when one counts both wages and benefits. Benefits like pensions and health insurance are more generous and secure for public employees than for most private-sector workers, but factoring in the value of these benefits does not eliminate the gap between state and local employees and their counterparts in comparable private-sector jobs.
5. Labor costs make up a significant share of state and local spending. This reflects the fact that providing services is the primary business of states as well as school districts, cities, counties, and other local governments. Total compensation for state and local workers (including wages and benefits) makes up about 44 percent of state and local spending.


text:
ESPRIT® delivers solutions for Industry 4.0 smart manufacturing
DP Technology is helping factories of the future prepare for the digital transformation that's taking place in manufacturing, with solutions including digital twinning, digital threads, machine-aware manufacturing, knowledge-based machining and cloud-enabled databases.
In order to prepare factories for an increasingly digital future, and to better support Industry 4.0 and smart manufacturing initiatives, DP Technology is focusing on a range of solutions to drive automation in manufacturing. The ESPRIT® CAM System enables manufacturers to streamline their workflows, prevent silos from forming during the manufacturing process, increase tool life and machine utilization, and create greater access to practical knowledge for process improvement.
- Digital twin: ESPRIT allows users to create a digital twin of their machine tools for programming, optimization and simulation. This virtual machine ensures that whatever happens on screen will also occur on the shop floor. Workpieces and cutting tools are set up virtually, resulting in exacting simulations, greater productivity and better toolpaths for higher quality parts.
- Digital thread: With ESPRIT, a digital thread ties together each step of the workflow from CAD design to finished part, ensuring that none of the manufacturing process is siloed. ESPRIT reads part data from CAD software and creates machine-optimized G-code and setup sheets, which it then passes on to shop floor management, tool data management and enterprise resource planning software.
- Machine-aware solutions: ESPRIT provides machine-aware CAM programming to increase tool life and reduce cycle times. The CAM system's ProfitMilling® and ProfitTurning™ apps represent a fundamental change in the way toolpath in created: most CAM software works from the shape of the part first and considers the machine last, if at all. ESPRIT machine-aware solutions first consider the machine tool – its axes positions and their limits, acceleration, and attainable and requested cutting speeds, allowing users to run machines faster, get a better surface finish on their parts and significantly increase their tool life. As a result, with machine-aware CAM, programmers make better choices regarding toolpath, without asking the machine tool or cutting tool to exceed their own abilities.
- Knowledge-based machining: Knowledge-based machining, the term for artificial intelligence built directly into a CAM system, makes it possible to significantly cut programming time by capturing best practices, including machining processes and cutting conditions — leaving more time to focus on strategic process improvements and reducing time spent on repetitive tasks. ESPRIT's KnowledgeBase™ solution streamlines part programming by automatically selecting the optimum processes — machining cycles, tools and conditions — for part features based on proven best practices. Recording practical knowledge via KnowledgeBase™ is more reliable than leaving it to memory and allows for higher levels of automation through repeatable steps. Because programming is more predictable and consistent, programmers encounter fewer problems and produce higher quality parts.
- Cloud-enabled machining: As shops move to data-driven manufacturing, integration with cloudbased databases, such as MachiningCloud Inc., further facilitates access to knowledge, product data, resources and process controls for machines, cutting tools and work holding. These cloudenabled databases suggest factory-recommended feeds and speeds for a given cut, let users quickly find the tools they need, and provide continuously updated manufacturer product data, including drawings and models of tools and cutting tool assemblies for simulation. Because information is stored in the cloud, it is always up to date, available on demand and can be accessed anywhere.
These solutions will be in focus at the international KEY conference in Plovdiv, Bulgaria, October 25-26, 2018.
About DP Technology Corp. DP Technology Corp. is a leading developer and supplier of computer-aided manufacturing (CAM) software. ESPRIT®, DP Technology's flagship product, is a powerful, high-performance, full-spectrum programming system for milling, turning, wire EDM, multi-tasking machine tools and metal additive manufacturing. ESPRIT and its support personnel embody DP Technology's passion for excellence and vision of technology's potential. DP Technology reinforces its commitment to technical excellence by dedicating nearly 20 percent of its annual revenue to ongoing research and product development. This long-term focus has produced powerful technological innovations that have placed ESPRIT in an industry-leading position since its market launch in 1985. espritcam.com
DP Technology is helping factories of the future prepare for the digital transformation that's taking place in manufacturing.


text:
The differences between the Spanish language of Spain and Spanish from Latin America are something like the differences between British English and American English. People from the Spanish-speaking world can communicate with others as easily as people throughout the English-speaking world can. Although there are differences between Spanish from Spain and Latin American Spanish – particularly relating to pronunciation – they do not prevent mutual intelligibility. Here you can experience the regional differences and dialects from all the Spanish World.
Latin American dialects are noted for the pronunciation of each letter and their strong "r" sounds. This kind of Spanish was spoken in Spain in the XVIth and XVIIth centuries, and was taken to the Americas by the early colonists.
However, the Spanish of North of Madrid in Spain, called Castilian, developed characteristics that never reached the New World. Castilian is the Spanish equivalent of High German or the Queen's English. The differences with Latin American Spanish include the pronunciation of "ci" and "ce" as "th". In Castile, "gracias" (thank you) becomes "gratheas" (as opposed to "gras-see-as" in Latin America). Also, speakers in some areas like Argentina often pronounce the ll and y like the "s" in "measure." In some areas, you will hear speakers drop s sounds, so está sounds like etá. In some argentinian and Uruguayan areas, the j sounds like the "ch" in "loch".
Another difference is the use of the word "vosotros" (plural you) as the informal form of "you" in Spain. Latin Americans never use "vosotros," favoring "ustedes" instead.
But if you avoid slang or extreme colloquialisms, standard educated Castilian Spanish is understood anywhere in the Spanish-speaking world.


text:
Definition of mandate :
1. A contract by which one employs another to manage any business for him. By the Roman law, it must have been gratuitous.
2. A rescript of the pope, commanding an ordinary collator to put the person therein named in possession of the first vacant benefice in his collation.
3. An official or authoritative command; an order or injunction; a commission; a judicial precept.
mandatary, injunction, formula, commandment, statute, canon, order, bidding, instruction, ordinance, mandatory, word, regulation, polity, authorisation, economy, principle, sanction, competency, over, code, legislation, decree, say-so, directive, ability, enactment, dominance, competence, words, jurisprudence, authorization, edict
command (part of speech: noun)
compel (part of speech: verb)
cause, coerce, oblige, drive, dragoon, galvanize, bulldoze, hijack, impel, propel, urge, incite, dictate, pressure, intimidate, foment, stimulate, daunt, motivate, press, push, spark, stress, nag, browbeat, goad, bully
authority (part of speech: noun)
influence, title, commission, precedence, control, privilege, mightiness, potency, purview, power, strength, credential, punch, superiority, sway, enfranchisement, stature, clout, puissance, charge, kingship, license, steam, seniority, prestige, might, powerfulness, prepotency, prerogative, command, authority, right, empowerment, mastery, domination, birthright, primacy, entitlement, rank, sovereignty, faculty, office, force, cogency
obligation (part of speech: noun)
requirement (part of speech: noun)
require (part of speech: verb)
- What was their mandate compared with his? - "The Life of Napoleon I (Volumes, 1 and 2)", John Holland Rose.
- He waited for no guiding mandate. - "The Heart of Unaga", Ridgwell Cullum.
- Accordingly, at the mandate of a superior a subordinate was obliged to go on any errand, for any purpose, criminal or not, to depart on any mission, to perform any work, to undertake any enterprise, or to occupy any station that he required of him. - "Monks, Popes, and their Political Intrigues", John Alberger.


text:
Sparse files – what, why, and how
23 May 2008 14 Comments
Sparse files are basically just like any other file except that blocks that only contain zeros (i.e., nothing) are not actually stored on disk. This means you can have an apparently 16G file – with 16G of "data" – only taking up 1G of space on disk.
This can be particularly useful in situations where the full disk may never be completely used. One such situation would be virtual machines. If a virtual machine never fills the disk entirely, then a certain amount of the disk will never have anything but zeros in it – permitting the saving of disk space by using a sparse file.
The operating system (which supports sparse files) knows that the block "exists" but is null, so it provides the zero-filled block out of thin air. As soon as the block contains data, the data is written to disk in the appropriate way and the file on disk grows.
There are problems with using sparse files. The most egregious would be that any utility that does not recognize or utilize sparse files can replicate the entire file on disk, so that a 500M sparse file could suddenly balloon to 6G. Even utilities that can work with sparse files must be told to do so, so this trap is easy to fall into.
Another problem is that everything about disk management is based on how many sectors or blocks are used – and the disk size reported for a sparse file is the full size of the file (not the actual number of blocks on disk). This also means that any utilities that work solely with blocks on disk (e.g., du) will report different amounts than other utilities.
Yet another problem is whether backup programs recognize or preserve sparse files. A backup program that does not recognize (and store) sparse files may well be quite oversized. A restore of this flawed backup – or indeed, a restore that does not recognize properly backed up sparse files – will balloon in size as mentioned before. In a worst case, there would not be enough room on disk to restore the data, if the sparse file expands enough to fill the disk.
To get the ls command to report actual on-disk sizes (instead of just the file size typically reported) use these options:
# ls -ls
8 -rw-r--r-- 1 root root 2003 Aug 14 2006 anaconda-ks.cfg
68 -rw-r--r-- 1 root root 59663 Aug 14 2006 install.log
8 -rw-r--r-- 1 root root 3317 Aug 14 2006 install.log.syslog
12 -rw------- 1 root root 10164 Oct 25 2006 mbox
The blocks used are in the left side column; the bytes used are in their usual column just before the date. In this case, all of the files are using appropriate number of blocks – that is, none of these files are sparse.
Creating a sparse file basically amounts to a simple process: create a file, and seek to the desired end of the file. This can be done at the command line with a command like (to create a 1M sparse file):
dd if=/dev/zero of=sparse-file bs=1 count=1 seek=1024k
Here is an example, run on HP-UX:
# dd if=/dev/zero of=sparse bs=1 count=1 seek=1024k
1+0 records in
1+0 records out
# ls -ls sparse*
2 -rw-r--r-- 1 root sys _PHONE_ May 22 12:58 sparse
Looking at HP-UX (and perhaps other environments), there does not appear to be a wide amount of support for sparse files in the typical utilities (such as tar, cp, cpio, etc.), even as the operating system itself will dutifully create sparse files.
However, GNU cp supports the –sparse option. By default, GNU cp attempts to detect sparse files and recreates them as warranted. A file can be copied into a sparse format using –sparse=always, or into a nonsparse format using –sparse=never. The default, alluded to earlier, is –sparse=auto.
GNU tar uses the –sparse option (or the equivalent -S option) to make tar store sparse files appropriately.
GNU cpio supports the –sparse option, which operates similarly: any suitable length of zeros is recorded as a "empty" and the file is stored or created as a sparse file.
The command rsync, while not a GNU project, does support sparse files. The option –sparse (or -S) will attempt to handle sparse files efficiently, that is, not creating file blocks full of only zeros.
It appears that utilities pax, scp, sftp, and ftp do not in general support sparse files. Using such a utility, then, would make a sparse file balloon in size.
Given this utility support for sparse files, the best native environment is proably Linux or MacOS X, or other open platform. More specifically, any platform where the GNU utilities are available, along rsync.
Recognizing a sparse file can be done at the command line with the previously mentioned ls -ls command. To see a sparse file (right down to the block level), one way would be to write a C program (or other language) to start at the end of the file, and truncate the file one block shorter – if the file on disk becomes shorter, then that block was on disk; if not, then it was a sparse block. Of course, any block that contains data is on disk; it is only blocks with zeros with which there is any question as to whether it is on disk or not. Jonathan Corbet had an article in December of 2007 in the Linux Weekly News that described a method that the Solaris ZFS developers had proposed, and posed the question as to whether Linux should support similar system calls that will seek to the next hole or the next set of data in a file.


CDC Home
Emerging Infections Programs (EIP) Activities Funded
This Recovery Act supplement to EIP is to address the Department of Health and Human Services (HHS) Action Plan by using the existing EIP network, capacities, and infrastructure to support targeted efforts to monitor and investigate the changing epidemiology of Healthcare-associated Infections (HAI) in populations in the context of HAI prevention efforts thereby increasing the knowledge base in this area and facilitating improvements in HAI prevention efforts.
Evaluating HAIs in non-hospital settings.
Specific activities include:
 1. Participate in protocol development with the EIP/Active Bacterial Core Surveillance MRSA Pathogen committee, obtain necessary approvals from all participating institutions, and complete necessary data collection.
 2. Obtain necessary approvals to gain access to medical records from long-term care facility residents and patients recently discharged from acute care facilities.
 3. Submit de-identified data to CDC for multi-site analysis in accordance with common protocol.
Innovations in surveillance through the NHSN.
Applicants must address activities A-D and at least one additional activity, but are encouraged to address all:
 1. Identify or hire staff with expertise in HAI surveillance and prevention to oversee EIPs HAI activities. Ensure that staff involved in HAI activities receive necessary HAI training.
 2. Establish a communication network of all NHSN facilities within the EIP catchment area and establish the EIP sites as a NHSN group user with specified rights to data from reporting facilities. This will allow the EIPs to conduct site-specific data analysis and reporting.
 3. Promote the use of specific NHSN modules for reporting HAI-related data through NHSN at network facilities as measurement tools to evaluate specific research and non-research activities focused on HAI prevention. Participate via EIP Steering Committee and/or appropriate EIP network workgroups to determine EIPs catchment area and the specific focus of the data to be reported. This may include facilitating the use (through training and other activities) of the Multidrug-Resistant Organism (MDRO) and Clostridium difficile-associated Disease (CDAD) NHSN Module which is for MRSA and/or Clostridium difficileicile reporting.
 4. Implement a hospital-wide HAI prevalence survey in accordance with a multi-site protocol developed by the EIP Network. The protocol will be based on CDC's pilot survey that is being performed in summer 2009. Activities will include protocol development, facility recruitment, leading training sessions with facilities, and conducting an expanded pilot survey in mid-2010 and a full point prevalence survey conducted over 1 month in 2011. This evaluation will be one mechanism to assess the accuracy and relevance of NHSN HAI data reported to state health departments and CDC.
 5. Assess the role and potential for interruption of inter-facility transfer of MDRO's and CDI between healthcare facilities using a common methodology developed through the EIP Steering Committee and/or EIP network workgroups. Identify and address potential overlap with the HAI prevention collaboratives that are outside of the EIPs (e.g. hospital associations, local Quality Improvement Offices performing similar work through the 9th Scope of Work of CMS)
 6. Improve NHSN reporting and operations user experience for facilities and state health departments. This will involve performing studies to evaluate alternative (i.e., simplified but valid) ways to perform: data acquisition, analysis, and dissemination of data (e.g., validate HAI related data, estimate denominator or numerator data, and simplify NHSN methods). Information obtained from the evaluation will be used to develop a model for NHSN reporting and operations that can be used by non EIP state health departments.
 7. Establish a mechanism for collecting and submitting pathogens associated with emerging antimicrobial-resistance and evaluate this mechanism.
CDC activities for this program
In a cooperative agreement, CDC staff is substantially involved in the program activities, above and beyond routine grant monitoring.
CDC activities for this program are as follows:
 - Organize monthly conference calls focused on EIP HAI-related activities to facilitate EIP development of common protocols, methods, and analysis.
 - Assist protocol development and informatics support as needed
 - Provide webinars, face-to-face meetings, and/or on-site assistance to facilitate implementation of common methodology to achieve objectives of specific activities
 - Host monthly state users support teleconference dedicated to NHSN use for state users.
 - Assist grantees with tracking performance measures and indicators and where necessary, integrating new and existing procedures to streamline data collection and minimize grantee's burden.
Contact Us:
 - Centers for Disease Control and Prevention
 1600 Clifton Rd
 Atlanta, GA 30333
 - 800-CDC-INFO
 TTY: _PHONE_
 - Contact CDC–INFO
A-Z Index
 1. A
 2. B
 3. C
 4. D
 5. E
 6. F
 7. G
 8. H
 9. I
 10. J
 11. K
 12. L
 13. M
 14. N
 15. O
 16. P
 17. Q
 18. R
 19. S
 20. T
 21. U
 22. V
 23. W
 24. X
 25. Y
 26. Z
 27. #


text:
OR WAIT null SECS
Compared with the control group, patients in the exercise for wellbeing (Qi Gong) and physiotherapy groups reported statistically significant improvements at week 5 in joint range of movement, muscle strength, spirometry, and quality of life.
Both active exercise physiotherapy and exercise for wellbeing (Qi Gong) programs proved effective for improving upper and lower limb range of movement and muscle strength, which in turn improved quality of life, in a cohort of women with fibromyalgia, according to a study in Journal of Clinical Medicine.1
"Pharmacological treatment has produced meaningful improvement in 30% to 50% of patients," investigators stated. "[However], the management of fibromyalgia can also include non-pharmacological treatments such as physiotherapy and psychological interventions, as well as socio-educational measures. These management approaches have shown improvements on physical, psychological, and social quality of life."
Exercise for wellbeing, a Traditional Chinese Medicine technique, combines meditation, movement, and breathing to improve circulation and the immune system while enhancing the flow of the body's energy, or Qi.2 Physiotherapy techniques include stretching and physical exercise.
In the assessor-blind, controlled trial, investigators sought to compare the efficacy of these programs in terms of improving muscle strength, range of motion, quality of life, and respiratory capacity in this patient population. Eligible patients were women, aged 30 to 65 years, with a clinical fibromyalgia diagnosis according to the American College of Rheumatology Diagnostic Criteria for Fibromyalgia.
Data collected included sociodemographic information and outcome measures. The primary outcomes were joint range of movement and muscle strength. Secondary outcomes included respiratory capacity (spirometry parameters) and quality of life, which was evaluated through the Spanish Fibromyalgia Impact Questionnaire (S-FIQ).
One hundred forty-one women with fibromyalgia were entered into the 6-week trial, with 93 patients completing the intervention and all measurements (mean age 52.24 years). Participants were randomized to either a physiotherapy exercise cohort (n = 33), an exercise for wellbeing cohort (n = 31), or a control group (n = 29). Both exercise groups completed 45-minute sessions twice a week, on alternate days, for 4 weeks. A baseline assessment was conducted at week 0 and a post-intervention evaluation was performed at week 5.
Compared with the control group, patients in the exercise for wellbeing and physiotherapy groups reported statistically significant improvements at week 5 in joint range of movement (P = 0.004), muscle strength, (P = 0.003), spirometry (P = 0.039), and quality of life (P = 0.002). Although the physiotherapy group showed better performance in sample terms, there were no significant differences between intervention groups. A small, not statistically significant improvement was reported in the control group.
Changes in spirometry parameters were linked to changes in quality of life, muscle strength, and joint range of movement. The physiotherapy and exercise for wellbeing cohorts generally performed much better when compared with controls in all primary outcome measures except for spirometry parameters.
The difficulty of learning the Qi Gong exercises may have limited the study. To mitigate this, investigators described the key aspects of the practice, such as breath control and body posture, prior to intervention initiation. Further, the intervention period may have been too short to achieve the expected benefits. However, a longer intervention duration may have negatively impacted treatment adherence. A longer follow-up period and a larger sample size may have allowed for a better impression of the overall treatment effects.
Although the S-FIQ included important factors such as fatigue and pain, only the total score was evaluated. Investigators noted that analyzing these items separately may be helpful in determining the impact of these exercise programs on fibromyalgia symptoms.


text: Water Snowflake is a pretty, fast-growing, perennial water plant. A blooming colony indeed looks like snow-flakes on water. It has flat, rounded, floating leaves, and delicate white and yellow flowers appearing in summer. Water snowflake has white flowers with yellow centres. The petals have unusual, feathery edges. The flowers are formed above the floating leaves with 2-4 cm long stalks. Although they bear some resemblance to water lilies, they are not related. New plants are formed all the time where the floating stolons (above-ground, modified stems) form tufted plantlets along their lengths. The mother plant has a short, thick stem which is rooted in the mud at the bottom of the pond. In its natural habitat the plant may be subject to periods where the water may dry up, in this case it forms roots at the nodes to help it survive.


text:
Submitted to: World Congress of Soil Science
Publication Type: Proceedings
Publication Acceptance Date: February 3, 2010
Publication Date: August 1, 2010
Citation: Pachepsky, Y.A., Timlin, D.J., Nemes, A. 2010. Toward improving estimates of field soil water capacity from laboratory-measured soil properties. World Congress of Soil Science. 182-185 Published on DVD.
Interpretive Summary: Field capacity (FC), defined as the amount of water remaining in soil after the soil has been saturated and then allowed to drain thoroughly, is a very important soil hydraulic parameter that has multiple uses in hydrological, meteorological, agronomical, and environmental predictions and modeling. The customary way to estimate FC is to utilize laboratory equipment that applies a specific pressure to the soil and subsequently measure the water content. However, there is no one standard pressure accepted world wide. As a consequence, it is difficult to compare published FC values generated in different countries for similar soil types. Based on a large USDA-ARS database consisting of FC values determined concurrently with an exhaustive number of other soil properties (determined both in the field and in the lab), we discovered a soil texture-dependent correlation between pressure and measured FC. Utilizing this correction factor, were able to improve the accuracy of FC estimates by about 70%. The results of this work are important for large scale predictions where the ability of soils to retain water has to be quantified and used.
Different recommendations exist world-wide on which – if any - pressure head should be used in laboratory measurements to approximate the 'field capacity' (FC) of the soil. Literature often deems any such pressure heads to be inadequate to approximate FC for soils of all textures. We used a data collection from the literature to evaluate if corrections can be made to improve the estimation of FC from -33 kPa water retention (W33). Regression tree modeling coupled with jack-knife cross validation was used to identify the best predictors – sand, silt, clay and the measured W33 value – to estimate the difference between W33 and FC. Such predictions were then successfully used to adjust the W33 value as the estimate of FC. An improvement in estimating FC was seen in general statistical terms, and texture specific bias was also greatly reduced. Such solution may allow the reliable use of a single pressure head in the laboratory to approximate FC, which may be the only feasible option for large scale studies.


text:
[Numpy-discussion] 0d array value comparisons
Thomas J. Duck
Fri Jul 25 12:42:05 CDT 2008
There is some unexpected behaviour (to me) when 0-dimensional
arrays are compared with values. For example:
>>> numpy.array().squeeze() == 0
>>> numpy.array([None]).squeeze() == None
>>> numpy.array(['a']).squeeze() == 'a'
Note that each test follows the same pattern, although the dtype for
each squeezed array is different. The first case result is what I
expected, and the second case result appears wrong. The return type
for the third case is inconsistent with those before, but is at least
Are these the intended results?
Thomas J. Duck
Department of Physics and Atmospheric Science, Dalhousie University,
Halifax, Nova Scotia, Canada, B3H 3J5.
Tel: _PHONE_ | Fax: _PHONE_ | Lab: _PHONE_
More information about the Numpy-discussion


Essential Skills/Technical Standards
For students to successfully complete Lasell College's Athletic Training Program they must have the following qualities: (as permitted by practice act and licensure)
 1. Academic ability to earn a "C" or higher in all professional courses and maintain a 2.3 cumulative average for Athletic Training majors.
 2. Ability to achieve a level of competency in all procedures that will enable the student to practice safely and effectively in a clinical education setting. These procedures include, but are not limited to, the following competencies:
 1. Demonstrate the ability to guard patients when standing and ambulating on level surfaces, stairs with and without the use of assistance devices including, cane, crutches and walkers.
 2. Demonstrate the ability to safely transport the necessary athletic training supplies and equipment between the Athletic Training Room and the various practice/game settings.
 3. Demonstrate good body mechanics in the process of all patient treatments.
 4. Perform cleaning protocol procedures for sterile technique with all size whirlpools.
 5. Demonstrate the ability to manipulate dials and sound-heads when applying ultrasound and electric stimulation treatments.
 6. Demonstrate the ability to apply graded manual resistance to patient's body parts for the purpose of determining the patient's strength or applying exercise techniques.
 7. Demonstrate the ability to set up treatment sessions using laboratory or clinic equipment within the time restraints of the treatment requirements to provide safe and effective treatments.
 8. Demonstrate the ability to properly auscultate cardiovascular and pulmonary sounds.
 9. Demonstrate the ability to feel and palpate a pulse, muscle spasm, muscle contractions and bony landmarks.
 3. Communicate effectively, safely and efficiently to patients, family, care givers, significant others, and other health care providers, by: Explaining procedures
 - Receiving information from the patients, family, other health care providers
 - Receiving information from written documentation
 - Introducing self
 - Confirming patient's identity
 - Documenting clear, concise and accurate notes in a patient's chart.
 - Exhibiting appropriate interpersonal skills, (that are effective and efficient), with patients, family and significant others, that are effective and efficient.
 - Recognizing and responding appropriately to nonverbal behavior of self and others.
 1. Administer CPR, and apply universal precautions and other emergency measures.
 2. Distinguish color changes of a patient's skin.
 3. Detect an unsafe environment and carry out appropriate emergency procedures including:
 1. Detect subtle environmental changes and odors including but not limited to the smell of burning electrical equipment, smoke, spills, pathophysiological odors and potential environmental hazards.
 2. Detect high and low frequency sounds, including but not limited to alarms, bells, emergency signals.
 4. Handle the stresses of an intensive training program, both academic and clinical, in preparation for the stresses of clinical situations dealing with acutely sick and dying patients, fast-paced clinical situations, psychosocial responses of patients with disabilities and a heavy academic schedule. Demonstrate the capacity to maintain composure and continue to function well during periods of high stress.
 5. Recognize the psychosocial impact of dysfunction and disability of patients and appropriately integrate the needs of the patient into patient care.
 6. Manipulate a stretcher, wheelchair and/or portable equipment without injury or damage to self, client, institution or others.
 7. Demonstrate management skills including planning and organizing responsibilities of clinical practice.
 8. Apply teaching/learning theories and methods in health care and community environments.
 9. The mental capacity to assimilate, analyze, synthesize, integrate concepts and problem-solve to formulate assessment and therapeutic judgments and to be able to distinguish deviations from the norm.
 10. Sufficient postural and neuromuscular control, sensory function and coordination to perform appropriate physical examinations using accepted techniques; and accurately, safely and efficiently use equipment and materials during the assessment and treatment of patients.
 11. The perseverance, diligence and commitment to complete the athletic training education program as outlined and sequenced.
Affective skills and appropriate demeanor and rapport that relate to professionalism, professional education and quality patient care.
The Lasell College ATEP follows OSHA's guidelines for all health care providers. Students are required to follow Universal Precautions throughout the time they are enrolled in the ATEP. Each Student will be required to attend Universal Precaution/Blood Bourse Pathogen Training annually.
Non-Discrimination Statement: Lasell College and the Athletic Training Program agree that they do not and will not discriminate against any applicant for registration in a course of study because of race, color, creed, national origin, sex, sexual orientation, age or disability. Lasell College seeks to provide equal access to its programs, services and activities for people with disabilities. Reasonable prior notice is needed to arrange accommodations.
News Highlight
Featured Event


Prison Overcrowding Speech Outline
994 Words4 Pages
Topic: Prison overcrowding General Purpose: To inform Specific Purpose: At the end of my speech, the audience will be able to identify and describe the key reasons and issues of prison overcrowding. Introduction Attention Getter Imagine being locked up in a confined space with little to no air conditioning, concrete walls, concrete floors, poor sanitation, rowdy peers, no soft comforts of a home, and a lack of the everyday basic needs. What I am describing to you is a little thing called prison overcrowding. Establishes Speaker Credibility I personally began to become interested in the overcrowding of prisons when my own brother was let out early due to it. My brother described the horrid situation that the…show more content…
Preview of Main Points Today, I will be describing to you what prison overcrowding is, the reasons behind it, what it results in, and how it can be reduced. Body Transition to First Main Point: To begin, let's take a look at what prison overcrowding is. I) Prison overcrowding is the social phenomenon that occurs when the demand for space in prisons in a jurisdiction exceeds the capacity for prisoners in the place. A) According to Portland State University, "Approximately one in 35 U.S. adults are incarcerated, on parole or on probation". B) According to Penal Reform International, "In most prison systems, prisoners do not have the minimum space requirements recommended by international standards, spending up to 23 hours of the day, if not all day, in overcrowded cells. Overcrowding can be so severe that prisoners sleep in shifts, on top of each other, share beds or tie themselves to window bars so that they can sleep while standing". Transition to Second Main Point: Now that we have defined what prison overcrowding is, let's identify common causes. I) Repeating offenders A) Past B)
More about Prison Overcrowding Speech Outline
Open Document


Limitations and Known Issues within MariaDB MaxScale
Limitations and Known Issues within MariaDB MaxScale
This document lists known issues and limitations in MariaDB MaxScale and its plugins. Since limitations are related to specific plugins, this document is divided into several sections.
Configuration limitations
In versions 2.1.2 and earlier, the configuration files are limited to 1024 characters per line. This limitation was increased to 16384 characters in MaxScale 2.1.3. MaxScale 2.3.0 increased this limit to _PHONE_ characters.
In versions 2.2.12 and earlier, the section names in the configuration files were limited to 49 characters. This limitation was increased to 1023 characters in MaxScale 2.2.13.
Multiple MaxScales on same server
Starting with MaxScale 2.4.0, on systems with Linux kernels 3.9 or newer due to the addition of SO_REUSEPORT support, it is possible for multiple MaxScale instances to listen on the same network port if the directories used by both instances are completely separate and there are no conflicts which can cause unexpected splitting of connections. This will only happen if users explicitly tell MaxScale to ignore the default directories and will not happen in normal use.
Security limitiations
MariaDB 10.2
The parser of MaxScale correctly parses WITH statements, but fails to collect columns, functions and tables used in the SELECT defining the WITH clause.
Consequently, the database firewall will not block WITH statements where the SELECT of the WITH clause refers to forbidden columns.
Query Classification
Follow the MXS-1350 Jira issue to track the progress on this limitation.
XA transactions are not detected as transactions by MaxScale. This means that all XA commands will be treated as unknown commands and will be treated as operations that potentially modify the database (in the case of readwritesplit, the statements are routed to the master).
MaxScale will not track the XA transaction state which means that any SELECT queries done inside an XA transaction can be routed to servers that are not part of the XA transaction.
This limitation can be avoided on the client side by disabling autocommit before any XA transactions are done. The following example shows how a simple XA transaction is done via MaxScale by disabling autocommit for the duration of the XA transaction.
SET autocommit=0;
SET autocommit=1;
Prepared Statements
For its proper functioning, MaxScale needs in general to be aware of the transaction state and autocommit mode. In order to be that, MaxScale parses statements going through it.
However, if a transaction is commited or rolled back, or the autocommit mode is changed using a prepared statement, MaxScale will miss that and its internal state will be incorrect, until the transaction state or autocommit mode is changed using an explicit statement.
For instance, after the following sequence of commands, MaxScale will still think autocommit is on:
set autocommit=1
PREPARE hide_autocommit FROM "set autocommit=0"
EXECUTE hide_autocommit
To ensure that MaxScale functions properly, do not commit or rollback a transaction or change the autocommit mode using a prepared statement.
Protocol limitations
Limitations with MySQL/MariaDB Protocol support (MariaDBClient)
 - Compression is not included in the server handshake.
 - MariaDB MaxScale does not support KILL QUERY ID type statements. If a query by a query ID is to be killed, it needs to be done directly on the backend databases.
 - The KILL commands are executed asynchronously and the results are ignored. Due to this, they will always appear to succeed even if the user is lacking the permissions.
Authenticator limitations
Limitations in the GSSAPI authenticator
Currently, MariaDB MaxScale only supports GSSAPI authentication when the backend connections use GSSAPI authentication. Client side GSSAPI authentication with a different backend authentication module is not supported.
Limitations in the MySQL authenticator (MySQLAuth)
 - MySQL old style passwords are not supported. MySQL versions 4.1 and newer use a new authentication protocol which does not support pre-4.1 style passwords.
 - When users have different passwords based on the host from which they connect MariaDB MaxScale is unable to determine which password it should use to connect to the backend database. This results in failed connections and unusable usernames in MariaDB MaxScale.
 - Only a subset of netmasks are supported for the Host-column in the mysql.user-table (and related tables). Specifically, if the Host is of the form base_ip/netmask, then the netmask must only contain the numbers 0 or 255. For example, a netmask of is fine while is not.
Filter limitations
Database Firewall limitations (dbfwfilter)
The Database Firewall filter does not support multi-statements. Using them will result in an error being sent to the client.
Tee filter limitations (tee)
The Tee filter does not support binary protocol prepared statements. The execution of a prepared statements through a service that uses the tee filter is not guaranteed to succeed on the service where the filter branches to as it does on the original service.
This possibility exists due to the fact that the binary protocol prepared statements are identified by a server-generated ID. The ID sent to the client from the main service is not guaranteed to be the same that is sent by the branch service.
Monitor limitations
A server can only be monitored by one monitor. Two or more monitors monitoring the same server is considered an error.
Limitations with Galera Cluster Monitoring (galeramon)
The default master selection is based only on MIN(wsrep_local_index). This can be influenced with the server priority mechanic described in the Galera Monitor manual.
Router limitations
Refer to individual router documentation for a list of their limitations.
Comments loading...


Take the 2-minute tour ×
I'm not a C++ expert, but afaik this code should fail due to size not being constant:
using namespace std;
int main(int argc, char** argv)
 int size = *argv[1] - 48;
 char array [size];
 return 0;
Why does this work when I compile that with gcc(better say g++)?
./test 7
/test 2
Thanks in advance
share|improve this question
add comment
7 Answers
To allocate memory from stack or heap for a variable, the size of the variable need to be known. C++ compilers can decide themselves how they allocate memory, but c++ has made it public how they expect c++ compilers to handle the situation, and thus c++ std requires that compiler vendors publish their memory handling. This happens via sizeof operator. This operator is calculated completely in compile-time. The compile-time restriction for the array sizes comes from this requirement.
int arr[10];
std::cout << sizeof(arr) << std::endl
since every variable and type supports sizeof, their sizes need to be calculated on compile-time in c++. Thus variable-length arrays are impossible in c++.
There is another very important restriction flowing from this requirement. In principle c++ compiler vendors could calculate maximum amount of memory required for c++ program's stack, if only there weren't one problem: for recursive functions, you cannot calculate stack size used by the program, but for everything else, the size of stack can be calculated by doing the following:
 1. use sizeof(a) for every variable in stack frame
 2. sum the sizes of the variables to get amount of memory required for that stack frame
 3. list all possible stack frames and calculate their sizes
 4. Pick the call stack that has largest size
 5. choose that size as the size of your program's stack.
Unfortunately, recursive functions break the whole scheme. And it would need global program's flow analysis to regognize which functions have possibly infinite call stacks. But the limitation for compile-time sizeof operator is important or our c++ programs would randomly run out of stack space, causing crashes and unstability. And this is unacceptable. Thus every variable and type supports compile-time sizeof operator.
VLA support requires that compilers can generate code where offsets normally generated to as constants to the resulting machine code are actually modifiable on runtime. Standard conforming c++ compilers normally do not have ability to do this. C decided to add this support and thus C compilers can do it. But in the process they needed to break the sizeof operator. No longer can the sizes be calculated on compile-time. VLA support as specified in the C standard has big problems:
 1. you cannot put VLA inside a struct or class
 2. VLA's are basically restricted to the local function scope
These problems were already solved in c++ via std::vector which do not have any of these problems.
share|improve this answer
add comment
That's a non-standard GCC extension - other compilers like Visual C++ don't support that.
share|improve this answer
add comment
Here is a list of new features in C99 which adds variable length arrays.
Also see $ Array declarators of N1548(ISO/IEC 9899:201x Committee Draft — December 2, 2010 N1548) which details it.
share|improve this answer
But: no C++ standard ever accepted VLAs from C99, so technically the fact of admitting VLAs in C++ is a g++ extension. – Matteo Italia Jul 28 '12 at 1:45
add comment
It's a C99 feature that allows you to declare arrays like that on the stack.
share|improve this answer
add comment
Even without VLA extensions, the code can compile when the compiler has failed to deduce that the dimension expression is not known at compile-time. It's still UB.
share|improve this answer
add comment
Because you don't invoke g++ as a C++ compiler. If I try it, I get a warning, stating clearly that "ISO C++ forbids variable length array". But my makefiles include the option -std=c++98, at least when I want to compile portable C++.
share|improve this answer
add comment
c99 supports variable length arrays(VLA) but neither c90 nor C++ supports variable length arrays, but gcc support this as an extension in both C and C++ you can see this more clearly if you compile with these arguments:
gcc -std=c89 -pedantic
this will give you the following warning:
warning: ISO C90 forbids variable length array 'array' [-Wvla]
or with g++:
g++ -pedantic
will give you this warning:
warning: ISO C++ forbids variable length array 'array' [-Wvla]
this standards section in the gcc manual goes into more details. Important to note that as of the 2011 C standard variable length arrays(VLA) are now optional.
share|improve this answer
add comment
Your Answer


text:
Filter Air Shower
A filter air shower refers to an air shower system equipped with high-efficiency particulate air (HEPA) or ultra-low penetration air (ULPA) filters. These filters play a critical role in removing particles and contaminants from individuals, materials, or equipment as they pass through the air shower.
Filter air showers ensure that the air used in the decontamination process is clean and free from particles as small as 0.3 microns. The filters are instrumental in achieving the high level of cleanliness required in controlled environments.
Filter air showers are commonly used in industries where maintaining strict contamination control standards is essential, such as pharmaceuticals, biotechnology, semiconductor manufacturing, and precision electronics production.
Goods Passage Air Shower
A goods passage air shower is a specialized air shower system designed for the decontamination of goods, materials, or equipment before they enter controlled environments. These systems are integral in industries where maintaining the cleanliness and integrity of products is of utmost importance.
Goods passage air showers are strategically placed at entry points to ensure that materials and equipment are thoroughly decontaminated. High-velocity, filtered air is emitted to dislodge and capture particles, dust, and contaminants from the surfaces of goods or equipment, guaranteeing that only properly decontaminated items enter the controlled space.
These systems are often customizable to accommodate various sizes and types of products. Industries such as pharmaceutical manufacturing, food processing, and semiconductor production rely on goods passage air showers to maintain product quality and safety standards.
Sliding Door Air Shower
A sliding door air shower is a sophisticated solution designed to enhance the efficiency and functionality of traditional air showers. These systems feature automated sliding doors, a departure from the manual swing doors found in conventional air showers. This innovation streamlines the decontamination process and reduces the risk of human error during entry and exit.
Automatic sliding door air showers offer several advantages. They expedite the movement of personnel and materials in and out of the air shower, which is especially beneficial in environments with high foot traffic. The automation minimizes the time required for decontamination and ensures that individuals do not bypass the process. These systems can also include sensors to prevent doors from opening until the decontamination cycle is complete, enhancing control and contamination prevention.
The customizable nature of these air showers allows users to set parameters like air velocity and shower duration, catering to the specific needs of various industries. Automatic sliding door air showers are a valuable addition to settings where maintaining the highest standards of cleanliness is paramount.
Air Shower of Clean Workshop
An air shower of a clean workshop is an essential component of cleanroom facilities. Its primary purpose is to decontaminate personnel and materials before they enter the controlled environment of a clean workshop.
High-velocity, filtered air is emitted in the air shower to dislodge and capture particles and contaminants from individuals or materials. This process ensures that only properly decontaminated personnel or objects gain access to the clean workshop, maintaining the cleanliness required for tasks like precision manufacturing, research, or electronics production.
The air shower of a clean workshop is an indispensable tool for maintaining the cleanliness and integrity of controlled spaces where even minor contamination can have significant consequences.


Urban tourism
Urban tourism is not just about attracting visitors, increasingly it is about managing flows of tourists. Many city destinations pursue active policies to limit the number of visitors and their impact on quality of life in the city. However, for many tourists are also a source of revenue, leading to urban challenges.
Managing impacts
Famous cities and established tourism regions profit from growing foreign and domestic tourism, but also experience negative impacts. Cases such as Venice, Barcelona and Amsterdam show that strong visitor flows can have negative impacts on local quality of life. This leads to a trend of managing tourism, instead of tourism promotion.
Addressing all urbanites
Erasmus UPTs experts consult and research many questions of urban tourism. We offer a unique data-driven perspective on tourism development, where we measure economics, social and environmental impacts of tourism.
Actual questions our experts are working on: What is the impact of Airbnb on local quality of life? Do short term rental services increase local house prices? How is social cohesion in cities affected by tourism? How to address crowding due to over tourism?
Thorough and fact-based
By combining data research and strategy building, we can help cities and marketing organisations, as well as tourism policy makers, make better decisions. And thereby help economies and citizens thrive.
Relevant projects
 What can Erasmus UPT do for you?
 Our researchers
 Anna Bornioli, senior researcher Erasmus UPT
 Anna Bornioli PhD
 Senior researcher transport and urban economics
 Personal page
 Susan Vermeulen MSc
 Junior researcher urban and transport economics
 Personal page
 Jeroen van Haaren MSc
 Senior researcher urban economics and real estate
 Personal page


text:
Publications (1)0 Total impact
Article: Lattice modulation spectroscopy of strongly interacting bosons in disordered and quasiperiodic optical lattices[show abstract] [hide abstract]
ABSTRACT: We compute the absorption spectrum of strongly repulsive one-dimensional bosons in a disordered or quasiperiodic optical lattice. At commensurate filling, the particle-hole resonances of the Mott insulator are broadened as the disorder strength is increased. In the noncommensurate case, mapping the problem to the Anderson model allows us to study the Bose-glass phase. Surprisingly, we find that a perturbative treatment in both cases, weak and strong disorders, gives a good description at all frequencies. In particular, we find that the infrared-absorption rate in the thermodynamic limit is quadratic in frequency. This result is unexpected since for other quantities, like the conductivity in one-dimensional systems, perturbation theory is only applicable at high frequencies. We discuss applications to recent experiments on optical lattice systems and, in particular, the effect of the harmonic trap.Phys. Rev. A. 09/2009; 80(3).
Université Paris-Sud 11
Paris, Ile-de-France, France
- Laboratoire de Physique Théorique et Modèles Statistiques


text:
Take whichever products you want to sell and make them visually stand out from the rest through the contrast design principle. Make them bigger, brighter, and bolder so that they appeal quickly to the eye (and to the wallet).
Pretend you're in the market for a new blender. Which product on the Macy's website stands out to you the most?
For most people, the NutriBullet will catch their eye first. Why? Because it looks different from the rest. While the other product images show empty blenders against plain white backgrounds, the NutriBullet shows the blender filled with and surrounded by fruits against a gray background.
This works for two reasons. The first is the color scheme. The grays, greens, oranges and pinks are starkly different from the other blenders, so it draws your eye immediately.
The second are the fruits themselves, which actually work to create an emotional response. It's hard to associate any kind of feeling with the static, black and white Ninja NJ600, for example, but when you look at the NutriBullet, you see the fresh strawberries and can immediately smell and taste them. You might associate them with your mom's strawberry shortcake, or with serving your kids a healthier dessert. Your senses and feelings are stimulated, and you begin to feel more attached to that product.
By emphasizing the NutriBullet this way, Macy's has increased the likelihood that people will choose it, especially if they're in a hurry.
Lessons on SEO
A research project conducted by Cornell University revealed several significant findings on how people consume search engine results pages. Subjects were given ten questions in various topics and were asked to use Google to find the answers. Eye-tracking technology was used to determine some interesting trends, including the following:
1. Users select a site in less than 5 seconds.
Here's a basic breakdown of how users decide on a link:
- Snippet – 43% important
- Title – 30% important
- URL – 21% important
2. Users click the first promising link they see.
And they don't look past it. If your competitor ranks above you, the majority of users will never even see your link.
3. Users review results from top to bottom.
This is why being the number one search result is so important.
4. The top two results are the most likely to be viewed.
Again, why ranking at the top matters.
5. Users would rather conduct another search than scroll down.
People dislike scrolling so much that they'd rather refine their search if the first five results aren't what they're looking for. That means that you need to make sure your link is in the top 5 and has a relevant snippet, title, and URL to qualify as a promising link.
Heatmaps have provided us invaluable insight into the subconscious mind of the web user. They've taught us the best places to place important content, including:
- Above the fold
- On the left-hand side
- In the first two paragraphs
- In the area where your models' eyes are looking
They've also taught us where NOT to place important content:
- In typical ad locations (like the top banner and the right margin)
- In animated header format
Heatmaps have taught us what our web content should look like:
- Short and sweet if in e-mail format
- Emphasized, so people will pick it in a hurry
- Visual for men and informational for women
And also what our SEO should look like:
- Best case scenario: number one search result
- Second best case scenario: in the top two search results
- Absolutely necessary scenario: in the top five search results
- Relevant snippet, title and URL
In short, heatmaps have already done a lot of the work for you. Now all you have to do is take their results and use them to optimize your website. Make these psychological behaviors as easy as possible for your viewers, and I guarantee you'll see an increase in conversion rate.


text:
Tools Support for Linux Kernel Deductive Verification Workflow.
Errors in critically important systems may become very expensive. If such systems must provide confidentiality when working with some critically important data such as classified information or private know-how, an error cost may become difficult to evaluate. For these systems, formal verification methods should be used to prove they are error-free. In the paper, a case of formal verification of such system – a Linux kernel security module – is considered; the chosen toolset, the verification process workflow are reviewed, along with some auxiliary tools required for this process and developed by the authors.Full text of the paper in pdf
Proceedings of the Spring/Summer Young Researchers' Colloquium on Software Engineering, 2014 (8) Труды SYRCoSE 2014


text:
Rights & Tenure in the News »
Community forest management in Mexico reduces poverty while conserving natural resources
Newspapers El Financiero and Milenio.com report on new studies that show community forest management in Mexico has reduced poverty and social inequity while simultaneously conserving natural resources. Over 2,300 forest communities have been given forest use permission in Mexico, resulting in economic growth and effective conservation of forests in these areas. The report suggests the need for a complementary system of both publicly protected areas and a framework for community managed forests in order to effectively reduce poverty and conserve natural resources.
Posted By Andrew Davis at 9:10am on May 21, 2007
This blog may contain links to external websites. These links should not be construed as endorsements by Rights and Resources of the content present. They are provided for informational purposes only.


text:
MDAI 2010 : Modeling Decisions for Artificial Intelligence
Conference Series : Modeling Decisions for Artificial Intelligence
Call For Papers
The aim of the MDAI conference series is to provide a forum for researchers to discuss models for decision and information fusion (aggregation operators) and their applications to AI.
In MDAI 2010, we encourage the submission of papers on decision making, optimization, data mining, information fusion, risk analysis and related topics. Applications to privacy technologies as well as real world problems such as environmental problems and supply chain management problems are welcome.
MDAI 2010 is the 7th MDAI conference. Previous conferences were celebrated in Barcelona (2004), Tsukuba (2005), Tarragona (2006), Kitakyushu (2007), Sabadell (2008), and Awaji Island (2009).
Publication: Proceedings with accepted papers are expected to be published in the LNAI/LNCS series (Springer-Verlag) and distributed at the conference, as done in previous conferences. See LNAI volumes 3131, 3558, 3885, 4617, 5285, and 5861 (with acceptance rates of 26/53, 40/118, 31/97, 42/193, 19/43, and 28/61 respectively).
Besides, papers, that according to the evaluation of the referees, are not suitable for the LNAI but that have some merits will be published in a CD-ROM proceedings (with ISBN) and scheduled in the MDAI program.
Some special issues are expected.
Topics of interest:
Papers are sought in topics related with decision, information fusion and their applications are welcomed.
1. Methods and Tools:
1. Information fusion
2. Aggregation operators
3. Knowledge integration
4. Utility and decision theory
5. Model and operator selection
6. Learning methods for parameter determination
7. Machine learning and statistical learning
8. Soft computing
9. Optimization methods in AI and decision modeling
1. Information privacy and security
2. Multiagent systems
3. Data mining
4. Autonomous robots
5. Entertainment computing
6. Subjective evaluation
8. Information access
9. Economic and management sciences


Why do they need company?
Imagine living by yourself for your entire life and never having anyone to interact with - how would that make you feel? Guinea pigs that are kept on their own are more likely to become bored or even depressed. They are herd animals, meaning that they are very sociable, and thrive with company of their own kind!
A few of the many benefits that companionship provides:
 - Security
 - Improved quality of life
 - Happiness
 - Interaction
Having a herd of guinea pigs with a neutered boar and several sows is similar to how they live in the wild, so their natural behaviours really show with that group combination. It is very interesting to see the way they interact with each other, and the various dynamics of a herd.
A significant benefit of housing guinea pigs in a herd is that they have a lot of freedom with who they want to be with. Having said that, some pairs of guinea pigs have a great bond.
When you have a pair of guinea pigs, if one passes away, you will be left with just one guinea pig, and as guinea pigs are herd animals, they can become very lonely or even depressed without company of their own kind - as a result you may then end up in a situation of either leaving the guinea pig on its own, or getting a new friend for the guinea pig (which can be complicated, especially if you have had a pair with a strong bond).
With a herd of guinea pigs, if one passes away, this may unsettle the group at first, but none of the guinea pigs will end up on their own, which is a great advantage of a group.
If you have the space, time and commitment, then I would really encourage owning a herd of guinea pigs. It can be a lot of work, but it is so rewarding. With guinea pigs, company is also a'safety in numbers' thing because they rely on each other for security and can become scared on their own.
As they are very social creatures, they regularly interact and communicate with each other. They are much more confident little characters when they have a friend or more and their personalities really come through. If you have a lone guinea pig, I strongly reccomend that you get them a friend because guinea pigs should not be alone!
There may be some circumstances where are guinea pig can be particularly aggressive. In reality, if they are matched with the right partner(s) then they are likely to settle into place. A guinea pig on their own may seem okay, however it is difficult to detect signs of loneliness, and although they may not show it, there is a good chance they are experiencing it.
What are good guinea pig combinations?
 - Neutered boar with one/several sows
 - A pair or group of sows
 - Boars that have been brought up together
 - An older, more dominant boar with a young boar
It is possible to have a herd of males providing that they have lots of space. Like with any group/pair, it is very important for the personalities to work well together - some piggies will get along very well, others may not like each other, it is just like with people! The main thing is that they are able to tolerate each other and this is essential for a group to work. Male groups are not ideal for new owners, and should only be attempted by experienced owners.
guinea pig floor time
How do you introduce guinea pigs that have never met?
There are various methods for introducing guinea pigs that have never met before. I have had the most success by introducing guinea pigs via a split cage. This is a very simple, stress-free method, and all you will need is a partition. C&C cages are great for introducing guinea pigs who have never met before. This is because you can easily build a partition with just a few grids. Once the cage has a divider, you just put one guinea pig at either side of the partition. If you are introducing multiple guinea pigs who have never met before, you can add more dividers. If introducing a pair or group to a new guinea pig, keep the pair/group together, then put the new guinea pig at the other side of the divider. Split cages are often very successful because it allows them to interact without doing harm to one another. You also get a clear indication of how they are going to get along judging by the way they behave. When new guinea pigs first meet via a split cage, it is common for them to display dominant behaviours - they do this to establish which guinea pig is boss, and which is submissive.
There is usually more aggression when the guinea pigs first meet, but once they have been together for a while, the dominant behaviours are usually reduced. I reccomend waiting about 1 week before introducing them properly. In the meantime, you may sit the guinea pigs together on your lap and hand feed them some veggies as a distraction - this is good positive reinforcement as the guinea pigs learn to associate each other with something positive. Little and often is good, so once a day for about 5 minutes at a time is ideal. Remember, if the guinea pigs start to show signs of aggression, put them back into the split cage as you want to always try and end on a positive.
After a week (or when you think is best), the next step I reccomend is introducing the guinea pigs in a neutral territory. It is very important that you pick a location where neither of the guinea pigs have visited before, otherwise they may become territorial and show more dominance.
For example: bedroom floor, bathroom floor, kitchen floor, pen on the grass etc.
You will need
 1. Playpen or fully secure room
 2. Towel or gardening gloves in case fighting gets serious and you need to separate the guinea pigs
 3. Lots of food! Veggies, hay piles, grass, plants etc. This is vital for keeping them occupied
 4. Kitchen roll and/or sweeping brush to clean up any urine/faeces
 5. Another person (optional, but useful) to keep an eye whilst you set up their cage
 - Butt sniffing - like how dogs greet each other, they often do this to unfamiliar guinea pigs
 - Humping - they may try to hump, and the guinea pig on top is trying to be the boss
 - Teeth chattering - usually a sign of dominance but sometimes out of fear
 - Rumble strutting - common dominant behaviour, they 'butt sway' and make a deep rumbling sound
 - Chasing - guinea pigs sometimes chase during introductions when trying to establish hierarchy
 - Pee spraying - especially with females, they do this to warn the other guinea pig(s) away
 - Lifting head high - they may try to lift their head high to show they are the boss
 - Nipping/drawing blood - guinea pigs may bite out of fear or aggression
 - Hair pulling - when sorting out the ranking, they sometimes pull out fur to show dominance
 - Launching - another indicator of aggression, they may launch/attack each other
Guinea pig dominance may seem scary, however it is best not to intervene. I would only separate the guinea pigs if fighting got very serious, and it could cause too much stress or even injuries if they are left together much longer. If all seems to be going ok, try to leave them for a few hours in the neutral territory to ensure they are going to get along.
pair of guinea pigs
pair of guinea pigs
bonding guinea pigs
guinea pig herd
What happens next?
This depends entirely on how the introduction went. If there was little to no aggressive behaviour, you may then put them together in the same cage. Remember that mounting, teeth chattering etc is very common and you may still try to put them together. Ensure that the cage setup is quite simple - you don't want too much enrichment at this time. You may wish to provide two of everything, for example bottles, bowls, hide houses etc so they do not have to share. Make sure the hide houses have multiple entrances/exits so they can not get cornered (a towel/blanket draped over the cage works very well). It is also a good idea to introduce them in a clean cage with fresh bedding so they do not act territorial. Hay piles are great during the first few days as it provides a distraction and allows them to have their own space.
It is common during the first few days for the guinea pigs to show dominant behaviour. It can take a while for the guinea pigs to decide on the hierarchy. The common behaviours listed above may still apply to when the guinea pigs being put together in the same cage, so do not separate them if they are still showing this behaviour as they need time to adjust. While dominant behaviours usually subside within a few days, sometimes the dominant behaviour will continue. Most commonly this is because the guinea pigs are both aiming for the boss role, and neither will back down, which can result in the guinea pigs being aggressive and possibly doing harm to one another.
What happens if...?
I am going to list different possible scenarios and the solutions to different introduction problems.
Scenario 1. A pair of male guinea pigs are both fighting for the boss role & neither will back down.
Solution 1. First of all, ensure that their


[This is Work In Progress currently. My apologies.]
Here we will discuss the most important parts of the cells-gtk GTK binding, and how cells can be used in defining cells-gtk GUIs. This minimal introduction might be sufficient to get you started. We'll see.
Cells, Cell slots, and all that...
The example from Bill Clementson's Blog is a nice starting point. Read it and come back here.
...Welcome back. Perhaps you came back with the impression that Cells is a way to manage the relationship among the values in the slots of a CLOS object. That would be good. You might also imagine that if the slots describe the state of some real world object like a motor, you could use Cells to control the object -- to orchestrate how all its parts work together toward some goal. That also would be good. Now, if that object were a GTK-based GUI... no I'm getting ahead of myself. Let's look at the basic idea of Cells, it is similar to constraint satisfaction. That is, you have values, and rules that govern the relationships among the values, and whenever the network is pushed out of a consistent state (i.e. whenever the rules no longer hold), the objective is to get it back to a consistent one by updating some values. In Bill's example, status fuelpump and temp are cells -- slots in a motor CLOS object whose values are managed by the cells constraint network. The constraint network itself might be depicted as this:
In this graph the nodes are values and edges have rules attached. The collection of edges into a node together with the rule are the cell. The green nodes are values controlled by cells and the empty nodes are regular 'unmanaged' values (such as you get by reading the value from regular CLOS slot).
Cells such as temp, which have no edges leading into them, are called 'c-input cells'. A c-input cell gives you an opportunity to push the network out of a consistent state, so that it must find another consistent state (raise the temperature, force the motor and fuel pump to stop). They are one way the network interacts with its environment. (Thinking about GUI: Part of the 'environment' of your Cells-GTK application are lisp objects, the state of which you'd like to communicate to the user.)
Another way that the cells network can interact with its environment is through c-output (or c-echo) methods. These are 'observers' of a cell that are invoked when the value of that cell is modified. They are sort of the converse of the c-input: modify a c-input value and the network reacts; when the network reacts, it can modify values outside the network with a c-output.
So what about the values inside the network -- the nodes with edges pointing into them? Observing those with c-output methods and using c-input and setf to modify them would be bad form. If you program that way, you aren't doing anything that couldn't be done without Cells. Drop Cells-GTK and go back to programming in C-based GTK or Java. The result will be that you hand back to the programmer the burden of keeping track of every change to the GUI. C-input cells are intended (small apps like Bill's aside) to be used to 'instrument' (or "put sensors on") your code. If you have a legacy code that you are building a Cells-GTK GUI for,....
Now reiterating the ideas above:
Cells provides for the declaration of several kinds of "cell slots," but for the purpose of talking about cells-gtk, we can limit the discussion to just the c-input and c-formula cells. How do you recognize what kind of cell slot is being used? Well, first we should point out that by specifying :cell nil in a defmodel slot definition, the slot defined is an ordinary CLOS slot. The rest are specified using :initform on the slot. The following defmodel defines a c-input cell, a c-formula cell and a regular CLOS slot.
(defmodel example ()
 ((control-me :initform (c-input (some-form-foo)) :accessor control-me)
 (im-computed :initform (c-formula (some-form-bar)) :accessor im-computed)
 (im-clos :cell nil :initform nil)))
 / \
 CLOS cell
 / \
 invariant variant
 / \
 input-valued formula-valued
The figure above depicts a taxonomy of cell slots. Cell slots can be categorized as invariant or variant. Variant slots can be further categorized as input-valued and formula-valued. Some definitions:
Cells and Cells-GTK
Good Cells Technique
This all may seem abstract, but it has practical value in the design of your GUI. For example, I might set the :sensitivity of a button, the :text in a label or :fraction of a progress-bar based on the presence or value of an object in another cell slot, or some relationship of cells slots described by the formula. Thus the problem of remembering "what to set when" is reduced to answering the question, "What does the state of the widget presented to the user represent about the state of the program?" The formula addresses that question directly, and is placed at the widget presenting itself.
A few notes
Cell Input, Output, and Formula-valued Cells
The above described the purpose of the input cell. There is often the complementary need to react to the change of a value. def-c-output defines a method named for a cell slot and specialied on a defmodel defining the slot (or one of its subclasses, the usual CLOS rules apply).
The def-c-output method is invoked through process of propagation of an change to an input as follows:
Each SETF gets process in order by starting from the top.
The above happens with the following guarantee: When an input changes, all dependencies (direct or indirect) are considered "stale" until they are recomputed. The guarantee ensures that no cell slot accessor will ever return a "stale" value.
Note that concerning outputs setf-ing inputs, each SETF is considered a "discrete generation" if you will. This is why all propagation to formula-valued cell dependencies has to happen before any output SETF (and why Cells has a mechanism to defer SETFs of inputs).
Family: Referencing cells throughout the defmodel hierarchy.
The defmodel macro defines a part-subpart relationship among components of the interface. The relationship is made by the :kids initarg. :kids is given a list of children. In a cells-gtk defmodel some kids might be GTKContainer (vbox, hbox, etc) -- things that in the GTK world, have kids of their own. It may be a natural coding practice in that case for the defmodel to define a fairly deep ancestory hierarchy, laying out the arrangement of widgets. (You're free to break things up wherever seem reasonable for your application). It might look like this:
(defmodel my-app (gtk-app)
 :md-name :my-app
 (list (mk-combo-box :md-name :my-combo)...))
 (list (make-instance'my-subpart))))))))
The point of the Family methods is to allow things a different places in this hierarchy (e.g. :my-combo to reference :my-app).
More will be written about this soon.
Peter Denno
Last modified: Sun Mar 6 18:43:09 EST 2005