text:
On the EVE Online forums, Ellente Fervens makes a request that crops up occasionally: the directional scanner should have an option to update automatically, shifting a tedious and repetitive task away from the player to the computer. Conceptually, I agree with this idea. This is sci-fi, and we are piloting complex ships no doubt stuffed with computing power. It should be possible to give the ship computer a set of commands such as, 'keep d-scan updated, and if an unknown ship or scanning probes are detected then initiate an emergency warp back to the tower'.
Practically, however, I do not agree with such a change. EVE Online is not just a sci-fi environment, it is also and primarily a game. The interest and entertainment comes from player skill, and the progression of that skill. If you take away the skill from the game, by placing control in the hands of a computer, you are taking away the reason to play the game. This, I would argue, is one reason why AFK-[anything] is considered wrong, or at least unsporting. You play a game to be involved, and removing that involvement is seen to be detrimental to enjoyment.
As an example, the act of scanning is obviously algorithmic. Arrange probes in a set pattern, scan, pick a signature, centre the probe pattern on that signature, reduce the range of probes, scan. Repeat until signature is 100% or probe range is minimised, bookmark and/or ignore the signature, and reset; repeat until all signatures are bookmarked or ignored. In reality, there should be no pilot interaction for scanning. Launch your probes, let the computer do everything, and analyse the results at your leisure. But the lack of interaction gives no reason to be at the controls, to be playing the game.
Similar arguments could be made for other aspects of New Eden life, such as planetary interaction. I don't know myself, but I suspect there is an algorithmic method for finding sources of planet goo, extracting it, and shipping it to space. It would save a lot of fiddling around if you could just tell your computer to do it for you. And it would probably do a better job, too. Manufacturing also has algorithmic properties, when considering what blueprints to buy and research, and when to install lots of separate jobs to get a resultant ship off the production line. This isn't unusual.
Part of the reason there are so many processes that can be reduced to automation is that EVE Online is essentially a simulation, already running on computers, and already reduced to algorithms. This is clearly demonstrated by acknowledging that mission-running can be automated. The rats are always the same, and will always react the same way, because that's how they've been designed. Modules, planetary equipment, and probes will never deteriorate, so each subsequent process will be exactly the same as the previous one. Anything that has been programmed can be automated.
That's not to say scanning shouldn't be done automatically. But if it is, there must be some reason for players to want to scan manually. Generally, a common theme in gaming is to reward player interaction over player non-interaction. In this case, it would be that automated scanning would take at least twice as long as manual scanning. Note how this still makes no sense from a realism viewpoint, as a computer would be able to arrange probes much more quickly than a human. But if the processes were realistic then player interaction would be detrimental to progress, which is antithetical to the idea of gameplay. And there is a firm precedent, as autopilot takes you more slowly to your destination than does manual navigation.
If you consider the parts of the game that cannot be automated, that are not algorithmic, you will see a common pattern: player involvement. PvP is the defining aspect of EVE Online, and with good reason. Once you get other players, other people, involved, predictability is thrown out of the window. There may be aspects of PvP combat that can feel repetitive, or could be done more quickly by a computer, but there is always variation, always uncertainty, and that cannot be easily accounted for by an algorithm. The heart of EVE Online shows that player interaction and skill is rewarded over mechanically reproducing certain actions.
Now to bring the discussion back to d-scan updating automatically. Yes, conceptually it should be possible. Computers can do this easily. And there seems little reason to object to it. After all, the player still needs to analyse the results, and ephemeral ships or probes can still be missed if a capsuleer takes a drink or is otherwise distracted. But this isn't futuristic spaceship life, this is a game. Player interaction needs to be rewarded over player non-interaction. Automated d-scanning, if it happens, would need to update slowly, and significantly slowly than is possible manually.
A thirty-second automatic update of d-scan may be acceptable to consider. Any less and d-scan would come close to being the w-space version of a populated local channel, negating the base concept behind w-space. You could argue that this period is too long, and a pilot would be better off updating d-scan manually. Well, that is pretty much my point. An automated d-scan updating every thirty seconds is better than nothing, but updating it manually is better still. There needs to be risk, but specifically risk that can be mitigated by players being alert to those risks. There is limited automation in games for a reason, even if those reasons deny realism. The game needs to be player driven, lest we end up with computer-vs-computer gameplay whilst us meatbags with our slow-firing neurons sit back and watch what is essentially alternative TV.


How an appointment scheduler is beneficial for a medical practice?
Care coordination between patients and providers is often initiated at the appointment desk. The number of interactions and frequency can create a storm of poor communication and care between patients and doctors. The introduction of an imperfect or overly complex system of scheduling can lead to communication breakdowns. The cost of inadequate coordination of care can snowball quickly and hurt both patients and providers.
The patient and provider relationship can suffer when care is poorly coordinated, creating an overall negative healthcare experience, even discouraging patients from staying at a facility.
If your practice does not yet offer online scheduling, it is time to add this tool to your website. Not only would offering an appointment scheduler give your practice a competitive advantage, but it can also help minimize your staff's workload. More than just an innovative perk, investing in an appointment scheduler is good for business.
How PatientMD can ease out your workflow with an automated appointment scheduler?
Streamlined Workflow
One of the most significant benefits of our state-of-the-art appointment scheduler is workflow efficiency. Given the ever more dynamic patient care environment, a lot can get in the way of providing quality care. Not to mention errors that may arise from bulky processes of paperwork and billing. It's easy to get caught up in these draining duties as an employee, reducing productivity. When the productivity of your team goes down, so does your revenue and service quality. PatientMD's appointment scheduler takes off the burden of your phone calls. Thus, enhancing the efficiency of your workflow. This enables your employees to focus on other tasks that can not be automated and service delivery can be improved.
Reducing no-shows
No-shows can lead to loss of revenue, workflow affected, and increased expenses. Not to mention the discomfort and annoyance. Our appointment scheduler greatly reduces no-shows or nonattendance, and thus, saves revenue. When a patient misses a scheduled appointment, both the office and, the physician, do not receive payment for that time slot. Eliminating no-shows can also mean eliminating overbooking, which can mean disgruntled patients because of prolonged waiting times. Research suggests that forgetting appointments has been one of the most common reasons for no-shows in the past. Automated reminders sent through our appointment scheduler can help with this. Reminders can be sent automatically through appointment schedulers.
Improved Satisfaction
With the automation of scheduling services at your office, comes faster delivery. This implies that your services will be found reliable by the patients. The patient satisfaction score is improved by this. Automated workflow allows them to work more efficiently, even for the auxiliary staff. This improves their overall satisfaction.
Versatility and Scalability
Our appointment scheduler allows you to do more than just manage appointments. Often, it automates other mundane tasks. Sending reminder messages and rescheduling no-shows or bumped appointments are included. The more complicated your company is, the more important it is to find a solution that meets your specific scheduling needs.
Anytime, Anywhere Access
Our appointment scheduler allows providers to check their schedules at home, on the road, anywhere. The schedule and its features are accessible to employees regardless of whether they are in the office or working remotely from another setting.
Appointment Scheduling
PatientMD appointment scheduler puts you in control of your schedule and appointments. Now, without fear of last-minute cancellations on the part of customers, you can organize your activities and plan ahead for the day. You can control the number of people who can view your bookings with the booking system and you can also make quick modifications to the schedule.
Gives You an Edge in Your Industry
The convenience of using our appointment scheduler enhances the user experience, and this is what your patients want. A service provider that has its best interest at heart will want to stick to both prospective and existing customers. Your patients will probably spread the word, knowing how easy it is to book an appointment with you and who knows that you are good at what you do.
A Step Forward
Healthcare providers are turning to technology to update themselves and to improve the quality of their services. PatientMD appointment scheduler is definitely a step forward for the physicians and their practices.


text:
Do you want to learn how to adjust inventory in the warehouse and how to count items? This module explains how you can use the warehouse journals to adjust, count, and reclassify items.
In this module, you will:
- Identify the difference between the warehouse item journal and the item journal.
- Adjust an item's stock in the warehouse.
- Calculate warehouse adjustments.
- Post negative and positive adjustments from the item journal.
- Prepare the physical inventory count.
- Adjust inventory based on the physical count.
- Reclassify items between bins.
- Reclassify item tracking information.

source: openbmb/Ultra-FineWeb


text:
Joy Adamson biography
Joy Adamson was born January 20, 1910, in Troppau, Austria-Hungary. She relocated to Kenya, where she married George Adamson, a British game warden. She won international renown with her African wildlife books, especially the trilogy describing how the couple raised a lion cub, Elsa. In 1961 she founded the Elsa Wild Animal Appeal. At age 69 she was murdered by a disgruntled employee.
Artist and naturalist Joy Adamson spent much of her life in Africa, following her passion for animals. In 1960 book Born Free, she detailed her adventures with a young lion cub called Elsa. This story struck a chord with readers around the world, helping to spur interest in animal conservation in Africa.
The story of this famous writer actually begins in Europe. Born Friederike Victoria Gessner, she grew up in Troppau, which was part of the Austria-Hungary empire and is now known as Opava, Czech Republic. Adamson enjoyed a life of wealth and privilege as the daughter of a wealthy architect. She studied piano and the arts, among other subjects, in school.
Adamson married for the first time in 1935, becoming the wife of businessman Victor von Klarwill. He sent her on a trip to Africa on her own. According to some reports, von Klarwill wanted her to see if they could move there. Adamson, however, soon met another man, botanist Peter Bally, during her travels. In love with this new land and Bally, she decided to stay in Africa and divorce her husband. Adamson wed Bally in 1937, and it was Bally who gave her the nickname "Joy"—a moniker she used for the rest of her life.
At first, Adamson painted the plant life of Africa. She eventually expanded her artistic endeavors to make portraits of people from indigenous cultures in Kenya. After ending her marriage to Bally in 1942, she met a game warden named George Adamson. He became her third husband, and they spent some of their early years together, traveling around East Africa for his job and living in tent camps.
In 1956, Adamson's husband shot a lion in self-defense. He discovered that she had only attacked to protect her three cubs. Rescuing the young animals, George brought them home to Joy. They gave two away to a zoo, but they kept one that they named Elsa. Joy developed a close bond with the animal, which she raised. In Born Free (1960), she chronicled her relationship with Elsa and her efforts to return her to the wild. Adamson explained that Elsa "became almost like my child. Because I had no children, I have spent all my emotion on her and my other animals. But I cannot make them my own."
Adamson's book became an international best seller, and its success put the spotlight on the need to preserve African wildlife. She wrote two more books about Elsa and her cubs, Living Free (1961) and Forever Free (1962). In addition to sharing her experiences and observations through writing, Adamson established her own conservation group, the Elsa Wild Animal Appeal.
In 1966, the film adaptation of Born Free became an international smash.
The film starred Bill Travers and Virginia McKenna as George and Joy Adamson. By the time of the film's release, Adamson had turned much of her attention to a young cheetah, which she named Pippa. Helping Pippa learn to be a wild cheetah became the subject of the 1969 book The Spotted Sphinx.
While on the big screen, George and Joy were depicted as a happy, loving couple, the pair became estranged over the years, and they stopped living together as early as 1971. According to some stories, they were divided over their conservation work. George preferred to be in the field, while Joy did more lecturing and writing. There are also reports that Joy Adamson had an intense personality and did not get along well with others much of the time. One associate told People that Adamson "was so stubborn and unyielding and people did not live up to her expectations."
Adamson spent the last few years of her life exploring her interest in leopards. She was given a leopard cub in 1976, which she named Penny, and she lived in an area where she could observe other leopards in the wild. In addition to her animal studies, Adamson took the time to write her own autobiography, 1979's The Searching Spirit.
On the night of January 3, 1980, Adamson took her usual evening stroll. She never returned home. Only a short distance away, her body was found on the road. It looked like she had been killed in an animal attack at first. A few days later, the authorities determined that Adamson had been stabbed to death. A former employee was arrested and convicted of the crime.
Many were shocked by Adamson's tragic death. The World Wildlife Fund was among those who expressed sadness at her untimely passing. In a statement, the organization praised her for her "ability to present wild animals in such a way that people could relate to them" and credited her with helping "wildlife everywhere." Shortly after her death, Adamson's final book, Queen of Shaba, came out, which detailed her studies on leopards.

source: HuggingFaceFW/fineweb-edu


Climate change pushing tropical trees upslope 'exactly as predicted'
By: Claire Salisbury
September 27, 2013
Looking up at a giant tree in the Costa Rican rainforest Photo credit: Rhett A. Butler / mongabay.comLooking up at a giant tree in the Costa Rican rainforest Photo credit: Rhett A. Butler /
Plots were monitored over the course of a decade, and in nine of the ten plots the community temperature score increased. This indicates a shift in species composition, with the relative abundance of lowland species increasing over time "exactly as predicted under climate-driven upward species migrations," Kenneth Feeley, lead author of the study with Florida International University and Fairchild Tropical Botanic Garden, told
Changes in species composition can be the result of different processes: species abundance can change without shifts in the overall range distribution, ranges can shift, and ranges can expand or contract. Identifying which of these underlies changes in species composition is important, because "depending on which of these processes is occurring, predictions for the future of'migrating species' will vary from positive (under range expansions), to neutral (under range shifts) to dire (under range contractions)," Feeley explains.
"Our results indicate that dieback is happening much faster than expansion. This means that species' ranges will shrink. As ranges shrink, species will be more and more prone to extinction," Feeley said.
Forested mountains in Costa Rica, where tropical trees communities are changing in response to climate change. Photo credit Johanna Hurtado
"The rates of migration that we have documented for the forests of Costa Rica are remarkably similar to what we found in the Peruvian Andes. The rates are also fairly close to the maximum rates of migration recorded for tropical trees during the warming period that followed the last glacial maximum. As such, it appears that what we are observing is trees moving at their fastest," Feeley said. "In the past, this was fast enough; it is not fast enough now and it certainly won't be fast enough in the future,"
"As species experience dieback at the trailing edges of their distributions due to temperatures becoming intolerably hot, we will get decreases in local diversity through a process that has been termed 'biotic attrition'," Feeley said. If species are able to shift their ranges upslope, and not just suffer dieback in the lowlands, "then we may expect an increase in alpha (local) diversity in the mountains over long time periods as large numbers of species move up out of the lowlands and into the highlands. In this case, the real losses of biodiversity are expected in the lowlands where there is no known pool of 'hot-adapted' species waiting to fill in the lowlands after the existing species emigrate."
"The more realistic you make the models, and the more variables you consider, the number of future options available to species almost invariably decreases." Even if species are capable of keeping pace with climate change and move upslope, they will still suffer a reduction in available habitat as land area decreases the further up the mountain they go.
"For example, in Costa Rica there is over 6.5 times as much land area between 1800 m and the highest plot at 2800 m as between 2800 m and the highest point in Costa Rica at 3820 m elevation," the scientists write. Species already adapted to cooler high elevation temperatures will have nowhere to migrate into. And other problems also face tropical species that are a long way from a mountain to begin with.
"Within the tropics there is no latitudinal gradient in temperature. This is very important because it means that species cannot migrate towards higher latitudes to escape the heat but instead must migrate to higher elevations where it does get invariably cooler," Feeley explains. "For lowland species in the middle of the Amazon basin where it is remarkably flat, this means that they will have to migrate huge, perhaps impossibly huge, distances before they experience any sort of relief." Add to that the destruction of habitat, and movement becomes more challenging still.
Species in the lowland tropics inhabit one of the hottest regions on earth, so it is impossible to gauge their heat preferences above present-day temperatures by looking at their range distributions. However, understanding the upper limit of species' heat tolerance would vastly improve predictions about species survival in a warming world.
"We are in the initial phase of a large-scale transplant study in which we are moving thousands of seedlings of dozens of tree species up and down the slopes of the Andes under various experimental treatments in order to identify the specific biotic and abiotic factors that limit their distributions," he says. "Once we have this information we can build it into improved predictions for the fate of these species on a warmer planet."
Related articles
Which ecosystems are most vulnerable to climate change?
Global warming may 'flatten' rainforests
(09/12/2013) Climate change may push canopy-dwelling plants and animals out of the tree-tops due to rising temperatures and drier conditions, argues a new study published in Proceedings of the Royal Society B. The development may be akin to 'flattening' the tiered vegetation structure that characterizes the rainforest ecosystem.
Get Mongabay articles emailed to your inbox
 Enter your email address:
By: Claire Salisbury (September 27, 2013).
Climate change pushing tropical trees upslope 'exactly as predicted'.


text:
pg_dumpall is a utility for writing out ("dumping") all PostgreSQL databases of a cluster into one script file. The script file contains SQL commands that can be used as input to psql to restore the databases. It does this by calling pg_dump for each database in a cluster. pg_dumpall also dumps global objects that are common to all databases. (pg_dump does not save these objects.) This currently includes information about database users and groups, tablespaces, and properties such as access permissions that apply to databases as a whole.
Since pg_dumpall reads tables from all databases you will most likely have to connect as a database superuser in order to produce a complete dump. Also you will need superuser privileges to execute the saved script in order to be allowed to add users and groups, and to create databases.
The SQL script will be written to the standard output. Use the [-f|file] option or shell operators to redirect it into a file.
pg_dumpall needs to connect several times to the PostgreSQL server (once per database). If you use password authentication it will ask for a password each time. It is convenient to have a ~/.pgpass file in such cases. See Section 31.15 for more information.
The following command-line options control the content and format of the output.
Dump only the data, not the schema (data definitions).
Include SQL commands to clean (drop) databases before recreating them. DROP commands for roles and tablespaces are added as well.
Send output to the specified file. If this is omitted, the standard output is used.
Dump only global objects (roles and tablespaces), no databases.
A deprecated option that is now ignored.
Dump object identifiers (OIDs) as part of the data for every table. Use this option if your application references the OID columns in some way (e.g., in a foreign key constraint). Otherwise, this option should not be used.
Do not output commands to set ownership of objects to match the original database. By default, pg_dumpall issues ALTER OWNER or SET SESSION AUTHORIZATION statements to set ownership of created schema elements. These statements will fail when the script is run unless it is started by a superuser (or the same user that owns all of the objects in the script). To make a script that can be restored by any user, but will give that user ownership of all the objects, specify -O.
Dump only roles, no databases or tablespaces.
Dump only the object definitions (schema), not data.
Specify the superuser user name to use when disabling triggers. This is only relevant if --disable-triggers is used. (Usually, it's better to leave this out, and instead start the resulting script as superuser.)
Dump only tablespaces, no databases or roles.
Specifies verbose mode. This will cause pg_dumpall to output start/stop times to the dump file, and progress messages to standard error. It will also enable verbose output in pg_dump.
Print the pg_dumpall version and exit.
Prevent dumping of access privileges (grant/revoke commands).
This option is for use by in-place upgrade utilities. Its use for other purposes is not recommended or supported. The behavior of the option may change in future releases without notice.
Dump data as INSERT commands with explicit column names (INSERT INTO table (column,...) VALUES...). This will make restoration very slow; it is mainly useful for making dumps that can be loaded into non-PostgreSQL databases.
This option disables the use of dollar quoting for function bodies, and forces them to be quoted using SQL standard string syntax.
This option is only relevant when creating a data-only dump. It instructs pg_dumpall to include commands to temporarily disable triggers on the target tables while the data is reloaded. Use this if you have referential integrity checks or other triggers on the tables that you do not want to invoke during data reload.
Presently, the commands emitted for --disable-triggers must be done as superuser. So, you should also specify a superuser name with -S, or preferably be careful to start the resulting script as a superuser.
Dump data as INSERT commands (rather than COPY). This will make restoration very slow; it is mainly useful for making dumps that can be loaded into non-PostgreSQL databases. Note that the restore might fail altogether if you have rearranged column order. The --column-inserts option is safer, though even slower.
Do not wait forever to acquire shared table locks at the beginning of the dump. Instead, fail if unable to lock a table within the specified timeout. The timeout may be specified in any of the formats accepted by SET statement_timeout. Allowed values vary depending on the server version you are dumping from, but an integer number of milliseconds is accepted by all versions since 7.3. This option is ignored when dumping from a pre-7.3 server.
Do not dump security labels.
Do not output commands to create tablespaces nor select tablespaces for objects. With this option, all objects will be created in whichever tablespace is the default during restore.
Do not dump the contents of unlogged tables. This option has no effect on whether or not the table definitions (schema) are dumped; it only suppresses dumping the table data.
Force quoting of all identifiers. This may be useful when dumping a database for migration to a future version that may have introduced additional keywords.
Output SQL-standard SET SESSION AUTHORIZATION commands instead of ALTER OWNER commands to determine object ownership. This makes the dump more standards compatible, but depending on the history of the objects in the dump, might not restore properly.
Show help about pg_dumpall command line arguments, and exit.
The following command-line options control the database connection parameters.
Specifies the host name of the machine on which the database server is running. If the value begins with a slash, it is used as the directory for the Unix domain socket. The default is taken from the PGHOST environment variable, if set, else a Unix domain socket connection is attempted.
Specifies the name of the database to connect to to dump global objects and discover what other databases should be dumped. If not specified, the postgres database will be used, and if that does not exist, template1 will be used.
Specifies the TCP port or local Unix domain socket file extension on which the server is listening for connections. Defaults to the PGPORT environment variable, if set, or a compiled-in default.
User name to connect as.
Never issue a password prompt. If the server requires password authentication and a password is not available by other means such as a.pgpass file, the connection attempt will fail. This option can be useful in batch jobs and scripts where no user is present to enter a password.
Force pg_dumpall to prompt for a password before connecting to a database.
This option is never essential, since pg_dumpall will automatically prompt for a password if the server demands password authentication. However, pg_dumpall will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing -W to avoid the extra connection attempt.
Note that the password prompt will occur again for each database to be dumped. Usually, it's better to set up a ~/.pgpass file than to rely on manual password entry.
Specifies a role name to be used to create the dump. This option causes pg_dumpall to issue a SET ROLE rolename command after connecting to the database. It is useful when the authenticated user (specified by -U) lacks privileges needed by pg_dumpall, but can switch to a role with the required rights. Some installations have a policy against logging in directly as a superuser, and use of this option allows dumps to be made without violating the policy.
Default connection parameters
This utility, like most other PostgreSQL utilities, also uses the environment variables supported by libpq (see Section 31.14).
Since pg_dumpall calls pg_dump internally, some diagnostic messages will refer to pg_dump.
Once restored, it is wise to run ANALYZE on each database so the optimizer has useful statistics. You can also run vacuumdb -a -z to analyze all databases.
pg_dumpall requires all needed tablespace directories to exist before the restore; otherwise, database creation will fail for databases in non-default locations.
To dump all databases:
$ pg_dumpall > db.out
To reload database(s) from this file, you can use:
$ psql -f db.out postgres
(It is not important to which database you connect here since the script file created by pg_dumpall will contain the appropriate commands to create and connect to the saved databases.)
Check pg_dump for details on possible error conditions.
Please use this form to add your own comments regarding your experience with particular features of PostgreSQL, clarifications of the documentation, or hints for other users. Please note, this is not a support forum, and your IP address will be logged. If you have a question or need help, please see the faq, try a mailing list, or join us on IRC. Note that submissions containing URLs or other keywords commonly found in'spam' comments may be silently discarded. Please contact the webmaster if you think this is happening to you in error.
Proceed to the comment form.


Detective comedy 2: Introducing the client
Detective comedy 2: Introducing the client
10 pages
Examining detective genre tropes, such as introducing the client.
This lesson continues the examination of blending of detective and comedy genres in 'The Falcon's Malteser', focussing on introducing the clients and tropes such as observational (and judgemental) descriptions of characters, and approaching this from a writer's perspective. How can you build a character from physical detail and style choices such as clothing and accessories? We rewrite the passage looking at each of these details, and end with a checkpoint piece.
Lesson type
Detailed practice
Genre / Topic
Comedy, Mystery, Action, Adventure


text:
June 1, 2011
Algal Turf Scrubbers Clean Water With Sunlight
Science Codex, Science Codex
An article published in the June issue of BioScience describes the early scale-up stage of a new biotechnology with environmental benefits and possible commercial potential. Algal turf scrubbers are field-sized, water-treatment systems that can extract excess nutrients from streams, canals, and lakes polluted by agricultural, domestic, and some industrial runoff. They use sunlight as their principal source of energy and simultaneously restore oxygen levels. The devices work by pulsing contaminated water across algae that are allowed to grow on screens. Algal turf scrubbers produce waste suitable for use as a nitrogenand phosphorus-rich fertilizer and for conversion to biofuel or high-value nutraceuticals. Some algal turf scrubbers can even operate in open water, thus...
TAGGED: water treatment, water, pollution, algae


text:
The pain of complaining
The pain of complaining [ 260 kb] - Citizens Advice ICAS evidence to the NHS complaints procedure
Summary and recommendations
1.1 Central to the Government's NHS reforms is a radical vision of a patient-focussed health service, designed around the needs of the patients rather than the service providers. Reform of the NHS complaints procedure has been a key part of this process.
1.2 The Department of Health has described its vision for the NHS complaints procedure in terms of four principles:
- open and easy to access – flexible about the ways people can complain and with effective support for people wishing to do so
- fair and independent – emphasising early resolution in order to minimise strain and distress for all involved
- responsive – providing appropriate and proportionate response and redress
- providing an opportunity for learning and developing – ensuring complaints are viewed as a positive opportunity to learn from patients' views in order to drive continual improvement in services.
1.3 In order to deliver this vision, changes have been made to the complaints procedure and new structures put in place, which are intended to make the system more independent, more responsive and easier to access. These have included:
- from September 2003 the provision of a statutory service – the Independent Complaints Advocacy Service (ICAS) - to support people wishing to make a complaint and
- from July 2004 the transfer of responsibility for the Independent Review stage of the complaints process to the Healthcare Commission.
1.4 In addition a Patients Advice and Liaison Service (PALS) has been put in place in every Trust, to provide information and on the spot help where patients want to resolve a problem without making a formal complaint.
1.5 Citizens Advice is contracted to deliver ICAS in six of the nine Regional Government areas in England, building on its existing network of CAB outlets in local communities. People are able to access specialist ICAS support either via a referral from a CAB or by dialling an 0845 telephone number.
1.6 Further changes to the complaints procedure are anticipated, in order to respond to the outcomes of the Shipman Inquiry. In addition, in March 2005, the Health Service Ombudsman published a report highlighting continued weaknesses in the complaints system and making a number of recommendations for change.
1.7 The CAB service, with its active involvement in delivering ICAS as well as its wider advice role in health settings, is well placed to contribute to this area of policy development. The evidence from ICAS bureaux provides insight into how the complaints procedure is working for patients. In the course of their work advisers see examples of both good and bad complaints practice, and patients who are both satisfied and dissatisfied with their experience of using the process.
1.8 The vast majority of people who use the health service do not expect or need to complain about the treatment they receive. However, when they do, it is often in the context of highly distressing circumstances which may have long term consequences for their health and well being, or resulted in the death of a loved one. In such circumstances it is crucial that people's experience of using the complaints system is positive rather than painful.
1.9 This report uses evidence from CAB ICAS work to examine the extent to which the four principles outlined above are being delivered in practice.
1.10 The overall picture is of significant variation in the extent to which Trusts have embraced these principles. A key finding which runs throughout the CAB ICAS evidence is that where the complaints procedure works well, it can be a powerful force for making things better, both at the level of the individual complainant and also for the wider NHS. Patients are satisfied, complaints are settled at an early stage, litigation becomes less likely, and changes are put in place which benefit the service as a whole and make a similar complaint less likely.
1.11 On the other hand, where the complainant faces barriers in terms of access, delays, a lack of transparency or defensive attitudes, then this experience simply makes matters worse. It increases the person's frustration and distress, and the likelihood that s/he will decide to pursue the claim through the legal system, at significantly greater cost to the public purse.
1.12 This report has detailed how patients can face:
- difficulties in finding out how to access the complaints system, because of a reluctance by Trusts to advertise the procedure and support services available through ICAS
- lengthy delays at every stage of the process, as both Trusts and the Healthcare Commission fail to deal with complaints within their targets
- a culture which is defensive rather than responsive, failing to provide complainants with explanations of what went wrong, or apologies when mistakes have been made.
1.13 The result is that lessons are not learned, much needed changes are not put in place and many people are far from experiencing a patient-centred complaints system.
1.14 The report makes a number of recommendations aimed at addressing the problems it has identified.
1.15 We recommend that the Department of Health should set a national framework for complaints handling in order to reduce the current wide variation in practice. The framework should include core standards to ensure that complainants experience a similar service regardless of where they live, or what organisation they are complaining about. The core standards must ensure that there is clarity of expectation on both sides regarding the content of the process, timescales for the various stages, and the nature of the outcome.
1.16 We recommend that ensuring compliance with these standards is a priority for the Healthcare Commission through its regulatory functions.
1.17 We recommendthat the Healthcare Commission should develop best practice guidance in complaint handling. Patients and their representatives, including ICAS providers, must be actively involved in this process to ensure that it delivers a genuinely patient-focused service. In addition the engagement of professional bodies will be crucial if the existing culture of avoidance and defensiveness is to be overcome.
1.18 We recommend that in relation to primary care, patients should be able to make their complaints direct to the Primary Care Trust (PCT), which should also play a central role in managing and monitoring the local resolution stage of the complaints process. Such a reform would help overcome patients' reluctance to make a complaint against their local health practitioner, for fear that this will have an impact on their ongoing care. It should also mean that resources and expertise in complaints handling can be pooled, thus raising standards of local resolution.
1.19 We recommend that there should be a single portal by which complaints or concerns can be directed to the appropriate quarter. We consider this should be a national service, delivered by a body which is transparently independent of all health service providers who may be the subject of a complaint. The portal should also provide information about the advice services available, including PALS and ICAS, and should help to ensure patients are clear about the respective roles of these services and the referral protocol.
1.20 We recommendthat the current 20 day target for completing the local resolution stage should be reviewed to ensure that it encourages both a quality and a timely response by the Trust. We propose that, in order to ensure Trusts face no disincentive to arranging meetings where appropriate within the period, the target should be extended to 30 days. At the end of the period, patients should be sent a full 'signing off' letter, which clearly signals to the complainant that the local resolution process has reached its conclusion. To provide for exceptional cases where the 30 day timescale is insufficient, there should be a specific rider enabling Trusts to exceed the time limit, in which case they must write to the complainant giving reasons and a clear deadline by which a full response will be given.
1.21 We recommendthat consideration should be given to creating incentives for Trusts not to delay responding to requests from the Healthcare Commission for additional information and documents in order to pursue their investigation. Options could include the Healthcare Commission taking the delay into account in its considerations, compensation for complainants, or requirements to take remedial action.
1.22 Adequate resources to deliver a quality and timely service must be provided if the Healthcare Commission is to maintain its credibility as a monitoring organisation. There is also a need for the Healthcare Commission to develop strategies to ensure that it can meet its six months target.
Learning from complaints
1.23 We recommendthat Trusts develop mechanisms to obtain feedback from patients who have experienced their complaints handling process. Patients' views on complaints handling should be included in patient satisfaction surveys. In addition, local authority Overview and Scrutiny Committees (OSCs) and Patient and Public Involvement (PPI) Forums, should monitor views from patients and advice providers, such as ICAS, regarding the quality of local complaints handling.
1.24 We recommend that a protocol should be set up so that all NHS Trusts and PCTs send copies of their complaints and PALS reports to the PPI Forums and to the local authority OSCs which are responsible for scrutinising their work.
1.25 We recommend that PPI Forums and OSCs should be kept informed of any outcomes from complaints which involve undertakings by Trusts to implement changes, so that they can check that these are put into effect. PPI Forums and OSCs should inform the Healthcare Commission when they have concerns that Trusts have not acted on undertakings that they have made.
1.26 We recommend that guidance and protocols are developed as a matter of urgency regarding reporting arrangements about trends in adverse incidents between ICAS, PPI Forums and OSCSs. This must be done in a way that does not compromise patient confidentiality. It is crucial that such developments are not delayed as a result of the reorganisation of functions from the proposed abolition of the Commission for Patient and Public Involvement in Health (CPPIH).


text:
Emilie and the Hollow World
Strange Chemistry, an imprint of Angry Robot Books
Format: Large Paperback
Format: Medium Paperback
Format: Epub & Mobi
R.R.P.: £5.49 / $6.99
Once upon a time there was a form of popular fiction in which a band of intrepid explorers ventured into new and uncharted lands. Often their adventures were of a somewhat fantastic nature, involving lost worlds and forgotten civilizations, the Professor Challenger novels by Sir Arthur Conan Doyle being a prime example of this type of fiction. Since much of it was written during Victorian times, the subgenre tends to have a Victorian and/or British Empire feel to it. For whatever reasons, the arbiters of taste and sophistication considered these adventures to be essentially for boys.
This subgenre has fallen from the heights of popularity it once enjoyed. The reasons for this are beyond the scope of this review. What is within the scope of the review is that Martha Wells has come along, dusted off the subgenre, given it a heroine to broaden its appeal beyond just boys, and shown us all how it's done. Continue reading


text:
Given an equilateral triangle with sides of length x, we start an iterative process of trisecting its sides and building other – smaller – equilateral triangle on top of the middle part of these trisected sides. These added smaller triangles are then treated in the same fashion: its sides are trisected and smaller equilateral triangles are built on top of the middle part of the trisected sides. See the picture below for an example. From left to right we've sketched the basic triangle and the results after the first and second execution of the iterative process.
a) Denote the perimeter of the resulting figure after the N-th step of the process described above by P(N). Express P(N) in terms of P(N-1) for N > 0. Note that P(0) = 3x.
b) Use your answer to a) to calculate what happens if you execute the process infinitely many times. Does it converge to a finite value? If yes, calculate this value. If not, explain why not.
If |a|< 1 holds then you may use the following formula


text:
Most of Arizona has experienced low levels of recorded seismicity, but a comprehensive analyses of seismic activity revealed that nearly 1,000 earthquakes have rattled the stated over the past three years.
Researchers at ASU's School of Earth and Science Exploration used new seismic data collected as part of the EarthScope project to develop methods to detect and locate small magnitude earthquakes across the entire state.
EarthScope's USArray Transportable Array was deployed in Arizona and provided the first opportunity to examine seismicity on a statewide scale. Its increased sensitivity allowed researchers to find almost 1,000 earthquakes during a three-year period, including many in regions of Arizona that were previously thought to be seismically inactive.
One-thousand earthquakes over three years may sound alarmingly high, but ninety-one percent of the quakes detected were "microquakes" with a magnitude of 2.0 or smaller. These quakes are typically not felt by humans.
The largest earthquakes and the majority of seismic activity recorded in Arizona have been located in the north-central portion of Arizona. Recently, a pair of magnitude 4.9 and 5.3 earthquakes occurred in the Cataract Creek area outside of Flagstaff. Earthquakes of magnitude 4.0 or larger also have occurred in other areas of the state, including a magnitude 4.2 earthquake in December 2003 in eastern Arizona and a magnitude 4.9 earthquake near Chino Valley in 1976.
The results of the study appear in a paper titled, "Seismicity within Arizona during the Deployment of the EarthScope USArray Transportable Array," published in the August 2012 issue of the Bulletin of the Seismological Society of America.


Provision, Sowing and Reaping
Receive, Save and Invest
The context of this verse is that Judah, at that time King Hezekiah, was surrounded by the Assyrians. Just imagine being surrounded by a vast army, running out of food and water, low in morale. Feels like covid? I think it was easily 100 times worse!
But check out the promise in the midst of that dark time. That you will eat "what grows of itself". Meaning there will be divine provision.
But notice what happens in the 2nd and 3rd years.
In the 2nd year, they eat what springs from the same. Meaning, there will be some surplus, perhaps not intentionally sown (or saved and invested) because there isn't much left over. Perhaps it was seeds dropped during harvest. The focus is still provision.
In the 3rd year, they are supposed to eat what is sown. Meaning, whilst there is room for provision, at some point, they are supposed to set aside some of the harvest, and start sowing and reaping.
In the initial stages, it is ok to depend on some provisions. But at some point, you will need to start getting disciplined, save and invest the surplus. And at the same time depend on the Lord for the harvest.
Take small steps, but start.


Pages Blog
Formulation and Cooking Process
Q: Is the food formulated by a veterinary nutritionist and does the company employ a nutritionist? How do you make sure you provide pets with all the nutrients they need during their different life stages?
A: Freshpet has a nutrition panel and employs qualified individuals with strong technical abilities in the nutrition and food science industry which also includes one of our team members in the research and development department who has a degree in Veterinary Medicine and a Ph.D. in Applied Biochemistry and Food Science.
Q: Do you perform nutritional feeding studies to confirm the acceptability, digestibility and nutritional performance of the product?
A: Freshpet conducts AAFCO (Association of American Feed Control Officials) feeding trials to confirm the nutritional adequacy of our products. We also conduct regular palatability testing to make sure that our products are delicious as well as nutritious.
Q: Is the food raw or cooked? And how do you ensure your product does not contain harmful bacteria, such as salmonella?
A: Freshpet products are gently cooked with temperatures exceeding pastuerization. Micro swabs and pre-operational inspections of our equipment and work areas are carried out by qualified individuals to ensure cleanliness and sanitation prior to startup and cooking of our batches. In-house and 3rd party micro labs are used for pathogen (i.e. Salmonella) and non-pathogen testing. The micro testing is extensive for food, food contact areas, and the plant environment.
Product is subject to numerous documented quality checks and is reviewed by management prior to product being released for shipment. These checks include but are not limited to: analytical testing including moisture, protein, fat, and pH, organoleptic evaluations, visual inspections, modified atmosphere testing, and seal integrity on our pouches and film.
Additionally, pre-requisite programs for pest control, foreign material control, and environmental monitoring have been established to ensure the integrity of our products from start to finish.


"Form (ever) follows function" is a principle that was coined by the American architect Louis Sullivan. The phrase has been associated with modern architecture and industrial design in the 20th century. The idea of the principle is that the shape or structure of an object is primarily based upon the objects function or purpose. The way something looks should be determined by its function; its form should always have a purpose.
A good example that follows this principle is the Guggenheim Museum in New York City. The building was designed by architect Frank Lloyd Wright, also Sullivan's assistant. It's spiral structure was intended to allow visitors to easily view the artwork within the museum. The spiral staircase creates a good flow of traffic.
boxworks15-140An example that can relate to exhibit design is a hanging box banner. The image to the right is a hanging banner from Box Works 2015. It in the shape of a cube so that the sign can be seen and read from multiple angles. If it were 2-dimensional then the banner would only be read from 2 angles.
Sometimes there instances where the principle is not followed. An object's form can be purely just for aesthetics and looks; it's form can be more important than its function. If there's no significant function, then design can rely mainly on form. Below is an exhibit designed for Bombardier. The angular overhang is in the shape of a kite or can represent the wings of an airplane. It's form is more significant to its function because no matter its shape, it will still have the same function.
Louis Sullivan


Comforting Shiitake Mushroom Soup
Recipe From Reader Jen
When you're too busy to whip up a complicated meal or if your pantry runs out of the essentials, a warm bowl of soup never fails. There are numerous ways to prepare soups, and you can use almost any ingredient on hand. Got fresh shiitakes? Then you must try this quick and easy shiitake mushroom soup recipe by reader Jen.
Packed with nutrients that may help boost your immunity, shiitakes give this soup an earthy flavor that can easily be paired with side dishes or main meals. Even your leftover chicken or turkey will be put to good use as you remake it as a broth for a meaty taste.
Shiitake Mushroom Soup
Prep time: 3 minutes Cook time: 10 to 15 minutes Serving Size: 3 cups
 1. Heat oil and butter in a medium stockpot over medium to high heat.
 2. Add onions, carrots and garlic.
 3. Sauté until onions become translucent and the carrots soften.
 4. Add shiitakes and continue to sauté until mushrooms release their juices and the mixture becomes watery.
 5. Add broth and bring to a low simmer for 10 to 15 minutes.
 6. Once the soup has simmered, use an immersion blender or stand blender to puree the soup until no lumps remain. Add salt to taste.
 7. Serve piping hot with desired garnishes.
Help Boost Your Immunity With Shiitake Mushrooms
Shiitake mushrooms (Lentinus edodes) are one of the most commonly consumed mushrooms in the world, accounting for 17 percent of global mushroom consumption.1 Shiitakes deliver various health benefits, including an immunity boost when regularly consumed. In a 2011 study, participants who consumed shiitake mushrooms for four weeks were found to demonstrate improvements in their gamma delta T-cells and inflammatory proteins, which not only boosted their immune system, but also lessened their risk of inflammation.2
A 2015 study also found that they help improve cell production and increase secretory immunoglobulin A (sIgA) production, which may lead to a better and more stable gut immunity.3 Shiitake mushrooms may also help improve your immune system and quality of life as you undergo chemotherapy.4
Additionally, extracts of these fungi contain carbohydrates, protein, phenolic compounds and lignin digest that aid in numerous physiological activities.5 They were found to exhibit antioxidant activity that may help fight against various human diseases6 and alleviate paracetamol-induced liver damage.7 Some of the nutrients found in shiitake mushrooms are:8
When buying mushrooms, choose those that have been organically grown without pesticides, as they absorb and concentrate whatever they grow in, for better or worse. Mushrooms are known to concentrate heavy metals and other pollutants, so organic, pesticide-free growing conditions are important.
If your area's weather conditions permit, you may also grow your own mushrooms to be sure of their safety and freshness. If you keep them as a staple, dried shiitakes may also be an alternative to fresh mushrooms, which may give the soup a deeper flavor. Soak them in hot or boiling water, wait for at least 20 minutes and then gently squeeze out the excess water.9
Whether store-bought or harvested from your garden, unused mushrooms must be placed inside a loosely closed paper bag and refrigerated as soon as possible. Also, remember that they will dry out and lose weight when stored for a long time, so it's best to consume them when they're fresh.10
Why You Should Use Organic Free-Range Chicken or Turkey Broth
Aside from their nutritional benefits, free-range poultry like chicken and turkey can add a rich flavor to dishes even if only their leftover bones, meat and drippings are used. Turkey boasts a number of nutrients including protein, calcium, phosphorus, niacin, vitamin A and vitamin D.11
The gelatin found in the cartilages and bones of turkey may help minimize the effects of osteoarthritis and osteoporosis, as found by a 2000 study. It is generally safe to consume, making it an effective agent for long-term consumption.12 Glycine, an amino acid found in gelatin,13 was also found to have a calming effect that may help you sleep.14
On the other hand, organic chicken contains a higher amount of omega-3 fatty acids15 and is less likely to cause illnesses compared to factory farmed chickens, which can harbor dangerous pathogens like enterococcus, E. coli, campylobacter, klebsiella pneumonia and staphylococcus aureus.16 Instead of buying, you can also make homemade turkey broth, which I highly recommend. You will be able to maximize the benefits mentioned if you use organic turkey or chicken that has the American Grassfed Association's grass fed label.
This ensures that the poultry you purchased went through a healthy and humane treatment, is raised on pasture and fed only grass and forage, meets consumer expectations on grass fed products, is not treated with antibiotics or growth hormones, and is raised on American family farms.17 Organic free-range poultry may also be tastier because of the natural food sources.18
7 Shiitake Mushroom Soup Cooking Tips
Cooking soups may require various techniques depending on your ingredients, but for this mushroom soup recipe, here are a few tricks to make it the best possible:
 - Instead of using regular table salt that is processed and may contain additives, season your dishes with Himalayan salt. It contains naturally occurring trace minerals that are essential for healthy bones, fluid balance and overall health. Because Himalayan salt usually has larger crystals and is saltier, you may use smaller amounts to achieve your desired taste.19
 - To soften carrots, boil them whole with their skins intact to retain most of their nutrients. Chop or slice them once they're cooked.20
 - Choose organic onions instead of the conventionally grown ones because their flavonoid levels and antioxidant activity are higher.21
 - Crush the garlic and wait five to 10 minutes before cooking to delay the loss of its antiplatelet activity.22
 - Dr. Steven Gundry, author of "The Plant Paradox: The Hidden Dangers in 'Healthy' Foods That Cause Disease and Weight Gain," recommends using MCT oil instead of coconut oil if you have a leaky gut to avoid complications due to coconut oil's lauric acid content.
 - If grass fed butter is unavailable or if you are lactose intolerant, you may use organic and grass fed ghee or clarified butter, which is just as healthy and flavorful.
 - To avoid the absorption of excess water, rinse mushrooms before slicing them, and then pat them dry using a paper towel. Do these right before cooking them.23
Sources and References


text:
What are people who read tea leaves called? Taylor's profession is formally known as tasseography or tasseomancy — terms derived from the French tasse, for cup, and the Greek suffix graph, for writing, or mancy, for divination. Practitioners look for insights by examining the patterns created by loose tea leaves left over after a cup has been drained.
What is the origin of reading tea leaves? Tea leaf reading, also known as tasseography, is said to have origins in Asia, the Middle East, and Ancient Greece, with Middle Eastern cultures typically using coffee. However, modern tea leaf reading began in the 17th century, when tea was introduced from China to Europe.
Is tea a reading divination? History of Tea Leaf Reading
Tea leaf reading is a special type of divination (fortune-telling) that involves interpreting the patterns of leftover tea leaves in a cup of tea. Tea leaf readers look for special symbols and shapes in these tea leaves, and use them to make predictions.
What does the phrase read the tea leaves mean? DEFINITIONS1. to look at the tea leaves in the bottom of a cup for a sign of what will happen in the future. Synonyms and related words. To use, or to be affected by magical or supernatural powers.


text:
Assignment 2: LASA: Victim Population Analysis
Working with the population for which you were approved in formulating the bibliography in Module 1, follow the general guidelines for your Victim Population Analysis paper outlined below.
Read the research literature related to your chosen victim population. Consider the specific aspects that you will cover in your final paper (i.e., trauma, demographics, interaction with criminal justice system, victimsâ€™ rights, assessment, evaluation, and treatment). Using the research literature and specifically empirical studies, write a 12-page paper addressing the following:
- Describe the theoretical and empirical knowledge about psychological trauma and the impact of victimization within this population.
- Identify and evaluate commonalities and differences in demographic variables and psychological profiles between subtypes of victims that may present in this population.
- Compare and contrast empirical research findings related to the assessment and evaluation of victims in this population.
- Compare and contrast empirical research findings related to treatment for victims in this population.
- Define and analyze the role and impact of the criminal justice system on victims within this population.
- Define and analyze the role and impact of past and current legal rights on victims within this population.
- Cite the references appropriately.
Your paper should rely upon scholarly resources from the professional literature. The literature may include the Argosy University online library resources, relevant textbooks, peer-reviewed journal articles, and websites created by professional organizations, agencies, or institutions (.edu,.org, and.gov).
All written assignments and responses should follow APA rules for attributing sources.
- By Monday, January 9, 2017, save your paper as M5_A2_Lastname_Firstname.doc and submit it to the M5 Assignment 2 LASA Dropbox.
LASA is worth 300 points.


text:
X-rays scatter from crystalline materials in such a way to produce a unique X-ray Diffraction Pattern. By extracting the peak positions and intensities from this pattern, we can identify and quantify the amount of each phase present in the test sample. To aid in this endeavor, many advanced analytical techniques, such as Rietveld refinement have been developed to improve the accuracy.
Several hundred thousand materials have been cataloged in various diffraction databases allowing us to identify both inorganic and organic substances.
Among the common uses of this technology are:
- Identification and quantification of multi-phase materials
- Detection of pharmaceutical polymorphs
- Analysis of cement and clinker phases
- Identification of precipitates in metallic alloys
- Analysis of corrosion products
- Reverse engineering of competitor's products
- Detection of trace impurities down to 0.1 weight percent
- Identification of silica forms in work environment such as respirable quartz
- Analysis of erionite and asbestos in mineral deposits
- Soil analysis
- Verification of process streams
- Use in quality control and validation such as Hydroxyapetite
- Identification of catalyst phases
- Forensic matching of investigative materials
There are many different and unique material structures in existence. For certain applications it is necessary to know how much of a material is in a glassy state or amorphous and how much is a defined crystal. Amorphous materials have a random network and are not structured in a 3D state, while crystal structures and bonds are well defined and easily found using XRD.
Many materials, especially polymers, tend to form both crystalline and amorphous forms. Each structure produces a unique diffraction pattern that enables us to determine the relative amounts of each phase. Amorphous phases produce one or more broad humps in the diffraction pattern, while crystalline materials produce a series of sharper peaks superimposed on the amorphous humps. Knowing the total amount of each of these phases are very important in the following areas:
- Studies of polymers & pharmaceuticals
- Conversion of pharmaceutical polymorphs
- Glass content in ceramics
- Analysis of clay & minerals
- Rapidly solidified metallic glasses
- Analysis of ashed samples
- Devitrification of glass
The determination of stresses within a material can be extremely important to prevent poor performance and eventual failure. Residual stresses are known to influence the mechanical properties of a material and this can effect the time of failure due to fatigue. XRD can measure the lattice strain and determine the amount of stress that exists by applying the appropriate materials constants.
One technique for measuring residual stress is the sin² ψ method, which is used to measure stress in fine-grained polycrystalline materials. The method relies on the measurable shift of a high-angle diffraction peak as the sample is rotated through a tilt angle ψ. Variations of the method also allow us to determine the principal stresses and the presence of shear stresses.
Among the many applications for this method are:
- Axles, wheels, bolts, clamps, etc.
- Cemented carbides
- Ground/machined surfaces
- Heat treated metals
- Plated surfaces and thin films
- Shrink fitted components
- Tube surfaces
- Fasteners and springs
The production of carbon steel is a common practice. Materials have different phases based on how they are formed and within carbon based steels, Austenite is one that is very stable at very high temperatures. After the steel is quenched much of the material transforms from Austenite to Martensite, but based on the quenching conditions some can be retained within the material. This can lead to mechanical properties that are sub-optimal that decreases the fracture toughness and/or fatigue. In applications that require high strength the total amount of Austinite must be quantified and controlled.
XRD provides is the characterization technique of choice for this type of specific testing, especially when the total concentration of Austenite is less than 15%. Standard techniques and protocols exist that produce results down to 0.5% or less. When there are additional carbide phases in the steel, this is reduced to 1%, which is still enough accuracy to determine the chances of failure. The main applications of this technique are as follows:
- Quality control
- Optimization of heat treating process
- Avoiding grinding burn and shot-peening damage
- Control premature failure
- Dimensional control
- Suppression of crack growth during spalling
Rocking Curves are used to determine defects and in-homogeneity's in single crystals and thin films. In lattice matched thin films, rocking curves can be used to study the film thickness, strain profiles, lattice mismatch and even relaxation. By fixing the detector at the center of the expected Bragg reflection and following the diffracted intensity as the sample is independently rotated (or "rocked"), one can gain valuable information. The full width at half maximum intensity (FWHM) is related to the dislocation density in the film and to the curvature of the sample. High Resolution variations of the method also allow us to determine misfit strain, the periodicity in artificial super-lattices, the quality of the inter-facial region, layer thickness, composition, and degree of mosaicity.
Rocking Curves can also be used to study polycrystalline materials. Key characteristic information that can be obtained are the particle or grain size and the degree of deformation in ductile materials.
Preferred orientation occurs when there is a stronger tendency for the majority of crystallites in a powder or texture to be oriented in the same direction than all others. A classic example of this is when a metal is rolled in order to form a sheet. This creates a preferred orientation within the structure. In most cases, this will lead to anisotropic distribution of properties such as modulus, strength, ductility, toughness, electrical conductivity, thermal expansion, etc. Therefore, it is important to monitor and quantify changes in the texture.
X-ray diffraction is an ideal tool to examine preferred orientation. In a conventional θ/2θ coupled scan, preferred orientation will cause a change in the intensity distribution. Such changes can be quantified with the Texture Coefficient, which compares the oriented sample to the ideal unoriented sample. A more complete picture of the orientation is obtained by the use of Pole Figures and Orientation Distribution Functions.
Among the many uses of Texture Analysis are:
- Properties in thin films
- Surface coatings
- Optimizing growth conditions
- Formation of epitaxial layers
- Surface and bulk deformation
Particle Size Analysis
Using XRD is another tool to determine the particle size within a specimen. The particle sizes analysis is performed by measuring the broadening of a specific X-ray diffraction peak within the crystal unit cell. By examining the full width at half maximum (FWHM) the size can be calculated. In general, the width of the peak is inversely related to the particles size, so as the peak becomes more narrow, the particle size increases.
In the Simplest case where the domains are stress free, the size can be estimated from a single diffraction peak. But in those cases where stress may be present, a more robust method is required such as the Warren-Averbach or Rietveld methods that utilize several diffraction peaks.
Among the many uses of this method are:
- Catalyst size analysis
- Studies of precipitation processes
- Nanoscale composites
- Phase transformation kinetics
- Fibers and composites
- Quality control
- Forensic analysis
Thin Film Analysis
Thin film analysis is not a specific test that is performed but rather a group of X-ray diffraction methods that are used in epitaxial and polycrystalline thin films and substrates. Semiconductor materials are most prevalent, but other materials can be analyzed as well. Using the precision lattice parameter measurement methods, the lattice mismatch of an epitaxial layer can be determined very precisely. Many other types of tests can be performed on thin films including the following:
- Orientation of an epitaxial film
- Crystallite size and micro-strain
- Rocking curves
Lattice parameters refer to the physical dimensions of unit cells in a crystal structure. In general, lattices are consisted of 3 dimensions and contain 3 lattice constants (a, b, & c) to go along with the 3 angles between them (α, β, γ). These parameters are defined for specific materials at known conditions, such as temperature and pressures. This information is useful as it can characterize the material in question can provide the user with additional information such as the thermal properties, measure of the strain state or analysis of defect structures if the lattice constants and angles differ from known values. The lattice constants are measured at the Angstrom level, so increased accuracy of the measurement is needed. X-ray diffraction permits for this level of accuracy and can achieve accuracy to several significant digits at the Angstrom level.
Two common methods are in use to compute the lattice parameters. If crystallographic information about the crystal structure is incomplete, then a least squares method is commonly used. This method takes into account the systematic errors caused by misalignment and sample placement. If more complete information is known about the crystal structure, then a Rietveld refinement is commonly used. This method is a whole pattern fitting procedure utilizing all of the diffraction peaks and their shapes.
Among the common uses of precision lattice parameters are:
- Material synthesis
- Analysis of solid solutions
- Thermal expansion
- Strain/stress determination
- Misfit strains
- Zeolite framework composition
Corrosion Product Identification
In everyday life there are examples of corrosion of metals that are seen. Metal based equipment such as pipes and screws are exposed to the atmosphere and the corrosion can be seen physically. In


(GNU) Make
Page Contents
References / useful Links
Makefile Basics
A Makefile describes how your program is built by specifying everything that it depends on and building the dependencies first. A Makefile rule looks like this:
target_1... target_n: prerequisite_1... prerequisite_m
 command_1 # NOTE that each command
 ... # is executed in its own
 command_j # subshell.
 - Target is anything the must be made.
 - Prerequisite are things that must be built before the target can be built.
 - Commands are shell commands used to build the target. NOTE, each command executed in own subshell!
 - Rule is what's shown above - it defines how to build a target.
To perform a build, make will construct a directed acyclic graph (DAG) from the rules. It will then do a post order traversal (visit children first), building the leaf nodes first and going back up the graph.
A very simple example is shown below:
A Makefile DAG diagram
The makefile for the above diagram would look something like this:
target: prequisite_1 prequisite_1 prequisite_1
 commands_A
prequisite_1: prequisite_4
 commands_B
prequisite_2: prequisite_5
 commands_C
prequisite_3: prequisite_5 prequisite_7
 commands_D
 commands_E
prequisite_5: prequisite_6
 commands_F
 commands_G
 commands_H
The post-order traversal is shown by the orange-background numbers.
 1. Make looks at target and visits the first child, prerequisit_1. It can see that prerequisit_1 depends on prerequisit_4. So now, prerequisit_1 becomes the "target". If make determines that prerequisit_1 is newer than prerequisit_4, it will build prerequisit_4. We assume that it does and builds prerequisit_4 using commands_E.
 2. Once prerequisit_4 is built, all of prerequisit_1's dependencies have been visited so prerequisit_1 can now be built using commands_B.
 3. Make returns back to target and examines the next dependency, prerequisit_2. Assuming prerequisit_5 is older than prerequisit_2, and prerequisit_6 is older than prerequisit_5, the post-order traversal will result in make next trying to build prerequisit_6 using commands_F.
 4. All of prerequisit_5's dependencies have been built so make can now build prerequisit_5 using commands_F.
 5. All of prerequisit_2's dependencies have been built so make can now build prerequisit_2 using commands_C.
 6. Make returns back to target and examines the next dependency prerequisit_3. There are two dependencies, prerequisit_5 and prerequisit_7. Make has already built prerequisit_5 so it knows that it does not need to build this again, so it ignores this path... nice! Thus all that is left is to look at prerequisit_7, assuming it is older than prerequisit_3. Assume it is, so make builds it.
 7. All of prerequisit_3's dependencies have been built so it can now be built.
 8. Make returns back to target and because all of its dependencies have been built, it can finally be built.
By doing this kind of traversal make ensures that everything that is need to be built is built, but not more than this. I.e., if some dependencies do not need to be refreshed, they are not rebuilt, helping to produce an efficient build. It is also the case that targets that are as new as all of their dependencies are not rebuilt.
The basic make process can be described like this:
 - Make finds files indicated by the targets and prerequisites.
 - If a prerequisite has a rule associated with it (i.e., make is looking at the rule target: prerequisite and the rule prerequisite: dependencies exists), make will try to update the prerequisite first.
 - When considering a target, if any prerequisite is newer than the target, make will attempt to make the prequisite(s) first.
PHONY targets
A special type of target is a.PHONY target, which is always out of date and thus always rebuilt.
How Make Locates Source Files: VPATH & vpath
When a rule references a file without a path Make looks in the current working directory.
Few projects are housed in a single directory. One solution is to use VPATH to instruct Make to look in other directories for files.
VPATH = dir1 dir2 dir3...
This works for source files, i.e. *.c, *.cpp etc but not includes. For those modifdy CPPFLAGS. Only targets and dependencies are searched using VPATH. Paths in commands are not!
Beware of same-named files in different directories. Make just uses the first one it sees, so this can cause problems!
The VPATH special variable is course-grained. It applies to all files. To be more specific use vpath:
vpath pattern dir-list
For example, to search for C files only under the src directory and headers only under the include directory one could write the following:
vpath %.h include
vpath %.c src
Make Phases
Make does its work in two phases:
 1. Reads Makefile and all included makefiles. Load vars and rules into internal DB. Simple-expanded vars expanded. Create DAG.
 2. Analyse DAG, recursively-expanded vars expanded, determined targets to update, update include targets first and possibly restart, then execute commands for all other rules.
Makefile Automatic Variables
This is just a summary of some of the more commonly used automatic variables. You can find a complete list here. The automatic variables do not have very user-friendly names so I have a few memory pegs I try to use to recall what they all mean...
Variable Meaning
$@ The file name of the target of the rule. Remember a rule looks like target: prerequisites. I like to remember this by thinking of the @ symbol as looking like a dart board or some kind of target. If the rule has multiple target $@ refers to whatever target caused the rule to be run.
$< The name of the first prerequisite. Memory peg: The chevron looks like it "points" to a target, so think prerequisite.
$? The names of all the prerequisites that are newer than the target. Memory peg: It's a question... what prerequisite is newer?
$^ The names of all the prerequisites (duplicated removed). Memory peg: it's pointing up, so all of the above prerequisite.
Makefile Pattern Rules
In the example makefile in the introduction section, each target was explicitly written down. This would be fine for a small project, but if you have more than a few source files, listing each one independently will soon get tedious and error prone. Most of the time we just want to say "and object file is generated from a c/c++ source file with the same file base name". And luckily we can... to say this we would write something like the following.
%.o: %.cpp
 ...Commands...
my-target: fileA.o fileB.o... fileZ.o
In the above example, Make knows that to build my-target it must build the object files fileA.o through fileZ.o. So, how does it construct these objects? It looks through all of the rules it has encountered so far and tries to match each file?.o with a target. It finds %.o, where % is a wild card. The % matches the portion file? of the prerequisite (this portion is called the stem), so Make can use this rule to construct the object file.
Lets take fileA.o as an example. Make will search for the file. If the file is as new or newer than the target it knows that this prerequisite does not need to be rebuilt. However, if it does, Make searches for a rule that will tell it how to build the prerequisite.
Make finds the rule %.o: %.c; commands: fileA.o matches %.o, where the % matches fileA. The prerequisite for this rule specified %.c, which substituting in the match will become fileA.c. As long as fileA.c is just a file and not generated by some other tool, Make will find no rule to create this file, so if the file doesn't exist, then Make reports an error, otherwise it will rebuild fileA.c if it is newer than the target fileA.o.
If two or more rules match Make will prefer more specific rules over more generic ones.
Limiting Scope Of Pattern Rules
To limit the scope of a pattern rule that includes wild cards to a set of files use the following:
$(OBJECTS) : %.o : %.c
In the above the %.o will only match object filesnames in the variable OBJECTSand thus the pre-requisites will only match the corresponding objects from OBJECTS.
Implicit Rules
Make includes a set of default rules for commonly required types of dependencies. For example, you will generally not need to tell make how to compile a C or C++ program as its default rule database already has this information.
See the default rule database by typing (you can ommit the pipe to vim if


text:
A kite messenger is a device that allows you to "message" your kite. Its like this. Say you want to send your GI JOE a parachuting from much higher up than you can throw. We can use a Kite Messenger. I first say these in 6th grade science lab (We had our own Bill Nye). His had wings that folded up when it reached a stopper close to his kite. He would attach a small object with tassels on it, ferry it up to the kite, when it hit the stopper, it released the object, folded up its wings, and rolled back down. As soon as it began to drop, we would all speed off across the school yard to be the one to catch it. I've seen people doing stuffed animals, candy, really anything you like.
Here Contains highly related information among other information. Originally its in dutch, but hopefully the link will translate it for you. Parachutes aren't as good at lifting as a messenger kite. So, keep the parachute big, and the load light.
For this project i used the side of a cardboard box (you need 8" x 9", with the corrugation of the cardboard running along the 8" length)
~2 feet of stiff wire (I had some stiff wire, bailing wire type, but a coat hanger will also work)
Glue suitable for cardboard (Which means just about anything it seems.)
Needle Nose pliers
Step 1: Cut Your Cardboard Framework
You need 2 of the grey picture
and 1 of the white picture.
Step 2: Make the Wire Mechanism
Make the wire mechanism. Leave about an inch of extra wire on the "top" ends of this picture to form a loop with that will act as the attachment onto the kite string.
Step 3: Put It All Together
When its all lined up, glue the middle layer cardboard pieces to the bottom layer.
Before gluing in the last layer, check that the mechanism slides freely, then proceed to glue.
Note: I am using Wood glue instead of paper glue. It doesnt really matter. As long as it workd on cardboard, use what you got.)
(I apologize, the photographs are upside down)


Don't Start a Sentence if You Don't Know How It Ends
If you find you stick your foot in your mouth more often than not, weblog Stepcase Lifehack recommends strengthening your brain-mouth filter by thinking of the end of your sentence before you speak.
Nowadays, a lot of people seem to talk just to make noise. If that sounds like you (don't worry, I'm one of those people too), take this simple tip: Don't start a sentence if you don't know how it's going to end.
That was one of my biggest struggles when I started to consciously improve my interpersonal skills. There is this thrill of talking out of nothing, just to have your voice heard. I may say a stupid thing, but what the heck, at least I will make myself heard. What a dumb (and actually easy to avoid) mistake.
The thin interest that you may generate will soon turn into laughter or just plain ignorance. Mean what you say and know exactly how it will turn out before putting it into words. While it looks like it may add some salt and pepper to the conversation by introducing some sort of randomness, speaking without really knowing what you say will only ruin the other part expectations. They're talking to you because they're searching for meaning, not for randomness.
This, essentially, helps you keep an eye on that brain-mouth filter everyone always tells you to improve, and it will keep you from saying things that are at best, stupid, and at worst, mean or hurtful. The flip side of us likely overapply this idea. Sometimes you need to make a leap and just see where you land. Ultimately, it depends on the kind of person you are. Hit the link to read more, and let's hear what you feel applies more to you in the comments. Photo by Jennzebel.
5 Simple And Obvious Tips For Better Communication | Stepcase Lifehack


FERGUSON: Solid higher education reforms, with caveats
March 17, 2012
Margaret FergusonState lawmakers have turned their attention of late to higher education. Legislation awaits the governor's signature requiring all colleges and universities to employ a common numbering system. While this will require a lot of paperwork, in principle it seems sound and appropriate. Gov. Daniels signed another law that places a cap of 120 credit hours on most undergraduate degree programs.
Adjusting to the 120-credit-hour rule will not be difficult for most programs that are just above that target number now. However, this will not likely have much of an effect upon student graduation. Students often graduate with more than the minimum number of credit hours because they change majors.
This legislation is part of a national conversation on student retention and time to degree completion. If one assumes the value of a college education is the degree obtained upon completion (though I could argue this is not the only value), then a student who drops out of college before obtaining the degree has wasted all the money he/she spent on tuition. The state's resources have similarly been wasted since public funds (and not just tuition dollars) power our universities.
Seen that way, we should do whatever we can to get students in and out of school as quickly as possible while expending the fewest resources.
I have reservations about this logic, as I can imagine pressure to lower standards (and not just credit hours). To its credit, the Indianapolis-based Lumina Foundation has strongly emphasized the need to make sure students not only complete college but also obtain high-quality degrees.
That said, creating better coordination among Indiana universities and Ivy Tech Community College is a laudable goal. Most students at my university are transfers, having begun their college studies elsewhere. They often come to us with imperfect information about what courses actually count toward the degree.
Advisers perform Herculean tasks making sure that as many of their hours as possible transfer to their degree plan here. But it is rare that all of a student's hours transfer seamlessly. Making the successful transfer of credits easier and reducing the uncertainty would benefit students and advisers.
Toward that end, Indiana policymakers (like their counterparts in other states) are considering requiring that universities establish a "general education common core." Roughly speaking, these are the foundational courses students take in preparation for the specialization that comes with instruction in their major.
The idea is that every university would define a core of approximately 30 credit hours that students in Indiana can transfer with them as a whole to any other state university and automatically complete that university's general education requirement. Leaders at Ivy Tech have already put together their version of such a transferable core.
The Indiana Commission on Higher Education has provided guidelines to universities for developing such a competency-based, transferable general education core. And a renewed conversation is under way involving faculty across my university to explicitly define what exactly we want our students to know, understand and be able to do when their time with us comes to an end.
In other states, lawmakers and state officials have gone so far as to identify the actual courses that ought to be counted toward a degree in all state universities. Some observers think this might be the next step here in Indiana. This would be disastrous for the students' degrees.
It is imperative for the integrity of higher education that the faculty control the curriculum. We must maintain the responsibility and authority to define what a college degree means because we alone bear the responsibility of conferring those degrees upon our students.
University faculty, lawmakers and state administrators all have a stake in this conversation. State policymakers certainly have a legitimate interest in knowing what is happening in higher education and assuring that we are being good stewards of our students' and the state's money.
But only educators should be in the business of making decisions about an appropriate curriculum.•
Recent Articles by Margaret Ferguson / Special to IBJ
Comments powered by Disqus


Dynamics seminar:Ohad Feldheim (Stanford): The power of two-choices in reducing discrepancy
Consider a process in which points are assigned uniformly and independently at random on the interval [0,1]. It is a classical observation that after N points were assigned, the typical discrepancy of the empirical distribution, i.e., the maximum difference between the proportion of points on any interval and the length of that interval, is of order 1/sqrt{N}. Now consider a similar online process in which at every step an overseer is allowed to choose between two independent, uniformly chosen points on [0,1]. -- By how much can the overseer reduce the discrepancy of the selected points?
We show that a significant improvement is possible, providing an explicit algorithm which obtains a discrepancy of O(log^3 N/N) for all $N$ with high probability. This deviates by merely a factor of log^2 N from the lowest discrepancy possible for any sequence of points on [0,1]. We generalise this result to high dimensions to obtain near optimal discrepancy of O(log^(2d+1) N/N) on [0,1]^d using a similar process. We further generalise the results
to settings where the overseer has even less control over the output sequence.
The methods used relate classical results on the "power of two choices" in computer science, observations regarding Haar wavelets in harmonic analysis and properties of stochastic processes drifting towards their means. However, no prior knowledge on these topics is assumed.
Based on joint works with Ori Gurel-Gurevisch for HUJI and with Aaditya Ramdas and Raz Dwivedi from Berkely.
Tue, 27/06/2017 - 14:00 to 15:00


text:
Severe Tropical Cyclone Pam made landfall in Vanuatu and the capital island of Efate on March 13. The capital city of Port Vila suffered a direct hit by the storm, which was the equivalent of a Category 5 hurricane, with sustained wind speeds of 165 mph and gusts nearing 200 mph. International Medical Corps has mobilized and deployed our Emergency Response Team to Vanuatu to assess the situation and find ways in which we can help best families and communities affected by this crisis.
Cyclone Pam is the strongest storm to make landfall since Super Typhoon Haiyan hit the Philippines in 2013. The full force of Pam was dramatically worse than the predictions, and the humanitarian impact is expected to be high. Initial reports indicate that up to 90% of buildings in Port Vila were affected by the storm, and the cyclone destroyed all mobile towers except one in Port Vila, resulting in the complete lack of communication across most of the archipelago nation. Port Vila is reported to be without power or running water, with debris covering the streets.
There is limited available information on the needs of other affected communities. Humanitarian agencies on the ground are reporting that houses are destroyed, trees are down, roads are blocked and people are looking for help. The President of Vanuatu has identified food, water and shelter as immediate priorities. Vanuatu's National Disaster Management Office had confirmed eight dead and 20 injured, and these figures are expected to rise substantially in the days to come.


', which is 90. We'll use a dictionary to store the X, Y, X movement and Y movement values of our balls - a bit like a struct in C. But whereas C bogs us down in memory management turmoil, in Python we can create loads of ball objects without any hassle at all, giving them their own individual dictionary entries.
The final thing we need to think about is collision detection. How do we tell when the mouse pointer has collided with a ball? Logically, it seems sanest to go through the position of every ball and compare them with the mouse pointer location. But we have a trick up our sleeve: the balls are white, and the background is black, so why not just detect when the mouse pointer is over a white pixel? That only takes one line of code, and is very fast...
Here's the code, which you can find as in the source code for this project, along with the ball.png picture we created earlier (it's exactly the same).
from pygame import *
import random
ballpic = image.load('ball.png')
numballs = 10
delay = 5
done = False
balls = []
for count in range(numballs):
 balls[count] = {'x': 0, 'y': 0, 'xmove': random.randint(1, 2), 'ymove': random.randint(1, 2)}
screen = display.set_mode((640, 480))
display.set_caption('Ball game')
while done == False:
 for count in range(numballs):
 screen.blit(ballpic, (balls[count]['x'], balls[count]['y']))
 for count in range(numballs):
 balls[count]['x'] = balls[count]['x'] + balls[count]['xmove']
 balls[count]['y'] = balls[count]['y'] + balls[count]['ymove']
 for count in range(numballs):
 if balls[count]['x'] > 620:
 balls[count]['xmove'] = random.randint(-2, 0)
 if balls[count]['x'] < -10:
 balls[count]['xmove'] = random.randint(0, 2)
 if balls[count]['y'] > 470:
 balls[count]['ymove'] = random.randint(-2, 0)
 if balls[count]['y'] < -10:
 balls[count]['ymove'] = random.randint(0, 2)
 for e in event.get():
 if e.type == KEYUP:
 if e.key == K_ESCAPE:
 done = True
 if screen.get_at((mouse.get_pos())) == (255, 255, 255, 255):
 done = True
print "You lasted for", time.get_ticks()/1000, "seconds!"
The general concepts behind this code are the same as before, but there's lots of new juicy code to explore. Near the top, where we load our ball image, we also set its colorkey to (0,0,0)' which is the RGB (Red/Green/Blue) value for black. What we're saying here is: set all black pixels in our ball picture to be transparent.
This is important when we have many balls bouncing around, as we want them to overlap gracefully, and not have unsightly black corners drawn on other balls. So, only the white pixels of our balls will be displayed.
The following numballs and delay variables affect the difficulty of the game. As you'd expect, numballs controls the number of balls in play, whereas delay is the time (in milliseconds) that the game should pause each loop. You can leave these as-is for now - but if you fancy more of a challenge, you can up the number of balls and reduce the delay.
Our balls = [] line sets up a new array of ball objects, and in typical Python fashion, we're not limited to the number of objects (nor do we have to define the number straight away). The
for count in range(numballs):
line sets up a loop which runs numball (10) times, adding new dictionary objects to the balls array and giving them starting values - top-left of screen, and random movement down-right. The 1, 2 in the random number generator means 'any number between 1 and 2 (inclusive)'. So we have 10 balls, all starting off with random speeds.
Next, we set up the screen as before, and add an event.set_grab(1) line which constrains the mouse pointer in the game window; it'd be too easy if you could move the mouse pointer outside! Then we have our main game loop. As before, we fill the screen with black, and then use another for loop to display (blit) all our balls to the screen.
After updating the screen and delaying (so that it runs at the same speed on all machines), we again traverse through our array of balls, updating their positions with our movement variables. Each ball has its own copy of xmove and ymove in its dictionary entry, so they can all move independently.
Following this is the game logic, which determines if the balls have reached the window edges. This time, we've tweaked the values so that the balls can go slightly off-screen (remember, they're 32x32 pixels). This is vital for the gameplay: it means you can't just move the mouse cursor into a corner and never get hit! The balls now reach every part of the screen, so you have to keep moving the mouse.
The final three lines of code are new: screen.get_at() returns the pixel colour value at the specified position, which we set as the mouse pointer with mouse.get_pos(). We say: 'if the pixel colour at the mouse position is white (255,255,255), then done = True so the while main game loop will end.
Finally, we print the number of seconds for which the player survived - time.get_ticks() returns it in milliseconds, so we divide it by 1000 before displaying it.
This is more like it! Multiple circle mayhem demands lightning reations and pixel-perfect accuracy with the mouse pointer...
This is more like it! Multiple circle mayhem demands lightning reactions and pixel-perfect accuracy with the mouse pointer...
Finishing up
Not bad for 55 lines of code, is it? As mentioned before, you can increase the difficulty of the game by raising the value of numballs at the top - the default of 10 is tricky enough, but if you think you're dextrous enough, try knocking it up to 15 or 20 for some finger-twistingly frantic gameplay.
There are many other aspects of the game you can fiddle with too, such as altering the random numbers used in the main game logic (if ball has hit screen edge) section.
Pygame is chock-full of features to play around with, and, using a handful of lines of code, you can add sound effects or even a background music track to the game. has some fantastically in-depth documentation to help users explore its functionality, along with a reference to all the routines used in this tutorial.
Having programmed in countless languages and environments, from Amiga Blitz Basic to C#-SDL on Mono/.NET, I can safely say that Pygame is one of the most blissfully easy game programming setups around - it's the perfect way to concretise any game ideas that are floating around in your head. Good luck!
I want pretty pictures!
The final version of our game is hardly a tour de force on the graphical front, but we can spruce it up a bit by adding a background image. However, it's important to remember how we're d where the balls are - we're looking for white pixels. So your background image shouldn't contain any fully white (255,255,255 RGB) pixels, otherwise the game will end if you mouse over them!
Find a picture and resize it to 640x480. If you suspect there are any white pixels in the image, you can always lower its brightness in Gimp which will eliminate such problems. Save this picture alongside and call it background.jpg. Now, in, enter the following code beneath the early ballpic.set_colorkey line:
backdrop = image.load('background.jpg')
So now we have our background picture in memory, ready to use. But we need to display it on the screen every loop, so further down in, replace the screen.fill(0) line with this:
screen.blit(backdrop, (0,0))
This draws the background image before the balls. Note that if it's quite a complex image (eg lots of colours), then this extra blitting process will slow the game down slightly - but you can tweak the ball speeds and delay variable to compensate for that.
First published in Linux Format
First published in Linux Format magazine
You should follow us on or Twitter
Your comments
Too awesome!
This was my first exposure to Python and was the perfect excuse to try it out... I ended up making four different colored balls, assigning them to a list and then adding them randomly to the balls array... I had 800+ balls bouncing around at one point!! Sweet!
Too awesome!
TuxRadar is awesome
I just had to comment and tell you guys on a great job you guys are doing.
I recently added you by RSS and have read some great articles by you guys.
Love the in-depth linux articles and your coding tuts
Keep up the great work!
26 شارع عباس على عيسى
how you get this to work
how you get this to work
have no knowledge how to program but heard about Python so here goes it. I will try this one as it isn't so long to code.